嗨馆长 发表于 2014-9-10 01:35

申请会员 ID:weinaichen

1、申 请 I D:weinaichen
2、个人邮箱:weinaichen@qq.com
3、一篇原创技术文章:简单的写一个android 高通系列的移植教程


高通方案的安卓机目前移植成功率还是相当高的,从高通s2到600方案移植基本通用,这里简单介绍一下替换文件和修改代码的方案:
所需工具:byondcompare对比工具,notepad++文件编辑工具,linux系统,厨房0.224。
1:启动篇(最后一步移植)




硬件检测通过后,首先加载bootloader,然后由bootloader执行引导代码到boot分区。boot分区包含有安卓系统
底层编译好的linux内核.然后映射randisk到内存 一些硬件加载的脚本。包括qrd USB init等等,每个文件执行不同的任务,与内核配合
后驱动hal层,所以,boot完善的移植是个难点。移植思路:
1:替换目标移植包的内核kernel为原机型的(zimage格式)
2:检查ramdisk内init.qcom系列文件,其中有高通内核补丁配置文件和shell脚本,这个一定要细心对码,会减少bug。
3:研究脚本的数据结构。将原机型的代码完整替换到目标移植包的代码。
4:init.rc!!这个文件很重要,包含了框架的启动顺序、启动后的一些加载,挂载,频率,运行方式等,如果看不懂代码只需要修改
      框架启动顺序即可(反向移植无需更改)

2:运行库
lib里有几个重点:1:硬件库。硬件库是配合内核底层驱动在系统加载完毕后为各个程序提供硬件调用接口的库。所涉及到的文件有
1:moudel文件夹
2:hw文件夹
3:egl文件夹
4:fireware文件夹
以上文件夹均可全部替换
    2:程序库:程序库包括系统运行时库,系统服务库,硬件配置库,主要替换的有
1:相机libcameraservices.so
               liboemcamera.so
               libchromix_xxxx__xxxxx.so(对比出不同的文件一定要替换)
            mmicamera.so
               libqcomcamera.so



2:sim卡相关(测试sim卡不可用后再替换)
   libril.so
      libqcomril.so



3:fm收音机
      libfmservices.so



3:程序文件和etc
   bin文件夹为linux系统可执行文件的文件夹,其中bin为低权限 Xbin为超级权限,移植内容有:
1:void
2:fm
3:xwifi
   etc文件夹下
1:fireware文件夹
2:vold,fstab


4:键盘篇:
   usr下的key开头的文件夹里主管各个虚拟按键和物理按键的键位,凡是不同的文件都可以替换。





这样一个简单的移植就完成了,接下来修改刷机脚本后就可以刷机了,开机之后通过打印log
或测试来发现一些bug 从报错的信息判断移植的文件即可。

Hmily 发表于 2014-9-10 10:17

请问这是原创教程吗?没研究过这方面不太了解。

德玛洗牙 发表于 2014-9-10 18:16

百度都搜索不到,好像是真的~
页: [1]
查看完整版本: 申请会员 ID:weinaichen