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