对于具有5.1.1和6.0的AVD,我在Windows中使用了下一个脚本:
set adb=adb -s emulator-5558
set arch=x64
set pie=
adb start-server
%adb% root
%adb% remount
rem %adb% shell mount -o remount,rw /system
%adb% shell setenforce 0
%adb% install common/Superuser.apk
%adb% push %arch%/su%pie% /system/bin/su
%adb% shell chmod 0755 /system/bin/su
%adb% push %arch%/su%pie% /system/xbin/su
%adb% shell chmod 0755 /system/xbin/su
%adb% shell su --install
%adb% shell "su --daemon&"
rem %adb% shell mount -o remount,ro /system
exit /b
需要SuperSU的UPDATE.zip。将它们解压缩到任何文件夹。创建上面内容的bat文件。不要忘记指定必要的体系结构和设备:set adb=adb -s emulator-5558
和set arch=x64
。如果您运行的Android高于或等于5.0,请更改set pie=
为set pie=.pie
。运行。您将获得当前运行的临时根目录。
如果重新安装系统分区时出错,则需要从命令行启动AVD。请参阅以下针对Android 7的第一步。
如果要使其永久存在-在SuperSU中更新二进制文件,并将temp文件夹中的system.img存储为默认system.img的替换。
如何在永久性上转换所得的临时根
首先-它去了SuperSu。它提供了二进制升级。以正常方式更新。重新启动拒绝。
第二-仅与仿真器有关。相同的AVD。底线是不会保存系统映像中的更改。您需要自己保留它们。
已经有针对不同仿真器的说明。
对于AVD,您可以尝试找到一个临时文件system.img,将其保存在某个地方,然后在启动模拟器时使用。
在Windows中,它位于中,%LOCALAPPDATA%\Temp\AndroidEmulator
名称类似TMP4980.tmp
。
您将其复制到文件夹avd设备(%HOMEPATH%\.android\avd\%AVD_NAME%.avd\
),然后重命名为system.img
。
现在将在开始时使用它,而不是通常使用的方法。如果SDK中的映像已更新,则为true,它将具有旧的映像。
在这种情况下,您将需要删除this system.img
,并在其创建时重复该操作。
俄语更详细的手册:http: //4pda.ru/forum/index.php?showtopic=318487&view=findpost&p=45421931
对于android 7,您需要运行其他步骤:1.需要手动运行模拟器。转到sdk文件夹sdk\tools\lib64\qt\lib
。从该文件夹模拟器运行,并带有如下选项-writable-system -selinux disabled
:
F:\android\sdk\tools\lib64\qt\lib>F:\android\sdk\tools\emulator.exe -avd 7.0_x86 -verbose -writable-system -selinux disabled
您需要adbd
从root 重新启动:
adb -s emulator-5554根目录
并重新安装系统:
adb -s emulator-5554 remount
每个运行模拟器只能捐赠一次。并且任何其他重新安装都可能破坏写入模式。因此,您不需要运行任何其他带有重装命令的命令,例如mount -o remount,rw /system
。
另一个步骤保持不变-上传二进制文件,将二进制文件作为守护程序运行,依此类推。
来自具有根目录的AVD Android 7 x86的图片:
如果您在执行su
二进制文件时看到有关PIE的错误-那么您将错误的二进制文件上传到仿真器。您必须su.pie
在归档文件中上传名为的二进制文件,但在仿真器上必须将其命名为su
,而不是su.pie
。