TDbeta

 找回密码
 注册账号

QQ登录

只需一步,快速开始

点击进入授权页面

只需一步,快速开始

查看: 434|回复: 1

[交流学习] rom反向移植!(转载)

[复制链接]

该用户从未签到

发表于 2014-11-12 19:44:37 | 显示全部楼层 |阅读模式
目前通用的Android拼包移植方法均是正向移植.或许有人不理解什么叫正向移植.更不理解什么是反向修改
找一个本机型的底包,然后把移植包里面的app、framerok和media提取替换进去.这种方法就称为正向移植;
优点是改动小,操作简单便捷,新老手皆适用.缺点是因为bin下的某些程序或者库文件so差异导致不成功
反向修改法就是拿移植包做底包,把本机型的内核、wifi驱动、传感器库文件、配置文件等替换进去
缺点是比较复杂,对romer要求有些高(因为需要准确知道2个包的差异.并且知道出现问题应该修改哪里)
优点是能最大限度发挥ROM性能,因为框架、程序与底层之间的契合度非常高
反向修改拼包法操作流程:
1.清楚的了解本机型的硬件配置,也就是主板平台.
通常同系列的CPU不同机型的ROM拼包移植成功率很高.比如N760和V880就同属于MSM7K平台.
2.挑选合适的底包和移植包,底包和移植包尽量同源,即同属于CM7(CM9和CM10类似)
3.找出底包和移植包两者的不同之处,目的是让我们了解需要改动什么才可以让别的机型ROM能在我们的机型上面使用
㈠底层硬件驱动不同.
删除移植包里面的boot.img和system\lib下的modules文件夹.替换成本机型的
㈡按键配置不同.
将移植包system\usr下的keychars和keylayout两个文件夹替换成本机型的
㈢传感器不同
将移植包system\lib下的hw文件夹替换成本机型的
㈣系统配置文件不同
将移植包system\etc下的bluetooth、firmware、permissions、wifi 四个文件夹替换成本机型的(如果有);
还有enhanced.conf、media_profiles.xml(媒体配置文件)、vold.fstab(存储分区配置文件);
最后注意system下是否有vendor和wifi文件夹
.........................以上操作建议使用文件对比器来进行对比.....................
㈤修改build.prop
把可以自定义的内容修改下.比如机型、日期、版本号等.参数如果懂可以修改,如果不懂建议不动它  
提醒2点:ro.sf.hwrotation=180这个值需要修改为0,否则会出现系统倒立或者相机倒立;网络模式必须更正,否则开机会无服务.
㈥修改updater-script
不同机型的ROM,刷机脚本里包含的分区挂载和格式化命令都有所差异,如果不做修改直接使用,把本不该改动的分区挂载并修改了的话.等着手机变"砖头"吧!
assert(getprop("ro.product.device") =="blade" || getprop("ro.build.product") == "blade" ||getprop("ro.product.board") == "blade");
这段话时获取收集信息,验证你的手机是不是N760,否则将无法刷入.目的是防止一些小白误刷ROM导致手机"变砖".
接下来就是测试了,一般如果内核与库文件、库文件与上层框架兼容的话,至少能开机。如果卡第一屏了,分析原因,一点点排查,看脚本有无问题,看内核是否已经替换,看传感器等库文件是否合理替换...

整体的思路和方法就是这样的.抛砖引玉下,希望更多的朋友分享自己的心得....
<

该用户从未签到

发表于 2015-7-29 12:30:25 | 显示全部楼层
小手一抖,积分带走。
<
回复 支持 反对

使用道具 举报

关闭

站长推荐上一条 /1 下一条

运维支持|站点地图|小黑屋|Archiver|TDbeta ( 京ICP备12048885号-3 )

GMT+8, 2017-1-22 20:24 , Processed in 0.303163 second(s), 22 queries , Gzip On, Memcache On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表