rom移植教程.docx
《rom移植教程.docx》由会员分享,可在线阅读,更多相关《rom移植教程.docx(8页珍藏版)》请在冰豆网上搜索。
![rom移植教程.docx](https://file1.bdocx.com/fileroot1/2022-11/26/5a94c6a4-c473-49d7-9320-15205ae15b50/5a94c6a4-c473-49d7-9320-15205ae15b501.gif)
rom移植教程
一、分析整个ROM包内的大致框架及各个文件的作用
1、system/app这个里面主要存放的是常规的应用程序,都是以apk格式结尾的文件,在这个文件夹下面的程序为系统默认的组件,个人安装的软件不会出现在这里,而是data文件夹中。
2、system/bin这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary 二进制的程序,里面主要是Linux系统自带的组件。
3、system/etc该文件夹下保存的都是系统的配置文件,比如APN接入点设置等核心的配置。
4、system/fonts该文件夹下除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库或者一些unicode字库。
5、system/framework该文件夹下主要是一些核心的文件,是系统平台的框架。
6、system/lib目录中存放的主要是系统的底层库,比如系统平台运行时的服务库,移植过程中很多关键的地方在于此。
7、system/media该文件下包括开机动画的文件、音乐铃声文件夹,除此以外还包括一些系统提示音文件。
8、system/usr用户文件夹,包括一些共享、时区文件、键盘的一些布局文件。
接下来是一些相关文件的介绍
部分System/bin
\system\\bin\\app_process系统进程
\\system\\bin\\dalvikvmDalvik虚拟机宿主
\\system\\bin\\dbus-daemon系统BUS总线监控
\\system\\bin\\debuggerd调试器
\\system\\bin\\debug_tool调试工具
\\system\\bin\\dexoptDEX选项
\\system\\bin\\dhcpcdDHCP服务器
\\system\\bin\\dumpstate状态抓取器
\\system\\bin\\dumpsys系统抓取器
\\system\\bin\\hcidHCID内核
\\system\\bin\\mountd存储挂载器
\\system\\bin\\netcfg网络设置
\\system\\bin\\pingPing程序
\\system\\bin\\playmp3MP3播放器
\\system\\bin\\pm包管理器
\\system\\bin\\qemudQEMU虚拟机
\\system\\bin\\radiooptions无线选项
\\system\\bin\\rildRIL组件
\\system\\bin\\servicemanager服务管理器
\\system\\bin\\ssltestSSL测试
\\system\\bin\\su**ceflinger触摸感应驱动
\\system\\bin\\svc服务
部分system/etc
\\system\\etc\\apns-conf.xmlAPN接入点配置文件
\\system\\etc\\AudioFilter.csv音频过滤器配置文件
\system\\etc\\bookmarks.xml书签数据库
\\system\\etc\\dbus.conf总线监视配置文件
\\system\\etc\\favorites.xml收藏夹
\\system\\etc\\firmware固件信息
\\system\\etc\\gps.confGPS设置文件
\\system\\etc\\hcid.conf内核HCID配置文件
\\system\\etc\\hosts网络DNS缓存
\\system\\etc\\mountd.conf存储挂载配置文件
\\system\\etc\\NOTICE.html提示网页
\\system\\etc\\permissions.xml权限许可
部分system/lib
\\system\\lib\\libandroid_runtime.soAndroid运行时库
\\system\\lib\\libandroid_servers.so系统服务组件
\\system\\lib\\libaudio.so音频处理
\\system\\lib\\libaudioeq.soEQ均衡器
\\system\\lib\\libaudioflinger.so音频过滤器
\\system\\lib\\libbluetooth.so蓝牙组件
\system\\lib\\libcamera.so相机组件
\system\\lib\\libcrypto.so加密组件
\\system\\lib\\libdrm1.soDRM解析库
二、移植XUI刷机ROM前的准备
1、首先建议安装对比工具BeyondCompare(网上资源很多,直接XX或者google搜索BeyondCompare)
2、建议Linux环境ubuntu系统(该系统下可以使用赫赫有名的Android厨房工具)
3、Android厨房工具的使用方法在此略过...(Android厨房工具中文版里面相关的功能都有明确的指导,简单易用)
4、准备要移植机型的底包,移植XUI,找到合适的底包也是关键所在。
本教程中我们讲的是第三方ROM的移植,不包括官方ROM和官方ROM美化版。
选取底包的条件是:
0)首先在相应官网找到分辨率类似的机型。
1)首先要找到自己对应机型ROM,如CM10,如果是Android4.0的推荐使用AOKP(谷歌开源非官方代码项目)版本的ROM。
2)所选择的作为底包的ROM要尽量功能完善;还要保证刷机脚本的通用性;在刷机包的META-INF/com/google/android/内的updater-script是刷机的脚本,打开刷机脚本,将其中的第一行关于机型验证的代码删除。
如图
3)如果为自己机型开发的ROM不是很多的话,则尽量选取使用同一厂商同一平台的其它机器的ROM。
4)尽量选择zip格式的卡刷包
三、移植过程所要执行的操作
1、首先移植XUI的应用层和framework层,该步骤是将替换system文件夹下的app和framework为XUI的文件内容如下图:
2、移植应用层(system/app)如下图:
备注:
如果没有上述文件,就要添加。
3、移植系统框架层(system/framework)
如下图:
备注:
如果没有上述某些文件,则需要添加
4、移植lib库文件(system/lib)如下图:
备注:
如果没有上述某些文件,则需要添加
5、移植bin文件(system/bin) 如下图:
备注:
如果没有上述某些文件,则需要添加
6、系统内的system/etc文件暂时不需要移植
7、在system/media文件内是开机动画和一些系统铃声已经自己添加的铃声,可以根据自己的喜好来决定是否移植。
四、最后修改build.prop文件
本帖隐藏的内容ro.xda.version=此处的值必须保留所移植的XUI的build.prop内的该值,比如是Bate1.9, 则该值必须是Bate1.9,否则会影响新版本XUI的升级提示。
ro.build.date=该移植版本的制作日期。
(请注意日期显示的格式,否则会出现乱编码)
ro.build.display.id="在此可以添加自己的昵称,签上制作者名"
ro.product.model=手机的型号;便于一些辅助软件的正确识别(比如豌豆荚、91助手等)。
ro.xda.device=该值是手机设备的名称
ro.modversion=所移植的ROM的版本号。
(比如该版本是X-UI-Beta1.9)
等等
五、移植完成以后进行为ROM签名打包
顺利完成上述步骤后,有关XUI移植的ROM工作基本完成,接着要对移植的文件进行签名打包,这个时候就要用的上文中提到的“android厨房工具”,有关android厨房的签名打包过程,在这里就不一一赘述。
将打包得到的zip压缩文件放于sd卡,进入刷机模式进行刷机,想必大家进行移植操作的对刷机流畅都很熟悉了。
六、刷机测试过程中,对一些常见的bug的分析以及解决的方法
鉴于每位ROM制作者所移植的机型不同,进行了不同的修改和替换,难免在刷机和测试过程可能出现一些bug,接下来是一些常见的bug以及问题的解决方法:
1、bug:
在进行刷机测试时候,手机屏幕卡在第一屏不能进去系统或者卡在开机动画或者无限重启。
解决方法:
对该机型单刷底包的boot.img。
如果是自己在移植过程中多替换或者没有替换system/etc或者system/bin内的文件,单刷boot.img也是无济于事。
2、bug:
刷机测试能进去系统,但是会提示launcher异常终止、手机主界面图标显示不完全
解决方法:
重新找到和所要移植的XUI分辨率相同或者相似的合适的底包。
3、bug:
刷机测试wifi、和蓝牙打不开
解决方法:
替换底包或者相同机型的其他ROM的wifi或者蓝牙相关的组件。
同时也不排除是在移植过程中没有正确移植相应的库文件和驱动。
4、bug:
刷机测试,手机SIM卡上网是信号时有是无
解决方法:
找到所移植的XUI包内的lib文件夹下,将libganril.so和libreference-ril.so(不同的机型相关文件可能还有其他几个)重新替换到移植后的底包,再重新打包刷机。
以上只是简简单单的提到几个常见的问题和解决的方法,可能在移植过程和测试过程中还会有其他的bug,欢迎大家将问题反馈到XDA智能手机论坛,这里有专业的技术团队成员为您解答疑惑,同时XDA论坛有更加丰富的智能手机资源。
最后,祝您移植XUI成功!
请大家不要觉得该移植过程繁琐,因为只有亲身体会了才知道移植ROM其中的乐趣和刷机成功那一刻的兴奋与激动。