近期突然想root安卓模擬器翘单,因為更改開放的adb端口號,需要以su身份執(zhí)行岭埠。經過一些試錯終于root了脆丁,特此記錄下來,希望可以幫到需要root模擬器的小伙伴。
-
需要的準備:
SuperSU apk管理root授權
Recovery Flashable.zip稚叹,包含su文件
-
能以可寫方式運行的avd
注:如果可以翻墻你可以選擇從官網下載最新版本的1.2文件http://www.supersu.com/download
-
Root步驟
-
啟動模擬器
進入emulator目錄焰薄,使用命令行形式,以可寫形式啟動avd扒袖。
我的mac os的emulator路徑為:
/Users/mac02/Library/Android/sdk/emulator
塞茅,里邊應該有各個cpu架構對應的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 root
adb remount
然后找到Recovery Flashable.zip解壓出來的對應cpu架構的su文件push進系統(tǒng)目錄
adb -e push /Users/mac02/Downloads/SuperSU-v2.79-201612051815/x64/su /system/bin/su
-
修改su文件權限
adb shell
su root
cd /system/bin
chmod 06755 su
-
安裝su并設置后臺駐留,注意是兩個橫線
su --install
su --daemon&
-
關閉SE Linux
setenforce 0
-
打開SuperSu,提示已經root
已經root截圖有可能提示需要更新su,點擊繼續(xù)然后以常規(guī)方式更新su鞭光,更新完就可以使用終端模擬器使用su命令了。如果su不更新可能會無法使用su命令泞遗,表現(xiàn)是在終端模擬器輸入su無法切換到root惰许。
-
Root之后的注意事項:
root后關閉模擬器之后,通過android studio的Android Virtual Device Manager會無法啟動模擬器刹孔,實測使用命令行可以正常啟動啡省,且root權限依然存在娜睛。
emulator -avd Nexus_5X_API_26 -writable-system
注意:此處說的關閉時只關閉窗口,不是只長按鎖屏鍵關機卦睹,長按鎖屏鍵關機畦戒,實測可以通過Android Virtual Device Manager啟動,但是會失去root權限结序,刷入的su文件也會不復存在障斋,需要重新root。
關閉窗口而非長按關機?
參考資料:https://stackoverflow.com/questions/5095234/how-to-get-root-access-on-android-emulator