revanced-patcher/CHANGELOG.md
2022-07-24 16:30:57 +00:00

46 KiB

2.5.2 (2022-07-24)

2.5.1 (2022-07-17)

Bug Fixes

  • close stream when closing DomFileEditor (77604d4)

2.5.0 (2022-07-11)

Bug Fixes

  • missing additional items [skip ci] (0ebab8b)

Features

  • feature request issue template (1b39278)
  • issue templates [skip ci] (112bc99)

2.4.0 (2022-07-09)

Features

2.3.1 (2022-07-07)

Bug Fixes

2.3.0 (2022-07-05)

Features

  • nullability for BytecodePatch constructor (#59) (4ea030d)

2.2.2 (2022-07-04)

Bug Fixes

  • MethodWalker not accounting for all reference instructions (48068cb)

2.2.1 (2022-07-03)

Bug Fixes

  • more useful error message (4b2e323)

2.2.0 (2022-07-02)

Bug Fixes

  • DomFileEditor opening in- and output streams on the same file (83187c9)

Features

  • remove deprecated functions (ada5a03)
  • streams overload for XmlFileHolder (6f72c4c)

2.2.0-dev.3 (2022-07-02)

Bug Fixes

  • DomFileEditor opening in- and output streams on the same file (83187c9)

2.2.0-dev.2 (2022-07-02)

Features

  • streams overload for XmlFileHolder (6f72c4c)

2.2.0-dev.1 (2022-07-02)

Features

  • remove deprecated functions (ada5a03)

2.1.2 (2022-06-29)

Bug Fixes

  • invert fingerprint resolution condition of customFingerprint (e2faf4c)

2.1.1 (2022-06-28)

2.1.0 (2022-06-28)

Features

  • log failed patches due to failed dependencies (a467fbb)

2.0.4 (2022-06-27)

2.0.3 (2022-06-27)

2.0.2 (2022-06-27)

2.0.1 (2022-06-26)

Bug Fixes

  • use Exception instead of MethodNotFoundException (2fc4ec4)

2.0.0 (2022-06-26)

Code Refactoring

  • migrate from Signature to Fingerprint (efa8ea1)

BREAKING CHANGES

  • Not backwards compatible, since a lot of classes where renamed.

1.11.0 (2022-06-24)

Features

  • add replace and remove extensions (#50) (92ac5e4)

1.10.2 (2022-06-23)

Bug Fixes

  • dexlib must be propagated (b738dcd)

1.10.1 (2022-06-23)

Bug Fixes

  • callback only when inteded (e3bf367)
  • mutability of local variable modified (0e87ef5)

1.10.0 (2022-06-23)

Features

1.9.0 (2022-06-22)

Bug Fixes

  • callback for each file instead of class (930768d)

Features

1.8.0 (2022-06-22)

Features

1.7.2 (2022-06-22)

Bug Fixes

  • add execute permission to ./gradlew file (#46) (34f607a)

1.7.1 (2022-06-22)

Reverts

  • revert "feat: use of java.util.logging.Logger" (e8488b3)

1.7.0 (2022-06-22)

Features

  • migrate logger to slf4j (8f66f9f)

1.6.0 (2022-06-22)

Features

  • use of java.util.logging.Logger (9c39c9e)

1.5.0 (2022-06-22)

Features

  • use streams to write the dex files (64bae88)

1.4.0 (2022-06-22)

Features

  • return a File instance instead of ExtFile (68174bb)

1.3.4 (2022-06-21)

Bug Fixes

1.3.3 (2022-06-21)

Bug Fixes

  • add docs (trigger release) (6628b78)

Reverts

1.3.2 (2022-06-21)

Bug Fixes

  • return resourceFile to caller (1f75777)

1.3.1 (2022-06-21)

Bug Fixes

  • InlineSmaliCompiler.compile using 0 registers instead of 1 by default (835a421)

1.3.0 (2022-06-20)

Features

  • parametersCount for InlineSmaliCompiler instead of parameters (ad6c5c8)
  • simplify adding instructions (e47b67d)

1.2.9 (2022-06-20)

Bug Fixes

1.2.8 (2022-06-18)

Bug Fixes

1.2.7 (2022-06-18)

Bug Fixes

  • version not working with apktool due to cache (03f5ee0)

1.2.6 (2022-06-18)

Bug Fixes

  • remove javadoc jar (also trigger release) (56f6ca3)

1.2.5 (2022-06-17)

Bug Fixes

1.2.4 (2022-06-15)

Reverts

1.2.3 (2022-06-14)

Bug Fixes

1.2.2 (2022-06-14)

Bug Fixes

1.2.1 (2022-06-14)

Bug Fixes

  • Patcher setting BuildOptions too late (6a5c873)

1.2.0 (2022-06-14)

Features

  • allow custom framework path to be specified (d3a580e)

1.1.0 (2022-06-11)

Bug Fixes

Features

  • allow custom aapt path to be specified (8eb4a8f)

1.0.0 (2022-06-05)

Bug Fixes

  • compareSignatureToMethod not matching correctly in case opcodes are null (cca12aa)
  • ConcurrentModificationException while iterating through proxies and modifying it (6cb7cdb)
  • JarPatchBundle loading non-class files to class loader (849616d)
  • PackageMetadata (7399450)
  • replaceWith not replacing classes with used class proxies (4178a1e)
  • adding existing classes to the patchers cache (9659a61)
  • always return PatchResultSuccess on patch success (996c4ac)
  • applying no patches throwing error (5ca5a1c)
  • applyPatches not returning successful patches (f806cb3)
  • avoid ignoring test resources (fixes #1) (d5a3c76)
  • Classes not being written properly because of array shifting (6e4db11)
  • current must be calculated after increment (5f12bab)
  • failing tests temporarily (fc05fe7)
  • fix classes having multiple instances of fields (7cc8a7d)
  • fix classes having multiple method instances (398239d)
  • Fixed writer & signature resolver, improved tests & speed, minor refactoring (e6c2501)
  • fuzzy resolver warning params were turned around (e5bea06)
  • give ClassWriter a ClassReader for symtable (41749ba)
  • gradle: publish source and javadocs (c236ebe)
  • incorrect pattern offset (f3b5f67)
  • Io: fix finding classes by name (b957501)
  • Io: JAR loading and saving (#8) (310a7c4)
  • make methodMetadata nullable in MethodSignatureMetadata (4e56652)
  • make warnings nullable instead of lateinit (8f1a629)
  • match to correct signature method parameters (1ee2e4b)
  • MethodResolver: fix cd57a8c9a0 (cbd8df2)
  • MethodResolver: strip labels and line numbers so opcode patterns match (699c730)
  • MethodResolver: strip labels nodes so opcode patterns match (82c5306)
  • MethodSignature#resolved throwing an exception (c612676)
  • Move proxy package out of cache package (ce21bd6)
  • null check causing an exception (338bd9f)
  • nullable signature members (#10) (674461f)
  • Patch should have access to the Cache (4dd820f)
  • Patcher not writing resolved methods (fac44a5)
  • qualifying Element with wrong package (024fa86)
  • reaching all constructors not possible (c459beb)
  • reformat (trigger release) (bf48945)
  • remove broken code (0e72a6e)
  • remove dependency to fork of Apktool (11abc67)
  • remove leftover debug code (0f30eac)
  • return mutable set of classes (66a9b76)
  • returning failure on success (48c4ea2)
  • Search method map for existing class proxy (a1e909b)
  • set index for insertAt to 0 by default (d5b4c99)
  • set marklimit to Integer.MAX_VALUE (e6e468f)
  • string signature in SignatureResolver (e5ae970)
  • Suppress unused for addFiles (3d6a1d3)
  • throwing in case the opcode patterns do not match (3144ec8)
  • use Array instead of Iterable for methodParameters (dfac8f0)
  • using old instance of Androlib when saving (a4d8be2)
  • workflow on dev branch (428f7f4)
  • write all classes (f068fc8)

Code Refactoring

  • bump multidexlib2 to 2.5.2.r2 (a6c6b49)
  • Change all references from Array to Iterable (72f3cad)
  • convert Patch to abstract class (cb9b1b9)
  • Optimize Signature class (#11) (7faa001)
  • Rename net.revanced to app.revanced (7087230)

Features

  • Dependencies annotation (893d4c6)
  • PatchLoader (ec9fd15)
  • Add findParentMethod utility method (#4) (bbb2c54)
  • add MethodWalker (7755bbc)
  • add p naming scheme to smali compiler (79909cf)
  • add extensions for cloning methods (01bfbd6)
  • add findClass method with className (4087f49)
  • Add first tests (544bcf7)
  • add fuzzy resolver (7a56dca)
  • add immutableMethod (c63b20f)
  • add inline smali compiler (bfe4e3e)
  • add missing test for fields (6b8b057)
  • add or extension for AccessFlags (00c85b5)
  • Add patch metadata (642e903), closes ReVancedTeam/revanced-patches#1
  • add SafeClassWriter (6626014)
  • Add warnings for Fuzzy resolver (715a2ad)
  • allow classes to be overwritten in addFiles and resolve signatures when applyPatches is called (1db735b)
  • Allow unknown opcodes using null (0e5f4ba)
  • Finish first patcher test (0d8d19e)
  • Improve SignatureResolver (139a23b)
  • migrate to DexPatchBundle and JarPatchBundle (8615798)
  • migrate to dexlib (3651981)
  • Minor refactor and return proxy, if class has been proxied already (4b26305)
  • optional forStaticMethod parameter for InlineSmaliCompiler.compileMethodInstructions (41e8860)
  • patch dependencies annotation and PatcherOptions (6c65952)
  • properly manage ClassProxy & add ProxyBackedClassList (6cb1fdf)
  • remaining mutable EncodedValue classes (3f97cc8)
  • string signature (#22) (612515a)
  • use annotations instead of metadata objects (d20f7fd)
  • utility functions to get metadata of patch & sigs (54511a4)

Performance Improvements

  • check type instead of class (c7ef264)
  • decode manifest only when not using resource patcher (4f60bea)
  • depend on androlib instead of ApkDecoder (cc9416d)
  • do not resolve empty signatures list (b1eebc9)
  • lazy-ify all mutable clones (d18a3b6)
  • optimize indexOf call away (9991f39)
  • use Set instead of List since there are no dupes (e65ebd2)
  • use String List and compare instead of any lambda (5bd416b)

Reverts

  • AccessFlag extensions not working with IDE (0bfb92a)
  • previous commits check for dupes in dexFile, not cache (e810197)

BREAKING CHANGES

  • arrayOf has to be changed to listOf.
  • Method signature of Patcher#save() was changed to comply with the changes of multidexlib2.
  • Removed usage of ASM library
  • Array was changed to IntArray. This breaks existing patches.
  • Package name was changed from "net.revanced" to "app.revanced"
  • Method signature of execute() was changed to include the cache, this will break existing implementations of the Patch class.
  • Patch class is now an abstract class. You must implement it. You can use anonymous implements, like done in the tests.

1.0.0-dev.18 (2022-06-04)

Features

  • Dependencies annotation (83d608a)
  • optional forStaticMethod parameter for InlineSmaliCompiler.compileMethodInstructions (28b9847)

1.0.0-dev.17 (2022-05-31)

Features

  • patch dependencies annotation and PatcherOptions (8442991)

1.0.0-dev.16 (2022-05-27)

Bug Fixes

  • JarPatchBundle loading non-class files to class loader (3f0c740)
  • remove dependency to fork of Apktool (0fa529f)

Features

  • migrate to DexPatchBundle and JarPatchBundle (7573db2)

1.0.0-dev.15 (2022-05-25)

Features

  • utility functions to get metadata of patch & sigs (72f16b7)

1.0.0-dev.14 (2022-05-24)

Bug Fixes

  • reformat (trigger release) (45a167e)

1.0.0-dev.13 (2022-05-24)

Performance Improvements

  • decode manifest only when not using resource patcher (40b1fa4)

1.0.0-dev.12 (2022-05-22)

Bug Fixes

  • using old instance of Androlib when saving (5630e49)

1.0.0-dev.11 (2022-05-22)

Features

  • PatchLoader (1a99eca)
  • use annotations instead of metadata objects (6726884)

1.0.0-dev.10 (2022-05-07)

Bug Fixes

  • qualifying Element with wrong package (4d74de4)

1.0.0-dev.9 (2022-05-07)

Bug Fixes

  • compareSignatureToMethod not matching correctly in case opcodes are null (5ae5e98)
  • ConcurrentModificationException while iterating through proxies and modifying it (bfeeaf4)
  • PackageMetadata (305a817)
  • replaceWith not replacing classes with used class proxies (f0f3403)
  • adding existing classes to the patchers cache (4281546)
  • always return PatchResultSuccess on patch success (866b03a)
  • applying no patches throwing error (f88c118)
  • applyPatches not returning successful patches (8b70bb4)
  • Classes not being written properly because of array shifting (1471956)
  • failing tests temporarily (66b08f8)
  • fix classes having multiple instances of fields (b711b80)
  • fix classes having multiple method instances (12c10d8)
  • Fixed writer & signature resolver, improved tests & speed, minor refactoring (bb42fa3)
  • fuzzy resolver warning params were turned around (d49df10)
  • incorrect pattern offset (03700ff)
  • make methodMetadata nullable in MethodSignatureMetadata (864e38c)
  • make warnings nullable instead of lateinit (04b49b8)
  • match to correct signature method parameters (c49071a)
  • MethodSignature#resolved throwing an exception (82b1e66)
  • Move proxy package out of cache package (6bc4e7e)
  • null check causing an exception (560c485)
  • Patcher not writing resolved methods (d15240d)
  • reaching all constructors not possible (37fa994)
  • remove leftover debug code (4458141)
  • return mutable set of classes (84bc7e0)
  • returning failure on success (3b68d5c)
  • Search method map for existing class proxy (d5e694c)
  • string signature in SignatureResolver (ac36d19)
  • Suppress unused for addFiles (a0d6d46)
  • throwing in case the opcode patterns do not match (f72dd68)
  • use Array instead of Iterable for methodParameters (312235b)
  • write all classes (6ad51aa)

Code Refactoring

  • bump multidexlib2 to 2.5.2.r2 (32e6458)
  • Change all references from Array to Iterable (264989f)

Features

  • add MethodWalker (659e108)
  • add p naming scheme to smali compiler (38556d6)
  • add extensions for cloning methods (df7503b)
  • add findClass method with className (78235d1)
  • Add first tests (6767c8f)
  • add fuzzy resolver (a492808)
  • add immutableMethod (eed1cfd)
  • add inline smali compiler (dbafe2a)
  • add missing test for fields (4022b8b)
  • add or extension for AccessFlags (aec5eeb)
  • Add patch metadata (8544fc4), closes ReVancedTeam/revanced-patches#1
  • Add warnings for Fuzzy resolver (643a14e)
  • allow classes to be overwritten in addFiles and resolve signatures when applyPatches is called (5f71a34)
  • Allow unknown opcodes using null (f4a47d4)
  • Finish first patcher test (a9e4e8a)
  • Improve SignatureResolver (88a6a27)
  • migrate to dexlib (be51f42)
  • Minor refactor and return proxy, if class has been proxied already (2d3c611)
  • properly manage ClassProxy & add ProxyBackedClassList (2319787)
  • remaining mutable EncodedValue classes (7d38bb0)
  • string signature (#22) (c245edb)

Performance Improvements

  • depend on androlib instead of ApkDecoder (e5c054a)
  • do not resolve empty signatures list (1f7bf3a)
  • lazy-ify all mutable clones (05e4400)
  • optimize indexOf call away (f8e978a)
  • use Set instead of List since there are no dupes (6221387)
  • use String List and compare instead of any lambda (aed4fd9)

Reverts

  • AccessFlag extensions not working with IDE (e161f7f)
  • previous commits check for dupes in dexFile, not cache (433914f)

BREAKING CHANGES

  • arrayOf has to be changed to listOf.
  • Method signature of Patcher#save() was changed to comply with the changes of multidexlib2.
  • Removed usage of ASM library

1.0.0-dev.8 (2022-03-24)

Performance Improvements

  • check type instead of class (47eb493)

1.0.0-dev.7 (2022-03-24)

Bug Fixes

1.0.0-dev.6 (2022-03-24)

Bug Fixes

  • MethodResolver: strip labels nodes so opcode patterns match (cd57a8c)

1.0.0-dev.5 (2022-03-24)

Bug Fixes

  • MethodResolver: strip labels and line numbers so opcode patterns match (8d1bb5f)

1.0.0-dev.4 (2022-03-23)

Bug Fixes

  • give ClassWriter a ClassReader for symtable (e8f6973)

1.0.0-dev.3 (2022-03-23)

Features

1.0.0-dev.2 (2022-03-23)

Bug Fixes

  • set marklimit to Integer.MAX_VALUE (ab6453c)

1.0.0-dev.1 (2022-03-23)

Bug Fixes

  • avoid ignoring test resources (fixes #1) (d5a3c76)
  • current must be calculated after increment (5f12bab)
  • gradle: publish source and javadocs (87bbde5)
  • Io: fix finding classes by name (460d62a)
  • Io: JAR loading and saving (#8) (4d98cbc)
  • nullable signature members (#10) (8db8893)
  • Patch should have access to the Cache (6c0f082)
  • remove broken code (0e72a6e)
  • set index for insertAt to 0 by default (1769132)
  • workflow on dev branch (7e67daf)

Code Refactoring

  • convert Patch to abstract class (23e897a)
  • Optimize Signature class (#11) (49beec9)
  • Rename net.revanced to app.revanced (3ab42a9)

Features

  • Add findParentMethod utility method (#4) (00c6ab7)

BREAKING CHANGES

  • Array was changed to IntArray. This breaks existing patches.
  • Package name was changed from "net.revanced" to "app.revanced"
  • Method signature of execute() was changed to include the cache, this will break existing implementations of the Patch class.
  • Patch class is now an abstract class. You must implement it. You can use anonymous implements, like done in the tests.