小米6 解鎖、刷入第三方 TWRP Recovery、刷入 Magisk

鸚鵡原本用的小米5尊享版,開不了機也沒法充電了
上網爬到類似的情況都是進水造成居多,也有是Power IC掛點
送民間維修檢測後,確定主版掛點,就上官網搶了一隻黑色小米6

收到後當然就是開始弄成自己習慣用的狀態
鸚鵡現在沒啥時間搞刷機包了,也很久沒刷機了。
所以陸續遇到一些問題,就在這一併列出解決辦法

鸚鵡習慣刷機完後,會在 recovery 內進行一次備份保留,然後再測試還原
刷入 Magisk 也測試完成後,就開始準備備份與還原測試
還原後重新開機卻又馬上進去 recovery 界面,跑了幾行指令後又重開
然後~~ 我就看到MIUI初始化設定畫面!
試了幾次都一樣,甚至連相片、下載的檔案都一併被清空了

得知刷入 SuperSU不會造成還原失敗並清空資料
就想到測試不刷 Magisk 的備份與還原,結果一樣失敗並清空資料
來回測試了幾次後,判斷問題應該是「資料加密」造成的,最後測試結果也是如此

Cofface 版本中有「Disable Verify」的功能
執行結果有處理到分區加密的 patch,但實際上卻是沒有作用
因此要另外手動處理 boot.img,調整分區掛載的參數避免手機自動加密分區
也要對userdata分區完整格式化一次。所以操作前,記得將檔案完整備份到手機以外的地方

 

[[ 刷機前必備:解 Bootloader 鎖 或稱 解BL鎖 ]]

  1. 先申請解鎖權限:http://www.miui.com/unlock/index.html
  2. 下載 小米官方解鎖工具 v3.3.827.31 小米官方解鎖工具 v2.3.803.10
  3. 下載 國際開發版 卡刷包並儲存到手機 (鸚鵡使用 7.9.22 版)
  4. 設定 → 關於手機 → 最下方 系統更新 → 右上角功能 → 手動選擇安裝檔案
    確認更新重開機後就是開發版
  5. 設定 → 關於手機 → 連點「MIUI版本」可開啟「開發人員選項」
  6. 設定 → 更多設定 → 開發人員選項(或開發者選項)
  7. 按下「綁定帳號與裝置」開始將手機與小米帳號進行綁定
    如果使用穩定版進行綁定,會收到「86006 參數組合非法」這個錯誤訊息
  8. 手機關機後,按住「音量減」再按電源開機,即可進入 fastboot 模式
  9. 手機接上傳輸線連結到電腦,等驅動安裝好後
    開啟小米官方解鎖工具,依照畫面指示進行操作即可完整解鎖

 

[[ 避免自動加密 userdata 分區 ]]

確認要使用的卡刷包中的 boot.img 不會主動對 userdata 分區進行加密
官方的開發版或穩定版預設都會加密,以下列出取消自動加密的方法 (國際開發版 7.9.22)

下載工具:Cofface 釋出的 Windows 版 bootimg 工具  (補充載點)
將國際開發版卡刷包中的 boot.img 解壓縮出來,與 bootimg.exe 放在相同目錄
並執行下面的命令來解開 boot.img (範例都放在 D:\bootimg目錄裡面)

開啟 D:\bootimg\cpiolist.txt 檔案,搜尋「file verity_key 」並將開行刪除
找到 D:\bootimg\initrd\verity_key 檔案,並刪除
找到 D:\bootimg\initrd\fstab.qcom 檔案,使用文字編輯軟體開啟

在「/dev/block/bootdevice/by-name/userdata」這行後面的 fs_mgr_flags 中
可以看到「fileencryption=ice」這個參數,連同前面的「,」一起刪除
這個參數設定了系統對 userdata 分區做 File-Based Encryption(FBE: 以檔案為基礎的加密模式)
修改完後的範例

存檔離開後重新封裝 boot.img

這時候目錄中會剩下有兩個檔案:boot-old.img和 boot-new.img
將 boot-new.img 更名為 boot.img 並加入卡刷包取代原本的 boot.img 這樣就完成了
最後將整個卡刷包傳到手機中

 

[[ 刷入第三方 Recovery ]]

第三方 Recovery 有幾個選擇:TWRP(載點) 和 Cofface TWRP(載點1 載點2)
原本用的版本在最近的備份還原時,出了狀況沒辦法正確的還原
最後選擇使用的是 TWRP 官方版本:TWRP for sagit

同樣進入 fastboot模式,解開刷包都會內含 fastboot 工具和 recovery 的 img 檔案
使用命令刷入 第三方recovery

第一行:刷入第三方 Recovery
第二行:將第三方 Recovery 傳到手機端,直接用來開機

進入 Recovery 後,選 「安裝 / Install」並選擇剛剛修改過 boot.img 的卡刷包
安裝完成後回到首頁,選 「清除/Wipe」後點中下方的「格式化Data分區/Format Data」
出現警示畫面,輸入「yes」後確認格式化
完成後重新開機開始初始化設定,看到桌面後
設定 → 更多設定 → 系統安全 → 對手機進行加密 選項 不會顯示「已加密」
且在點進去後 畫面下方會有一個「對手機進行加密」的按鈕(不管能不能按)

完成到這邊,系統對 userdata 分區不加密
基本上在 recovery 的備份與還原功能都可以正常動作了

 

[[ 刷入 Magisk + Universal SafetyNet Fix ]]

下載: Magisk 14.0 (載點)、Universal SafetyNet Fix (載點)、Magisk Manager
將下載的三個檔案傳輸到手機中,重新進入 recovery 中
先安裝 Magisk-v14.0.zip,完成後重新開機進入系統
桌面應該會出現 Magisk Manager,如果沒有自行安裝 apk 檔案
再次進入 recovery 後再安裝 universal-safetynet-fix-v2-beta-5.zip,並重新開機

確認網路已連線
開啟 Magisk Manager 並在畫面上 「點擊啟動 SafetyNet 檢查」
兩個測試 ctsProfile和 basicIntegrity 應該都會是 true

以上就大功告成,也可以使用 Android Pay 了