一次成功移植recovery过程
2014-10-17 09:25
197 查看
前几天看一家品牌机器的recovery挺好的,就像移到我的Konka机器上,费了一番力气终于成功,特记录一下。
1, 首先,直接使用线刷工具刷要移植的Recovery,死机。仔细研究了一下recovery结构,当然死机,因为recovery由一个迷你linux kernel和ramdisk组成,因为两家的recovery虽然主芯片一样,都是mtk的6582,但是两家的lcm不一样,当然,驱动不起来lcm,黑屏,表现为死机。
2, 按照上面的理论,去网上找工具,把recoevery.img分解成kernel和ramdisk,然后,替换成自己机器的kernel。居然可以点亮lcm了。但是很多recovery的功能执行错误。注意,网上有部分工具,直接把ramdisk解解开了,然后打包,这样方法对mtk6582是不行的。就连mtk的FAQ上说的使用源码中的工具也是不行。我修改源码的makefile,在使用源码的make和工具,执行成功。
3, 仔细分析错误可能的原因,我发现要修改scatter文件,使其基本相似才能够工作。为了相似,除了修改ptgen的xls文件,还需要修改mediatek/config中的mbr地址。
4,修改update文件,使其采用品牌机器的格式
5, 使用ida pro,修改ramdisk中的recovery可执行文件。
6, pass。这个过程花了一周时间,很多次都是在new代码。
1, 首先,直接使用线刷工具刷要移植的Recovery,死机。仔细研究了一下recovery结构,当然死机,因为recovery由一个迷你linux kernel和ramdisk组成,因为两家的recovery虽然主芯片一样,都是mtk的6582,但是两家的lcm不一样,当然,驱动不起来lcm,黑屏,表现为死机。
2, 按照上面的理论,去网上找工具,把recoevery.img分解成kernel和ramdisk,然后,替换成自己机器的kernel。居然可以点亮lcm了。但是很多recovery的功能执行错误。注意,网上有部分工具,直接把ramdisk解解开了,然后打包,这样方法对mtk6582是不行的。就连mtk的FAQ上说的使用源码中的工具也是不行。我修改源码的makefile,在使用源码的make和工具,执行成功。
3, 仔细分析错误可能的原因,我发现要修改scatter文件,使其基本相似才能够工作。为了相似,除了修改ptgen的xls文件,还需要修改mediatek/config中的mbr地址。
4,修改update文件,使其采用品牌机器的格式
5, 使用ida pro,修改ramdisk中的recovery可执行文件。
6, pass。这个过程花了一周时间,很多次都是在new代码。
相关文章推荐
- (原创)Linux内核升级全过程 手把手教你一次成功(2.4.20-8到2.6.18)
- 项目过程记录:记一次小小的与美方成功的离岸协作
- Linux内核升级全过程 手把手教你一次成功(2.4.20-8到2.6.18)
- 交叉移植tesseract过程记述以及总结(在mini2440开发板上运行成功)
- Linux内核升级全过程 手把手教你一次成功(2.4.20-8到2.6.18)
- 交叉移植tesseract过程记述以及总结(在mini2440开发板上运行成功)
- Linux kernel内核升级全过程,教你一次成功(2.4.20-8到2.6.18)
- 【操作详解】终于成功移植Mplayer到OK6410开发板上了,发帖详述移植全过程!(转载)
- (转)Linux内核升级全过程 手把手教你一次成功(2.4.20-8到2.6.18)
- 记一次把Windows程序移植到Linux的过程
- Linux内核升级全过程 手把手教你一次成功(2.4.20-8到2.6.18)
- 记一次成功修复电脑的过程
- Linux内核升级全过程 手把手教你一次成功(2.4.20-8到2.6.18)
- Linux内核升级全过程 手把手教你一次成功(2.4.20-8到2.6.18)
- 记一次项目中所有用户登录不成功的解决过程
- 记一次mysql5.1到mysql5.7移植过程
- 一次IPC通信过程的几个步骤
- 记一次处理日志文件过大问题的解决过程(SQL Server)
- Android系统Recovery工作原理之使用update.zip升级过程分析(九)---updater-script脚本语法简介以及执行流程
- 成功移植linux2.6.38内核到TQ2440(转)