安卓系统移植经之谈,教你三分钟移植.docVIP

安卓系统移植经之谈,教你三分钟移植.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
安卓系统移植经之谈,教你三分钟移植

每当我闲下来时不发Rom时,就会整理一下思路,发发教程啥的,我觉得能带动机油们自己打造、改造Rom,共同提升,才是Romer的追求。 发Rom也好,教程也好,我的宗旨是不设回复可见,如果你觉得好,回复或者评分鼓励一下,我就很开心了。 不过这样做的一个遗憾就是,我的帖子通常回复率不够高,沉得快。 好了,闲话少说,上教程。 注:可能你会觉得文字教程比较干枯,不够形象生动,但是请精心看,我会尽量讲得具体、清晰。 首先,我并不算是移植高手,这个教程只是我在自己移植过程中的的一些收获体会,一些经验之谈。 如果你觉得有什么不对或值得改进的地方,欢迎和我交流,我们一起来完善这个教程。 因为移植所涉及的机型、配置相当多变和复杂,所以我无法讲具体细节,只能讲大致的原则。 可以结合我移植U8800+的JoyOS到U8860的例子作为参考进行理解。 我把这些原则抽象出来,命名为Rom移植5步法,具有一定的通用性。 Rom移植的方向有 正向 和 逆向 之分: 正向的做法通常就是,找个目标机型的底包,然后把要移植的包的app和framework提取出来替换进去。 这样的优点是改动无需太大,非常快捷;缺点是经常因为一些bin下的程序或者库文件的差异而导致成功率不够高。 逆向的做法是,拿要移植的包作为底包,把目标机型的内核、wifi驱动、传感器库文件、配置文件等替换进去。 这样做要复杂一些,需要准确两个包的差异,知道应该改哪里; 优点自然是不成则已,一旦移植成功能最大限度地发挥Rom性能,因为框架、程序与底层的契合度要比正向法好。 我这个教程以逆向法为例。 另外,Rom移植有风险,刷机测试需谨慎,如有本人操作不当导致出现任何问题,本人概不负责。 Rom移植5步法: 1.Rom移植涉及的东西比较偏底层,所以在移植之前必须清楚目标机型的硬件配置,分区结构。 这里的配置不是说主频多少、内存多少,这两个参数基本上不会影响移植的进行。 对于移植,最关键的因素是主板平台,通常采用同一系列的cpu的不同机型的Rom移植的成功率要高很多。 比如,U8800+和U8860均是高通8255处理器,虽然主频不一样,但它们却同属于同样的MSM7x30平台。 他们之间的互相移植,绝对要比与MSM7K平台的中兴V880互相移植来的容易得多。 至于为什么要弄清分区结构,会在下面讲到。 所以,5步法的第一步就是弄清楚自己目标机型的配置,从而选定一个合适的Rom源包。 同时,也必须找一个或多个目标机型上能用的合适的底包,尽量与源包同源或者属于同一Android版本。 例:我要移植JoyOS到华为荣耀U8860,在对比配置和分区结构后选择了华为U8800+的JoyOS包作为Rom源包。 由于JoyOS也是基于CM7修改的,所以我找的底包是U8860的CM7.2,同时也把华为官方的B876拿出来作为参考。 为什么选U8800+,而不选U8800? 因为U+采用和荣耀一样的wifi芯片,接口均为eth0,而U8800的却是wlan0,自然用U+会省下不少麻烦。 2.第一步里你已经了解了两款机型配置的相同或相近之处,这一步则相反,我们需要找出二者的不同之处。 这样做的目的是为了知道我们到底需要改动什么来使一款机器的包能在另一款上使用。 首先,二者的底层硬件驱动会有所不同,我们通常都是直接替换内核来解决这个问题,即boot.img。 有时,还需要在system/bin文件夹里添加必要的程序和服务。 system/usr下的key打头的两个文件夹是按键配置相关的,通常也需要替换。 其次,二者的传感器通常会有所差别,system/lib/hw目录下的库文件都是传感器等相关的。 再次,system/etc文件夹下放置着许多的系统配置文件。 我们需要关注的文件或文件夹通常有 bluetooth、firmware、permissions、 wifi 四个文件夹(如果有的话)。 还有enhanced.conf(G大脚本的配置文件)、media_profiles.xml(媒体配置文件)、vold.fstab(存储分区配置文件)。 最后,再检查一下system目录下是否还有vendor、wifi文件夹。 上述不同的地方,通常就先对比,如有不同,就需要我们用目标机型的替换之。 例:U8800+的平台主板一致,内核可以通用,无需替换。 bin下需要添加 akmd8975 蓝牙芯片相关服务,hdmid HDMI输出服务(非必要)等,这里要同时参考底包和官方包。 弄清这些程序或服务的名字的最好办法是解开关官方的boot.img,看注释。 system/lib/hw 下的传感器库文件有差异,删掉带u8800名称的,用来自u8860的CM的相应文件替换。 此时也可以参考一下官方包中此文件夹的内容。 二者 w

文档评论(0)

ldj215322 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档