Cos'è questa utility `adb` che continuo a ricevere consigli da usare?


10

In un mucchio di domande su questo sito vedo risposte che ci dicono di eseguire adb shello adb logcatcosì via.

Ora, non sono un utente completamente privo di conoscenza, quindi ho scaricato e installato Termux e ho un prompt della shell quando posso digitare i comandi, ma - da dove adbproviene questa cosa? Lo scarico come app? Non sembra essere installato di default (su un Redmi 3S, Android 6.0.1).

Inoltre, sembra che sia una specie di ascensore per i permessi. È come su? In caso contrario, come è diverso?



@RahulGopi: Sì, penso solo che potrebbe esserci una risposta sintetica qui sul sito.
einpoklum,

5
È lo strumento descritto nel nostro tag-wiki adb , con risorse collegate - te lo dicevo prima di indovinare :) Ricorda: molti dei nostri tag hanno wiki decenti :) Vedi anche qui sul nostro sito: Che cos'è ADB e perché viene usato per? Come lo installo sul mio dispositivo?
Izzy

L' ADB viene utilizzato per collegare mouse e tastiere a computer all'avanguardia.

Risposte:


33

Di adb

Per dirla in breve, adb(Android Debug Bridge) è un'utilità creata per essere installata su un computer, in modo da ottenere una shell su un telefono collegato tramite cavo USB o sulla stessa rete Wi-Fi.

Su alcuni dispositivi che eseguono Android Lollipop (5.1.1) e versioni probabilmente inferiori del sistema operativo, è stato possibile ingannare un dispositivo per connettersi a se stesso, poiché il adbclient è stato fornito in bundle anche nel telefono. Questo non è più possibile perché, da Android Marshmallow (6.0) in poi, Google ha rimosso il adbbinario dai telefoni per ridurre la superficie di attacco utilizzabile.

È possibile, tuttavia, reintrodurre manualmente il adbclient su un telefono, senza la necessità di compilare il file binario da soli. Fare riferimento al tag adb wiki per ulteriori informazioni su questo argomento, sull'installazione su un computer e sulla risoluzione generale dei problemi.


Dove trovarlo

Qualche tempo fa, al fine di ottenere adbe chiamare un'altra utility, fastbootsi doveva scaricare l'SDK completo di Android da Google, se si voleva un pacchetto ufficiale. Oggi è diventato disponibile un piccolo pacchetto ufficiale, come afferma XDA . Include binari per i sistemi operativi più comuni.


Come funziona

Il adbclient, installato sul computer, effettua una connessione a un telefono collegato o altrimenti rilevabile, tramite un server interno. Quindi, l'utente sarà in grado di inviare una varietà di comandi al telefono stesso, che verrà ascoltato da adbdun demone residente sul telefono.

Quando si utilizza adb, si rappresenta l'utente chiamato shell(UID 2000). Questo utente è speciale, in quanto può concedere autorizzazioni per le app e accedere a più informazioni di un semplice utente. Questo fatto, tuttavia, non significa che adbsia lo stesso di su, poiché quest'ultimo consente di impersonare qualsiasi utente.

Maggiori informazioni su adbe il suo funzionamento possono essere ottenute guardando la documentazione ufficiale .


Emissione di comandi da un telefono

La maggior parte dei comandi che possono essere emessi tramite adbtendono ad essere utility che vengono preinstallate in un telefono.

Per accedervi, è necessario installare un'app di emulazione terminale sul telefono (notare che Termux è speciale, in quanto specifica la propria PATH, ignorando così i file binari del sistema). Questo, ad esempio, ti consentirà di inviare comandi come logcatdirettamente sul tuo dispositivo mobile. Ricorda di omettere il adbprefisso, però.

Vale la pena ricordare che, se non si dispone delle autorizzazioni di root, la gamma di comandi che si sarà in grado di eseguire e le informazioni a cui si sarà in grado di accedere saranno significativamente inferiori rispetto all'utilizzo adb, poiché l'UID che le invoca sarà il app stessa e le app hanno meno autorizzazioni dell'UID 2000.


Molto bene! Purtroppo non posso votare due volte :) // Sì, i nostri wiki sono troppo spesso "quantità sconosciute". Non è possibile puntare abbastanza spesso. Ma includere un link in qualsiasi risposta menzionata sta andando un po 'lontano IMHO :) Dove si adatta (come qui: "per ulteriori dettagli ..."), una buona idea. Sentiti libero di andare avanti con quello - Vado avanti per la pulizia del commento nel frattempo :)
Izzy

@Izzy Buon punto. Aspettiamo e vediamo se lo spamming di link è effettivamente necessario.
Grimoire,

Prendi il mio voto, per favore.
iBug

@iBug Sono onorato.
Grimoire,

2

Android Debugging Bridge (ADB) .

Invia comandi tramite USB o Wifi a un dispositivo Android. In genere è installato sul computer collegato al dispositivo. Il client ADB può anche essere eseguito sul dispositivo stesso, tuttavia l'idea è di eseguire il debug in remoto del dispositivo.

Fa parte del Kit di sviluppo software Android

È quindi possibile utilizzare il gestore SDK per scaricare gli strumenti della piattaforma.

C'è anche un link più diretto qui nel caso in cui sei solo interessato agli strumenti della piattaforma

Documentazione ADB


Aspetta, se non è installato sul dispositivo, perché le persone suggeriscono di usarlo nelle shell sul dispositivo? ad esempio negli esempi che ho dato?
Einpoklum,

È un buon punto. Forse è più corretto dire che il comando adb è il "client" che si connette a un dispositivo Android. Il dispositivo Android può anche avere il client su di esso perché perché no. Ma è un po 'come eseguire ssh localhost
jdwolf il

Ad essere onesti, la documentazione spiega tutto questo: developer.android.com/studio/command-line/adb.html
jdwolf,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.