Android 平台 ROM …

本文摘自安卓论坛。
本教程主要内容有:Android 系统文件夹结构解析、应用软件说明、定制精简、ROM 签名把 包等内容。本教程测试平台为 HTC G2、G3 这两个型号,其它机型可以借鉴,刷机有风险, 
出问题自负。其实这个教程一早就想写的,但由于时间及本人的懒惰,一直拖着。今晚终于 静下心来写好本文,本文有部份内容来自于网络。 速度与华丽,你喜欢那个。是不是想要一个又够速度又华丽的 ROM 
呢?我是一个追求新鲜的 人,对于手机的 ROM,我又追求稳定、精简、美观、省电。现在 Hero ROM 有很多,最新的 有第三方 Android 2.1 版本,但这些 ROM 
的制作者都会跟据自已的个人喜欢会增加和增少相 应的功能或是界面,但我们往往不喜欢这些 ROM 的某些小方面,所以随着而来面对的问题就
是怎样把这个 ROM 修改成为一个自已真正需要的 ROM 呢?以往一直是依靠“大杀器”来解决, 但觉得还是过于麻烦,所以寻求办法自己动手修改 ROM。于是有了本文。废话少说,进入题。
一、Android 系统文件夹结构
一个完整的 ROM 根目录会有以下几个文件夹及文件:
data META-IN system boot.img 系统目录说明
1. 应用程序安装目录
1) 系统应用程序所在目录
/system/app/*.apk
2)用户安装应用程序所在目录
/data/app/*.apk
3) 注意: a)在模拟器中,每重启一次,/system/app/下的应用都会被还原,有时/data/app 下也会被 清除
b)若在/system/app 和/data/app 下有重名的应用,不一定会启动哪一个,尤其是在 adb install 杀死正在运行的程序时,有时旧的就会被启动
2.用户数据所在目录
/data/data/应用包名/shared_prefs 配置文件
/data/data/应用包名/databases/* 库文件所在目录
3. SD 卡对应目录
/sdcard/
而我们需要处理的只是两个文件夹里面的内容:
data/app –该文本夹里的文件可以全删,也可以自由添加自已所需安装的应用软件,刷机 安装后可以自由删除。
system/app –在这个文件夹下的程序为系统默认的组件,可以看到都是以 APK 格式结尾的文 件,但有些自制的 ROM 里面还有和 APK 文件名对应的 odex 文件。我们主要是针对该文件夹
里的文件进行精简,如果有 odex 文件的,删除 APK 文件名时同时也删除与其对应的 odex 文件。 虽然一般定制时只是对以上两个文件夹里的文件做相应的增减,但我们还是一起来了解
system 相应目录相应文件的用途吧。(rom 版本不同里面的 APK 也会不一样)
\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\com.amazon.mp3.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\ImCredentialProvider.apk
\system\app\ImProvider.apk
\system\app\Launcher.apk 启动加载器
\system\app\HtcNaviPanel.apk 导航软件
\system\app\Maps.apk 电子地图
\system\app\MediaProvider.apk 多媒体播放提供
\system\app\Mms.apk 短信、彩信
\system\app\Music.apk 音乐播放器
\system\app\MyFaves.apk T-Mobile MyFaves 程序
\system\app\NewsReader.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\VpnServices.apk VPN 服务
\system\app\Vending.apk 制造商信息
\system\app\VoiceDialer.apk 语音拨号器
\system\app\VoiceSearch.apk 语音搜索
\system\app\YouTube.apk Youtube 视频
\system\bin
这个目录下的文件都是系统的本地程序,从 bin 文件夹名称可以看出是 binary 二进制的程 序,里面主要是 Linux 系统自带的组件,Android 手机网就主要文件做下简单的分析介绍:
\system\bin\akmd
\system\bin\am
\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\dvz
\system\bin\fillup
\system\bin\flash_image 闪存映像
\system\bin\hciattach
\system\bin\hcid HCID 内核
\system\bin\hostapd
\system\bin\hostapd_cli
\system\bin\htclogkernel
\system\bin\input
\system\bin\installd
\system\bin\itr
\system\bin\linker
\system\bin\logcat Logcat 日志打印
\system\bin\logwrapper
\system\bin\mediaserver
\system\bin\monkey
\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\sdptool
\system\bin\sdutil
\system\bin\service
\system\bin\servicemanager 服务管理器
\system\bin\sh
\system\bin\ssltest SSL 测试
\system\bin\surfaceflinger 触摸感应驱动
\system\bin\svc 服务
\system\bin\system_server
\system\bin\telnetd Telnet 组件
\system\bin\toolbox
\system\bin\wlan_loader
\system\bin\wpa_cli
\system\bin\wpa_supplicant
\system\etc
从文件夹名称来看保存的都是系统的配置文件,比如 APN 接入点设置等核心配置。
\system\etc\apns-conf.xml APN 接入点配置文件
\system\etc\AudioFilter.csv 音频过滤器配置文件
\system\etc\AudioPara4.csv
\system\etc\bookmarks.xml 书签数据库
\system\etc\dbus.conf 总线监视配置文件
\system\etc\dhcpcd
\system\etc\event-log-tags
\system\etc\favorites.xml 收藏夹
\system\etc\firmware 固件信息
\system\etc\gps.conf GPS 设置文件
\system\etc\hcid.conf 内核 HCID 配置文件
\system\etc\hosts 网络 DNS 缓存
\system\etc\init.goldfish.sh
\system\etc\location 定位相关
\system\etc\mountd.conf 存储挂载配置文件
\system\etc\NOTICE.html 提示网页
\system\etc\permissions.xml 权限许可
\system\etc\pvplayer.conf
\system\etc\security
\system\etc\wifi WLAN 相关组件
\system\etc\dhcpcd\dhcpcd-hooks
\system\etc\dhcpcd\dhcpcd-run-hooks
\system\etc\dhcpcd\dhcpcd.conf
\system\etc\dhcpcd\dhcpcd-hooks\01-test
\system\etc\dhcpcd\dhcpcd-hooks\20-dns.conf
\system\etc\dhcpcd\dhcpcd-hooks\95-configured
\system\etc\firmware\brf6300.bin
\system\etc\location\gps
\system\etc\location\gps\location 定位相关
\system\etc\location\gps\nmea GPS 数据解析
\system\etc\location\gps\properties
\system\etc\security\cacerts.bks
\system\etc\security\otacerts.zip OTA 下载验证
\system\etc\wifi\Fw1251r1c.bin
\system\etc\wifi\tiwlan.ini
\system\etc\wifi\wpa_supplicant.conf WPA 验证组件
\system\fonts 字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一 些 unicode 字库,从 T- Mobile G1 上 可 以 清 楚 的 看 到 
显 示 简 体 中 文 正 常 , 其 中 DroidSansFallback.ttf 文件大小
\system\fonts\DroidSans-Bold.ttf
\system\fonts\DroidSans.ttf
\system\fonts\DroidSansFallback.ttf
\system\fonts\DroidSansMono.ttf
\system\fonts\DroidSerif-Bold.ttf
\system\fonts\DroidSerif-BoldItalic.ttf
\system\fonts\DroidSerif-Italic.ttf
\system\fonts\DroidSerif-Regular.ttf
\system\framework
framework 主要是一些核心的文件,从后缀名为 jar 可以看出是是系统平台框架。
\system\framework\am.jar
\system\framework\am.odex
\system\framework\android.awt.jar AWT 库
\system\framework\android.awt.odex
\system\framework\android.policy.jar
\system\framework\android.policy.odex
\system\framework\android.test.runner.jar
\system\framework\android.test.runner.odex
\system\framework\com.google.android.gtalkservice.jar GTalk 服务
\system\framework\com.google.android.gtalkservice.odex
\system\framework\com.google.android.maps.jar 电子地图库
\system\framework\com.google.android.maps.odex
\system\framework\core.jar 核心库,启动桌面时首先加载这个
\system\framework\core.odex
\system\framework\ext.jar
\system\framework\ext.odex
\system\framework\framework-res.apk
\system\framework\framework-tests.jar
\system\framework\framework-tests.odex
\system\framework\framework.jar
\system\framework\framework.odex
\system\framework\input.jar 输入库
\system\framework\input.odex
\system\framework\itr.jar
\system\framework\itr.odex
\system\framework\monkey.jar
\system\framework\monkey.odex
\system\framework\pm.jar 包管理库
\system\framework\pm.odex
\system\framework\services.jar
\system\framework\services.odex
\system\framework\ssltest.jar
\system\framework\ssltest.odex
\system\framework\svc.jar 系统服务
\system\framework\svc.odex
\system\lib
lib 目录中存放的主要是系统底层库,如平台运行时库。
\system\lib\libaes.so
\system\lib\libagl.so
\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\libc.so
\system\lib\libcamera.so 超相机组件
\system\lib\libcameraservice.so
\system\lib\libcorecg.so
\system\lib\libcrypto.so 加密组件
\system\lib\libctest.so
\system\lib\libcutils.so
\system\lib\libdbus.so
\system\lib\libdl.so
\system\lib\libdrm1.so DRM 解析库
\system\lib\libdrm1_jni.so
\system\lib\libdvm.so
\system\lib\libexif.so
\system\lib\libexpat.so
\system\lib\libFFTEm.so
\system\lib\libGLES_CM.so
\system\lib\libgps.so
\system\lib\libhardware.so
\system\lib\libhgl.so
\system\lib\libhtc_ril.so
\system\lib\libicudata.so
\system\lib\libicui18n.so
\system\lib\libicuuc.so
\system\lib\liblog.so
\system\lib\libm.so
\system\lib\libmedia.so
\system\lib\libmediaplayerservice.so
\system\lib\libmedia_jni.so
\system\lib\libnativehelper.so
\system\lib\libnetutils.so
\system\lib\libOmxCore.so
\system\lib\libOmxH264Dec.so
\system\lib\libpixelflinger.so
\system\lib\libpvasf.so
\system\lib\libpvasfreg.so
\system\lib\libpvauthor.so
\system\lib\libpvcommon.so
\system\lib\libpvdownload.so
\system\lib\libpvdownloadreg.so
\system\lib\libpvmp4.so
\system\lib\libpvmp4reg.so
\system\lib\libpvnet_support.so
\system\lib\libpvplayer.so
\system\lib\libpvrtsp.so
\system\lib\libpvrtspreg.so
\system\lib\libqcamera.so
\system\lib\libreference-ril.so
\system\lib\libril.so
\system\lib\librpc.so
\system\lib\libsgl.so
\system\lib\libsonivox.so
\system\lib\libsoundpool.so
\system\lib\libsqlite.so
\system\lib\libssl.so
\system\lib\libstdc++.so
\system\lib\libsurfaceflinger.so
\system\lib\libsystem_server.so
\system\lib\libthread_db.so
\system\lib\libUAPI_jni.so
\system\lib\libui.so
\system\lib\libutils.so
\system\lib\libvorbisidec.so
\system\lib\libwbxml.so
\system\lib\libwbxml_jni.so
\system\lib\libwebcore.so
\system\lib\libwpa_client.so
\system\lib\libxml2wbxml.so
\system\lib\libz.so
\system\lib\modules
\system\lib\modules\wlan.ko
\system\media
铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音
\system\media\audio
\system\media\audio\alarms 闹铃音
\system\media\audio\notifications 提示音
\system\media\audio\ringtones 铃声
\system\media\audio\ui 界面操作事件音
\system\media\audio\alarms\Alarm_Beep_01.ogg
\system\media\audio\alarms\Alarm_Beep_02.ogg
\system\media\audio\alarms\Alarm_Beep_03.ogg
\system\media\audio\alarms\Alarm_Buzzer.ogg
\system\media\audio\alarms\Alarm_Classic.ogg
\system\media\audio\alarms\Alarm_Rooster_02.ogg
\system\media\audio\notifications\Beat_Box_Android.ogg
\system\media\audio\notifications\CaffeineSnake.ogg
\system\media\audio\notifications\DearDeer.ogg
\system\media\audio\notifications\DontPanic.ogg
\system\media\audio\notifications\F1_MissedCall.ogg
\system\media\audio\notifications\F1_New_MMS.ogg
\system\media\audio\notifications\F1_New_SMS.ogg
\system\media\audio\notifications\Heaven.ogg
\system\media\audio\notifications\Highwire.ogg
\system\media\audio\notifications\KzurbSonar.ogg
\system\media\audio\notifications\OnTheHunt.ogg
\system\media\audio\notifications\TaDa.ogg
\system\media\audio\notifications\Tinkerbell.ogg
\system\media\audio\notifications\Voila.ogg
\system\media\audio\ringtones\BeatPlucker.ogg
\system\media\audio\ringtones\BentleyDubs.ogg
\system\media\audio\ringtones\BirdLoop.ogg
\system\media\audio\ringtones\CaribbeanIce.ogg
\system\media\audio\ringtones\CrazyDream.ogg
\system\media\audio\ringtones\CurveBall.ogg
\system\media\audio\ringtones\DreamTheme.ogg
\system\media\audio\ringtones\EtherShake.ogg
\system\media\audio\ringtones\FriendlyGhost.ogg
\system\media\audio\ringtones\GameOverGuitar.ogg
\system\media\audio\ringtones\Growl.ogg
\system\media\audio\ringtones\InsertCoin.ogg
\system\media\audio\ringtones\LoopyLounge.ogg
\system\media\audio\ringtones\LoveFlute.ogg
\system\media\audio\ringtones\MidEvilJaunt.ogg
\system\media\audio\ringtones\MildlyAlarming.ogg
\system\media\audio\ringtones\NewPlayer.ogg
\system\media\audio\ringtones\Noises1.ogg
\system\media\audio\ringtones\Noises2.ogg
\system\media\audio\ringtones\Noises3.ogg
\system\media\audio\ringtones\OrganDub.ogg
\system\media\audio\ringtones\Ring_Classic_02.ogg
\system\media\audio\ringtones\Ring_Digital_02.ogg
\system\media\audio\ringtones\Ring_Synth_02.ogg
\system\media\audio\ringtones\Ring_Synth_04.ogg
\system\media\audio\ringtones\RomancingTheTone.ogg
\system\media\audio\ringtones\SitarVsSitar.ogg
\system\media\audio\ringtones\SpringyJalopy.ogg
\system\media\audio\ringtones\T-Jingle.ogg
\system\media\audio\ringtones\Terminated.ogg
\system\media\audio\ringtones\TwirlAway.ogg
\system\media\audio\ringtones\VeryAlarmed.ogg
\system\media\audio\ringtones\World.ogg
\system\media\audio\ui\Effect_Tick.ogg
\system\sounds
默认的音乐测试文件,仅有一个 test.mid 文件,用于播放测试的文件。
\system\sounds\test.mid
\system\usr
用户文件夹,包含共享、键盘布局、时间区域文件等。
\system\usr\keychars
\system\usr\keylayout
\system\usr\share
\system\usr\srec
\system\usr\keychars\qwerty.kcm.bin
\system\usr\keychars\qwerty2.kcm.bin
\system\usr\keychars\trout-keypad-qwertz.kcm.bin
\system\usr\keychars\trout-keypad-v2.kcm.bin
\system\usr\keychars\trout-keypad-v3.kcm.bin
\system\usr\keychars\trout-keypad.kcm.bin
\system\usr\keylayout\h2w_headset.kl
\system\usr\keylayout\qwerty.kl
\system\usr\keylayout\trout-keypad-qwertz.kl
\system\usr\keylayout\trout-keypad-v2.kl
\system\usr\keylayout\trout-keypad-v3.kl
\system\usr\keylayout\trout-keypad.kl
\system\usr\share\bsk
\system\usr\share\zoneinfo
\system\usr\share\bsk\V_FD_speed_101.bsk
\system\usr\share\bsk\V_FD_std_101.bsk
\system\usr\share\zoneinfo\zoneinfo.dat
\system\usr\share\zoneinfo\zoneinfo.idx
\system\usr\srec\config
\system\usr\srec\config\en.us
\system\usr\srec\config\en.us\baseline.par
\system\usr\srec\config\en.us\baseline11k.par
\system\usr\srec\config\en.us\baseline8k.par
\system\usr\srec\config\en.us\dictionary
\system\usr\srec\config\en.us\g2p
\system\usr\srec\config\en.us\grammars
\system\usr\srec\config\en.us\models
\system\usr\srec\config\en.us\dictionary\basic.ok
\system\usr\srec\config\en.us\dictionary\cmu6plus.ok.zip
\system\usr\srec\config\en.us\dictionary\enroll.ok
\system\usr\srec\config\en.us\g2p\en-US-ttp.data
\system\usr\srec\config\en.us\grammars\VoiceDialer.g2g
\system\usr\srec\config\en.us\models\generic.swiarb
\system\usr\srec\config\en.us\models\generic11.lda
\system\usr\srec\config\en.us\models\generic11_f.swimdl
\system\usr\srec\config\en.us\models\generic11_m.swimdl
\system\usr\srec\config\en.us\models\generic8.lda
\system\usr\srec\config\en.us\models\generic8_f.swimdl
\system\usr\srec\config\en.us\models\generic8_m.swimdl
OK,了解 Android 系统文件夹结构和相应文件的作用后,我们进行下一步真正定制工作。 二、定制简单流程:
1、下载相应的 ROM
2、下载签名工具,并且解压。我这里解压成生的文件夹名为:“APKMake”。我这里提供签 名工具的是宇宙青年制作的,下载请到这:http://u.115.com/file/f0a485d7d1
3、把 ROM 内的所有文件用 WinZip 或是 WinRAR 解压到某一文件夹,为教程容易明白,我将 这文件夹在这里起名为“NewsROM”,你自已喜欢怎样起名都无所谓。
4、进入 NewsROM 文件夹,再进入 dataapp 目录,看这里是否有你所需的程序,不需要的请
删除。你还可以添加你需要的默认安装软件。如:搜狗输入法,只需要把 SogouIme.apk 文 件直接拖放到压缩包 dataapp 目录内即可。
5、进入 NewsROM 文件夹,再进入 systemapp 删除你不想要的组件、或是添加你需要的组件。 由于有一些组件与其它组件是有依赖的,所以删除时请注意。但也不要怕,如果你删除的组 
件不对,刷机时最多是无法进入系统,你用完整 ROM 重新刷一次既可。一般不会变成砖的。
6、删除、添加软件完毕,然后把 ROM 文件夹(NewsROM)拖动到 APKMake/APKMake.bat 即 可(重新打包、自动签名)。在 APKMake 目录里打包签名完成后自动会生成 
NewsROM.zip(刚
才文件夹起名不同,这里生成文件名也不同),这个就是我们已精简的 ROM 了。 三、刷 ROM
请如果 Recovery 已经准备好。请按严格安装以下步骤操作刷入 ROM:
1. 把 ROM 文件复制到 SD 卡。
2. 关机,然后按住 Home(小房子)启动手机,进入 Recovery 模式。
3. WIPE。
4. 在 Recovery 中选择正确的 ROM 文件(ZIP)刷入。
4. 重新启动即可。 四、定制注意事项
1、细心、细心、细心
2、为安全起见,建议只对 data/app 和 system/app 这两个文件夹内的文件做删除、添加。
3、不知或是不太清楚要删除的文件是干啥的,那请保留不要删除。
4、本文中的 Android 系统文件夹结构可能比较旧,如果碰到不知该文件是干什么的,建议 搜索一下找答案。
4、按照本教程来定制 ROM,如果在定制过程自已失误删除相应的软件,那造成的后果最多 也是无法进入系统,重新刷一个完整的 ROM 一般解决问题。

还是那句话:刷机有风险,出问题自负。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章