在力卓社區(qū)看到的,。自己想做個rom包。覺得寫得很清楚就轉帖過來讓大家看看,。目前一堆的rom包,。不知道用那個好。就下一堆下來中和一下,。做一個自己的rom包,、這樣不更爽嗎。哈哈,。這是轉帖,。本人也是菜鳥。第一次發(fā)這種貼,。希望沒錯,。 制作方法 一、ROOT 目前的民間ROM 基本上已經(jīng)自帶ROOT 所以省略此步驟 當然前提得是ROOT過的 二,、工具準備 下載安裝附件中的R.explorer管理器(rootexplorer.v2.9.4.apk)這個工具的作用是備份APK文件,、刪除APK文件、查看系統(tǒng)目錄里面都有什么 下載附件中的AndroidResEdit_By_hanhualan...解壓到電腦里(如果不能運行則說明你需要安裝.NET Framework 2.0)我們主要用這個來對定制包簽名 三、定制包制作知識 一般定制ROM(不是美化,、也不是制作MOD)其實就是對手機內存里的system/app文件夾的內容進行自定義,,自己安裝的軟件將不會出現(xiàn)在這里,而是\data\文件夾中,。 系統(tǒng)所有的程序都在這個文件夾里,,比如瀏覽器、撥號器,、聯(lián)系人等 先來看一下通常情況下這個文件夾里都包含什么: \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 聯(lián)系人 \system\app\Contacts.odex \system\app\DownloadProvider.apk 下載提供 \system\app\DownloadProvider.odex \system\app\DrmProvider.apk DRM數(shù)字版權提供 \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 系統(tǒng)設置 \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(你想要放進系統(tǒng)中的程序) /META-INF/com/google/update-script(定制包腳本) /META-INF/CERT.SF(簽名文件) /META-INF/CERT.RSA(簽名文件) /META-INF/MANIFEST.MF(簽名文件) (附件中的custom.zip為范例,,大家可以下載直接進行修改) 首先應將準備好的程序放進這個ZIP包的/system/app目錄里,只要將程序拖進附件中custom.zip的APP目錄即可 然后刪除/META-INF/CERT.RSA和META-INF/CERT.SF這兩個文件,,為了簽名做準備 下面我們的來看最后一處需要編輯的地方——腳本 四,、腳本: 現(xiàn)在我們對里面的文件有了大致的了解,那么舉例說明,,如果我們要做一個基于以上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文件夾,。 需要注意的是不是所有的系統(tǒng)文件都可以替換、刪除,,一般來說 Layar304-final-market.apk MetaMidpPlayer.apk MidpPlayer.apk switchers.apk Youtube.apk MySpace.apk Facebook.apk 這些休閑娛樂類的東西可以刪除,,像MMS、PHONE等重要的程序通常情況下替換或者刪除會出問題 掌握了這個就可以輕松地寫一般的腳本了,,一定要注意,,腳本的最后一行下面必須有個空行,即只有一個回車存在的空行(不理解的看看附件中custom.zip里的腳本) 腳本也制作完成后,,即可進行下一步:簽名 五,、簽名 現(xiàn)在我們已經(jīng)有了一個custom.zip文件,里面的/META-INF/CERT.RSA和META-INF/CERT.SF已經(jīng)被我們刪掉,,并且向APP文件夾里添加了文件 現(xiàn)在該對它簽名了 我們這步的意義是讓定知道了解它里面裝的都是什么,,相當于對里面的程序進行一次點名,不然使用時會出錯 先將我們的custom.zip重命名為custom.apk
解壓附件中的AndroidResEdit_By_hanhualangzi_v_1.5.rar
運行AndroidResEdit_By_hanhualangzi_v_1.5.exe(如果不能運行則說明你需要安裝.NET Framework 2.0) 然后單擊工具欄里的“簽名(S)” 然后單擊“簽名APK文件(A)” 按選擇按鈕 找到并選擇custom.apk,,點擊打開 按下“立即簽名”按鈕 點保存~ 稍等一會兒,,里面的東西越多,ZIP包越大,等的時間越長 提示你簽名成功后在你所保存的目錄下就會出現(xiàn)custom-SignFile.apk
我們將其重命名為custom-SignFile.zip,,這是里面就又有了/META-INF/CERT.RSA和META-INF/CERT.SF兩個文件,,并且和原來的不同,這是屬于你這個定制包的簽名文件 將它放進SD卡的根目錄里 六,、安裝 提醒一下,!如果對自己做的定制包不是非常有信心,而且不想重新刷機,,一定要備份ROM,! 安裝定制包方法: 進入recovery模式),用方向鍵選擇apply any zip from sd,,然后選擇custom-SignFile.zip,,按OK鍵,然后會有提示讓你按小房子鍵,,按下小房子鍵即可,。 全部運行完畢后,返回選擇第一項reboot重啟,。 進入系統(tǒng)之后,,如果成功的話,,發(fā)現(xiàn)你在腳本中想刪掉的程序已經(jīng)不再菜單里了,,而添加進system/app的程序出現(xiàn)在菜單里,這樣一套基本的制作定制包的過程就結束了,。 你已經(jīng)可以制作各種定制包以備刷機后使用~
七,、新手進階 如果已經(jīng)對制作定制包熟悉了的話 那么只要稍微動些腦子就可以做一些替換系統(tǒng)字體、修復聯(lián)系人BUG等定制包~ 提醒一下字體文件在system/font里,,中文字體的文件名為DroidSansFallback.ttf 替換字體即是只要將字體文件命名為DroidSansFallback.ttf放入system/font文件夾里,,用復制SYSTEM的語句正常刷進去即可 修復聯(lián)系人BUG只需將聯(lián)系人補丁內除了META-INF文件夾及其內的東西,都復制到你的定制包里,,然后將腳本中除了show_progress命令之外,,添加進你的定制包的腳本中~即可~簡單吧~
八、答疑區(qū) 1.能不能直接用R.explorer管理器 刪除掉系統(tǒng)自帶的無用軟件??? 這樣做可以嗎? 可以,,方法是root后打開管理器,,進入手機system/app目錄點擊上面的掛載(mount)讀/寫(RW)按鈕,之后就可以對此文件夾的文件進行修改或者刪除了 (祝君刪的愉快,、刪的安全,、、、,、) 2.簽名后文件大小為0KB 簽名的程序或定制包內包含中文命名的文件,,重命名為英文的即可 純手工版ROM 定制 工欲善其事必先利其器!,! 所以準備工作必不可少,,制作ROM所需要的軟件和相關文件必須準備齊全了才能開始。 先附上所要需要用到的軟件和文件:
JKD6: http://dlc.sun.com. ... 6-p-12_sep_2008.exe system.img解壓工具unyaffs:
簽名工具Auto-sign: ROM中的META-INF文件: (適合制作有data/app文件的ROM) root用的su和Superuser文件:
將電源鍵替換為搜索鍵的legend-keypad文件:
過濾廣告的hosts文件: 第一步:安裝JKD6并設置變量環(huán)境(這一步很重要) 點擊安裝下載的jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe文件,,安裝目錄就不要更改了,,默認的就行了(這個應該簡單的); 安裝完成后開始設置環(huán)境變量了,,這里就要仔細了,。右鍵單擊“我的電腦(xp系統(tǒng))”或“計算機(vista或windows7系統(tǒng))”,選擇“屬性”,,然后在彈出的窗口點擊“系統(tǒng)高級設置”(劃橫線部分僅適合vista或windows7系統(tǒng),,xp系統(tǒng)無此步驟),然后點擊“高級”,,再點擊“環(huán)境變量”,,見下圖: 然后在下面的“環(huán)境變量”中新建變量: 變量名:JAVA_HOME 變量值:C:\Program Files\Java\jdk1.6.0_10 提醒一下,64位系統(tǒng)變量值為:C:\Program Files (x86)\Java\jdk1.6.0_10 也就是說變量值就是你所安裝的JKD6的安裝目錄下jdk1.6.0_10文件夾的路徑,。 然后點擊確定,。 再新建一個變量: 變量名:CLASSPATH 變量值:C:\Program Files\Java\jdk1.6.0_10\lib\dt.jar;C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar;. 注意最后面有個小點,別忘了,。 同上,,64位系統(tǒng)變量值為:C:\Program Files (x86)\Java\jdk1.6.0_10\lib\dt.jar;C:\Program Files (x86)\Java\jdk1.6.0_10\lib\tools.jar;. 然后點擊確定。 再找到Path變量,,點擊編輯,,在它的變量值最后面加上;C:\Program Files\Java\jdk1.6.0_10\bin 注意前面有個分號 同上,64位系統(tǒng)在后面加上的應該是: ;C:\Program Files (x86)\Java\jdk1.6.0_10\bin 然后點擊確定 全部完成后點擊兩次確定,,就OK了,。 然后你運行cmd回車后看看再輸入javac,出來一堆java命令就表示配置成功了,。 第二部:提取官方ROM,,解壓system.img文件 接著前面下載的unyaffs.rar解壓,并把解壓后的unyaffs文件夾移動到電腦D盤根目錄下,,再把上面提取的官方原版ROM解壓,,將得到的system.img復制到D盤unyaffs文件夾內。 然后運行cmd,,輸入D: 回車,;再輸入cd unyaffs 回車,;再接著輸入unyaffs system.img 回車,就開始解壓system.img了,,完畢后會提示按任意鍵退出,。 創(chuàng)建system文件夾,將解壓出來的文件(unyaffs文件夾內除了cygwin1.dll,、system.img ,、unyaffs.exe以外的文件)全部放到里面system文件夾里面。 第三部:制作ROM并簽名 新建一個文件夾,,把上面的system文件夾移到里面,,把前面下載的META-INF文件也解壓到這個文件夾內,把從官方原版ROM中解壓出來的boot.img也放到這個文件夾內,,如圖: 接著你就可以開始大展身手,,根據(jù)自己需要刪除system/app文件夾內用不到的程序了,要注意如果程序有.odex文件的還要把它也一起刪掉,。 另外,, 如果你想用搜索鍵替換電源鍵,你可以把前面下載的legend-keypad文件解壓替換掉system\usr\keylayout中的文件 如果你想ROM能屏蔽掉廣告,,可以用前面下載的hosts文件解壓替換掉system\etc中的文件 如果你想取消掉開機鈴聲,,你可以刪掉D:\Mobile\update\system\media\bootscreen中的boot.mp3
如果你想獲取ROOT權限,可以將前面下載的ROOT文件解壓,,把su文件放到system\xbin文件夾內,,把Superuser.apk放到system\app文件夾內 精簡完畢后,全選META-INF,、system文件夾和boot.img文件,,右鍵,選擇“添加到壓縮文件(A)...”,,壓縮文件名為updata.zip,格式選擇zip格式,具體見下圖: 生成update.zip文件后,,就可以簽名了 將前面下載的簽名工具Auto-sign解壓到D盤,,然后把剛才生成的update.zip復制到Auto-sign文件夾內,雙擊Sign.bat,,就開始簽名了,,此時會在Auto-sign文件夾內生成一個update_signed.zip的文件,它就是我們制作成功的ROM了,。 完畢?。?! 本人備查備忘錄 并非Android系統(tǒng)的編譯教程,,可做為有興趣學習Android系統(tǒng)的參考,,亦方便本人備查備忘。如對Android系統(tǒng)編譯有興趣可以看一下,,沒有耐心的,,可以飄過
Linux,得益于它的Open & Free(不要單純的理解成開門與免費哈:),,開放與自由的精神讓Linux不斷的發(fā)展壯大,也是它的魅力與核心精神所在 【Linux 內核】 如果要了解Android,,需要先了解一下Linux,。我們常說的 Linux 嚴格意義上講,不是一個完整的操作系統(tǒng),,它只是一個操作系統(tǒng)的核心,。基于Linux內核,,目前已派生出數(shù)百個“發(fā)行版”的操作系統(tǒng),。 【Linux 發(fā)行版本】 目前基于Linux 內核的發(fā)行版本(操作系統(tǒng))知名和不知名的約有數(shù)百個,,點擊這里是一個Linux發(fā)行版樹型結構的時間線,,可以看到詳細的Linux發(fā)行版的歷程,。其中主要有 Slackware,、Redhat、Debian等幾大分支,。這些發(fā)行版又分別派生出子系,、孫系的發(fā)行版,。舉例來說,,目前如日中天的 Ubuntu 源系Debian的派生的版本,后來不斷發(fā)展壯大,,在其旗下又派生出Kubuntu/Lubuntu/Mythbuntu/Edubuntu等等,,其支系目前最為繁盛,并有不斷壯大的趨勢,。 【關于Android】 Android系統(tǒng)也是基于Linux核心的一個分支,,屬于一個獨立的支系,仍然遵守并繼續(xù) Linux GPL 源碼開放的守則,?;?/font>Android系統(tǒng)的應用及底層驅動則同時擁有 Apache License,Version2.0的版權規(guī)則,,底層的驅動部分可以閉源。 因此,,我們在編譯和移植Android系統(tǒng)的時候,,需要提取原廠ROM中的相關設備驅動的庫文件。 【Android ROM】 Android另外吸引人之處在于它的靈活性,、易用性,、可定制性及可玩性。目前國內外的 Androd 論壇大多異?;鸨?。定制ROM、自制ROM教程,、帖子鋪天蓋地,,隨處可見。一般沒有Linux應用基礎的借助定制工具都可以制作出漂亮且個性化的ROM,。在原有ROM基礎上反編譯,、修改定制ROM的方法簡單、實用,、方便,,基本可以滿足修改美化化的需要。本文的內容主要不在定制,、修改ROM,。如果有需要,可以查詢安智,、隔壁的等論壇,。 【dsixda's Android Kitchen】 是國外的一位超級大神制作的ROM修改及定制工具,非常方便,、實用,,使定制修改ROM更加輕松容易。安智網(wǎng)的大星星等為國人做了漢化版,,在此也致以崇高的敬意,。 【編譯Android ROM】 再一次感謝Open & Free。Android系統(tǒng)的源碼是完全開放的,,你可以很方便的隨時獲取Android源碼,而且是免費的,?;?/font>Android源碼,你可以將其移植到手機,、GPS導航定位設備,、平板電腦,、上網(wǎng)本等移動設備上。通過編譯Android源碼,,可以更深入的了解操作系統(tǒng)的核心及操作系統(tǒng)的原理,,對于從事移動設備開發(fā)的工程師更具有挑戰(zhàn)性。如果你精通Android系統(tǒng)開發(fā),,也可以讓你找到收入可觀的一份職位,。當然,你也可以將自己定制的系統(tǒng)商業(yè)化獲取高額的利潤,,這于GPL守則是合法的,。 【編譯環(huán)境】 因Android原生于Linux,因此,,其編譯環(huán)境也是基于Linux環(huán)境的,。網(wǎng)上基于Android源碼的編譯教程指引多是基于 Ubuntu的,本小白沒有親測(前文說了,,本小白對Ubuntu不感冒),。本人分別在CentOS 5.5 獨立主機、WinXP + VMWare + CentOS 6.0 虛擬機及Redhat Fedora 14 獨立主機環(huán)境下分別搭建環(huán)境且均編譯 system + kernel 成功通過,。編譯過程和修改編譯配置并不復雜,,對于大多數(shù)沒有Linux基礎的tx來說,搭建消編譯可能是一個非常蛋疼的過程,,一般都是由于無法搭建編譯環(huán)境而最終放棄嘗試,。網(wǎng)上關于搭建編譯環(huán)境的教程指引非常多,本文不再贅述(要補充一點的是包括CyanogenMod wiki在內的搭建環(huán)境的教程一般都不夠完整,,若沒有Linux基礎,,很難成功)。因此如有致于做一個 Android 開發(fā)工程師,,要先補補 Linux 這門課,。 【CM 源碼倉庫】 是國外的一個Android開發(fā)小組基于官方Android源碼移植的有數(shù)十種機型支持的一個源碼倉庫,亦可免費獲取,。目前國內外很多Android大神都是基于這個源碼倉庫編譯Android源碼的,。每個機型一般有多位工程師維護的幾個分支(branch)。 【Android system + kernel】 基于CM 源碼倉庫的Android系統(tǒng)的編譯分為兩個部分,,分別是system 和 kernel ,。源碼倉庫中所有機型源碼的系統(tǒng)(system)源碼部分,已經(jīng)植入了CM小組各機型維護工程師編譯好的 kernel,,一般無需再編譯 kernel(內核),。但原有的kernel不一定能夠滿足所有機型用戶的需要,在CM沒有及時更新kernel的情況,,你自己可以根據(jù)CM kernel 源碼重新編譯 kernel 并將其植入到system源碼中,,并編譯成最終的ROM,。內核源碼的配置參數(shù)、選項十分復雜,,有數(shù)千個選項之多,,要求對系統(tǒng)核心、硬件驅動有較深入的了解了熟悉,,若沒有深入研究和了解,,請勿隨意變更kernel編譯參數(shù)。一般每個機型都有默認的參數(shù)配置,,如需要更高級的參數(shù)配置則可以使用 make menuconfig 獲取,。(詳細指引略) 【系統(tǒng)美化及修改】 與一般的定制ROM稍不同,各機型的編譯配置(.mk 文件),、界面參數(shù)(.xml文件),,c及java程序等都是源碼的。需要對系統(tǒng)結構有一定的了解,,如果有定制ROM基礎,,應該會比較方便。 一旦完成界面的個性化定制和修改后,,后續(xù)的升級更新就會變得輕松和簡單(本人沒有做過ROM定制和美化,,還需要向各位ROM大師學習補課)。(本小白也不會承諾今后會發(fā)布我自己編譯的ROM,,因為我做的界面美化等方面的工作不會比其他ROM大師更好,,本人編譯系統(tǒng)暫時只為測試和自己學習) 【Android系統(tǒng)移植】 CM源碼庫中目前已經(jīng)包含數(shù)十種手機及平板電腦的機型支持,而且這個數(shù)字還在不斷增加中,,其中包括國內的部分機型,。 待深入研究和了解Android源碼系統(tǒng)后,就可以考慮移植和定制專用系統(tǒng)的工作
|