Android烧录的固件都是怎么生成的
来源:互联网 发布:软件开发规范文档 编辑:程序博客网 时间:2024/04/30 14:45
根据我本人4412开发板烧录需要以下这些文件
Superboot4412.bin ramdisk-u.img system.img userdata.img zImage这些 镜像文件。以下是友善之臂提供的生成img的脚本gen-img.sh中的内容:
#!/bin/bashOUTDIR=out/target/product/tiny4412AHOSTBIN=out/host/linux-x86/bin# install vendor filesif [ -d vendor/friendly-arm/tiny4412/rootdir/system/ ]; then cp -af vendor/friendly-arm/tiny4412/rootdir/system/* ${OUTDIR}/system/fiif [ -d vendor/friendly-arm/tiny4412/rootdir/data/ ]; then cp -af vendor/friendly-arm/tiny4412/rootdir/data/* ${OUTDIR}/data/fi# make imagesLOPTS="-T -1 -S ${OUTDIR}/root/file_contexts"${AHOSTBIN}/make_ext4fs -s ${LOPTS} -l 629145600 -a system system.img ${OUTDIR}/system# eMMC Size | UserData partition Size#------------------------------------------------# 4G | 2149580800 (2G) 2050*1024*1024# 8G | 4299161600 (4G)# 16G | 10747904000 (10G) 10250*1024*1024#------------------------------------------------${AHOSTBIN}/make_ext4fs -s ${LOPTS} -l 2149580800 -a data userdata-4g.img ${OUTDIR}/data${AHOSTBIN}/make_ext4fs -s ${LOPTS} -l 4299161600 -a data userdata-8g.img ${OUTDIR}/data${AHOSTBIN}/make_ext4fs -s ${LOPTS} -l 10485760000 -a data userdata-16g.img ${OUTDIR}/datacp userdata-4g.img userdata.img# ramdisk${AHOSTBIN}/mkbootfs ${OUTDIR}/root | ${AHOSTBIN}/minigzip > ${OUTDIR}/ramdisk.imgmkimage -A arm -O linux -T ramdisk -C none -a 0x40800000 -n "ramdisk" \ -d ${OUTDIR}/ramdisk.img ramdisk-u.img# minitools supportMINITOOLS_PATH=/opt/MiniTools/tiny4412/images/Android5.0if [ -d ${MINITOOLS_PATH} ]; then cp -f ramdisk-u.img ${MINITOOLS_PATH}/ cp -f system.img ${MINITOOLS_PATH}/ cp -f userdata*.img ${MINITOOLS_PATH}/ ls -l ${MINITOOLS_PATH}/ramdisk-u.img ls -l ${MINITOOLS_PATH}/system.img ls -l ${MINITOOLS_PATH}/userdata*.imgfi
从这个脚本可以看出这个脚本将android-5.0.2/out/target/product/tiny4412下的文件夹system/和data/这两个目录分别生成system.img userdata.img.
zImage为编译内核生成的
Superboot4412.bin我认为是bootloader,这是友善之臂提供的
ramdisk-u.img则是android-5.0.2/out/target/product/tiny4412/ramdisk.img经过处理得到的。通过分析ramdisk.img是由android-5.0.2/out/target/product/tiny4412/root/这个目录生成的
烧录是将system.img ramdisk-u.img userdata.img zImage Superboot4412.bin分别烧录到对应分区,然后从nand启动,先启动bootloader,然后启动zImage(内核) ramdisk-u.img应该是挂载到根目录/下。内核启动完应该就是启动init(root/init)程序。system.img挂载到ramdisk-u.img(root/system/)
userdata.img挂载到ramdisk-u.img(root/data)
基本就这个流程。
不同的公司,因为平台不一样比如rockchip,allwinner等会有所不同,不过大概应该是这样的。
- Android烧录的固件都是怎么生成的
- 两边都是动态生成的,怎么默认由点击效果
- Android去掉标题栏和全屏都是件很容易的事情
- 钱都是怎么赚的
- 一键生成 Android 录屏 gif 的脚本
- Android的apk文件是怎么怎么生成的?
- 怎么生成android 的测试脚本
- Android 怎么生成App的keystore文件
- 高手们都是怎么学习.NET的
- 现在的程序员都是怎么了
- 怎么判断textbox输入的都是空格
- 水浒传108将都是怎么死的
- 怎么都是引布去 恼火的汉啊
- 漏洞都是怎么编号的CVE/CAN
- 大家都是怎么写论文的
- 你们都是怎么学Python 的?
- 那些聪明人都是怎么提高情商的?
- Android ROM的创建和烧录
- AIDL实现远程调用的小例子
- Xcode 加载提示NSUnknownKeyException 异常原因 处理方法
- 第七章 在51单片机上移植uc/os-2
- 两个成员的类模板
- C++之二叉树的创建、查找、四种次序的周游遍历方法以及内存的释放
- Android烧录的固件都是怎么生成的
- 几种排序算法JAVA代码
- [Unity3D]使用右键菜单打开工程
- 算法竞赛入门第七章:习题
- eclipse中不能找到dubbo.xsd解决方法
- java初级之31三大特性之封装
- 垂直换行滚动广告
- 占位
- BFS广度优先搜索(2)--hdu1495(BFS变形题)