gpt4 book ai didi

安卓启动镜像格式

转载 作者:太空狗 更新时间:2023-10-29 13:28:53 24 4
gpt4 key购买 nike

在 Android 系统上,内核、虚拟磁盘和一些元数据存储在由引导加载程序处理的二进制磁盘镜像中。图像是使用 mkbootimg 实用程序构建的。

检查 mkbootimg 源代码,我看到图像格式的 header 定义为

struct boot_img_hdr {
unsigned char magic[BOOT_MAGIC_SIZE];

unsigned kernel_size; /* size in bytes */
unsigned kernel_addr; /* physical load addr */

unsigned ramdisk_size; /* size in bytes */
unsigned ramdisk_addr; /* physical load addr */

unsigned second_size; /* size in bytes */
unsigned second_addr; /* physical load addr */

unsigned tags_addr; /* physical addr for kernel tags */
unsigned page_size; /* flash page size we assume */
unsigned unused[2]; /* future expansion: should be 0 */

unsigned char name[BOOT_NAME_SIZE]; /* asciiz product name */

unsigned char cmdline[BOOT_ARGS_SIZE];

unsigned id[8]; /* timestamp / checksum / sha1 / etc */
};

没有任何进一步的资格。此结构的一个实例使用 write 写入图像文件的开头。

这不是在引导镜像中嵌入了主机系统(我相信是 x86)的字节顺序和对齐方式吗?即使引导加载程序本身从不将 header 视为结构,在具有不同字节顺序/对齐方式(相对于 Android ARM)的系统上运行 mkbootimg 现在似乎也会有问题。

我是不是高估了结构布局的普遍差异?

最佳答案

没有。你是对的。

mkbootimg 为 ARM 交叉编译会遇到此 question 中描述的问题.

关于安卓启动镜像格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18284787/

24 4 0
文章推荐: android - 启动/绑定(bind)服务生命周期。为什么要重新创建
文章推荐: c# - iTextSharp HTMLWorker.ParseToList() 抛出 NullReferenceException
文章推荐: HTML5 结构 -
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com