cfig / Android_boot_image_editor

Parsing and re-packing Android boot.img/vbmeta.img/payload.bin, supporting Android 15
Apache License 2.0
995 stars 227 forks source link

Unpack payload.bin failed #108

Closed 5n0wfish closed 1 year ago

5n0wfish commented 1 year ago

When I unpack xiaomi 13pro rom->payload.bin, it got an error.

14:03:53.706 [main] INFO  cc.cfig.droid.ota.Payload - Creating build/payload/
14:03:53.863 [main] INFO  cc.cfig.droid.ota.Payload -   header  info dumped to build/payload/header.json
14:03:53.883 [main] INFO  cc.cfig.droid.ota.Payload -  manifest info dumped to build/payload/manifest.json
14:03:53.888 [main] INFO  cc.cfig.droid.ota.Payload - signature info dumped to build/payload/signatures.txt
14:03:53.891 [main] INFO  cc.cfig.droid.ota.Payload - There are 36 partitions [abl, aop, aop_config, bluetooth, boot, cpucp, devcfg, dsp, dtbo, featenabler, hyp, imagefv, init_boot, keymaster, modem, multiimgqti, odm, product, qupfw, recovery, shrm, system, system_dlkm, system_ext, tz, uefi, uefisecapp, vbmeta, vbmeta_system, vendor, vendor_boot, vendor_dlkm, xbl, xbl_config, xbl_ramdump, mi_ext]
14:03:53.891 [main] INFO  cc.cfig.droid.ota.Payload - dumping images to build/payload/
14:03:53.891 [main] INFO  cc.cfig.droid.ota.Payload - [ 1/36] extracting           abl.img (1 ops)
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at kotlin.reflect.jvm.internal.calls.CallerImpl$Method.callMethod(CallerImpl.kt:97)
        at kotlin.reflect.jvm.internal.calls.CallerImpl$Method$Instance.call(CallerImpl.kt:113)
        at kotlin.reflect.jvm.internal.KCallableImpl.call(KCallableImpl.kt:108)
        at cfig.packable.PackableLauncherKt.main(PackableLauncher.kt:108)
Caused by: org.apache.commons.exec.ExecuteException: Process exited with an error: -1073741515 (Exit value: -1073741515)
        at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:404)
        at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:166)
        at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:153)
        at cc.cfig.droid.ota.Payload.decompress(Payload.kt:187)
        at cc.cfig.droid.ota.Payload.unpackInternal(Payload.kt:205)
        at cc.cfig.droid.ota.Payload.unpack(Payload.kt:229)
        at cfig.packable.PayloadBinParser.unpack(PayloadBinParser.kt:32)
        ... 8 more
cfig commented 1 year ago

Are you using "miui_NUWA_V14.0.4.0.TMBCNXM_c5625d2228_13.0.zip" md5 payload.bin:

545d2eeebc74c1558f5df884ebfdfd6e  payload.bin

unpack works fine on my side. Are we using the same file?

5n0wfish commented 1 year ago

which step do I execute the error:

G:\codeql\boot_editor_v13>md5sum payload.bin
545d2eeebc74c1558f5df884ebfdfd6e *payload.bin

