Android adb sin permiso

33

Estoy tratando de usar adb desde una máquina Ubuntu (+ Cinnamon). El problema es que recibo el siguiente mensaje de los dispositivos adb :

List of devices attached
TA8830OIVO  no permissions

Donde TA8830OIVO es mi dispositivo Motorola G.

Cambié las reglas de Android en /etc/udev/rules.d/51-android.rules

SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="2e76",
MODE="0666", GROUP="plugdev", SYMLINK+="android_adb", OWNER="axel"

También reinicié el servicio udev y instalé adb en mi computadora portátil personal. Soy el único usuario con todos los privilegios necesarios (grupo plugdev, etc.).

¿Hay alguna manera de ejecutar adb sin invocar sudo ?

Shadox
fuente
1
Reiniciar udev y sudo udevadm triggerno funcionó para mí. Tuve que reiniciar la computadora y luego funcionó bien
Rafael Xavier

Respuestas:

65

Cambie el modo USB en su teléfono a Transferencia de archivos. Eso fue lo que funcionó para mí.

NuttLoose
fuente
Lo contrario es cierto para mí: la depuración de USB no funciona durante el modo de transferencia de archivos en algunos dispositivos antiguos.
Miha_x64
1
Actualización: acabo de notar que en mi teléfono (Android One), la depuración de USB también se puede habilitar mientras está en modo de carga en la Configuración del desarrollador.
NuttLoose
2
Cambiar al modo de transferencia de archivos funcionó para mí. En Android 7
Abrar
Kindle Fire 8 2019 - "Modo MTP" que está en configuración USB en Opciones de desarrollador
Bill McGonigle
Cambié y luego se me solicitó en el dispositivo que permitiera la depuración de usb: D
Maxwell sc
27
  1. Recuerde ejecutar sudo udevadm triggerpara aplicar los cambios (o reiniciar, pero ¿dónde está la diversión en eso?).
  2. En lugar de escribir sus propias reglas, use https://github.com/M0Rf30/android-udev-rules
  3. Asegúrese de tener la última versión de ADB (1.0.35 102d0d1e73de-android). Las anteriores no funcionaban con USB-C para mí.
zamber
fuente
Gracias pero es una pregunta un poco vieja. Me cambié a Mac hace 2 años. Me parece estúpido hacer cosas como lsusb y luego modificar las reglas cuando debería hacerse automáticamente ... Me di por vencido después de tantos años de uso de ubuntu. No puedo encontrar un sistema de escritorio Linux decente.
shadox
1
La pregunta tiene 6 meses y aún es válida para la posteridad. Hace 1 año dejé OS X después de una aventura de 3 años y volví a Linux por razones similares;). Linux tiene partes donde se vuelve frustrante, pero hay una cantidad similar de ajustes necesarios en OS X si usa homebrew + zsh + iTerm2. La diferencia es que esas cosas son en su mayoría versiones de código cerrado o desactualizadas de FOSS pero con una buena GUI y UX (en su mayor parte). El uso de las reglas del repositorio lo convierte principalmente en un paso de configuración único. Teniendo en cuenta los arcanos de lograr que el SDK de Android funcione de una manera sensata es jugar para niños pequeños.
zamber
1
Ejecutando esto y service udev restartno funcionó para mí. Tuve que reiniciar la computadora y luego funcionó bien.
Rafael Xavier
En ubuntu 16.04, establecer las reglas de udev, cambiar el modo usb en la transferencia de archivos del teléfono funcionó de maravilla. No es necesario reiniciar.
Gautam
En ubuntu 16.04 con un Pixel 2, agregar las reglas del gitbub del punto 2 funciona sin siquiera pasar al modo de transferencia de archivos.
Mike Hanafey
3

Si reinicia el servidor ADB con sudo, funcionará.

sudo adb kill-server
sudo adb start-server
Mukesh Bharsakle
fuente
0

Definir la función gradle personalizada:

task _adb_restart {
def adb = android.getAdbExe().toString()
group '__custom'
  doLast {
    exec {
      commandLine 'bash', '-c', '/bin/echo **root_password** | sudo -S ' + adb + ' kill-server'
    }
    exec {
      commandLine 'bash', '-c', '/bin/echo **root_password** | sudo -S ' + adb + ' devices'
    }
  }
}
usuario909720
fuente
0

La mejor solución y lo que funcionó mejor para mí es instalar adbdesde el paquete Ubuntu. Esto le proporciona un conjunto predeterminado de udevreglas mantenidas por la comunidad para todos los dispositivos Android.

ejemplo:

$ sudo apt-get install adb
alBaryonic
fuente
0

Para Amazon Fire OS 8, un sistema operativo basado en Android, puede ir a "Configuración> Opciones de dispositivo> Opciones de desarrollador". Es posible que deba habilitarlo .

Asegúrese de que la "Depuración de USB" esté activada (en su caso, lo está).

Luego vaya a "Redes> Seleccionar configuración USB". Elija "MTP (Protocolo de transferencia de medios)". Esto permite que la computadora envíe archivos de un lado a otro.

Johnathan J.
fuente
0

eliminar el paquete adb instalado a través de apt

$sudo apt remove adb

descargue el último adb de
https://developer.android.com/studio/releases/platform-tools

establecer la ruta a las herramientas de la plataforma (mejor poner estas dos líneas en el archivo ~ / .bashrc)

export PATH= /<path-to-android-sdk-folder>/android-sdk/tools/bin<br>
export PATH= /<path-to-android-sdk-folder>/android-sdk/platform-tools

correr

$source ~/.bashrc

comprobar ruta adb

$which adb

iniciar adb en sudo (necesitaba dar una ruta absoluta a adb cuando se ejecuta en sudo)

$sudo /<path-to-android-sdk-folder>/android-sdk/platform-tools/adb kill-server
$sudo /<path-to-android-sdk-folder>/android-sdk/platform-tools/adb start-server
$adb shell

HECHO.
funciona independientemente del modo USB (MIDI, transferencia de archivos, carga) del teléfono Android. Funciona en todos.

usuario1436887
fuente