天天看點

mumu模拟器安裝xposed--如何在android模拟器上進行root

問題描述

  安裝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檔案,省略了一些步驟。