Android 進階開發教學
【前言】
#include<std_disclaimer.h>
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices,dead pets, thermonuclear
* war, or the current economic crisis causedby you following these
* directions. YOU are choosing to make thesemodificiations, and
* if you point your finger at me for messingup your device, We will
* laugh at you. Loud and hard.
*/
本文所介紹的所有內容全部都有可能破壞您的保固!
操作不當 / 出現小差錯皆有可能讓你裝置變磚!
請自行考慮後再實踐本文所教的教學!
如果手機出現任何毛病,我不會負任何責任!
本文主要以四種廠牌的手機作介紹:Google、Samsung、HTC 和 Sony。
其他廠牌可能會有不同的設置。
【目錄】
第一章 Bootloader
1.1 Bootloader 是甚麼?
1.2 要怎麼解鎖 bootloader?
1.3 S-OFF
1.1 Bootloader 是甚麼?
1.2 要怎麼解鎖 bootloader?
1.3 S-OFF
第二章 Root
2.1 Root 權限是甚麼?
2.2 我要怎麼 root 我的裝置?
2.3 注意事項
2.4 Root 後必裝應用程式
2.1 Root 權限是甚麼?
2.2 我要怎麼 root 我的裝置?
2.3 注意事項
2.4 Root 後必裝應用程式
第三章 ROM, Kernel, Baseband, etc.
3.1 ROM
3.2 Kernel 內核
3.3 Baseband 基帶
3.4 MOD
3.1 ROM
3.2 Kernel 內核
3.3 Baseband 基帶
3.4 MOD
第四章 電腦刷機工具
4.1 Android SDK
4.2 Fastboot
4.3 Odin
4.4 Flashtool
4.1 Android SDK
4.2 Fastboot
4.3 Odin
4.4 Flashtool
第五章 Recovery Mode
5.1 Recovery mode 是甚麼?
5.2 Recovery mode 導覽
5.3 用 recovery mode 刷機
5.1 Recovery mode 是甚麼?
5.2 Recovery mode 導覽
5.3 用 recovery mode 刷機
第六章 File permission,Busybox, Overclocking, etc.
6.1 File permission 檔案權限
6.2 Busybox
6.3 Odex
6.4 Overclocking 超頻
6.5 Undervolting 降電伏
6.1 File permission 檔案權限
6.2 Busybox
6.3 Odex
6.4 Overclocking 超頻
6.5 Undervolting 降電伏
【特別感謝】
- 維基百科
- Google
- XDA-developers
- AddictiveTips
- Android Police
- Elated
- Android Central
- Android 台灣中文網
- 安極網
- 百度百科
- Phandroid
- CyanogenMod Wiki
- TalkAndroid
第一章 Bootloader
1.1 Bootloader是甚麼?
Bootloader 是一個指令碼。在任何 OS開始跑之前,bootloader 會被執行。Bootloader 裝著如何開啟 OS 內核。
Android 裝置的bootloader 通常是鎖起來的。雖然 Android 是個開放原始碼系統,廠商總是希望你一直用著他們專為這裝置開發的系統。因此,他們會鎖上 bootloader。
如果你的裝置的 bootloader 是鎖上的,你幾乎不可能刷一個非官方 ROM,否則你的保固會失去,你的裝置也會變磚。所以,在刷機之前,通常要先解鎖bootloader。
所以,解鎖 bootloader 的原因很簡單:如果你想要有 root 權限,你通常都要刷個已經有 root 權限的內核 / ROM;想要刷機,你通常要解鎖 bootloader。
1.2 要怎麼解鎖 bootloader?
***注意:解鎖 bootloader 會讓你的裝置失去保固!
這動作也會清理你的 /data!請自行考慮後再作決定!***
***注意:請確保你的裝置電量有超過 80% 再開始執行以下動作!***
其實不同裝置的解鎖 bootloader 方法都可以輕易在網路上找到。
這裡主要是寫「整體來講」如何解鎖 bootloader。
在做任何事情之前,請先確認你的手機是否可以解鎖 bootloader:
1. 打開打電話的程式。
2. 打 *#*#7378423#*#* (有可能是 *# 而不是 *#*#)
3. 點 Service Info >Configuration > Rooting Status。
4. 如果你看到 “Bootloaderunlock allowed: Yes”,那麼你可以解鎖 bootloader。
Nexus 裝置:
1. 安裝 Android SDK。(下載:http://developer.android.com/sdk/index.html)
2. 將你的裝置關機,等幾秒,然後開機至bootloader mode。
(詳情請 Google “你的裝置” bootloader mode)
(詳情請 Google “你的裝置” bootloader mode)
3. 將手機連接至電腦。等裝置驅動程式安裝完畢(正常來講會自動執行)。
4. 進命令提示字元,輸入 “fastbootoem unlock”
5. 你的裝置會顯示一個畫面,確定你是否要解鎖bootloader。
***將裡面的指示讀清楚!***
如果確定的話,選 yes。
***將裡面的指示讀清楚!***
如果確定的話,選 yes。
6. 搞定!
Samsung 裝置:
正常來講,三星裝置的 bootloader 本身就是開放的。
直接用 PC Odin root 就可以。
Xperia 裝置:
2. ***將裡面的指示讀清楚!***
如果確定的話,選 Yes, I’m sure
如果確定的話,選 Yes, I’m sure
3. ***將裡面的法律條文讀清楚!***
看完確定之後,將兩個選項打勾,然後按 I accept
看完確定之後,將兩個選項打勾,然後按 I accept
4. 輸入你的名字,IMEI/MEID 和 E-mail。
(有時候 IMEI/MEID 欄要忽略最後一個數字)
你可以在電話打 *#06# 看到你手機的 IMEI 或 MEID。
(有時候 IMEI/MEID 欄要忽略最後一個數字)
你可以在電話打 *#06# 看到你手機的 IMEI 或 MEID。
5. 解鎖鑰匙會被寄到你的信箱。***保管好這東西!***
6. 安裝 Android SDK。(下載:http://developer.android.com/sdk/index.html)
7. 下載 fastboot 驅動裝置。(下載:http://developer.sonymobile.com/downloads/drivers/fastboot-driver/)
8. 將解壓縮的檔案放進 Android SDK> extra > google > usb_driver。
如果找不到這資料夾,用 Android SDK manager 安裝 Google USB DriverPackager。
如果找不到這資料夾,用 Android SDK manager 安裝 Google USB DriverPackager。
9. 將裝置關機。
10. 將手機開機至 fastboot mode,同時將手機用 USB 線連接至電腦。
(手機進入 fastboot mode 的按鈕:http://unlockbootloader.sonymobile.com/fastboot-buttons)
(手機進入 fastboot mode 的按鈕:http://unlockbootloader.sonymobile.com/fastboot-buttons)
11. 你的電腦會要求驅動裝置。選擇 usb_driver 資料夾(也就是你放那解壓縮檔案的地方),選Android Boot loader Interface-file。
12. 在 Android SDK > tools 開啟命令提示字元,輸入 “fastboot.exe–I 0x0fce getvar version”。正常來講會有一個數字回應。
13. 輸入 “fastboot.exe –I 0x0fce oem unlock 0xKEY”(KEY = 你信箱裡面的鑰匙)
14. 搞定!
1.3 S-OFF (HTC 裝置專用)
為什麼我上面沒有寫 HTC 手機解鎖方法?
因為那太複雜了,必須要另外開一個節來解釋。
解鎖 HTC 手機有個專有名詞:S-ON和 S-OFF。
簡單來講,S-OFF 是指你裝置的 NAND 部分已經被解鎖而且可以被複寫。
HTC 裝置通常是 S-ON,所以你不可以存取系統某些部分,而且你不能有永久 root 權限。另外,你的韌體也會被檢查是否原廠貨。
要確認你的裝置是 S-ON 還是 S-OFF 很簡單。開機至 HBOOT,然後上面就會秀出來。
(如何開機至 HBOOT:關機,等幾秒(等久一點),然後按“音量-”+ “開機鍵”
或者:在關機目錄選重新開機,然後在準備開機時按“音量-”鍵)
為什麼我要 S-OFF 我的裝置?
HTC 在裝置上面裝了一系列的安全檢查。那檢查的等級是用 S-ON/S-OFF 決定的。
當安全檢查等級是 S-ON 時,他會在韌體被寫進系統記憶體之前檢查那韌體的簽名。也就是說,他限制了任何非官方 ROM、recovery 等東西的載入,同時也限制他們存取 NAND 快閃記憶體。
如果安全檢查等級是 S-OFF 時,他就不會檢查簽名,他也會准許非官方韌體、內核、recovery、HBOOT…等東西。他可以讓你自己亂改你的 HTC Android 裝置。
另外,S-OFF 同時也減少了存取 NAND快閃記憶體的限制。他也准許手機的所有部分(包括 /system)在開機狀態下被弄成讀寫狀態。
我該如何 S-OFF 我的裝置?
因為不同裝置的 S-OFF 方法完全不同,本文就不多詳細介紹。
請自行 Google ““我的裝置” s-off”。
第二章 Root
2.1 Root 權限是甚麼?
簡單來講,root 權限就像是 Windows的 Administrator 權限。這些權限統稱 Superuser。
Root 權限讓使用者安裝的程式可以跑一些特殊的指令。這些指令主要是一些有潛在危險的指令,包括變更 /system 檔案、移除系統的應用程式、低階硬體存取(重新開機、校正電池…)等。
在 root 的過程中,你的裝置會被安裝Superuser 管理程式。那程式能控制其他應用程式取得 root 權限。
2.2 我要怎麼 root 我的裝置?
為了安全考量,Google 將系統管理員權限鎖起來,不讓使用者亂改裝置而造成危險。
所以想要取得 root 權限的話,必須要找到韌體的弱點,然後乘虛而入,將 su binary 放到系統裡面。接著再安裝有超級使用者管理權限的程式。
Root 有分成兩種方法:已解鎖的 bootloader和鎖著的 bootloader。
要 root 已解鎖的bootloader 非常簡單:刷有 root 權限的內核 / ROM 就可以。
至於鎖著的 bootloader 呢… 因為現在科技非常發達,已經有很多裝置可以在鎖著 bootloader 的情況下取得 root 權限(不過當然這還是會有一些小限制,詳情請洽 2.3)
詳情請 Google ““我的裝置” root”。
2.3 注意事項
***這章節非常重要!請務必仔細觀看!***
1. 取得 root 權限之後,你可以對裝置做任何事情。所以做任何步驟都要非常小心!
不然輕者某程式壞掉,重者手機變磚!
不然輕者某程式壞掉,重者手機變磚!
2. 小心病毒!記得裝一個真的有用的防毒軟體!
3. Root 會失去保固!
如果你在 bootloader 鎖著的情況下 root,記得在送回原廠之前刷回原廠韌體,並且 unroot,才不會失去保固!
(正常來講你的超級使用者程式本身就有內建 unroot 功能)
如果你在 bootloader 鎖著的情況下 root,記得在送回原廠之前刷回原廠韌體,並且 unroot,才不會失去保固!
(正常來講你的超級使用者程式本身就有內建 unroot 功能)
4. 有些裝置(主要是三星裝置)會紀錄你的刷機次數,記得在送回原廠之前用特殊工具歸零!
5. 如果你在 bootloader 鎖著的情況下 root,雖然你是有 root 權限,但是你不能刷非官方的ROM / 內核!也就是說,你還沒完全嚐到 Android 開發世界的美好滋味!
想要刷非官方的 ROM / 內核,最好的方法還是解鎖 bootloader。
(除非你不想破壞保固)
想要刷非官方的 ROM / 內核,最好的方法還是解鎖 bootloader。
(除非你不想破壞保固)
2.4 Root後必裝應用程式
1. Root 權限管理程式
Root 權限管理程式是指一些可以控制其他程式獲得root 權限的應用程式。
比較有名的包括 ChainsDD 的 Superuser 和 Chainfire 的 SuperSU。
另外還有最近興起的 Superuser (by ClockworkMod)。
這幾款程式功能都大同小異。
要說哪個程式比較好嘛… 你自己試試看再說吧。
2. Root 權限檔案瀏覽器
最有名的 Root 檔案瀏覽器應該就屬 ES 檔案瀏覽器了。
另外還有 Root Explorer (要錢!) 和 Root Browser。
Root Browser Lite 下載:https://play.google.com/store/apps/details?id=com.jrummy.root.browserfree
3. Busybox 管理程式
(關於 Busybox 的詳細介紹,請洽 6.2)
市面上有很多 Busybox 管理程式,我最喜歡Stephen (Stericson) 開發的 Busybox 管理程式。
4. 完整應用程式和資料備份程式
雖然 Nandroid Backup 可以一次把整個手機的東西都備份起來,不過總不可能整天用 Nandroid Backup 吧…
這時候,能夠將整個應用程式和資料備份起來的程式就變得相當重要!
最有名的備份程式當然就是 Titanium Backup。
基本備份功能全都齊全!
另外最近興起了一個新的備份程式:Carbon。
它聲稱不用 root 權限也能備份應用程式和資料!
另外它也能把備份檔案傳到電腦上。
不過 Motorola 裝置不能用。有些Xperia 裝置也可能會產生問題。
Titanium Backup 下載:https://play.google.com/store/apps/details?id=com.keramidas.TitaniumBackup
5. 系統程式解除安裝/搬移程式
有很多人 root 最主要的原因就是把系統裡面的垃圾程式全都清光。
這時候你就需要一個能夠解除安裝系統程式的應用程式。
Titanium Backup Pro 有支援這功能,不過這要錢。
Root Uninstaller 就是這方案的解決方法。
或者你用 /system/app mover 將系統程式轉成一般程式後再解除安裝。
/system/app mover 也能將一般程式轉成系統程式。
Root Uninstaller 下載:https://play.google.com/store/apps/details?id=com.rootuninstaller.free
/system/app mover 下載:https://play.google.com/store/apps/details?id=de.j4velin.systemappmover
6. 廣告阻擋程式
只要有了 Adfree,你就能和廣告說拜拜!
Adfree 能夠阻擋許多廣告,讓你不用再為廣告耗電、耗數據用量而煩惱!
Adfree 現在不能在 GooglePlay 上找到了,必須上網找 apk 檔安裝。
7. 超頻、降電伏管理程式
***注意:超頻/降頻/降電伏涉及風險,操作不慎有可能讓裝置變硬磚!這可是救不回來的!***
(關於超頻/降頻/降電伏的詳細介紹,請洽 6.4 & 6.5)
雖然非官方 ROM / 內核通常會自備超頻管理程式,不過公認最好用的肯定是 SetCPU!
這個要錢的應用程式可以完美地控制甚麼時候超頻,新手和老手都適合。
8. 手勢控制程式
對於 Android 平板電腦的使用者來說,最棒的莫過於像 iPad 一樣幾隻手指揮一下就能執行一些動作。
GMD GestureControl 幫到你!
它有許多手勢和動作,可以讓你不用一直在小小的狀態列上排迴!
GMD GestureControl Lite 下載:https://play.google.com/store/apps/details?id=com.goodmooddroid.gesturecontroldemo
目前 2.4 還在擴充狀態,歡迎各位在回覆提供 root 後必裝的應用程式!
第三章 ROM,Kernel, Baseband, etc.
(本章節主要是介紹刷機時常見的專有名詞,刷機方法請詳閱第四章和第五章,謝謝。)
3.1 ROM
在電腦界,ROM 本身指的是Read-only memory,也就是負責裝系統檔案的地方。
因為 ROM 裡面的東西不能被更改,所以ROM 主要是拿來放系統韌體。
當你裝置解鎖後,你可以透過某些方法變更 ROM 裡面的東西。
所以,凡是要安裝至 ROM 裡面的 OS 或韌體,皆稱為 ROM。中文名稱叫「固件」。
有時候,官方的 ROM 設計的可能不夠好。你可以刷其他人製作的 ROM 來獲得更強大的效能,或者更厲害的功能。
凡是原廠開發的 ROM,就叫做 StockROM。至於非官方開發的 ROM,就叫做 Custom ROM。
Custom ROM 通常是基於 AndroidOpen Source Project (AOSP) 開發的。
常見的 custom ROM 包括 CyanogenMod、MIUI、Paranoid Android 和 AOKP。
CyanogenMod 是最有名的非官方 ROM。幾乎所有裝置都能搭載官方/ 非官方 CM。
它強化原本的功能,並搭載了一些原本 Android OS 沒有的功能。
它主要講求性能和穩定性。
CyanogenMod 官網:http://www.cyanogenmod.org/
MIUI 是大陸小米科技研發出來的,主要針對中國大陸使用者的需求。內建多款中國大陸研發的程式。
它和基本的 Android OS 差別很大:搭載程式完全不同,風格也不同。
MIUI 在中國大陸非常受歡迎,小米手機本身也搭載MIUI。
MIUI 官網:http://www.miui.com/
Paranoid Android 講求強大的介面客製化,你可以客製化所有的應用程式。
它當然也講求穩定性。
Paranoid Android官網:http://www.paranoid-rom.com/
AOKP (Android Open Kang Project) 同樣也講求介面客製化。
當然它也講求性能和穩定性。
AOKP 官網:http://aokp.co/
3.2 Kernel 內核
內核是作業系統最基本的部分,主要負責管理系統資源。
當應用程式要硬體執行任何指令(沒錯,就是「任何」指令,包括調整螢幕光度、打電話…),它會寄一個請求給內核。也就是說,內核是硬體和軟體溝通的橋樑:一邊輸入,一邊輸出。
刷內核可以讓你調整對硬體的調校,包括超頻、降電伏…等來提升你裝置的效能。
不過玩得太過火可能會害你硬體壞掉喔。(詳情請洽 6.4 和 6.5)
另外,刷內核之前一定要確定它和你的 ROM 相容,不然裝置準備變磚吧。
3.3 Baseband 基帶
基帶是手機中的一塊電路,負責完成移動網絡中無線信號的解調、解擾、解擴和解碼工作,並將最終解碼完成的數字信號傳遞給上層處理系統進行處理。
刷基帶能提高信號的好壞。不同的基帶你可以把它想像成調頻收音機的不同波段。如果你覺得你信號不好,或者你手機網絡上網較慢的話,就可以用此方法解決。它還可解決通話雜音,通話迴聲,聽筒音量過小等問題。
3.4 MOD
MOD 其實就是把你的裝置修改。
它可以改手機軟體的一部分,包括改背景主題、修改通知列、port 整包系統程式…等。
MOD 通常是做成一個 zip 檔,然後用 recovery 刷進裝置裡。
第四章 電腦刷機工具
4.1 Android SDK
Android SDK是 Google 開發的一套工具,他可以開發應用程式和存取裝置內容。
這套件非常重要,因為 Android 開發幾乎少不了它。
下載 Android SDK:http://developer.android.com/sdk/index.html
4.2 Fastboot
Fastboot 是 Android SDK的一部分,主要是負責存取裝置的內容– 刷機和清理。
因為 fastboot mode 可以在 Android 執行之前開始(甚至不用 Android OS),所以它非常適合拿來刷機。事實上,這是用來刷 recovery image 最方便的方法。
Fastboot 也能拿來解鎖bootloader。(詳情請洽 1.2)
它是用命令提示字元發出指令。
要讓電腦能用 fastboot 控制裝置,必須先將手機進入 bootloader mode / fastboot mode。(按法請 Google)
常見的指令包括:
l Flash – 將裝置的某部分重新寫入其他的 binary image。
l Erase – 擦掉特定部分。
l Reboot – 重新開機。可以選開機至系統、recovery 或 bootloader 模式。
l Devices – 顯示所有連接到電腦的裝置。
用 fastboot 刷機之前,先確定你的主機能夠知道你的 fastboot binary 放在哪裡:
1. 到我的電腦,按右鍵,選內容。
2. 選 進階 > 環境變數
3. 到系統變數位置,找 Path,按它。
4. 將變數值改成你放 fastbootbinary 的(完整)位置。
通常 fastboot 刷機指令是 fastbootflash [位置] [xxxx.img]
***注意:請確保你的裝置電量有超過 80% 再開始執行以下動作!***
假設你要刷 recovery至你的手機:
1. 將手機用 USB 線連接至電腦。
2. 手機進入 bootloader mode/ fastboot mode。
3. 打開命令提示字元,打 fastbootdevices。
確定你能看見你的手機編號。
確定你能看見你的手機編號。
4. 輸入 fastboot flashrecovery “你的檔案名稱”.img
5. 完成!輸入 fastboot reboot重新開機。
如果你想確認的話,將手機重新開機至 recovery mode 確認一下。
如果你想刷 /boot,命令就打fastboot flash boot boot.img
如果是刷 /system,命令就打fastboot flash system system.img
4.3 Odin (Samsung 裝置專用)
Odin 有分成兩種:PC Odin 和 Mobile Odin。這裡主要介紹 PC Odin。
PC Odin 是專門設計給Samsung 裝置的。
它能夠拿來刷 .tar 或 .tar.md5 檔案。
(如果上面連結掛了…請上網自行查詢)
***注意:用 Odin 刷機會清理你的 /data!請自行考慮後再作決定!***
***注意:請確保你的裝置電量有超過 80% 再開始執行以下動作!***
要開始用 Odin 刷機之前,請先安裝Smasung USB 驅動程式。(下載位置同上)
並請確認你要刷的檔案是 .tar 或 .tar.md5。
開始:
1. 安裝驅動程式。
2. 開啟 Odin。
3. 關機,拔起電池,再插回去。將裝置進入download mode。
(進入 download mode:在插 USB 線時按著音量-。
或者音量- + 開機鍵 (有些手機要按 Home 鍵))
(進入 download mode:在插 USB 線時按著音量-。
或者音量- + 開機鍵 (有些手機要按 Home 鍵))
4. 將裝置用 USB 線連接電腦。Odin 會偵測到裝置。
5. 勾選 PDA。***注意只要勾選 PDA!不要勾選其他任何東西!***
6. 按 PDA 按鈕,選要刷的東西。
7. 勾選 PDA 和 F. Reset Time。如果你想裝置自動重新開機,勾選 AutoReboot。
8. 確定你只有勾選 PDA、F. Reset Time 和 Auto Reboot。
9. 確定你沒有勾選其他東西!
10. 再次確定!
11. 按 Start。等吧。
12. 黃色方格上面應該會秀出綠色方格,裡面寫著 Pass。
如果 Failed 別擔心,再來一次。或者拔掉電池狀態下刷機。
如果 Failed 別擔心,再來一次。或者拔掉電池狀態下刷機。
13. 成功!
14. 如果你的 ROM 不是 all-in-one 包裝,刷 ROM 附件的內核和 recovery。
刷完之後,你會發現開機畫面多了個邪惡金三角。用 Triangle Away 弄走它。
Triangle Away 會碰你的 bootloader,所以也有機會讓你裝置變磚!
盡量在原廠韌體情況下使用!
另外,Triangle Away 正常來講會將刷機次數歸零,不過也有失敗的時候。
4.4 Flashtool (Xperia 裝置專用)
Flashtool 是專門設計給 Xperia裝置的。
它能夠拿來刷 .ftf 檔案。(通常是拿來刷官方韌體)
***注意:用 Flashtool 刷機會清理你的 /data!請自行考慮後再作決定!***
***注意:請確保你的裝置電量有超過 80% 再開始執行以下動作!***
要開始用 Flashtool 刷機之前,請先安裝需要的驅動程式:
1. 打開 C:/flashtool/drivers,裡面有一個驅動程式安裝程式。
2. 安裝你的裝置配對的驅動程式、fastbootdriver 和 flashmode driver。
正式開始:
3. 將你要刷的檔案(確定是 .ftf)放進 C:/flashtool/firmware。
4. 開啟 Flashtool。
5. 點左上角的閃電圖案。
6. 選 Flashmode,按 OK。
7. 選要刷的韌體。
8. 右上角會有三個選項:wipe data,wipe cache, wipe apps log。
選 wipe data 會將手機的資料 (/data) 清理掉。通常是刷新 ROM 才要選。
其他兩個通常都是選著。
選 wipe data 會將手機的資料 (/data) 清理掉。通常是刷新 ROM 才要選。
其他兩個通常都是選著。
9. 關機,拔起電池再插回去(如果有電池的話)。將裝置進入 flashmode。
(進入flashmode:在插 USB 線時按著音量- / 返回鍵。)
(進入flashmode:在插 USB 線時按著音量- / 返回鍵。)
10. 一直按著音量- / 返回鍵,直到你的手機出現綠色 LED 燈,Flashtool 出現 Flashing xxxxx 後才放開。
11. 等吧。
12. 等到出現 Flashing finished. Please unplug and start your phone時,代表你已經刷機成功了!拔掉 USB 線,重新開機吧。
第五章 Recovery mode
5.1 Recovery mode 是甚麼?
Recovery mode 是裝置的工程模式。它主要是能夠在不開機進入系統的情況下存取裝置的資料。
通常原廠的 recovery mode 只能回復原廠設定、清理快取和刷 update.zip 而已。
後來開始有人修改原廠 recovery mode,讓它可以完整的存取裝置的資料:安裝放在 SD 卡裡面的 .zip 檔、清理系統某個部分…等,讓這模式變得非常好用。
因為用 recovery mode 刷機不用靠電腦和 USB 線,只要把刷機檔案放進 SD 卡裡面就行了,所以 recovery mode 刷機檔隨處可見,小至一個程式,大至一個ROM,通常都可以用 recovery mode 刷進裝置裡。
原廠的 ROM 功能通常很不完整,所以自然就會有人開發更好用的 recovery。
目前市面上最有名的非官方 recovery 就是 TWRP 和 CWM。
TWRP 2 (Team Win Recovery Project 2.x) 是個完全觸控版的 recovery。
CWM (ClockworkMod Recovery) 則是官方 recovery 加強版。
Team Win 官網:http://teamw.in/
ClockworkMod 官網:http://www.clockworkmod.com/
通常這兩種 recovery 的其中一種會在刷非官方內核 / ROM 時一起刷進裝置裡面。
5.2Recovery mode 導覽
進去非官方 recovery mode 的方法,請詢問 ROM / 內核的開發者。
先講 CWM Recovery 的介面導覽:
Reboot system now: 重新開機至系統。
Apply update from SD card: 刷 /mnt/sdcard/update.zip
Wipe data/factory reset: 將裝置還原成原廠狀態,也就是清理 /data、/cache 和 /sd-ext。
Wipe cache partition: 清理快取 (/cache)。
Install zip from SD card: 從 SD 卡裡面找 zip 來刷。
如果 zip 檔是放在外置 SD 卡,進去之後選 choose zip from external SD card。
如果 zip 檔是放在內置 SD 卡(或者裝置根本不能插外置 SD 卡),進去之後選 choose zip from SD card。
Backup and restore: 備份和還原 /boot、/system、/data、/cache 和 /sd-ext 到內置 SD 卡上。
裡面有分 restore 和 advanced restore:
restore 就全部還原,advancedrestore 則能自己選要還原的地方。
Mounts and storage: 這裡你最好少碰,因為亂按很容易讓你裝置變磚!
需要知道的只是進去之後的 mount USB storage 能讓你裝置的內置 SD 卡裡面的東西被電腦讀到。
Advanced: 這裡需要知道的有 wipedalvik cache、wipe battery stats 和 fix permission。
Dalvik cache 是給 java 虛擬機器暫時放快取的地方,主要是讓程式能夠跑得快一點。
如果清空它的話,能夠將一些不必要的快取殺掉。不過第一次開機會開很久。
Wipe battery stats 清理之前的電池紀錄,能夠讓電池計量變得更準一點。
Fix permission 能檢查和修改檔案的權限。
Install: 從 SD 卡裡面找 zip 檔來刷。
Wipe: 清理不同空間,包括 /cache、/data …等。這裡也能回復原廠設定。
(關於 dalvik cache 請參考 CWM 導覽的 Advanced 欄)
Backup: 備份 /boot、/system、/data、/cache 和 /sd-ext 到內置 SD 卡上。
Restore: 還原你之前的備份。
Mount: 還是那句話,最好少碰。
Settings: TWRP 的設定,包括 zip 檔簽名檢測、MD5 校驗等等。
Advanced: 裡面包括修復檔案權限(fix permission) 和修復 SD 卡。
Reboot: 重新開機。
5.3 用 recovery mode 刷機
這裡只是一個大概的步驟,刷不同的東西會有不同的要求。
請看清楚開發者的指示,並跟著做!
***注意:factory reset會清理你的 /data!請自行考慮後再作決定!***
***注意:請確保你的裝置電量有超過 80% 再開始執行以下動作!***
這裡用 CWM Recovery 做示範。TWRP 2 步驟都差不多。
1. 將要刷的 .zip 檔放進 SD 卡。
2. 重新開機至 recovery mode。
3. Backup & restore >backup(這是以防萬一,建議做這動作)
4. Wipe cache partition(視情況而定,通常刷所有東西都要做這選項。一切以開發者指示為準!)
5. Advanced > wipe dalvik cache(同上)
6. Wipe data/factory reset(通常刷 ROM 才要做這動作。一切以開發者指示為準!)
7. Apply zip from SD card > 選你要刷的 zip 檔
8. 選 Yes!
9. 等吧。
10. 搞定以後,選 advanced > fix permissions(這是為了避免檔案權限出現問題,可有可無。一切以開發者指示為準!)
11. Reboot system now. 祝你好運!
6.1 File permission 檔案權限
6.2 Busybox
6.3 Odex
6.4 Overclocking 超頻
6.5 Undervolting 降電伏
第六章 File permission, Busybox, Overclocking, etc.
(本章節是把所有之前沒有教過,但是很重要的 Android / 電腦進階知識全部寫出來。)
6.1 File permission 檔案權限
當你在檔案瀏覽器瀏覽時,你應該會發現檔案下面會有甚麼 ---rwxr-x 或 rwxr-xr-x 等字母。
有時候,當你要把某個東西搬到某個資料夾時,開發者會叫你改權限成 644 或 rw-r--r--。
你可能會好奇:那是甚麼東西?
在 Linux 伺服器裡面,所有檔案和資料夾都有它自己的權限,規定誰能夠對它做甚麼事情。
檔案的使用者被分為三類:Owner、Group 和 Others。
你可以對檔案做三類事情:
l Read – 讀取檔案 / 看到資料夾裡面的內容。
l Write – 編寫或更改檔案 / 新增或刪除資料夾裡面的檔案。
l Execute – 執行檔案 / 存取資料夾內的檔案。
下面的表格清楚列名了不同字母排列的意思:
d
|
r
|
w
|
x
|
r
|
w
|
x
|
r
|
w
|
x
|
Owner
|
Group
|
Others
| |||||||
Directory
|
Read
|
Write
|
Execute
|
Read
|
Write
|
Execute
|
Read
|
Write
|
Execute
|
這一串字母可以分成四部份:
第一部分的 d 顯示它是檔案還是資料夾(ditectory)。
第二部分是顯示 owner 對這檔案的權限,
第三部分是顯示 group 對這檔案的權限,
第二部分是顯示 others 對這檔案的權限。
舉幾個例子好了:
drwxr-xr-x 是指一個資料夾,它可以被owner 讀取、更改和存取,但是 group 和 others 只能讀取和存取它。
-rw-rw-rw- 是指一個檔案,它可以被所有人讀取和更改,但是不能被任何人執行。
-rw-r--r-- 是指一個檔案,它可以被owner 讀取和更改,但是 group 和 others 只能讀它。
當然,為了方便讀取,有些人會用數字來代表這些符號,像是「把檔案權限設成 644」。
第一個數字代表 owner 的權限,第二個數字代表 group 的權限,第三個數字代表 others 的權限。
下面的表格列明了每個數字代表的權限:
數字
|
Read (R)
|
Write (W)
|
Execute (X)
|
0
|
X
|
X
|
X
|
1
|
X
|
X
|
O
|
2
|
X
|
O
|
X
|
3
|
X
|
O
|
O
|
4
|
O
|
X
|
X
|
5
|
O
|
X
|
O
|
6
|
O
|
O
|
X
|
7
|
O
|
O
|
O
|
X = No; O = Yes
舉幾個例子:
777 就是 rwxrwxrwx
755 就是 rwxr-xr-x
644 就是 rw-r--r--
我要怎麼改變一個檔案的權限?
你所需要的是一個有 root 權限的檔案瀏覽器,像是 Root Explorer 或 ES 檔案瀏覽器。
假設你要把被開發者修改過的 phonesky.apk 從 SD 卡搬到 /system/app:
1. 把檔案搬到 /system
4. 把它搬到 /system/app
通常把檔案搬到它的位置之前,最好先把它搬到 /system 裡面更改權限,然後再放到目的地。
6.2 Busybox
BusyBox 是一個遵循GPL、以自由軟體形式發行的應用程式。
它可以在你裝置增加許多基於 Linux / Unix 的指令。
由於執行檔尺寸小、並使用 Linux內核,這使得它非常適合使用於嵌入式系統。
每個 root 過的 Android 裝置一定都要裝 Busybox,這樣才能讓一些程式運作。
通常 root 的時候,root 工具會自動幫你裝 Busybox。非官方 ROM / 內核也會自動安裝Busybox。
如果要管理 Busybox 的話,可以試試看Stephen (Stericson) 開發的 Busybox 管理程式。
6.3 Odex
Odex 是從 Android 程式 apk 裡面提取出來的文件。它是將程式裡面的 classes.dex 優化後拿出來成單獨一個 .odex 文件。
Odex 能加快程式運行速度和開機速度,因為它節省了開啟程式時把它提取出來的動作。通常原廠 ROM 都是 odex 化。
不過 odex 化的 ROM 在刷機時可能會出現問題,而且有點佔記憶體空間。所以就衍生出了 deodex 化的 ROM。通常非官方的 ROM 都是 deodex 化。
Odex 化的 ROM 和 deodex 化的 ROM 哪個比較好?
Odex 化的 ROM 最大的優點就是開機速度和開程式速度比較快(正常來講)。
不過同時也帶來幾個缺點:
佔記憶體空間算小事,最大問題是刷機限制多很多。
因為 odex 化的應用程式很難被修改。
所以,如果你是刷機魔人,那麼 deodex 化的 ROM 會比較適合你。
反之,如果你很少刷機,想要順暢,那麼 odex 化的 ROM 會比較適合你。
6.4 Overclocking 超頻
***注意:超頻/降頻涉及風險,操作不慎有可能讓裝置變硬磚!這可是救不回來的!***
超頻是把一個電子元件的時脈提升,超過開發商的預定速度,從而提升效能。
通常被超頻的配件是 CPU、GPU 和主機版。
超頻有分為硬體超頻和軟體超頻,Android 裝置以軟體超頻為主。
超頻雖然可以提升效能,但是同時也會增加耗電量,而且太危險的超頻可能會讓電子元件燒壞。超頻也有可能降低電子元件的壽命。所以通常新手都不建議去玩超頻。
通常非官方 kernel / ROM 都有超頻程式。
和超頻相反的就是降頻 (Underclocking)。
降頻是把一個電子元件的時脈調低,低過開發商的預定速度,從而省電和減少熱力。
通常被降頻的配件是 CPU 和主機版。
通常超頻程式同時具備超頻和降頻功能。
6.5 Undervolting 降電伏
***注意:降電伏涉及風險,操作不慎有可能讓裝置變硬磚!這可是救不回來的!***
降電伏和降頻相似,是把一個電子元件(通常是 CPU)的電伏降低,從而達到省電的效果。
通常超頻程式同時具備降電伏功能。
========================================================================
沒有留言:
張貼留言