启用root访问:选择一个未标记为“Google Play”的模拟器系统映像(Android Studio版本的标签文本和其他UI细节因版本而异)。
异常情况:截至2020年10月8日,发布的R版“Android TV”系统映像将无法以root身份运行。 解决方法:改用发布的Q版(API级别29)Android TV系统映像。
测试:启动模拟器,然后运行adb root
。它应该会显示:
restarting adbd as root
或者
adbd is already running as root
而不是
adbd cannot run as root in production builds
备用测试:运行adb shell
,如果提示符以$
结尾,请运行su
。它应该会显示#
提示符。
步骤:安装和使用可以作为root身份运行的模拟器映像:
[此贡献归功于@Merk,但应该发布为答案而不是评论。]
Google APIs Intel x86 Atom System Image
? - Roni Castro如果您想获取 root 访问权限,那么您正在使用错误的模拟器映像。正如错误消息所述,在 生产 构建中不允许使用 root,而应改用 userdebug 构建。
请前往工具 -> SDK 管理器 -> Android SDK -- 现在 在第一个选项卡(SDK 平台)中,首先“选择”在页面底部显示包详细信息。 现在选择“Google API Intel x86 Atom 系统镜像”,取消选择“Google Play Intel x86 Atom 系统镜像”。 此模拟器不会显示“adbd 无法在生产构建中以 root 身份运行”的错误。 Google API 没有 Play Store 应用程序,只有 Play 服务。
build.gradle
文件中默认设置为release
构建模式。该模式不允许作为root与虚拟设备通信。必须启用调试模式。buildTypes {
release {
signingConfig signingConfigs.debug
}
}
变成
buildTypes {
debug{
debuggable true
}
}
我遇到了同样的问题并通过以下步骤解决:
第一步:进入工具 =》 Android =》 SDK管理器 =》 Android SDK -- 在(SDK平台)中选择“Google APIs Intel x86 Atom系统镜像”,不要选择“Google Play Intel x86 Atom系统镜像”。
第二步:创建一个新的模拟器,“不要选择Google Play商店”。