Android 系统权限之SuperSU 模拟器root

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

原材料

步骤

步骤一

将需要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

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值