当前位置: 首页 > 知识库问答 >
问题:

“adb root”命令返回“adbd无法在生产版本中作为root运行”,即使在模拟器上也是如此?

诸葛苏燕
2023-03-14

我正在尝试在模拟器上运行adb根命令;这是我连接的唯一设备:

$ adb devices
List of devices attached
emulator-5554   device

但是,我得到了以下错误消息:

$ adb root
adbd cannot run as root in production builds

为了解决我的问题,我尝试了以下答案:adb shell su有效,但adb root无效:

根据设计,adb根命令仅在开发版本中有效(即eng和userdebug,默认情况下ro.debuggable = 1)。或者,您可以使用修改过的adbd二进制文件(它不检查ro.debuggable)

然而,我不清楚如何将构建更改为开发构建而不是生产构建?

更新 我发现了一些额外的说明,使我相信要使它起作用,你需要使你的模拟器成为一个“可写系统”(参见 如何在模拟器中使AVD中的系统分区可写)。但是,如果我尝试

$ emulator -avd Nexus_5X_API_28 -writable-system
emulator: WARNING: System image is writable
emulator: ERROR: Running multiple emulators with the same AVD is an experimental feature.
Please use -read-only flag to enable this feature.

我真的不知道如何解析这个错误消息;这是否意味着系统映像已经是可写的?

共有2个答案

太叔京
2023-03-14

选择一个没有标记为“Google Play”的模拟器系统映像。

从…起https://stackoverflow.com/a/45668555.

田佐
2023-03-14

我检查了一些谷歌提供的模拟器。它们都是用户二进制文件,而不是工程师二进制文件。您可以使用“adb shell”命令自己检查。如果命令行以“#”开头,则为工程师构建。如果以“$”开头,则为用户构建。例如:

    < li>jackpot2lte:/ # =

只有工程师版本才能授予您root权限。您不能将用户版本更改为工程版本,但可以“根”它。请检查“How to get root access on Android emulator?”了解更多信息。

 类似资料:
  • 我有一部基于Android的手机(2.3.6 ),拥有解锁的root权限。因为我想通过我的电脑访问我的手机,所以今天我安装了QtAdb和Android SDK。如果我打开一个命令提示符,我这样做了 亚行壳牌su 我明白了 # 因此,我可以在手机上复制、删除和推送文件(在手机上,我会收到一个使用“SuperSU”应用程序的通知) 但如果我在Windows 7下启动QtAdb,我会得到以下错误:“ad

  • 理想情况下,我希望能够创建一个像.azcli这样的脚本,我可以在CosmosDB模拟器上本地运行,然后在我的devops管道中使用相同的脚本将资源上传到Azure。 这是我当前的 CLI 命令。 deploy-cosmos.azcli 我在Azure CLI文档中找不到任何提及CosmosDB模拟器的内容,并且CLI命令本身的参数似乎都无法直接指向模拟器。 https://docs.microso

  • 我正在运行最新版本的Mac OS,我想通过命令行工具运行android模拟器。我在Mac终端上运行了以下命令,得到了以下错误。 我还使用以下可用选项运行命令,这些选项也可以在官方文档developer.android.com上找到 我需要做什么,这样我就不需要每次都打开Android Studio而只打开模拟器。

  • 我刚刚安装了Android studio,并尝试将其进行测试运行。当我尝试运行我的应用程序时,我得到以下错误消息 有没有人知道怎么解决这个问题????

  • 我在一个maven项目中使用Eclipse Neon.3中的Lombok 在执行更新Maven项目(Alt F5)时,一切都很好,但只要我更改任何文件并保存(自动生成),就会出现错误,即使用的Getter不存在。 插件安装正确,我可以看到行“龙目1.16.16版”舞蹈大象安装。https://projectlombok.org/“在Eclipse About Dialog中。我还可以在类的大纲中看

  • 从PC上的shell中,我可以运行,获得所有已安装软件包的列表。我想在我的Android手机(Nexus 6P)的终端模拟器(目前使用Termux)中本地运行这个和类似的命令。 如果我用打开同一个shell,然后尝试运行,则不会发生任何情况(没有错误,只输出任何内容并重新加载提示)。 如果运行,选项列表将按预期显示。和在这两种环境中是相同的。一个主要区别是从返回“shell”,但从Termux启动