问题描述

  安装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文件,省略了一些步骤。

版权声明:本文为qq2523984508原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/qq2523984508/p/10381123.html