Android &引用;“亚洲开发银行根”;命令返回";adbd不能在生产版本中以根用户身份运行;甚至在模拟器上?
我试图在模拟器上运行Android &引用;“亚洲开发银行根”;命令返回";adbd不能在生产版本中以根用户身份运行;甚至在模拟器上?,android,adb,Android,Adb,我试图在模拟器上运行adb root命令;这是我唯一连接的设备: $ adb devices List of devices attached emulator-5554 device 但是,我收到以下错误消息: $ adb root adbd cannot run as root in production builds 我试着按照这个答案来解决我的问题: 按设计,adb根命令仅在开发版本中工作(即,默认情况下,eng和userdebug的ro.debuggable=1)。或者,您可以
adb root
命令;这是我唯一连接的设备:
$ adb devices
List of devices attached
emulator-5554 device
但是,我收到以下错误消息:
$ adb root
adbd cannot run as root in production builds
我试着按照这个答案来解决我的问题:
按设计,adb根命令仅在开发版本中工作(即,默认情况下,eng和userdebug的ro.debuggable=1)。或者,您可以使用修改后的adbd二进制文件(不检查ro.debugable)
但是,我不清楚如何将构建更改为开发构建而不是生产构建
更新
我发现了一些额外的说明,这些说明使我相信,要使它工作,您需要使您的模拟器成为一个“可写系统”(cf.)。然而,如果我尝试
$ 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.
我不确定如何解析这个错误消息;这是否意味着系统映像已经可以写入?我检查了谷歌提供的一些模拟器。 它们都是用户二进制,而不是工程师二进制。 您可以使用“adb shell”命令自己检查它。 如果命令行以“#”开头,则为工程师构建。如果以“$”开头,则为用户生成。例如:
- Jackpot2lt:/#=>工程师建造
- jackpot2lte://$=>用户构建
请查看更多信息。选择一个未标记为“Google Play”的仿真器系统映像
从.实际上,我在
adb shell中看到一个$
,表明它是一个用户构建。然而,从上面的评论来看,似乎还有一个userdebug
build?您能否检查这是否相关: