我正在模拟器上运行adb root
命令;这是我连接的唯一设备:
$ adb devices
List of devices attached
emulator-5554 device
但是,我收到以下错误消息:
$ adb root
adbd cannot run as root in production builds
我尝试按照adb shell su works but adb root does not这个答案来解决我的问题:
根据设计,adb根命令仅在开发版本中有效(即eng和userdebug,默认情况下ro.debuggable=1)。或者,您可以使用修改后的adbd二进制文件(不检查ro.debuggable)
但是,我不清楚如何将构建版本更改为开发构建版本而不是生产构建版本?
更新我发现了一些额外的说明,使我相信要使它工作,您需要使您的模拟器成为一个“可写系统”(参见How to make system partition in AVD in emulator writable)。
$ 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.
我真的不知道如何解析这个错误消息;这是否意味着系统映像已经是可写的?
3条答案
按热度按时间n7taea2i1#
我查了谷歌提供的一些模拟器。它们都是用户二进制,不是工程师二进制。你可以使用“adb shell”命令自己检查。如果命令行以“#"开头,则是工程师构建。如果命令行以“$"开头,则是用户构建。例如:
只有工程师内部版本才能给予您root权限。您不能将用户内部版本更改为工程师内部版本,但可以对其进行“root”操作。有关详细信息,请查看"How to get root access on Android emulator?"。
h43kikqp2#
选择一个模拟器系统映像,没有标记为“Google Play”。
从https://stackoverflow.com/a/45668555开始。
gev0vcfq3#
根据上面的Xanhacks答案详细说明
如果使用VSCode,请确保您可以在Android Studio中添加根虚拟设备(它可共享到VSCode)
然后搜索谷歌并下载Windows上的“adb平台工具”
使用下面的VSCode与设备交互的示例...(我已经在虚拟设备上安装了sqlite)