1.6.0 (2026-07-11)
- Don't use --file-per-class when calling D8 to prevent issues with reserved filenames on Windows (424c041)
- Ignore versioned classes from multi-release JARs (ecb54a8)
- Memory map files using FFM on JDK22+ to fix file locking on Windows (#143) (713d342)
- Reuse mapped files in fast mode (f3f77e2)
- Show more verbose exception if an instruction from the immutable method is passed to mutable method in
addInstructionsWithLabels(). Fix wrong label can be used if multiple labels are specified (d955d8a)
1.6.0-dev.2 (2026-07-09)
- Ignore versioned classes from multi-release JARs (ecb54a8)
- Reuse mapped files in fast mode (f3f77e2)
1.6.0-dev.1 (2026-06-30)
1.5.3-dev.3 (2026-06-29)
- Don't use --file-per-class when calling D8 to prevent issues with reserved filenames on Windows (424c041)
1.5.3-dev.2 (2026-06-29)
1.5.3-dev.1 (2026-06-20)
- Show more verbose exception if an instruction from the immutable method is passed to mutable method in
addInstructionsWithLabels(). Fix wrong label can be used if multiple labels are specified (d955d8a)
1.5.2 (2026-06-10)
- Change Compatibility app name to required if package name is also declared (f68e855)
- Deprecate
MatchAfterAtLeastandMatchAfterRange(172a8aa) - Update to latest ARSCLib (d30cf05)
1.5.2-dev.3 (2026-06-10)
- Change Compatibility app name to required if package name is also declared (f68e855)
1.5.2-dev.2 (2026-06-07)
- Deprecate
MatchAfterAtLeastandMatchAfterRange(172a8aa)
1.5.2-dev.1 (2026-05-31)
- Update to latest ARSCLib (d30cf05)
1.5.1 (2026-05-11)
- Change to fixed upstream ARSCLib (4b3add9)
- Handle fingerprint matchAll() when a method contains multiple string matches (46e06ac)
- Restore backwards compatibility for previously compiled code (c2536be)
- Try all file extensions during dex verification (16bcfdf)
1.5.1-dev.4 (2026-05-10)
- Handle fingerprint matchAll() when a method contains multiple string matches (46e06ac)
1.5.1-dev.3 (2026-05-09)
- Restore backwards compatibility for previously compiled code (c2536be)
1.5.1-dev.2 (2026-05-03)
- Try all file extensions during dex verification (16bcfdf)
1.5.1-dev.1 (2026-05-02)
- Change to fixed upstream ARSCLib (4b3add9)
1.5.0 (2026-04-26)
AppTargetversionCodesfield to restrict patching to specific version code releases (#120) (393fc8f)Compatibilityincluding()andexcluding()methods (#122) (1e0f468)- Instruction match helper methods to get a called method or accessed field (#121) (4908e7b)
1.5.0-dev.3 (2026-04-24)
1.5.0-dev.2 (2026-04-23)
1.5.0-dev.1 (2026-04-23)
AppTargetversionCodesfield to restrict patching to specific version code releases (#120) (393fc8f)
1.4.2 (2026-04-20)
- Do not allow universal patches to be default on (12a4fc1)
- Return defensive copy from
ArsclibResourceCoder.getDeletedFiles(#119) (b0e2dc8) - Update to Android tools 9.1.1 (9779d9b)
1.4.2-dev.3 (2026-04-20)
1.4.2-dev.2 (2026-04-19)
- Update to Android tools 9.1.1 (9779d9b)
1.4.2-dev.1 (2026-04-19)
- Do not allow universal patches to be default on (12a4fc1)
1.4.1 (2026-04-18)
- Bump smali version (7c82594)
1.4.1-dev.1 (2026-04-18)
- Bump smali version (7c82594)
1.4.0 (2026-04-17)
- Separate out desugar libs into separate dex (7fc7a9e)
- Track deleted files in detectFileChanges so getDeletedFiles reports them (#107) (6264104)
- Write modified dex files to final APK when no resource patches are used (#109) (0f401c6)
- Add
matchAll(range)to validate the number of matches (#104) (b28d21a) - Add DEX/APK verification (#110) (61b5de0)
- Map dex files in memory to reduce memory requirements (#106) (85df75e)
- Optimize dex patching (#105) (4e70edb)
1.4.0-dev.7 (2026-04-17)
- Separate out desugar libs into separate dex (7fc7a9e)
1.4.0-dev.6 (2026-04-16)
1.4.0-dev.5 (2026-04-14)
1.4.0-dev.4 (2026-04-13)
1.4.0-dev.3 (2026-04-07)
1.4.0-dev.2 (2026-04-06)
1.4.0-dev.1 (2026-04-05)
1.3.3 (2026-03-28)
- Add Compatibility convenience constructor for patches with 'any' app target (5969af5)
- Handle matchAll when a class fingerprint exists (107f168)
1.3.3-dev.2 (2026-03-24)
- Handle matchAll when a class fingerprint exists (107f168)
1.3.3-dev.1 (2026-03-23)
- Add Compatibility convenience constructor for patches with 'any' app target (5969af5)
1.3.2 (2026-03-22)
1.3.2-dev.1 (2026-03-22)
1.3.1 (2026-03-22)
1.3.1-dev.1 (2026-03-22)
1.3.0 (2026-03-22)
- Changes to resources in RAW_ONLY mode were not being picked up (#78) (5dc1c48)
- RAW_ONLY handling on Windows, uncompressed files (#79) (c25e5f8)
- Set extractNativeLibs to value in manifest by default (#88) (5944eef)
- Speed up slow resource decoding for APKs with duplicate spec strings (#75) (6eff16e)
- Wire keepArchitectures to resource coders (d3519f8)
- Add
classFingerprintfield to Fingerprint (#71) (c808b09) - Add support for stripping native libraries (#83) (bc629ed)
- Expand Compatibility declaration (#73) (ed99716)
- Fingerprint matchAll() functionality (#87) (7660630)
1.3.0-dev.10 (2026-03-21)
1.3.0-dev.9 (2026-03-20)
1.3.0-dev.8 (2026-03-20)
1.3.0-dev.7 (2026-03-19)
- Wire keepArchitectures to resource coders (d3519f8)
1.3.0-dev.6 (2026-03-19)
1.3.0-dev.5 (2026-03-16)
1.3.0-dev.4 (2026-03-15)
1.3.0-dev.3 (2026-03-15)
1.3.0-dev.2 (2026-03-13)
1.3.0-dev.1 (2026-03-10)
1.2.0 (2026-03-07)
- Add missing XML namespaces when renaming package (#65) (6568009)
- Add some extension methods from morphe-library (c2b667b)
- additional use of streaming XML parser to speed up XML processing (#66) (b2d45df)
- Expand theme attribute references during XML processing (#69) (9a2f1ff)
- process generic item XML tags, only process modified XMLs instead of all XMLs (#67) (91e9624)
- Sanitize invalid XML characters in unpatched apk (#54) (86a4087)
- Sanitize strings.xml after decoding resources (#55) (4155343)
- Specify UTF-8 during XML processing to prevent encoding issues on Windows (#58) (842604d)
- Use streaming XML processing (#56) (e9d56d0)
- Add a version code field to
PackageMetadata(#47) (c8800fd) - Add public packageMetadata to
ResourcePatchContext(b2e7df8) - Decouple morphe-library and morphe-patcher (#60) (1785631)
- Use arsclib during resource encoding/decoding and fix memory leaks (#48) (7d0f837)
1.2.0-dev.13 (2026-03-05)
1.2.0-dev.12 (2026-03-05)
1.2.0-dev.11 (2026-03-02)
1.2.0-dev.10 (2026-03-02)
1.2.0-dev.9 (2026-02-28)
- Add some extension methods from morphe-library (c2b667b)
1.2.0-dev.8 (2026-02-28)
1.2.0-dev.7 (2026-02-28)
1.2.0-dev.6 (2026-02-26)
1.2.0-dev.5 (2026-02-25)
1.2.0-dev.4 (2026-02-24)
1.2.0-dev.3 (2026-02-21)
1.2.0-dev.2 (2026-02-21)
1.2.0-dev.1 (2026-02-09)
- Add public packageMetadata to
ResourcePatchContext(b2e7df8)
1.1.1 (2026-02-04)
1.1.1-dev.1 (2026-02-04)
1.1.0 (2026-02-02)
- Extend
methodCalldefining class/name toFingerprint, add additional defining class comparison methods (#38) (2a7b618)
- Add methods to find all classes by String (dcb13f3)
1.1.0-dev.1 (2026-02-01)
- Extend
methodCalldefining class/name toFingerprint, add additional defining class comparison methods (#38) (2a7b618)
1.0.2-dev.1 (2026-01-22)
- Add methods to find all classes by String (dcb13f3)
1.0.1 (2026-01-10)
- Allow
matchAfterWithin()to be used on the first filter (2fe26bc)
1.0.1-dev.1 (2026-01-08)
- Allow
matchAfterWithin()to be used on the first filter (2fe26bc)