在Android Studio Emulator (AVD) 上安装Magisk,获取root权限的新方法

序语

最近由于项目需要,来折腾了一下AVD的root,搜索了一下,网上的文章要么都是过时的,要么需要依赖一些第三方脚本,但这些第三方脚本最近都没有更新了。所以在此记录一个新的方法,不依赖三方脚本,能在最新的android api上进行root,这也是magisk官方在最近才提供的方法,过程非常简单清晰。

一、创建并启动一个AVD

创建过程略,我在此创建了一个api 36的AVD,并记住自己选择的镜像

二、下载Magisk仓库

Magisk官方仓库地址:https://github.com/topjohnwu/Magisk

从以上地址下载代码并保存到电脑任意位置,也可以使用git下载源码:

git clone https://github.com/topjohnwu/Magisk.git

同时在该仓库的Release页面下载最新的magisk.apk,并安装在avd中。

三、创建ramdisk.img的patch文件

打开下载的Magisk源码文件夹,并进入其根目录。然后在当前位置打开命令行,运行以下命令:

./Magisk>build.py avd_patch --apk 【上一步下载的magisk.apk位置】 【创建avd时选择的镜像文件中的ramdisk.img位置】【输出patch后的ramdisk.img位置】

例如,对于我来说,我选择的镜像文件是带google api的api36镜像,其位于我的android sdk目录下的system-images\android-36\google_apis\x86_64\ramdisk.img,并且我将magisk.apk复制到了当前源码文件夹,最终输出的patch文件也放在当前文件夹,所以我的命令最终如下:

./Magisk>build.py avd_patch --apk Magisk-v30.7.apk D:\apps\install\android\sdk\system-images\android-36\google_apis\x86_64\ramdisk.img ramdisk_patched.img

注意,在 windows terminal 中执行可能会报错,请去掉最前面的 ./ 再重试

命令执行成功后,会在当前目录下生成ramdisk_patched.img文件,到这里我们已经成功90%了。

四、应用patch文件,获取root

关闭avd,将上一步得到的patch文件重命名为ramdisk.img并复制回avd使用的镜像目录,覆盖同名文件,并重新启动avd即可(注意这里需要cold boot,需要在avd的设置里调整一下

ps:我在这里使用的镜像目录为:
D:\apps\install\android\sdk\system-images\android-36\google_apis\x86_64

重启avd后打开magisk界面,它会提示进行一个小的修补,选择是,avd修补成功后自动重启,此时已经全部ok了,magisk能正常运行,zygisk也默认开启,root完毕。

app请求root截图

后续

如有其它需求,可当成手机一样,自行安装需要的模块和app,如Lsposed等。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