Estoy usando Ubuntu 12.10 y he instalado Android SDK, configuré su ruta en mi usuario .bashrc
y funciona.
El problema es que mi teléfono requiere que adb se ejecute por root para obtener permisos, pero al ejecutar adb con sudo obtengo el siguiente error:
sudo: adb: comando no encontrado
Intenté usarlo simplemente sudo -E adb start-server
, pero no funciona. Intenté agregar la línea de ruta de exportación a /root/.bashrc
y (después de darme cuenta de que no ayudó) a /etc/bash.bashrc
.
Recuerdo que podría configurarlo en mi Arch Linux, pero supongo que mi problema ahora está conectado a la cuenta raíz de Ubuntu que no se comporta como lo esperaba.
Lo que no entiendo es lo siguiente:
Estos no funcionan:
martin@alyx:~$ sudo adb devices
sudo: adb: command not found
Esto hace (escribiendo la ruta completa):
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
Esto no funciona (usando -E con sudo):
martin@alyx:~$ sudo -E adb devices
sudo: adb: command not found
Esto funciona (como root):
martin@alyx:~$ sudo su
root@alyx:/home/martin# adb devices
List of devices attached
CM7-Blade device
Ahora estoy totalmente confundido y agradecería algunas aclaraciones sobre cómo establecer un camino para sudo o cómo podría resolver mi problema.
(Y por favor, no digas que adb no debería ejecutarse como root).
¡Gracias por adelantado!
Editar: Al requerir permisos de root quiero decir que los necesito porque de lo contrario obtengo:
$ adb devices
List of devices attached
???????????? no permissions
que no ocurre como superusuario Lo siento si fue un malentendido.
Respuestas:
Lea primero lo siguiente: ¿Cómo configuro Android ADB?
Configurar acceso USB
Primero, no necesita permisos de root para ejecutar ADB si ha configurado los permisos en consecuencia. El sitio de AOSP proporciona ejemplos para configurar el acceso USB para dispositivos Pixel / Nexus. Puede usar el siguiente esquema para dispositivos que no sean Nexus:
El proveedor y la identificación del producto se pueden obtener usando
lsusb
y buscando su dispositivo. (Nota: el dispositivo en realidad es un Galaxy Nexus).Entonces mi
/etc/udev/rules.d/51-android.rules
regla de udev se ve así:Es posible que desee repetir esto para los otros estados del teléfono como fastboot si es necesario. Para que los cambios surtan efecto, vuelva a cargar udev (
sudo udevadm control --reload
) o reinicie (recomendado).Hacer programas disponibles
En lugar de modificar la variable de ruta , sugeriría agregar un enlace simbólico al ejecutable en
~/bin/
(solo usuario) o en/usr/local/bin/
(todo el sistema).fuente
adb devices
funciona para mí sin privilegios de root.Me encontré con el mismo problema con una tableta de China (algún fabricante extraño).
Además del
/etc/udev/rules.d/51-android.rules
archivo, necesitaba cambiar~/.android/adb_usb.ini
también.Ejecutar a continuación en la terminal;
y su
adb_usb.ini
archivo debería verse así:Dispositivo desconectado y reconectado y también necesitaba ejecutar los siguientes comandos en el terminal;
y después
Y el dispositivo fue detectado.
fuente
0x2207
en su ejemplo es la misma ID de proveedor que utiliza mi dispositivo.En mi caso, en lugar del modo MTP, algunos teléfonos inteligentes solo tenían que configurarse en modo PTP, a diferencia de la mayoría de los dispositivos que requerían que mi estudio Android detectara el modo MTP (v1.5.1).
Por lo tanto, asegúrese de probar primero los modos MTP y PTP antes sin necesidad de perder tiempo en la configuración ADP más compleja de Unix y quizás dañarlos.
En los dispositivos más nuevos, puede elegirlo directamente en las opciones de desarrollo, mientras que en los más antiguos está en las Opciones de conexión USB en la barra de estado.
Sin embargo, también para mí, los dispositivos Sony Xperia más nuevos de Z5 y superiores no funcionarán sin importar el modo USB. Tal vez mi Android Studio es viejo o necesito cavar también con las configuraciones de Unix ADP.
fuente
Sigue estos pasos:
Establecer Android Vars
Inicialmente vaya a su casa y presione Ctrl+ H, le mostrará archivos ocultos, ahora busque el
.bashrc
archivo, ábralo con cualquier editor de texto y luego coloque las líneas a continuación al final del archivo:Reiniciar
Usando el dispositivo para depurar
Escuche la conexión:
Conecte su dispositivo Android y autorícelo:
fuente
Configurar acceso USB
El enfoque recomendado es crear un archivo en
/etc/udev/rules.d/51-android.rules
.Por favor, escriba Terminal:
Esas nuevas reglas entrarán en vigencia la próxima vez que se conecte un dispositivo. Por lo tanto, podría ser necesario desconectar el dispositivo y volver a enchufarlo a la computadora.
fuente
Aunque la respuesta aceptada me ayudó a hacer las cosas, todavía estaba confundido acerca de:
y especialmente
ya que según
sudo --help
:Resulta que en muchas distribuciones de Linux (que incluye Debian y Ubuntu)
secure_path
y lasenv_reset
opciones están activadas de forma predeterminada, que restablecen suPATH
variable y la configuransecure_path
. Puedes cambiarlo en el/etc/sudoers
archivo usando visudo.Alternativamente, puede ejecutar:
fuente
Prueba este comando:
sudo tools/android update sdk --no-ui
SDK README:
fuente