簡單易懂的Android ROM定製與修改教程

簡單易懂的Android ROM定製與修改教程 linux

 

每一個人對手機都有不一樣的要求,這裏我想談談個人修改ROM的方法,其中大部分是總結於論壇中其餘帖子,有一小部分是本身總結的經驗。玩Android手機可爲個層次: android

1。最高境界:像大神這樣的,對Android系統十分熟悉,可以編寫系統代碼
2
。大大境界:像Liudidi、小白小仙等大大,可以修改代碼和編譯,須要熟悉linux系統和具有編程知識 sql

3。高手境界:可以在非代碼級修改ROM,美化ROM 編程

4。普通境界:會玩,會設置等 網絡

   前兩個層次要花大力氣學習,向我這樣的懶人看樣子是達不到了,只能努力達到第三層。這裏我想跟你們分享一下個人修改ROM的方法,其中大部分是總結與論壇中其餘帖子,有一小部分是本身總結的經驗。修改ROM大體可分爲:精簡、增補、美化三類這裏主要討論的是精簡和增補兩個方面,至於美化你們能夠參看其餘帖子。 app

一.首先咱們來看看ROM中到底有些什麼: 編輯器

WinRAR打開刷機包後能夠看到幾個目錄,下面列出了和咱們有關的幾個目錄和說明dev_data/apps/ : 系統程序的apk文件目錄,至關於刷機後 "/data/app_s/",這裏的程序刷機後不可卸載dev_data/app/  : 用戶程序apk文件目錄,至關於刷機後  "/data/app/",這裏的程序刷機後可卸載。(1028日之後的版本中才有,之前的版本你們能夠本身加這個目錄)META-INF/com/google/android/ : 刷機腳本文件system/etc/: 存放了一些配置文件system/etc/permissions/ : 和軟件權限有關,部分補丁須要在這個目錄中添加文件system/lib/ : 系統程序的庫文件存放位置 ide

二.再來認識一下刷機腳本文件 工具

recovery刷機時,刷機過程由腳本文件控制。  腳本文件就是壓縮包中 META-INF\com\google\android 目錄下的 update-script文件,用文本編輯器能夠打開。 學習

腳本文件中有這麼幾條語句是咱們關心的

(1)  show_progress 0.1 0 :顯示進度條         

這是用來顯示刷機進度條的,前面的0.1表示進度條的位置,能夠改成別的數值(小於1)。後面的數字不清楚是什麼含義,大致上除了最後一條爲10,其餘都爲0。有些ROM在刷機時會出現刷機完成了進度條才走到一半多點,你們能夠試試把最後一句改成 show_progress 0.8 10,進度條就能夠走到底了。

2)幾個關鍵字
    
A"SYSTEM:" 表明刷機後的系統目錄 = "/system/"

     (B"INTERNAL:" 表明刷機後的 /data 目錄 = "/data/"

     (C"PACKAGE:" 表明壓縮包的根目錄

      例如 "SYSTEM:etc/ " 至關於刷機後的 "/system/etc/" 目錄PACKAGE:dev_data" 至關於壓縮包中的 dev_data 目錄

(3) copy_dir PACKAGE:dev_data INTERNAL:copy_dir是用來複制目錄的,前一個參數是要複製的目錄,後一個參數是複製到那裏。例如 copy_dir PACKAGE:dev_data INTERNAL: 是用來把ROM壓縮包中dev_data目錄中的東西複製到刷機後的"/data/"目錄下        

4set_perm_recursive 0 2000 0755 0755 SYSTEM:bin設置目錄或文件權限的,使用方法和linux中設置權限的方法相似。

 (5delete SYSTEM:app/YouTube.apk刪除文件,這個通常用不到,要刪除的話,直接刪就是了。

好了,能夠動手精簡和增長程序了

三.精簡系統程序      

所謂精簡實際上就是刪除系統程序,咱們用不到的那些程序能夠刪除掉。刪除這些程序好處在於(1)有些東西是咱們用不到的,顯示在程序列表中很煩人,若是這樣的程序過多也會致使打開程序列表過慢。(2)有些程序啓動後會佔用內存而咱們又用不到。例如,短信攔截等。(3)有些程序不想用原ROM中自帶的,想換個別的,例如不喜歡ADW,改用LAUNCH PRO等。 精簡的方法很簡單,用WinRAR打開ROM,進入dev_data\apps中找到不要的程序,刪除。那些程序能夠精簡,這個各個機型通常都有精簡列表,網上隨便搜索!                                           

四.添加程序

添加程序有兩個方法,一是把程序添加爲系統程序,二是添加爲用戶程序。 把程序添加爲系統程序的好處在於執行速度快(你們這麼說的,我好像沒有體會到),缺點是不能直接卸載,只有經過RE等工具刪除。其實用RE直接刪除系統程序APK文件時並不是都卸載乾淨了,不信你們能夠看看/data/data/這個目錄,是否是每一個程序都對應了一個目標,其目錄名和程序包的名稱相同(不是XXX.APK這個XXX)。

1.添加系統程序:、

    添加系統程序方法最簡單:       

(1)     用WinRAR打開ROM壓縮文件,進入 "\dev_data\app_s" 這個目錄,把要添加的程序的APK文件複製進去。

(2)     用WinRAR打開要添加進去的APK文件看看「\lib\armeabi」目錄中是否有.so結尾的文件,它們是程序運行時須要用到的庫文件,有的話把他們複製到壓縮包中的「system/lib/」目錄中。有些童鞋在修改ROM的時候添加的程序沒法執行,大多屬於這個狀況。例如新版本的谷歌拼音輸入法。

2.添加用戶程序:

       添加用戶程序稍微麻煩點,可是刷機後可直接卸載。若是用的是1028日之後的ROM,直接把apk拖入"dev_data/app/"目錄中。這一步很簡單,麻煩的是apk中有庫文件的狀況。簡單處理方法同添加系統程序中的第2步,這種方法的缺點是卸載時庫文件還會保留在「system/lib/」中,好在大多數程序都沒有庫文件,少數程序保留下來的庫文件並沒有大礙。高級點的方法是經過寫腳本進行安裝。

    10月28之前的ROM「dev_data/」中沒有app這個目錄,你們能夠本身創建(winRAR中點擊右鍵,選建立一個新文件夾),創建好目錄後要在刷機腳本中設置目錄屬性:

在刷機腳本中找到這一段:copy_dir ACKAGE:dev_dataINTERNAL: set_perm 1000 1000 0771 INTERNAL:app_s在其後加上這一句:set_perm 1000 1000 0771 INTERNAL:app 其中第一句是把ROMdev_data目錄中的全部東東複製到/data目錄下 第二句是設置 app_s的權限咱們加的那一句是設置app的權限接下來能夠修補,調整ROM

四。firstboot腳本要對ROM進行高級點的設置,能夠利用firstboot.sh腳本。firstboot.sh腳本在ROM中的dev_data目錄中。腳本中的代碼是在刷完機後第一次啓動時執行的,利用它能夠對系統進行設置,安裝APK等工做。看看liudidi1028rom中的腳本片斷# System defaultsettings/system/xbin/sqlite3 $DATABASE "INSERT INTO system (name, value) VALUES ('trackball_wake_screen', 1);" /system/xbin/sqlite3 $DATABASE "INSERT INTO system (name, value) VALUES('trackball_unlock_screen', 1);" /system/xbin/sqlite3 $DATABASE "INSERT INTO system (name, value) VALUES ('lock_home_in_memory', 1);" 我想你們應該能夠猜出這三句代碼的做用了吧。至於腳本這麼寫,不要來問我,我也不熟,你們能夠共同研究。在腳本中可使用rmmv等命令,用它能夠直接把某些配置文件覆蓋掉。例如: busybox rm /system/etc/某文件busybox mv /system/etc/某文件固然,若是修改的是系統文件,先要取得權限: busybox mount -o remount,rw /system 以後再改成只讀 :busybox mount -o remount,ro /system firstboot.sh頗有用,要是哪位大大能寫個初級教程就行了!

五。ROM常見的系統配置文件。修改這些文件能夠調整系統設置 

 1。\system\etc\spn-conf.xml:顯示營運商的例如<?xml version="1.0" encoding="utf-8"?><spnOverrides><spnOverridenumeric="46001"spn="中國聯通"/><spnOverridenumeric="46000"spn="中國移動/><spnOverridenumeric="46002"spn="中國移動"/></spnOverrides>

若是下載的ROM中顯示的是英文,能夠試着修改這個文件。

2。\system\etc\gps.conf:和GPS搜星相關,所謂提升搜星速度就是修改這個文件了。

   方法:把文件中 NTP_SERVER=XXXXX.pool.ntp.org改成NTP_SERVER=cn.pool.ntp.org。我試過,這個網站ping的速度的確比原始設置中的那個要快一倍以上

   3。\system\bin\rc:這個你們應該很熟悉了,用來設置SwapCompcache之類的。

1)設置SWAP

      進入文件後找到

        ####################

        ###### Swap ########

        ####################

       其後的代碼是和開啓Swap有關的

       例如

      SWAPNUM=`fdisk -l /dev/block/mmcblk1|grep swap|sed -e 's/ .*//g'`if [ -n "$SWAPNUM" ];thencho 60 > /proc/sys/vm/swappinessswapon $SWAPNUMfi

 在每行前面加#註釋掉後就能夠不開機啓動swap

      要改swappiness的大小能夠該第三行中的60這個數字。

      設置 Compcache你們能夠本身試試

2)修改內存管理參數

 在rc文件中加入這一行

      echo "1536,1536,3072,1536,10240,12800" >/sys/module/lowmemorykiller/parameters/minfree其中的數字從左到右爲:前臺進程、可見進程、次要服務、後臺服務、內容供應節點、空進程,其中的數值的單位是4k,也就是說1536 : 4k*1536=6144k=6M

  4。 \system\etc\apns-conf.xml:和網絡接入點設置有關

     例如,和移動聯通有關的設置<apn carrier="中國移動 (Internet)" apn="cmnet" mcc="460" mnc="00" type="default,supl" /><apn carrier="中國移動 (WAP)" apn="cmwap" proxy="10.0.0.172" port="80" mcc="460" mnc="00" type="default,supl" /><apn carrier="中國移動 (MMS)" apn="cmwap" mmsc="http://mmsc.monternet.com" mmsproxy="10.0.0.172" mmsport="80" mcc="460" mnc="00" type="mms" /><apn carrier="中國聯通 (Internet)" apn="3gnet" mcc="460" mnc="01" type="default,supl" /><apn carrier="中國聯通 (WAP)" apn="3gwap" proxy="10.0.0.172" port="80" mcc="460" mnc="01" type="default,supl" /><apn carrier="中國聯通 (MMS)" apn="3gwap" mmsc="http://mmsc.myuni.com.cn" mmsproxy="10.0.0.172" mmsport="80" mcc="460" mnc="01" type="mms" /><apn carrier="中國移動 (Internet)" apn="cmnet" mcc="460" mnc="02" type="default,supl" /><apn carrier="中國移動 (WAP)" apn="cmwap" proxy="10.0.0.172" port="80" mcc="460" mnc="02" type="default,supl" /><apn carrier="中國移動 (MMS)" apn="cmwap" mmsc="http://mmsc.monternet.com" mmsproxy="10.0.0.172" mmsport="80" mcc="460" mnc="02" type="mms" />若是ROM中沒有自帶apn設置,能夠在這個文件中加入,若是ROM中顯示的接入點名稱不是中文也能夠經過修改這個來實現

注意:

1.  修改ROM時最好不要解壓縮,直接在WINRAR中操做,由於ROM應該是在Linux中壓縮的,壓縮格式可能會和在weindows下直接用winRAR壓縮出來的不一樣。

2.   包中的文件不要有中文文件名

3.   刷機前必定要備份,修改的ROM要是有什麼地方弄錯了很容易進不了系統。

相關文章
相關標籤/搜索