0

我正在尝试修改 Pixel 4a 5g 手机的内核。为此,我从https://developers.google.com/android/images下载了股票 boot.img 。我还有一个内核 src 代码(https://android.googlesource.com/kernel/common/+/refs/heads/android-4.19-stable)并编译它。它会生成一个 Image 和 Image.gz 文件。

以我的理解,我必须解压 boot.img 文件,用我的 Image.gz 替换它包含的内核并打包它。使用 unmkbootimg,我得到 zImage 和 initramfs.cpio.gz 但我认为它们已损坏。以下是我得到的:

unmkbootimg version 1.2 - Mikael Q Kuisma <kuisma@ping.se>
Kernel size 11562794
Kernel address 0xd7719f
Ramdisk size 369099082
Ramdisk address 0x62c
Secondary size 0
Secondary address 0x0
Kernel tags address 0x0
Flash page size 0
Board name is ""
Command line ""

*** WARNING ****
This image is built using NON-standard mkbootimg!
OFF_KERNEL_ADDR is 0x00D7729F
OFF_RAMDISK_ADDR is 0x0000072C
OFF_SECOND_ADDR is 0x00000100
Please modify mkbootimg.c using the above values to build your image.
****************

Extracting kernel to file zImage ...
Extracting root filesystem to file initramfs.cpio.gz ...
%Premature end-of-file saving initramfs.cpio.gz.

有人可以告诉我这样做的好方法吗?

4

1 回答 1

0

这个 github repo 正是你所需要的: https ://github.com/cfig/Android_boot_image_editor

主要步骤:

  1. 提取股票 boot.img
cp <original_boot_image> boot.img
./gradlew unpack
  1. 用您本地构建的内核替换内核,然后
  2. 重新打包 boot.img
./gradlew pack

干杯!

于 2021-05-26T04:14:34.233 回答