關於 Andriod Device 刷機、改 ROM、Root 及解鎖的二三事

by 10月 31, 2014 7 意見                

這幾天因為同事的 Asus 變形平板 TF300T 時常出現 Tocuh Screen 異常,游標會無故自動飄移、莫名其他自動 Click 的狀況,在保固期內就已經送修數次,但原廠一直無法解決。

好不容易撐到了過保之後,轉而求助於我,在爬了許多文章、試了許多方法、不斷擔心真的變磚的狀況下,總算是功德圓滿,把第三方的韌體 (Firmware) 刷了進去,也一併搞定了 root。

由於每個設備的硬體規格及作業系統版本差異甚大,所以本文的重點不會在實際的操作步驟說明,而是把從頭到尾的處理過程中的重要觀念及關鍵步驟整理於下,讓各位在遇到類似情況時,可以有一定的邏輯及線索可以進行排除。


Android 採用 Apache License 2.0 授權條款,所有業者都可以輕易取得及修改、散佈,市場佔有率一直是遙遙領先 iOS,目前主要的智慧型行動裝置,也就是手機加平板,大約有 80% 左右都是 Android 的勢力範圍。

也因為這樣的自由開放,導致系統的碎片化超級嚴重,光以 Android 作業系統本身來說,市面上還在流通的版本就有 2.2.x Froyo、2.3.x Gingerbread、4.0.x Ice Cream Sandwich、4.1.x Jelly Bean、4.2.x Jelly Bean、4.3 Jelly Bean、4.4 KitKat,還有即將來到的 5.0 Lollipop。

除了作業系統之外,更別說硬體的差異了,就以品牌來說,光是一線大廠就有 HTC、Asus、Samsung、Sony ... 等,而各品牌的配備如 CPU、RAM、ROM、螢幕 .... 等,又有許多的不同。

所以在這次處理的過程中,踩了許多的地雷,爬了許多的文,也做了許多白工,接著我們依實作的順序來分述於下。

重要名詞

  • Bootloader
    開機管理程式是作業系統與硬體之間的橋樑,用來讓作業系統完成開機與管控硬體的流程,也可以進入工程模式,來執行系統還原程式或是其他功能。
  • Unlock
    行動裝置在使用的過程中,難免會遇到一些系統不穩或當機的問題,而廠商為了減少售後服務處理的時間,就會使用還原程式將乾淨的作業系統還原回來,這個方法是廠商的保命符,為了不讓系統還原功能故障或被惡意修改,就會把 Bootloader 鎖住,並且只保留有限的功能。

    但是在刷機的過程中,必須解除 Bootloader 的鎖定,更換其中的程式,把鎖定功能解除的步驟就叫「Unlock」。
  • Recovery & Fastboot
    透過 Bootlader 進入工程模式後,在行動設備上用來執行刷機的程式就是「Recovery」。

    而在電腦上使用傳輸線與行動設備連接,再從電腦將行動裝置的 Recovery 程式更換成 3rd Party 的程式,所用到的指令就是「Fastboot」。
  • ROM
    由於行動裝置並不是使用 硬碟 (HDD) 或 固態硬碟 (SSD) 來安裝系統,而是使用快閃記憶體 (Flash ROM) 將韌體 (Firmware) 儲存進去,所以我們通常將這些原廠或第三方打包好的 Android 作業系統檔案,簡稱之為 ROM。
  • 刷機
    利用 Recovery 程式,將 Firmware 寫入到 Flash ROM 的動作,就稱為「刷機」,簡單的說,就是重新安裝 Android 作業系統。
  • 變磚
    由於在刷機的過程之中,可能因為操作步驟的錯誤、Frimware 版本不對、系統版本不相容 ... 等等的狀況,導致行動裝置無法使用,就像一塊大磚頭一樣,這種狀況稱之為「變磚」。

    其中還分成「全磚」與「半磚」,「全磚」指的是行動裝置完全無法使用,根本開不了機,而「半磚」指的是可以進入系統,但有部份功能異常或無法正常啟動。
  • root
    在 unix 的世界,root 帳號就像是神一般的存在,擁有最高的權限,由於 Android 也是一種類 Unix (Unix Like) 的作業統,所以也繼承了同樣的特性,為了不讓使用者的誤動作造成系統的不穩定,所以在 Android 裡,root 帳號預設是無法使用的。

    而我們為了取得更大的權限,來進行系統的調教,這樣子的動作,在 Android 的世界,我們也直接簡稱作「root」。

