1. 程式人生 > >Android ROM包製作

Android ROM包製作

製作ROM包是做Android系統工程師的第一步,Android第三方的市場前景有多大相信大家也都明白。

製作方法
一、ROOT
無論是什麼版本,首先要ROOT一下機器這是定製的前提
ROOT方法現在又好多整合工具:一鍵root、360root...在此不再贅述
二、工具準備
下載安裝附件中的R.explorer管理器(rootexplorer.v2.9.4.apk)這個工具的作用是備份APK檔案、刪除APK檔案、檢視系統目錄裡面都有什麼
下載http://androidforums.com/developer-101/8665-how-signing-roms.html我們主要用這個來對定製包簽名(需要註冊)需要註冊使用者登入才能下載。下載的工具是windows下執行的。


三、定製包製作知識
一般定製ROM(不是美化、也不是製作MOD)其實就是對手機記憶體裡的system/app資料夾的內容進行自定義,自己安裝的軟體將不會出現在這裡,而是\data\資料夾中。
系統所有的程式都在這個資料夾裡,比如瀏覽器、撥號器、聯絡人等
先來看一下通常情況下這個資料夾裡都包含什麼:
\system\app\AlarmClock.apk 鬧鐘
\system\app\AlarmClock.odex
\system\app\Browser.apk 瀏覽器
\system\app\Browser.odex
\system\app\Bugreport.apk Bug報告
\system\app\Bugreport.odex
\system\app\Calculator.apk 計算器
\system\app\Calculator.odex
\system\app\Calendar.apk 日曆
\system\app\Calendar.odex
\system\app\CalendarProvider.apk 日曆提供
\system\app\CalendarProvider.odex
\system\app\Camera.apk 照相機
\system\app\Camera.odex
\system\app\com.amazon.mp3.apk 亞馬遜音樂
\system\app\Contacts.apk 聯絡人
\system\app\Contacts.odex
\system\app\DownloadProvider.apk 下載提供
\system\app\DownloadProvider.odex
\system\app\DrmProvider.apk DRM數字版權提供
\system\app\DrmProvider.odex
\system\app\Email.apk 電子郵件客戶端
\system\app\Email.odex
\system\app\FieldTest.apk 測試程式
\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服務
\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 啟動載入器
\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 電話撥號器
\system\app\Phone.odex
\system\app\Settings.apk 系統設定
\system\app\Settings.odex
\system\app\SettingsProvider.apk 設定提供
\system\app\SettingsProvider.odex
\system\app\SetupWizard.apk 設定嚮導
\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 語音撥號器
\system\app\VoiceDialer.odex
\system\app\YouTube.apk Youtube視訊
\system\app\YouTube.odex

然後是定製包的結構,定製包的命名一般是XXXX(英文)
.zip內容包括
/system/app/my.apk(你想要放進系統中的程式)
/META-INF/com/google/update-script(定製包指令碼)
/META-INF/CERT.SF(簽名檔案)
/META-INF/CERT.RSA(簽名檔案)
/META-INF/MANIFEST.MF(簽名檔案)

首先應將準備好的程式放進這個ZIP包的/system/app目錄裡,只要將程式拖進附件中custom.zip的APP目錄即可
下面我們的來看最後一處需要編輯的地方——指令碼

四、指令碼:
現在我們對裡面的檔案有了大致的瞭解,那麼舉例說明,如果我們要做一個基於以上ROM的定製包,那麼大概要進行兩種操作
1.新增目錄裡的APK程式到ROM的system/app裡
2.從ROM裡刪除APK程式(即瘦身)
3.顯示程序
新增目錄的語句為copy_dir PACKAGE:定製包路徑 手機記憶體路徑
刪除程式的語句為delete 手機記憶體路徑
顯示程序語句為show_progress
指令碼檔案可用TXT、記事本等程式作為開啟方式並編輯儲存
作為初學者
只需要掌握以下範例即可
show_progress 0.1 0
delete SYSTEM:app/DivXRegCode.odex
delete SYSTEM:app/YouTube.apk
copy_dir PACKAGE:system SYSTEM:
show_progress 0.1 10
其中對前後兩個show_progress語句不需要理解,看中間的,
第一句是刪除system/spp資料夾內的DivXRegCode.odex檔案,
第二句是刪除system/spp資料夾內的YouTube.apk檔案,
第三句是複製(同時會覆蓋已存在的檔案)定製包中的system資料夾到手機記憶體的system資料夾。
需要注意的是不是所有的系統檔案都可以替換、刪除,一般來說
Layar304-final-market.apk
MetaMidpPlayer.apk 
MidpPlayer.apk 
switchers.apk
Youtube.apk
MySpace.apk
Facebook.apk

這些休閒娛樂類的東西可以刪除,像MMS、PHONE等重要的程式通常情況下替換或者刪除會出問題
掌握了這個就可以輕鬆地寫一般的指令碼了,一定要注意,指令碼的最後一行下面必須有個空行,即只有一個回車存在的空行
指令碼也製作完成後,即可進行下一步:簽名
五、簽名

執行:autosign.bat

第一次需要設定CLASS_PATH,將testsign.jar加進去,設定過程很簡單,首先要輸入2:

然後它會猜你的testsign.jar就在當前目錄下,因此輸入yes

然後選擇4,手工輸入需要簽名的ROM路徑,然後輸入yes,就可以了

簽名過程需要一段時間,需要耐心等待,簽名後並不生成新的檔案,是通過修改原檔案完成的。

六、安裝
線刷或者卡刷。

七、新手進階
如果已經對製作定製包熟悉了的話
那麼只要稍微動些腦子就可以做一些替換系統字型、修復聯絡人BUG等定製包~
提醒一下字型檔案在system/font裡,中文字型的檔名為DroidSansFallback.ttf
替換字型即是隻要將字型檔案命名為DroidSansFallback.ttf放入system/font資料夾裡,用複製SYSTEM的語句正常刷進去即可
修復聯絡人BUG只需將聯絡人補丁內除了META-INF資料夾及其內的東西,都複製到你的定製包裡,然後將指令碼中除了show_progress命令之外,新增進你的定製包的指令碼中~即可~簡單吧~