Parsing and re-packing Android boot.img/vbmeta.img/payload.bin, supporting Android 13 preview
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
cfig 77ba5d7aad remove wrong selabel 9 years ago
abootimg fix decimal patch version decode bug 9 years ago
boot_signer update to android master on May.30.2016, not tested 10 years ago
bouncycastle update to android master on May.30.2016, not tested 10 years ago
gradle/wrapper Squashed commit of all strict checkings 10 years ago
security update to android master on May.30.2016, not tested 10 years ago
src remove wrong selabel 9 years ago
.travis.yml add self test in travis-ci 10 years ago
LICENSE.md Update LICENSE.md 10 years ago
README.expert.md mass update for next generation boot.img 10 years ago
README.md Squashed commit of all strict checkings 10 years ago
build.gradle add init.debug.rc for more debug features 9 years ago
gradlew add wrapper 10 years ago
gradlew.bat add wrapper 10 years ago
settings.gradle mass update for next generation boot.img 10 years ago

README.md

Android_boot_image_editor

Build Status

Utilies for editing Android boot.img.

Prerequisite

Host OS requirement:

Linux or Mac.

Target Android requirement:

(1) Targeted boot.img MUST follows AOSP verified boot flow, which means it packs linux kernel, rootfs , and a optional second state bootloader, then sign it with OEM/USER keys.

(2) These utilities are known to work for Nexus (or Nexus compatible) boot.img for the following Android releases:

  • Marshmallow (API Level 23)
  • Lollipop (API Level 21,22)
  • AOSP master

You can get a full Android version list here.

Usage

Get tools via git:

git clone https://github.com/cfig/Android_boot_image_editor.git
cd Android_boot_image_editor

Then put your boot.img at $(CURDIR)/boot.img, then start gradle 'unpack' task:

cp <original_boot_image> boot.img
./gradew unpack

Your get the flattened kernel and /root filesystem under $(CURDIR)/build/unzip_boot:

build/unzip_boot/
├── bootimg.json
├── kernel
├── second
└── root

Then you can edit the actual file contents, like rootfs or kernel. Now, pack the boot.img again

./gradew pack

You get the repacked boot.img at $(CURDIR):

boot.img.signed

example & test

An example boot.img has been placed at src/test/resources/boot.img, which is extracted from Nexus 5x(code: bullhead) factory images from Google, you can take it as a quick start.

boot.img layout

Read layout of Android boot.img. We now support os_version and os_patch_level.