Android - Unlock & Root & Flash

如果有稍微研究過Android的朋友,應該會聽過「解鎖」,「Rooting」和「刷機」這三個名稱,泰勞在這邊簡單的介紹這些名詞。

Unlock:
一般會稱為解鎖,手機製造商通常會因為保固的問題,為了防止使用者隨意修改韌體或軟體內容導致毀損,而針對Bootloader「上鎖」,通常都需要依照廠商制定的一些步驟來解鎖,而且一般解鎖之後都會失去保固!!

解鎖之後可以進入Download模式,透過fastboot指令進行刷機或是進入Recovery模式進行root, wipe等等的活動,下圖是Nexus7的Recovery模式。

許多裝置,包括Nexus系列,為了保護個人隱私資料,會有一個機制,就是解鎖之後會自動將userdata和cache這兩個磁區格式化,為了避免一些駭客手法,所以特別提醒大家解鎖之前一定要先做好資料的備份。

Rooting:
取得超級使用者權限的過程,如果有使用過Linux的朋友應該對root不陌生,簡單的說,root擁有整個系統的最高權限,搭配的指令就是"su"。

下圖範例使用adb shell進入Android裝置,在根目錄底下的data資料夾只有root權限才可以查閱內容,所以在下su指令之前會出現"Permission denied"的錯誤訊息。

網路上有非常多關於root的方法,例如:一鍵root,root大師,甚至有免解鎖root!就我對Android的了解,免解鎖root有很高的機率是利用系統漏洞獲取最高權限,因為一般來說root或是刷機之前,都必須要先解鎖!因此個人是不建議使用那些工具,主要原因是這些工具沒有開放源始碼,不知道它在root的過程當中,到底做了哪些事!

Flash ROM:
中文翻譯就是所謂的「刷機」,刷機其實有點像電腦上的「重灌」,但不完全一樣,在Android裡你可以針對你想改變的磁區做刷機的動作。

下圖是從Google官網下載的AOSP,經過長時間編譯完成的內容。紅色為解鎖之後可以自行刷機的磁區,綠色我不確定可不可以刷(研究中)。

刷機的方法很簡單,第一個步驟就是先解鎖!然後透過USB連線,進入Download模式(就是bootloader裡的fastboot),再執行下列指令:

$ fastboot devices (先確認裝置有連線)
$ fastboot flash system system.img
$ fastboot flash userdata usardata.img

......依此類推,就可以完成刷機囉!

最後,各位冰友有沒有發現一件事!?刷機的步驟過程當中,不需要root?不要懷疑!你想刷機這件事情,確實不需要root權限!這是很重要的觀念,刷機的時候是在Download模式底下進行,還沒有開機進到真正的系統裡面,當然不需要什麼root權限囉!

總結:
Unlock,Rooting,Flash,是分開的三個動作,但是又有一些些的關聯,不管你是刷機還是root,都一定要先解鎖!除了特定廠商製作的刷機系統,例如:Samsung ODIN, Motorola SBF。所以說,刷機時手機本身不需要root!但是刷機是其中一種獲得root權限的方法!

#HTC
在HTC裝置上若解鎖(Unlock)僅能進入原廠提供的RUU模式刷指定版本的原生(Stock)Rom,若想刷進第三方Rom或是降版本刷原廠Rom,必須S-OFF(Security Off)!

本篇泰勞就介紹到這,文章內容皆是本人目前研究結果,歡迎大家多多指教,謝謝!

留言

這個網誌中的熱門文章

程式語言常用之符號與詞彙 - 中英文對照

什麼是 Bootloader?

Repo 實用指令