Android:adb:权限被拒绝

Can*_*ner 73 android adb

无论我在"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
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Rom*_*man 113

根据adb help:

adb root                     - restarts the adbd daemon with root permissions
Run Code Online (Sandbox Code Playgroud)

这确实为我解决了这个问题.

  • 运行“adb root”时会得到“adbd 无法在生产版本中以 root 身份运行”。这是在最近安装了最新 Android SDK 的 MacOS 上进行的。我认为这个答案根本不正确,而且我也看到其他人提到过这个问题。为什么这么多人点赞? (46认同)
  • 我收到“adbd 无法在生产版本中以 root 身份运行” (8认同)
  • 你的答案不清楚。这个评论应该在设备上还是在电脑上执行? (3认同)
  • 如果你还没有这样做,你还需要为adb启用root访问权限 - 请参阅@Masarse的回答. (2认同)

Fab*_*ndl 28

没有 root权限:如果您无法root您的手机,请使用该run-as <package>命令来访问您的应用程序的数据.

例:

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

exec-out 执行命令而不启动shell并修改输出.

  • 这仅适用于构建为可调试的应用程序 - 即,您可以将其用于正在开发的应用程序,但它不适用于您的应用程序的生产版本或任何其他人的应用程序. (6认同)
  • 这为我返回`run-as:无法设置功能:不允许操作` (3认同)

小智 17

"拒绝权限"的原因是因为您的Android计算机尚未正确生根.你有没有看到$你开始后adb shell?如果你正确地植根了你的机器,你会看到它#.

如果您看到$,请尝试键入以进入超级用户模式su.如果Root已启用,您将看到#- 无需输入密码.

  • 一旦你正确地植根了你的机器,你需要启用adb root访问权限并在你的`su`步骤可以工作之前以root模式运行adb - 请参阅@Masarse和@ Roman的答案. (2认同)

小智 7

以前的解决方案都不适合我,但我能够使用此命令使其工作

adb shell "run-as com.yourcompany.app cat /data/data/com.yourcompany.app/shared_prefs/SHARED_PREF_PROTECTED.xml" > SHARED_PREF_PROTECTED.xml
Run Code Online (Sandbox Code Playgroud)


Mac*_*rse 6

您可能需要从开发人员设置菜单中激活adb root.如果adb root从cmd行运行,您可以获得:

root access is disabled by system setting - enable in settings -> development options
Run Code Online (Sandbox Code Playgroud)

一旦激活root选项(仅限ADB或Apps和ADB),adb将重新启动,您将能够使用cmd行中的root.

  • **这个选项在Android版本**中不存在 - 如果它存在,它将仅限于某人的售后ROM. (41认同)
  • 如果您无法在"设置"菜单中看到"开发者选项"项,请参阅[此答案](http://stackoverflow.com/a/16866430/647939),了解如何使其可见.(简而言之:设置>关于手机>内部版本号>点击7次(!).) (4认同)

Gol*_*lil 5

data非root用户无法访问该分区,如果您想访问它,您必须root您的手机。

ADB root不适用于所有产品,并且取决于手机构建类型。

在新版本的android studio中,您可以探索/data/data可调试应用程序的路径。

更新2022

Android Studio 新版本有一些工具,例如Device ExplorerApp Inspection来访问应用程序数据。(应用程序必须可调试)。