美文网首页Android技术Android串口调试
Android模拟器获取Root权限

Android模拟器获取Root权限

作者: 太白新星 | 来源:发表于2018-05-24 18:44 被阅读3245次

    近期突然想root安卓模拟器,因为更改开放的adb端口号,需要以su身份执行。经过一些试错终于root了,特此记录下来,希望可以帮到需要root模拟器的小伙伴。

    • 需要的准备:

    1. SuperSU apk管理root授权

    2. Recovery Flashable.zip,包含su文件

    3. 能以可写方式运行的avd

      注:如果可以翻墙你可以选择从官网下载最新版本的1.2文件http://www.supersu.com/download

    • Root步骤

    1. 启动模拟器

      进入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镜像启动虚拟机报错
    2. 安装SuperSU

      adb install /Users/mac02/Downloads/SuperSU-v2.79-20161205182033.apk

      安装后打开提示su文件没有安装,也就是系统未root

      系统未root提示

    3. 将su文件放入系统

      先以root方式运行adb

      adb root

      adb remount

      然后找到Recovery Flashable.zip解压出来的对应cpu架构的su文件push进系统目录

      adb -e push /Users/mac02/Downloads/SuperSU-v2.79-201612051815/x64/su /system/bin/su

    4. 修改su文件权限

      adb shell

      su root

      cd /system/bin

      chmod 06755 su

    5. 安装su并设置后台驻留,注意是两个横线

      su --install

      su --daemon&

    6. 关闭SE Linux

      setenforce 0

    7. 打开SuperSu,提示已经root
      已经root截图

      有可能提示需要更新su,点击继续然后以常规方式更新su,更新完就可以使用终端模拟器使用su命令了。如果su不更新可能会无法使用su命令,表现是在终端模拟器输入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

    相关文章

      网友评论

        本文标题:Android模拟器获取Root权限

        本文链接:https://www.haomeiwen.com/subject/ignsjftx.html