我需要在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 权限。

使模拟器的系统分区可写

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

输入以下代码来完成此操作: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会询问您是否希望授予它权限。

要让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的图片:

如果在执行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及更高版本测试过。

参考文献

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

  1. Android 官方命令深入分析之android

    作者:宋志辉 android命令是一个非常重要的开发工具,它可以: 创建.删除和查看Android Virtual Devices(AVDs). 创建和更新android项目. 更新你的android ...

  2. linux怎么进入root文件,在Linux上打开具有Root访问权限的程序

    由于平台上的安全性,有时需要在Linux上打开具有root权限的程序,事实上,常规用户无法进行某些操作(例如管理Root文件夹中的文件,格式化硬盘驱动器或编辑系统文件等).有几种方法可以在Linux上 ...

  3. 谷歌的android官方刷机,谷歌 Android 7.0 ROM刷机包 for Nexus 6P 官方固件最新版

    ROM 介绍 在Android 7.0中,大多数的新改进都是比较小的,但是它们会对你使用Android手机的方式产生重大的影响. 这里仅介绍最为值得一试的Android 7.0新特性: 1.Andro ...

  4. Android 第三方库--2017年Android开源项目及库汇总

    转自:http://blog.csdn.net/jsonnan/article/details/62215287 东西有点多,但是资源绝对nice,自己都全部亲身体验过了,大家可放心使用 github ...

  5. Android 系统(252)---Android:BLE智能硬件开发详解

    Android:BLE智能硬件开发详解 目录 前言 BLE是个什么鬼 BLE中的角色分工 主要的关键词和概念  GATT(Generic Attribute Profile ) Characteris ...

  6. Android官方模拟器root,Android Studio 自带模拟器获取root权限

    准备工作 http://www.supersu.com/download 从这里下载SuperSU.apk和SuperSU-v2.82-201705271822.zip 我下载的是2.8.2版本. 一 ...

  7. 2022年Android官方模拟器安装Xposed教程+测试工具PatDroid安装教程

    碎碎念:截至笔者写此教程的2022.10.10,xposed官网貌似已经G了(?),网上有的教程已经过时,有的是针对奇怪的商用的Android模拟器的教程(以科研工作者的角度来说),在此环境下出一篇A ...

  8. android系统10.0模拟器,安卓9.0模拟器 V7.2.1 官方最新版

    安卓9.0模拟器电脑版是一款专门为9.0安装系统打造的模拟器.在这个模拟器里面兼容所有主流安卓应用,流畅不卡顿,支持1080P高清大屏.支持无线手柄和最齐全的键盘映射功能,让你在电脑上轻松玩游戏. [ ...

  9. pc上android模拟器,最好的Android模拟器在PC上玩Android游戏

    Android手机和平板电脑上有数百款真正有趣的游戏,其中许多游戏在键盘和鼠标上运行的效果和在触摸屏上运行的效果一样好.不过,它们中有太多只在移动设备上使用,而在PC上无法使用.值得庆幸的是,由于仿真 ...

  10. android 模拟来电广播,在Android模拟器上模拟来电

    最近项目要做一个控制来电显示的Android 应用 需要在Emulator上模拟来电 效果 方法如下: 1.单个电话 打开命令行cmd,输入telnet 回车. 然后输入 o localhost 55 ...

最新文章

  1. html实体编码遇上js代码
  2. Service-policy 的出入(QOS)
  3. u-boot Makefile完全解读
  4. pandas pivot 计算占比_数据分析Pandas 基础(二)
  5. 调查了6万多名开发者后,我们发现了这些...
  6. 基于asp.net + easyui框架,js实现上传图片之前判断图片格式,同时实现预览,兼容各种浏览器+下载...
  7. java两个return_关于java:调用另一个方法时return语句不起作用
  8. 磁盘阵列(RAID)-很详细的介绍
  9. 硬核!尽量避免 bug 手法,让测试彻底失业
  10. ccf小明种苹果(续)
  11. 信号与系统 chapter5 线性系统与非线性系统
  12. mysql清数据库并导入_mysql 数据库导入数据
  13. Office 2013 Excel 转换 Word
  14. 2019年数学建模国赛(国一)经历总结
  15. 机器学习模型的超参数优化用于分子性质预测
  16. cPanelWHM删除额外的IP地址问题
  17. 【电源专题】开关稳压器vs线性稳压器
  18. RestTemplate post提交方式的一些总结
  19. python批量整理地籍项目的文件夹
  20. Java之十三 Java多线程

热门文章

  1. 笔记 | PyTorch张量Tensor的一些必备操作
  2. LongAdder解析
  3. 如何查找Authorization object在哪些ABAP代码里使用到
  4. 《设计模式 系列》- 面向对象六大原则
  5. Linux下分区、格式化、自动挂载
  6. hdu 5945 Fxx and game
  7. 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率
  8. android混淆和反编译
  9. Yii学习笔记【2】
  10. platform平台工作原理