在做的过程中,发现通过普通的make_ext4fs制作的文件系统镜像烧写后无法成功启动系统,几番尝试之后,使用如下的方式能够成功制作文件系统并且成功启动android系统。这里只介绍如何制作适用于SD卡上的文件系统,不介绍如何烧写。
文件系统制作
编译完成进入"out/target/product/fs210"目录,可以看到有下图所示的内容。
$ cd out/target/product/fs210
用户在该目录下看到的system.img、userdata.img、ramdisk-uboot.img就是一般android系统所需要的镜像,但是本文档针对的是SD卡启动android,所以需要重新制作文件系统的镜像,制作过程如下。
NOTE:建议用户在该目录下进行操作!
使用dd if=/dev/zero of=system.img bs=512K count=400制作一个img文件,如下图:
使用linux系统工具 mkfs.ext4 –F system.img,如下图:
创建一个文件夹mkdir mnt,建议叫做mnt,如下图:
将img文件挂载到mnt目录下sudo mount system.img mnt/ //mount需要使用超级用户权限sudo
将下图中system文件夹内的所有文件复制到mnt文件夹下cp system/* mnt/ -a
改变mnt文件夹下所有文件的权限 sudo chmod 777 mnt/* -R //必须做,否则系统有可能无法启动
到此system.img已经成功做好,做完之后,需要将之前挂载的镜像目录卸载,使用如下命令
下面开始制作userdata.img,过程和system.img基本一致。
使用dd if=/dev/zero of=userdata.img bs=512K count=400制作一个img文件,如下图:
NOTE:该镜像文件用户可以根据自己的需要改变大小,但是大不能够超过1024M。
使用linux系统工具 mkfs.ext4 –F userdata.img,如下图:
mnt文件夹已经创建过,跳过
将img文件挂载到mnt目录下sudo mount userdata.img mnt/ //mount需要使用超级用户权限sudo
将下图中system文件夹内的所有文件复制到mnt文件夹下cp data/* mnt/ -a
后一步,将挂载到mnt目录下的userdata.img卸载 sudo umount mnt
我们再次ls查看目录的所有文件,如下图:
图中红色框内的镜像文件就是我们需要烧写到SD卡的镜像,将这些镜像拷贝到虚拟机的共享目录下。
Copyright © 2004-2024 华清远见教育科技集团 版权所有
京ICP备16055225号-5,京公海网安备11010802025203号