Android4.4 模拟器system.img制作
2015-11-05 17:48
471 查看
[align=left]近日,对4.4版本的模拟器作了一些了解。网上的资料还是蛮多的,不过都比较杂乱,在这里主要是做一个整理吧。[/align]
[align=left]4.4版本的system.img使用的ext4文件系统,所以mkyaffs2image不再适用。[/align]
[align=left]如果仅仅是解包system.img的话,有部分工具可以做到。例如:ext4_unpacker.exe。至于打包工具,鄙人还未找到类似的工具(如果哪位同道找到类似的工具,希望可以提出来讨论)。好了,下面就说说我的解/打包过程:[/align]
[align=left]1、众所周知,android的底层是linux。我们此处对system.img的操作也要在linux下进行。如果你使用的是windows,可以使用Vmware虚拟机,安装linux操作系统。我使用的是ubuntu。[/align]
[align=left]2、我们可以在/boot目录下(也可以是别的目录,下面的文件名亦可修改)新建3个文件夹:[/align]
[align=left]新建/boot/work:主要的工作空间[/align]
[align=left]新建/boot/system:用于挂载sdk中原本的system.img镜像[/align]
[align=left]新建/boot/newsystem:用于挂载新制作的ext4格式镜像[/align]
[align=left]3、在网上下载make_ext4fs工具(下面地址提供)。[/align]
[align=left]a)将make_ext4fs、mkuserimg.sh、simg2img三个文件拷贝到/boot/work目录下。[/align]
[align=left]b)将sdk中的system.img拷贝到/boot/work目录下(例如我sdk中system.img的路径为:\adt-bundle-windows-x86-20131030\sdk\system-images\android-19\armeabi-v7a)。[/align]
[align=left]c)制作新的system空白镜像,下面以制作300M的newsystem.img为例:[/align]
[align=left]生成镜像文件:# dd if=/dev/zero of=newsystem.img count=614400[/align]
[align=left]将镜像文件制作ext4文件系统:#./make_ext4fs newsystem.img[/align]
[align=left]更改权限:#chmod 666 newsystem.img[/align]
[align=left]好了,准备工作完成。[/align]
[align=left]4、挂载镜像[/align]
[align=left]a) 挂载镜像system.img到/boot/system目录[/align]
[align=left]# mount -t ext4 -o loop system.img /boot/system[/align]
[align=left]b) 挂载镜像newsystem.img到/boot/newsystem目录[/align]
[align=left]# mount -t ext4 -o loop newsystem.img /boot/newsystem[/align]
[align=left]挂载好之后,我们只要打开/boot/system和/boot/newsystem目录,就可以看到system.img和newsystem.img中所对应的类容。如下图:[/align]
[align=left]可以看到,system中有很多内容,而newsystem中只有lost+found。现在我们可以对system作任意修改(比如删除掉app里的apk)。修改完之后我们利用cp命令将system中的内容拷贝到newsystem文件文件夹中。然后,解除挂载。[/align]
[align=left]至此,/boot/work目录下的system.img及newsystem.img都修改完成。这两个镜像的内容完全一样,只是system.img的大小还是原本的大小,而newsystem.img减小为300M。当然,如果你不需要修改镜像的大小,直接使用system.img就可以了,newsystem.img也不用创建。[/align]
[align=left]5、注:userdata.img亦可用此方法制作。水平有限,如有不足,请见谅。
make_ext4fs工具下载地址 http://download.csdn.net/detail/sichuandazhou/9244871
[/align]
[align=left]4.4版本的system.img使用的ext4文件系统,所以mkyaffs2image不再适用。[/align]
[align=left]如果仅仅是解包system.img的话,有部分工具可以做到。例如:ext4_unpacker.exe。至于打包工具,鄙人还未找到类似的工具(如果哪位同道找到类似的工具,希望可以提出来讨论)。好了,下面就说说我的解/打包过程:[/align]
[align=left]1、众所周知,android的底层是linux。我们此处对system.img的操作也要在linux下进行。如果你使用的是windows,可以使用Vmware虚拟机,安装linux操作系统。我使用的是ubuntu。[/align]
[align=left]2、我们可以在/boot目录下(也可以是别的目录,下面的文件名亦可修改)新建3个文件夹:[/align]
[align=left]新建/boot/work:主要的工作空间[/align]
[align=left]新建/boot/system:用于挂载sdk中原本的system.img镜像[/align]
[align=left]新建/boot/newsystem:用于挂载新制作的ext4格式镜像[/align]
[align=left]3、在网上下载make_ext4fs工具(下面地址提供)。[/align]
[align=left]a)将make_ext4fs、mkuserimg.sh、simg2img三个文件拷贝到/boot/work目录下。[/align]
[align=left]b)将sdk中的system.img拷贝到/boot/work目录下(例如我sdk中system.img的路径为:\adt-bundle-windows-x86-20131030\sdk\system-images\android-19\armeabi-v7a)。[/align]
[align=left]c)制作新的system空白镜像,下面以制作300M的newsystem.img为例:[/align]
[align=left]生成镜像文件:# dd if=/dev/zero of=newsystem.img count=614400[/align]
[align=left]将镜像文件制作ext4文件系统:#./make_ext4fs newsystem.img[/align]
[align=left]更改权限:#chmod 666 newsystem.img[/align]
[align=left]好了,准备工作完成。[/align]
[align=left]4、挂载镜像[/align]
[align=left]a) 挂载镜像system.img到/boot/system目录[/align]
[align=left]# mount -t ext4 -o loop system.img /boot/system[/align]
[align=left]b) 挂载镜像newsystem.img到/boot/newsystem目录[/align]
[align=left]# mount -t ext4 -o loop newsystem.img /boot/newsystem[/align]
[align=left]挂载好之后,我们只要打开/boot/system和/boot/newsystem目录,就可以看到system.img和newsystem.img中所对应的类容。如下图:[/align]
[align=left]可以看到,system中有很多内容,而newsystem中只有lost+found。现在我们可以对system作任意修改(比如删除掉app里的apk)。修改完之后我们利用cp命令将system中的内容拷贝到newsystem文件文件夹中。然后,解除挂载。[/align]
[align=left]至此,/boot/work目录下的system.img及newsystem.img都修改完成。这两个镜像的内容完全一样,只是system.img的大小还是原本的大小,而newsystem.img减小为300M。当然,如果你不需要修改镜像的大小,直接使用system.img就可以了,newsystem.img也不用创建。[/align]
[align=left]5、注:userdata.img亦可用此方法制作。水平有限,如有不足,请见谅。
make_ext4fs工具下载地址 http://download.csdn.net/detail/sichuandazhou/9244871
[/align]
相关文章推荐
- android 官方侧滑菜单 DrawerLayout 详解
- Android 事件分发机制
- Android菜单详解——子菜单(SubMenu)
- Android-05 Android的MVC设计框架浅析
- Android中SQLite应用详解
- Android下拉刷新ListView设计
- 【Android】近日问题小计
- Android编程判断横屏、竖屏及设置横竖屏的方法
- Android是如何改变了嵌入式格局
- Android菜单详解(四)——使用上下文菜单ContextMenu
- 【Android学习之道】 四大组件之ContentProvider内容提供器
- AsyncTask的执行流程及其细节点
- 综述种类:Android组件之间 数据传递方法
- 在我工作中,我想让RelativeLayout设置按钮的效果,但是有时候没有效果,下面的方法可以解决问题
- Android使用Glide加载Gif.解决Glide加载Gif非常慢问题
- Android Studio 文件类型图标
- 关于android广播优先级的理解
- 自定义倒计时按钮
- android 通知栏
- Android中用textview展示doc文档保存格式