<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Command Line - Hard Wired</title>
	<atom:link href="https://www.hardwired.dev/tag/command-line/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.hardwired.dev</link>
	<description></description>
	<lastBuildDate>Fri, 14 Nov 2025 05:51:33 +0000</lastBuildDate>
	<language>cs</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://www.hardwired.dev/wp-content/uploads/2022/10/android-chrome-256x256-1-150x150.png</url>
	<title>Command Line - Hard Wired</title>
	<link>https://www.hardwired.dev</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Android Debug Bridge (ADB)</title>
		<link>https://www.hardwired.dev/2025/11/14/android-debug-bridge-adb/</link>
		
		<dc:creator><![CDATA[Valentino Hesse OK2HSS]]></dc:creator>
		<pubDate>Fri, 14 Nov 2025 05:50:00 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Různé]]></category>
		<category><![CDATA[ADB Commands]]></category>
		<category><![CDATA[ADB Tips]]></category>
		<category><![CDATA[Advanced Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Android Debug Bridge]]></category>
		<category><![CDATA[Android Development]]></category>
		<category><![CDATA[Android Device Management]]></category>
		<category><![CDATA[Android SDK]]></category>
		<category><![CDATA[Batch Skripty]]></category>
		<category><![CDATA[Command Line]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[File Management]]></category>
		<category><![CDATA[Instalace aplikací]]></category>
		<category><![CDATA[Logování]]></category>
		<category><![CDATA[Meta Quest 3]]></category>
		<category><![CDATA[Platform Tools]]></category>
		<category><![CDATA[Power Users]]></category>
		<category><![CDATA[Příkazy ADB]]></category>
		<category><![CDATA[Správa souborů]]></category>
		<category><![CDATA[Troubleshoooting]]></category>
		<category><![CDATA[USB Debugging]]></category>
		<category><![CDATA[VR Content]]></category>
		<guid isPermaLink="false">https://www.hardwired.dev/?p=2873</guid>

					<description><![CDATA[<p>Android Debug Bridge (ADB) Android Debug Bridge (ADB) je mocný nástroj pro komunikaci s Android zařízeními, který každý pokročilý uživatel &#62;&#62;&#62;</p>
<p>The post <a href="https://www.hardwired.dev/2025/11/14/android-debug-bridge-adb/">Android Debug Bridge (ADB)</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></description>
										<content:encoded><![CDATA[<div id="bsf_rt_marker"></div><h1>Android Debug Bridge (ADB)</h1>
<p>Android Debug Bridge (ADB) je mocný nástroj pro komunikaci s Android zařízeními, který každý pokročilý uživatel a vývojář by měl znát. V tomto článku si ukážeme praktické využití ADB na příkladu správy souborů v Meta Quest 3, ale principy platí pro všechna Android zařízení.</p>
<h2>Co je ADB?</h2>
<p>ADB je command-line nástroj, který umožňuje komunikaci mezi počítačem a Android zařízením přes USB nebo Wi-Fi. Původně byl vyvinut pro vývojáře, ale jeho využití sahá daleko za hranice programování.</p>
<h3>Klíčové vlastnosti:</h3>
<ul>
<li><strong>Přenos souborů</strong> mezi počítačem a zařízením</li>
<li><strong>Vzdálené spouštění příkazů</strong> na Android systému</li>
<li><strong>Instalace a správa aplikací</strong></li>
<li><strong>Debugging a logování</strong></li>
<li><strong>Systémové úpravy</strong> bez nutnosti rootování</li>
</ul>
<h2>Instalace a nastavení</h2>
<h3>macOS/Linux:</h3>
<pre><code class="language-bash"># Homebrew (macOS)
brew install android-platform-tools

# Ubuntu/Debian
sudo apt install android-tools-adb</code></pre>
<h3>Windows:</h3>
<p>Stáhněte Android SDK Platform Tools z oficiálních stránek Google.</p>
<h2>Základní příkazy</h2>
<h3>Připojení a správa zařízení</h3>
<pre><code class="language-bash"># Zobrazení připojených zařízení
adb devices

# Restart ADB serveru (při problémech s připojením)
adb kill-server &amp;&amp; adb start-server</code></pre>
<p><strong>Výstup:</strong></p>
<pre><code>List of devices attached
2G0YC5ZGCZ01G4    device</code></pre>
<h3>Přenos souborů</h3>
<pre><code class="language-bash"># Upload souboru do zařízení
adb push &quot;local_file.mp4&quot; /sdcard/Movies/

# Download souboru ze zařízení
adb pull /sdcard/Movies/video.mp4 ./

# Upload celé složky
adb push ./folder/ /sdcard/destination/</code></pre>
<h3>Správa souborů na zařízení</h3>
<pre><code class="language-bash"># Zobrazení obsahu složky
adb shell ls -la /sdcard/

# Vytvoření složky
adb shell mkdir /sdcard/NewFolder

# Smazání souboru
adb shell rm &quot;/sdcard/Movies/video.mp4&quot;

# Smazání složky
adb shell rm -rf /sdcard/OldFolder</code></pre>
<h2>Pokročilé techniky</h2>
<h3>Práce se soubory s mezerami v názvu</h3>
<p>Při práci se soubory obsahujícími mezery je nutné používat správné uvozovky:</p>
<pre><code class="language-bash"># Správně - s uvozovkami
adb shell &quot;rm &#039;/sdcard/Movies/Wonder Woman 1984.mp4&#039;&quot;

# Špatně - bez uvozovek (způsobí chybu)
adb shell rm /sdcard/Movies/Wonder Woman 1984.mp4</code></pre>
<h3>Batch operace</h3>
<p>Pro hromadné operace můžete vytvořit bash skripty:</p>
<pre><code class="language-bash">#!/bin/bash
files=(
    &quot;video1.mp4&quot;
    &quot;video2.mkv&quot;
    &quot;video3.avi&quot;
)

for file in &quot;${files[@]}&quot;; do
    echo &quot;Uploading: $file&quot;
    adb push &quot;$file&quot; /sdcard/Movies/
    if [ $? -eq 0 ]; then
        echo &quot;✓ Success: $file&quot;
    else
        echo &quot;✗ Failed: $file&quot;
    fi
done</code></pre>
<h2>Řešení běžných problémů</h2>
<h3>Unauthorized zařízení</h3>
<p><strong>Problém:</strong> <code>adb devices</code> zobrazuje <code>unauthorized</code></p>
<p><strong>Řešení:</strong></p>
<ol>
<li>Zkontrolujte USB debugging v Developer Options</li>
<li>Potvrďte RSA klíč v zařízení</li>
<li>Restartujte ADB server:
<pre><code class="language-bash">adb kill-server &amp;&amp; adb start-server</code></pre>
</li>
</ol>
<h3>Resetování autorizačních klíčů</h3>
<pre><code class="language-bash"># Smazání starých klíčů a vygenerování nových
rm -f ~/.android/adbkey ~/.android/adbkey.pub
adb kill-server &amp;&amp; adb start-server</code></pre>
<h2>Praktické příklady z reálného použití</h2>
<h3>Správa VR obsahu v Meta Quest 3</h3>
<pre><code class="language-bash"># Zobrazení dostupného místa
adb shell df -h /sdcard

# Přenos velkých VR videí
adb push &quot;8K_VR_Video.mp4&quot; /sdcard/Movies/

# Kontrola průběhu přenosu (v jiném terminálu)
adb shell du -sh /sdcard/Movies/</code></pre>
<h3>Zálohování herních dat</h3>
<pre><code class="language-bash"># Zálohování složky s herními daty
adb pull /sdcard/Android/data/com.game.package ./backup/

# Obnovení ze zálohy
adb push ./backup/com.game.package /sdcard/Android/data/</code></pre>
<h2>Optimalizace výkonu</h2>
<h3>Rychlost přenosu</h3>
<p>Rychlost přenosu závisí na několika faktorech:</p>
<ul>
<li><strong>USB kabel</strong> - používejte kvalitní USB 3.0+ kabely</li>
<li><strong>USB port</strong> - preferujte USB 3.0+ porty</li>
<li><strong>Velikost souborů</strong> - větší soubory = vyšší efektivita</li>
</ul>
<p><strong>Typické rychlosti:</strong></p>
<ul>
<li>USB 2.0: ~20-25 MB/s</li>
<li>USB 3.0: ~35-45 MB/s</li>
</ul>
<h3>Monitoring přenosu</h3>
<pre><code class="language-bash"># Zobrazení detailního průběhu
adb push -v &quot;large_file.mp4&quot; /sdcard/Movies/

# Kontrola volného místa před přenosem
adb shell &quot;df -h /sdcard | grep sdcard&quot;</code></pre>
<h2>Bezpečnostní aspekty</h2>
<h3>USB Debugging</h3>
<ul>
<li>Aktivujte pouze při potřebě</li>
<li>Používejte &quot;Always allow from this computer&quot; pouze u důvěryhodných počítačů</li>
<li>Pravidelně kontrolujte autorizované počítače v Developer Options</li>
</ul>
<h3>Síťové připojení</h3>
<pre><code class="language-bash"># ADB přes Wi-Fi (vyžaduje USB aktivaci)
adb tcpip 5555
adb connect 192.168.1.100:5555</code></pre>
<h2>Závěr</h2>
<p>ADB je nepostradatelný nástroj pro každého, kdo chce využít plný potenciál Android zařízení. Ať už spravujete soubory v Meta Quest 3, vyvíjíte aplikace, nebo jen chcete mít větší kontrolu nad svým zařízením, ADB vám poskytne potřebnou flexibilitu a sílu.</p>
<p><strong>Klíčové takeaways:</strong></p>
<ul>
<li>ADB funguje se všemi Android zařízeními</li>
<li>Správné uvozování je kritické pro soubory s mezerami</li>
<li>Batch skripty šetří čas při hromadných operacích</li>
<li>Bezpečnost by měla být vždy prioritou</li>
</ul>
<h2>Pokročilé příkazy pro power users</h2>
<h3>Systémové informace</h3>
<pre><code class="language-bash"># Informace o zařízení
adb shell getprop ro.product.model
adb shell getprop ro.build.version.release

# Stav baterie
adb shell dumpsys battery

# Využití úložiště
adb shell df -h

# Spuštěné procesy
adb shell ps | grep com.oculus</code></pre>
<h3>Správa aplikací</h3>
<pre><code class="language-bash"># Seznam nainstalovaných aplikací
adb shell pm list packages

# Instalace APK
adb install app.apk

# Odinstalace aplikace
adb uninstall com.package.name

# Vymazání dat aplikace
adb shell pm clear com.package.name</code></pre>
<h3>Logování a debugging</h3>
<pre><code class="language-bash"># Zobrazení logů v reálném čase
adb logcat

# Filtrování logů podle tagu
adb logcat -s &quot;MyApp&quot;

# Uložení logů do souboru
adb logcat &gt; device_logs.txt</code></pre>
<h2>Automatizace s skripty</h2>
<h3>Bash skript pro hromadné stahování</h3>
<pre><code class="language-bash">#!/bin/bash
# download_vr_content.sh

DEST_DIR=&quot;/Volumes/ExternalDrive/VR/&quot;
QUEST_DIR=&quot;/sdcard/Movies/&quot;

# Vytvoření cílové složky
mkdir -p &quot;$DEST_DIR&quot;

# Získání seznamu souborů
echo &quot;Scanning Quest for video files...&quot;
adb shell &quot;find $QUEST_DIR -name &#039;*.mp4&#039; -o -name &#039;*.mkv&#039;&quot; | while read file; do
    filename=$(basename &quot;$file&quot;)
    echo &quot;Downloading: $filename&quot;

    # Stažení s progress barem
    adb pull &quot;$file&quot; &quot;$DEST_DIR&quot;

    if [ $? -eq 0 ]; then
        echo &quot;✓ Downloaded: $filename&quot;
        # Volitelně smazat ze zařízení po úspěšném stažení
        # adb shell &quot;rm &#039;$file&#039;&quot;
    else
        echo &quot;✗ Failed: $filename&quot;
    fi
done

echo &quot;Download complete!&quot;</code></pre>
<h3>Python skript pro monitoring</h3>
<pre><code class="language-python">#!/usr/bin/env python3
import subprocess
import json
import time

def get_device_info():
    &quot;&quot;&quot;Získání informací o připojeném zařízení&quot;&quot;&quot;
    try:
        result = subprocess.run([&#039;adb&#039;, &#039;devices&#039;],
                              capture_output=True, text=True)
        return result.stdout
    except Exception as e:
        return f&quot;Error: {e}&quot;

def get_storage_info():
    &quot;&quot;&quot;Kontrola dostupného místa&quot;&quot;&quot;
    try:
        result = subprocess.run([&#039;adb&#039;, &#039;shell&#039;, &#039;df&#039;, &#039;-h&#039;, &#039;/sdcard&#039;],
                              capture_output=True, text=True)
        return result.stdout
    except Exception as e:
        return f&quot;Error: {e}&quot;

def monitor_transfer(file_path):
    &quot;&quot;&quot;Monitoring průběhu přenosu&quot;&quot;&quot;
    print(f&quot;Monitoring transfer of: {file_path}&quot;)

    while True:
        try:
            result = subprocess.run([&#039;adb&#039;, &#039;shell&#039;, &#039;ls&#039;, &#039;-la&#039;, file_path],
                                  capture_output=True, text=True)
            if result.returncode == 0:
                print(f&quot;Transfer in progress... {time.strftime(&#039;%H:%M:%S&#039;)}&quot;)
            else:
                print(&quot;Transfer completed or file not found&quot;)
                break
        except KeyboardInterrupt:
            print(&quot;\nMonitoring stopped&quot;)
            break

        time.sleep(5)

if __name__ == &quot;__main__&quot;:
    print(&quot;ADB Device Monitor&quot;)
    print(&quot;=&quot; * 30)
    print(get_device_info())
    print(get_storage_info())</code></pre>
<h2>Troubleshooting guide</h2>
<h3>Časté chyby a jejich řešení</h3>
<table>
<thead>
<tr>
<th>Chyba</th>
<th>Příčina</th>
<th>Řešení</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>device unauthorized</code></td>
<td>Nepotvrzený RSA klíč</td>
<td>Potvrdit v zařízení, restartovat ADB</td>
</tr>
<tr>
<td><code>no devices found</code></td>
<td>USB debugging vypnutý</td>
<td>Aktivovat Developer Options</td>
</tr>
<tr>
<td><code>insufficient permissions</code></td>
<td>Chybějící oprávnění</td>
<td>Zkontrolovat USB debugging, změnit USB režim</td>
</tr>
<tr>
<td><code>protocol fault</code></td>
<td>Poškozený USB kabel</td>
<td>Vyměnit kabel, zkusit jiný port</td>
</tr>
</tbody>
</table>
<h3>Debug příkazy</h3>
<pre><code class="language-bash"># Kontrola ADB verze
adb version

# Verbose výstup pro debugging
adb -v devices

# Restart s debug informacemi
adb kill-server
ADB_TRACE=all adb start-server</code></pre>
<h2>Best practices</h2>
<h3>1. Organizace souborů</h3>
<pre><code class="language-bash"># Vytvořte strukturu složek
adb shell mkdir -p /sdcard/Media/{Movies,VR,Games}
adb shell mkdir -p /sdcard/Backups/{Apps,Data}</code></pre>
<h3>2. Pravidelné zálohování</h3>
<pre><code class="language-bash"># Automatické zálohování důležitých dat
adb pull /sdcard/Android/data/important.app ./backups/$(date +%Y%m%d)/</code></pre>
<h3>3. Monitoring výkonu</h3>
<pre><code class="language-bash"># Sledování využití CPU a paměti
adb shell top -n 1
adb shell cat /proc/meminfo</code></pre>
<h2>Integrace s dalšími nástroji</h2>
<h3>Použití s Git</h3>
<pre><code class="language-bash"># Automatické commitování záloh
git add backups/
git commit -m &quot;ADB backup $(date)&quot;</code></pre>
<h3>Kombinace s rsync</h3>
<pre><code class="language-bash"># Synchronizace s lokálním úložištěm
adb pull /sdcard/DCIM/ ./photos/
rsync -av ./photos/ /backup/quest-photos/</code></pre>

<div class="twitter-share"><a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.hardwired.dev%2F2025%2F11%2F14%2Fandroid-debug-bridge-adb%2F&#038;via=hessevalentino&#038;related=hessevalentino%3AValentino%20Hesse%20OK2HSS" class="twitter-share-button">Tweet</a></div><p>The post <a href="https://www.hardwired.dev/2025/11/14/android-debug-bridge-adb/">Android Debug Bridge (ADB)</a> first appeared on <a href="https://www.hardwired.dev">Hard Wired</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
