其實這台平板買一陣子了,Android 5.0 (軟體版本 4.x) 的時候還可以透過 Intel bootloader 的漏洞輕鬆 root,但官方 Android 6.0 (軟體版本 5.x) 釋出後一直沒有提供官方解鎖,再加上我的認知是 Android 6.0 以後的版本如果沒有解鎖 bootloader 無法有效讓裝置永久 root,所以遲遲沒有升級平板的軟體。另一方面當時對解鎖 / root 這方面的經驗與技巧不多,嘗試一陣子找不到解決方案後也就放棄升級的念頭。

直到最近又想起這台沒有升級的平板,於是一方面在網路上搜尋是否已經有人找到方法,另一方面也拆解官網上的 ROM 進行研究。沒想到意外發現 bootloader 其實是有支援解鎖的功能,而且能否解鎖的關鍵 flag 還是存在 ro.frp.pst 指到的分區裡面 (相當傳統的最後一個 byte) 於是做了點小嘗試:

  1. 平板先刷到 V4.7.1.0,也就是 Android 5.0 的最後一版。(使用 ASUS Flashtool 1.0.0.45)

  2. 透過臨時的 cwm 取得 root shell (使用 T2 方法),利用 dd 指令將 /dev/block/by-name/persistent 的最後一個 byte 改為 1:(persistent 的大小為 1048576 bytes,所以 seek 要少 1)

echo -n -e “\x01” | dd of=/dev/block/by-name/persistent seek=1048575 bs=1 count=1

  1. 平板升級到 V5.4.3 或者 V5.5.1,進入 bootloader 確認是否可以解鎖:

fastboot flashing get_unlock_ability

如果出現 (bootloader) The device can be unlocked. 那麼恭喜,可以直接下指令解鎖:

fastboot flashing unlock

然後依照螢幕的指示使用音量鍵選 yes,然後等他清除資料。

  1. 重新開機後使用 MagiskManager 修補該軟體版本的 boot.img,抓回電腦平板開回 bootloader 後刷入,便可快樂使用 root 啦!

以上是簡化過後比較沒問題的步驟,事實上有幾個細節讓我撞牆一陣子..

  • 刷入最新版的軟體 V5.6.0 進行解鎖後會無法開機,平板啟動後便一直回到 bootloader 畫面。交叉比對得到的結論是:新版的 IFWI (v89.0058) 有問題 (或者是故意的) 在平板解鎖後會判定系統軟體損毀,除非鎖回去否則無法開機。而這個新版的 IFWI 是在 V5.5.7 版後導入,因此前面才提到只能刷 V5.4.3 與 V5.5.1 這兩個版本。
  • 解鎖與上鎖時會 erase userdata 但沒有 format,這也是另一個討厭的地方,此時如果使用 Magisk Manager 修補過後的 boot.img 會卡住 ASUS Logo 不能開機。 
  • 解鎖後的狀態只在 Android 6.0 有效,刷回 Android 5.0 並不能使用修改過的 boot.img 開機 (簽名不對無法刷入,就算強行刷入簽名不對也無法開機)
  • 真正的大魔王在於 Android 6.0 升級後 bootloader 除非解鎖否則無法刷入檔案,當然我們可以透過 raw 檔案降版到 Android 5.0,只是要製作成刷機工具包檔案會變得很大,而且步驟也較為麻煩。既然我們只要 Android 5.0 的 bootloader 寫入允許解鎖的 flag,而 raw 檔可以突破封鎖刷入肯定有後門,那的確值得開啟 USB Sniffer 研究一下,看有沒有機會精簡『破解』的步驟。於是我們得到一個神妙的指令:

fastboot getvar sofia_support

使用了這個指令之後就可以在不解鎖的前提下於 Android 6.0 的 bootloader 刷入必要檔案降級 Android 5.0 的 bootloader 囉。

這邊我製作了一個工具包:https://mega.nz/#F!F1FlzAoY!u6zR1Y14xvqoSbz-YQGFrw
另外記得把 mke2fs.exe, mke2fs.conf 與 libwinpthread-1.dll 丟到 files 資料夾下 (與 fastboot.exe 同一層) 才可以正常使用 fastboot format 指令喔。

解開後平板正常開機狀態下連接電腦,執行 Root.bat 就會開始解鎖與清除使用者資料,然後刷入 V5.6.0 的軟體與修補過的 boot.img,完成後請自行安裝 MagiskManager-v5.5.5.apk,便可快樂使用 root 啦。

Happy Hacking ! :-)

Comments

comments powered by Disqus