2012-02-19 23 views
8

Altri potrebbero aver avuto problemi con il debug adb sotto ubuntu linux.Come connettere dispositivi Android con adb sotto ubuntu

Il sintomo è la disponibilità di dispositivi Android connessi tramite USB, ad es. con eclissi. Si può verificare questa con

adb usb 

Quando si arriva

error: insufficient permissions for device 

probabilmente esegue nello stesso problema come me. Tuttavia, ho trovato su internet alcune soluzioni più o meno sub ottimali

L'idea di base è di avviare adb come root. Le soluzioni che ho trovato erano ingombranti.

Una proposta è quella di avviare adb per sudo. Un'altra proposta era di impostare uno script di avvio in /etc/init.d

La mia soluzione è dare adb il permesso di iniziare come root. Per fare ciò, passare a radicare

sudo bash 
chown root adb 
chmod ug+s-w adb 

fanatici di sicurezza possono proporre

sudo chown root adb 
sudo chmod ug+s-w adb 

Se adb è già in esecuzione è necessario uccidere il demone di iniziare con i permessi dell'utente root

adb kill-server 

Quando tutto andato a destra

adb usb 

dovrebbe restituire

restarting in USB mode 

altrimenti provare lsusb ° verifica se il dispositivo è già collegato

+0

ti prego, non farlo! Gli autori del programma adb non intendevano eseguire il proprio lato di sviluppo come root, ma piuttosto utilizzare una regola di udev per consentire solo l'accesso ai tipi di dispositivi elencati. Affidarsi a un programma più che ai suoi autori è una pessima idea! Inoltre, si vota per chiudere in quanto non è stata posta una domanda, mentre l'argomento è già stato trattato numerose volte. –

risposta

11

Google raccomandato modo di trattare con i permessi dei dispositivi ADB è quello di creare una regola UDEV che impostare le autorizzazioni appropriate sul dispositivo enumerazione.

Come per http://developer.android.com/tools/device.html

Se si sta sviluppando su Ubuntu Linux, è necessario aggiungere un file di regole udev che contiene una configurazione USB per ogni tipo di dispositivo che si da utilizzare per lo sviluppo. Nel file rules, ogni produttore di dispositivo è identificato da un ID fornitore univoco, come specificato dalla proprietà ATTR idVendor} . Per un elenco di ID del fornitore, vedere ID fornitore USB, di seguito. Per configurare il rilevamento dei dispositivi su Ubuntu Linux: Accedi come root e crea questo file: /etc/udev/rules.d/51-android.rules. Utilizzare questo formato per aggiungere ogni fornitore al file: SUBSYSTEM == "usb", ATTR {} idVendor == "0bb4", MODE = "0666", GROUP = "plugdev"

In questo esempio, il l'ID del fornitore è per HTC. L'assegnazione MODE specifica i permessi di lettura/scrittura e GROUP definisce quale gruppo Unix possiede il nodo del dispositivo. Nota: la sintassi della regola può variare leggermente da a seconda del proprio ambiente. Consultare la documentazione di udev per il proprio sistema secondo necessità.Per una panoramica della sintassi delle regole, vedere questa guida a scrivendo le regole di udev. Ora esegui: chmod a + r /etc/udev/rules.d/51-android.rules Se collegato tramite USB, è possibile verificare che il dispositivo sia connesso eseguendo dispositivi adb da la propria directory/strumenti della piattaforma SDK. Se connesso, vedrai il nome del dispositivo elencato come "dispositivo".

2

uso seguenti tre comandi sue opere per me

sudo bash 
adb kill-server 
adb usb 
+1

-1 Non eseguire adb come root –

Problemi correlati