事前準備


請特別注意,行動裝置在被解鎖了或是刷機之後,不管是不是還在保固期之內,廠商就會視為人為損壞而失去原廠的保固,甚至還有可能被拒絕付費維修。

首先,搞清楚自己為什麼要刷機或 root ?

系統運作不穩定? 原廠不提供新版的 Android 升級? 想要有一些特異功能? 想要支援特定的外接設備? 想要取得更大的自主權限? 單純想要試試刷機的成就感 ... ???

也請參閱 洪朝貴老師的文章 - 手機不該 Root/越獄/刷機的理由有很多; 但 「安全」 絕對不是其中之一

接著,
  1. 確認設備的正確型號,以這台 Asus 變形平板為例,有 TF100 系列、 TF300 系列、 TF500 系列、 TF700 系列,各系列還細分不同型號,如 TF300T、TF300TG、TF300TL、TF303CL、TF303K ....。
  2. 認真的爬文,看看網友是不是有回報災情,或其他特殊的狀況。
  3. 對 Unix-like 指令及系統架構有基本的概念,而且沒有得了「文字指令自動無視症候群」
  4. 對 Windows 的操作有一定水準的熟練度。
  5. 最好有第二台電腦及第二條傳輸線備用。
  6. 千萬不要在執行任何一個步驟的過程中,中斷電源、拔掉傳輸線、強制關機、重新開機、關閉視窗 .... 等行為。
  7. Recovery、ROM、Driver 都要事先下載完畢,而且盡量不要只有一種版本或版號。
  8. 確認相同型號的設備已經有成功的案例。
  9. 以及 ...

    備份、備份、備份 (很重要,所以要說三次),刷機會把行動設備裡的所有目錄/檔案都刪除,切記要把重要的資料複製下來。
最後,做好手上的行動設備隨時會可能變磚的心理準備 ......@@

將 Bootloader 解鎖


並不是每一家的設備都有鎖住,以我處理過的 Asus 及 HTC 的設備才有,所以 Asus 的設備需要 unlock,HTC 的設備需要 S-OFF,而且解鎖了之後,就沒有辦法再自行鎖回去。

以 Asus 為例,官網就直接提供 unlock 的程式下載。

這邊也可以看到 Asus 官方也有特別強調「強烈建議您在確實了解本服務的功能及相關規定之前,不要開啟本服務,以避免您的權益受到影響。」。

而 HTC 的設備可以參考 PSP 工具大百科 - HTCDev - HTC 多款手機官方解鎖教程 來解鎖。

不過,也有些人研究出來不須解鎖就可以刷機跟 root 的方式,如 Mobile01 - Sony Z2 4.4.2免解鎖ROOT 17.1.1.A.0.402直升,XPOSED附件!,所以這個步驟視機型而有所不同。


更換 Recovery 程式

原廠的還原程式通常被限制只能刷原廠的 firmware,而且功能也有限,所以我們必須更換成其他第三方 (3rd Party) 的還原程式,如:
而要更換 Recovery 程式,通常會透過電腦用傳輸線與行動設備連接,再使用 fastboot 指令將 recovery 寫到行動設備裡面。

但是要讓電腦認識行動設備,首先就是要搞定驅動程式,也就是 Android ADB driver,有下列幾種方法。
  • 安裝原廠提供的程式,以 Asus TF300T 為例,就是要安裝 Asus PC Sync 同步軟體,或是 Asus PAD PC Suite 工具套件,而 HTC 則是要安裝 HTC Sync Manager
  • 直接到 Android Developers 官網 下載,早期只要安裝 SDK 就可以了,後期的版本必須安裝整個 Eclipse ADT with the Android SDK,然後才能下載。
  • 等待善心人士把 driver 單獨抽出再放出來。
