近期突然想root安卓模擬器,因為更改開放的adb端口號,需要以su身份執(zhí)行。經(jīng)過一些試錯終于root了,特此記錄下來,希望可以幫到需要root模擬器的小伙伴。
-
需要的準(zhǔn)備:
SuperSU apk管理root授權(quán)
Recovery Flashable.zip,包含su文件
-
能以可寫方式運行的avd
注:如果可以翻墻你可以選擇從官網(wǎng)下載最新版本的1.2文件http://www.supersu.com/download
-
Root步驟
-
啟動模擬器
進入emulator目錄,使用命令行形式,以可寫形式啟動avd。
我的mac os的emulator路徑為:
/Users/mac02/Library/Android/sdk/emulator,里邊應(yīng)該有各個cpu架構(gòu)對應(yīng)的emulator命令。emulator -list-avds查看avd列表查看avd列表emulator -avd Nexus_5X_API_26 -writable-system啟動avd,在我的mac 64位電腦上如果虛擬機用的x86的img則啟動會失敗報下圖錯誤,把鏡像改成x86_64后成功啟動。x86鏡像啟動虛擬機報錯 -
安裝SuperSU
adb install /Users/mac02/Downloads/SuperSU-v2.79-20161205182033.apk安裝后打開提示su文件沒有安裝,也就是系統(tǒng)未root
系統(tǒng)未root提示?
-
將su文件放入系統(tǒng)
先以root方式運行adb
adb rootadb remount然后找到Recovery Flashable.zip解壓出來的對應(yīng)cpu架構(gòu)的su文件push進系統(tǒng)目錄
adb -e push /Users/mac02/Downloads/SuperSU-v2.79-201612051815/x64/su /system/bin/su -
修改su文件權(quán)限
adb shellsu rootcd /system/binchmod 06755 su -
安裝su并設(shè)置后臺駐留,注意是兩個橫線
su --installsu --daemon& -
關(guān)閉SE Linux
setenforce 0 -
打開SuperSu,提示已經(jīng)root
已經(jīng)root截圖有可能提示需要更新su,點擊繼續(xù)然后以常規(guī)方式更新su,更新完就可以使用終端模擬器使用su命令了。如果su不更新可能會無法使用su命令,表現(xiàn)是在終端模擬器輸入su無法切換到root。
-
Root之后的注意事項:
root后關(guān)閉模擬器之后,通過android studio的Android Virtual Device Manager會無法啟動模擬器,實測使用命令行可以正常啟動,且root權(quán)限依然存在。
emulator -avd Nexus_5X_API_26 -writable-system注意:此處說的關(guān)閉時只關(guān)閉窗口,不是只長按鎖屏鍵關(guān)機,長按鎖屏鍵關(guān)機,實測可以通過Android Virtual Device Manager啟動,但是會失去root權(quán)限,刷入的su文件也會不復(fù)存在,需要重新root。
關(guān)閉窗口而非長按關(guān)機?
參考資料:https://stackoverflow.com/questions/5095234/how-to-get-root-access-on-android-emulator




