淺玩AVD(ROOT)
前言
如果你有相似情況或者需要root進(jìn)行開發(fā)那么這篇文章將非常適合你
最近沒得折騰,總是閑的慌
手里這臺(tái)iQOO z1的可玩性簡直太低了,玩頭不大,還有待開發(fā)
作為入坑不久且技術(shù)不佳的機(jī)友還是把握不住對(duì)安卓的熱情,于是乎把目標(biāo)轉(zhuǎn)向在電腦上玩安卓
好在雖然手機(jī)拉坤但電腦性能還行 (AMD Ryzen 9 7945HX)淺秀一下

于是前后嘗試了虛擬機(jī)運(yùn)行bliss os和prime os(沒記錯(cuò)的應(yīng)該是叫這個(gè))但最終都以無法正常引導(dǎo)而失敗,也嘗試了android x86但最高只有android9
對(duì)高版本癡迷沒辦法只能另尋他路
終于還是讓我發(fā)現(xiàn)了AVD(Android Virtual Device)
這玩意是android studio上面的一個(gè)設(shè)備仿真工具用于模擬真實(shí)手機(jī)環(huán)境........懂得都懂
更好的就在于分區(qū)(雖然只有三個(gè))系統(tǒng)目錄啥的十分接近真機(jī),支持x86_64和armv8a指令集
最最重要的是還原了在真機(jī)上折騰的過程,咱享受的是過程對(duì)吧
直接就好于大多數(shù)安卓模擬器
好家伙還有最新的安卓14好玩的這不就來了
我的android studio是hedgehog最新的canary版本,穩(wěn)定版maybe沒有安卓14吧

亂搞AVD除了我估計(jì)很少了吧
至于卡不卡,我覺得很流暢。這東西也是用qemu跑起來的,據(jù)相關(guān)資料說只要電腦開啟了Hyper-V那么這個(gè)就能自動(dòng)使用hyper-v進(jìn)行硬件加速,直接嘎嘎起飛
圖形速度gpu啥的沒測(cè)自行感受
折騰過程
創(chuàng)建AVD

選中進(jìn)入肉眼可見+號(hào),直接凎ta

我建議選PIxel Fold,機(jī)子的框框要大點(diǎn),雖然可以自定義,也可以在啟動(dòng)后自己拉

這還用說,直接咔咔下一步
但是還是說一下? ? 選鏡像選Google APIs的,其他有部分據(jù)說是user build沒adb root,后續(xù)root系統(tǒng)會(huì)需要
起初是沒有下載鏡像的,要從谷歌下,要準(zhǔn)備啥懂吧
點(diǎn)開show advanced settings,就可以自定義設(shè)備參數(shù)

圖中是我的設(shè)置,可以參考下[滑稽],第一次創(chuàng)建可能是灰色的,那么你只需要...一頓瞎jr亂點(diǎn) (bushi

回到這里選中圖上這個(gè)7.6 Foled....然后下一步show advanced settings發(fā)現(xiàn)可以編輯
再回去發(fā)現(xiàn)也變得可以編輯(我沒記錯(cuò)的話,如果不行還有skin什么的也點(diǎn)點(diǎn)試試)
cold boot
就是正常的加載鏡像啟動(dòng)
quick boot
則是通過一個(gè)類似快照的鏡像啟動(dòng)(每次關(guān)機(jī)會(huì)自動(dòng)創(chuàng)建這個(gè)快照)
為了修改系統(tǒng)在重啟后生效所以要冷啟動(dòng)
然后創(chuàng)建完成
AVD的默認(rèn)目錄在C:\Users\XXXXX\.android\avd
中
可以把那個(gè)文件夾移動(dòng)到別的地方
然后更改原目錄下的ini文件path=新目錄位置
直接開機(jī)凎凎凎
系統(tǒng)默認(rèn)英文需要中文自行更改
必要軟件自行安裝

root AVD
目前已知有以下幾種方式來root
1.Magisk ? ?已成功,放張圖

2.SuperSU ? ?似乎在老版本安卓才行,沒有嘗試
3.KernelSU ? ?正在探索中
開機(jī)uname一下好家伙6.1內(nèi)核,那KernelSU不就穩(wěn)了
目前KernelSU的release里面沒有6.x的內(nèi)核只能手動(dòng)編譯了[流汗滑稽]

先(后)說一下這玩意有dm鎖住system等分區(qū)并且bl是鎖住狀態(tài)(應(yīng)該或許maybe可以通過修改系統(tǒng)文件改為解鎖狀態(tài)),有adb root,但是adb remount啊disable-verity什么的就木用了
那就先寫寫Magisk
經(jīng)過我查閱資料終于在GitHub找到了一個(gè)項(xiàng)目
https://github.com/newbit1/rootAVD
能支持到最新的安卓14
直接
Windows終端下執(zhí)行
那么你很有可能看到

不管后面加什么運(yùn)行都是這樣,那么你需要設(shè)置ANDROID_HOME環(huán)境變量指向你的android SDK目錄
再順便把sdk下面的tools目錄和platform-tools目錄添加到PATH后面會(huì)用到
重新開一個(gè)終端,ok,成功檢測(cè)到ramdisk.img

因?yàn)闆]有boot分區(qū)所以是通過修補(bǔ)ramdisk.img來安裝magisk
又因?yàn)檫@是安卓14所以只能安裝>=26.x的版本
又又因?yàn)檫@是>=26.x版本所以只能用fakebootimg方式安裝
詳情請(qǐng)看github的README
但目前默認(rèn)的是25.2,則需要我們手動(dòng)下載一個(gè)最新版本目前26.1的
重命名為Magisk.zip替換掉rootAVD目錄下原來的zip
然后直接copy
回車(AVD開機(jī)狀態(tài)執(zhí)行)
其他選項(xiàng)閱讀README
下圖是重新修補(bǔ)所以顯示已安裝

