前言:本人也只是个菜鸟,不是什么大神,所以写的并不是很专业,我写这个教程只是出于爱好。但正因为如此,才能给大家更多的信心,我都能简单制作,你还怕你不行?呵呵。一般像我这样的菜鸟,只会从底包提取文件进行修改制作。但这也不是轻易能完成的事,好吧废话不多说,先来认识一下 ROM!
一个常见的自制ROM 根目录会有以下几个文件夹及文件:
data,META-IN,system,boot.img
系统目录说明
①应用程序安装目录
1) 系统应用程序所在目录/system/app/*.apk
2)用户安装应用程序所在目录/data/app/*.apk
3) 注意:a)在模拟器中,每重启一次,/system/app/下的应用都会被还原,有时/data/app 下也会被清除
b)若在/system/app 和/data/app 下有重名的应用,不一定会启动哪一个,尤其是在adb install 杀死正在运行的程序时,有时旧的就会被启动
②.用户数据所在目录
/data/data/应用包名/shared_prefs 配置文件
/data/data/应用包名/databases/*库文件所在目录
③. SD 卡对应目录/sdcard/
而我们需要处理的只是两个文件夹里面的内容:
data/app ——该文件夹里的文件可以全删,也可以自由添加自已所需安装的应用软件,刷机安装后可以自由删除。
system/app ——在这个文件夹下的程序为系统默认的组件,可以看到都是以APK 格式结尾的文件,但有些系统自带的ROM 里面还有和APK 文件名对应的odex 文件。我们主要是针对该文件夹里的文件进行精简,如果有odex 文件的,删除APK 文件名时同时也删除与其对应的odex文件。虽然一般定制时只是对以上两个文件夹里的文件做相应的增减,但我们还是一起来了解system 相应目录常见相应文件的用途吧。rom版本不同,里面的APK 也会不一样,其它文件夹下需要改动的较少,或者不需要改动。但app 文件下是制作时的重点,所以详细列出:
system\\app
system\\app\\AlarmClock.apk 闹钟
system\\app\\Browser.apk 浏览器
system\\app\\Bugreport.apk Bug报告
system\\app\\Calculator.apk计算器
system\app\Calendar.apk日历
system\\app\\CalendarProvider.apk日历提供
system\\app\\Camera.apk照相机
system\\app\\Contacts.apk联系人
system\\app\\DownloadProvider.apk下载提供
system\\app\\DrmProvider.apk DRM 数字版权提供
system\\app\\Email.apk电子邮件客户端
system\\app\\FieldTest.apk测试程序
system\\app\\GDataFeedsProvider.apk GoogleData 提供
system\\app\\Gmail.apk Gmail 电子邮件
system\\app\\GmailProvider.apk Gmail 提供
system\\app\\GoogleApps.apk谷歌程序包
system\\app\\GoogleSearch.apk搜索工具
system\\app\\gtalkservice.apk GTalk 服务
system\\app\\HTMLViewer.apk HTML 查看器
system\\app\\HtcTwitter.apk集成Twitter 客户端PEEP
system\\app\\IM.apk即使通讯组件包含MSN、yahoo 通
system\\app\\Launcher.apk启动加载器
system\\app\\Maps.apk电子地图
system\\app\\MediaProvider.apk多媒体播放提供
system\\app\\Mms.apk短信、彩信
system\\app\\Music.apk音乐播放器
system\\app\\PackageInstaller.apk apk 安装程序
system\\app\\Phone.apk电话拨号器
system\\app\\Settings.apk系统设置
system\\app\\SettingsProvider.apk设置提供
system\\app\\SetupWizard.apk设置向导
system\\app\\SoundRecorder.apk录音工具
system\\app\\Street.apk街景地图
system\\app\\Sync.apk同步程序
system\\app\\Talk.apk语音程序
system\\app\\TelephonyProvider.apk电话提供
system\\app\\Updater.apk更新程序
system\\app\\***Services.apk ***服务
system\\app\\Vending.apk制造商信息
system\\app\\VoiceDialer.apk语音拨号器
system\\app\\VoiceSearch.apk语音搜索
app 文件夹内放的就是内置软件,有不想要的,直接删除之。请在删除之前先弄清楚它能不能删除。有些官方内置的软件,删除了ROM 就废了。
fonts 文件夹放的是手机的字体,如果没有美术细胞的人就不要乱改,改字体有时候会死人的,刺眼、字形不协调、大小不一致等等诸如此类。要改也刷机完以后再改。具体方法要参见自己区的人发的帖子。
lib 文件夹顾名思义,是内置软件的库文件。有些软件需要动态库支持才能正常使用的,比如常见的输入法之类的。所以,如果你向一个原本可以正常使用的ROM 中加入了新的软件之后,反而出现 "xx程序停止运行!"
某程序意外结束的情况后,那么基本上就是你忘了把库文件给它移动过去。bin 文件夹中放的是系统内置的工具,像什么busybox,su 之类的都在里面,没事不要删除它,可以添加,但不要删除。
etc 文件夹中放置的是系统的设置,诸如无线、GPS、DHCP、拨号、APN 列表之类的设置。这个目录中,如果你改了重要的CONF 文件,则可能系统出问题。也可以改一部分不重要的东西(比如说APN 列表)而不出现问题,但貌似APN 列表没必要改。
framework 目录就是系统的UI 了,想改界面的人应该改这个目录中的文件。。大约也就是替换一些什么图片,换掉界面框架什么的,改改字体颜色什么的?以达到改换界面的目的。
media 目录是系统内置的媒体文件,如开机音乐,内置的通话铃声、信息铃声、闹钟铃声,可以改,但格式是OGG 的,可以自己去搜索如何换格式。
usr 目录是系统的部分使用配置,包括键盘映射表什么的,没事不要改。。。
xbin 目录,好吧,这个目录可以放一些工具,而且貌似官方本身在里面放了一个tcpdump,是截获网络数据包的。没试过删除它,推荐有冒险精神的可以删除之,再将结果
告诉我们。
system:系统分区.我们刷机器一般就是刷的这个分区.userdata:数据分区.
cache:缓存分区
recovery:Recovery 分区,相当于建立在hboot 与android 系统间的一个中间层,如名字一般,主要用于系统调试和恢复。.
boot:存放内核和ramdisk 的分区.
hboot:这个是SPL 所在的分区,即bootloader
splash1:这个就是开机第一屏幕了.
radio:这个是无线所在的分区,即基带所在分区。
misc:其他分区
------------------------------------------------------------------------------
当然还有很多是不完整或错误的,也还有一些没有说得清楚,争取在以后的学习中慢慢修正。
下个贴我会教大家利用 APKtool 反编译、回编译以及如何美化、汉化APK的教程,希望大家喜欢!
最后说一句,玩东西你不敢尝试永远也学不会,大胆去玩把!!!!