馬上加入Android 台灣中文網,立即免費下載應用遊戲。
您需要 登錄 才可以下載或查看,沒有帳號?註冊
x
本帖最後由 zaqwert963852 於 2011-11-6 00:27 編輯
EXT4與EXT3的差異,網路上已經有很多資料,機器達人在此不再贅述,但是好是壞、對效能的提升有沒有幫助則有待驗證。本篇內容提供進階讀者關於EXT3 ROM修改為EXT4的指南。
EXT4檔案系統格式與EXT3的檔案系統格式是不同的,但EXT4的驅動程式可以掛載EXT3的檔案系統,雖然透過mount指令看到掛載為EXT4,但實際上並沒有發揮EXT4全部的好處,由於某些EXT4的新功能可以直接運用在EXT3的檔案系統格式上,直接掛載或許即可提升少許效能。
用EXT4去掛載EXT3分割區的好處是,當您刷回只支援EXT3的ROM時,可以無痛還原。(在此告訴大家 → 並沒有自動轉換為EXT4這件事。)
而要完整地支援EXT4,我們需要先把DATA分割區「手動」格式化為EXT4,這個動作等同Wipe Data(恢復原廠設定)。而SYSTEM、CACHE分割區會在刷ROM的時候,ROM的作者就幫您處理好了,所以這部分不用煩惱(/META-INF/com/google/android/updater-script中的format指令)。
當DATA分割區格式化為EXT4之後,就代表您無法無痛還原成EXT3的ROM了,因為這些ROM無法將EXT4的DATA分割區掛載起來,所以要刷回EXT3的ROM時,同時也要手動先將DATA分割區格式化為EXT3。
手動格式化DATA分割區的方法可透過ClockworkMod Recovery服用以下兩個檔案來格式化DATA分割區為EXT3或是EXT4:
[下載] Format_Data_to_EXT3.zip
[下載] Format_Data_to_EXT4.zip
ClockworkMod Recovery版本差異不管是舊版的2.5.1.2~3或是新版的3.x.x.x都可以將DATA分割區格式化為EXT3或EXT4,也能正確地安裝EXT3或EXT4的ROM,其中的差別簡單講就是3.2.0.0版才能正常地備份與還原EXT4的ROM。
完全EXT4版的三大要件- 核心支援EXT4檔案格式,查看的方法為開機狀態使用adb shell執行「cat /proc/filesystems」指令來查看是否有ext4字眼,HTC原廠核心並不支援EXT4,因此需使用第三方的核心。
- boot.img中RAM Disk的init.spade.rc需指定用EXT4掛載system、data、cache、devlog四個分割區
mount ext4 emmc@system /system ro data=ordered
mount ext4 emmc@userdata /data nosuid nodev data=ordered
mount ext4 emmc@cache /cache nosuid nodev data=ordered
mount ext4 emmc@devlog /devlog nosuid nodev data=orderedEXT3版的init.spade.rc則為
mount ext3 emmc@system /system ro data=ordered
mount ext3 emmc@userdata /data nosuid nodev data=ordered
mount ext3 emmc@cache /cache nosuid nodev data=ordered
mount ext3 emmc@devlog /devlog nosuid nodev data=ordered
BOOT分割區其實包含了Linux核心與RAM Disk,服用支援EXT4的核心套件,比如LeeDrOiD Ace GB KERNEL就會自動掛載為EXT4嗎?答案是不會!因為LeeDrOiD Ace GB KERNEL單獨套件並不會置換RAM Disk中的script內容,只是單純地換核心而已。比如原本GRI40-2有做記憶體提早回收的設定,此設定即設在RAM Disk中的script,所以服用了LeeDrOiD Ace GB KERNEL套件後,也不會更動記憶體提早回收的設定。
要修改這部分,一種方法是服用LeeDrOiD Ace GB KERNEL之後,用nandroid backup將boot分割區取出來,交給dsixda\'s HTC Android Kitchen修改,另一種偷懶方式就是直接取LeeDrOiD發行的ROM,直接取其boot.img來使用,但這樣就失去記憶體提早回收的設定(可再使用dsixda\'s HTC Android Kitchen進行修改加回)。
- system、data、cache分割區皆格式化為EXT4
ROM的zip檔中,/META-INF/com/google/android目錄下的updater-script的內容會有以下兩個指令
format(\"ext3\", \"EMMC\", \"/dev/block/mmcblk0p25\");
format(\"ext3\", \"EMMC\", \"/dev/block/mmcblk0p27\");mmcblk0p25為SYSTEM分割區,mmcblk0p27為CACHE分割區,所以我們需要將上面這兩個指令改為以下,再放回ROM的zip檔裡。
format(\"ext4\", \"EMMC\", \"/dev/block/mmcblk0p25\");
format(\"ext4\", \"EMMC\", \"/dev/block/mmcblk0p27\");
但updater-script的內容沒有格式化mmcblk0p26這個DATA分割區,因為執行了格式化DATA分割區,使用者的手機資料就會被清除了,也就是Wipe Data(恢復原廠設定)。因此要服用前面提供的Format_Data_to_EXT4.zip,內部只含一道指令「format(\"ext4\", \"EMMC\", \"/dev/block/mmcblk0p26\");」,可以將DATA分割區格式化為EXT4。
如何將EXT3的ROM修改為EXT4版看完以上的說明,這裡以GRI40-2特調ROM為範例,這裡整理一個簡單步驟,指導進階讀者如何將它轉為純正EXT4的ROM。
- 將ROM中的boot.img替換掉
- 修改ROM的zip檔中的/META-INF/com/google/android/updater-script,將所有ext3字眼改為ex4
- 進入ClockworkMod Recovery,先服用Format_Data_to_EXT4.zip,再服用讀者自行調整過的ROM檔,重開機即可完成。
給進階讀者練習發揮的空間:所有分割區皆使用EXT3格式但以EXT4的方式掛載(只做上述步驟的1),與全部分割區皆使用EXT4格式並以EXT4的方式掛載(做上述步驟的1、2、3),比較兩者性能差異。有心得請不吝於回報!
文章來自機器達人
|