馬上加入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要是有什麼地方弄錯了很容易進不了系統
大家要是覺得有幫助就頂個帖吧! |
評分
-
查看全部評分
|