Android Rom的制作在很多小白心中或许仅仅是个想法,因为修改ROM听起来好像就是牛人的专职。但是,如果不是要修改内核,不是修复Bug或着其他深入的东西,而仅仅是基于某一个较为成熟的ROM来制定自己的ROM,那并不是太难的事情。
定制自己需要的ROM的好处就是,你是根据自己的爱好来设定的。比如,你不喜欢Google的服务,那你可以在自己制定的ROM将其排除在外,而不在需要在刷机后再想办法一个一个删掉。也可以基于你最喜欢的ROM将其个性化后,作为以后刷其他ROM遇到不满意的时候刷回来,而不必又再重新再配置。
如果看完上面后,觉得我只是一堆废话,或者说用钛金属备份就可以,那我下面说的对你来说都是浮云,请止步,也不要再浪费你的时间了。我下面的东西纯粹是个人经验所得,不能说是知识或者理论,如有错误,可在回帖里纠正,但是可能由于个人原因,不能及时将错误更新甚至停止更新,请见谅我可能的不负责任。好了,废话说到这里。
正题:
1.熟悉ROM的几个目录
用解压缩软件可看到ROM的根目录类似于:
Super E :
CM 6.2 :
/data目录:
它的有无,主要是看/deta目录下有无内容,一般来说/data目录下放置的是用户的应用程序,或者说是用户的应用程度都放在这个目下(不要跟我说app2ext之类的,这里不讨论这些)。Super E没有/data目录,是因为它没有安装用户程序,而CM的有data目录,是因为CM的有用户程序。
/system目录:
我们小白主要修改的东西主要在/system/app、/system/fonts、/system/media目录下。首先来一个一个看看这些目录下的内容:
/system/app目录:
这个目录下存放的就是ROM自带的应用程度,也就是我们通常说的“系统程序”,主要是ROM的制作者按照普遍用户的需要放进去的。另外,常见的Google服务都在这个目录下面。
/system/fonts目录:
这个目录下存放的是ROM的字体文件,最重要或最经常修改的是DroidSans.ttf和DroidSansFallback.ttf这两个字体,前者是英文字体,后者是中文字体。通常修改字体就是修改这两个字体,如果是刷ROM后再修改为自己喜欢的字体,可使用RE管理器。
/system/media目录:
该目录下有一个子目录和一个文件:
文件bootanimation.zip是开机动画,就是开机第二屏。
子目录/system/media/audio存放的是音频文件,比如铃声、闹铃声、提示音、操作音等:
最后我们看看目录/META-INF目录下的内容:
通常来说会有CERT.RSA和CERT,SF两个文件,有时候会有MANFEST.MF,还有一个/META-INF/com子目录。子目录com有两个脚本update-binary和updater-script,不要去动它们:
关键的文件是CERT.RSA和CERT.SF这两个文件。这两个文件其实也是我们不需要修改的,这里提到它们,是因为我们修改ROM后需要重新打包自己定制完的ROM,而且要用这个定制完的ROM去生成一个可以用来刷的ROM。也就是通常所说的签名。签名的目的就是要重新生成属于我们自己定制的ROM的这两个文件。
2.定制ROM并且签名
定制ROM
基于别人的ROM来定制自己的ROM是比较简单的,主要就是修改上述几个目录下的文件。增加或者减少都可以。不过减少文件时需要注意的是,作为基础功能或者必须功能而存在的文件是不能删除的。比如某些情况下,某个程序可能被另外一个程序所需要,那么就不能“乱来”了。举例来说,删除Bluetooth.apk这个文件,将不能使用手机的蓝牙功能。又比如,删除Camera.apk,虽然你可以使用其他的拍照软件代替,但录像功能就不能用了。所以,删除文件时也是需要注意各个文件间的联系的。
下面给出/system/app/目录下部分可删除的文件清单(基于不同的ROM,这个目录下的文件/系统应程序是有差别的,所以这里给出来只是作为一种参考):
AccountAndSyncSettings.apk Gmail同步
Calendar.apk 自带日历 得登录谷歌帐户
CalendarProvider.apk 自带日历服务
DeskClock.apk 时钟 就是好看而已
Email.apk 邮箱客户端,和电脑里的“outlook”一样
EnhancedGoogleSearchProvider.apk 谷歌搜索管理器
FileManager.apk 文件查看(可删可不删,个人觉得挺好用的)
GenieWidhet.apk 自动废流量的天气预报和新闻
Gmail.apk 谷歌邮箱
GmailProvider.apk 谷歌邮箱服务
GoogleCheckinHelper.apk 谷歌连接诊断助手
GooglePartnerSetup.apk 谷歌合作伙伴设置
GlobalSearch.apk 全局搜索
GoogleSubscribedFeedsProvider.apk 帐户和同步设置
gtalkservice.apk 谷歌的聊天软件
HiDialer.apk 智能拨号
HiMarket.apk 超级市场
LiveWallpapersPicker.apk 动态壁纸 没效果很多人说这个没效果
Maps.apk 谷歌地图 慢 烧钱
MarketUpdater.apk 市场升级
MediaUploader.apk 媒体上传
NetworkLocation.apk 网络位置
PassionQuickOffice.apk 看office的
PicoTts.apk 文本到发音 很鸡肋
SetupWiazard 设置向导
SoundRecorder.apk 录音机(推荐终极录音,自带的用的时候卡住过)
Street.apk 谷歌街道 与地图关联
Talk.apk 还是谷歌聊天的
TalkProvider.apk 还是谷歌聊天的
TtsService.apk TTS服务
SystemUpdater.apk 系统升级
Vending.apk 电子市场
VoiceDialer.apk 语音拨号器 根本不实用许多人都删了
VoiceSearch.apk 语音拨号器的
YouTube.apk 著名的外国视频网站国内看不了
/system/fonts/目录下的DroidSans.ttf和DroidSansFallback.ttf文件可按照个人的喜好用适当的字体文件换掉。换掉前可适当做备份,以免失败也能用原来的字体替代以换回来。
/system/media/目录下的bootanimation.zip可换成自己喜欢的开机画面。比如比较流行的彩虹喷射、Android机器人跳舞等等。喜欢就行。而子目录audio下的文件可根据个人喜好来增减。一般是没有什么问题的。
最后要说说/data目录,你可以把你喜欢的应用程序(apk安装文件)放在下面,到时候开机的时候就等于安装上了。如果你这个目录是空的,那么签名后的ROM是没有这个目录的。所以就算你完成了你的包后没看到这个目录,也不须要太紧张,因为这是因为你没有安装你的程序。当然你的程序也可以放在/system/app/目录下。总之,放在/data目录下的,就是用户程序,放在/system/app目录下的,就成为系统程序(至于这两者会不会在运行时速度有差别之类的,还请高手出来解释,小白的我也不太明白)。
签名
当你按照你的喜好定制完你所需要的ROM的时候,就到关键的一步了——签名。我们基于某个ROM定制属于自己的ROM后,即使重新打包成*.zip文件,也是刷不上的。因为刷机的过程中会验证签名,而修改后的*.zip文件和原来的签名文件(/META-INF目录下的CERT.RSA和CERT,SF这两个文件)已经对不上号了。
所以,签名就是为了重新生成CERT.RSA和CERT,SF这两个文件。引用网上看到的一句话是:“[size=+0]我们这步的意义相当于对里面的程序