問題描述
安裝xposed表示failed to access root權限,新版的mumu模拟器沒有了root選項,需要自己root。
1.先關掉應用相容性,然後重新開機
電腦一般都是x86的,mumu模拟器的本地指令其實都是這個格式的。可如下進行檢視
#連結模拟器
>adb connect 127.0.0.1:7555
* daemon not running; starting now at tcp:5037
* daemon started successfully
connected to 127.0.0.1:7555
#随便從模拟器系統路徑下取回一個指令檔案,這裡選擇mv指令
>adb pull /system/bin/mv c:\apk\mv
/system/bin/mv: 1 file pulled. 5.0 MB/s (415716 bytes in 0.079s)
#檢視其ELF Header,其Machine值是Intel 80386
>readelf -h c:\apk\mv
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2\'s complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: DYN (Shared object file)
Machine: Intel 80386
Version: 0x1
Entry point address: 0x6030
Start of program headers: 52 (bytes into file)
Start of section headers: 414556 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 9
Size of section headers: 40 (bytes)
Number of section headers: 29
Section header string table index: 28
相容性設定讓隻支援arm架構的應用也能安裝在模拟器上,但是裝xposed的過程裡将會往模拟器 /system/bin或/system/xbin裡複制一些新的指令,這些指令有些是通過XposedInstaller安裝的,而XposedInstaller是根據檢測出來的系統架構選擇相對的指令進行安裝的,打開相容性時XposedInstaller認為系統的架構是arm,這樣安裝的指令是不能在模拟器上執行的。
2.對模拟器進行root
mumu模拟器可用很多真機需要root才能用的指令,比如pull,但是其其實是沒root的。沒root其實就是沒有su指令,不能通過su獲得root權限,root其實是linux的一個使用者。這裡安裝supersu2.82.apk,安裝後打開顯示沒有su指令,這個應用其實是管理其它應用的,當其它應用需要root權限時跟它申請,它會跳出對話框讓你選擇是否同意。但現在supersu也沒有root權限,這是因為模拟器裡就沒有su這個指令。下載下傳supersu對應的Recovery Flashable.zip,這裡頭有各種架構下的su指令,目标就是選擇适合的su指令複制到模拟器可執行目錄下。具體做法如下
#選擇x86檔案夾下的su.pie複制到 /system/xbin/su
#經測試複制到/system/bin/su不行
#選擇su.pie是因為mumu模拟器是android 6.0屬于較高版本
>adb push c:\SuperSU-v2.82-201705271822\x86\su.pie /system/xbin/su
#修改su的權限為可執行檔案
>adb shell
>su root
>cd /system/xbin/su
>chmod 06755 su
#安裝些啥,照着做
>su --install
#打開守護程序
>su --daemon&
#Set SELinux to Permissive
>setenforce 0
這裡可重新開機下模拟器在打開supersu會下載下傳些檔案,之後就可用了。到此,模拟器算是root了。
3.用XposedInstaller安裝xposed
下載下傳XposedInstaller_3.1.5.apk安裝,傻瓜式安裝即可。期間supersu會彈出對話框選擇同意,别錯過對話框。裝好後最好重新開機下模拟器。
4.記得重新打開相容
主要參考
1.MuMu模拟器怎麼安裝Xposed架構
有點過時,新版的mumu模拟器沒有root選項了,需要自己root,這也是我遇到的真正問題。
2.Rooting the Android Emulator – on Android Studio 2.3 (Android 4.4+)
主要根據這個來,因為mumu模拟器可直接往/system/xbin目錄push檔案,省略了一些步驟。