Estou usando o Ubuntu 12.10 e instalei o Android SDK, defina o caminho no meu usuário .bashrc
e funcione.
O problema é que meu telefone exige que o adb seja executado pela raiz para obter permissões, mas ao executar o adb com o sudo, 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 /root/.bashrc
e (depois de perceber que isso não ajudava) /etc/bash.bashrc
.
Lembro que eu poderia configurá-lo no meu Arch Linux, mas acho que agora o meu problema está conectado à conta raiz do Ubuntu não se comportando como eu esperava.
O que eu não entendo é o seguinte:
Estes não funcionam:
martin@alyx:~$ sudo adb devices
sudo: adb: command not found
Isso ocorre (digitando o caminho completo):
martin@alyx:~$ 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):
martin@alyx:~$ sudo -E adb devices
sudo: adb: command not found
Isso funciona (como root):
martin@alyx:~$ sudo su
root@alyx:/home/martin# adb devices
List of devices attached
CM7-Blade device
Agora estou totalmente confuso e gostaria de esclarecer como definir um caminho para o sudo ou de que outra forma eu poderia resolver o meu problema.
(E não diga que o adb não deve ser executado como root.)
Desde já, obrigado!
Edit: Ao exigir permissões de root, quero dizer que preciso delas, caso contrário, recebo:
$ adb devices
List of devices attached
???????????? no permissions
o que não ocorre como superusuário. Desculpe se foi mal entendido.
Respostas:
Leia o seguinte primeiro: Como faço para configurar 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 adequadamente. O site AOSP fornece exemplos para configurar o acesso USB a dispositivos Pixel / Nexus. Você pode usar o seguinte esquema para dispositivos que não sejam do Nexus:
O ID do fornecedor e do produto pode ser obtido usando
lsusb
e pesquisando o seu dispositivo. (Nota: o dispositivo é realmente um Galaxy Nexus.)Portanto, minha
/etc/udev/rules.d/51-android.rules
regra do udev se parece com isso:Você pode repetir isso para os outros estados do telefone, como inicialização rápida, se necessário. Para permitir que as alterações entrem em vigor, recarregue o udev (
sudo udevadm control --reload
) ou reinicie (recomendado).Disponibilizando programas
Em vez de modificar a variável de caminho , sugiro adicionar um link simbólico ao executável em
~/bin/
(somente usuário) ou em/usr/local/bin/
(todo o sistema).fonte
adb devices
funciona para mim sem privilégios de root.Eu me deparei com o mesmo problema com um tablet da China (algum fabricante estranho).
Além do
/etc/udev/rules.d/51-android.rules
arquivo, eu precisava mudar~/.android/adb_usb.ini
também.Corra abaixo no terminal;
e seu
adb_usb.ini
arquivo deve se parecer com:Dispositivo desconectado e reconectado e também necessário para executar os comandos abaixo no terminal;
e depois
E o dispositivo foi detectado.
fonte
0x2207
no seu exemplo é o mesmo ID de fornecedor que meu dispositivo usa.No meu caso, em vez do modo MTP, alguns smartphones precisavam ser configurados no modo PTP, diferente da maioria dos dispositivos que exigem que o modo MTP seja detectado pelo meu Android Studio (v1.5.1).
Portanto, certifique-se de experimentar primeiro os modos MTP e PTP antes, sem precisar gastar tempo com a Configuração ADP mais complexa do Unix e talvez prejudicá-los.
Em dispositivos mais novos, você pode selecioná-lo diretamente nas opções de desenvolvedor, enquanto nos mais antigos, nas Opções conectadas por USB na barra de status.
No entanto, também para mim, os mais recentes dispositivos Sony Xperia da Z5 e superior, não funcionarão independentemente do modo USB. Talvez o meu Android Studio seja antigo ou precise cavar também com as configurações do Unix ADP.
fonte
Siga esses passos:
Definir vars android
Inicialmente, vá para sua casa e pressione Ctrl+ Hele exibirá os arquivos ocultos agora, procure o
.bashrc
arquivo, abra-o com qualquer editor de texto e coloque as linhas abaixo no final do arquivo:Reiniciar
Usando o dispositivo para depurar
Escute a conexão:
Conecte seu dispositivo Android e autorize-o:
fonte
Configurando o acesso USB
A abordagem recomendada é criar um arquivo em
/etc/udev/rules.d/51-android.rules
.Digite o Terminal:
Essas novas regras entram em vigor na próxima vez que um dispositivo for conectado. Portanto, pode ser necessário desconectar o dispositivo e conectá-lo novamente ao computador.
fonte
Embora a resposta aceita tenha me ajudado a fazer as coisas, eu ainda estava confuso sobre:
e especialmente
pois de acordo com
sudo --help
:Acontece que em muitas distribuições linux (que incluem Debian e Ubuntu)
secure_path
eenv_reset
opções estão ativadas por padrão, que redefinem suaPATH
variável e a definem comosecure_path
. Você pode alterá-lo no/etc/sudoers
arquivo usando o visudo.Como alternativa, você pode executar:
fonte
Tente este comando:
sudo tools/android update sdk --no-ui
LEIA-ME DO SDK:
fonte