rom移植教程 原来移植是那么简单
的有关信息介绍如下: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\\dalvikvm Dalvik虚拟机宿主\\system\\bin\\dbus-daemon 系统BUS总线监控\\system\\bin\\debuggerd 调试器\\system\\bin\\debug_tool 调试工具\\system\\bin\\dexopt DEX选项\\system\\bin\\dhcpcd DHCP服务器\\system\\bin\\dumpstate 状态抓取器\\system\\bin\\dumpsys 系统抓取器\\system\\bin\\hcid HCID内核
\\system\\bin\\mountd 存储挂载器\\system\\bin\\netcfg 网络设置\\system\\bin\\ping Ping程序\\system\\bin\\playmp3 MP3播放器\\system\\bin\\pm 包管理器\\system\\bin\\qemud QEMU虚拟机\\system\\bin\\radiooptions 无线选项\\system\\bin\\rild RIL组件
\\system\\bin\\servicemanager 服务管理器\\system\\bin\\ssltest SSL测试\\system\\bin\\su**ceflinger 触摸感应驱动\\system\\bin\\svc 服务
部分system/etc
\\system\\etc\\apns-conf.xml APN接入点配置文件\\system\\etc\\AudioFilter.csv 音频过滤器配置文件\system\\etc\\bookmarks.xml 书签数据库\\system\\etc\\dbus.conf 总线监视配置文件\\system\\etc\\favorites.xml 收藏夹\\system\\etc\\firmware 固件信息\\system\\etc\\gps.conf GPS设置文件\\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.so Android运行时库\\system\\lib\\libandroid_servers.so 系统服务组件\\system\\lib\\libaudio.so 音频处理\\system\\lib\\libaudioeq.so EQ均衡器\\system\\lib\\libaudioflinger.so 音频过滤器\\system\\lib\\libbluetooth.so 蓝牙组件\system\\lib\\libcamera.so 相机组件
\system\\lib\\libcrypto.so 加密组件\\system\\lib\\libdrm1.so DRM解析库
二、移植XUI刷机ROM前的准备
1、首先建议安装对比工具BeyondCompare (网上资源很多,直接百度或者google 搜索BeyondCompare)
2、建议Linux环境ubuntu系统(该系统下可以使用赫赫有名的Android厨房工具)
3、Android厨房工具的使用方法在此略过...(Android厨房工具中文版里面相关的功能都有明确的指导,简单易用)
4、准备要移植机型的底包,移植XUI,找到合适的底包也是关键所在。本教程中我们讲的是第三方ROM的移植,不包括官方ROM和官方ROM美化版。
选取底包的条件是:
0)首先在相应官网找到分辨率类似的机型。
1)首先要找到自己对应机型ROM,如CM 10,如果是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其中的乐趣和刷机成功那一刻的兴奋与激动。