Troubleshooting Magisk Build: VerifyError with Apache Commons Compress
in Post with 0 comment

I'm attempting to build my own Magisk version (similar to what I did with V27) but encountering a VerifyError during the patching process. Here's a breakdown:

- I followed all the steps in the documentation, cloning the repository and generating the config.prop file with my signature.
- I haven't made any code modifications, just aiming to sign the apk and patch the Samsung AP file.
- The error points to classes within the `org.apache.commons.compress.archivers.tar` package, specifically around methods dealing with `TarArchiveEntry` and `TarArchiveOutputStream`. The error message mentions that Magisk expects references of type `java.util.zip.ZipEntry` but finds `org.apache.commons.compress.archivers.tar.TarArchiveEntry` instead.

The full error message is:

```
E java.lang.VerifyError: Verifier rejected class org.apache.commons.compress.archivers.tar.TarArchiveOutputStream: void org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.addPaxHeadersForBigNumbers(java.util.Map, org.apache.commons.compress.archivers.tar.TarArchiveEntry) failed to verify: void org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.addPaxHeadersForBigNumbers(java.util.Map, org.apache.commons.compress.archivers.tar.TarArchiveEntry): [0x1C] register v9 has type Reference: org.apache.commons.compress.archivers.tar.TarArchiveEntry but expected Reference: java.util.zip.ZipEntry
... (more error lines) ...

at com.topjohnwu.magisk.core.tasks.MagiskInstallImpl.processFile(MagiskInstaller.kt:446)
... (more stack trace lines) ...
```

Anyone have insights into why this might happen and how to resolve the conflict? Thanks!

The article has been posted for too long and comments have been automatically closed.