它會(huì)自動(dòng)安裝magisk然后打開點(diǎn)擊安裝選擇文件修補(bǔ),在Download文件夾有個(gè)fakeboot.img選擇修補(bǔ)(注意這個(gè)命令回車后你只有60s操作修補(bǔ))


然后回到終端回車進(jìn)行下一步(或者等倒計(jì)時(shí)結(jié)束自動(dòng)前進(jìn))

命令結(jié)束等待一會(huì)兒avd會(huì)自動(dòng)關(guān)機(jī),然后手動(dòng)開機(jī),如果沒有自動(dòng)關(guān)則需手動(dòng)重啟
完事打開magisk發(fā)現(xiàn)沒檢測(cè)到安裝的su
這時(shí)直接
再
,手動(dòng)下拉通知欄點(diǎn)電源按鈕重啟
打開magisk彈出修復(fù)環(huán)境提示,成功檢測(cè)
如果重啟后magisk又檢測(cè)不到那就用項(xiàng)目github上給的Magisk Single User Mod來刪掉其他用戶而只保留user 0
說不定iqoo z1也可以這樣來讓普通應(yīng)用有權(quán)限執(zhí)行su嘞
Automotive Notes
After patching the ramdisk.img and cycle power, switch to user 0 via
adb shell am switch-user 0
open the Magisk App and the Requires Additional Setup pops up -> reboot AVD
switch again to user 0
open the Magisk App -> Settings -> Multiuser Mode -> User-Independent -> reboot AVD
Every time you want to Grant Su Permissions, switch to user 0 and then back to 10
adb shell am switch-user 10
Alternative, you can install the Module Magisk Single User Mod
and remove all user higher than 0 i.e.
adb shell pm remove-user 13
oradb shell pm remove-user 10
這是rootAVD README上的原文可以閱讀并嘗試
至此Magisk完成
emulator命令設(shè)置
如果每次都從android studio啟動(dòng)avd未免有點(diǎn)太麻煩了,導(dǎo)致強(qiáng)迫癥發(fā)作
這里直接用emulator命令就可以啟動(dòng)AVD更方便快捷(tools添加到PATH就這個(gè)作用)
? ?列出已創(chuàng)建的AVD列表

? ?啟動(dòng)avd(應(yīng)該是冷啟動(dòng)⑧,母雞)

其他命令自行探索
結(jié)束
emulator
命令支持-kernel
選項(xiàng)來啟動(dòng)自定義內(nèi)核,那使用KernelSU又多了幾分想象
內(nèi)核源碼可以在google官方的git倉庫中找到
https://android.googlesource.com/kernel/
替換內(nèi)核可以把AVD的system-images目錄下的../../../kernel-ranchu
換掉
或者直接用rootAVD的腳本
試編譯了一次黑屏。。。。。直接裂開
待會(huì)兒繼續(xù)編譯
好了,各位機(jī)佬可以盡情玩耍了
初步探索,有錯(cuò)誤請(qǐng)指正