移动叔叔
标题:
转载:随风教程之MTK6577逆向移植篇
[打印本页]
作者:
LIUBAOYU
时间:
2013-6-30 17:56
标题:
转载:随风教程之MTK6577逆向移植篇
转载
:随风教程之MTK6577逆向移植篇
以下教程会根据网友反馈不断补充更改,使之最终较详细。想移植,先要学会线刷救砖,百度上有线刷教程,以前太老版
的6577线刷工具不适合安卓4.1,后面附上V970能线刷安卓4.1的工具
由于V970做ROM的朋友少,且本人时间有限,所以写些教材,让大家参考,希望咱V970的ROM越来越多。
我自己移植,不如教会大家一起来移植,此教材适合小白,教程难免有错误,请批评指正。
此教材理论上适合MTK6577之间的移植,比如夏新N820、N821、嘉佳域G3、G2、G2S,V889S、纽曼N1、
联想p770、S890、优米X1、康佳W970、W960,MIUI、百度云等之间的相互移植(部分机型需要修改内核才可移植,
此处略).
MTK6577之间的的移植很简单的,不需要你会反编译,不需要你会回编译,不需要你会分析代码,不需要你会C
语言,
你只要拼包就可以了.
移植方法我归纳为三种,一、正向移植,二、逆向移植,三、混合移植,安卓4.0我多用正向移植,4.1我多
用逆向移植,混合移植我很少用的。
这几种移植方法各有优缺点,这里就不说了,想深入了解的百度吧
移植一般来说找分辨率相同或相近的成功率比较高(有些机型移植需要修改内核或框架才可以开机成功,此处不讨论)
现
在来说说逆向移植
先选择一个合适的ROM 作为基础包(4.0的我选V970官方的,4.1的我选V970M的)再下载你要移植过来的
基准包,比如联想P770
下面以逆向移植4.1的联想P770为例,
基础包选V970M,要移植的基准包选联想P770
下面操作在两个压缩包之间进行,无需解压(会用文件对比工具Beyond Compare的话方便很多,推荐使用,具体百度
)
一、修改脚本
打开要移植的基准包,比如联想P770
用记事本或notep
ad+(推荐用notep
ad+
)打开
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分区和V970的不一样,则需改成和V970一样的,如康佳W970的
挂载system分区如下
format("ext4", "EMMC", "/dev/block/mmcblk0p
4
", "0", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p
4
", "/system");
需改为和V970一样的,修改后如下
format("ext4", "EMMC", "/dev/block/mmcblk0p
3
", "0", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p
3
", "/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.将基准包联想P770包中的System/lib里的modules文件整个删掉,换成V970m的
2.替换System/lib里的hw(传感器相关),由于MTK6577差不多的,我省事不替换,
出错了我才做部分替换,你们想替换就替换吧。
3.libcameracustom.so,这是相机驱动,替换成V970m的,(lib中还有其他几个
相机相关文件,我一般是相机出错时才替换。)
5.其它蓝牙驱动啊,收音机驱动啊等等,我都是省事不替换的,你们可以换一下。
6.system/etc/firmware这个是基带等文件在里面,整个删除,然后替换成V970m
的(我有时候只替换firmware里面的部分文件,小白整个替换吧)
三、替换System/usr
把联想P770中的system/usr/keychars,keylayout文件夹删除,替换成V970M的
吧,我为省事,不替换的,据说如果机型分辨率相差很大,不替换会有错位现象,
像移植华为闪耀这种下面好像只有3个虚拟按键(咱们V970有4个虚拟按键,即四大
金刚健)的机型就替换掉吧。
四、替换system/vendor/lib
这个文件有些机型是不用替换的,比如移植V889S就不用,有些只需要替换里面部
分的文件,为保险,小白把整个文件夹删除,替换为V970M的吧
五、替换内核
把联想P770包中的内核boot.img删除,替换成V970m的内核boot.img
六、System/build.prop修改
build.prop你就拿联想P770的来修改一下吧,不修改也能开机的,
要改一般就改机型啊什么的,这个修改,百度一搜一大堆啊,很多大神
优化也是要改这个文件啊,此处略。
完成上诉步骤后,你就拿替换好文件后的联想P770的包来刷吧,一般你能开机了,如果
不能开机看看是不是忘记双清了,是不是卡刷工具不兼容,是不是你的刷机包太大了,如你
移植一个刷机包有600多
M,而你的系统system分区只有500M,那么这个一般是不能开机的,
有些超大DATA
严重压缩system的空间,这就更加不能开机了,只能精简刷机包,或分给system
足够大的空间,小白先选包比较小的来移植练习吧。能开机后也许会有BUG。
移植
成功这只是基础,修复BUG才是难点,修复BUG需要一定的基础,有时需要部分移植或修改内核
此处就不详说了
线刷工具下载
本帖隐藏的内容
http://pan.baidu.com/share/link?shareid=463194&uk=2046861188
欢迎光临 移动叔叔 (http://bbs.ydss.cn/)
Powered by Discuz! X3.2