对Android的模拟器,如果要修改其system分区里的文件,除了remount之外,还需要对数据进行持久化——因为默认情况下emulator会以只读的形式加载system.img,即便remount之后对其进行的修改也不会实际被保存下来。

网络上提到多种解决这一持久化问题的方案。例如[1],将/system拷贝至清空后的/data分区,然后将相应的userdata-qemu.img改名为system.img;以及[2],对live的/system,通过yaffs工具将其dump为一个镜像文件。这些方法都比较复杂,下面介绍一种简单的方法,来自[3]。

1. 创建一个AVD,在这个例子里,我们用Android 4.2.2,命名为root。

2. 将SDK下这个系统的system.img文件拷贝至AVD的目录下一份,例如,在这里:

$ cp adt-bundle-mac/sdk/system-images/android-17/armeabi-v7a/system.img ~/.android/avd/root.avd/

3. 手工指定挂载参数地启动它:

$ emulator -avd root -qemu -nand system,size=0x1f400000,file=~/.android/avd/root.avd/system.img

其中,0x1f400000是指给/system分区500MB的空间。

4. 系统启动后,adb remount一下,然后通过adb mount可以看到system分区已经变为rw了。

5. 现在可以对/system分区做希望的修改了。

6. 修改完成后,关掉模拟器。之后正常启动即可:

$ emulator -avd root

之后如果再要对system做修改,重复第3-6步即可。

嗯,从AVD的名字大家已经可以看出来了,我是想在里面加个root。方法是:

1. 下载Chainfire的SuperSU的UPDATE zip包[4],并解压缩。

2. 在上述第5步,执行以下命令:

$ adb push arm/su /system/xbin/

$ adb chmod 06755 /system

$ adb chmod 06755 /system/xbin/su

$ adb install common/Superuser.apk

3. 在模拟器里,进入SuperSu,会提示更新二进制文件,选择常规方法即可。

参考链接

android 模拟器su,修改Android模拟器的system分区,以及加入SuperSU相关推荐

  1. adb如何连接mumu模拟器并修改Android ID

    adb工具下载安装 https://dl.google.com/android/repository/platform-tools-latest-windows.zip 参考:https://blog ...

  2. virtualbox android分辨率,VirtualBox 修改Android x86虚拟机的分辨率

    VirtualBox 修改Android x86虚拟机的分辨率 首先说明一下,本人使用的是Windows下的VirtualBox,android x86使用的是9.0-r2版本一.查看virtualb ...

  3. 【Android 逆向】修改 Android 系统文件 ( ro 只读文件系统 | 系统文件格式 | rootfs | tmpfs | devpts | sysfs |proc | /system )

    文章目录 一.只读文件系统 二.系统文件格式 一.只读文件系统 在 adb shell 命令行中 , 执行 mount 命令 , 会展示 Android 系统中所有的存储分区的权限 ; 在分区后面的括 ...

  4. 【Android 逆向】修改 Android 系统文件 ( Android 逆向中需要经常修改的文件和目录 | 在 root 后的设备中获取 / 目录的 rw 权限后注意事项 )

    文章目录 一.Android 逆向中需要经常修改的文件和目录 二.在 root 后的设备中获取 / 目录的 rw 权限后注意事项 1.不要随意执行 wipe 命令 2.不要随意执行 rm 命令 一.A ...

  5. Android 命令su,获取Android的ROOT权限其实很简单,只要在Runtime下执行命令su就可以了。复制代码 代码如下:// 获取ROOT权限public void...

    获取Android的ROOT权限其实很简单,只要在Runtime下执行命令"su"就可以了. // 获取ROOT权限 public void get_root(){ if (is_ ...

  6. android开机动画修改,Android系统 开机动画修改 + 自动替换脚本

    1.准备 多帧图片PNG-24格式 adb 环境 2.bootanimation 开机包制作 1 在 Widows 环境中建立文件夹:bootanimation 2 在bootanimation文件夹 ...

  7. android.os.build修改,Android的os.BuildID对应的SDK版本号以及SDK版本号与APILevel对应关系.docx...

    Android的os.BuildID对应的SDK版本号以及SDK版本号与APILevel对应关系 Android 的os.Build_ID 对应的SDK版本号以及 SDK版本号与API Level对应 ...

  8. android 电池容量修改,Android 使用adb查看和修改电池信息

    1.获取电池信息 $ adb shell dumpsys battery $ adb shell dumpsys battery Current Battery Service state: AC p ...

  9. android span字体修改,Android TextView使用SpannableString设置复合文本的方法详解

    本文实例讲述了Android TextView使用SpannableString设置复合文本的方法.分享给大家供大家参考,具体如下: TextView通常用来显示普通文本,但是有时候需要对其中某些文本 ...

  10. 【Android 逆向】修改 Android 的 apk 安装包内的文件并重新打包 ( apktool_2.6.0.jar 下载和使用 | zipalign 文件对齐 | apksigner 签名 )

    文章目录 一.apktool_2.6.0.jar 下载和使用 二.使用 zipalign 工具进行对齐操作 三.使用 apksigner 工具进行签名 四.完整命令行输出 一.apktool_2.6. ...

最新文章

  1. 词袋模型(bag of words)构建并使用主题模型(topic models)特征进行文本聚类分析(clustering analysis)实战
  2. 正则不等于一个字符串_更正一个观念:“积食”不等于“吃多了”
  3. 【杂谈】模型设计书看完了感觉不过瘾?这些拓展模型相关内容值得你关注一下...
  4. 《系统集成项目管理工程师》必背100个知识点-29范围说明书的内容
  5. 第二章 个体软件过程
  6. Node.js基础知识普及
  7. Python打包分发工具setuptools简介
  8. Copy修饰的NSArray
  9. P6775-[NOI2020]制作菜品【贪心,dp】
  10. Linux网络参数设置
  11. 1682: [Usaco2005 Mar]Out of Hay 干草危机
  12. Spark高级操作之json复杂和嵌套数据结构的操作
  13. MySQL Batch 与 Transaction
  14. 图像处理总结:Canny边缘检测(二)
  15. 编译opencv错误解决:libavcodec.a(hevc_cabac.o): `ff_h264_cabac_tables' can not be used
  16. Win10问题篇:解决电脑插入耳机没声音。
  17. 七周成为数据分析师 第一周:数据分析思维
  18. 数据库中的二维表—巧借Excel
  19. 《快速掌握QML》第六章 动画
  20. 西湖论剑2021 MISC部分(LSB,取证)

热门文章

  1. php 5.0入门系列教程 pdf,thinkphp5.0基础视频教程
  2. 爬虫第3课 -豆瓣TOP250电影爬取
  3. 使用jupyter做数据分析与挖掘
  4. 金山毒霸修复dns服务器,DNS被劫持或提示配置错误,该怎么解决
  5. SHAP:解释模型预测的通用方法
  6. java毕业设计学生社团管理与评价系统Mybatis+系统+数据库+调试部署
  7. bomb和mysql_Bigger Bomb
  8. implode 与 explode 区别
  9. vue组件开发之仿CSDN发布博客时面包屑标签和checkbox选中效果
  10. Android-资深架构师的成长之路(技术详细介绍),flutterui套件