画星星高手

It nerver rains but it pours.

在Android模拟器里取得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.exe -avd [模拟器名字] -writable-system
以可写的方式运行模拟器,你应该在你的sdk目录下的tools文件目录下使用这句命令,因为在这下面才有emulator.exe程序


步骤四

将下载好的supersu.zip 文件解压,你能看到里面有很多文件夹中都包含su文件。我的模拟器模拟器是Androidx86,所以我在x86文件夹下找到su.pie文件,如果你的android版本是5.1和大于5.1版本的系统使用su.pie比su文件更合适,可以避免出现一些不必要的问题,接下来你需要如下操作

$ 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 二进制件(具体安装到什么地方我也不清楚,也许是安装到supersu.apk中吧? 我也不知道)同时将它设置为后台守护程序

$ su --install
$ su --daemon&

这一步的目的暂时我也没有仔细了解


步骤七

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

$ setenforce 0

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

注意

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

点赞

发表评论