Android ADB Driver 裝好之後,別忘了還要到行動設備裡開啟這兩個選項。
  1. 進入「設定」裡的「安全性」,啟用「不明的安裝來源」。
  2. 進入「設定」裡的「開發人員選項」,啟用「開發人員選項」,再把「USB 偵錯」啟用。
    如果找不到「開發人員選項」,請進入「設定」裡的「關於手機」,連續點選 7 次「系統版本」,就會出現了。

Windows 的裝置管理員裡才會出現「ADB Interface」這個裝置。

否則只會出現「可攜式裝置」而已。


刷 ROM


怎麼找到適用的 ROM,有幾種方式。

而視行動設備的不同,ROM 檔可能需要儲存在不同的位置。
  • 內建的 SD 卡插槽
    這只對有卡槽的機型才有效,有些機型沒有內建卡槽而是用 ROM 切出一小部份的空間來模擬成 SD 卡。
  • 透過 USB OTG (On-The-Go) 線連接隨身碟或讀卡機
    這並不是每個機型都有支援,而且也不是每一個隨身碟/讀卡機都讀的到,最好事先測試一下行動設備、OTG 線、隨身碟/讀卡機之間的相容性。
  • 透過 USB 傳輸線連接電腦
    這個是 Android 4.2.2 後才有的方式,被稱為 sideload,同時也必須安裝支援此功能的 ADB Driver。
剩下的就只有依照每一種 Recovery 或指令的流程,一步一步的點選操作,把 ROM 檔寫進去而已。

再次提醒,
千萬別選錯 ROM 檔,型號、規格、事前需求、前置動作 ... 等等的關鍵再確認一次,接著就是跟老天祈禱千萬別變磚吧.....!!!


取得 root 權限


到底什麼是 root,引用 維基百科的說明:
「它使得用戶可以獲取Android作業系統的超級用戶許可權。root通常用於幫助用戶越過手機製造商的限制,使得用戶可以解除安裝手機製造商預裝在手機中某些應用程式,以及執行一些需要超級用戶許可權的應用程式。」

而 root 跟刷機是兩回事,並不是刷過機才能 root,也不是 root 後才能刷機。
以正確的流程來說,如果想要刷機,應該先刷好機再來 root,不想刷機的話,直接 root 就可以了。

取得 root 權限的步驟已經變得很簡單了,也就是所謂「一鍵 root」,如 UnlockRootRoot 大師framaroot ... 等程式。

只要確認手上的行動設備是被支援的,安裝好 root 程式,再依照它提示的步驟操作即可。

另外,我們以 Titanium Backup (鈦備份) 這支 app 來舉例。

一般的備份用 app,例如 Asus 內建的「App 備份」,看起來非常美好,能備份也能還原,雖然只能在 Asus 的設備上用,可是看到 Asus 官方論壇的討論帖,不能備份帳號更新 Android 版本後 app 備份就沒了備份檔的專屬格式 *.abu 讀不出來,那何必浪費時間備份呢 ???

而鈦備份可以完成的工作可多了,可以備份原廠系統與自行安裝的 app,更可以備份程式與系統的資料,例如: Line 的通話記錄、遊戲的進度、自訂鈴聲 ...,詳細請參閱 挨踢路人甲 - Titanium Backup 鈦備份

為了能讀取到被系統封鎖權限的目錄或檔案,這個時候就必須要 root 才能擁有足夠的權限進行存取。

不過,
root 也是一把雙面刃,因為它擁有神一般的權限,一但在操作時不小心殺掉或搬走了重要的系統檔案,那.... 行動設備也是會變磚的 !!!


異常處理


人有錯腳,馬有失蹄,粉鳥偶爾也會落翅 ...... XDDD

我們當然沒有辦法保證在操作的過程中,不會出現任何的風險,到底要怎麼減少出槌的機率,以及出槌之後應該要做什麼後續動作。

事前準備,不外乎認真的爬文,但是重點並不是爬很多文,而是找兩三篇你看的懂的文,搞清楚刷機或是 root 的步驟。

千萬不要東市買駿馬,西市買鞍韉,南市買轡頭,北市買長鞭,把自己當作食神在煮撒尿牛丸一樣,亂七八槽的湊在一起執行,搞到自己是照哪一篇文章的方式,執行到哪個步驟都搞不清楚。

