|
声明:
本教程是经过修改(随风MTK6577逆向移植教程)整合了本人的一些移植经验
以后我做包的时间越来越少了。以后就靠大家了。ColorOS已经修复等我有时间再发布
以下教程会根据网友反馈不断补充更改,使之最终较详细。想移植,先要学会线刷救砖,论坛上有线刷教程。
由于现在V967S做ROM的朋友少,且本人能力和时间都有限,所以写些教材,让大家参考,希望咱V967S的ROM越来越多。
我自己移植,不如教会大家一起来移植,此教材适合小白,教程难免有错误,请批评指正。
此教材理论上适合MTK65**间的移植,比如夏新N828
联想A820、A830、A850
MIUI、百度云等之间的相互移植(部分机型需要修改内核才可移植,
此处略).
MTK65890之间的的移植很简单的,不需要你会反编译,不需要你会回编译,不需要你会分析代码,不需要你会C
语言,你只要拼包就可以了.
移植方法我归纳为三种,一、正向移植,二、逆向移植,三、混合移植,安卓4.0我多用正向移植,4.1到4.2我多
用逆向移植,混合移植我很少用的。
这几种移植方法各有优缺点,这里就不说了,想深入了解的百度吧
移植一般来说找分辨率相同或相近的成功率比较高(有些机型移植需要修改内核或框架才可以开机成功,此处不讨论)
现在来说说逆向移植
先选择一个合适的ROM 作为基础包(记住只要是V967S能用的包)再下载你要移植过来的
基准包,比如联想a820
下面以逆向移植4.2的联想A820为例,
基础包选V967S,要移植的基准包选联想A820
下面操作在两个压缩包之间进行,无需解压(会用文件对比工具Beyond Compare的话方便很多,推荐使用,具体百度)
一、修改脚本
打开要移植的基准包,比如联想A820
用记事本或notepad+(推荐用notepad+)打开META-IND/com/google/android/updater-script
1.删除下面机型验证信息(如果脚本中没有这些语句,则跳到下一步)(如果脚本中没有下面语句,则跳到下一步)
assert(getprop("ro.product.device") == "P770" ||
getprop("ro.build.product") == "P770" ||
getprop("ro.product.device") == "P770" ||
getprop("ro.build.product") == "P770");
2.删除刷入recovery命令(如果脚本中没有下面语句,则跳到下一步)
assert(package_extract_file("recovery.img", "/tmp/recovery.img"),
write_raw_image("/tmp/recovery.img", "recovery"),
delete("/tmp/recovery.img"))
同时删除包中的recovery.img
此处可以忽略(我移植的时候几乎不修改)
3修改挂载system分区
有些要移植的ROM,挂载system分区和V967S的不一样,则需改成和V967S一样的,如康佳a820的
挂载system分区如下
format("ext4", "EMMC", "/dev/block/mmcblk0p4", "0", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p4", "/system");
需改为和V967S一样的,修改后如下
format("ext4", "EMMC", "/dev/block/mmcblk0p3", "0", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");
怎么知道要改成的分区是多少呢,这个可以查看自己机型官方包中的脚本,改成和官方的一样就可以了
4删除其它(如果有下面的语句也删除掉,没有则跳过此步)
assert(package_extract_file("uboot.img", "/tmp/uboot.img"),
write_raw_image("/tmp/uboot.img", "uboot"),
delete("/tmp/uboot.img"));
同时删除包中的uboot.img
二、替换System/lib和system/etc/firmware
1.将基准包联想A820包中的System/lib里的modules文件整个删掉,换成V967S的
2.替换System/lib里的hw(传感器相关),
3.libcameracustom.so,这是相机驱动,替换成V967S的,(lib中还有其他几个
相机相关文件,我一般是相机出错时才替换。)
5.其它蓝牙驱动啊,收音机驱动啊等等,我都是省事不替换的,你们可以换一下。
6.system/etc/firmware这个是基带等文件在里面,整个删除,然后替换成V967S
的(我有时候只替换firmware里面的部分文件,小白整个替换吧)
三、替换System/usr
把联想A820中的system/usr/keychars,keylayout文件夹删除,替换成V967S的
吧
四、替换system/vendor/lib
这个换不换貌似都行。为了保险还是换吧
五、替换内核
把联想a820包中的内核boot.img删除,替换成V967S的内核boot.img
六、System/build.prop修改
build.prop你就拿联想A820的来修改一下吧,不修改也能开机的,
要改一般就改机型啊什么的,这个修改,百度一搜一大堆啊,很多大神
优化也是要改这个文件啊,此处略。
完成上诉步骤后,你就拿替换好文件后的联想a820的包来刷吧,一般你能开机了,如果
不能开机看看是不是忘记双清了,是不是卡刷工具不兼容,是不是你的刷机包太大了,如你
移植一个刷机包有600多M,而你的系统system分区只有500M,那么这个一般是不能开机的,
有些超大DATA严重压缩system的空间,这就更加不能开机了,只能精简刷机包,或分给system
足够大的空间,小白先选包比较小的来移植练习吧。能开机后也许会有BUG。
移植成功这只是基础,修复BUG才是难点,修复BUG需要一定的基础,有时需要部分移植或修改内核
此处就不详说了
|
|