PTT評價

Re: [心得] Zenfone 6 Magisk root & EdXposed教學

看板MobileComm標題Re: [心得] Zenfone 6 Magisk root & EdXposed教學作者
reachhard
(今天還是沒睡飽)
時間推噓17 推:18 噓:1 →:6

◎前言

這篇文算是舊文重寫,那為什麼要來騙P幣呢?

當然就是因為現在有人拿刀架在我脖子上逼我寫啊(誤

認真,主要原因如下:

1.舊文勘誤
2.前陣子有陸續收到來信問我問題
3.Google調整了SafetyNet的機制(03/2020)
4.XDA論壇大幅度改版,有些舊連結已經失效
5.關於一些模組的問題

基於以上原因,我決定重新寫一篇文修正原文錯誤的地方,
同時整理一下我知道的新資訊給各位參考,
所有我使用的東西連結都會一併整理在文末。

另外還是要提醒,解鎖手機bootloader會失去保固


◎正文

先簡單說明一下root以及安裝EdXposed的流程。

手機root:

1.解鎖bootloader。
2.安裝Magisk Manager
3.將原廠的boot.img替換成magisk_patched_XXXXX.img。
4.沒錯,其實就這麼簡單。

安裝EdXposed:
1.安裝Riru(Riru - Core)。
2.安裝EdXposed Manager。
3.安裝Riru - Edxposed。


手機root

一、前置作業

0.下載必要軟體與檔案

【注意事項】
在下載Firmware時請務必確定下載的版本與手機上已安裝的Android版本號相符。

Device Unlock App:
https://www.asus.com/tw/Phone/ZenFone-6-ZS630KL/HelpDesk_Download/

ZenFone 6 Firmware:
https://www.asus.com/tw/Phone/ZenFone-6-ZS630KL/HelpDesk_BIOS/

Python 3:
https://www.python.org/downloads/

payload dumper:
見下方說明。

Magisk Manager:
https://github.com/topjohnwu/Magisk/releases

Android SDK Platform Tools (Optional):
https://developer.android.com/studio/releases/platform-tools

ADB Installer (Optional):
https://tinyurl.com/yxq7a9fy

1.解鎖bootloader

【注意事項】
解鎖過程中會還原原廠設定,操作前請備份資料。
另外請在網路良好的環境下操作。

安裝下載的Device Unlock App到手機上並按照指示操作。
確認解鎖後手機會重新開機。

2.設定payload dumper

在電腦上安裝Python 3並加到使用者環境變數。

https://i.imgur.com/icOTa3L.jpg


安裝完成之後開啟:
本機 → 內容 → 進階系統設定 → 環境變數
檢查使用者環境變數中的path是否已經加入python 3。

https://i.imgur.com/6LLSFQJ.jpg


接下來設定要用來提取原廠boot.img的payload dumper。

關於這部分,我之前有收到私信表示操作過程中有出問題的,
但這個老實說我能幫忙的有限,
因為網路上教學百百種,每個設計這些方法的作者用的方式可能也不太一樣,
而且我自己也不懂python所以......
文末會再附上一些連結,如果以下的做法你行不通的話可以再試試別的方法。
這邊就列出我下載的檔案跟操作的方法:

payload_dumper.zip:
https://forum.xda-developers.com/attachments/payload_dumper-zip.4760222/

下載後解壓縮到你要的資料夾,之後在資料夾的路徑上開啟終端機。
不知道終端機怎麼開的同學,點進去payload_dumper的資料夾,找:
檔案總管右上方選單 → 檔案 → 開啟Windows Powershell

https://i.imgur.com/m8BhuPi.jpg


接下來依序輸入以下指令(藍色部分):

pip install virtualenv

virtualenv .py

pip install -r requirements.txt

https://i.imgur.com/PZOw5XN.jpg


完成後沒有發生錯誤的話看起來應該會像上圖那樣,如此一來就設定好環境了。

3.解開payload.bin提取boot.img

接下來解壓縮下載的Firmware,找到"payload.bin"這個檔案,
把檔案丟到payload_dumper的資料夾底下,然後再次開啟終端機。

https://i.imgur.com/gPP9amZ.jpg


輸入指令(藍色部分):

python payload_dumper.py payload.bin

接下來電腦就會開始把payload.bin解開,
並且把檔案寫入到"output"這個資料夾(路徑:payload_dumper\output)。
然後就可以取得要給Magisk 修補的boot.img。

https://i.imgur.com/CBjwK3l.jpg


二、製作並刷入magisk_patched_XXXXX.img

1.利用magisk修補boot.img

把剛剛解開得到的boot.img檔案放到手機內部儲存空間,
接著Magisk Manager安裝到手機上,然後打開Magisk Manager選擇安裝Magisk。

https://i.imgur.com/8ebhMru.png


Magisk提供4種安裝模式,關於這4種的差異可以參考github上的documentation。
這裡使用"選擇並修補檔案"的方法:
選擇boot.img,然後按"開始執行"讓Magisk開始進行修補。

https://i.imgur.com/jAH4ICb.png

https://i.imgur.com/8a2YdcN.png

修補完成後,Magisk Manager會提示修補後的檔案(magisk_patched_XXXXX.img)
已經寫入到手機裡的下載資料夾:

https://i.imgur.com/OIrSrWr.png


2.手機開啟USB Debugging:

設定 → 系統 → 關於手機 → 軟體資訊 → 版本號碼點7次開啟開發人員選項

https://i.imgur.com/LUtTWjI.png


設定 → 系統 → 開發人員選項 → 開啟 USB Debugging

https://i.imgur.com/HbyoGBZ.png


3.使用ADB指令刷入magisk_patched_XXXXX.img

在原本的文章有提到要下載ADB Installer來安裝ADB並加到環境變數,
但是後來累積了一點知識以後發現其實這不是必要的,
只要將Google的Android SDK Platform Tools跟Powershell搭配使用就能執行ADB指令。優點是方便,不用再特別安裝或是修改任何東西,甚至可以直接放在隨身碟裡面執行;
缺點則是任何操作都必須在Platform-Tools的路徑底下(因為沒有加到環境變數)。

這裡我直接使用Platform-Tools進行操作:

把下載下來的Android SDK Platform Tools解壓縮得到Platform-Tools這個資料夾。
這邊有一個小技巧,
除了用ADB指令把手機裡面的magisk_patched_XXXXX.img提取出來以外,
也可以把magisk_patched_XXXXX.img複製一份到Platform-Tools的資料夾底下,
讓Powershell直接存取這個目錄底下的magisk_patched_XXXXX.img,
另外可以把原廠boot.img也複製一份,這樣刷機時如果遇到bootloop或其他錯誤等等,
就能立刻再刷回原廠boot.img還原。

手機開啟USB Debugging後用傳輸線連接到電腦,
手機畫面會出現像是"是否允許在此電腦上使用USB Debugging"的對話框,
選擇允許。

接著在Platform-Tools這個目錄底下開啟Powershell,

https://i.imgur.com/D9D8Bfg.jpg


輸入指令(藍色部分):
(如果沒有安裝ADB並加入環境變數的話在指令前加上".\")

adb devices

這個指令可以確認手機連接至電腦

adb pull /sdcard/Download/magisk_patched_XXXXX.img

提取magisk_patched_XXXXX.img

adb reboot bootloader

fastboot flash boot magisk_patched_XXXXX.img

https://i.imgur.com/xCYl23E.jpg


手機重開機 root完畢~

https://i.imgur.com/ddefJbz.jpg


如果要使用Platform-Tools目錄底下的magisk_patched_XXXXX.img可以使用以下指令:

ls *.img

或者

dir *.img

這兩個指令可以列出所有現在的目錄底下的光碟映像檔(.img),
這樣可以檢查boot.img或magisk_patched_XXXXX.img有沒有放錯資料夾。

ii .

這個指令可以用檔案總管打開現在終端機所在的目錄,如果你真的找不到資料夾的話。

https://i.imgur.com/21szm7u.jpg



安裝Edxposed

【注意事項】
以下操作相對來說複雜且風險大,請操作時多加注意。

一、前置作業

0.下載必要檔案及軟體:

EdXposed Manager:
https://github.com/ElderDrivers/EdXposedManager/releases

或者可以使用Preview版EdXposed Manager,見下方說明。

EdXposed:
見下方說明。

1.安裝Riru(Riru - Core)

Riru,原名Riru - Core,是執行Riru模組必要的Magisk模組,
而EdXposed就是Riru的模組之一,也是在Android O以後,
Xposed Framework的替代方案/後繼者。
原本Xposed的作者rovo89已無再更新,Android O/P/Q/R若要使用Xposed模組,
就要改用EdXposed,這也是為什麼需要安裝Riru(Riru - Core)。

已經搞不清楚狀況的同學,簡單來說就是:
Magisk(root權限) → Riru(Magisk的模組) → EdXposed(Riru的模組) → Xposed模組

安裝Riru時需要注意以下幾點:
如果是Android 11(R)的話可以用v23以上版本;
Android 10(Q)、9(P)可以用v21.3或v23以上版本,
不同的Riru版本對應的EdXposed版本也不同(見下方說明)。
但是我發現,不管在Magisk Repo、Riru的GitHub Release page,或者網路上,
基本上已經找不太到v21.3所以......
(雖然GitHub上有source code可以自己build啦......)

安裝步驟如下:
在Magisk的Module Repo裡面搜尋Riru,點下載按紐並選擇"安裝",

https://i.imgur.com/Eddy2mL.png

https://i.imgur.com/gcxhSNW.png
https://i.imgur.com/SFnW4FI.png

安裝完畢後重新開機。

二、安裝並啟用EdXposed

1.安裝下載的Edxposed Manager。

2.下載符合自己使用的Riru版本的EdXposed

Edxposed可以到以下三個來源下載:

Magisk Repo:stable build
在Magisk的Module Repo裡面搜尋EdXposed並下載

GitHub Release Page:alpha & stable build
https://github.com/ElderDrivers/EdXposed/releases

Edxposed Manager:canary & alpha build
在EdXposed Manager的首頁內的canary與alpha分頁內下載

https://i.imgur.com/OaorP65.png

https://i.imgur.com/xQ8BsW2.png

Riru與EdXposed對應的版本號如下:

Riru(Riru - Core) v21.3:EdXposed v0.4.6.4 (stable)
Riru v23+:EdXposed v0.5.1.3+ (alpha & canary),建議使用v0.5.1.4 (alpha)

【注意事項】
若要使用canary版EdXposed,請改用新版EdXposed Manager(v4.6.0, Preview ver.):
https://github.com/ElderDrivers/EdXposedManager/issues/170

至於要選SandHook還是YAHFA?
在Github的Release Page上開發者有給出說明:

"YAHFA may cause random soft reboot. If there is any problem, please use
SandHook variant first."

3.安裝EdXposed

若是從Magisk Repo搜尋就直接在Magisk Manager內進行安裝;
若是從其他來源下載,請在Magisk Manager的模組分頁內選取"從本機安裝",
並選擇下載好的zip檔案。

https://i.imgur.com/knsrgIt.png

https://i.imgur.com/Qfi9Pdy.png

安裝完成後重新開機 大功告成~


OTA更新

上次發文我說更新前要先把原廠的boot.img還原再進行更新,
後來這其實是錯的,在這邊更正:
直接下載Firmware放到手機儲存空間進行更新即可,
更新過程中會自動刷入原廠的boot.img。

那更新其實非常簡單:

0.停用所有模組、開啟USB Debugging

停用模組其實不是非做不可,只是想要保險一點的話可以這樣做。

1.下載更新的Firmware

下載完之後重開機,手機就會偵測到有更新檔案,就可以直接進行更新了。

2.安裝更新

就是正常的OTA更新。

3.把下載的Firmware解壓縮,解開payload.bin取得boot.img

見上方"手機root"部分的說明。

4.刷入magisk_patched_XXXXX.img

見上方"手機root"部分的說明。

這樣就更新完畢了~


◎後記

最後來講一下關於SafetyNet的部分,在原本的文章有提到使用EdXposed還有一個好處,就是可以通過SafetyNet,但在2020年3月,Google改變了SafetyNet的運作方式,
詳細機制我就不多說明了,畢竟我只是個外行人,
有興趣的可以看Magisk作者topjohnwu的推文,這裡就列在下方給好奇寶寶:

https://twitter.com/topjohnwu/status/1245956080779198464
https://twitter.com/topjohnwu/status/1237830555523149824

不過我爬XDA發現好像有些人又可以通過了,我也不確定是為什麼,
疑似是Riru更新的緣故?有興趣的人自己爬文吧~

另版友steven7851有提到一些SafetyNet沒過的解法,這邊也一併列在下方:
https://github.com/kdrag0n/safetynet-fix
https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf


◎Source & References

ZenFone 6 (ASUS):
https://www.asus.com/tw/Phone/ZenFone-6-ZS630KL

Android Studio (Google):
https://developer.android.com/studio

ADB Installer (XDA):
https://tinyurl.com/yxq7a9fy (XDA Download Link)
https://tinyurl.com/y3gvbewp (XDA Thread)

Python:
https://www.python.org

payload dumping methods:
https://github.com/vm03/payload_dumper (GitHub)
https://github.com/vm03/update_payload_extractor (GitHub)
https://tinyurl.com/y2pz7mag (XDA Thread)
https://tinyurl.com/y34k3s64 (XDA Thread)

Magisk (GitHub):
https://github.com/topjohnwu/Magisk (Main Page)
https://topjohnwu.github.io/Magisk/install.html (Installation Instruction)
https://topjohnwu.github.io/Magisk/ (Full Documentaion)

Riru (GitHub):
https://github.com/RikkaApps/Riru

EdXposed:
https://github.com/ElderDrivers/EdXposed (GitHub)
https://github.com/ElderDrivers/EdXposedManager (GitHub)
https://tinyurl.com/y428ozeu (XDA Thread)

John Wu (Twitter):
https://twitter.com/topjohnwu

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.234.87.158 (臺灣)
PTT 網址
※ 編輯: reachhard (182.234.87.158 臺灣), 01/20/2021 18:38:02

chenlimath 01/20 18:37建議使用原廠系統,少解鎖刷機

我2019年就刷了 你現在提醒我我也不知道怎麼辦欸

※ 編輯: reachhard (182.234.87.158 臺灣), 01/20/2021 18:39:16

a23718408 01/20 18:42雖然用不到可是用心給推

※ 編輯: reachhard (182.234.87.158 臺灣), 01/20/2021 18:47:39

RonanXidi 01/20 18:58看到華碩就虛

看來2壞了

TPDC 01/20 18:58Zenfone 6給推

Lorinyui 01/20 19:11可以請問這樣後的好處是什麼嗎QQ

去廣告 利用鈦備份完整備份或轉移Line紀錄 刪除不要的原廠app 深度客製化 例如改變電池圖示 快速設定功能表之類的

ymx3xc 01/20 19:22樓上 會這樣問 表示你可以不用學這個沒差

※ 編輯: reachhard (182.234.87.158 臺灣), 01/20/2021 19:55:05

Lorinyui 01/20 20:10感謝原po回覆

c74319 01/20 20:40不用但還是感謝教學

aasssdddd 01/20 21:04感恩 覺得詳細

david10188 01/20 21:17感謝教學,手機要過保了可以來解鎖玩玩

pttgigo 01/20 21:38認真給推

※ 編輯: reachhard (182.234.87.158 臺灣), 01/20/2021 22:12:07

silver00 01/21 00:56

chickengod 01/21 03:22推好文

shunchao 01/21 06:49

kaoru7568 01/21 07:58好文推

chang82111 01/21 08:00教學用心推

arcdy9527 01/21 08:42推 簡潔明瞭

steven7851 01/21 09:34edxp canary需要配合新版管理器使用

steven7851 01/21 09:35http://bit.ly/3qBIxP8

steven7851 01/21 09:37SN沒過可安裝 Universal SafetyNet Fix

steven7851 01/21 09:38和 MagiskHide Props Config

steven7851 01/21 09:38http://bit.ly/3p3Sq7W

感恩 我一併整理在文章內給有需要的人

ArayaHellCat01/21 10:19 推詳細教學

※ 編輯: reachhard (218.166.228.14 臺灣), 01/22/2021 18:09:21

fancyrex 01/24 16:37