如果有看不懂、不了解或不放心的步驟,寧可放棄不做,換一個方式或是換一個版本重新來過,因為這些動作全部都有順序及相依性的關聯,甚至有些步驟是做了就回不了頭的,例如: 解鎖!!!

接著,要所有可能會用到的 App、ROM、Recovery、Driver、文件,千萬不要放過,全部抓下來就對了,而且一定要依順序整理好,存到專屬的目錄裡分類,不要擔心太過佔用硬碟空間,就像書到用時方恨少,要找卻找不到的時候,那才叫欲哭無淚。

再來,備份、備份、備份,因為太重要,所以要再重覆三次。

硬體故障可以送修,頂多就是被視為人為損壞,花大錢修理或重新買過就算了,但是資料是回不來的。不管是單機遊戲的進度、出門旅遊的照片、公司業務的文件 ... 等等的檔案,再也不可能重來一次,一樣也是能備份的就全部備份吧,難保哪天還會再用到。

如果真的硬碟空間太小,那就快去買一顆 8T 的硬碟 或是 NAS 吧 !!!

開始刷機或 root 的動作之後,難免會出現一些不明的錯誤訊息,或是與教學文章不同的結果,這時候請趕快把關鍵字記下來,然後去求 google 大神指示,或許會有一些相同、類似的文章,小心的試著排除看看。

就算沒有錯誤訊息也不要太高興,很多時候是根本不會有提示,或是警告,甚至是一閃即過,連看都來不及看清楚,千萬要記得現在進行到哪個步驟,先前的步驟下了什麼指令,點了什麼選項,改了什麼參數,這些因素常常都是成功與失敗的關鍵!

也常常遇到什麼錯誤訊息都沒有,就是一直不成功,也搞不清楚到處是哪邊出錯,到底是操作步驟不對、硬體有問題、版本不合 ....,千千百百種的可能,只能不斷的 try and error !!!

最後終於成功了後,別忘了把整個操作過程記錄下來,不要相信自己的記性,保證沒多久一定忘記,例如說,你可還記得上禮拜三下午四點五十六分,你當時在做什麼 ....

不用記錄的鉅細彌遺,連畫面上出現了三千六百七十五個字都記下來,重點在於用了哪種方法、順序是什麼、檔案在哪裡、選項/參數選了什麼、有沒有錯誤訊息、參考資料在哪裡。

也常遇到「感覺」似乎成功了,用起來也正常,可是重新開機或是隔幾天之後,設備就罷工、變磚或是老是不正常,這時候,先前做過的所有記錄及備份就派的上用場了。


最後的最後,
這樣子的動作一定都會破壞原廠的保固,而被判定為人為損壞,或許有些操作方法還有機會可以還原,但是絕大部份通常都是回不去了。

你,真的想清楚了嗎???

參考資料


更新紀錄

  • 2014/10/31 撰文。

Heracles Jam,江湖人稱「海公公」

IT 技術家 - 創站部落客

一個常用 Windows、慣用 macOS、愛用 Linux 的 3C 阿宅
現職 MIS / 業界講師 / 資訊顧問 / 部落客

7 則留言 :

  1. 請問他的系統原來是Android 4.2.1嗎?,因為我的平板採用原廠Unlock程式無法解鎖

    回覆刪除
    回覆
    1. 不好意思,因為這個年代久遠,真的不可考了 ...... XDDD
      我只記得是 4.x 版,子版本號真的不確定。

      刪除
  2. dzzpapi@gmail.com2017/5/27 凌晨3:37

    已變了磚,又不能進機內改變USB設定、請問要怎麼做

    回覆刪除
    回覆
    1. 真抱歉,我手邊沒有機子能測,所以沒辦法研究 ...

      刪除
  3. 您好

    請教一下,不知道手機的型號牌子,內建的都是大陸的app,想要刷機,會有通用的rom可以刷嗎?還是一定要知道型號後找適用的rom?謝謝

    回覆刪除
    回覆
    1. 不太有可能有通用的rom,亂刷變磚的機會超級大.....

      刪除
  4. 各位師兄,因年代久遠,本人之泛泰手機 VEGA IM-A900S 因只有韓英文,想刷個系統,請問邊個好些,及在可處可找到適配的ROM,謝謝

    回覆刪除