android 开发过程中程序很多时候免不了需要对系统目录下的内容进行操作,虽然android的内核是linux系统,但是在linux中切换到root下的方式是sudo root,但是在的android中并没有提供我们su文件。
So我们要向需要root的系统中添加su文件,同时改变su二进制文件的权限。

原材料

  • android 模拟器
  • supersu.apk
  • supersu.zip

步骤

步骤一

将需要root的模拟器运行起来

或者直接使用第三步启动就行,不然第二步之后,你还得把模拟器关了

步骤二

在有 supersu.apk文件的目录处执行如下命令

$ adb -e install supersu.apk
将super.apk 安装到模拟器中,安装好后不要急着运行此App

步骤三

模拟器名称可以使用 emulator -list-avds查看

$ emulator.exe -avd [模拟器名字] -writable-system

以可写的方式运行模拟器,你应该在你的sdk目录下的tools文件目录下使用这句命令,因为在这下面才有emulator.exe程序
我就被这个坑了,其实你只要配置好了adb环境,不需要这么麻烦,直接emulator -avd {name} -writable-system就行了

步骤四

将下载好的supersu.zip 文件解压,你能看到里面有很多文件夹中都包含su文件。我的模拟器模拟器是Androidx86,所以我在x86文件夹下找到su.pie文件,如果你的android版本是5.1和大于5.1版本的系统使用su.pie比su文件更合适,可以避免出现一些不必要的问题
另外x86_64就是x64,不是x86
还有如果文件夹内没有su.pie,没必要一定找那个,su也可以的,只不过优先su.pie的意思

接下来你需要如下操作

$ adb root
$ adb remount
$ adb -e push C:\SuperSU-v2.79\x86\su.pie /system/xbin/su

在root状态下 adb remount 的意思是 重新挂载系统分区,使系统分区重新可写,一般情况下system下面的文件斯不允许只读的。通过push的方式将su.pie拷贝到/system/xbin/su文件中

注意:如果你android模拟器的系统版本小于5.1你需要使用的是su的二进制文件,而不是su.pie,使用如下命令:

$ adb -e push C:\SuperSU-v2.79\x86\su /system/xbin/su

步骤五

现在我们需要获得通过adb去修改模拟器中su二进制文件的权限

$ adb -e shell
$ su root
$ cd /system/xbin
$ chmod 06755 su

如果你发现通过ls -l 看到你的su文件的权限是rwsr_x_x了说明已经成功

步骤六

现在我们需要安装su 二进制件,同时将它设置为后台守护程序

$ su --install
$ su --daemon&

步骤七

设置SELinux的限制,主要是关闭SELinux,这个命令的具体执行位置没有具体的固定,但貌似在最后执行没有什么问题

$ setenforce 0

到这里,我的android模拟器似乎已经完成的root,重新打开android模拟器,点击运行supersu程序(也就是刚才安装到你android系统中的程序),打开和可能它会提示你更新,你可以直接忽略直接使用。然后你的系统就已经完成root了,可以做一些涉及到系统的操作了。

注意

1. 如果最后点击supersu App时提示的是找不到su文件说明,你的su文件可能是不匹配,或者是因为你在没有将su文件的设置进行完整就打开了supersu App。哈哈可以尝试一下卸载supersu App,重从头开始以上的几个步骤。

2.root后的模拟器,如果是AVD Manager创建的,可能会遇到无法使用AVD Manager再次启动,此时需要使用命令启动

$ emulator.exe -avd [模拟器名字] -writable-system

没错,和 第三步 一样的。然后就是如果你命令行关闭了。。。嗯,模拟器也就关了

参考链接:

https://www.jianshu.com/p/1d3bb2c897f3

https://blog.csdn.net/LuvSnow/article/details/79963025

 

更多相关文章

  1. Android* 4.1.1 (Jelly Bean) x86 模拟器系统映像
  2. 【Android】“存储”之普通文件存储(内部存储空间)
  3. Android JNI 使用的数据结构JNINativeMethod详解 ||建立Android
  4. 【Android 开发工具】模拟器中的战斗机Genymotion
  5. Android通过加载其他应用的Dex文件破解关键数据
  6. android中javah生成jni头文件报错问题
  7. 双击运行Android模拟器、创建SDcard、AVD、安装APK文件、上传文
  8. Android 文件操作心得体会
  9. 海康威视视频监控demo 源码+库文件

随机推荐

  1. Android,可以不再拷代码了吗?
  2. Android资源汇总贴
  3. Android技能树 — 数组,链表,散列表基础
  4. Android各控件常用属性
  5. android:gravity 和android:layout_gravit
  6. Android(安卓)路线
  7. Android(安卓)程序主菜单 布局
  8. android:gravity 和android:layout_gravit
  9. android:layout_weight详解 (总结版)
  10. android大牛高焕堂最新力作-android架构