摘要:
本文主要講解如何打造安卓測試機(jī),并刷機(jī)google原生系統(tǒng)、部署Magisk對測試機(jī)進(jìn)行root的常用方式;
并對一些常見問題進(jìn)行思路解答。
本文適合新手學(xué)習(xí),大佬請繞過
本次實(shí)驗(yàn)使用的設(shè)備及環(huán)境如下:
Nexus 5x 測試機(jī)一部(閑魚100-150即可購買一部)
鏡像下載的網(wǎng)站
https://developers.google.cn/android/images?hl=zh-cn#anglerTWRPRecoery https://developers.google.cn/android/images?hl=zh-cn#angler%20TWRP%20Recoery
刷機(jī)鏡像站
https://twrp.me/
Magisk下載
https://github.com/topjohnwu/Magisk/releases
Lsposed下載
https://github.com/LSPosed/LSPosed/releases
platform-tools工具下載
https://dl.google.com/android/repository/platform-tools_r34.0.4-windows.zip
首先說一下,為什么使用Nexus的設(shè)備,一個(gè)是成本低,一個(gè)是更適合做測試機(jī),解BL鎖不需要太麻煩,同時(shí)支持的各種原生鏡像的種類也比較多,刷機(jī)的方法也比較成熟
現(xiàn)在適合做測試機(jī)的設(shè)備其實(shí)很多,除了最優(yōu)選的Nexus、Pixel外,現(xiàn)在的一加、小米等驍龍處理器的設(shè)備都可以做測試機(jī),只不過渠道限制的比較多
而由于安卓7.0以上和以下,信任證書的問題,所以會(huì)有一些其他的操作,包括Xposed框架和Lsposed框架的選擇、信任證書的安裝方式、甚至是安裝不同版本的Magisk
這里面提到了Magisk 和 Lsposed;Lsposed框架是現(xiàn)在比較新的框架了,但是他似乎只支持安卓7.0以上的版本;而Magisk 并沒有這個(gè)限制,但是低于26.0的Magisk 版本會(huì)有很多好的插件用不了,比如說Shamiko 插件,更適合躲避root檢測,但是低于26.0的Magisk 是用不了的,同時(shí)26.0的Magisk 并不適合Recoery 強(qiáng)刷,雖然刷完了不對鏡像進(jìn)行修復(fù)也可以使用部分root功能,但是確實(shí)是存在一定的缺陷,所以大家在測試的時(shí)候都需要進(jìn)行避坑
0X01 - Bootloader 刷模式
首先第一步是如何進(jìn)入Bootloader模式:
此處以Nexus5x為例,大致有兩種方式
方式一:
手機(jī)能開機(jī),打開開發(fā)者模式,信任計(jì)算機(jī)后,利用ADB功能進(jìn)入bootloader;adb工具大家請根據(jù)platform-tools 工具下載即可,此處不演示添加環(huán)境變量的步驟,大家可以選擇添加,也可以選擇不添加
adb devices
出現(xiàn)這種情況不要慌,只需要信任計(jì)算機(jī)即可
執(zhí)行該命令是看看有沒有adb可連接的設(shè)備,如果后面顯示的是device那么就可以了,如果是offline,那么請執(zhí)行adb kill-server或重啟計(jì)算機(jī)、手機(jī);或使用方法二進(jìn)入bootloader
adb reboot bootloader
想要刷機(jī),首先第一步是需要確認(rèn)手機(jī)的BL鎖是解鎖的狀態(tài),由于不同的手機(jī)廠商對手機(jī)解鎖的方式不一樣,所以這里僅僅是展示Nexus 5x解鎖的樣子,如果不是這個(gè)樣子,那么請執(zhí)行
fastboot oem unlock
方式二:
按住手機(jī)電源鍵 + 音量下鍵,直至出現(xiàn)bootloader頁面松手即可進(jìn)入bootloader模式
接下來是第一個(gè)坑,進(jìn)入到bootloader模式后,fastboot devices識(shí)別不到設(shè)備,這個(gè)時(shí)候需要大家手動(dòng)更新計(jì)算機(jī)的驅(qū)動(dòng)
https://developer.android.com/studio/run/win-usb?hl=zh-cn)
電腦按win+x選擇設(shè)備管理器,右鍵選擇更新程序軟件,在彈出的對話框中選擇瀏覽計(jì)算機(jī)以查找驅(qū)動(dòng)程序的軟件,選擇瀏覽,然后選中下載的驅(qū)動(dòng)的文件夾(不用選的很具體,電腦會(huì)自動(dòng)搜索安裝,建議選arm、x86的上一個(gè)文件夾)
0x02 - 刷機(jī)鏡像選擇
這里推薦大家下載安卓8.1的OPM1.171019.011鏡像包
大家可以看到,筆者將第二個(gè)壓縮文件里的東西也給解壓出來了,一會(huì)這是第二個(gè)坑
常規(guī)來講,這個(gè)時(shí)候,大家執(zhí)行
fastboot devices
這個(gè)時(shí)候,只需要在解壓目錄下,執(zhí)行flash-all.bat ,而后等待刷機(jī)結(jié)束就可以了
這里的第二個(gè)坑,就是有的環(huán)境會(huì)報(bào)錯(cuò),bat腳本會(huì)無法執(zhí)行里面的fastboot -w update image-bullhead-opm1.171019.011.zip 命令,以至于系統(tǒng)找不到boot.img、system.img等包,所以需要我們手工的更改一下腳本
如果大家遇到了特殊情況,只需要把注釋的內(nèi)容覆蓋就可以了,記得將image-bullhead-opm1.171019.011.zip文件解壓到當(dāng)前目錄
fastboot flash android-info android-info.txt fastboot flash boot boot.img fastboot flash system system.img fastboot flash recovery recovery.img fastboot flash vendor vendor.img
0x03 - Magisk的部署
此時(shí)手機(jī)是可以正常開機(jī)的,大家記得打開開發(fā)者模式,而后重新信任計(jì)算機(jī)后即可使用adb進(jìn)行操作,大家需要自行下載magisk的apk安裝包進(jìn)行手工安裝
adb install magisk.apk
安裝成功后,會(huì)提示success,這個(gè)時(shí)候手機(jī)里會(huì)有magisk的圖標(biāo),大家打開magisk軟件,因?yàn)楣P者沒有留圖,所以大家湊合看一下
安裝成功后,會(huì)提示success,這個(gè)時(shí)候手機(jī)里會(huì)有magisk的圖標(biāo),大家打開magisk軟件,因?yàn)楣P者沒有留圖,所以大家湊合看一下
上圖是root成功的圖,正常的話zygisk是否的,大家需要點(diǎn)擊安裝按鈕,取消所有的選項(xiàng),然后選擇并修補(bǔ)一個(gè)文件? ?
修補(bǔ)的文件,其實(shí)就是鏡像包里的boot.img文件,大家需要將這個(gè)文件push到安卓手機(jī)能訪問到的目錄,然后選中,點(diǎn)擊修復(fù),待magisk修復(fù)成功后會(huì)在日志內(nèi)提示文件的位置,大家記住文件在什么地方,導(dǎo)出修復(fù)好的img包
adb pull /sdcard/Download/magisk_patched-24000_GXe4N.img
adb reboot bootloader fastboot flash boot magisk_patched-24000_GXe4N.img fastboot reboot
這個(gè)時(shí)候工作并沒有完成,當(dāng)手機(jī)重啟后,大家發(fā)現(xiàn),超級用戶功能可以使用,并且出現(xiàn)了卸載magisk功能的時(shí)候,這個(gè)時(shí)候說明magisk的root成功了
此時(shí)點(diǎn)擊首頁右上角設(shè)置按鈕
下滑至Magisk模塊,劃開Zygisk功能并重啟手機(jī),才算是真正的結(jié)束配置
這個(gè)時(shí)候第三個(gè)坑來了,很多手機(jī)都在這個(gè)時(shí)候起不來了,手機(jī)變磚頭了,卡在google開機(jī)頁面怎么也進(jìn)不去系統(tǒng),這個(gè)時(shí)候怎么辦?
按住手機(jī)電源鍵+音量下鍵,直至重新進(jìn)入到bootloader頁面,這個(gè)時(shí)候大家不需要重新點(diǎn)擊flash-all.bat 進(jìn)行系統(tǒng)重裝,僅僅需要執(zhí)行以下命令即可修復(fù)
fastboot flash boot boot.img
需要注意的是,boot.img就是你放進(jìn)手機(jī)里修復(fù)鏡像用的東西!這個(gè)時(shí)候不出意外都可以開機(jī)了,但是尷尬的就是root失效了
0x04 - TWRP進(jìn)行Recovery強(qiáng)刷root
TWRP大家最上面的地址,而后選擇nexus 5x機(jī)型,下載最新的twrp-3.7.0_9-0-bullhead.img 即可
?這個(gè)時(shí)候不要重啟手機(jī),讓手機(jī)保持在bootloader頁面,輸入以下命令
fastboot?flash?recovery?twrp-3.7.0_9-0-bullhead.im
等所有的都顯示ok之后,按手機(jī)音量下鍵,選擇Recover mode,然后按電源鍵即可進(jìn)入recovery修復(fù)模式
等待手機(jī)重新啟動(dòng)后,即可進(jìn)入twrp功能,這個(gè)時(shí)候計(jì)算機(jī)會(huì)自動(dòng)連接手機(jī)文件夾,大家可以將magisk apk安裝包復(fù)制到手機(jī)能訪問到的文件夾,然后利用twrp的 install功能安裝app,他會(huì)自動(dòng)刷root,這樣成功后重啟的手機(jī)即可正常開機(jī),不會(huì)卡在開機(jī)頁面進(jìn)不去了
0x05 - 系統(tǒng)根目錄證書的導(dǎo)入
上面提到,安卓7.0以上的系統(tǒng)默認(rèn)只進(jìn)行手機(jī)根目錄的證書,所以大家需要將burp的證書導(dǎo)到系統(tǒng)根目錄,但是這個(gè)時(shí)候的根目錄是只讀模式,需要我們重新掛載system目錄才行
附上burp證書修改的方式
openssl x509 -inform DER -in burp.der -out burp.pem openssl x509 -inform PEM -subject_hash_old -in burp.pem openssl x509 -inform DER -in burp.der -out 9a5ba575.0
常規(guī)操作是直接將證書導(dǎo)入到手機(jī)里
adb push 9a5ba575.0 /system/etc/security/cacerts/9a5ba575.0
但是竟然說有坑,這里是第四個(gè)坑
網(wǎng)上幾乎所有的解決方式都是:
adb root adb remount adb disable-verity adb root adb remount adb push 9a5ba575.0 /system/etc/security/cacerts/9a5ba575.0
很不好意思,adb root其實(shí)在這個(gè)系統(tǒng)里是成不了的,這里就是第5個(gè)坑
而幾乎網(wǎng)上所有的解決方式都是,下載超級adbd工具,給上root權(quán)限,下載最新版的adb工具,但是很不幸的是,實(shí)際上在安卓7以上這個(gè)方法就不靈了,這就是第6個(gè)坑
不要慌,這個(gè)時(shí)候依然可以解決,而這里依然有兩個(gè)解決方案,不推薦直接adb shell ; su ; chmod 777的方式解決問題,這么玩會(huì)把手機(jī)再次變磚頭,也不要chown 更改所屬
執(zhí)行
adb push 9a5ba575.0 adb shell "su -c 'mount -o remount,rw /system'
或者
adb push 9a5ba575.0 /sdcard/ adb shell su mount -o rw,remount -t auto /system cp /sdcard/9a5ba575.0 /system/etc/security/cacerts
這個(gè)時(shí)候就解決了證書的問題,大家也可以選擇安裝MT管理器APK,然后給這個(gè)工具root權(quán)限,就可以直接在工具里把證書導(dǎo)入到system目錄
編輯:黃飛
評論