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 ea3bf4622b update readme 10 years ago
boot_signer bring up "gradle pack" and "gradle unpack" 10 years ago
bouncycastle clean up and refine README 10 years ago
gradle/wrapper add wrapper 10 years ago
security clean up and refine README 10 years ago
src clean up and refine README 10 years ago
.travis.yml add self test in travis-ci 10 years ago
LICENSE.md Update LICENSE.md 10 years ago
README.md update readme 10 years ago
build.gradle add 'flash' task 10 years ago
gradlew add wrapper 10 years ago
gradlew.bat add wrapper 10 years ago
settings.gradle bring up "gradle pack" and "gradle unpack" 10 years ago

README.md

Nexus_boot_image_editor

Build Status

Utilies for editing Nexus(or Nexus compatible) devices boot.img , then you don't need full Android source code to edit your boot images.

Prerequisite

Host OS requirement:

The unpacking task only works on Linux, the packing task can work on Linux & OSX. So the recommended OS is Linux.

Target Android requirement:

(1) Targeted boot.img MUST follows AOSP verified boot flow, which means it packs linux kernel and rootfs together, 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)

You can get a full Android version list here.

Usage

Get tools via git:

git clone https://github.com/cfig/Nexus_boot_image_editor.git
cd Nexus_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.cfg
├── kernel
└── 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.