Android Debug Bridge: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
m Bot: specificità dei wikilink e modifiche minori
Nessun oggetto della modifica
 
(13 versioni intermedie di 11 utenti non mostrate)
Riga 1:
{{Software
{{C|Voce strutturata come una guida passo passo con link di download, si ricorda che Wikipedia non è un manuale. Voce da ripensare|informatica|marzo 2021}}
|Nome = Android Debug Bridge
[[File:Android_Connect_computer.png|miniatura|Sistema Android connesso attraverso un cavo USB ad un computer]]
|Logo = Android Robot Head 2023.svg
'''Android Debug Bridge (ADB)''' è uno strumento compreso all'interno del software [[Software development kit|SDK (Software Develompent Kit)]]<ref> https://developer.android.com/studio</ref> e usato per mettere in comunicazione un dispositivo [[Android]] ed un [[computer]].
|Screenshot = Android Debug Bridge in GNOME terminal.png
==Caratteristiche==
|Didascalia = Avvio del server ADB nel [[GNOME Terminal]], che quindi rileva i dispositivi. Successivamente, viene aperta una shell sul dispositivo in debug per eseguire il comando [[uname]]
|Sviluppatore = [[Google]]
|UltimaVersione = 34.0.1
|DataUltimaVersione = Marzo 2023
|SistemaOperativo = windows
|SistemaOperativo2 = gnu/linux
|SistemaOperativo3 = macos
|Linguaggio = c++
|Genere =
|Licenza = [[Apache 2.0]]
|SoftwareLibero = sì
}}
 
