Como configurar o acesso do ADB para dispositivos Android?

35

Estou usando o Ubuntu 12.10 e instalei o Android SDK, defina seu caminho no meu usuário .bashrc e ele funciona.

O problema é que meu telefone requer que o adb seja executado pelo root para permissões, mas executando o adb com o sudo eu recebo o seguinte erro:

sudo: adb: comando não encontrado

Eu tentei simplesmente usar sudo -E adb start-server , mas não funciona. Tentei adicionar a linha do caminho de exportação para /root/.bashrc e (depois de perceber que não ajudou) para /etc/bash.bashrc .

Eu lembro que eu poderia configurá-lo no meu Arch Linux, mas eu acho que o meu problema agora está ligado à conta de root do Ubuntu não se comportando como eu esperava.

O que não entendo é o seguinte:

Isso não funciona:

[email protected]:~$ sudo adb devices
sudo: adb: command not found

Isto faz (digitando o caminho completo):

[email protected]:~$ sudo /opt/android-sdk-linux/platform-tools/adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
CM7-Blade   device

Isso não funciona (usando -E com sudo):

[email protected]:~$ sudo -E adb devices
sudo: adb: command not found

Isso funciona (como root):

[email protected]:~$ sudo su
[email protected]:/home/martin# adb devices
List of devices attached 
CM7-Blade   device

Estou totalmente confuso agora e gostaria de receber alguns esclarecimentos sobre como definir um caminho para o sudo ou de que outra forma eu poderia resolver o meu problema.

(E por favor, não diga que o adb não deve ser executado como root.)

Obrigado antecipadamente!

Editar: Ao exigir permissões de root, quero dizer que preciso deles, porque senão recebo:

$ adb devices 
List of devices attached 
????????????    no permissions

que não ocorre como superusuário. Desculpe se foi mal entendido.

    
por Martin Fejes 07.11.2012 / 00:39

6 respostas

43

Por favor, leia o seguinte primeiro: Como configuro o Android ADB?

Configurando o acesso USB

Primeiro, você não precisa de permissões de root para executar o ADB se tiver definido as permissões de acordo. O site AOSP fornece exemplos para Configurar o Acesso USB para dispositivos Pixel / Nexus. Você pode usar o seguinte esquema para dispositivos que não são Nexus:

SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", ATTR{idProduct}=="xxxx", MODE="0600", OWNER="<username>"

O fornecedor e o ID do produto podem ser obtidos usando lsusb e pesquisando seu dispositivo. (Nota: o dispositivo, na verdade, é um Galaxy Nexus.)

$ lsusb | grep -i samsung
Bus 002 Device 103: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone [Galaxy S II]

Portanto, minha regra /etc/udev/rules.d/51-android.rules udev é assim:

# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="username"

Você pode querer repetir isso para os outros estados do telefone, como fastboot, se necessário. Para permitir que as alterações entrem em vigor, recarregue o udev ( sudo udevadm control --reload ) ou reinicialize (recomendado).

Disponibilizando programas

Em vez de modificar a variável de caminho , sugiro adicionar um link simbólico ao executável em ~/bin/ (usuário apenas) ou em /usr/local/bin/ (todo o sistema).

mkdir ~/bin/
ln -s /opt/android-sdk-linux/platform-tools/adb ~/bin/
    
por LiveWireBT 07.11.2012 / 02:26
29

Eu encontrei o mesmo problema com um tablet da China (um fabricante estranho).

Além do arquivo /etc/udev/rules.d/51-android.rules , também precisei alterar ~/.android/adb_usb.ini .

Execute abaixo no terminal;

sudo gedit ~/.android/adb_usb.ini

e seu arquivo adb_usb.ini deve se parecer com:

# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
# ie 0x2207
0x<!!!Your Vendor ID here!!!>

Dispositivo desconectado e reconectado e também necessário para executar os comandos abaixo no terminal;

adb kill-server

e depois

adb start-server

E o dispositivo foi detectado.

    
por Uygar Y 05.09.2013 / 13:33
2

No meu caso, em vez do modo MTP, alguns Smartphones precisavam apenas ser configurados no modo PTP, ao contrário da maioria dos dispositivos que precisavam que o modo MTP fosse detectado pelo meu Android Studio (v1.5.1).

Portanto, tente primeiro os modos MTP e PTP antes, sem precisar gastar tempo com a configuração ADP mais complexa do Unix e talvez prejudicando-os.

Em dispositivos mais recentes, você pode escolhê-lo diretamente nas opções de Dev, enquanto que, em versões mais antigas, ele está nas Opções conectadas por USB na barra de status.

No entanto, também para mim, os mais novos Sony Xperia Devices do Z5 e superior, não funcionarão, independentemente do modo USB. Talvez meu Android Studio seja antigo ou eu precise cavar também com as configurações Unix ADP.

    
por George Goodporter 06.02.2017 / 18:35
0

Siga estas etapas:

  1. Defina as versões do Android

    Inicialmente, vá para sua casa e pressione Ctrl + H , ele mostrará arquivos ocultos agora, procure por .bashrc file, abra-o com qualquer editor de texto e coloque as linhas abaixo no final do arquivo:

    export ANDROID_HOME=/myPathSdk/android-sdk-linux
    export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
    
  2. Reinicializar

  3. Usando o dispositivo para depurar

    Ouça a conexão:

    adb -a
    

    Conecte seu dispositivo Android e autorize-o:

    cordova run android --device
    
por Vladimir Tamayo 16.06.2016 / 18:23
0

Configurar o acesso USB

A abordagem recomendada é criar um arquivo em /etc/udev/rules.d/51-android.rules .

Por favor, digite Terminal:

wget -S -O - http://source.android.com/source/51-android.txt | sed "s/<username>/$USER/" | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules

Essas novas regras entram em vigor na próxima vez que um dispositivo é conectado. Por isso, pode ser necessário desconectar o dispositivo e conectá-lo novamente ao computador.

    
por Benny 07.09.2017 / 18:16
-1

Experimente este comando: sudo tools/android update sdk --no-ui

README do SDK:

  

Bem-vindo ao SDK do Android!   O arquivo do Android SDK contém inicialmente apenas as ferramentas básicas do SDK. Faz   não contém uma plataforma Android ou qualquer biblioteca de terceiros. Na verdade,   nem sequer tem todas as ferramentas necessárias para desenvolver um aplicativo.   Para começar a desenvolver aplicativos, você deve instalar as ferramentas da plataforma   e pelo menos uma versão da plataforma Android, usando o SDK Manager.   As ferramentas de plataforma contêm ferramentas de criação que são atualizadas periodicamente para oferecer suporte a novas   recursos na plataforma Android (é por isso que eles são separados do básico   Ferramentas SDK), incluindo adb, dexdump e outros.   Para instalar plataformas de ferramentas, plataformas Android e outros add-ons, você deve   ter uma conexão com a Internet, por isso, se você planeja usar o SDK enquanto   offline, por favor, certifique-se de baixar os componentes necessários enquanto estiver online.   Para iniciar o SDK Manager, por favor, execute o programa "android".   A partir da linha de comando, você também pode acionar diretamente uma atualização   executando: tools/android update sdk --no-ui

    
por user121040 05.12.2013 / 17:57