Android: adb: отказано в разрешении

59

Что бы я ни напечатал после "adb shell", он терпит неудачу с Permission denied:

D:\android-sdk-windows\platform-tools>adb shell find /data -name *.db
find: permission denied

D:\android-sdk-windows\platform-tools>adb shell test
test: permission denied

D:\android-sdk-windows\platform-tools>adb remount
remount failed: No such file or directory

Любые идеи?

  • 0
    Где вы пытаетесь запустить оболочку adb, в эмуляторе или на целевом устройстве; если на целевом устройстве вы не можете получить доступ к папке / data, пока у вас нет прав root.
  • 13
    после adb root >> adbd cannot run as root in production builds что делать?
Показать ещё 3 комментария
Теги:
adb

9 ответов

91
Лучший ответ

Согласно adb help:

adb root                     - restarts the adbd daemon with root permissions

Что действительно разрешило проблему для меня.

  • 2
    Вам также необходимо включить root-доступ для adb, если вы еще этого не сделали - см. Ответ @Macarse's Macarse.
  • 0
    На самом деле, непосредственная проблема заключается в том, что android все еще не (через два года после вашего написания) отправляет команду find . Тем не менее, без adb, работающего от имени пользователя root, это правда, что вы не сможете спуститься в раздел / data с помощью любой другой команды (хотя вы все равно сможете получить доступ к явным расположениям внутри него).
Показать ещё 2 комментария
17

Без rooting. Если вы не можете подключить свой телефон, используйте команду run-as <package> для доступа к данным вашего приложения.

Пример:

$ adb exec-out run-as com.yourcompany.app ls -R /data/data/com.yourcompany.app/

exec-out выполняет команду без запуска оболочки и обработки вывода.

  • 5
    Это работает только для приложений, созданных для отладки - то есть вы можете использовать его для разрабатываемых вами приложений, но оно не должно работать для производственных выпусков вашего приложения или чьих-либо приложений.
  • 1
    Это возвращает run-as: Could not set capabilities: Operation not permitted для меня
17

Причина отказа в доступе объясняется тем, что ваша машина Android не была правильно внедрена. Вы видели $ после запуска adb shell? Если вы правильно укоренили свою машину, вы бы увидели #.

Если вы видите $, попробуйте ввести режим суперпользователя, набрав su. Если Root включен, вы увидите # - без запроса пароля.

  • 2
    После того, как вы правильно рутировали свой компьютер, вам нужно будет включить root-доступ adb и запустить adb в режиме root, прежде чем ваш su шаг сможет сработать - см. Ответы @Macarse's Macarse и @Macarse's Roman.
  • 1
    Нет. Причиной отказа в разрешении является отсутствие команды find .
Показать ещё 1 комментарий
5

Возможно, вам потребуется активировать adb root из меню настроек разработчика. Если вы запустите adb root из строки cmd, вы можете получить:

root access is disabled by system setting - enable in settings -> development options

После активации опции root (только ADB или Apps и ADB) adb перезапустится, и вы сможете использовать root из строки cmd.

  • 3
    Если вы не видите пункт «Параметры разработчика» в меню «Настройки», см. Этот ответ, чтобы узнать, как сделать его видимым. (Короче говоря: Настройки> О телефоне> Номер сборки> Нажмите 7 раз (!).)
  • 0
    Но однажды я ничего здесь не вижу! Что это должно сказать?
Показать ещё 3 комментария
0

Раздел data недоступен для пользователя, не являющегося пользователем root, если вы хотите получить к нему доступ, вы должны получить root права на свой телефон.

adb root не работает для всех продуктов и зависит от типа сборки телефона.

В новой версии на Android Studio вы можете исследовать /data/data path для отлаживаемых приложений.

0

Будьте осторожны с косой чертой, измените "\" на "/", например: adb.exe нажмите SuperSU-v2.79-20161205182033.apk/storage

-2

Решение для меня было (спасибо to David Ljung Madison post)

-4

Запустите свой cmd как администратор, это решит мои проблемы. Благодарю.

  • 0
    Нет. Вопрос касается отказа от Android, а не от Windows.
-4

Сделайте adb remount. И затем попробуйте adb shell

  • 3
    adb remount дает: remount failed: No such file or directory
  • 1
    Нет, это не имеет никакого отношения к проблеме.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню