綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[教程] 簡單易懂的Android ROM定制與修改教程

  [複製連結] 查看: 185715|回覆: 165|好評: 46
跳轉到指定樓層
樓主
暗桌之光 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2012-3-2 15:59

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
每個人對手機都有不同的要求,這裡我想談談我的修改ROM的方法,其中大部分是總結於論壇中其他帖子,有一小部分是自己總結的經驗。

玩Android手機可為個層次:
       1。最高境界:對Android系統十分熟悉,能夠編寫系統代碼
       2。大大境界:能夠修改代碼和編譯,需要熟悉linux系統和具備編程知識
       3。高手境界:能夠在非代碼級修改ROM,美化ROM。
       4。普通境界:會玩,會設定等
       前兩個層次要花大力氣學習,向我這樣的懶人看樣子是達不到了,只能努力達到第三層。這裡我想跟大家分享一下我的修改ROM的方法,其中大部分是總結與論壇中其他帖子,有一小部分是自己總結的經驗。

修改ROM大致可分為:精簡、增補、美化三類這裡主要討論的是精簡和增補兩個方面,至於美化大家可以參看其他帖子。

一。首先我們來看看ROM中到底有些什麼:
       用WinRAR開啟刷機包後可以看到幾個目錄,下面列出了和我們有關的幾個目錄和說明
            dev_data/apps/ : 系統程式的apk文件目錄,相當於刷機後 "/data/app_s/",這裡的程式刷機後不可卸載
            dev_data/app/  : 用戶程式apk文件目錄,相當於刷機後  "/data/app/",這裡的程式刷機後可卸載。(10月28日以後的版本中才有,以前的版本大家可以自己加這個目錄)
            META-INF/com/google/android/ : 刷機腳本文件
            system/etc/: 存放了一些配置文件
            system/etc/permissions/ : 和軟體權限有關,部分補丁需要在這個目錄中添加文件
            system/lib/ : 系統程式的庫文件存放位置

二。再來認識一下刷機腳本文件
    用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/"目錄下
        (4)set_perm_recursive 0 2000 0755 0755 SYSTEM:bin
               設定目錄或文件權限的,使用方法和linux中設定權限的方法類似。
        (5)delete 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的時候添加的程式無法執行,大多屬於這個情況。例如新版本的Google拼音輸入法。
   2。添加用戶程式:
         添加用戶程式稍微麻煩點,但是刷機後可直接卸載。如果用的是10月28日以後的ROM,直接把apk拖入"dev_data/app/"目錄中。這一步很簡單,麻煩的是apk中有庫文件的情況。簡單處理方法同添加系統程式中的第2步,這種方法的缺點是卸載時庫文件還會保留在「system/lib/」中,好在大多數程式都沒有庫文件,少數程式保留下來的庫文件並無大礙。高級點的方法是通過寫腳本進行安裝。
        10月28日以前的ROM在「dev_data/」中沒有app這個目錄,大家可以自己建立(winRAR中點擊右鍵,選創建一個新文件夾),建立好目錄後要在刷機腳本中設定目錄屬性:
                在刷機腳本中找到這一段:
                copy_dir PACKAGE:dev_data INTERNAL:
                set_perm 1000 1000 0771 INTERNAL:app_s
                在其後加上這一句:
                 set_perm 1000 1000 0771 INTERNAL:app
         其中第一句是把ROM中dev_data目錄中的所有東東複製到/data目錄下
         第二句是設定 app_s的權限
         我們加的那一句是設定app的權限

    接下來可以修補,調整ROM了

