问题描述
在使用 Genymotion 虚拟设备(如 Nexus9 API 23 和 S8 API 24)时发现,这些设备没有 Superuser
应用程序。在这种情况下,通过 whoami
命令查询到当前用户是 root
,但仍然无法为应用程序提供 root 权限。
解决方案
方案1:尝试使用开发者选项中的相关设置
请注意,在操作前确保了解这些安全设置的风险,并做好相应的备份工作。
虽然问题中提到已经检查了链接并确认没有找到有效的解决方案。但是,还是可以尝试以下方案:
步骤1:启用Genymotion设备的Developer Options
- 打开 Genymotion 应用程序。
- 单击设备名称旁的三个点图标以展开操作菜单。
- 选择
More actions
->Settings
。 - 然后勾选
Show Developer选项(仅开发人员)
- 完成设置后,重启虚拟设备。
步骤2:启用Root权限
- 在虚拟设备中打开系统设置。
- 滑动找到“关于手机”并连续点击“版本号”七次。
- 返回设置菜单,进入开发者选项。
- 再次滑动至底部查找并启用
USB调试
与命令行root
步骤3:尝试通过特定脚本或应用获取Root权限
部分Genymotion的虚拟设备可能会预装了能够提供Root权限的应用程序,可以再次检查设备中是否有这样的应用程序,并尝试使用它们来获取Root访问。
方案2:通过adb shell获取临时root权限
如果上述方法不起作用,还可以考虑通过ADB(Android Debug Bridge)工具在命令行中获取临时的root权限。具体操作如下:
步骤1:安装Genymotion和ADB软件并启用设备
确保Genymotion已正确运行,并且能够识别所选虚拟机。同时在电脑上安装ADB相关工具。
步骤2:使用adb shell命令尝试获取Root访问
- 在命令行中切换到adb目录(通常是Android SDK工具目录)。
- 执行以下命令连接到虚拟设备:
bash
adb connect <Genymotion 设备IP地址> - 确保连接成功后,继续在命令行执行:
bash
adb shell
busybox su -c 'busybox chmod 666 /dev/pts/*'
步骤3:尝试运行root检查命令
一旦获取了足够权限,在shell中可以尝试以下常用命令来确认是否获得了Root权限:
whoami
如果输出为 root
,则表明当前session具有足够的root权限。
总结
根据上述方案所进行的测试和设置,有可能可以帮助你获得所需的root权限。需要注意的是,Genymotion某些版本可能存在限制或差异性问题,需耐心尝试不同的解决方案并逐步排查具体原因。
希望以上方法能够对你有所帮助!如果仍然存在问题,请考虑查看官方文档或社区论坛寻找更具体的解答。
正文完