«ошибка: устройство не найдено» при подключении к устройству через оболочку adb

Пытаюсь деодексировать свой Samsung Galaxy S4 (SC-04E).

Мое устройство появляется на adb devices, и я могу успешно подключиться и su с adb shell. В ракушке:

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

Я понятия не имею, почему я получаю это сообщение. Отладка по USB включена и подтверждена, MTP включен, неизвестные источники включены (также отключены) и установлен последний USB-драйвер adb (также пытался переустановить/обновить). Я также несколько раз пытался перезагрузить компьютер и устройство и пробовал разные порты USB (3.0, 2.0 и т. д.).

Поиски в Google показывают мне решения только для людей, которым не хватает очевидных настроек (отладка по USB) или их устройство вообще не отображается на adb devices. Устройство явно найдено, так как оно подключено к устройству.

Ответы (1)

Вы должны работать adbна своем хост-компьютере, а не на своем устройстве. Это adbхост-программа, которая работает на другом устройстве. Чтобы получить данные с телефона, убедитесь, что вы работаете adbследующим образом:

C:\Windows\system32>adb вытащите что-нибудь на свой компьютер

Если вы бежите adb shell, вы входите в свой телефон, где вы фактически работаете, /system/bin/adbа не adb.exeна своем ПК с Windows. Ваш телефон является клиентским устройством, а не хост-устройством.
Если вы хотите извлечь файл из нужного для root места, вы должны сначала скопировать его в другое место, прежде чем извлекать. Так

C:\Windows\system32>оболочка adb
оболочка@SC-04E:/ $ su
root@SC-04E:/ # cp /path/to/somefile /sdcard/somefile
root@SC-04E:/ # выход
shell@SC-04E:/ $ выход
C:\Windows\system32>adb pull /sdcard/somefile D:\somefile

На ваш вопрос о том, почему adbничего не возвращается, вы можете попробовать это выяснить.
Подключите другой adb телефон с поддержкой , используя кабель OTG к вашему основному телефону (в вашем случае Galaxy S4) и получите эмулятор терминала. Введите adb devicesи запустите на своем основном телефоне, вы можете увидеть это так.

root@SC-04E:/ # устройств adb
Список подключенных устройств
12345678 устройство
Это помогло. Спасибо! Как-то совершенно упустил, что вы вытягиваете adb с хост-машины на adb-устройство.