arm 平台的bootloader 方案mediatek(mt6516/6517) :
bootROM + pre-loader[l5] + U-boot
1:preload_wt97055.bin (和flash 相关的东西,pre-loader 是执行在ISRAM 区,作用与boot1/boot2
相同)
2:MBR(MBR 为Master Boot Record,第一阶段所用的boot loader 被装载到RAM 中并被执行。这里的
boot loader 在大小上小于一个扇区的大小,也就是512 字节,而它的任务,就是加载第二阶段的boot
loader。)
3:lk.bin (屏的uboot 部分)
4:boot.img (屏的kernel 部分,TP,camera 等等的kernel 部分~由ramdisk.img 镜像的文件压缩再加
上kernel 部分的启动代码还有相应的头文件~ramdisk.img 的内容就是out/target/product/generic/root
即linux 内核的文件系统的压缩而已~)
5:logo.bin(应该是开机的第一帧,这个是android 区的logo,还有个linux 区的kernel)
6:system.img (apk 和系统文件out/target/product/generic/system 的压缩文件转换为ext4 格式)
7:userdata.img (out/target/product/generic/data 的压缩文件转换为ext4 格式,用户自行内置的APK
也放置在此区域)
8:recovery.img (ramdisk-recovery.img 镜像的文件压缩而成
~实现恢复出厂设置、OTA 升级、patch 升级及firmware 升级)
9:secro.img (安卓系统启动时的防盗版的功能,nodl_secro.bin 重命名而来)
每个文件都能单独编译生成出来,下面列举比较常用的Android 比较重要的三个img 文件:
make systemimage - system.img(这个应该与r android 的编译区域相同,只是揣测,需要验证)
make userdataimage - userdata.img
make ramdisk - ramdisk.img
make snod - 快速打包system.img (with this command, it will build a new system.img very quickly.
well, you cannot use “make snod” for all the situations. it would not check the dependences. if you
change some code in the framework which will effect other applications)
因為
system.img 是從out/target/product/xxxx/system 做出來的。
如果改了這個folder 的內容,想要重新產生system.img。不要管system folde 裡面的file 的
dependency,可以用snod 這個target:
WT-WI-E016/Rev01
2
make snod
定義在build/core/Makefile 可以看到snod 這個target:
(有說明是: make system.img ignoring depencies)