
想要自己DIY ROM的朋友,很多時(shí)候都不知道怎么入手,首先就是先要了解ROM里面的文件架構(gòu),以及文件的作用!這里我們就詳細(xì)的介紹一下ROM,DIY自己的ROM
【文件夾功能簡(jiǎn)介】
\system\app
這個(gè)里面主要存放的是常規(guī)下載的應(yīng)用程序,可以看到都是以APK格式結(jié)尾的文件。在這個(gè)文件夾下的程序?yàn)橄到y(tǒng)默認(rèn)的組件,自己安裝的軟件將不會(huì)出現(xiàn)在這里,而是\data\文件夾中。
\system\bin
這個(gè)目錄下的文件都是系統(tǒng)的本地程序,從bin文件夾名稱可以看出是binary二進(jìn)制的程序,里面主要是Linux系統(tǒng)自帶的組件(命令)
\system\customize
這個(gè)目錄下主要是系統(tǒng)的設(shè)置
\system\etc
從文件夾名稱來看保存的都是系統(tǒng)的配置文件,比如APN接入點(diǎn)設(shè)置等核心配置。
\system\fonts
字體文件夾,除了標(biāo)準(zhǔn)字體和粗體、斜體外可以看到文件體積最大的可能是中文字庫(kù),或一些unicode字庫(kù),從T-Mobile G1上可以清楚的看到顯示簡(jiǎn)體中文正常,其中DroidSansFallback.ttf文件大小 。
\system\framework
framework主要是一些核心的文件,從后綴名為jar可以看出是是系統(tǒng)平臺(tái)框架。
\system\lib
lib目錄中存放的主要是系統(tǒng)底層庫(kù),一些so文件,如平臺(tái)運(yùn)行時(shí)庫(kù)。
\system\media
\system\media\audio
鈴聲音樂文件夾,除了常規(guī)的鈴聲外還有一些系統(tǒng)提示事件音。
\system\sounds
默認(rèn)的音樂測(cè)試文件,僅有一個(gè)test.mid文件,用于播放測(cè)試的文件。
\system\usr
用戶文件夾,包含共享、鍵盤布局、時(shí)間區(qū)域文件等。
主要修改的文件夾:
system/
app
customize
etc
fonts
framework
lib
xbin
build.prop
一、\system\app\的DIY
我這里舉個(gè)例子
\system\app\AlarmClock.apk 鬧鐘
\system\app\AlarmClock.odex
\system\app\Browser.apk 瀏覽器
\system\app\Browser.odex
\system\app\Bugreport.apk Bug報(bào)告
\system\app\Bugreport.odex
\system\app\Calculator.apk 計(jì)算器
\system\app\Calculator.odex
\system\app\Calendar.apk 日歷
\system\app\Calendar.odex
\system\app\CalendarProvider.apk 日歷提供
\system\app\CalendarProvider.odex
\system\app\Camera.apk 照相機(jī)
\system\app\Camera.odex
\system\app\com.amazon.mp3.apk 亞馬遜音樂
\system\app\Contacts.apk 聯(lián)系人
\system\app\Contacts.odex
\system\app\DownloadProvider.apk 下載提供
\system\app\DownloadProvider.odex
\system\app\DrmProvider.apk DRM數(shù)字版權(quán)提供
\system\app\DrmProvider.odex
\system\app\Email.apk 電子郵件客戶端
\system\app\Email.odex
\system\app\FieldTest.apk 測(cè)試程序
\system\app\FieldTest.odex
\system\app\GDataFeedsProvider.apk GoogleData提供
\system\app\GDataFeedsProvider.odex
\system\app\Gmail.apk Gmail電子郵件
\system\app\Gmail.odex
\system\app\GmailProvider.apk Gmail提供
\system\app\GmailProvider.odex
\system\app\GoogleApps.apk 谷歌程序包
\system\app\GoogleApps.odex
\system\app\GoogleSearch.apk 搜索工具
\system\app\GoogleSearch.odex
\system\app\gtalkservice.apk GTalk服務(wù)
\system\app\gtalkservice.odex
\system\app\HTMLViewer.apk HTML查看器
\system\app\HTMLViewer.odex
\system\app\IM.apk 即使通訊組件包含MSN、yahoo通
\system\app\ImCredentialProvider.apk
\system\app\ImProvider.apk
\system\app\ImProvider.odex
\system\app\Launcher.apk 啟動(dòng)加載器
\system\app\Launcher.odex
\system\app\Maps.apk 電子地圖
\system\app\Maps.odex
\system\app\MediaProvider.apk 多媒體播放提供
\system\app\MediaProvider.odex
\system\app\Mms.apk 短信、彩信
\system\app\Mms.odex
\system\app\Music.apk 音樂播放器
\system\app\Music.odex
\system\app\MyFaves.apk T-Mobile MyFaves程序
\system\app\MyFaves.odex
\system\app\PackageInstaller.apk apk安裝程序
\system\app\PackageInstaller.odex
\system\app\Phone.apk 電話撥號(hào)器
\system\app\Phone.odex
\system\app\Settings.apk 系統(tǒng)設(shè)置
\system\app\Settings.odex
\system\app\SettingsProvider.apk 設(shè)置提供
\system\app\SettingsProvider.odex
\system\app\SetupWizard.apk 設(shè)置向?qū)?/p>
\system\app\SetupWizard.odex
\system\app\SoundRecorder.apk 錄音工具
\system\app\SoundRecorder.odex
\system\app\Street.apk 街景地圖
\system\app\Street.odex
\system\app\Sync.apk 同步程序
\system\app\Sync.odex
\system\app\Talk.apk 語音程序
\system\app\Talk.odex
\system\app\TelephonyProvider.apk 電話提供
\system\app\TelephonyProvider.odex
\system\app\Updater.apk 更新程序
\system\app\Updater.odex
\system\app\Vending.apk 制造商信息
\system\app\Vending.odex
\system\app\VoiceDialer.apk 語音撥號(hào)器
\system\app\VoiceDialer.odex
\system\app\YouTube.apk Youtube視頻
\system\app\YouTube.odex
\system\app\Metal.apk (金屬皮膚)
\system\app\BlackBoard.apk (黑板皮膚)
\system\app\Wood.apk(木板皮膚)
如果沒有odex,肯定是以classes.dex的形式寫入了apk當(dāng)中,沒有可以不管
一般來說本人精簡(jiǎn)的內(nèi)容如下:
AdobeReader (adobe的pdf閱讀器,有更好的替代)
com.htc.FMRadioWidget (桌面收音機(jī)插件)
com.htc.FriendStreamWidget(好友流小插件)
com.htc.MusicWidget(桌面音樂插件)
com.htc.PlurkWidget(桌面Plurk插件)
com.htc.StockWidget(桌面股票插件)
com.htc.TwitterWidget(桌面Twitter插件)
DCSStock (股票后臺(tái)傳輸程序)
DreyeAndroidHTC(Dr.eye是一個(gè)英語字典)
EReaderLibrary 在線小說閱讀器(英文的沒用)
EReaderViewer
EReaderWidget
Flickr Flickr應(yīng)用(國(guó)內(nèi)連不上,沒啥用)
FriendStream (htc主推的社交推送軟件,可以聚合Facebook,twitter等)
htcbookmarkwidget (HTC桌面收藏夾插件)
HtcCalculatorWidget (計(jì)算器Widget小插件)
htccontactwidgets (HTC聯(lián)系人widgets小插件)
HtcFacebook(Facebook小插件)
HtcGreader(google新聞,都是英文新聞,目前沒用)
HtcGreaderWidget (新聞小插件)
htcmailwidgetsHTC (Mail小插件)
htcmsgwidgets (短消息Widget插件)
HtcPhotoWidget (圖片Widget插件)
HtcPushMedia.apk (一個(gè)應(yīng)用,啟動(dòng)后彈出三個(gè)按鈕:音樂、圖片、視頻)
HtcRecommends.apk (HTC Like)
HtcRecommendsWidget.apk (HTC Like插件)
HtcTipWidget.apk (操作提示小插件)
HtcTwitter.apk (Twitter小插件)
Quickoffice.apk (office軟件的閱讀,用更好的替代)
Stock.apk (英文股票程序)
youtube
一般來說需要更新的東西:
install_flash_player.apk (flash,這個(gè)最新版本在電子市場(chǎng)下載)10.1.106.16
Maps.apk(很多其他分辨率的東西,或者是版本不新,需要更新和精簡(jiǎn)) 5.0
Vending.apk(電子市場(chǎng),我看很多官方,包括最新的1.84的官方都還不是最新的2.2.11) 2.2.11
二、customize修改
這下面有三個(gè)目錄:CIDMNS resource
主要修改地方:
customize/default.xml
customize/CID/default.xml
customize/MNS/default.xml
CID和MNS下面除了default.xml的其他文件都可以刪掉
1.customize/default.xml
這里修改的主要是語言鍵盤的設(shè)置
主要修改
<item name="defeault">IME</item>下的
<module name="language">
<module name="InputMethod">
這里就是改變HTC輸入法國(guó)際鍵盤里面的語言和默認(rèn)加載的輸入法,比如拼音、手寫啊之類的
English英語PinYin拼音Handwriting手寫Stroke筆畫
一般就留這么幾個(gè)吧。。
我把它復(fù)制下來給大家參考:
<customization_form version="1.00">
<category name="system">
<module name="IME">
<function>
<set name="single">
<item name="defeault">IME</item>
</set>
</function>
</module>
<module name="language">
<function>
<set name="single">
<item name="total_list">en_GB;zh_CN;zh_TW;</item>
<item name="en_GB" type="boolean">yes</item>
<item name="zh_CN" type="boolean">yes</item>
<item name="zh_TW" type="boolean">yes</item>
<item name="defeault" >zh_CN</item>
</set>
</function>
</module>
<module name="InputMethod">
<function name="IME_language_set">
<set name="single">
<item name="English" type="boolean">yes</item>
<item name="PinYin" type="boolean">yes</item>
<item name="default">English</item>
</set>
</function>
<function name="IME_sip_set">
<set name="single">
<item name="total_list">Handwriting;PinYin;Stroke;</item>
<item name="Handwriting" type="boolean">yes</item>
<item name="PinYin" type="boolean">yes</item>
<item name="Stroke" type="boolean">yes</item>
<item name="default">PinYin</item>
</set>
</function>
</module>
2.customize/CID/default.xml
這里主要是開機(jī)時(shí)候的語言選擇菜單、輸入法的開啟等等
找到<module name="locale">
這里就是開機(jī)時(shí)候選擇語言的設(shè)置了
<item name="total_list">en_GB;zh_CN;zh_TW</item>,這里是總共所有的語言設(shè)置,一般我就保留這么三個(gè),或者你覺得麻煩就直接留一個(gè)zh_CN
<item type="boolean" name="en_GB">yes</item>
<item type="boolean" name="zh_CN">yes</item>
<item type="boolean" name="zh_TW">yes</item>
這些是語言設(shè)置選擇的列表和順序。在上面的項(xiàng)顯示的時(shí)候就越靠前,如果你想屏蔽一些語言,可以直接刪掉或者把yes改成no
下面我給大家看看:
<module name="locale">
<function>
<set name="single">
<item name="total_list">en_GB;zh_CN;zh_TW</item>
<item type="boolean" name="en_GB">yes</item>
<item type="boolean" name="zh_CN">yes</item>
<item type="boolean" name="zh_TW">yes</item>
</set>
接下來是語言鍵盤設(shè)置:
在 <module name="InputMethod">
<function name="IME_language_set">
<item type="boolean" name="語言名稱">yes</item>
比如英語
<item type="boolean" name="English">yes</item>
中文
<item type="boolean" name="Chinese">yes</item>
這里是所有漢字輸入法的設(shè)置:
</function>
<function name="IME_sip_set">
<set name="single">
下面的項(xiàng)目改成這樣就行了
<item name="total_list">Handwriting;PinYin;Stroke;</item>
<item type="boolean" name="Handwriting">yes</item>
<item type="boolean" name="PinYin">yes</item>
<item type="boolean" name="Stroke">yes</item>
注意,這里存在的漢字類項(xiàng)目在語言和鍵盤,國(guó)際鍵盤中才會(huì)顯示
比如Cangjie ZuhYin這些是繁體和日文的輸入法,直接刪掉就可以
設(shè)備名稱:
<module name="deviceData">
<module name="deviceData">
<function>
<set name="single">
<item name="device_name">你想要的名字</item>
</set>
開機(jī)動(dòng)畫和關(guān)機(jī)動(dòng)畫的設(shè)置(關(guān)機(jī)動(dòng)畫僅對(duì)DHD和DZ的系統(tǒng)有效)
</function>
</module>
</category>
<BootConfiguration>
<BootAnimation animation="/system/customize/resource/bootanimation.zip" audio="/system/customize/resource/android_audio.mp3" />
</BootConfiguration>
<ShutdownConfiguration>
<ShutdownAnimation image_png="/system/customize/resource/downanimation.zip" image="" fps="17" />
</ShutdownConfiguration>
</customization_form>
這里貼出的路徑就是你存放動(dòng)畫和音樂的路徑,比如有些作者喜歡放在data/local下面,就把 /system/customize/resource/改成/data/local
就行了,在路徑后面的比如bootanimition.zip就是動(dòng)畫文件的文件名
個(gè)人建議放在system下面,不然system剩余空間那么多不利用就是浪費(fèi)了
3.customize/MNS/default.xml
這里就是比如主頁(yè)面要放什么插件,在什么位置之類的,這個(gè)太煩,我也懶得看。。
一般來說改這么幾個(gè)地方
<category name="system">
<module name="defaultLocale">
<function>
<set name="single">
<item name="auto_detect">false</item>
<item name="defeault">作者寫的地區(qū)</item>
</set>
下面的東西改成這樣
<category name="system">
<module name="defaultLocale">
<function>
<set name="single">
<item name="auto_detect">false</item>
<item name="defeault">zh_CN</item>
</set>
<function name="default_IKB_settings_checked">
<set name="single">
<item name="checked_list_latin">English;France;……還有 很多</item>
這里留一個(gè)English就行了
日期時(shí)間默認(rèn)格式:
<module name="defaultTimeFormatSetting">
<function>
<set name="single">
<item name="default">作者寫的</item>
</set>
把<item name="default">作者寫的</item>改成你想要的
yyyy是年,MM或者M(jìn)MM是月份,d是天,EE是周
比如你喜歡2011/2/2那就改成yyyy/MM/d
如果你喜歡2011年2月2日,周三,那就改成yyyy MMM d, EE
</function>
</module>
<module name="defaultTimeFormatSettingShort">
<function>
<set name="single">
<item name="default">作者寫的</item>
這里修改方法和上面一樣,只不過沒有yyyy而已
一般來說這里我們要?jiǎng)h除worldclockdefaultcities和<module name="Newsstand">的所有東西,避免刷完系統(tǒng)耗費(fèi)太多流量
這里還有很多默認(rèn)設(shè)置,大家自己研究吧,太多我就不一一列舉了
3.customize/resource這里一般放的是開機(jī)動(dòng)畫、開機(jī)音樂、關(guān)機(jī)動(dòng)畫和壁紙、書簽截圖等等,如果你想要有書簽截圖,比如你想設(shè)起點(diǎn)手機(jī)為書簽,那么就刪除卡上的.bookmark_thumb1文件夾
再用手機(jī)自帶瀏覽器瀏覽一次起點(diǎn)手機(jī),然后保存書簽,然后在.bookmark_thumb1文件家里面找到的那個(gè)和你機(jī)子上書簽截圖相同的文件復(fù)制出來到system/customize/resource下面就行了
三、system/etc
這里主要是更換apns-conf.xml和gps.conf,還有init.d文件夾下的東西
apns-conf.xml里面放的是apn設(shè)置,很多人反應(yīng)不能夠連gprs就是這里沒有你的信息
gps.conf很多人反應(yīng)gps用不上或者慢,其實(shí)就是這里出問題了。
用記事本打開gps.conf文件,修改為:
NTP_SERVER=asia.pool.ntp.org
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
SUPL_HOST=suplcn.sirf.com
SUPL_PORT=7275
init.d這里主要是引導(dǎo)方式之類的,反正這里最好不動(dòng),或者使用你使用的內(nèi)核的作者提供的,如果弄錯(cuò)了就會(huì)定在第一屏
四、system\fonts
這里主要是換字體了
DroidSansFallback.ttf中文字體
DroidSans.ttf英文字體
DroidSans-Bold.ttf 加粗的英文字體
五、system/framework
這里是谷歌的系統(tǒng)框架,最好不要?jiǎng)?,不然?huì)不穩(wěn)定、或者直接進(jìn)不了系統(tǒng)
替換數(shù)字電量最好用現(xiàn)成、同系列的
如何整數(shù)字電量改天再說吧。
其它系列不要使用
六、system/lib
這里主要是換內(nèi)核用的,作者一般都是分好了路徑的,照著換就行了
一般來說換內(nèi)核必?fù)Q的 system/lib/modules/bcm4329.ko,這個(gè)文件是wifi和藍(lán)牙驅(qū)動(dòng),不同內(nèi)核的驅(qū)動(dòng)不同,如果不換wifi和藍(lán)牙只會(huì)提示錯(cuò)誤
七、system/xbin
這里主要放兩個(gè)文件
su和busybox,這兩個(gè)是獲得root權(quán)限必備的,如果沒有,即使在updater-script里面設(shè)置了也沒用
同時(shí)還需要Superuser.apk配合,解壓到\system\app\
八、system/build.prop
這個(gè)文件嘛,一般是留名用的:
主要改以下幾個(gè)地方:
1、
ro.product.locale.language=hdpi(或者有的機(jī)型是mdpildpi)
ro.product.locale.region=
改成
ro.product.locale.language=zh
ro.product.locale.region=CN
這樣開機(jī)第一次鎖屏的時(shí)候就是中文
2.
ro.build.description=
后面改成你想要的,也就是你作品的名字
ro.product.version=
這里也可以改成你作品的名字或者版本號(hào),一般我們留為基于制作的官方系統(tǒng)的驅(qū)動(dòng)版本號(hào)
3、
ro.sf.lcd_density=
后面一般為240,CM系列可以改成200,當(dāng)然會(huì)有軟件不全屏,帶sense的就別改了
4、
ro.ril.def.agps.mode = 2
聽說改成0可以加速gps定位省流量
5、
默認(rèn)鈴聲r(shí)o.config.ringtone=
默認(rèn)同志 ro.config.notification_sound=
默認(rèn)鬧鈴ro.config.alarm_alert=
默認(rèn)電話鈴聲 ro.config.cal_notification=
默認(rèn)短信鈴聲 ro.config.msg_notification=
改成相應(yīng)目錄下的文件名就行了
比如我要改ro.config.ringtone=, system/media/audio/ringstones下面有一個(gè)我喜歡的比如htc.mp3,那我就改成ro.config.ringtone=htc.mp3
比如我要改
ro.config.alarm_alert=,system/media/audio/alarms下面有一個(gè)我喜歡的比如Light.mp3,那就改成ro.config.alarm_alert=Light.np3















