使用Magisk獲取Android裝置root許可權
安裝Magisk獲取root許可權
- Magisk 與另一款名為 Xposed 的神器有著高度的相似性,部分群體當中甚至還存在著「Magisk 框架」這樣的說法。二者的工作機制都是「攔截」。
- Xposed 通過劫持 Android 系統的 zygote 程序來載入自定義功能,在應用執行之前就已經將我們需要的自定義內容強加在了系統程序當中。
- Magisk 通過掛載一個與系統檔案相隔離的檔案系統來載入自定義內容,為系統分割槽打開了一個通往平行世界的入口,所有改動在那個世界(Magisk 分割槽)裡發生,在必要的時候卻又可以被認為是(從系統分割槽的角度而言)沒有發生過。
- 在手機上安裝好MT管理器和MAGISK APP(
- 在電腦上下載FastBoot:https://mrzzoxo.lanzoui.com/iMbQkpf716j
-
下載手機對應的系統包https://developers.google.cn/android/images?h1=zh%3Dcn#crosshatch
- 我們獲得了 boot.img,並將它複製到了手機上。下面我們將用 Magisk App 修改這些映象。(說明:https://sspai.com/post/67932)
- 開啟Magisk 應用 > 安裝 > 選擇並修補一個檔案 > 選擇複製進去的 boot.img > 開始。等待滾動的命令列顯示 All Done。
修改好的boot.img會被放到下載目錄下,將他傳回電腦中,使用fastboot進行安裝。
在fastboot目錄中開啟命令列,使用命令安裝它。
## 手機重啟到 bootloader
adb reboot bootloader
## 如果 Ramdisk 為 yes
fastboot flash boot <修改後的 boot.img 路徑>
## 刷入完成後重啟
fastboot reboot
使用命令安裝時,提示等待裝置,使用命令列進入fastboot模式時可以直接進入,判斷為驅動問題。
- 在裝置管理器中查詢到pixel 3 XL裝置,確認驅動異常,搜尋驅動程式進行更新
- 獲取 Google USB 驅動程式https://developer.android.google.cn/studio/run/win-usb
- 驅動程式更新完成後,可正常獲取裝置
- 繼續輸入命令刷入img檔案,如下顯示錶示完成
- fastboot reboot重啟裝置,等待裝置重新啟動,即可完成安裝。
- adb shell連線到手機後,輸入su,手機上會提示已被授予超級使用者許可權,之後使用都是root許可權了。
- 常見問題,如果因為未知原因導致安裝失敗也不要怕,在步驟「獲取 boot.img」是我們保留了一份原來的映象,按照最後一步的,使用fastboot將原來的映象重新刷回去就能正常開機。
- 如果因為安裝了未知模組而翻車無法順利進入系統,請先冷靜下來:解決此類問題有一個萬能的命令adb wait-for-device shell magisk --remove-modules ,此條指令將會在手機啟動過程中生效。
安裝MagiskHide隱藏Magisk
由於Root之後的許可權問題,一些涉及版權、金融、通訊功能的程式會檢測系統是否root,通過彈出警告乃至直接退出,還可能會對使用者可獲取的內容做一些限制,可以嘗試使用 Magisk Hide 來針對這些 app 隱藏 Magisk 。
安裝Zygisk隱藏Magisk(2022年2月7日)
新的系統版本無法繼續使用老版本的Magisk,不得不使用alpha版或canary版的Magisk。新的Magisk版本(官方)中已經沒有了MagiskHide,現在又來了個Zygisk。
Zygisk是什麼?
說的都是廢話,細的我也不懂。就看下面幾條就完事了。
如果你使用Zygisk,那麼Riru就無法使用,這樣的話Lsposed也無法使用。不過Lsposed已經推出了Zygisk版本。
https://github.com/LSPosed/LSPosed/releases
Zygisk也能隱藏root,但是與MagiskHide的作用並不是相同的,把一個app新增到Zygisk排除列表中,這個app就檢測不到Magisk和root了,但也無法使用Zygisk模組了。
新增到Zygisk排除列表裡的app仍然能檢測到Zygisk,只是檢測不到Magisk和root。
https://www.bilibili.com/read/cv14287396
安裝MagiskHide Props Config模組實現全域性可調式
#使用magisk工具
adb shell //adb進入命令列模式
su //切換至超級使用者
magisk resetprop ro.debuggable 1 //設定debuggable
stop;start; //一定要通過該方式重啟
getprop ro.debuggable//檢視是否已經變為1了
在Android真機上除錯程式有一個前提,就是這個apk包必須有 debuggable=true 的屬性才行。而除了自己開發的apk能夠控制打包屬性之外,其他的程式發行之後顯然不會設這個值為 true 的(不然隨隨便便就能被Debug ,豈不是很沒安全感 )。
為了除錯這些第三方的apk,我們可以從整個手機系統入手,因為除了每個apk中的 debuggable 標誌以外,這個標誌還可以在系統中全域性指定,換句話說,只要把系統裡的 debuggable 值設為true,那麼不管apk的這個屬性是什麼值 都可以被除錯了。
https://www.cnblogs.com/codex/p/12250647.html
通過Magisk安裝xposed框架
在23.1。安裝完成後不要重啟,緊接著搜尋安裝Magisk中搜索到的最新版,無法安裝成功,只能去官網手動下載更新的版本最後安裝https://www.jianshu.com/p/7ab0895c7549
================================================================
刷機後安裝Magisk失敗
刷機後使用fastboot安裝Magisk修改後的boot.img,開機提示no command
可以刷回原boot.img,正常開機
- boot.img不能放在download資料夾下(修改後的boot.img檔案儲存目錄)