<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>adb &amp;mdash; Cyberdyne Systems</title>
    <link>https://noblogo.org/aytin/tag:adb</link>
    <description>&#34;Fare o non fare. Non c&#39;è provare!&#34;</description>
    <pubDate>Thu, 30 Apr 2026 12:51:52 +0000</pubDate>
    <item>
      <title>Connettere lo smartphone al pc via adb</title>
      <link>https://noblogo.org/aytin/connettere-lo-smartphone-al-pc-via-adb</link>
      <description>&lt;![CDATA[tools&#xA;smalliFoto di Pixabay: a href=&#34;https://www.pexels.com/it-it/foto/chiave-inglese-stretta-su-chiave-inglese-210881/&#34;Pexels.com/a/i/small&#xA;&#xA;Android Debug Bridge, adb, permette di connettere device ad un pc. Oltre che consentire l&#39;accesso all&#39;intero file system del device invece che della sola parte multimediale, mette a disposizione un set di comandi per la manipolazione di:&#xA;!--more--&#xA;&#xA;rete&#xA;installazione app&#xA;filesystem&#xA;scripting&#xA;debugging&#xA;&#xA;Do per scontata la presenza degli android tools e la conoscenza di come si attivi la modalità sviluppatore per accedere alla parte di debugging.&#xA;&#xA;Modalità di connessione&#xA;&#xA;Posso collegare il device all&#39;host in 3 modi: usb, tcpip, wireless (da android 11 in poi).&#xA;&#xA;Probabilmente la modalità usb è quella più sicura trattandosi di un collegamento fisico, ma il wireless, per me, è una gran comodità.&#xA;USB&#xA;&#xA;Giusto per dovere di cronaca. Chiunque possegga un telefono android, credo l&#39;abbia fatto almeno una volta.&#xA;&#xA;Collegare il telefono alla porta usb del pc.&#xA;Abilitare il Debug Usb dalle opzioni sviluppatore.&#xA;Autorizzare l&#39;host sul device.&#xA;&#xA;Come avviene l&#39;autorizzazione&#xA;L&#39;autorizzazione dell&#39;host consiste in un&#39;autenticazione con chiave pubblica.&#xA;Sull&#39;host, in ~/.android (almeno sui sistemi nix) è presente:&#xA;&#xA;una coppia di chiavi pubblica e privata&#xA;il file adb\known\hosts.pb.&#xA;&#xA;Quando si avvia il server adb sull&#39;host per la prima volta, viene generata una coppia di chiavi.&#xA;La chiave pubblica dell&#39;host viene inviata al device durante la prima connessione, ed è quella che deve essere accettata dal device affinché sia possibile accedervi via adb. Quando si effettua una &#34;revoca delle autorizzazioni&#34; sul device, si cancellano le chiavi pubbliche che devono essere riaccettate se avviene una nuova connessione.&#xA;&#xA;Il file adb\known\hosts.pb contiene gli identificativi dei device connessi all&#39;host via adb.&#xA;&#xA;Se si vuole rigenerare la coppia di chiavi per ruotarle, si può ricorrere al seguente comando:&#xA;adb keygen adbkey&#xA;che produce una chiave privata rsa-2048 e la corrispondente chiave pubblica.&#xA;&#xA;Le chiavi così generate andranno posizionate in ~/.android e il daemon adb andrà riavviato.&#xA;adb kill-server&#xA;adb start-server&#xA;TCPIP&#xA;L&#39;abilitazione della modalità tcpip richiede il preventivo collegamento fisico all&#39;host in modalità usb.&#xA;Una volta abilitata, questa rimarrà la modalità di collegamento predefinita finché il daemon sarà attivo.&#xA;&#xA;Collegare il device in modalità debug usb (vedi USB).&#xA;adb tcpip port per abilitare la modalità tcpip su una porta. Verrà avviato un altro daemon in ascolto sulla porta port.&#xA;recuperare l&#39;ip del device sulla nostra rete locale (normalmente disponibile su Info telefono / Info stato).&#xA;adb connect ip:port.&#xA;Staccare il device dalla porta usb.&#xA;Per le successive operazioni di connessione | disconnessione basta il solito:&#xA;adb connect | disconnect ip:port, connette | disconnette il device.&#xA;&#xA;Wi-Fi&#xA;A differenza della modalità tcpip, non richiede un collegamento fisico all&#39;host perché il pairing viene fatto sia sulla rete a cui ci si assesta, sia sull&#39;host attraverso un PIN. Inoltre ogni connessione avviene su una porta randomica.&#xA;&#xA;La prima volta:&#xA;  abilitare Debug wireless da Opzioni per sviluppatori.&#xA;  Confermare il pairing alla rete.&#xA;  Andare su Debug wireless, accoppiare un nuovo dispositivo e prendere nota dell&#39;ip, della porta e del PIN.&#xA;  Sull&#39;host adb pair ip:port, per associare il device all&#39;host attraverso il PIN segnato in precedenza.&#xA;Ad ogni connessione:&#xA;  adb connect | disconnect ip:port per connettere | disconnettere il device.&#xA;&#xA;Una volta che l&#39;host è autorizzato, basterà effettuare una connect alla porta opportuna anche se il server venisse riavviato.&#xA;&#xA;Usare ADB su un host con dispositivi multipli connessi&#xA;Quando più device sono connessi ad un host, per lanciare un comando, dobbiamo sapere come selezionare il device corretto via adb.&#xA;Ci vengono in aiuto due flag, &#34;-s&#34; e &#34;-t&#34;, che selezionano il device rispettivamente in base al seriale o al &#34;transport id&#34;, informazione che ottengo con adb devices.&#xA;Faccio l&#39;esempio di 3 device, due connessi via usb e uno connesso via wireless (da Android 11 in poi) su cui vogliamo aprire una shell.&#xA;adb devices&#xA;List of devices attached&#xA;141*             device&#xA;52004******    device&#xA;ip:porta         device&#xA;Per avere l&#39;info sul transport id è necessaria la modalità &#34;verbose&#34;&#xA;adb devices -l&#xA;&#xA;List of devices attached&#xA;141             device usb:1-3 product:serialproduct1 model:modelname1 device:devicename1 transportid:10&#xA;&#xA;52004*******    device usb:1-2 product:serialproduct2 model:modelname2 device:devicename2 transportid:8&#xA;&#xA;ip:porta         device product:serialproduct3 model:modelname3 device:devicename3 transportid:11&#xA;da cui:&#xA;adb -s 141 shell o adb -t 10 shell, per aprire una shell sul primo device.&#xA;&#xA;adb -s 52004******* shell o adb -t 8 shell, per aprire una shell sul secondo device.&#xA;&#xA;adb -s ip:porta shell o adb -t 11 shell, per aprire una shell sul terzo device.&#xA;&#xA;small Riferimenti*:&#xA;&#xA;https://developer.android.com/tools/adb&#xA;/small&#xA;&#xA;#adb #android #bash]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://pixelfed.uno/storage/m/_v2/489827599091373610/186f813ba-297a89/jzUMZA9z4W9x/zQnycWwZdmrvBmpmIuXu6DjA5ydMl9TGbbrOum56.jpg" alt="tools">
<small><i>Foto di Pixabay: <a href="https://www.pexels.com/it-it/foto/chiave-inglese-stretta-su-chiave-inglese-210881/" rel="nofollow">Pexels.com</a></i></small></p>

<p><strong>A</strong>ndroid <strong>D</strong>ebug <strong>B</strong>ridge, <strong>adb</strong>, permette di connettere device ad un pc. Oltre che consentire l&#39;accesso all&#39;intero file system del device invece che della sola parte multimediale, mette a disposizione un set di comandi per la manipolazione di:
</p>
<ul><li>rete</li>
<li>installazione app</li>
<li>filesystem</li>
<li>scripting</li>
<li>debugging</li></ul>

<p>Do per scontata la presenza degli android tools e la conoscenza di come si attivi la modalità sviluppatore per accedere alla parte di debugging.</p>

<h2 id="modalità-di-connessione">Modalità di connessione</h2>

<p>Posso collegare il device all&#39;host in 3 modi: <em>usb</em>, <em>tcpip</em>, <em>wireless</em> (da android 11 in poi).</p>

<p>Probabilmente la modalità <em>usb</em> è quella più sicura trattandosi di un collegamento fisico, ma il <em>wireless</em>, per me, è una gran comodità.</p>

<h3 id="usb">USB</h3>

<p>Giusto per dovere di cronaca. Chiunque possegga un telefono android, credo l&#39;abbia fatto almeno una volta.</p>
<ol><li>Collegare il telefono alla porta usb del pc.</li>
<li>Abilitare il <strong>Debug Usb</strong> dalle opzioni sviluppatore.</li>
<li>Autorizzare l&#39;host sul device.</li></ol>

<h4 id="come-avviene-l-autorizzazione">Come avviene l&#39;autorizzazione</h4>

<p>L&#39;autorizzazione dell&#39;host consiste in un&#39;<strong>autenticazione con chiave pubblica</strong>.
Sull&#39;host, in <code>~/.android</code> (almeno sui sistemi *nix) è presente:</p>
<ul><li>una coppia di chiavi pubblica e privata</li>
<li>il file <em>adb_known_hosts.pb</em>.</li></ul>

<p>Quando si avvia il server adb sull&#39;host per la prima volta, viene generata una coppia di chiavi.
La chiave pubblica dell&#39;host viene inviata al device durante la prima connessione, ed è quella che deve essere accettata dal device affinché sia possibile accedervi via adb. Quando si effettua una “revoca delle autorizzazioni” sul device, si cancellano le chiavi pubbliche che devono essere riaccettate se avviene una nuova connessione.</p>

<p>Il file <em>adb_known_hosts.pb</em> contiene gli identificativi dei device connessi all&#39;host via adb.</p>

<p>Se si vuole rigenerare la coppia di chiavi per ruotarle, si può ricorrere al seguente comando:</p>

<pre><code class="language-bash">adb keygen adbkey
</code></pre>

<p>che produce una chiave privata rsa-2048 e la corrispondente chiave pubblica.</p>

<p>Le chiavi così generate andranno posizionate in <code>~/.android</code> e il daemon adb andrà riavviato.</p>

<pre><code class="language-bash">adb kill-server
adb start-server
</code></pre>

<h3 id="tcpip">TCPIP</h3>

<p>L&#39;abilitazione della modalità <em>tcpip</em> richiede il preventivo collegamento fisico all&#39;host in modalità <em>usb</em>.
Una volta abilitata, questa rimarrà la modalità di collegamento predefinita finché il daemon sarà attivo.</p>
<ul><li>Collegare il device in modalità debug usb (vedi USB).</li>
<li><code>adb tcpip &lt;port&gt;</code> per abilitare la modalità <em>tcpip</em> su una porta. Verrà avviato un altro daemon in ascolto sulla porta .</li>
<li>recuperare l&#39;ip del device sulla nostra rete locale (normalmente disponibile su <strong>Info telefono / Info stato</strong>).</li>
<li><code>adb connect &lt;ip&gt;:&lt;port&gt;</code>.</li>
<li>Staccare il device dalla porta usb.
Per le successive operazioni di connessione | disconnessione basta il solito:</li>
<li><code>adb connect | disconnect &lt;ip&gt;:&lt;port&gt;</code>, connette | disconnette il device.</li></ul>

<h3 id="wi-fi">Wi-Fi</h3>

<p>A differenza della modalità <em>tcpip</em>, non richiede un collegamento fisico all&#39;host perché il pairing viene fatto sia sulla rete a cui ci si assesta, sia sull&#39;host attraverso un PIN. Inoltre ogni connessione avviene su una porta randomica.</p>
<ul><li>La prima volta:
<ul><li>abilitare <strong>Debug wireless</strong> da <strong>Opzioni per sviluppatori</strong>.</li>
<li>Confermare il pairing alla rete.</li>
<li>Andare su <strong>Debug wireless</strong>, accoppiare un nuovo dispositivo e prendere nota dell&#39;ip, della porta e del PIN.</li>
<li>Sull&#39;host <code>adb pair &lt;ip&gt;:&lt;port&gt;</code>, per associare il device all&#39;host attraverso il PIN segnato in precedenza.</li></ul></li>
<li>Ad ogni connessione:
<ul><li><code>adb connect | disconnect &lt;ip&gt;:&lt;port&gt;</code> per connettere | disconnettere il device.</li></ul></li></ul>

<p>Una volta che l&#39;host è autorizzato, basterà effettuare una connect alla porta opportuna anche se il server venisse riavviato.</p>

<h2 id="usare-adb-su-un-host-con-dispositivi-multipli-connessi">Usare ADB su un host con dispositivi multipli connessi</h2>

<p>Quando più device sono connessi ad un host, per lanciare un comando, dobbiamo sapere come selezionare il device corretto via adb.
Ci vengono in aiuto due flag, “-s” e “-t”, che selezionano il device rispettivamente in base al seriale o al “transport id”, informazione che ottengo con <code>adb devices</code>.
Faccio l&#39;esempio di 3 device, due connessi via usb e uno connesso via wireless (da Android 11 in poi) su cui vogliamo aprire una shell.</p>

<pre><code class="language-bash">adb devices
List of devices attached
141*****             device
52004************    device
&lt;ip&gt;:&lt;porta&gt;         device
</code></pre>

<p>Per avere l&#39;info sul transport id è necessaria la modalità “verbose”</p>

<pre><code class="language-bash">adb devices -l

List of devices attached
141*****             device usb:1-3 product:&lt;serial_product_1&gt; model:&lt;model_name_1&gt; device:&lt;device_name_1&gt; transport_id:10

52004************    device usb:1-2 product:&lt;serial_product_2&gt; model:&lt;model_name_2&gt; device:&lt;device_name_2&gt; transport_id:8

&lt;ip&gt;:&lt;porta&gt;         device product:&lt;serial_product_3&gt; model:&lt;model_name_3&gt; device:&lt;device_name_3&gt; transport_id:11
</code></pre>

<p>da cui:
<code>adb -s 141***** shell</code> o <code>adb -t 10 shell</code>, per aprire una shell sul primo device.</p>

<p><code>adb -s 52004************ shell</code> o <code>adb -t 8 shell</code>, per aprire una shell sul secondo device.</p>

<p><code>adb -s &lt;ip&gt;:&lt;porta&gt; shell</code> o <code>adb -t 11 shell</code>, per aprire una shell sul terzo device.</p>

<p><small> <strong>Riferimenti</strong>:</p>
<ul><li><a href="https://developer.android.com/tools/adb" rel="nofollow">https://developer.android.com/tools/adb</a>
</small></li></ul>

<p><a href="/aytin/tag:adb" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">adb</span></a> <a href="/aytin/tag:android" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">android</span></a> <a href="/aytin/tag:bash" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">bash</span></a></p>
]]></content:encoded>
      <guid>https://noblogo.org/aytin/connettere-lo-smartphone-al-pc-via-adb</guid>
      <pubDate>Wed, 28 Jun 2023 20:10:38 +0000</pubDate>
    </item>
  </channel>
</rss>