如你所见,这是个烂透了的Android脚本
一个使用libmagiskboot.so来解包Boot和init_boot镜像的脚本
是的,它只有这些作用。甚至需要一个第三方库!
-
首先,我们需要libmagiskboot.so,并将其置于脚本所在目录中,不要修改它的文件名。这个文件在Magisk的构建中(Magisk-vxx.x.apk/lib/arm64-v8a/libmagiskboot.so)。没有它,一切都无法进行。
-
其次,准备好你想要解包的Boot(init_boot)镜像,并将其置于脚本所在目录中,确保它的名字为“boot.img(init_boot.img)”
-
最后,以shell/root的身份执行此脚本。啪的一下,一个名叫“kernel”的文件就出现在脚本所在的目录中了
Caution
仅从可信渠道下载Magisk,其他渠道可能包含恶意文件
本项目不承担你乱用的后果
- 必须将libmagiskboot.so文件命名为
libmagiskboot.so - 必须将boot镜像命名为
boot.img
当前版本存在硬编码依赖,后续将优化
- 执行脚本
adb shell sh /storage/emulated/0/Download/main.shNote
“/storage/emulated/0/Download/main.sh”应替换为脚本的实际路径
若在手机上执行,应直接以“sh”开头,不要加上“adb shell”前缀
- 输出
(脚本输出)
(解包信息)
(其他)
Q:为什么部分脚本要以root/shell的身份来执行这个脚本?
A:想要解包Boot镜像,需要授予libmagiskboot.so执行权限。普通用户没这个权限,我也不了解System用户。
Q:为什么要把文件移动到/data/local/tmp进行解包操作(shell)
A:兼容性考虑
Q:为什么把kernel(ramdisk.cpio)移动回脚本目录要用复制+删除的方式,而不是直接移动
A:我这边测试发现直接移动文件会触发SELinux安全策略
Warning
严格遵循MIT许可证