版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
ROM簡(jiǎn)單制作教程刖言經(jīng)常看到網(wǎng)友問(wèn):哥幾個(gè),推薦一個(gè)好用的ROM?。窟@時(shí)候我們要有信心說(shuō):自己制作的ROM才是最好的ROM。當(dāng)然制作ROM并不是那么簡(jiǎn)單,但也不是難到一般人做不了。高端的大大可以從安卓源碼開(kāi)始編譯ROM,但也是以團(tuán)隊(duì)的形式,比較出名的有CM和MIUI。一般人還是只能從底包提取文件進(jìn)行修改制作。但這也不是輕易能完成的事。我寫(xiě)這個(gè)教程只是出于愛(ài)好,本人并非計(jì)算機(jī)專(zhuān)業(yè),所以寫(xiě)的并不是很專(zhuān)業(yè)。但正因?yàn)槿绱耍拍芙o大家更多的信心,我都能簡(jiǎn)單制作,你還怕你不行?本篇教程采用一種新的模式給大家展示這個(gè)教程。將會(huì)從簡(jiǎn)單的知識(shí)普及,制作工具,步驟等說(shuō)明,工程巨大,錯(cuò)誤也不少,但還是希望能幫助到大家。以下內(nèi)容參考到的作者較多,就不一一詳說(shuō)了,感謝這些兄弟的奉獻(xiàn),讓我們有一個(gè)更好的玩機(jī)空間。關(guān)鍵詞:java環(huán)境配置制作工具update-script編寫(xiě)美化集成編譯反編譯一.制作目的:培養(yǎng)個(gè)人興趣,感受動(dòng)手動(dòng)腦的快樂(lè)。學(xué)習(xí)手機(jī)基本知識(shí),最終動(dòng)手制作自己的ROM。幫助那些需要幫助的朋友(說(shuō)不定有人喜歡你制作的ROM)制作原理:1.安卓基礎(chǔ)知識(shí)普及:Android一詞的本義指“機(jī)器人”,同時(shí)也是Google于2007年11月5日宣布的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)的名稱(chēng),該平臺(tái)由操作系統(tǒng)、中間件、用戶(hù)界面和應(yīng)用軟件組成,號(hào)稱(chēng)是首個(gè)為移動(dòng)終端打造的真正開(kāi)放和完整的移動(dòng)軟件。目前,最新版本為Android2.4Gingerbread和Android3.0Honeycomb。底包:官方的系統(tǒng)包,相當(dāng)于我們的Windows的操作系統(tǒng),事實(shí)上它相當(dāng)于一個(gè)純凈版或者內(nèi)核版的系統(tǒng)包,是最底層的東西。擴(kuò)展名為sbf,底包通常是官方發(fā)布的,ROM作者直接拿來(lái)用的,可以選擇的版本不會(huì)太多,通常更新也不會(huì)頻繁。底包通常使用PC端刷機(jī)工具(RSD)配合Bootloader的工程模式完成刷入。升級(jí)包(鏡像包):廣大玩家制作的底包增強(qiáng)包,通常表現(xiàn)為一個(gè)update.zip文件。升級(jí)包是對(duì)底包的擴(kuò)展和增強(qiáng),包含一系列的輔助工具和服務(wù),沒(méi)有中文的底包通過(guò)升級(jí)包可以實(shí)現(xiàn)中文。當(dāng)然,很多功能也是通過(guò)升級(jí)包來(lái)實(shí)現(xiàn)的??梢哉f(shuō),在刷新了底包后,配合刷新相應(yīng)的升級(jí)包,這樣才形成一個(gè)完整系統(tǒng)。升級(jí)包通常通過(guò)Recovery工具,從SD卡讀取刷入。Bootloader:相當(dāng)于電腦里面的bios(基本輸入輸出系統(tǒng)),手機(jī)一開(kāi)機(jī),控制手機(jī)的就是Bootloader。我們通常所說(shuō)的進(jìn)入Bootloader,實(shí)際上是指進(jìn)入Bootloader的工程模式,既是刷機(jī)模式,在此模式下可以將moto的sbf文件(底包)刷到機(jī)器里面。?Recovery:Moto手機(jī)內(nèi)置的一個(gè)獨(dú)立備份恢復(fù)工具,類(lèi)似電腦上的一些一鍵還原系統(tǒng),既是在系統(tǒng)出現(xiàn)問(wèn)題的時(shí)候仍然可以打開(kāi)的一個(gè)模式。Moto的Recovery主要提供了WIPE(硬啟,清除數(shù)據(jù),恢復(fù)出廠(chǎng)設(shè)置)和Update(通常用于安裝升級(jí)包,update.zip)功能。Recovery是不能直接刷新的底包的,通常它刷新的升級(jí)包(update.zip)的方式是:自動(dòng)尋找SD卡上的特定文件,然后寫(xiě)入。基帶(Baseband):是手機(jī)中的一塊專(zhuān)門(mén)的代碼,或者可以理解成為一個(gè)專(zhuān)門(mén)負(fù)責(zé)通訊的BIOS,負(fù)責(zé)完成移動(dòng)網(wǎng)絡(luò)中無(wú)線(xiàn)信號(hào)的解調(diào)、解擾、解擴(kuò)和解碼工作。基帶的不同會(huì)造成信號(hào)效果的不同。因?yàn)楦鞯?、各網(wǎng)絡(luò)實(shí)際情況不同,需要大家自己選擇適合自己的基帶。WIPE:wipe后就恢復(fù)了出廠(chǎng)設(shè)置,包括聯(lián)系人、短信、安裝的軟件等全部刪除。俗稱(chēng)硬啟,恢復(fù)出廠(chǎng)設(shè)置。注意,wipe后app2sd和root權(quán)限需要重新做。而且app2sd重要的分區(qū)步驟也要重新來(lái)過(guò)。某些說(shuō)法提到在刷新底包或者升級(jí)包前需要進(jìn)行WIPE操作,我對(duì)此操作的必要性不是很確定。OpenRecovery(簡(jiǎn)稱(chēng)OR):由于MOTO很蛋疼的在update.zip上做了一些手腳,這些東西影響到了升級(jí)包的制作。于是高手們就搞出了一個(gè)OpenRecovery,這其實(shí)就一個(gè)第三方的增強(qiáng)版的Recovery工具,某些OpenRecovery已經(jīng)發(fā)展成為一個(gè)具有很多功能的小系統(tǒng)了(類(lèi)似WindowsPE),在這個(gè)OR中,可以完成很多東西,我們完全可以把OR想象成電腦上用的應(yīng)急P(pán)E系統(tǒng),在上面可以調(diào)整超頻、基帶、app2sd、更換啟動(dòng)畫(huà)面、wipe、改變時(shí)區(qū)、調(diào)整鍵盤(pán)布局,甚至鏈接USB當(dāng)讀卡器等等,凡是recovery能做的,OR都可以做,recovery不能做到,OR可以做到。一般OpenRecovery在sd卡上有兩個(gè)部分存在:update.zip和OpenRecovery目錄,最新的GOT底包添加了新的一個(gè)OpenRecovery-CFG目錄,用來(lái)存放各種個(gè)人文件°update.zip就是用來(lái)坑MOTO一個(gè)標(biāo)準(zhǔn)的的zip升級(jí)包,而真正的升級(jí)包要放在/sdcard/OpenRecovery/updates目錄下。App2sd:說(shuō)白了,其實(shí)很簡(jiǎn)單,就是把APK文件安裝到sd卡上,android是Linux脫胎而來(lái),App2sd的原理就是對(duì)SD卡進(jìn)行分區(qū),然后把SD上劃分出來(lái)的某個(gè)分區(qū)合并到系統(tǒng)分區(qū)中去(聽(tīng)不懂,不要緊),劃分出來(lái)的分區(qū)是Ext2格式,一般Windows不能識(shí)別,不要驚慌,正?,F(xiàn)象。App2sd對(duì)sd卡要求比較高,如果感覺(jué)app2sd后比較慢,可以試試換一張C4的sd卡。因?yàn)樵?.1的環(huán)境下,app2sd需要對(duì)sd進(jìn)行分區(qū),操作比較復(fù)雜,E文不好的小白或者電腦基礎(chǔ)薄弱的小白容易失誤。建議對(duì)Android非常熟悉了再做App2sd。⑨Root:大家都知道android系統(tǒng)脫胎自L(fǎng)inux,也正是這個(gè)開(kāi)源的內(nèi)核讓廣大玩家可以自由發(fā)揮°Root是Linux系統(tǒng)下的系統(tǒng)級(jí)賬號(hào),擁有系統(tǒng)的全部權(quán)限,Android設(shè)計(jì)上的不開(kāi)放這個(gè)用戶(hù)的,目的是為了保護(hù)系統(tǒng)安全,但是這個(gè)保護(hù)似乎也帶來(lái)很多不便。于是就一些工具和方法來(lái)開(kāi)放這個(gè)賬號(hào)。開(kāi)放Root賬號(hào)的方法似乎有很多,這里就不再細(xì)說(shuō)。原理上分析,root的賬號(hào),應(yīng)該通過(guò)在A(yíng)ndroid系統(tǒng)安裝某個(gè)系統(tǒng)級(jí)別的服務(wù),該服務(wù)具有root權(quán)限,然后其它需要root權(quán)限的程序再向這個(gè)服務(wù)請(qǐng)求root權(quán)限。WIPE、刷機(jī)都有可能會(huì)造成root權(quán)限失效,需要重新root權(quán)限。額外說(shuō)明:①?gòu)脑砩戏治?,通常底包,Bootloader,Recovery,基帶都是可以刷新替換的,升級(jí)包當(dāng)然更可以。但是底包、Bootloader很少會(huì)有第三方開(kāi)發(fā)或者修改的,一般都使用官方發(fā)布的。底包有時(shí)候會(huì)內(nèi)置Bootloader、Recovery,這樣的底包刷新時(shí)會(huì)連上述兩者一起更新(推測(cè)結(jié)果,不確定)。更新這樣的底包是有危險(xiǎn)的,有可能會(huì)造成Bootloader損壞,這個(gè)東西損壞了,基本就是變磚了,真正的變磚,只能花錢(qián)去修了。只有這個(gè)東西沒(méi)壞,就不是磚。②我們通常所說(shuō)的刷機(jī)ROM實(shí)際是升級(jí)包,升級(jí)包是對(duì)應(yīng)于特定的底包制作的,所以刷機(jī)時(shí)務(wù)必確保使用的底包和升級(jí)包版本上保持一致。③需要注意版本號(hào)的還有:Bootloader版本、基帶版本、Recovery版本④目前有些OpenRecovery工具支持底包、升級(jí)包一起從SD卡讀取刷入⑤似乎刷機(jī)前確保系統(tǒng)干凈整潔是很重要的,很多教程提到要通過(guò)WIPE-刷底包的步驟來(lái)確保刷機(jī)前的干凈,實(shí)際上如果底包版本沒(méi)有變化,刷底包似乎、也許、大概、可能是不必要的。系統(tǒng)結(jié)構(gòu)及文件簡(jiǎn)單剖析:一個(gè)常見(jiàn)的自制ROM根目錄會(huì)有以下幾個(gè)文件夾及文件:data,META-IN,system,boot.img(鎖了BL的可以無(wú)視這個(gè),但制作時(shí)需要它,打包時(shí)把它拿出來(lái)。)系統(tǒng)目錄說(shuō)明①應(yīng)用程序安裝目錄1)系統(tǒng)應(yīng)用程序所在目錄/system/app/*.apk2)用戶(hù)安裝應(yīng)用程序所在目錄/data/app/*.apk3)注意:3)在模擬器中,每重啟一次,/system/app/r的應(yīng)用都會(huì)被還原,有時(shí)/data/app下也會(huì)被清除b)若在/system/app和/data/app下有重名的應(yīng)用,不一定會(huì)啟動(dòng)哪一個(gè),尤其是在adbinstall死正在運(yùn)行的程序時(shí),有時(shí)舊的就會(huì)被啟動(dòng).用戶(hù)數(shù)據(jù)所在目錄/data/data應(yīng)用包名/shared_prefs配置文件/data/data應(yīng)用包名/databases/輝文件所在目錄.SD卡對(duì)應(yīng)目錄/sdcard/而我們需要處理的只是兩個(gè)文件夾里面的內(nèi)容:data/app——該文件夾里的文件可以全刪,也可以自由添加自已所需安裝的應(yīng)用軟件,刷機(jī)安裝后可以自由刪除。system/app——在這個(gè)文件夾下的程序?yàn)橄到y(tǒng)默認(rèn)的組件,可以看到都是以APK格式結(jié)尾的文件,但有些系統(tǒng)自帶的ROM里面還有和APK文件名對(duì)應(yīng)的odex文件。我們主要是針對(duì)該文件夾里的文件進(jìn)行精簡(jiǎn),如果有odex文件的,刪除APK文件名時(shí)同時(shí)也刪除與其對(duì)應(yīng)的odex文件。雖然一般定制時(shí)只是對(duì)以上兩個(gè)文件夾里的文件做相應(yīng)的增減,但我們還是一起來(lái)了解system相應(yīng)目錄常見(jiàn)相應(yīng)文件的用途吧。rom版本不同,里面的APK也會(huì)不一樣,其它文件夾下需要改動(dòng)的較少,或者不需要改動(dòng)。但app文件下是制作時(shí)的重點(diǎn),所以詳細(xì)列出:[url=file://system/app]\\system\\app[/url][url=file://system/app/AlarmClock.apk]\\system\\app\\AlarmClock.apk[/url]鬧鐘[url=file://system/app/Browser.apk]\\system\\app\\Browser.apk[/url]瀏覽器[url=file://system/app/Bugreport.apk]\\system\\app\\Bugreport.apk[/ur報(bào)告Bug\\system\\app\\Calculator.apk計(jì)算器\system\app\Calendar.apk日歷\\system\\app\\CalendarProvider.apk日歷提供\\system\\app\\Camera.apk照相機(jī)\\system\\app\\Contacts.apk聯(lián)系人\\system\\app\\DownloadProvider.apk下載提供\\system\\app\\DrmProvider.apkDRM數(shù)字版權(quán)提供\\system\\app\\Email.apk電子郵件客戶(hù)端\\system\\app\\FieldTest.apk測(cè)試程序\\system\\app\\GDataFeedsProvider.apkGoogleData提供\\system\\app\\Gmail.apkGmail電子郵件\\system\\app\\GmailProvider.apkGmail提供\\system\\app\\GoogleApps.apk谷歌程序包\\system\\app\\GoogleSearch.apk搜索工具\(yùn)\system\\app\\gtalkservice.apkGTalk月艮務(wù)\\system\\app\\HTMLViewer.apkHTML查看器\\system\\app\\HtcTwitter.apk集成Twitter客戶(hù)端PEEP\\system\\app\\IM.apk即使通訊組件包含MSN、yahoo通\\system\\app\\Launcher.apk啟動(dòng)加載器\\system\\app\\Maps.apk電子地圖\\system\\app\\MediaProvider.apk多媒體播放提供\\system\\app\\Mms.apk短信、彩信\\system\\app\\Music.apk音樂(lè)播放器\\system\\app\\PackageInstaller.apkapk安裝程序\\system\\app\\Phone.apk電話(huà)撥號(hào)器\\system\\app\\Settings.apk系統(tǒng)設(shè)置\\system\\app\\SettingsProvider.apk設(shè)置提供\\system\\app\\SetupWizard.apk設(shè)置向?qū)\system\\app\\SoundRecorder.apk錄音工具\(yùn)\system\\app\\Street.apk街景地圖\\system\\app\\Sync.apk同步程序\\system\\app\\Talk.apk語(yǔ)音程序\\system\\app\\TelephonyProvider.apk電話(huà)提供\\system\\app\\Updater.apk更新程序\\system\\app\\***Services.apk***服務(wù)\\system\\app\\Vending.apk制造商信息\\system\\app\\VoiceDialer.apk語(yǔ)音撥號(hào)器\\system\\app\\VoiceSearch.apk語(yǔ)音搜索app文件夾內(nèi)放的就是內(nèi)置軟件,有不想要的,直接刪除之。請(qǐng)?jiān)趧h除之前先弄清楚它能不能刪除。有些官方內(nèi)置的軟件,刪除了ROM就廢了。當(dāng)然,你也可以在沒(méi)弄清楚的情況下亂刪一氣,只要在刷機(jī)完發(fā)現(xiàn)問(wèn)題之后,把刪除的軟件,一個(gè)個(gè)放回去排查,刷個(gè)十遍八遍,大約也就搞定了。所以我們要佩服那么敢于探索的先驅(qū),不容易啊。fonts文件夾放的是手機(jī)的字體,如果沒(méi)有美術(shù)細(xì)胞的人就不要亂改,改字體有時(shí)候會(huì)死人的,刺眼、字形不協(xié)調(diào)、大小不一致等等諸如此類(lèi)。要改也刷機(jī)完以后再改。具體方法要參見(jiàn)自己區(qū)的人發(fā)的帖子。lib文件夾顧名思義,是內(nèi)置軟件的庫(kù)文件。有些軟件需要?jiǎng)討B(tài)庫(kù)支持才能正常使用的,比如常見(jiàn)的輸入法之類(lèi)的。所以,如果你向一個(gè)原本可以正常使用的ROM中加入了新的軟件之后,反而出現(xiàn)某程序意外關(guān)閉某程序意外結(jié)束的情況后,那么基本上就是你忘了把庫(kù)文件給它移動(dòng)過(guò)去。bin文件夾中放的是系統(tǒng)內(nèi)置的工具,像什么busybox,su之類(lèi)的都在里面,沒(méi)事不要?jiǎng)h除它,可以添加,但不要?jiǎng)h除。etc文件夾中放置的是系統(tǒng)的設(shè)置,諸如無(wú)線(xiàn)、GPS、DHCP、撥號(hào)、APN列表之類(lèi)的設(shè)置。這個(gè)目錄中,如果你改了重要的CONF文件,則可能系統(tǒng)出問(wèn)題。也可以改一部分不重要的東西(比如說(shuō)APN列表)而不出現(xiàn)問(wèn)題,但貌似APN列表沒(méi)必要改。framework目錄就是系統(tǒng)的UI了,想改界面的人應(yīng)該改這個(gè)目錄中的文件。。大約也就是替換一些什么圖片,換掉界面框架什么的,改改字體顏色什么的?以達(dá)到改換界面的目的。media目錄是系統(tǒng)內(nèi)置的媒體文件,如開(kāi)機(jī)音樂(lè),內(nèi)置的通話(huà)鈴聲、信息鈴聲、鬧鐘鈴聲,可以改,但格式是OGG的,可以自己去搜索如何換格式。usr目錄是系統(tǒng)的部分使用配置,包括鍵盤(pán)映射表什么的,沒(méi)事不要改。。。xbin目錄,好吧,這個(gè)目錄可以放一些工具,而且貌似官方本身在里面放了一個(gè)tcpdump,是截獲網(wǎng)絡(luò)數(shù)據(jù)包的。沒(méi)試過(guò)刪除它,推薦有冒險(xiǎn)精神的可以刪除之,再將結(jié)果告訴我們。system:系統(tǒng)分區(qū).我們刷機(jī)器一般就是刷的這個(gè)分區(qū).userdata:數(shù)據(jù)分區(qū).cache:緩存分區(qū)recovery:Recovery分區(qū),相當(dāng)于建立在hboot與android系統(tǒng)間的一個(gè)中間層,如名字一般,主要用于系統(tǒng)調(diào)試和恢復(fù)。.boot:存放內(nèi)核和ramdisk的分區(qū).hboot:這個(gè)是SPL所在的分區(qū),即bootloadersplashi:這個(gè)就是開(kāi)機(jī)第一屏幕了.radio:這個(gè)是無(wú)線(xiàn)所在的分區(qū),即基帶所在分區(qū)。misc:其他分區(qū)3,創(chuàng)建一個(gè)刷機(jī)包,update-script腳本語(yǔ)法說(shuō)明簡(jiǎn)單舉例:創(chuàng)建一個(gè)update.zip文件是很簡(jiǎn)單的事情,你所需要做的就是將文件放置到與Android文件系統(tǒng)中相對(duì)應(yīng)的文件夾中,然后編寫(xiě)一個(gè)用來(lái)復(fù)制這些文件到手機(jī)對(duì)應(yīng)位置的update-script,文件。作為舉例,比如安裝Calculator.apk到system/app文件夾,復(fù)制libsec-ril.so文件到system/lib文件夾:新建一個(gè)空文件夾(本文例:G:\android)新建用來(lái)放置Calculator.apk的文件夾C:\android\system\app以及用來(lái)放置libsec-ril.so的文件夾G:\android\system\lib0創(chuàng)建用來(lái)放置update-script文件的文件夾G:\android\META-INF\com\google\androido創(chuàng)建一個(gè)名為updater-script的文件,其內(nèi)容如下:show_progress0.102.3.copy_dirPACKAGE:systemSYSTEM:4.5.show_progress0.1106.行1和行5:顯示進(jìn)度條行3:復(fù)制刷機(jī)包中的system文件夾到Android的/system注意:你應(yīng)該在文件的最末尾多添加一個(gè)空行(也就是行6)將C:\android壓縮中的所有內(nèi)容壓縮為zip包(千萬(wàn)記?。菏菈嚎sandroid這個(gè)文件夾中的內(nèi)容,不是android文件夾本身)為android.zip簽名基礎(chǔ)語(yǔ)法篇copy_dir語(yǔ)法:copy_dir<src-dir><dst-dir>[<timestamp>]<src-dir>表示原文件夾,<dst-dir>表示目的文件夾,[<timestamp>]表示時(shí)間戳作用:將<src-dir>文件夾中的內(nèi)容復(fù)制到<dst-dir>文件夾中。<dst-dir>文件夾中的原始內(nèi)容將會(huì)保存不變,除非<src-dir>文件夾中有相同的內(nèi)容,這樣<dst-dir>中的內(nèi)容將被覆蓋舉例:copy_dirPACKAGE:systemSYSTEM:(將升級(jí)包中的system文件夾復(fù)制到手機(jī)中)format語(yǔ)法:format<root><root>表示要格式化的分區(qū)作用:格式化一個(gè)分區(qū)舉例:formatSYSTEM:(將手機(jī)/system分區(qū)完全格式化)注意:格式化之后的數(shù)據(jù)是不可以恢復(fù)的delete語(yǔ)法:delete<file1>[...<fileN>]<file1>[...<fileN>]表示要格式化的文件,可以是多個(gè)文件用空格隔開(kāi)作用:刪除文件1,2到n舉例:deleteSYSTEM:app/Calculator.apk(刪除手機(jī)systen文件夾中app中的Calculator.apk文件)delete_recursive語(yǔ)法:delete_recursive<file-or-dir1>[...<file-or-dirN>]<file-or-dir1>[...<file-or-dirN>]表示要?jiǎng)h除的文件或文件夾,可以使多個(gè),中間用空格隔開(kāi)作用:刪除文件或者目錄,刪除目錄時(shí)會(huì)將目錄中的所有內(nèi)容全部刪除舉例:delete_recursiveDATA:dalvik-cache(刪除/data/dalvik-cache文件夾下的所有內(nèi)容)run_program語(yǔ)法:run_program<program-file>[<args>...]<program-file>表示要運(yùn)行的程序,[<args>...]表示運(yùn)行程序所加的參數(shù)作用:運(yùn)行終端程序舉例:run_programPACKAGE:install_busybox.sh(執(zhí)行升級(jí)包中的install_busybox.sh腳本)set_perm語(yǔ)法:set_perm<uid><gid><mode><path>[...<pathN>]<uid>表示用戶(hù)名稱(chēng),<gid>表示用戶(hù)組名稱(chēng),<mode>,表示權(quán)限模式,<path>[...<pathN>]表示文件路徑,可以使多個(gè),用空格隔開(kāi)作用:設(shè)置單個(gè)文件或目錄的所有者和權(quán)限,像linux中的chmod、chown或chgrp命令一樣,只是集中在了一個(gè)命令當(dāng)中舉例:set_perm020000550SYSTEM:etc/init.goldfish.sh(設(shè)置手機(jī)system中的etc/init.goldfish.sh的用戶(hù)為root,用戶(hù)組為shell,所有者以及所屬用戶(hù)組成員可以進(jìn)行讀取和執(zhí)行操作,其他用戶(hù)無(wú)操作權(quán)限)set_perm_recursive語(yǔ)法:set_perm_recursive<uid><gid><dir-mode><file-mode><path>[...<pathN>]<uid>表示用戶(hù),<gid>表示用戶(hù)組,<dir-mode>表示文件夾的權(quán)限,<file-mode>表示文件的權(quán)限,<path>[...<pathN>]表示文件夾的路徑,可以多個(gè),用空格分開(kāi)作用:設(shè)置文件夾及文件夾中的文件的所有者和用戶(hù)組舉例:set_perm_recursive0007550644SYSTEM:app(設(shè)置手機(jī)system/app文件夾及其中文件的用戶(hù)為root,用戶(hù)組為root,app文件夾權(quán)限為所有者可以進(jìn)行讀、寫(xiě)、執(zhí)行操作,其他用戶(hù)可以進(jìn)行讀取和執(zhí)行操作,其中的文件的權(quán)限為所有者可以進(jìn)行讀寫(xiě)操作,其他用戶(hù)可以進(jìn)行讀取操作)rwx對(duì)應(yīng)421R讀權(quán)限w寫(xiě)權(quán)限x執(zhí)行權(quán)限5代表R+X,6代表R+W,7代表R+W+X。一般系統(tǒng)文件常見(jiàn)的權(quán)限是644。show_progress語(yǔ)法:show_progress<fraction><duration><表示一個(gè)小部分><表示一個(gè)小部分的持續(xù)時(shí)間〉作用:為下面進(jìn)行的程序操作顯示進(jìn)度條,進(jìn)度條會(huì)根據(jù)<duration>進(jìn)行前進(jìn),當(dāng)操作時(shí)間是確定的時(shí)候會(huì)更快舉例:show_progress0.10(顯示進(jìn)度條當(dāng)操作完成后前進(jìn)10%)symlink語(yǔ)法:symlink<link-target><link-path><link-target>表示鏈接到的目標(biāo),<link-path>表示快捷方式的路徑作用:相當(dāng)于linux中的ln命令,將<link-target>在<link-path>處創(chuàng)建一個(gè)軟鏈接,<link-target>的格式應(yīng)為絕對(duì)路徑(或許相對(duì)路徑也可以),<link-path>為“根目錄:路徑”的形式舉例:symlink/system/bin/suSYSTEM:xbin/su(在手機(jī)中system中的xbin中建立一個(gè)/system/bin/su的快捷方式)assert語(yǔ)法:assert<boolexpr>作用:此命令用來(lái)判斷表達(dá)式boolexpr的正確與否,當(dāng)表達(dá)式錯(cuò)誤時(shí)程序終止執(zhí)行※此作用有待驗(yàn)證package_extract_file/dir語(yǔ)法:package_extract_file(file/dir,file/dir)作用:提取包中文件/路徑舉例:package_extract_dir("system”,"/system");package_extract_file("system/bin/modelid_cfg.sh","/tmp/modelid_cfg.sh");write_radio_image語(yǔ)法:write_radio_image<src-image>作用:將基帶部分的鏡像寫(xiě)入手機(jī),<src-image>表示鏡像文件舉例:write_radio_imagePACKAGE:radio.imgwrite_hboot_image語(yǔ)法:write_hboot_image<src-image>作用:將系統(tǒng)bootloader鏡像寫(xiě)入手機(jī),<src-image>表示鏡像位置,此命令在直到在所有的程序安裝結(jié)束之后才會(huì)起作用舉例:write_hboot_imagePACKAGE:hboot.imgwrite_raw_image語(yǔ)法:write_raw_image<src-image><dest-root>作用:將boot.img寫(xiě)入手機(jī),里面包含了內(nèi)核和ram盤(pán)舉例:write_raw_imagePACKAGE:boot.imgBOOT:③.根目錄以及分區(qū)的定義(在A(yíng)ndroid源代碼的rootx文件中定義)根目錄:Linux塊設(shè)備/掛載點(diǎn)/件系統(tǒng)大小描述BOOT:/dev/mtdblock[?]/(RAM)Raw內(nèi)核、內(nèi)存盤(pán)和引導(dǎo)配置。DATA:/dev/mtdblock5/datayaff91904kb用戶(hù)、系統(tǒng)配置,軟件配置以及軟件
/s2(沒(méi)有a2sd的話(huà))CACHE/dev/mtdblock4/cache/yaffs230720kbOTA緩存,recovery/更新配置及臨時(shí)文件夾MISC:/dev/mtdblock[?]N/ARaw,[?]kb(等待添加)PACKAGE:(相對(duì)于刷機(jī)包)N/A刷機(jī)包的偽文件系統(tǒng)。RECOVERY:/dev/mtdblock[?]/(RAM)Raw,[?]kbrecovery和更新環(huán)境的內(nèi)核和內(nèi)存盤(pán)。類(lèi)似于BOOT:。SDCARD:/dev/mmcblk0(p1)/sdcard/fat332MB-32GTF卡。通常刷機(jī)包就放在這里。SYSTE/systyaffM:/dev/mtdblock3emJs292160kb系統(tǒng)分區(qū),靜態(tài)且是只讀的。TMP:/tmp/(RAM)標(biāo)準(zhǔn)的Linux臨時(shí)文件夾在關(guān)機(jī)/重啟時(shí)清空。④.具體實(shí)例:1.assert(getprop("duct.device")=="swift"||getprop("duct")=="swift"||getprop("duct.board")=="swift");2.package_extract_file("system/bin/backuptool.sh","/tmp/backuptool.sh");3.set_perm(0,0,0777,"/tmp/backuptool.sh");4.run_program("/tmp/backuptool.sh","backup");5.show_progress(0.500000,0);6.format("yaffs2","MTD","system");7.mount("yaffs2","MTD","system","/system");package_extract_dir("recovery","/system");9.package_extract_dir("system","/system");10.symlink("busybox","/system/xbin/[","/system/xbin/[[",11."/system/xbin/arp","/system/xbin/ash","/system/xbin/awk",12."/system/xbin/basename","/system/xbin/bbconfig","/system/xbin/brctl",13."/system/xbin/bunzip2","/system/xbin/bzcat","/system/xbin/bzip2",14."/system/xbin/cal","/system/xbin/cat","/system/xbin/catv",15."/system/xbin/chgrp","/system/xbin/chmod","/system/xbin/chown",16."/system/xbin/chroot","/system/xbin/cksum","/system/xbin/clear",17."/system/xbin/cmp","/system/xbin/cp","/system/xbin/cpio",18."/system/xbin/cut","/system/xbin/date","/system/xbin/dc",19."/system/xbin/dd","/system/xbin/depmod","/system/xbin/devmem","/system/xbin/df","/system/xbin/diff","/system/xbin/dirname",21."/system/xbin/dmesg","/system/xbin/dnsd","/system/xbin/dos2unix",22."/system/xbin/du","/system/xbin/echo","/system/xbin/ed",23."/system/xbin/egrep","/system/xbin/env","/system/xbin/expr",24."/system/xbin/false","/system/xbin/fdisk","/system/xbin/fgrep",25."/system/xbin/find","/system/xbin/fold","/system/xbin/free",26."/system/xbin/freeramdisk","/system/xbin/fuser","/system/xbin/getopt",27."/system/xbin/grep","/system/xbin/gunzip","/system/xbin/gzip",28."/system/xbin/head","/system/xbin/hexdump","/system/xbin/id",29."/system/xbin/ifconfig","/system/xbin/insmod","/system/xbin/install",30."/system/xbin/ip","/system/xbin/kill","/system/xbin/killall",31."/system/xbin/killall5","/system/xbin/length","/system/xbin/less",33."/system/xbin/lsmod","/system/xbin/lspci","/system/xbin/lsusb",34."/system/xbin/lzop","/system/xbin/lzopcat","/system/xbin/md5sum",35."/system/xbin/mkdir","/system/xbin/mke2fs","/system/xbin/mkfifo",36."/system/xbin/mkfs.ext2","/system/xbin/mknod","/system/xbin/mkswap",37."/system/xbin/mktemp","/system/xbin/modprobe","/system/xbin/more",38."/system/xbin/mount","/system/xbin/mountpoint","/system/xbin/mv",39."/system/xbin/netstat","/system/xbin/nice","/system/xbin/nohup",40."/system/xbin/nslookup","/system/xbin/ntpd","/system/xbin/od",41."/system/xbin/patch","/system/xbin/pgrep","/system/xbin/pidof",42."/system/xbin/ping","/system/xbin/pkill","/system/xbin/printenv",43."/system/xbin/printf","/system/xbin/ps","/system/xbin/pwd",45."/system/xbin/renice","/system/xbin/reset","/system/xbin/rm",46."/system/xbin/rmdir","/system/xbin/rmmod","/system/xbin/route",47."/system/xbin/run-parts","/system/xbin/sed","/system/xbin/seq",48."/system/xbin/setsid","/system/xbin/sh","/system/xbin/sha1sum",49."/system/xbin/sha256sum","/system/xbin/sha512sum",50."/system/xbin/sleep","/system/xbin/sort","/system/xbin/split",51."/system/xbin/stat","/system/xbin/strings","/system/xbin/stty",52."/system/xbin/swapoff","/system/xbin/swapon","/system/xbin/sync",53."/system/xbin/sysctl","/system/xbin/tac","/system/xbin/tail",54."/system/xbin/tar","/system/xbin/tee","/system/xbin/telnet",55."/system/xbin/top","/system/xbin/touch","/system/xbin/tr",57."/system/xbin/traceroute","/system/xbin/true","/system/xbin/tty",58."/system/xbin/tune2fs","/system/xbin/umount","/system/xbin/uname",59."/system/xbin/uniq","/system/xbin/unix2dos","/system/xbin/unlzop",60."/system/xbin/unzip","/system/xbin/uptime","/system/xbin/usleep",61."/system/xbin/uudecode","/system/xbin/uuencode","/system/xbin/vi",62."/system/xbin/watch","/system/xbin/wc","/system/xbin/wget",63."/system/xbin/which","/system/xbin/whoami","/system/xbin/xargs",64."/system/xbin/yes",65."/system/xbin/zcat");66.symlink("iwmulticall","/system/xbin/iwconfig","/system/xbin/iwgetid",67./system/xbin/iwlist","/system/xbin/iwpriv","/system/xbin/iwspy");69.symlink("toolbox","/system/bin/cat","/system/bin/cmp",70."/system/bin/date","/system/bin/dd","/system/bin/dmesg",71."/system/bin/getevent","/system/bin/getprop","/system/bin/hd",72."/system/bin/id","/system/bin/ifconfig","/system/bin/iftop",73."/system/bin/insmod","/system/bin/ioctl","/system/bin/ionice",74."/system/bin/kill","/system/bin/log","/system/bin/lsmod",75."/system/bin/mkdir","/system/bin/nandread","/system/bin/netstat",76."/system/bin/newfs_msdos","/system/bin/notify","/system/bin/printenv",77."/system/bin/ps","/system/bin/reboot","/system/bin/renice",78."/system/bin/rmdir","/system/bin/rmmod","/system/bin/route",79."/system/bin/schedtop","/system/bin/sendevent","/system/bin/setconsole","/system/bin/setprop","/system/bin/sleep",81."/system/bin/smd","/system/bin/start","/system/bin/stop",82."/system/bin/sync","/system/bin/top","/system/bin/uptime",83."/system/bin/vmstat","/system/bin/watchprops",84."/system/bin/wipe");85.set_perm_recursive(0,0,0755,0644,"/system");86.set_perm_recursive(0,2000,0755,0755,"/system/bin");87.set_perm(0,3003,02750,"/system/bin/netcfg");88.set_perm(0,3004,02755,"/system/bin/ping");89.set_perm(0,2000,06750,"/system/bin/run-as");90.set_perm_recursive(1002,1002,0755,0440,"/system/etc/bluetooth");91.set_perm(0,0,0755,"/system/etc/bluetooth");set_perm(1000,1000,0640,"/system/etc/bluetooth/auto_pairing.conf");93.set_perm(3002,3002,0444,"/system/etc/bluetooth/blacklist.conf");94.set_perm(1002,1002,0440,"/system/etc/dbus.conf");95.set_perm(1014,2000,0550,"/system/etc/dhcpcd/dhcpcd-run-hooks");96.set_perm_recursive(0,2000,0755,0750,"/system/etc/init.d");97.set_perm(0,0,0755,"/system/etc/init.d");98.set_perm(0,2000,0550,"/system/etc/init.goldfish.sh");99.set_perm(0,0,0544,"/system/etc/install-recovery.sh");100.set_perm_recursive(0,0,0755,0555,"/system/etc/ppp");101.set_perm_recursive(0,2000,0755,0755,"/system/xbin");102.set_perm(0,0,06755,"/system/xbin/hcitool");103.set_perm(0,0,06755,"/system/xbin/librank");set_perm(0,0,06755,"/system/xbin/procmem");105.set_perm(0,0,06755,"/system/xbin/procrank");106.set_perm(0,0,06755,"/system/xbin/su");107.set_perm(0,0,06755,"/system/xbin/tcpdump");108.show_progress(0.200000,0);109.show_progress(0.200000,10);110.package_extract_file("system/bin/backuptool.sh","/tmp/backuptool.sh");111.set_perm(0,0,0777,"/tmp/backuptool.sh");112.run_program("/tmp/backuptool.sh","restore");113.package_extract_file("system/bin/modelid_cfg.sh","/tmp/modelid_cfg.sh");114.set_perm(0,0,0777,"/tmp/modelid_cfg.sh");115.run_program("/tmp/modelid_cfg.sh");package_extract_file("system/bin/verify_cache_partition_size.sh","/tmp/verify_cache_partition_size.sh");117.set_perm(0,0,0777,"/tmp/verify_cache_partition_size.sh");118.run_program("/tmp/verify_cache_partition_size.sh");119.show_progress(0.200000,10);120.assert(package_extract_file("boot.img","/tmp/boot.img"),121.write_raw_image("/tmp/boot.img","boot"),122.delete("/tmp/boot.img"));123.show_progress(0.100000,0);124.unmount("/system");125.BL手機(jī)愛(ài)好者心中最大的痛Bootloader從字面上來(lái)看就是啟動(dòng)加載的意思。用過(guò)電腦的都知道,windows開(kāi)機(jī)時(shí)會(huì)首先加載bios,然后是系統(tǒng)內(nèi)核,最后啟動(dòng)完畢。那么bootloader就相當(dāng)于手機(jī)的bios,它在手機(jī)啟動(dòng)的時(shí)候根據(jù)基帶初始化硬件,然后引導(dǎo)系統(tǒng)內(nèi)核,直到系統(tǒng)啟動(dòng)。因此可以看出,bootloader很重要,如果bootloader不能正常加載,手機(jī)就是磚頭一個(gè),無(wú)法正常啟動(dòng)和使用。這也就是為什么bootloader被鎖的手機(jī)必須要破解才能刷第三方rom。如果不破解bootloader,就無(wú)法初始化手機(jī)硬件,手機(jī)也就無(wú)法使用。先思考一下大家為什么想要解鎖bootloader?肯定都是因?yàn)橄胍⒏鞣N各樣的第三方rom。為什么大家想要第三方的rom呢?一是因?yàn)楣俜降膔om更新慢,并且官方的rom里面有各種各樣運(yùn)營(yíng)商集成的軟件。而第三方rom是根據(jù)google官方的rom源碼重新打包編譯的,也就是所謂的原生系統(tǒng),很干凈。這樣很多用戶(hù)都會(huì)選擇第三方rom,這就損害了運(yùn)營(yíng)商的利益,這是摩托羅拉不愿意看到的二是因?yàn)槟ν辛_拉官方的rom集成了摩托羅拉自己的BLUR服務(wù),主要是一些社交服務(wù),國(guó)外的facebook、twitter等,國(guó)內(nèi)的人人,新浪等。相信很多人都是用不到這些的,這些人也會(huì)選擇第三方rom,這也是摩托羅拉不愿意看到的。摩托羅拉不愿意看到上面的情況發(fā)生,但偏偏安卓系統(tǒng)又是開(kāi)源的,必須要公布源代碼,無(wú)奈的摩托羅拉只好另辟蹊徑,于是就有了鎖bootloader。內(nèi)核開(kāi)源,但bootloader不需要開(kāi)源,加密bootloader是合理的。于是摩托羅拉鎖了bootloader并且給內(nèi)核做了文件簽名,只有簽名通過(guò)的內(nèi)核才能被bootloader識(shí)別。這樣一個(gè)bootloader鎖誕生了。bootloader鎖直接導(dǎo)致摩托羅拉的手機(jī)無(wú)法使用各種第三方的rom,于是很多國(guó)外的高手開(kāi)始破解bootloader。前一段有一個(gè)傳聞?wù)fbootloader被破解了,但是被摩托羅拉官方發(fā)了律師函,于是便不了了之。這也正是摩托羅拉bootloader一直無(wú)法破解的原因,一是很難破解,二是高手們怕惹禍燒身。現(xiàn)在有消息說(shuō),官方會(huì)今年晚些時(shí)候會(huì)為手機(jī)解鎖bootloader,算是一個(gè)值得期待的好消息,各位摩托羅拉用戶(hù)可以耐心等待一下,不用著急。最后,送給摩托羅拉官方一句話(huà):解鎖Bootloader-摩托羅拉用戶(hù)的心聲。在這個(gè)用戶(hù)至上的社會(huì),千萬(wàn)不要因?yàn)橐稽c(diǎn)小利益而忽略了用戶(hù),這注定會(huì)失敗,無(wú)論你是一個(gè)多么老多么大的品牌廠(chǎng)商。在刷機(jī)過(guò)程中未停電且未斷開(kāi)數(shù)據(jù)線(xiàn)的情況下,開(kāi)不了機(jī)普遍有兩種可能。①boot.img是加過(guò)密的。就是鎖了bl。各個(gè)手機(jī)制造商在做ROM的時(shí)候,以他們獨(dú)自的加密算法,對(duì)整個(gè)文件進(jìn)行CRC驗(yàn)算,然后將驗(yàn)算值添加到boot.img的最末尾。刷機(jī)的時(shí)候,手機(jī)的硬件BIOS就像一名盡職的士兵,對(duì)此進(jìn)行驗(yàn)算,對(duì)不上口令的,那么對(duì)不起,請(qǐng)君離開(kāi),不離開(kāi)我報(bào)警了~~呃,報(bào)不了警,那反正我不讓你進(jìn)門(mén)~~boot.img還有一個(gè)重要的參數(shù),基址base,用于告訴手機(jī)從哪個(gè)地址開(kāi)始,是準(zhǔn)備給內(nèi)存盤(pán)的入口,哪個(gè)地址是給kernel的入口。如果你對(duì)不上號(hào),對(duì)不起,不能非法入室的。摩托常見(jiàn)刷機(jī)方法:例如:Milestone2系統(tǒng)備份+恢復(fù)+ZIP格式的刷機(jī)包+鏡像文件刷機(jī)包的方法,非常適合經(jīng)常刷機(jī),DIY刷機(jī)包的童鞋們使用。先備份好系統(tǒng)后,不管你把ROM弄得怎么個(gè)亂,怎么個(gè)精減。出問(wèn)題了直接恢復(fù)備份好的系統(tǒng)就是你完美的包包了。省去你重新刷機(jī),重新精減,重裝軟件的麻煩事情。①備份Milestone2系統(tǒng)的方法:Milestone?必須要ROOT過(guò),獲得權(quán)限。、、一、■按裝恢復(fù)模式工具Droid2Boot3.0中文版Droid2bootstrap3.0.apk(2.34MB)運(yùn)行復(fù)模式工具選擇引導(dǎo)恢復(fù)模式出現(xiàn)權(quán)限選擇允許確定然后選擇重啟到恢復(fù)模式選擇——backupandrestore(備份和恢復(fù))選擇backup(備份)接下來(lái)軟件自動(dòng)備份開(kāi)始,時(shí)間需要幾分鐘左右。e.備份結(jié)束后,選擇rebootsystemnow手機(jī)重啟f.完整的Milestone?系統(tǒng)備份保存在:內(nèi)存卡——clockworkmod文件夾——backup文件夾-…備份時(shí)間文件夾備份好的系統(tǒng)備份容量大小500多M..android_s&cure2011/7/195:13海映竦:吏件3KEcache2011/7/195:13光起:暝戒件11KBdata2011/7/195:13光逐映做牛301,&23KBnandroid.md52011/7/195:13MD5刻牛1KBsyst&m2011/7/195:09海:映燥文件233.026KB從另一個(gè)角度考慮,這也是提取system.img的一種辦法。Milestone2系統(tǒng)備份還原的方法:運(yùn)行復(fù)模式工具選擇引導(dǎo)恢復(fù)模式出現(xiàn)權(quán)限選擇允許確定然后選擇重啟到恢復(fù)模式選擇——backupandrestore(備份和恢復(fù))選擇Recovery(恢復(fù)備份的系統(tǒng))軟件將會(huì)從:內(nèi)存卡clockworkmod文件夾backup文件夾備份時(shí)間文件夾備份好的系統(tǒng),來(lái)恢復(fù)你曾經(jīng)備份過(guò)的系統(tǒng)?;謴?fù)備份完成。重啟手機(jī)。這樣你完整的Milestone2系統(tǒng)又回來(lái)了。鏡像文件的刷機(jī)包,刷機(jī)方法:只要把下載好的鏡像文件刷機(jī)包放入到內(nèi)存卡clockworkmod文件夾backup文件夾鏡像刷機(jī)文件夾(文件名只能用英文,不能有空格哦)照著上面的恢復(fù)備份方法就可以刷鏡像文件的刷機(jī)包了。ZIP格式刷機(jī)包,刷機(jī)方法:a.把下載好的ZIP格式的刷機(jī)包存放到放到內(nèi)存卡根目錄里選擇重啟到恢復(fù)模式,手機(jī)重啟c.選擇installzipfromsdcard在選擇choosezipfromsdcardd.找到你存放在內(nèi)存卡里的ZIP升級(jí)包選擇YES——然后系統(tǒng)開(kāi)始刷寫(xiě)入手機(jī)e.刷寫(xiě)完成后,按電源鍵返回選擇rebootsystemnow,手機(jī)重啟,刷機(jī)完成刪除恢復(fù)模式的方法:a:先刪除恢復(fù)模式工具b:用RootExplorer進(jìn)入/system/bin/c:點(diǎn)右上角,切換為讀寫(xiě)狀d:刪除文件hijack,刪除文件logwrapper,把文件logwrapper.bin改名為logwrappere:點(diǎn)擊右上角按鈕,切換回只讀狀態(tài)f:重啟手機(jī)就OK啦三、制作工具1.jdk1.7.0:(115網(wǎng)盤(pán))安裝,配置jdk1.7.0:執(zhí)行jdk安裝程序,自定義路徑,我的安裝路徑為:C:\ProgramFiles\Java\jdk1.7.0根據(jù)個(gè)人的具體路徑)配置jdk:配置環(huán)境變量:Win7下為:計(jì)算機(jī)->屬性->高級(jí)系統(tǒng)設(shè)置->環(huán)境變量->系統(tǒng)變量中添加以下環(huán)境變量:票貌屬性S3U,遷的用戶(hù)變里(U)JAVA_HOME=C:\ProgramFiles\Java\jdk1.7.0(根據(jù)自己的路徑修改)CLASSPATH=.;C:\ProgramFiles\Java\jdk1.7.0\lib\tools.jar;C:\ProgramFiles\Java\jdk1.7.0\lib\dt.jarpath=C:\ProgramFiles\Java\jdk1.7.0\bin;寫(xiě)一個(gè)簡(jiǎn)單的java程序來(lái)測(cè)試jdk是否已安裝成功:Win7下為:計(jì)算機(jī)->屬性->高級(jí)系統(tǒng)設(shè)置->環(huán)境變量->系統(tǒng)變量中添加以下環(huán)境變量:票貌屬性S3U,遷的用戶(hù)變里(U)publicclasshello{publicstaticvoidmain(Stringargs[]){System.out.println("Hello");}}將程序保存為文件名為hello.java的文件。打開(kāi)命令提示符窗口,進(jìn)入到hello.java所在目錄,鍵入下面的命令javachello.java
javahello此時(shí)若打出來(lái)hello則安裝成功,若沒(méi)有打印出這句話(huà),仔細(xì)檢查以上配置是否正確。注意系統(tǒng)文件夾選項(xiàng)中應(yīng)確定''隱藏已知文件類(lèi)型的擴(kuò)展名〃不勾選。2.apktool工具箱(115網(wǎng)盤(pán))可以解壓放到你的cmd默認(rèn)目錄下,這樣就不用每次都那么麻煩進(jìn)入工具M(jìn)icrosoftUindows
阿權(quán)所有<c>2009C:MJsers\user>[版本6土76駒]MicrosoftCorporationo保留所有權(quán)利naBS.EF7XN.COMMicrosoftUindows
阿權(quán)所有<c>2009C:MJsers\user>比如我的默認(rèn)目錄為C:\Users\users,我就把解壓出來(lái)的所有文件包括:aapt.exe,apktool.bat,apktool.jar放到這個(gè)文件夾下,具體的應(yīng)用自己解決。簡(jiǎn)單應(yīng)用舉例:主要是在美化時(shí)用到。①apktoold"C:\framework-res.apk""C:\framework”命令行解釋?zhuān)篴pktoold要反編譯的文件輸出文件夾我們可以看到一個(gè)叫做res的目錄,打開(kāi)后看到一堆目錄,所有的程序界面資源就放在這個(gè)res目錄里面,我們這里簡(jiǎn)單的介紹一下這些目錄對(duì)應(yīng)的作用。drawable,這個(gè)目錄是放程序需要用到的圖標(biāo)以及各種圖片的layout-land,這個(gè)目錄是放豎版界面的xml描述文件的layout-port,這個(gè)目錄是放橫版界面的xml描述文件的menu,這個(gè)顧名思義,就是放菜單布局的xml描述文件的values這個(gè)目錄是漢化重頭戲,絕大部分需要漢化的字符串資源定義就在這里面xml,其他不再詳細(xì)分類(lèi)的布局xml描述文件一個(gè)寫(xiě)的很規(guī)范的Android程序,會(huì)把整個(gè)程序里面所用到的字符串資源都分離出來(lái),放在values的strings.xml文件里面,而放在values目錄的,基本上就是英文字符串資源。而一般的程序在處理字符串資源上都是交給Android系統(tǒng)去判斷是什么環(huán)境,從而自己選擇語(yǔ)言的②apktoolb〃C:\framework〃命令行解釋?zhuān)篴pktoolb要打包內(nèi)容所在文件夾UltraEdit:用于編寫(xiě)代碼的好軟件.(在115網(wǎng)盤(pán))核心軟件:廚房(115網(wǎng)盤(pán))①為廚房安裝Cygwin的步驟1)1)解壓下載到的壓縮包(比如解壓到C盤(pán),解壓出來(lái)的東西包括:包的文件夾c:\cygwm_packages、安裝程序c:\setup.exe、文檔c:\安裝說(shuō)明■txt),記得路徑中不要帶中文,最好也不要帶空格2)運(yùn)彳亍Setup.exe,然后點(diǎn)擊Next(下一步)。3)選擇〃InstallfromLocalDirectory,"4)接下來(lái),指定根目錄。也就是你想要安裝Cygwin的位置(但不能是本壓縮包解壓出來(lái)的cygwin_packages文件夾)。如果你喜歡,可以是C:\Cygwin,注意要確定文件夾名種沒(méi)有空格。5)然后,要指定的LocalPackageDirectory必須指定為cygwin_packages文件夾所在路徑,例如C:\cygwin_packages假如跳出了一個(gè)警告對(duì)話(huà)框,點(diǎn)擊確定(是)。6)當(dāng)安裝程序顯示出所有的包名時(shí),點(diǎn)擊更改上方的"All<->Default"為〃All<->Install"(需要點(diǎn)擊那個(gè)箭頭)7)然后點(diǎn)擊Next,安裝程序就會(huì)為你安裝好androidKitchen需要Cygwin提供的一切支持8)最后,點(diǎn)擊桌面上的Cygwin快捷方式以便為你創(chuàng)建home文件夾。搞定!本Cygwin安裝包中包含了以下的包,這些都是廚房正常工作所需要的:*Devel/gccInterpreters/perlUtils/cpioUtils/util-linux*Utils/ncurses*Archive/zip*Archive/unzip*Web/wget②如何開(kāi)始使用ROM組專(zhuān)用定制工具:1)完成上面的步驟后,將下載到ROM組專(zhuān)用定制工具解壓到G:\Cygwin\home\Administrator文件夾中(這里假設(shè)你的Cygwin是安裝在C盤(pán)根目錄下,而且你電腦的用戶(hù)名為Administrator。具體請(qǐng)根據(jù)各自的設(shè)置進(jìn)行變通)。2)點(diǎn)擊桌面上的Cygwin快捷方式3)執(zhí)行命令:cdandroid_Kitchen4)執(zhí)行命令:./menuOK,剩下的事情就靠你自己自由發(fā)揮了。
HTCAndroidkitchen-bydsixda<>巳日S.GFAN.COM輸入選擇:■:"熹的物1HTCAndroidkitchen-bydsixda<>巳日S.GFAN.COM輸入選擇:■:"熹的物1-分解ROM旬到工作目錄中-{忝加root應(yīng)限-添加BusyBox-釜止開(kāi)機(jī)';-WtoWiFii-燈薜一一-更改ROM-修剪0M的名字……-檢查update-script甲是否存登.惜誤-顯示當(dāng)前工作目錄的信息cdandroid_Kitchen/./menu這樣做的好處是,一旦你點(diǎn)擊了桌面上的Cygwin快捷方式,就會(huì)直接進(jìn)入廚房界面了。ROM提取工具HTC:本人沒(méi)有用過(guò)HTC的手機(jī),這只是網(wǎng)上找的一篇文章以作參考,具體的還請(qǐng)自己嘗試吧。第一步:下載官方RUU刷機(jī)程序(EXE文件)第二步:運(yùn)彳亍您已經(jīng)下載的RUU刷機(jī)程序RUU_Legend_hTC_Asia_TW_1.31.709.2_Radio_4_7.05.35.26L_release_122023_signed)第三步:打開(kāi)用戶(hù)臨時(shí)文件目錄:以xp為例:C:\DocumentsandSettings\Administrator\LocalSettings\Temp(系統(tǒng)默認(rèn),Administrator為您登錄xp的用戶(hù)名,如果您修改了用戶(hù)變量,則到您修改的目錄,例如我的是:D:\Temp\Temp第三步:查找類(lèi)似{2EA82A29-B9B5-4A60-BB4F-B52F1BCD2E68}(每次打開(kāi)都不同,建議查看文件夾創(chuàng)建時(shí)間就知道)的文件夾并打開(kāi)第四步:進(jìn)入剛剛打開(kāi)的刷機(jī)臨時(shí)目錄,打開(kāi)該目錄下的唯一文件夾。(例如我的是:{50F2F878-636A-496F-A7CB-544C067E0C4B}第五步:復(fù)制該文件夾下的Rom.zip壓縮文件,該文件即為官方原版ROM,該文件大?。?35173407字節(jié)(以RUU_Legend_hTC_Asia_TW_1.31.709.2_Radio_4_7.05.35.26L_release_122023_signed版本為例);該ROM包含以下:文件列表文件大小文件說(shuō)明其他說(shuō)明android-info.txt85字ROM版本及刷寫(xiě)配置信息
boot.img2342912字節(jié)手機(jī)啟動(dòng)的必要系統(tǒng)(Linux內(nèi)核)Linux內(nèi)核hboot_7227_0.43.0001_100218.nb0524288字節(jié)bootloader需要金卡就是因?yàn)檫@個(gè)東西吧?刷錯(cuò)一定變磚radio.img24379392字節(jié)無(wú)線(xiàn)通訊模塊(包括電話(huà)、WIFI、藍(lán)牙)最新的不一定是最好的。要和hboot匹配?rcdata.img41字腳本資源刷機(jī)時(shí)使用的腳本recovery.img3532800字節(jié)刷寫(xiě)Recovery模式(包含硬件底層驅(qū)動(dòng))恢復(fù)出廠(chǎng)設(shè)置、OTA升級(jí)補(bǔ)丁升級(jí)、Firmware升級(jí)splash1.nb0393216字節(jié)開(kāi)機(jī)第一屏替換此文件可以修改開(kāi)機(jī)第一屏g224364096字節(jié)系統(tǒng)核心(應(yīng)該是主要修改此文件)我們主要定制此部分的userdata.img2112字節(jié)用戶(hù)的設(shè)置看起來(lái)應(yīng)該是初始化用戶(hù)數(shù)據(jù)至此,已獲得官方RUU原版ROM根據(jù)我的理解,boot.imgradio.imgrecovery.imgsplash1.nb0system.img應(yīng)該可以單刷的,我們定制rom主要修改system.img。首先運(yùn)行要提取的官方RUU程序,本教程中就是RUU_Buzz_Froyo_HTC_WWE_2.22.405.1_Radio_4H_0_release_160191_signed.exe。這個(gè)時(shí)候手機(jī)無(wú)需連接上電腦(連接與否和提取沒(méi)有關(guān)系),等待exe執(zhí)行到出現(xiàn)第一個(gè)提示界面。運(yùn)行任務(wù)管理器,點(diǎn)''進(jìn)程〃標(biāo)簽,找到adb.exe,在其上右鍵,選擇'打開(kāi)所在目錄〃。將打開(kāi)的目錄中的rom.zip復(fù)制出來(lái),然后可以關(guān)閉官方RUU程序了。提取完成。摩托:彩解底包工具.rar(610.63KB)①運(yùn)行解SBF包工具M(jìn)otoAndroidDepacker.exe程序②選擇OpenFromFile找到你存放的SBF刷機(jī)包③選擇SplitToFolder,進(jìn)行刷機(jī)包拆解過(guò)程④拆解完成,關(guān)閉軟件,得到如下文件。,,CGSl.smg2DI1/7/1119:3&SMG文件ISKBi_|CG32.smg2011/7/1119:36SMG文件130KB||CG33.smg2011/7/1119:3&SMG文件14,082KB||CG34.&mg2011/7/1119:3&SMG奶13KB;,CG35.smg2011/7/1119:36WG文件B.192KEi:CG39.smg2011/7/1119:37SMG文件334.594KB[_jCG40.smg2011/7/1119:37WG文件4KB(_|CG42.smg2011/7/1119:37SMG文件256KEi,CG45.smg2011/7/1119:37SMG文件3,074KBj1CG47.smg2011/7/1119:37SMG文件8,192KB|iCG53.smg2011/7/1113:37SMG文件2KB|jCG61.smg2011/7/1119:37SMG文件512KB;,CG64.smg2011/7/1119:37浦G文件18Kei:CG65.smg2011/7/1119:37SMG文件ISKBi_jCG6&.&mg2011/7/1113l37SMG文件166,114KB.__firmware.hmg2011/7/1119:36HMG文件8KE□RAMDLD.smg2011/7/1119:36SMG文件般來(lái)說(shuō)需要修改CG35.smg——boot.img,CG39.smgsystem.img,CG45.smg——radio.img,鎖了bl的只需CG39.smg和CG45.img(如果需要切換基帶)如下是一個(gè)典型SBF文件拆開(kāi)之后的構(gòu)成(uk3.4.3)每個(gè)smg本身都有簽名,不簽名不能刷,多半都有自己的版本號(hào)CG31.smg18,432版本4CG31/CDT是描述各文件版本號(hào)的,相當(dāng)于注釋文件CG32.smg133,120版本1CG33.smg14,419,968版本1CG33/CDROM是個(gè)ISO文件,可以用WinRAR之類(lèi)的打開(kāi),包含PC端程序(MotoHelperAgent)CG34.smg18,432版本1/usr/data_resource,CG34應(yīng)該說(shuō)是皮膚鈴聲包,一些軟件的信息和收藏夾的設(shè)置在這里面CG35.smg8,388,608版本2CG35/Boot包含了系統(tǒng)內(nèi)核<-8.3MB的boot-only就是這個(gè)/ezx_userCG39.smg342,624,256版本4CG39/system分區(qū)就是恢復(fù)包中的system.imgCG40.smgcache緩存分區(qū)(國(guó)行多余的部分),顯然里面什么都沒(méi)有CG42.smg262,144TOC\o"1-5"\h\zCG45.smg3,147,776版本0CG45/Baseband基帶固件CG47.smg8,388,608版本2CG47/Recovery就是官方恢復(fù),里面也包含獨(dú)立的內(nèi)核,但不用于啟動(dòng)CG53.smg2,048CG61.smg524,288版本1CG61/devtree包含設(shè)備描述符\o"CurrentDocument"CG64.smg18,432版本1CG65.smg18,432版本1RAMDLD.smg315,392RAMDLD/RamDisk&tmpfs,Android/Linux啟動(dòng)初始化的一部分,不涉及具體設(shè)備每次不可降級(jí)的升級(jí)中CG31和CG39版本都會(huì)升高(2.21/國(guó)行=2,2.51=3,3.4.x=4)而國(guó)行1.11和uk3.4.3-3不同的文件(md5值校驗(yàn))如下而CG39就是個(gè)EXT3的文件系統(tǒng)鏡像,其內(nèi)容和鏡像版的system.img(yaffs2文件系統(tǒng))完全一致,可以直接從CG39倉(cāng)0建system.img此時(shí),你可以把CG39.smg重新命名為system.img(可能有些小問(wèn)題,或者進(jìn)一步提?。┻\(yùn)行yaffs2img瀏覽器20.exe程序⑥選擇打開(kāi)選擇CG39.smg點(diǎn)擊打開(kāi)⑦接下來(lái),你可以選擇全部導(dǎo)出也可以只提取你想要了文件就OK了⑧接下來(lái)把你提取出來(lái)的東西放到廚房工作文件夾下,也可開(kāi)始制作。工具打包下載:/file/cl74ytbo#手機(jī)開(kāi)發(fā).rar四、制作步驟:
1.解壓待修改ROM。將system.img和boot.img解壓出來(lái),如果需要在刷機(jī)時(shí)同時(shí)刷入radio.img,則把radio.img也解壓出來(lái)。將文件(如果是修改其他制作者的ROM,文件則為*.zip,比如buzz_2.2_1.2-Beta2_android.zip)放到以下文件夾中(根據(jù)個(gè)人安裝的位置決定,不再累述):G:\Cygwin\home\<用戶(hù)名〉\android_Kitchen\original_update支持的格式如圖:修改ROM。運(yùn)行廚房。雙擊執(zhí)行桌面上的Cygwin快捷方式(也可以雙擊執(zhí)行C:\Cygwin\Cygwin.bat),輸入命令:01.cdandroid_Kitchen02../menu至此,廚房已成功運(yùn)行。接下來(lái)就開(kāi)始你的制作之旅吧。解壓待修改的ROM。選擇廚房的第1項(xiàng)“1-分解ROM包到工作目錄中〃,然后根據(jù)情況的不同,選擇對(duì)應(yīng)的ROM。解壓得到的文件位于以下文件夾中:C:\Cygwin\home\<用戶(hù)名>\android_Kitchen\WORKING_<日期>_<時(shí)間〉請(qǐng)先確定要定制的ROM已經(jīng)放置到^iginal_Update文件夾中了。其格丈執(zhí)認(rèn)是認(rèn)下幾種中的任意一種:-一個(gè)等待定制R聊的-一個(gè)等待定制R聊的zip文件-一個(gè)包含*-ing的ZIP文欄-一個(gè)包含■官方ROM申SYSTEM+-一木來(lái)白奉為的MP文件-system.img+.ing-用這個(gè)廚房制作的工作文件夾〈例如來(lái)自官方1磁I等的rom.zip>BOOT格式的ZIP文件〈例如.來(lái)自閭件更新中的UFD睦EEPP〉〈例如來(lái)自官方ROM或者Nmndroid備價(jià)所得>〈例如WORKING_old_roin>GM!蜂BBS.GFAN.CQM添加常用功能支持。廚房提供了多種常用的功能,請(qǐng)根據(jù)個(gè)人的喜好進(jìn)行選選擇。此步不做具體解釋?zhuān)瑥N房中每個(gè)功能基本都有相應(yīng)的解釋?zhuān)?qǐng)仔細(xì)查看。去除不需要的apk。如果想要精簡(jiǎn)掉ROM中的某個(gè)不需要的軟件,則刪除對(duì)應(yīng)的apk(如有同名的odex文件,也將其刪除)即可。譬如,我要去掉YouTube,則刪除YouTube.apk,又想要去掉世界時(shí)鐘,則刪除了WorldClock.apk和WorldClock.odex。集成apk。進(jìn)入工作日錄文件夾,再進(jìn)入data\app目錄,看這里是否有你所需的程序,不需要的請(qǐng)刪除。你還可以添加你需要的默認(rèn)安裝軟件。進(jìn)入工作日錄文件夾,再進(jìn)入system\app刪除你不想要的組件、或是添加你需要的組件。由于有一些組件與其它組件是有依賴(lài)的,所以刪除時(shí)請(qǐng)注意。但也不要怕,如果你刪除的組件不對(duì),刷機(jī)時(shí)最多是無(wú)法進(jìn)入系統(tǒng),你用完整ROM重新刷一次既
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年茶葉品牌區(qū)域銷(xiāo)售代理協(xié)議
- 2024秋季農(nóng)產(chǎn)品銷(xiāo)售代理合同
- 2024年度特色車(chē)位買(mǎi)賣(mài)協(xié)議(兒童樂(lè)園配套)3篇
- 《煤礦運(yùn)輸提升系統(tǒng)的安全檢查》培訓(xùn)課件2025
- 2024政府采購(gòu)保密協(xié)議范本(體育場(chǎng)館建設(shè))3篇
- 2024新校區(qū)建設(shè)項(xiàng)目沉降數(shù)據(jù)收集與分析及基礎(chǔ)施工合同3篇
- 2024無(wú)線(xiàn)網(wǎng)絡(luò)覆蓋系統(tǒng)弱電裝修合同
- 2024政工程有限公承建的綠色環(huán)保智慧校園合同3篇
- 2024年精裝室內(nèi)實(shí)木門(mén)采購(gòu)合同版
- 2024手繪墻繪藝術(shù)裝置設(shè)計(jì)與制作合同3篇
- 2025年中國(guó)社會(huì)科學(xué)院外國(guó)文學(xué)研究所專(zhuān)業(yè)技術(shù)人員招聘3人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 微更新視角下老舊社區(qū)公共空間適老化設(shè)計(jì)策略研究
- 《高血壓治療新進(jìn)展》課件
- 小紅書(shū)營(yíng)銷(xiāo)師(初級(jí))認(rèn)證理論知識(shí)考試題及答案
- 2024ESC心房顫動(dòng)管理指南解讀-第一部分
- 人力資源外包投標(biāo)方案
- 常住人口項(xiàng)目變更更正呈批表
- 產(chǎn)后訪(fǎng)視技術(shù)規(guī)范
- 《質(zhì)量管理體系文件》試模打樣通知單 (2)
- 在線(xiàn)學(xué)習(xí)平臺(tái)使用管理辦法
- 第二章藥物設(shè)計(jì)原理和方法
評(píng)論
0/150
提交評(píng)論