设为首页收藏本站

移动叔叔

搜索
查看: 1713|回复: 0
打印 上一主题 下一主题

[教程] 【搬运工】随风教程之MTK6577逆向移植篇(有此兴趣的可以学习移植)

[复制链接]
跳转到指定楼层
楼主
发表于 2013-6-11 09:55:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下教程会根据网友反馈不断补充更改,使之最终较详细。想移植,先要学会线刷救砖,百度上有线刷教程,以前太老版
的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
用记事本或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分区和V970的不一样,则需改成和V970一样的,如康佳W970的
挂载system分区如下
format("ext4", "EMMC", "/dev/block/mmcblk0p4", "0", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p4", "/system");
需改为和V970一样的,修改后如下
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.将基准包联想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需要一定的基础,有时需要部分移植或修改内核
此处就不详说了


您需要登录后才可以回帖 登录 | 注册

© 2008-2024 移动叔叔. 版权所有,专业的网络售后平台 ( 闽ICP备18006692号-3 )

商务合作点击这里给我发消息|Email:service@mobileuncle.com|手机版|移动叔叔     

GMT+8, 2024-11-26 03:15 , Processed in 0.185316 second(s), 12 queries , Gzip On, Memcache On.

返回顶部