Android定制ROM,内嵌su和xposed

从Windows 98时代起,我就热衷于装系统。平均三天对着家里的台式机重装,重装,再重装。乐此不疲,后来到XP时代,有了GHOST,装的更疯狂了。现在到Android,仍然是刷刷刷,一直有个想法就是自己搞个ROM玩,于是这几天鼓捣了一下把su和xposed内嵌进去了。感谢大佬图乐的指点和讨论。

这里选择的是ota包,因为ota包可以修改updater-script来实现在recovery里面进行一些操作。

官方ROM下载地址为:https://developers.google.com/android/ota

将他解压,可以看到一些boot.img镜像之类的,这里我们关心META-INF文件夹,


里面的updater-script就是recovery刷入zip包时候的一些脚本拉,从这里修改一下脚本就可以做一些我们想做的事情。

精简&预装系统APP

这里我们想要实现精简系统APP,其实只需要将system挂载,并且删除/system/app下文件夹即可。并且想要增加系统APP,只需要创建对应文件即可。
在scripet结尾添加以下代码

以上代码展示的是删除预装app的过程,那么预装呢?

我们在zip包目录创建一个同样的system文件夹,里面放app文件夹,在用脚本把system提取到/system即可:

嵌入su

解压su.zip发现几乎和刷机包的原理一样,并且刷入su的过程其实是用脚本解压boot.img 修改文件值 再重新合并boot.img 在进行刷入。 所以我们只要在脚本里执行刷入su.zip的操作即可执行:

当然,这个时候zip目录要有对应的zip包。

嵌入xposed

这个是我卡了很久的地方,因为并不知道run_program的pwd,所以后来使用绝对路径并且用另一个脚本绕了一下:

其实xposed的刷入,就是把system的一些文件通过flash-script.sh进行替换链接等操作,所以我们只需把xposed包的system文件夹换一下位置,然后执行flash-script.sh即可:

install_xopsed.sh:

这里需要注意的是上面的注释,这个坑了我好几个小时,因为缺失注释导致无法使用run_program()方法运行。

修改完毕以后,将zip包打包即可

这里值得注意的一点是 必须在目录内部打包,在外部会多一层目录,导致无法找到updater-script,这里也坑了我一个多小时。。

参考资料http://bbs.gfan.com/android-8320983-1-1.html

2 thoughts on “Android定制ROM,内嵌su和xposed

发表评论

电子邮件地址不会被公开。