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 e90758fe94 fix unit test issue
fix an argument issue which causes the difference of mkbootimg program
and mkbootimg.groovy core
9 years ago
abootimg fix unit test issue 9 years ago
boot_signer update to android master on May.30.2016, not tested 9 years ago
bouncycastle update to android master on May.30.2016, not tested 9 years ago
gradle/wrapper add wrapper 9 years ago
security update to android master on May.30.2016, not tested 9 years ago
src mass update for next generation boot.img 9 years ago
.travis.yml add self test in travis-ci 9 years ago
LICENSE.md Update LICENSE.md 9 years ago
README.expert.md mass update for next generation boot.img 9 years ago
README.md mass update for next generation boot.img 9 years ago
build.gradle fix unit test issue 9 years ago
gradlew add wrapper 9 years ago
gradlew.bat add wrapper 9 years ago
settings.gradle mass update for next generation boot.img 9 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 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.json
├── 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.