在进行ROM移植之前呢,首先你要对你的机型配置和参数要有一点了解, CPU型号、分辨率、内存大小、是否支持外置内存卡、是否带有nfc功能 单卡or双卡、运营商信息;然后通过你这个参数去找相对应的机型。 接下来就是看你要移植机型的ROM是安卓几点几,然后找自己机型相对应的安卓版本rom作为移植底包(比如我是要移植红米note4G的miui,它是安卓4.44,我就要找我的机型的安卓4.4.4作为底包去移植)4.3可以移植4.4 5.0, 但是5.0以上不能移植4.4 4.3。
准备工具: 对比工具BeyondCompare;安装jdk并且配置好环境;准备好boot解包工具(百度一下很多种或者自行下载mkboot) ROM结构介绍: 在移植之前要先了解一下安卓ROM的基本结构和各个文件的基本属性 1、system/app这个里面主要存放的是常规的应用程序,都是以apk格式结尾的文件,在这个文件夹下面的程序为系统默认的组件,个人安装的软件不会出现在这里,而是data文件夹中。 2、system/bin 这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件。 3、system/etc 该文件夹下保存的都是系统的配置文件,比如APN接入点设置声音配置wifi配置蓝牙等核心的配置。 4、system/fonts 该文件夹下除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库或者一些unicode字库。 5、system/framework 该文件夹下主要是一些核心的文件,是系统平台的框架。 6、system/lib目录中存放的主要是一些硬件驱动或者系统的底层库,比如系统平台运行时的服务库,移植过程中很多关键的地方在于此。 7、system/media 该文件下包括开机动画的文件、音乐铃声文件夹,除此以外还包括一些系统提示音文件。 8、system/usr 用户文件夹,包括一些共享、时区文件、键盘的一些布局文件 9、META-INF 这个里主要是存放刷机脚本(META-INF\com\google\android_updater-script)和签名文件。 第一步,移植boot(内核): boot最简单的移植办法有两种: 一种是替换官方boot的kernel和dt_img这俩个文件到移植包内核里面 一种是替换移植包的ramdisk.gz到官方包内核里面 这是最简单的内核移植方法 第二步,移植system: ROM移植也就是拼包。操作简单不需要源码编译,也不需要专业知识,这是文件相互替换。 下载好移植包和官方底包 解开后再对比工具中打开 然后打开system对比 替换bin目录下/sdcard /vold 到移植包 替换etc/firmware到移植包 替换usr/keylayout到移植包 lib 和hw驱动暂时不换 接下来就是改刷机脚本中的分区挂载 updater-script这个文件是刷机时recovery所执行的二进制脚本也就是大家说的刷机脚本 主要修改的有:system分区,data分区,boot分区 分区一般有两种形态: 一种是: format("ext4", "EMMC", "/dev/block/bootdevice/by-name/system", "0", "/system"); mount("ext4", "EMMC", "/dev/block/bootdevice/by-name/system", "/system"); 另一种是: format("ext4", "EMMC", "/dev/block/mmcblk0p23", "0", "/system"); mount("ext4", "EMMC", "/dev/block/mmcblk0p23", "/system"); 一般同cpu分区基本相同 不需要改,如果是不同cpu的话就要参照官方修改分区脚本,否则很容易造成黑砖。 刷机脚本修改完呢,加上修改好的内核,然后打包签名进行刷机 如果出现不开机或者卡第二屏的话试试换下lib下的驱动注意不能换相机和声音驱动。 PS:注意以上教程仅适用于32位cpu的系统。 刷机测试过程中,对一些常见的bug的分析以及解决的方法 鉴于每位ROM制作者所移植的机型不同,进行了不同的修改和替换,难免在刷机和测试过程可能出现一些bug,接下来是一些常见的bug以及问题的解决方法: bug:无法打开wifi 解决办法:替换bin/wpa_xxx;替换etc/wifi bug:没有声音 解决办法: 替换\etc\mixer_pathsXXX.xml bug:能进系统但无法进入桌面 解决办法:lib下的liboverlay.so 以上只是简简单单的提到几个常见的问题和解决的方法,可能在移植过程和测试过程中还会有其他的bug需要自行研究解决~ 最后,祝你移植ROM成功!请大家不要觉得该移植过程繁琐,因为只有亲身体会了才知道移植ROM其中的乐趣和刷机成功那一刻的兴奋与激动。 嗯,好了,这时一个最简单的移植包就完成了~~~正常来说就可以起机咯~~~赶快刷入试试吧~~~ |
|