'''Android Debug Bridge''' (comunemente abbreviato in '''adb''') è uno strumento di programmazione utilizzato per il [[Debugging|debug]] dei dispositivi basati su [[Android]]. Sul dispositivo Android viene eseguito un [[Demone (informatica)|demone]] che si connette a un server installato sul PC host via [[USB]] o [[Transmission Control Protocol|TCP]], che a sua volta si connette al client utilizzato dall'utente finale tramite TCP. Reso disponibile come [[software]] [[open source]] da [[Google (azienda)|Google]] con [[licenza Apache]] dal 2007, adb mette a disposizione una shell e la funzionalità di [[backup]] dei dati. Il programma è disponibile per [[Microsoft Windows|Windows]], [[Linux]] e [[macOS]]. In passato è stato utilizzato in modo improprio da [[botnet]] e altri tipi di [[malware]], per i quali sono state sviluppate contromisure come l'autenticazione [[RSA (crittografia)|RSA]] e la possibilità di definire una [[whitelist]] di dispositivi autorizzati.
Android Debug Bridge è stato rilasciato assieme al software [[Sviluppo_di_software_Android#Android_SDK|SDK dai sviluppatori di Google]] nel 2007.
La vera rivoluzione è stata nel [https://www.wikiwand.com/it/Versioni_di_Android#:~:text=La%20versione%20beta%20%C3%A8%20stata,rilasciato%20il%2012%20novembre%202007. 2011] quando venne introdotta la possibilità di effettuare un backup completo senza lo sblocco del [[Boot loader#:~:text=%22Petitboot%22).-,Bootloader mobile,gli smartphone che montano Android.|Boot Loader]] di un dispositivo android.
 
== Caratteristiche ==
ADB viene utilizzato per eseguire comandi da [[Interfaccia a riga di comando|riga-comando]]. Con questi comandi gli [[Sviluppatore software|sviluppatori]] possono modificare le proprie applicazioni in sviluppo o le [[Read Only Memory|ROM]], mentre gli utenti possono personalizzare determinati aspetti del dispositivo, eseguire [[Debugging|debug]] di applicazioni, accedere a funzionalità nascoste e recuperare dati dal dispositivo quando è in modalità recupero<ref> [https://www.notizietecnologia.it/come-avviare-e-utilizzare-la-recovery-mode-su-android/#:~:text=A%20condizione%20che%20il%20toolkit,l'%20opzione%20di%20debug%20USB. Come avviare e utilizzare la Recovery Mode su Android - Notizie sulla tecnologia]</ref>.
[[File:Android Device Monitor.png|sinistra|miniatura| Android Device Monitor]]
Le funzionalità di adb comprendono la copia di file dal computer host,<ref>{{Cita libro|nome=Lauren|cognome=Darcey|titolo=Android wireless application development|url=https://www.worldcat.org/oclc/749852462|edizione=3rd|data=2012|editore=Addison-Wesley|oclc=749852462|ISBN=978-0-321-81383-1}}</ref> l'installazione di applicazioni, la visualizzazione dell'output di logcat, l'accesso a una [[shell Unix]],<ref>{{Cita web|lingua=en|autore=Barry Burd|url=https://www.dummies.com/web-design-development/mobile-apps/android-apps/things-you-can-do-with-androids-adb-command/|titolo=Things You Can Do with Android's adb Command|sito=[[For Dummies]]|accesso=3 luglio 2025|urlarchivio=https://web.archive.org/web/20180515143530/https://www.dummies.com/web-design-development/mobile-apps/android-apps/things-you-can-do-with-androids-adb-command|urlmorto=no}}</ref> e il riavvio in modalità Qualcomm EDL.<ref>{{Cita libro|nome=CHUCK|cognome=EASTTOM|titolo=An In-Depth Guide to Mobile Device Forensics|url=https://www.worldcat.org/oclc/1250310301|data=2021|editore=CRC PRESS|pp=72|oclc=1250310301|ISBN=978-0-367-63300-4}}</ref> Ad esempio, [[APK (formato di file)|le applicazioni]] Android possono essere salvate tramite il comando <code>backup</code> in un file.<ref>{{Cita web|autore=Jack Wallen|url=https://www.techrepublic.com/article/how-to-create-a-full-backup-of-your-android-device-without-root/|titolo=How to create a full backup of your Android device without root|data=6 marzo 2015|accesso=3 luglio 2025|urlarchivio=https://web.archive.org/web/20160124184710/https://www.techrepublic.com/article/how-to-create-a-full-backup-of-your-android-device-without-root/|urlmorto=no}}</ref> Include anche il supporto per il protocollo Java Debug Wire.<ref name=":032">{{Cita libro|nome=Rajaram|cognome=Regupathy|titolo=Unboxing Android USB: a hands-on approach with real World examples|url=https://www.worldcat.org/oclc/880673864|data=2014|oclc=880673864|ISBN=978-1-4302-6209-1}}</ref>
 
Sono state rese disponibili alcune [[Interfaccia grafica|interfacce grafiche]]. L'Android Device Monitor, fornito all'interno di [[Android Studio]], permette di ottenere informazioni dettagliate da un dispositivo Android.<ref>{{Cita libro|nome=Ivan|cognome=Morgillo|nome2=Stefano|cognome2=Viola|titolo=Learning embedded Android N programming: create the perfectly customized system by unleashing the power of Android OS on your embedded device|url=https://books.google.com/books?id=bOrUDQAAQBAJ|data=2016|p=89|oclc=1020708322|ISBN=9781785283284}}</ref>
Per permettere la comunicazione fra computer e il dispositivo sono necessari un cavo [[USB]] o una connessione [[wireless]].
 
Il metodo di Android per installare file APK su un dispositivo è stato utilizzato per installare manualmente applicazioni non ufficiali su [[Windows 11|Windows Subsystem for Android]]<ref>{{Cita web|autore=Skanda Hazarika|url=https://www.xda-developers.com/how-to-sideload-android-apps-on-windows-11/|titolo=How to sideload Android apps on Windows 11|data=23 gennaio 2022|accesso=3 luglio 2025}}</ref> e sulla [[macchina virtuale]] Android di Chrome OS.<ref>{{Cita web|autore=Arif Bacchus|url=https://www.xda-developers.com/how-sideload-apps-chromebook/|titolo=How to sideload apps to a Chromebook|data=5 marzo 2023|accesso=3 luglio 2025}}</ref>
Per motivi di sicurezza nella fase preliminare bisogna attivare le funzionalità aggiuntive di Android ovvero le "Opzioni sviluppatore"<ref>[https://www.navigaweb.net/2013/11/opzioni-sviluppatore-android.html Opzioni sviluppatore]</ref> abilitando la voce "Debug USB"<ref>[https://www.aranzulla.it/come-attivare-debug-usb-1144637.html Debug USB]</ref>, che consente di accedere direttamente al [[file system]] di un dispositivo Android da un computer desktop.
 
Shizuku consente a un telefono Android di collegarsi al proprio ADB quando è connesso a una rete wireless. L'applicazione è disponibile gratuitamente su [[Google Play|Google Play Store]].<ref>{{Cita web|url=https://shizuku.rikka.app/guide/setup/|titolo=User manual {{!}} Shizuku|sito=shizuku.rikka.app|accesso=3 luglio 2025}}</ref>
Senza il debug abilitato, è possibile interagire solo con [[Multimedia Terminal Mobile|l'archivio multimediale]] del dispositivo, cioè per esempio con la [[Secure Digital|scheda SD]] o una directory multimediale appositamente [[Formattazione|formattata]].
 
== ComponentiStoria ==
L'[[Android SDK|Android Software Development Kit]] (SDK) è stato rilasciato per la prima volta nel 2007.<ref>{{Cita web|lingua=en|url=https://www.macworld.com/article/188112/androidsdk.html|titolo=Google releases Android SDK|sito=Macworld|accesso=3 luglio 2025}}</ref> Dal 2017, Google ha reso possibile scaricare adb separatamente dall'Android SDK.<ref>{{Cita web|lingua=en|autore=Ryan Whitwam|url=https://www.androidpolice.com/2017/01/05/google-makes-adb-fastboot-platform-tools-available-without-full-sdk-android-studio-download/|titolo=Google makes ADB, fastboot, and other platform tools available without full SDK or Android Studio download|sito=Android Police|data=5 gennaio 2017|accesso=3 luglio 2025}}</ref>
ADB è un programma [[Sistema client/server|client-server]] composto da tre elementi<ref>https://developer.android.com/studio/command-line/adb </ref>
 
Nel 2015, Microsoft ha rilasciato un emulatore Android in grado di connettersi al client adb.<ref>{{Cita web|lingua=en|autore=Cosmin Vasile|url=https://news.softpedia.com/news/microsoft-releases-android-emulator-and-it-s-supposed-to-be-faster-than-google-s-488016.shtml|titolo=Microsoft Releases Android Emulator and It's Supposed to Be Faster than Google's|sito=softpedia|data=29 luglio 2015|accesso=3 luglio 2025}}</ref> Nel 2016, con [[Android Studio]] 2.0 si è registrato un miglioramento delle prestazioni di cinque volte nell'installazione delle applicazioni e nel trasferimento di file tramite adb.<ref>{{Cita web|lingua=en|url=https://android-developers.googleblog.com/2016/02/android-studio-20-beta.html|titolo=Android Studio 2.0 - Beta|sito=Android Developers Blog|accesso=3 luglio 2025}}</ref> Per semplificare l'uso di [[Android Things]], nel 2017 è stato creato un [[wrapper]] attorno ai comandi adb manuali.<ref>{{Cita web|lingua=en|url=https://android-developers.googleblog.com/2017/11/android-things-developer-preview-6.html|titolo=Android Things Developer Preview 6|sito=Android Developers Blog|accesso=3 luglio 2025}}</ref> Con Android 11 nel 2020, Google ha introdotto le installazioni incrementali tramite adb.<ref>{{Cita web|lingua=en|url=https://android-developers.googleblog.com/2020/09/android11-final-release.html|titolo=Turning it up to 11: Android 11 for developers|sito=Android Developers Blog|accesso=3 luglio 2025}}</ref> Nel 2020, su macOS, l'integrazione di adb via Wi-Fi è stata incorporata in Android Studio.<ref>{{Cita web|lingua=en|url=https://android-developers.googleblog.com/2020/12/announcing-android-studio-arctic-fox.html|titolo=Announcing Android Studio Arctic Fox (2020.3.1) & Android Gradle plugin 7.0|sito=Android Developers Blog|accesso=3 luglio 2025}}</ref> Nel 2021, con [[Android 12]], il comando <code>adb backup</code> è stato limitato: il backup dei dati utente delle app è diventato opzionale e richiede una configurazione esplicita nel manifesto di ciascun app,<ref>{{Cita web|url=https://developer.android.com/about/versions/12/behavior-changes-12?hl=it|titolo=Behavior changes: Apps targeting Android 12|sito=Android Developers|accesso=3 luglio 2025}}</ref> dopo la deprecazione di <code>adb backup e</code> <code>adb restore</code> in Android 10.<ref>{{Cita web|lingua=en-us|url=https://www.bleepingcomputer.com/news/mobile/google-considers-removing-android-adb-backup-and-restore/|titolo=Google Considers Removing Android ADB Backup and Restore|sito=BleepingComputer|accesso=3 luglio 2025}}</ref> [[Google Fuchsia|Fuchsia]] sarà retrocompatibile con adb, ma in seguito verrà sostituito dagli strumenti fx e ffx.<ref>{{Cita news|lingua=en|nome=Kyle|cognome=Bradshaw|url=https://9to5google.com/2022/08/26/fuchsia-adb-proposal/|titolo=Google wants to make Fuchsia devices manageable with Android’s ADB tool|pubblicazione=9to5Google|data=26 agosto 2022|accesso=3 luglio 2025}}</ref>
* Client: il computer, che dopo l'installazione dei [[driver]] ADB può inviare i comandi attraverso un [[Interfaccia a riga di comando|prompt di comandi come il CMD]] proprietario di Windows.
 
== Configurazione ==
* Daemon (ADBD): un processo che permette l'esecuzione dei comandi, installato sia sul computer che sul dispositivo Android. Il processo viene eseguito in [[Esecuzione in background|background]] e consente al dispositivo di accettare ed eseguire i comandi inviati dal client.
{{Galleria
|larghezza = 200px
|align = right
|sfondo = white
|bordo = black|File:USB debugging prompt warning - Android 13.png|Per abilitare il debug USB sul dispositivo Android, è necessario attivarlo nella finestra delle opzioni sviluppatore|File:USB debugging prompt - RSA auth - Android 13.png|Dopo che il dispositivo è stato collegato al computer host, l’utente deve verificare l’impronta della chiave RSA del computer host
}}
 
=== Computer host ===
* Server: un servizio che gestisce la comunicazione fra il [[client]] e il Daemon. Si attiva dopo aver eseguito il comando sul [[Interfaccia a riga di comando|prompt]] del client e permette la comunicazione e l'esecuzione di tutto il processo.
Per [[Microsoft Windows|Windows]], l'Android SDK contiene il binario adb.exe che può essere estratto e installato.<ref>{{Cita web|lingua=it|autore=B. M. Harwani|url=https://search.worldcat.org/title/862745697|titolo=PhoneGap build: developing cross platform mobile applications in the cloud|data=2013|p=38|accesso=3 luglio 2025}}</ref> How-To Geek consiglia di aggiungere la cartella contenente i binari alla variabile d'ambiente PATH.<ref>{{Cita web|lingua=en|autore=Chris Hoffman, Joe Fedewa, Nick Lewis|url=https://www.howtogeek.com/125769/how-to-install-and-use-abd-the-android-debug-bridge-utility/|titolo=How to Install and Use ADB, the Android Debug Bridge Utility|sito=How-To Geek|data=5 ottobre 2016|accesso=3 luglio 2025}}</ref>
 
Su [[Ubuntu]], adb può essere installato tramite il pacchetto <code>android-tools-adb</code>.<ref>{{Cita libro|nome=Neil|cognome=Smyth|titolo=Android Studio 4. 0 Development Essentials - Java Edition: Developing Android Apps Using Android Studio 4. 0, Java and Android Jetpack.|url=https://www.worldcat.org/oclc/1190906409|data=2020|oclc=1190906409|ISBN=978-1-951442-21-7}}</ref> Su [[Debian]], si consiglia di installare anche il pacchetto <code>android-sdk-platform-tools-common</code> insieme a <code>adb</code>, in quanto installa le regole [[udev]] necessarie per eseguire lo strumento senza [[Root (utente)|privilegi di root]].<ref>{{Cita web|url=https://packages.debian.org/stable/adb|titolo=Debian -- Details of package adb in bookworm|sito=packages.debian.org|accesso=3 luglio 2025}}</ref> Per macOS e altre distribuzioni Linux, è possibile scaricare le Platform Tools e aggiungere la cartella corrispondente alla variabile PATH modificando il file [[bash]]rc.<ref>{{Cita web|lingua=en|url=https://www.lifewire.com/android-debug-bridge-adb-4149410|titolo=How to Install Android Debug Bridge (ADB) and Fastboot|sito=Lifewire|accesso=2 luglio 2025}}</ref>
Se questi tre componenti non sono attivi il programma non potrà funzionare.
 
=== Dispositivo Android ===
[[File:PowerShell.png|PowerShell]]
In [[Android Jelly Bean|Android 4.2.2]] o versioni successive ([[Versioni di Android|livello API 17]]), viene mostrata una finestra di dialogo contenente l'impronta digitale RSA che l'utente deve accettare. Questa misura impedisce l'abuso del meccanismo di debug senza il consenso dell'utente.<ref>{{Cita web|url=https://developer.android.com/studio/run/device|titolo=Run apps on a hardware device|sito=Android Developers|accesso=3 luglio 2025}}</ref> A partire da Android 4.2, le opzioni sviluppatore sono nascoste per impostazione predefinita: per renderle visibili è necessario premere sette volte il numero di build nel menu Informazioni. In seguito è possibile abilitare l'opzione Debug USB.<ref>{{Cita web|lingua=en|url=https://www.techrepublic.com/topic/mobility/|titolo=Mobility|sito=TechRepublic|accesso=3 luglio 2025|urlarchivio=https://web.archive.org/web/20220926233940/https://www.techrepublic.com/article/pro-tip-how-to-enable-developer-options-in-android-42/}}</ref> Alcuni produttori di dispositivi Android utilizzano procedure diverse per abilitarlo. Ad esempio, [[Huawei]] richiede l'inserimento di un codice PIN prima di poter abilitare adb.
 
Se il [[Touch screen|touchscreen]] di un dispositivo Android è rotto, è possibile collegare un mouse al dispositivo tramite [[USB On-The-Go]] e abilitare il debug USB.<ref>{{Cita web|lingua=en|autore=Udochi Ogubuike|url=https://punchng.com/how-to-enable-usb-debugging-mode-on-android/|titolo=How to enable USB debugging mode on Android|sito=Punch Newspapers|data=9 agosto 2019|accesso=3 luglio 2025}}</ref><ref>{{Cita web|lingua=it|url=https://www.aranzulla.it/come-attivare-debug-usb-1144637.html|titolo=Come attivare debug USB|sito=Salvatore Aranzulla|accesso=3 luglio 2025}}</ref>
== Installazione ==
Esistono tre metodi principali per l'installazione.
 
== Architettura ==
* Il metodo più semplice è installare un [[Toolkit|tool]] completo dal [[XDA Developers|forum di XDA]]. Il Tool include un [[Interfaccia a riga di comando|prompt]] di comando e driver ADB per eseguire i comandi.
Il protocollo adb può essere trasmesso sia via USB sia via [[Wi-Fi]] su [[Transmission Control Protocol|TCP]]. Si basa su [[Sistema client/server|un'architettura client-server]] e utilizza due protocolli diversi: uno tra client e server e un altro tra server e demone. Il demone adb, implementato in [[C (linguaggio di programmazione)|C]], e si trova nello spazio utente di Android. La sua esecuzione fa uso del [[framework]] USB di Android, <code>UsbDeviceManager</code> e <code>UsbDebuggingManager</code>.<ref name=":0432">{{Cita libro|nome=Rajaram|cognome=Regupathy|titolo=Unboxing Android USB: a hands-on approach with real World examples|url=https://www.worldcat.org/oclc/880673864|data=2014|oclc=880673864|ISBN=978-1-4302-6209-1}}
* Un metodo alternativo consiste nello scaricare il tool per Windows [[Software development kit|SDK (software development kit)]] dal sito ufficiale di [[Google (azienda)|Google]]. Questo tool è dotato di un compilatore per tradurre il [[codice sorgente]]. Il Tool è utile per chi vuole analizzare o eliminare [[bug]].
</ref>
* [[Google (azienda)|Google]] dal 2017 permette di scaricare separatamente i driver di ADB<ref>https://www.androidpolice.com/2017/01/05/google-makes-adb-fastboot-platform-tools-available-without-full-sdk-android-studio-download/</ref> a differenza di tempo fa quando bisognava obbligatoriamente scaricare tutto il pacchetto [[Software development kit|SDK]] completo, si trova tutto sul sito ufficiale SDK.
 
=== Protocollo client ↔ server ===
== Connessione wireless ==
La comunicazione tra client e server avviene tramite un socket TCP. Il server attende connessioni su una porta alla quale il client deve inviare una richiesta. La richiesta contiene un campo iniziale di 4 byte in ASCII e un payload. Il payload inizia con la parola host per indicare che deve essere inviato al server. Il server può quindi rispondere con OKAY o FAIL per indicare lo stato, combinato con un payload facoltativo e la relativa lunghezza.<ref name=":0432"/>
L'evoluzione tecnologica ha permesso di utilizzare non solo il cavo [[USB]] per la connessione ADB ma anche una connessione [[wireless]] grazie al protocollo [[Suite di protocolli Internet|TCP/IP]]. Per questo esistono due metodi principali, distinti in base ai permessi di [[Rooting|ROOT]] del dispositivo Android.
 
=== Protocollo server ↔ demone ===
* Se il dispositivo non ha i permessi di [[ROOT]] occorre che sia sia il computer che il dispositivo Android siano connessi alla stessa rete. Al primo collegamento occorre quindi collegare il dispositivo Android tramite cavo USB ed eseguire il comando per ascoltare una connessione [[TCP/IP|TCP / IP]] su una [[Porta (reti)|porta]].
I messaggi inviati dal server sono costituiti da un'intestazione lunga 24 byte, contenente i seguenti campi:<ref name=":0432"/>
 
* Comando
* Se il dispositivo ha i permessi di root è possibile usare un'applicazione [[Google Play]] per abilitare la connessione in modo semplice.
* Primo argomento
* Secondo argomento
* Lunghezza del payload, 0 o superiore
* CRC-32 del payload dati
* Valore magico, calcolato come comando XOR <code>0xFFFFFFFF</code>
 
== Problemi comuniSicurezza ==
Fino ad [[Android Froyo|Android 2.2]], Android era vulnerabile [[Exploit|all'exploit]] ''RageAgainstTheCage''. Il [[Demone (informatica)|demone]] adb non controllava il valore di ritorno della [[chiamata di sistema]] [[Setuid e setgid|setuid]] durante la riduzione dei privilegi. L'exploit crea numerosi processi fino a esaurire gli [[PID (informatica)|identificatori di processo]] disponibili. Quando il demone si blocca e si riavvia, non riesce a creare un nuovo processo con privilegi ridotti e continua a funzionare con i privilegi di root, fornendo così una shell root tramite adb.<ref>{{Cita libro|nome=Joshua J.|cognome=Drake|titolo=Android hacker's handbook|url=https://www.worldcat.org/oclc/875820167|data=2014|editore=Wiley|pp=75|oclc=875820167|ISBN=978-1-118-60861-6}}</ref> Nel 2017 è stata scoperta una vulnerabilità di sicurezza che sfruttava ADB per prendere il controllo del [[modem]] integrato nel dispositivo. L'attacco richiedeva che adb fosse già abilitato e autorizzato, anche se erano disponibili alcune soluzioni alternative.<ref>{{Cita web|lingua=en|autore=Tom Mendelsohn|url=https://arstechnica.com/information-technology/2017/01/google-plugs-severe-android-bootmode-vulnerability/|titolo=Google plugs severe Android vulnerability that exposed devices to spying|sito=[[Ars Technica]]|data=9 gennaio 2017|accesso=3 luglio 2025}}</ref>
Alcuni problemi che si riscontrano più frequentemente nell'uso di Android debug bridge:
 
Diverse famiglie di [[malware]] come ADB.Miner, Ares, IPStorm, Fbot e Trinity, hanno eseguito scansioni su Internet alla ricerca di dispositivi con l'interfaccia adb esposta pubblicamente, installando su di essi malware.<ref>{{Cita web|lingua=en|autore=Catalin Cimpanu|url=https://www.zdnet.com/article/android-devices-ensnared-in-ddos-botnet/|titolo=Android devices ensnared in DDoS botnet|sito=ZDNET|accesso=3 luglio 2025}}</ref> Tuttavia, adb può anche essere utilizzato per rimuovere malware, avviando il dispositivo in [[modalità provvisoria]] ed eseguendo il comando <code>adb uninstall</code>.<ref>{{Cita news|lingua=en|autore=Evan Schuman|url=https://www.computerworld.com/article/3627326/this-vultur-app-takes-malicious-to-the-next-level.html|titolo=This Vultur app takes malicious to the next level|pubblicazione=[[Computerworld]]}}</ref>
* Le connessioni ADB non riuscite: Per problemi fisici ad esempio la porta USB del computer danneggiata o il [[USB|connettore USB]] del dispositivo android danneggiato.
 
== Note ==
* USB Android difettosi [[Driver]]<ref> [https://www.nextpit.it/adb-driver-android-cosa-sono-come-installarli Driver ADB: cosa sono e come installarli correttamente su Android! | NextPit]</ref>:Driver non aggiornati oppure driver difettosi, ci sono varie guide dove poter scaricare dei driver adeguati, di solito si scaricano i [[Driver|driver Universali]], si possono anche ricercare driver rilasciati dal produttore del dispositivo.
<references />
 
== Voci correlate ==
* Comando non trovato: Errore frequente può capitare per distrazione oppure non si ha l'ultima versione del [[software]], con il comando "ADB help"<ref name="helpmanual.io">https://helpmanual.io/help/adb/ </ref> nel prompt dei comandi comparirà la lista completa dei comandi.
 
* [[Android recovery mode]]
* Server is out of date: le versioni presenti di ADB sul computer non è compatibile con la versione del dispositivo.
* [[Fastboot]]
 
== ComeAltri si utilizzaprogetti ==
{{interprogetto}}
L'installazione di una [[Read Only Memory|ROM]] su un dispositivo richiede diversi passaggi.
 
== Collegamenti esterni ==
# Installare ADB dal sito ufficiale di SDK<ref> https://developer.android.com/studio/releases/platform-tools </ref>.
* {{Collegamenti esterni}}
# Installare il pacchetto [[ZIP (formato di file)|.zip]] della ROM.
* {{Sito ufficiale|https://developer.android.com/tools/adb}}
# Avviare ADB o Prompt dei comandi.
* {{Cita web|url=https://wiki.lineageos.org/adb_fastboot_guide|titolo=Using ADB and fastboot|sito=[[LineageOS]] wiki}}
# Mettere in comunicazione lo smartphone e il computer tramite connessione via cavo USB oppure connessione wireless.
* {{Cita web|url=https://wiki.archlinux.org/title/Android_Debug_Bridge|titolo=Android Debug Bridge|sito=[[Arch Linux]] wiki|accesso=2 luglio 2025}}
# Con un codice specifico inoltrare il pacchetto zip precedentemente scaricato sul computer allo smartphone; lo smartphone in ascolto riceve il [[Pacchetto (reti)|pacchetto]] e lo installa in automatico.
* {{Cita web|url=https://wiki.gentoo.org/wiki/Android/adb|titolo=Android/adb|sito=[[Gentoo Linux]] wiki|accesso=3 luglio 2025}}
# Al termine del processo,scollegare lo smartphone dal computer.
* {{Cita web|lingua=en|url=https://en.droidwiki.org/wiki/Android_Debug_Bridge|titolo=Android Debug Bridge (ADB)|sito=Android Wiki|accesso=2 luglio 2025|urlarchivio=https://web.archive.org/web/20240226120857/https://en.droidwiki.org/wiki/Android_Debug_Bridge|urlmorto=sì}}
* https://www.navigaweb.net/2013/11/opzioni-sviluppatore-android.html
* https://pypi.org/project/xcrun/
 
{{Android}}
== Codice ==
Alcuni esempi di comandi<ref name="helpmanual.io" /> utilizzabili con ADB attraverso un prompt o la [[Shell (informatica)|Shell]] sono:
 
{{Portale|informatica}}
* adb reboot → Per [[Boot|riavviare]] normalmente il dispositivo.
 
[[Categoria:Protocolli di comunicazione]]
* adb devices → Mostra i dispositivi android connessi con il PC.
[[Categoria:Debugging]]
 
* adb install → Per installare un'applicazione [[APK (formato di file)|.apk]]. Va inserito alla fine del comando il nome dell'applicazione
 
* adb pull → Per copiare un file dal dispositivo al pc.
 
* adb push → Per copiare un file dal pc al dispositivo.
 
* adb get-serialno → Mostra il [[numero di serie]] del dispositivo.
 
* adb logcat > Per visualizzare il [[Registro di sistema|file di registro]].
 
* adb get-state → Visualizza lo stato del dispositivo.
 
* adb start-server → Avvia il processo del [[server]] ADB.
 
* adb kill-server → Arresta il server ADB.
 
* adb shell → Impartisce comandi [[Linux]] al dispositivo Android. Quando appare il [[Interfaccia a riga di comando|prompt $]], vuol dire che tutto quello che andremo a fare e i comandi che digiteremo verranno eseguiti all'interno del dispositivo.
 
* adb reboot bootloader → Riavvia il dispositivo in modalità fastboot o modalità [[Boot loader|bootloader]].
 
* adb reboot recovery → Riavvia il dispositivo in in [[Android|recovery mode]].
 
== Equivalenti su Ios ==
Sono presenti due soluzioni differenti per utilizzare [[IOS|Ios]]<ref>https://forum.xda-developers.com/t/adb-for-ios.3258943/</ref> per il debug bridge.
 
Per Ios e [[Macintosh|Mac]] non esiste un programma paragonabile ad ADB, ma la situazione è più complicata<ref>[https://stackoverflow.com/questions/23430181/adb-equivalent-for-ios-device xcode - ADB equivalent for iOS device - Stack Overflow]</ref> e richiede l'esecuzione di un [[Jailbreak (iOS)|jailbreak]]. In questo modo si possono trasferire applicazioni (per esempio, il Mac viene fornito con [[Xcode]]); per eseguire le impostazioni dal terminale proprietario si può utilizzare un'applicazione, la quale però non è disponibile nell'[[App Store]].
 
In alternativa, è possibile usare uno strumento per Ios, il quale sfrutta [[Xcode]], un IDE per IOS SDK, utilizzato per sviluppare le applicazioni IOS su computer Mac. La parte fondamentale è XCRUN<ref>[https://pypi.org/project/xcrun/ XCRUN]</ref>: un file binario disponibile nello strumento Xcode in cui è possibile controllare il dispositivo.
 
Alcuni esempi di comando XCRUN sono:
 
* $xcrun simctl list → Fornisce la lista dei dispositivi connessi.
 
* $xcrun simctl list device types → Fornisce la lista dei tipi di dispositivi.
 
==Note==
<references />
 
== Collegamenti esterni ==
 
* https://www.navigaweb.net/2013/11/opzioni-sviluppatore-android.html
* https://pypi.org/project/xcrun/
[[Categoria:Android]]
[[Categoria:Tecnologia]]
[[Categoria:Informatica]]