編輯:玩機技巧
安卓系統的開源造就了這個手機系統的多樣化,很多熱門手機都有著各種各樣的ROM,這些ROM包機油們也可以自行修改,這修改方法並不會太難,下面就一起來了解下刷機包的介紹。
ROM稱為靜態存儲器或只讀存儲器。它的特點是只讀不可寫,但是計算機關閉後數據仍然保存。
安卓手機ROM如何自定義 怎麼打造個性化的ROM
rom的特點是只讀,也就是說你往rom裡面放進去東西後裡面的東西就不會改變了。而我們手機上的操作系統就是裝在rom裡面的。在這個地方就有很多人有這個疑問,為什麼rom只讀不可寫為什麼我們還能刷機?事實上,隨著技術的發展,現在有的rom是可以寫的,例如我們手機上的rom稱為flash,也就是我們平時說的閃存。這裡我覺得rom這個名字有點誤導人,因為rom是Read Only Memory的簡稱,延續這個名字容易讓人誤以為不可寫。
總之現在手機上的rom也是可寫的,然後廠商把rom的一部分劃出來安裝手機的操作系統和自帶的應用,剩下的rom留給用戶自己裝其它的應用或放自己的其它文件使用。這也就可以解釋為什麼我們買來的手機容量一般都沒有手機參數寫的那麼大,例如16G的買來一看就剩下15點多。因為有一部分被系統占用了。而且rom中作為存放操作系統的那一部分用戶是沒有權限訪問的,除非通過特殊的方式,也就是我們常說的刷機,那這麼說的話大家就明白為什麼刷機也叫刷rom了吧?
rom包的結構
安卓手機ROM如何自定義 怎麼打造個性化的ROM
我從miui官網下了一個rom包,解壓下來後如圖。
META-INF裡面是一些升級腳本和ROM簽名。
recovery裡面是我們刷機在recovery時要用到的一些文件。
system是這個rom的具體內容。
boot.img是內核文件。
這個教程我們想要達到的目的就是修改rom,所以我們只要看system這個文件夾就可以了。
把system打開以後如下圖。
下面簡單說明下這些文件夾。
app:系統自帶的應用。
bin:android系統本地的一些可執行的程序。
etc:android系統配置文件。
fonts:字體樣式和字體庫。
framework:android系統框架。
lib:動態鏈接庫。
media:鈴聲、開機動畫之類的媒體文件。
usr:用戶數據。
vendor:廠商信息。
xbin:系統管理用的可執行程序。
build.prop:手機信息。
修改rom
這一部分用三個例子讓大家熟悉下rom包的結構和修改的方式,然後再自己擴展。
安卓手機ROM如何自定義 怎麼打造個性化的ROM
三個例子分別是:
1.修改原始語言和時區 2.修改界面 3.刪除和新增自帶應用
1.修改原始語言和時區
這個非常簡單,打開system文件夾下的build.prop修改就可以了。
然後修改
ro.product.locale.language=zh
ro.product.locale.region=CN
當然如果是miui可能本來就修改好了,但是如果是android原生的系統就是原生時間。
關於修改build.prop建議大家使用一個文本編輯器UltraEdit。因為你用記事本打開build.prop的話是這個樣子。
而如果用UltraEdit打開的話是這個樣子。
安卓手機ROM如何自定義 怎麼打造個性化的ROM
哪個比較直觀就不用我多說了,一目了然。所要改的那兩行屬性我也在上圖中做了標記。
當然還有很多東西可以改,具體還能改什麼可以上網搜一下build.prop所有屬性的解釋。因為這個教程只是修改幾個東西當例子,然後大家從中熟悉下修改的原理和基本操作,大家再自行擴展。不可能什麼都改一遍寫出來。相信聰明的你舉一反三的能力是有的。
2.修改界面
安卓手機ROM如何自定義 怎麼打造個性化的ROM
這個也很簡單,把system\framework\framework-res.apk用winRAR的方式打開,然後解壓出來,把res\drawable-hdpi下的圖片換成你自己喜歡的,至於每個圖片是干什麼的你同樣可以網上搜一下。改完之後拖回去,記住這裡不是壓縮後把後綴改成apk,而是用winRAR原來的framework-res.apk,然後把想替換的新圖片拖進去替換了就行了。
3.刪除和新增自帶應用
刪除很簡單,把system\app打開,把你不想要的app文件刪掉,通常包括一個apk文件和odex文件。至於哪些可刪,網上有人列出了可精減的apk列表。自己搜下吧。
至於添加自帶應用就比較復雜了,可不是把apk文件拖進去就行了。我原來也試過把只是簡單的把apk拖進去,但是安裝以後發現,自己添加的信應用一打開就停止運行了。後來我發現如果把你想新增的apk文件的lib文件夾提取出來放到rom的system\lib裡就可以正常運行。這樣我就有個推測,因為一般的應用都是把自己的lib(前面在rom結構中提到lib是動態鏈接庫)壓縮在一起。然後應用運行要用時提取自己的lib文件。然後我發現rom的app文件夾裡所有apk都沒有lib文件。那我就推測android是所有自帶的app都統一去system下的lib調東西。所以如果你想自己新增自帶應用的話就要把apk文件夾的lib文件提取出來,把裡面所有的.so抽出來放到rom的lib裡。這樣新增的自帶應用才能正常運行。但是自己這樣添加自帶應用又會出一個新問題。我以有道筆記這個app為例。我把它的lib解壓後如圖。
它裡面有兩個文件夾。我們知道手機不同種類的cpu架構是不同的,那麼app就必須提供支持不同平台的so文件。然後放在不同文件夾。但是一般來說你文件命名肯定是相同的。不信你可以試著把一個apk的lib文件夾下的每個文件夾看一下,都會發現雖然大小不一樣但是名字一樣的文件。而你要把這些文件都抽出來放在rom的lib裡,那麼肯定會造成同名覆蓋問題。所以我建議如果非要自己新增一個又有同名覆蓋情況,你就保留armeabi文件夾下的文件就行了。
安卓手機的刷機包包含的很多的目錄,這些目錄都是每個文件修改的地方,對於這些需要修改的文件加油門只需要了解這些目錄位置即可,感興趣的機油們可以自行嘗試下。