Android官方模拟器root,在Android模拟器上如何获得root权限?

本文详细介绍了多种在Android模拟器上获取root权限的方法,包括使用adb命令、安装SuperSu、修改系统分区权限等步骤,适用于不同版本的Android模拟器。教程还提供了在Linux和Windows环境下操作的指导,并提醒了注意事项,确保root权限的稳定和持久。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我需要在Android模拟器中获得root权限,从而使用'iptables'和'busybox'功能。

尝试安装了z4root应用程序,

但需要很长时间,且没有完成获取root就卡住了。有人说如果我们把系统降级到RC30以下,就可以获得root权限了。如果这是真的,那该怎么做呢?我使用Linux和Windows两种操作系统。

最佳解决办法

答案其实可以比较简单:)

$ > adb shell

generic_x86:/ $

generic_x86:/ $ exit

$ > adb root

restarting adbd as root

$ > adb shell

generic_x86:/ #

次佳解决办法

当模拟器运行时,执行以下命令列表,我在Android 2.2上测试了这个avd的解决方案:

adb shell mount -o rw,remount -t yaffs2 /dev/block/mtdblock03 /system

adb push su /system/xbin/su

adb shell chmod 06755 /system

adb shell chmod 06755 /system/xbin/su

每次启动模拟器时都需要运行这些命令。假定su二进制文件位于工作目录。可以在这里找到su和superuser:http://forum.xda-developers.com/showthread.php?t=682828。

第三种解决办法

如何获取Android模拟器的Root权限(在Android 7.1.1 /Nougat测试过)

要求:

说明

安装SuperSu.apk

首先安装SuperSu应用程序,只需拖放(如果运行最新的模拟器版本,或通过adb做sideload,即adb –e install supersu.apk)

安装完成后,运行时会显示如下所示的屏幕,显示“没有安装SU二进制文件..”。这个错误只是确认设备还没有 root 权限。

8348701122c1f50e3bbb1fe748e5bdad.png

使模拟器的系统分区可写

需要给模拟器写入系统文件的权限。

输入以下代码来完成此操作:emulator.exe âavd {emulator_name} âwritable-system

注意:先导航到安装了Android SDK的工具文件夹,然后按Shift并右键单击打开命令提示符。

导入su二进制文件到系统目录

解压flashable.zip(包含不同体系结构的su二进制文件)

重要!只能使用与avd体系结构(如x86,arm等)相匹配的su二进制文件,并记下您提取这些二进制文件的路径。

确保以root身份运行adb,并且需要remount。只需输入这些代码

adb root

adb remount

然后push su二进制文件:

使用的代码:adb -e push C:\Users\User1\Desktop\rootemu\x86\su.pie /system/bin/su

注意:在控制台找出bin或xbin:> adb shell,> ls /system/xbin/su

如果失败,请尝试将这个目录改为/system/xbin/su。另外运行Android 5.1及以下版本的模拟器,使用su而不是su.pie

更改su二进制文件的权限

接下来对su二进制的权限做一些修改。必须通过adb在模拟器中做到这一点:

adb –e shell

su root

cd /system/bin

chmod 06755 su

重要!!记下su二进制路径(比如,这里是/system/bin)

在su binary上设置install指令并设置daemon

输入代码:

su --install

并设置守护进程:

su --daemon&

重要!!注意间距

将SELinux设置为Permissive(即关闭SE Linux)

最后通过这个代码关闭selinux:

setenforce 0

打开SuperSU应用程序,它可能会要求更新二进制文件,您可以使用Normal方法。

注意:如果您遇到bootloops,请不要更新二进制文件,只需按照原样使用即可。

到这里差不多就可以了!

打开任何需要SU权限的应用程序,仔细检查确实SuperSU会询问您是否希望授予它权限。

8a46ef33c40e650e0e8f4e5833ebedc8.png

要让root持久更新su二进制文件(使用Normal方法),将system.img从临时目录(Users\AppData\Local\Temp\Android Emulator中复制,该文件通常是随机命名的,例如1359g.tmp具有较大的大小),并替换默认的system.img。

第四种办法

对于使用5.1.1和6.0的AVD:

set adb=adb -s emulator-5558

set arch=x64

set pie=

adb start-server

%adb% root

%adb% remount

rem %adb% shell mount -o remount,rw /system

%adb% shell setenforce 0

%adb% install common/Superuser.apk

%adb% push %arch%/su%pie% /system/bin/su

%adb% shell chmod 0755 /system/bin/su

%adb% push %arch%/su%pie% /system/xbin/su

%adb% shell chmod 0755 /system/xbin/su

%adb% shell su --install

%adb% shell "su --daemon&"

rem %adb% shell mount -o remount,ro /system

exit /b

需要SuperSU的UPDATE.zip,解压到任何文件夹。用上面的内容创建bat文件。不要忘记指定必要的架构和设备:set adb=adb -s emulator-5558和set arch=x64。如果运行的Android大于或等于5.0,请将set pie=更改为set pie=.pie。运行,获得当前运行的临时根目录。

如果在重新安装系统分区时出现错误,则需要从命令行启动AVD。请参阅下面的Android 7的第一步。

如果想让它持久化 - 在SuperSU中更新二进制文件,并将临时文件夹中的system.img文件保存为默认的system.img文件。

如何将生成的临时根目录转换为永久的?

首先是SuperSu。它提供了一个二进制升级。以正常方式更新,不要Reboot。

其次 - 只与模拟器相关。相同的AVD。底线是系统映像中的更改不会被保存。需要自己保持。

对于不同的模拟器已经有不同的说明。

对于AVD,可以尝试找到一个临时文件system.img,将其保存在某处并在启动模拟器时使用。

在Windows中,它位于%LOCALAPPDATA%\Temp\AndroidEmulator中,并且有一个类似TMP4980.tmp的名称。

将其复制到文件夹avd设备(%HOMEPATH%\.android\avd\%AVD_NAME%.avd\),并重命名为system.img。

对于android 7,需要运行其他步骤:1.需要手动运行模拟器。转到sdk文件夹sdk\tools\lib64\qt\lib。从这个文件夹模拟器运行选项-writable-system -selinux disabled,如下:

F:\android\sdk\tools\lib64\qt\lib>F:\android\sdk\tools\emulator.exe -avd 7.0_x86 -verbose -writable-system -selinux disabled

需要从根目录重新启动adbd:adb -s emulator-5554 root

重新安装系统:

adb -s emulator-5554 remount

每次运行模拟器只能使用一次。而任何另一个remount可以破坏写入模式。因此,不需要运行任何其他重新mount的命令,如mount -o remount,rw /system。

另一个步骤保持不变 - 上传二进制文件,运行二进制文件等等。

来自AVD Android 7 x86的图片:

fa8d2ef9fd457a2dff4256a872793998.png

如果在执行su二进制文件时看到关于PIE的错误,那么可能是上传到仿真器二进制文件有误。必须在归档文件中上传名为su.pie的二进制文件,但在仿真器上必须命名为su,而不是su.pie。

第五种办法

最简单的方法是为命令sh创建一个别名,例如

adb shell

mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system

cd /system/bin

cat sh > su && chmod 4775 su

在Android模拟器3.0及更高版本测试过。

参考文献

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值