'error: dispositivo no encontrado' mientras está conectado al dispositivo a través de adb shell

Intentando desodexar mi Samsung Galaxy S4 (SC-04E).

Mi dispositivo aparece en adb devices, y puedo conectarme y conectarme con éxito adb shell. En cáscara:

C:\Users\username>adb devices
List of devices attached
905859f9        device
C:\Users\username>adb shell
shell@SC-04E: $ adb pull /system/app app/
error: device not found
shell@SC-04E: $ su
root@SC-04E:/# adb pull /system/app app/
error: device not found

No tengo idea de por qué estoy recibiendo este mensaje. Depuración de USB habilitada y confirmada, MTP activado, fuentes desconocidas activadas (también desactivadas) y el último controlador adb USB instalado (también intenté reinstalar/actualizar). También intenté reiniciar mi computadora y dispositivo varias veces, y probé diferentes puertos USB (3.0, 2.0, etc.).

Las búsquedas de Google solo me muestran soluciones para personas que carecían de la configuración obvia (depuración de USB) o que su dispositivo no aparece en absoluto en adb devices. Claramente se encuentra un dispositivo, ya que está conectado a un dispositivo.

Respuestas (1)

Debe ejecutarse adben su PC host en lugar de en su dispositivo. El adbes un programa host que opera en otro dispositivo. Para extraer datos de su teléfono, asegúrese de ejecutar adbasí:

C:\Windows\system32>adb extrae algo de su PC

Si ejecuta, adb shellentonces está ingresando a su teléfono, donde realmente se está ejecutando /system/bin/adben lugar de adb.exeen su PC con Windows. Su teléfono es un dispositivo cliente, no el dispositivo anfitrión.
Si desea extraer un archivo de un lugar requerido por la raíz, primero debe copiarlo en otro lugar antes de extraerlo. Como esto

C:\Windows\system32> shell adb
shell@SC-04E:/ $ su
root@SC-04E:/ # cp /ruta/a/algunarchivo /tarjetasd/algunarchivo
root@SC-04E:/ # salir
shell@SC-04E:/ $ salir
C:\Windows\system32>adb pull /sdcard/somefile D:\somefile

Para su pregunta sobre por qué adbno devuelve nada, puede probar esto para averiguarlo.
Conecte otro adb teléfono habilitado con un cable OTG en su teléfono principal (en su caso, Galaxy S4) y obtenga un emulador de terminal. Escriba adb devicesy ejecute en su teléfono principal, puede verlo así.

root@SC-04E:/ # dispositivos adb
Lista de dispositivos conectados
12345678 dispositivo
Eso hizo el truco. ¡Gracias! De alguna manera se perdió por completo que adb extrajo de la máquina host al dispositivo adb.