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

看板MobileComm (行動通訊)作者 (今天還是沒睡飽)時間3年前 (2021/01/20 18:35), 3年前編輯推噓17(1816)
留言25則, 19人參與, 3年前最新討論串2/2 (看更多)
◎前言 這篇文算是舊文重寫,那為什麼要來騙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.cc), 來自: 182.234.87.158 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/MobileComm/M.1611138922.A.FA0.html ※ 編輯: reachhard (182.234.87.158 臺灣), 01/20/2021 18:38:02

01/20 18:37, 3年前 , 1F
建議使用原廠系統,少解鎖刷機
01/20 18:37, 1F
我2019年就刷了 你現在提醒我我也不知道怎麼辦欸 ※ 編輯: reachhard (182.234.87.158 臺灣), 01/20/2021 18:39:16

01/20 18:42, 3年前 , 2F
雖然用不到可是用心給推
01/20 18:42, 2F
※ 編輯: reachhard (182.234.87.158 臺灣), 01/20/2021 18:47:39

01/20 18:58, 3年前 , 3F
看到華碩就虛
01/20 18:58, 3F
看來2壞了

01/20 18:58, 3年前 , 4F
Zenfone 6給推
01/20 18:58, 4F

01/20 19:11, 3年前 , 5F
可以請問這樣後的好處是什麼嗎QQ
01/20 19:11, 5F
去廣告 利用鈦備份完整備份或轉移Line紀錄 刪除不要的原廠app 深度客製化 例如改變電池圖示 快速設定功能表之類的

01/20 19:22, 3年前 , 6F
樓上 會這樣問 表示你可以不用學這個沒差
01/20 19:22, 6F
※ 編輯: reachhard (182.234.87.158 臺灣), 01/20/2021 19:55:05

01/20 20:10, 3年前 , 7F
感謝原po回覆
01/20 20:10, 7F

01/20 20:40, 3年前 , 8F
不用但還是感謝教學
01/20 20:40, 8F

01/20 21:04, 3年前 , 9F
感恩 覺得詳細
01/20 21:04, 9F

01/20 21:17, 3年前 , 10F
感謝教學,手機要過保了可以來解鎖玩玩
01/20 21:17, 10F

01/20 21:38, 3年前 , 11F
認真給推
01/20 21:38, 11F
※ 編輯: reachhard (182.234.87.158 臺灣), 01/20/2021 22:12:07

01/21 00:56, 3年前 , 12F
01/21 00:56, 12F

01/21 03:22, 3年前 , 13F
推好文
01/21 03:22, 13F

01/21 06:49, 3年前 , 14F
01/21 06:49, 14F

01/21 07:58, 3年前 , 15F
好文推
01/21 07:58, 15F

01/21 08:00, 3年前 , 16F
教學用心推
01/21 08:00, 16F

01/21 08:42, 3年前 , 17F
推 簡潔明瞭
01/21 08:42, 17F

01/21 09:34, 3年前 , 18F
edxp canary需要配合新版管理器使用
01/21 09:34, 18F

01/21 09:35, 3年前 , 19F
01/21 09:35, 19F

01/21 09:37, 3年前 , 20F
SN沒過可安裝 Universal SafetyNet Fix
01/21 09:37, 20F

01/21 09:37, 3年前 , 21F

01/21 09:38, 3年前 , 22F
和 MagiskHide Props Config
01/21 09:38, 22F

01/21 09:38, 3年前 , 23F
01/21 09:38, 23F
感恩 我一併整理在文章內給有需要的人

01/21 10:19, 3年前 , 24F
推詳細教學
01/21 10:19, 24F
※ 編輯: reachhard (218.166.228.14 臺灣), 01/22/2021 18:09:21

01/24 16:37, 3年前 , 25F
01/24 16:37, 25F
文章代碼(AID): #1W20Tg-W (MobileComm)
文章代碼(AID): #1W20Tg-W (MobileComm)