四。firstboot腳本
       要對ROM進行高級點的設定,可以利用firstboot.sh腳本。firstboot.sh腳本在ROM中的dev_data目錄中。腳本中的代碼是在刷完機後第一次啟動時執行的,利用它可以對系統進行設定,安裝APK等工作。
       看看liudidi1028rom中的腳本片段
            # System default settings
            /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);"
      我想大家應該可以猜出這三句代碼的作用了吧。至於腳本這麼寫,不要來問我,我也不熟,大家可以共同研究。
      在腳本中可以使用rm,mv等命令,用它可以直接把某些配置文件覆蓋掉。
       例如: 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>
           <spnOverride
              numeric="46688"
              spn="和信電訊"
              spn_display_rule="SPN_RULE_SHOW_SPN"/>
           <spnOverride
              numeric="46689"
              spn="威寶電信"
              spn_display_rule="SPN_RULE_SHOW_SPN"/>
           <spnOverride
              numeric="466890"
              spn="震旦電信"
              spn_display_rule="SPN_RULE_SHOW_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:這個大家應該很熟悉了,用來設定Swap,Compcache之類的。
      (1)設定SWAP
      進入文件後找到
        ####################
        ###### Swap ########
        ####################
       其後的代碼是和開啟Swap有關的
       例如
      SWAPNUM=`fdisk -l /dev/block/mmcblk1|grep swap|sed -e 's/ .*//g'`
      if [ -n "$SWAPNUM" ];then
         echo 60 > /proc/sys/vm/swappiness
         swapon $SWAPNUM
      fi
      在每行前面加#註釋掉後就可以不開機啟動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="CSL" mcc="454" mnc="00" apn="hkcsl" user="" server="" password="" proxy="192.168.59.51" port="8080" mmsc="http://192.168.58.171:8002/" mmsproxy="192.168.59.51" mmsport="8080" type="default,mms"/>
        <apn carrier="PEOPLES" mcc="454" mnc="12" apn="peoples.net" user="" server="" password="" mmsc="" type="default,supl"/>
        <apn carrier="PEOPLES MMS" mcc="454" mnc="12" apn="170170" user="" server="" password="" mmsc="http://mms.peoples.com.hk/mms" mmsproxy="172.31.31.36" mmsport="8080" type="mms"/>
        <apn carrier="3 HK" mcc="454" mnc="03" apn="mobile.three.com.hk" user="*" server="*" password="*" mmsc="http://mms.um.three.com.hk:10021/mmsc" mmsproxy="172.20.97.116" mmsport="8799"/>

    如果ROM中沒有自帶apn設定,可以在這個文件中加入,如果ROM中顯示的接入點名稱不是中文也可以通過修改這個來實現

注意
    1. 修改ROM時最好不要解壓縮,直接在WINRAR中操作,因為ROM應該是在Linux中壓縮的,壓縮格式可能會和在weindows下直接用winRAR壓縮出來的不同。
    2. 包中的文件不要有中文文件名
    3. 刷機前一定要備份,修改的ROM要是有什麼地方弄錯了很容易進不了系統

    大家要是覺得有幫助就頂個帖吧!
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)

評分

參與人數 193碎鑽 +98 經驗 +9 幫助 +205 技術 +10 收起 理由
t013076 + 1 + 1 非常讃
yueh570 + 1 + 1 非常讃
moaii + 1 + 1 非常讃
gameuse + 1 + 1 非常讃
j13457984 + 1 好內容。朕有賞,還不謝主隆恩.
tony994880 + 1 + 1 非常讃
pwtic + 1 + 1 非常讃
197878 + 1 + 1 非常讃
apk150324 + 1 + 1 非常讃
kenwang3 + 1 非常讃

查看全部評分

收藏收藏198 分享分享4 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
leo2588366 | 收聽TA | 只看該作者
發表於 2012-3-2 17:50
話說 我只在普通境界的高一點的地方  不過離高手手境界還是有點距離   我還有須多東西要學習的...
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
艾力克 | 收聽TA | 只看該作者
發表於 2012-3-3 00:05
寫的真的不錯,辛苦了...

話說我是在哪個層次呢???

評分

參與人數 1碎鑽 +1 幫助 +1 技術 +1 收起 理由
im641 + 1 + 1 + 1 神馬都是浮雲

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
cracky | 收聽TA | 只看該作者
發表於 2012-3-3 02:08

點評

你已經是了啦,朝最高境界吧  發表於 2012-3-3 11:57

評分

參與人數 1碎鑽 +1 幫助 +1 收起 理由
vbnvbn + 1 + 1 非常讃

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

5
apocaho | 收聽TA | 只看該作者
發表於 2012-3-10 12:07
大家都很想學習~
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

6
steve0000 | 收聽TA | 只看該作者
發表於 2012-3-26 00:07
雖然不太了解 知道寫的真的不錯,大大辛苦了
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

7
hjkl1234 | 收聽TA | 只看該作者
發表於 2012-3-26 00:57
由 手機網頁 發佈
有些不清楚 但大概我猜我在接近高手那邊......
謝謝大大的說明  最進在探討這些東西說
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

8
hunter0529 | 收聽TA | 只看該作者
發表於 2012-3-26 20:39
哇~大大講的好
小的受益良多
努力學習中
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

9
辜士豪 | 收聽TA | 只看該作者
發表於 2012-4-1 21:43
妳好猛! 我慢慢玩 安卓真是深不可測
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

10
lai50 | 收聽TA | 只看該作者
發表於 2012-4-2 15:38
受益良多!!!!!!!!!!
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則