G:\codeql\boot_editor_v13>gradlew unpack
19:17:37.774 [main] WARN  cfig.packable.PackableLauncher - [payload.bin] will be handled by [PayloadBinParser]
19:17:37.859 [main] WARN  cfig.packable.PackableLauncher - 'unpack' sequence initialized
19:17:37.862 [main] INFO  cfig.packable.IPackable - deleting build/unzip_boot/ ...
19:17:38.254 [main] INFO  Helper - deleting uiderrors
19:17:38.384 [main] INFO  cc.cfig.droid.ota.Payload - payload.bin size info check PASS
19:17:38.436 [main] INFO  cc.cfig.droid.ota.Payload - calc meta hash: 9110efeef5629538aaa8e998777a085dba52d4c7b3457ebb8fb7c3b03b4d0fb5
19:17:59.164 [main] INFO  cc.cfig.droid.ota.Payload - calc payload hash: 94a40827028074427f6d89fc894663ba9790781d31b09ee3251bff9284ae2fc7
19:17:59.166 [main] INFO  cc.cfig.droid.ota.Payload - Found sig count: 1
19:17:59.170 [main] INFO  cc.cfig.droid.ota.Payload - <ByteString@2fea7088 size=256 contents="w\2776\255\313\363\327\304\265\367\265G=n\036\276?.\350\r\332\202\341Z\305\2659\t\207]x\306J\367\321\342\335Q\337\3712yt\274\226r_...">
19:17:59.170 [main] INFO  cc.cfig.droid.ota.Payload - sig_data size = 256
19:17:59.171 [main] INFO  cc.cfig.droid.ota.Payload - 77bf36adcbf3d7c4b5f7b5473d6e1ebe3f2ee80dda82e15ac5b53909875d78c64af7d1e2dd51dff9327974bc96725f920a9300b1bb30e2617cd6f5201ebc95c06685a771abdb562592b82466b64e3c9ab7adabd1f2979a37a51597e18e162f3ec99598ca64b0870123c7591b0f8f7adb880f4d587882c75212cd0290da50df25fe508af941a1c1777f56a62d93040752ac0534de921867836b43c2c5316c5970910db0d1fdd42be35244e820440d0ffea7baa1cc890929e62f21553dd2e0c05e6233cfff42017ab8438a647ea06359308e32065f422069fa38e443e63e0643a82cdd48a13a58bc2ee654e190b121e5bdcf10ed330bbe105733efb4bf98d2672d
19:17:59.173 [main] INFO  cc.cfig.droid.ota.Payload - Creating build/payload/
19:17:59.418 [main] INFO  cc.cfig.droid.ota.Payload -   header  info dumped to build/payload/header.json
19:17:59.441 [main] INFO  cc.cfig.droid.ota.Payload -  manifest info dumped to build/payload/manifest.json
19:17:59.448 [main] INFO  cc.cfig.droid.ota.Payload - signature info dumped to build/payload/signatures.txt
19:17:59.450 [main] INFO  cc.cfig.droid.ota.Payload - There are 36 partitions [abl, aop, aop_config, bluetooth, boot, cpucp, devcfg, dsp, dtbo, featenabler, hyp, imagefv, init_boot, keymaster, modem, multiimgqti, odm, product, qupfw, recovery, shrm, system, system_dlkm, system_ext, tz, uefi, uefisecapp, vbmeta, vbmeta_system, vendor, vendor_boot, vendor_dlkm, xbl, xbl_config, xbl_ramdump, mi_ext]
19:17:59.450 [main] INFO  cc.cfig.droid.ota.Payload - dumping images to build/payload/
19:17:59.451 [main] INFO  cc.cfig.droid.ota.Payload - [ 1/36] extracting           abl.img (1 ops)
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at kotlin.reflect.jvm.internal.calls.CallerImpl$Method.callMethod(CallerImpl.kt:97)
        at kotlin.reflect.jvm.internal.calls.CallerImpl$Method$Instance.call(CallerImpl.kt:113)
        at kotlin.reflect.jvm.internal.KCallableImpl.call(KCallableImpl.kt:108)
        at cfig.packable.PackableLauncherKt.main(PackableLauncher.kt:108)
Caused by: org.apache.commons.exec.ExecuteException: Process exited with an error: -1073741515 (Exit value: -1073741515)        at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:404)
        at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:166)
        at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:153)
        at cc.cfig.droid.ota.Payload.decompress(Payload.kt:187)
        at cc.cfig.droid.ota.Payload.unpackInternal(Payload.kt:205)
        at cc.cfig.droid.ota.Payload.unpack(Payload.kt:229)
        at cfig.packable.PayloadBinParser.unpack(PayloadBinParser.kt:32)
        ... 8 more
cfig commented 1 year ago

Hi @5n0wfish , First please check java version: java -version, java 17 is required.

Then I tried on linux & windows

  1. Linux works fine.
  2. Windows
    • under Git Bash works fine. "Git Bash" if there if you install git windows version.
    • under Anaconda Power Shell Prompt failed due to missing of program "xzcat".

Do you have "git bash"? Can you have a try?

5n0wfish commented 1 year ago

Thanks.

It works fine on git bash, and windows pwershell dont have xzcat command