1.首先准备好pixel设备的完整ota镜像,adb,pixel 6 pro的,avbroot 和 magiskboot ota镜像也可以更换成你想要用的系统的卡刷包。
安装编译包(archlinux)
sudo pacman -S --needed base-devel xz lz4 bzip2 zlib pkgconf \
clang libc++ cmake ninja rust
编译命令
CC=clang CXX=clang++ cmake -G Ninja -B build -DCMAKE_BUILD_TYPE=Release # configure
cmake --build build -j $(nproc) # build
./build/magiskboot # running
# install to system (may need sudo, to specify different install dir, set the `DESTDIR' environment variable)
cmake --install build
mkdir ~/avbboot
cd ~avbboot
avbroot key generate-key -o avb.key
avbroot key generate-key -o ota.key
avbroot key extract-avb -k avb.key -o avb_pkmd.bin
avbroot key generate-cert -k ota.key -o ota.crt
avbroot ota patch \
--input /path/to/ota.zip \
--key-avb /path/to/avb.key \
--key-ota /path/to/ota.key \
--cert-ota /path/to/ota.crt \
--prepatched /这段路径为想修补过的boot镜像,用来获取root的
20.870s INFO Successfully patched OTA
avbroot ota verify \
--input /path/to/ota.zip \
--cert-ota /path/to/ota.crt \
--public-key-avb /path/to/avb_pkmd.bin
20.870s INFO Successfully patched OTA
avbroot ota extract \
--input /path/to/ota.zip.patched \
--directory extracted \
--fastboot
fastboot erase avb_custom_key
fastboot flash avb_custom_key /path/to/avb_pkmd.bin
ANDROID_PRODUCT_OUT=刚才解压patch的压缩包位置 fastboot flashall --skip-reboot``
adb shell su -c 'dmesg | grep libfs_avb'
init: [libfs_avb]Returning avb_handle with status: Success
fastboot flashing lock