android boot.img文件结构、拆包、打包

boot.img is not a compressed filesystem image like system.img. It is read by the bootloader, and contains little more than a kernel image and a ramdisk image.

我们可以从手机导出boot.img, 其实它并不是一个完整的文件系统 ,由google定义的文件格式。如何定义见,android-src/system/core/mkbootimg/bootimg.h

2k头文件,gzip压缩的内核,ramdisk, second stage(可选)

1F 8B 08便是内核起始处

ramdisk映像是一个最基础的小型文件系统,它包括了初始化系统所需要的全部核心文件,例如:初始化init进程以及init.rc(可以用于设置很多系统的参数)等文件。如果你您希望了解更多关于此文件的信息可以参考以下网址:
http://git.source.android.com/?p=kernel/common.git;a=blob;f=Documentation/filesystems/ramfs-rootfs-initramfs.txt

二、boot.img解压

以下地址下载到工具,包含2个程序,

https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android-serialport-api/android_bootimg_tools.tar.gz

* unpackbootimg
* mkbootimg

解压以后得到:
* boot.img-zImage     ----> kernel
* boot.img-ramdisk.gz ----> ramdisk

三、重点说下这个内核 boot.img-zImage

很好判断gzip格式,解压命令:

gunzip -c boot.img-ramdisk.gz | cpio -i解压后是个特定于cpu的目标文件 arm64 pe格式

四、重新打包mkbootimg
 
时间: 2024-10-09 10:19:10

android boot.img文件结构、拆包、打包的相关文章

Android studio project文件结构翻译

Android studio project文件结构翻译 个人翻译,用作备忘. 链接地址:https://developer.android.com/tools/projects/index.html#ApplicationModules Android Project Files Studio的项目文件和设置,设置的作用范围包含所有的module. 以以下的demo为例. .git:git版本控制的文件存放目录. .gradle:gradle执行一些编译所生成的目录 Idea: 由Intell

[android]system.img文件的打包和解包

1:system.img的两种格式 system2_0.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (extents) (large files) system1_0.img: Android sparse image, version: 1.0, Total of 393216 4096-byte output blocks in 1765 input chunks. 以上

Android系列之Android 命令行手动编译打包详解

http://www.qdmm.com/BookReader/1222701,54263720.aspxhttp://www.qdmm.com/BookReader/1222701,54263869.aspxhttp://www.qdmm.com/BookReader/1222701,54263871.aspxhttp://www.qdmm.com/BookReader/1222701,54263876.aspxhttp://www.qdmm.com/BookReader/1222701,542

android代码签名和混淆打包

研究了一下android的apk的签名和代码的混淆打包,如果不混淆打包,那么apk可以直接被人反编译出来查看源码,混淆打包虽然还是能看懂,但是没有那么好懂了,至少要话费些时间 如果不混淆,反编译后的代码如下: 基本上就是源码. 如果混淆后,反编译后的代码如下: 代码中出现很多的a.b.c之类的变量命名,所以要读懂就具有一定的困难了! 下面先说一下apk的签名: 1.apk签名必须先弄一个key,如何生成key呢?那么就要运用jdk来生成. 首先必须把jdk在系统环境变量中配置好.这个就不多说了,

Android Studio之Gradle多渠道打包

Android Studio之Gradle多渠道打包 由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这事就简单了. 友盟多渠道打包 废话不多说,以友盟统计为例,在AndroidManifest.xml里面会有这么一段: <meta-data android:name="UMENG_CHANNEL" android:value="Channel_ID&qu

android命令行创建并打包项目

命令行创建Android项目 查看sdk信息 将目录更改到 Android SDK 的tools/的路径. 执行: android list targets 这将打印您已经为您的 SDK 下载可用的 Android平台的列表.查找您要对其编译使您应用程序的平台的目标 id 的便笺.我们建议您选择可能的最高版本.您仍可以生成您的应用程序支持较旧的版本,但将生成目标设置为最新版本允许您优化您的应用程序的最新设备. 创建项目 命令 android create project --target <ta

In Depth : Android Boot Sequence / Process

What happened when I press power on button in my Android device ? What is Android boot sequence ? What is linux kernel ? What is different between desktop linux kernel and Android linux kernel ? What is bootloader ? What is Zygote ? What is x86 and A

android boot.img

android在启动时uboot判断有没有组合健按下或者cache分区的升级文件来决定进入哪个系统(可能还有别的判断方式) 有组合健按下或者cache分区有升级文件,则加载recovery.img进入升级系统.否则加载boot.img进入正常系统 此次记录3个要点: 1:boot.img的结构 2:如何作成boot.img 3:uboot 如何寻找boot.img 一:boot.img的结构如下: +-----------------+ |boot header | 1 page +------

Android系统镜像文件的打包过程分析(转载)

Android系统镜像文件的打包过程分析 原文链接 本文由豆约翰博客备份专家远程一键发布