資源描述:
《安卓rom刷機(jī)原理及rom制作技術(shù)初探》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、安卓ROM刷機(jī)原理及ROM制作技術(shù)初探一、刷機(jī)原理記得第一次刷機(jī),哪個(gè)心理緊張啊。其實(shí)緊張什么呢?就是因?yàn)椴幻靼自戆?,只看到一堆的教程?lái)依葫蘆畫(huà)瓢,生怕錯(cuò)了一步將手機(jī)變磚。說(shuō)起來(lái),刷機(jī)就是兩種方法:一是recovery方法,就是我們平時(shí)將update.zip入到SD卡,然后alt-s的方法,這種方法是調(diào)用了recovery的方法將各種img或文件進(jìn)行復(fù)制等操作。想了解recovery的工作原理嗎?我也沒(méi)找到好的資料,就在這看了看recovery的一些源碼:點(diǎn)擊查看二是fastboot方法,這個(gè)方法其實(shí)是比較酷的方法,說(shuō)白點(diǎn),fastboot就是將已有的各分區(qū)映象文件(im
2、g文件,意義上類(lèi)似我們對(duì)光盤(pán)做的映象文件)直接覆蓋寫(xiě)到指定分區(qū)中,有點(diǎn)暴力,也有點(diǎn)類(lèi)似我們平時(shí)操作系統(tǒng)的Ghost還原。這兩種方法哪種更好,這就不好比高低了,總的來(lái)說(shuō):Recovery方法更簡(jiǎn)單,只需要傻瓜式的將update.zip放到SD卡的要目錄下,然后進(jìn)入Recovery模式alt-s就可以了,但和任何傻瓜式東西一樣,他的靈活度就很小了,而且出錯(cuò)了也都不知道如何解決。一般來(lái)說(shuō)做Rom的高手為了保證Rom的可靠性,在安裝程序中都會(huì)對(duì)一些安裝環(huán)境進(jìn)行一些確定,而各位的手機(jī)環(huán)境又是千變?nèi)f化的,Rom高手也很難考慮周全,另外,Recovery程序本身也有一些環(huán)境驗(yàn)證。fast
3、boot方法更靈活,功能也更強(qiáng)大,fastboot方法不需要依賴(lài)于recovery,甚至linux底層刷壞了recovery模式都進(jìn)不了的情況下也可以通過(guò)fastboot方工刷回來(lái)。fastboot模式其實(shí)是調(diào)用spl進(jìn)行刷機(jī)的,所以如果刷spl壞了,fastboot模式應(yīng)該也進(jìn)不了,也就是磚了。fastboot方法需要各位電腦上有fastboot程序,同時(shí)手機(jī)要進(jìn)入fastboot模式才可以操作。二、Android系統(tǒng)中的各分區(qū)(可能分區(qū)這個(gè)說(shuō)法不太準(zhǔn)確)我了解到的Android系統(tǒng)中的分區(qū)有:hboot(我們刷的SPL就是這玩意),這個(gè)分區(qū)是最基本的引導(dǎo)分區(qū)(類(lèi)似電腦中
4、的BIOS),這個(gè)區(qū)壞了,差不多就變磚了,所以我們刷SPL時(shí)才要如此小心啊。boot,這個(gè)分區(qū)應(yīng)該是linux操作系統(tǒng)的引導(dǎo)分區(qū)。radio,這個(gè)分區(qū)是手機(jī)的一些底層設(shè)備相關(guān)的驅(qū)動(dòng)或功能程序吧,如打電話(huà)和發(fā)短信等,不同的系統(tǒng)版本會(huì)有不同的radio配套,我們平時(shí)刷了高版本的ROM后,如果不刷高版本的Radio就有可能導(dǎo)致打電話(huà)不正常之類(lèi)的。recovery,這個(gè)分區(qū)裝的就是前面提到的recovery程序了,這個(gè)刷不同的recovery版本可以帶來(lái)不同的功能,有興趣的同學(xué)可以基于recovery的源碼自己編譯出一個(gè)自己的recovery出來(lái)。但一般來(lái)說(shuō),刷recovery最主
5、要的就是提Root權(quán)限。system,是一般發(fā)布的ROM的主要功能程序分區(qū)了,我們說(shuō)的ROM功能和自帶程序的定制應(yīng)該就是基于這個(gè)分區(qū)的修改和編譯了。userdata,用戶(hù)數(shù)據(jù),不說(shuō)了。cache,緩存,一般是用來(lái)OTA升級(jí)時(shí)的緩存,我們說(shuō)刷SPL可以增加程序區(qū)的空間大小就是主要將這個(gè)區(qū)的大小縮水了然后加大了程序區(qū)的分區(qū)大小。三、典型ROM的剖析我們平時(shí)升級(jí)的Rom都是打包成適合Recovery方式刷機(jī)的包。能夠被Recovery程序識(shí)別并處理的包應(yīng)該有一個(gè)固定的格式,我理解的一些重要的約束如下:1)必須是標(biāo)準(zhǔn)的zip壓縮包;2)recovery腳本必須存入在META-INF
6、comgoogleandroidupdate-script;3)其它的一些證書(shū)和簽名信息應(yīng)該都放在META-INF下。四、定制自己的ROM最簡(jiǎn)單的定制應(yīng)該就是拿一個(gè)現(xiàn)有的認(rèn)為還不錯(cuò)的基礎(chǔ)ROM,替換一些資源,加一些系統(tǒng)自帶程序,然后打包發(fā)布;再玩高級(jí)一點(diǎn),就應(yīng)該自己去修改一些系統(tǒng)自帶的程序,如漢化一些系統(tǒng)原始程序;還玩高級(jí)一點(diǎn),就應(yīng)該自己到android官方站點(diǎn)去下載android系統(tǒng)的源碼來(lái)編譯,并基于系統(tǒng)級(jí)的定制和移植了,如現(xiàn)在火熱的android2.0源碼編譯系統(tǒng)移植。如果是簡(jiǎn)單一點(diǎn)的自制ROM,主要應(yīng)該會(huì)要解決如下幾個(gè)問(wèn)題:1)選定一個(gè)比較好和穩(wěn)定的內(nèi)核和基礎(chǔ),就是
7、update.zip包中的哪個(gè)boot.img,另外,system目錄中大部分也是直接可用的,就可以作為自定義Rom的基礎(chǔ)。2)修改系統(tǒng)。例如可以這樣來(lái)定制的東西:systemetcapns-conf.xml,這是設(shè)置APN接入點(diǎn)的;systemetchosts,這是設(shè)置Host文件的,現(xiàn)在有很多人用的包綁定不了GMail,就可以在這個(gè)Host文件中增加一條:74.125.93.113android.clients.google.com(當(dāng)然,這個(gè)地址能用多久也不好說(shuō))...還有什么東西要自己去定制就自己去翻看瞧瞧