Root有两种形式,一种是临时性的,即重新启动后,root会失效;另一种是永久性的,重启后也不会失效。
一 、临时性Root
首先配置好adb与emulator的环境,这样方便我们使用。
su文件:https://pan.baidu.com/s/1lz5AlJn90ag5-Hp4XRZ-IQ
re文件管理Apk:https://pan.baidu.com/s/1MQPuBL-_W97niDMqoy4vMQ
打开Android studio的终端,启动一个模拟器:
emulator -list-avds //查看有哪些模拟器
emulator -avd Pixel_2_API_25 -writable-system //启动一个模拟器
在打开一个终端用来输入一些命令,去root模拟器
adb root
adb remount //重新挂载,这样可以以读写的方式打开/system
接着输入以下命令去root模拟器
adb -e shell
su root
cd /system/xbin
chmod 06755 su
su --intall
su --daemon
setenforce 0
这样,我们就完成了对模拟的root,用一个RE文件管理来检查一下,只有在root的情况下它的root选项才会显示文件目录:
最后要注意几点,第一,在创建模拟器时,不要用它默认的API(Google Play),要选择Google API的镜像来创建模拟器,否则adb root命令执行不了。第二,在替换su文件时,如果是5.0版本以上,要用su.pie文件,且要和你选择API版本一致,比如你选了基于x86的镜像,就要选择x86文件夹下的su.pie。第三,这种方式的root是临时的,只要你重启模拟器,他就失效了,因为在一开始,我们的命令使用了 -writable-system,这样虽然可以实现对镜像的写操作,但只是临时,它会创建一个几百兆的文件,然后会在模拟器关闭时销毁。再一个可能因为模拟器的创建是对hardware-qemu.ini文件中指定镜像的一个拷贝,所以不能产生实质性的修改。
二、永久性root
对于永久性root,我们只好去下载一个夜神或逍遥等模拟器,用他们来实现我们的需求,而且他们的论坛也提供了比较好的支持。