|  
       
            
       
       
      
       
      
      
 
| 
每個人對手機都有不同的要求,這裡我想談談我的修改ROM的方法,其中大部分是總結於論壇中其他帖子,有一小部分是自己總結的經驗。
x
馬上加入Android 台灣中文網,立即免費下載應用遊戲。您需要 登錄 才可以下載或查看,沒有帳號?註冊  
 玩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要是有什麼地方弄錯了很容易進不了系統
 
 大家要是覺得有幫助就頂個帖吧!
 | 
 評分
查看全部評分
  |