Ответ 1
Оставайтесь вне оболочки во время adb pull
.
У меня есть корневой телефон и работает adb в корневом режиме.
Я использовал оболочку adb для успешного доступа к телефону.
Я могу просматривать каталоги, даже те, кому нужен root.
Когда я пытаюсь использовать:
adb pull /data/data/my.app.path/databases/mydatabase.db /home/admin/Desktop/
Я получаю следующую ошибку:
error: device not found
Оболочка adb остается подключенной, и я могу продолжить просмотр SD-карты.
Может ли кто-нибудь сказать мне, откуда эта ошибка, и как я могу ее исправить, чтобы вытащить файл?
Оставайтесь вне оболочки во время adb pull
.
Кажется, что никто еще не дал объяснений.
Ошибка не имеет отношения к adb, выполняемому как root. Запуск adb pull
изнутри оболочки в Android ожидает, что Android-устройство (работающий сервер adb), подключенное к основному Android-устройству в качестве подчиненного устройства, которое, конечно же, не существует, и поэтому возникает ошибка.
Однако вы можете успешно запустить эту команду изнутри Android, если вы подключаете основное устройство Android через OTG к другому устройству и запускаете зарядку (становится подчиненным). Таким образом, вы действительно можете сделать adb shell
внутри вашего основного Android.
В противном случае вы можете запустить ADB на своем устройстве или другом устройстве в режиме TCP и сделать adb connect <IP:PORT>
изнутри основной оболочки устройства для подключения к локальному хосту или другой оболочке устройства.
Даже тогда ваша команда adb pull /data/data/my.app.path/databases/mydatabase.db /home/admin/Desktop/
будет терпеть неудачу, потому что в Android нет концепции каталога /home
, поэтому назначение просто не существует в Android.
Хотя вы уже знаете, вы должны вернуться к оболочке своего ПК, чтобы ваше основное устройство можно рассматривать как подчиненный или сервер, и ваша команда будет успешно работать (читатели: root требуется для выполнения этой команды).
Вы можете попробовать:
adb wait-for-device pull /data/data/my.app.path/databases/mydatabase.db
/home/admin/Desktop/
Этот способ adb
будет ждать подключения вашего устройства. Это может помочь, но я не уверен.
Не используйте 'pull для оболочки adb' вместо:
adb pull <path>