解析安卓镜像包和提取DTB文件的操作日志

概述

想查看一下安卓的镜像包里都存了什么内容

步骤

  • 使用RKDevTool_v3.15RK3528_DC_HK1_RBOX_K8_Multi_WIFI_13_20230915.2153.img解包

    • 路径: 高级(Advancing) > 固件(firmware) > 解包(unpacking)
    • 得到\Output\Android\Image
      • boot.img
      • uboot.img
      • super.img
  • 处理boot.img

    • HxD打开, 文件格式魔数的ASCII文本是: ANDROID
    • Linux下(或git-bash窗口下)使用boot-img-split.tar.gz中的split_bootimg.pl对文件进行分割
    • 解析结果
      • boot.img-kernel
        • 通过 file boot.img-kernel 输出 Linux kernel ARM64 boot executable Image, little-endian, 4K pages
      • boot.img-ramdisk.gz
        • 解压缩后,再解压得到一个目录
        • init 二进制程序; fstab.rk30board 磁盘挂载信息; build.prop 系统编译参数;
      • boot.img-second.gz
        • dtb文件和BMP图片文件
        • dtb搜索D0 0D FE ED, 后4个字节是长度
        • bmp搜索42 4D, 后4个字节是长度 : 几个电池状态图标和HK1的开机logo
    • boot.img-second.gz
      • HxD打开, 文件格式魔数的ASCII文本是: RSCE, 解压软件无法解压

      • 查看已有的dtb文件(用adb从运行的系统中提取的), 确定文件格式魔数为D0 0D FE ED, 其后4个字节为大端格式的文件长度的16进制(和window文件属性的字节数一致)

      • 文件长度是包含魔数和文件长度这8个字节的

      • 选中表示文件长度的4个字节, 在右侧底部选择大端, 上面int32显示对应的10进制

      • 下图示例为后面补的
        在这里插入图片描述
        在这里插入图片描述

      • 选中魔数, 点击菜单>编辑>选择范围, 选择长度/十六进制, 填入表示文件长度的4个字节的值(无特殊处理,按顺序填), 填完后点击十进制, 查看是否一致

      • 补充图片
        在这里插入图片描述

      • 点击确定后选择, 右键复制 , 菜单>新建, 粘贴, 保存为新文件, 取名 HK1_RBOX_K8_IMG.dtb

      • 在linux(ubuntu,自带dtc)下对文件反编译 dtc -I dtb -O dts -o HK1_RBOX_K8_IMG.dts HK1_RBOX_K8_IMG.dtb # 有警告信息

  • 处理 uboot.img

    • HxD打开, 文件格式魔数是: D0 0D FE ED, 提取文件
    • 在linux(ubuntu,自带dtc)下对文件反编译 dtc -I dtb -O dts -o uboot.img.dts uboot.img.dtb # 居然无警告信息
      • 没啥内容, 应该是arm平台通用的用于加载下一级boot.img的镜像
    • 在linux下通过 dumpimage -l uboot.img 可以查看格式信息, 但是无法提取DTB
      • dumpimage -i fit-image.itb -T firmware -o u-boot.itb u_boot
  • 处理super.img

    • 下载 cygwin1.dll lpunpack.exe simg2img.exe
    • cygwin1.dll 放在和exe同级目录
    • 先转换镜像格式后执行解压
      • simg2img.exe super.img super.raw.img
      • lpunpack.exe super.raw.img
    • 后续用diskgenus挂载查看

工具

其他

  • 文件格式魔数: 部分文件的开头几个字节是固定的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值