![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=1739646633-EBR2xO9oEZ9hrPXAzMZ2M5U5eNjVgCjO-0-310ea1a67fad8a13547cc474917c0391)
图1.11 连接虚拟机
#./adb shell
将busybox 放入模拟器目标机文件系统中,如图1.12所示。
![](https://epubservercos.yuewen.com/E09C9E/3590549403317801/epubprivate/OEBPS/Images/figure_0014_0001a.jpg?sign=1739646633-NX1aXB61DHA78KEAQcLP6JxBqhZWMCmV-0-f758c658a37e16c509943f6908427cc3)
图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=1739646633-Wr9d75gwtoeFmpuaQERaLutiWSz6Wa3k-0-a259445b74913804869f9dbeb8085a56)
图1.13 使用busybox
结果如图1.14所示。
![](https://epubservercos.yuewen.com/E09C9E/3590549403317801/epubprivate/OEBPS/Images/figure_0022_0016.jpg?sign=1739646633-1EoxsYC2BEF3Xtg5rkW1NtEEGPgofGQQ-0-ffdac10e003b6ad6fbdf1169d575d032)
图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=1739646633-FR9GcUNZG5APzkpPw6B8njV738996mR0-0-2a96c30245aeeeeec20ee6e1abf419da)
图1.15 添加android.sh