![Android系统移植和驱动开发](https://wfqqreader-1252317822.image.myqcloud.com/cover/795/772795/b_772795.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.5.7 提取Android 根文件系统
上一节我们成功地在Android 模拟器下运行了Android 程序,但如果要把结果写进开发板,则需要得到Android的根文件系统,步骤如下:
连接虚拟机,如图1.11所示。
![](https://epubservercos.yuewen.com/E09C9E/3590549403317801/epubprivate/OEBPS/Images/figure_0022_0013.jpg?sign=1738950068-eAuceCTz6b6uTN0jqdJ9SPadIsHHaA78-0-8fa60448c44559b53fa4d70b9f389e47)
图1.11 连接虚拟机
#./adb shell
将busybox 放入模拟器目标机文件系统中,如图1.12所示。
![](https://epubservercos.yuewen.com/E09C9E/3590549403317801/epubprivate/OEBPS/Images/figure_0014_0001a.jpg?sign=1738950068-dzieqevP9r203bZ2qKIvOLXJLrg4o73j-0-a1f84210dd467214a2615e9657a1ac4c)
图1.12 将busybox放入模拟器
下一步把/system、/data、/sbin 目录及根目录下的init、init.rc 等都放入sdcard 的image中,如图1.13所示。
![](https://epubservercos.yuewen.com/E09C9E/3590549403317801/epubprivate/OEBPS/Images/figure_0022_0015.jpg?sign=1738950068-46PsQBz68HZC2oqbjlotMBiwQSRsw6X8-0-fb07fb0ce812d095d8ee8fae7e113d4b)
图1.13 使用busybox
结果如图1.14所示。
![](https://epubservercos.yuewen.com/E09C9E/3590549403317801/epubprivate/OEBPS/Images/figure_0022_0016.jpg?sign=1738950068-YrakW6kPyloZ14zpiGo5bgGKXybMCP1Q-0-6fc9782212f7b83fc3edc9c03089bdd2)
图1.14 结果
在主机上以loop 方式mount sdcard 的image,并将其中的文件放到EZ6410 的根文件系统下,代码如下:
root@ffarsight:/mnt/sdc/android-sdk-linux_x86-1.6_r1/tools# modprobe loop root@ffarsight:/mnt/sdc/android-sdk-linux_x86-1.6_r1/tools# mount -o loop sdcard.img /mnt/sd root@ffarsight:/mnt/sdc/android-sdk-linux_x86-1.6_r1/tools# cd /mnt/sd root@ffarsight:/mnt/sd# ls android.tar lost.dir
在原有的Linux的NFS文件系统目录下创建一个新的目录rootfs_test,并把android.tar解压到rootfs_test目录下。
# tar xvf android.tar -C /source/rootfs_android/rootfs_test/
在NFS服务目录/source/rootfs_android下添加一个文件android.sh,如图1.15所示。
![](https://epubservercos.yuewen.com/E09C9E/3590549403317801/epubprivate/OEBPS/Images/figure_0023_0017.jpg?sign=1738950068-tfuJYaj0WVV5x7MlkdNBiM7IezePyMIJ-0-0db7fc0047ab28d7a58098cc2b23a905)
图1.15 添加android.sh