c63f111078a805ab7d2a9f587e769298.png

慕仙森

如何root android模拟器(在Android 7.1.1 / Nougat上测试)要求:SuperSU app(chainfire)最新版本2.82恢复flashable.zip(包含su二进制)(如果主链接不起作用,这里是XDA用户 Ibuprophen提供的替代备份链接,用于可擦除的拉链: Flashable zip release)说明安装SuperSu.apk首先安装SuperSu应用程序,只需拖放(如果运行最新的模拟器版本或通过adb即侧载adb -e install supersu.apk)安装后,运行时会显示如下所示的屏幕,显示“没有安装SU二进制文件..”。此错误只是确认设备尚未生根。在此输入图像描述使模拟器的系统分区可写正如它所暗示的,我们需要赋予模拟器写入系统文件的权限。键入以下代码以完成此操作: emulator.exe -avd {emulator_name} -writable-system注意:导航到安装了Android SDK 的tools文件夹,然后按shift并右键单击打开命令提示符。在系统目录中推送su二进制文件提取Recovery flashable.zip(包含不同体系结构的su二进制文件)重要!只使用与你的avd架构相匹配的su二进制文件,例如x86,arm等..,并记下你提取这些二进制文件的路径。确保以root身份运行adb,并且还需要重新安装。只需输入这些代码adb rootadb remount现在是推动su二进制文件的时候了:这是我成功使用的代码:adb -e push C:\Users\User1\Desktop\rootemu\x86\su.pie /system/bin/su(没关系我的su二进制文件的具体位置,任何位置都可以,只要没有空格)注意:在控制台之前弄清楚bin或xbin做:> adb shell,>ls /system/xbin/su如果失败,请尝试将此推送到此目录/system/xbin/su。此外,对于运行Android 5.1及以下版本的模拟器,请使用su和不使用su.pie更改su二进制文件的权限接下来让我们对su二进制文件的权限进行一些修改。我们必须通过adb在模拟器设备中执行此操作:adb -e shellsu rootcd /system/binchmod 06755 su重要!!记下su二进制路径(我的是/ system / bin)install在su二进制上设置指令并设置一个daemon输入代码:su --install并设置守护进程:su --daemon&重要!!注意间距将SELinux设置为Permissive(即关闭SE Linux)最后通过以下代码关闭selinux:setenforce 0打开SuperSU应用程序,它可能会要求更新二进制文件,您可以使用Normal方法。注意:如果您遇到bootloops,而不是更新二进制文件,只需按原样使用它。这就是它!打开任何需要SU权限的应用程序只是为了仔细检查,事实上SuperSU会询问你是否希望授予它su权限。在此输入图像描述要使root持久化更新su二进制文件(使用Normal方法),然后从temp目录复制system.img(Users\AppData\Local\Temp\Android Emulator该文件通常是随机命名的,例如1359g.tmp大小)并替换default system.img。更新:我注意到在Linux中比在Windows中更容易获得临时系统映像。您可以尝试使用快照图像。2018年8月4日更新随着模拟器的出现,27.3.x它现在通过快照功能更容易保存root(如果复制system.img方法不起作用):理想情况下,它更像hibernarig配置完整的虚拟设备,因此一切都被保留。快照您现在可以为给定的设备配置保存多个AVD快照,并选择在启动仿真器时要加载哪些已保存的快照。通过加载快照启动虚拟设备非常类似于从睡眠状态唤醒物理,而不是从关闭状态启动它。这意味着启动模拟器的唯一要求是将-writable-system参数添加到正常emulator -avd [avdname]命令以启动模拟器。(仅使用运行模拟器emulator -avd [avdname]不会启动rooted版本/副本或可能导致一些错误)在API级别22上测试另外对于bootloop问题,请参阅另一篇文章:Android Emulator:如何在生根后避免引导循环?及其更新。备注参考的大多数内容是针对较旧的Android版本,因此我修改了不同命令和路径的原因。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