cp ./out_hal/soong/.intermediates/system/extras/partition_tools/lpunpack/linux_glibc_x86_64/lpunpack ./out/host/linux-x86/bin/
如果没有lpunpack,则执行如下编译出lpunpack:
source build/envsetup.sh
lunch xxx-eng
m lpunpack -j4
cd ./out/host/linux-x86/bin/
simg2img super.img super_raw.img
mkdir unpack
./lpunpack super_raw.img unpack/
ls -l
AndroidManifest.xml product_a.img system_b.img system_ext_a.img vendor_b.img
odm_dlkm_a.img product_b.img system_dlkm_a.img system_ext_b.img vendor_dlkm_a.img
odm_dlkm_b.img system_a.img system_dlkm_b.img vendor_a.img vendor_dlkm_b.img
比如解压system_a.img:
../fsck.erofs --extract=system_out system_a.img
或者../extract.erofs system_a.img system_out/
或者../debugfs_static -R "rdump / ./system_a_out" system_a.img
解压所有带apk的image:
1. 解压 system(系统APK最多) mkdir sys && ../fsck.erofs --extract=sys system_a.img # 2. 解压 product(厂商定制APP) mkdir prod && ../fsck.erofs --extract=prod product_a.img # 3. 解压 vendor(驱动/芯片APP) mkdir vend && ../fsck.erofs --extract=vend vendor_a.img