Skip to content

Latest commit

Β 

History

History
367 lines (254 loc) Β· 32 KB

CHANGELOG.md

File metadata and controls

367 lines (254 loc) Β· 32 KB

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

Bug Fixes

  • compareSignatureToMethod not matching correctly in case opcodes are null (5ae5e98)
  • ConcurrentModificationException while iterating through proxies and modifying it (bfeeaf4)
  • JarPatchBundle loading non-class files to class loader (3f0c740)
  • 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)
  • avoid ignoring test resources (fixes #1) (d5a3c76)
  • Classes not being written properly because of array shifting (1471956)
  • current must be calculated after increment (5f12bab)
  • 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)
  • give ClassWriter a ClassReader for symtable (e8f6973)
  • gradle: publish source and javadocs (87bbde5)
  • incorrect pattern offset (03700ff)
  • Io: fix finding classes by name (460d62a)
  • Io: JAR loading and saving (#8) (4d98cbc)
  • make methodMetadata nullable in MethodSignatureMetadata (864e38c)
  • make warnings nullable instead of lateinit (04b49b8)
  • match to correct signature method parameters (c49071a)
  • MethodResolver: fix cd57a8c9a0db7e3ae5ad0bca202e5955930319ab (1af31b2)
  • MethodResolver: strip labels and line numbers so opcode patterns match (8d1bb5f)
  • MethodResolver: strip labels nodes so opcode patterns match (cd57a8c)
  • MethodSignature#resolved throwing an exception (82b1e66)
  • Move proxy package out of cache package (6bc4e7e)
  • null check causing an exception (560c485)
  • nullable signature members (#10) (8db8893)
  • Patch should have access to the Cache (6c0f082)
  • Patcher not writing resolved methods (d15240d)
  • qualifying Element with wrong package (4d74de4)
  • reaching all constructors not possible (37fa994)
  • reformat (trigger release) (45a167e)
  • remove broken code (0e72a6e)
  • remove dependency to fork of Apktool (0fa529f)
  • remove leftover debug code (4458141)
  • return mutable set of classes (84bc7e0)
  • returning failure on success (3b68d5c)
  • Search method map for existing class proxy (d5e694c)
  • set index for insertAt to 0 by default (1769132)
  • set marklimit to Integer.MAX_VALUE (ab6453c)
  • 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)
  • using old instance of Androlib when saving (5630e49)
  • workflow on dev branch (7e67daf)
  • write all classes (6ad51aa)

Code Refactoring

  • bump multidexlib2 to 2.5.2.r2 (32e6458)
  • Change all references from Array to Iterable (264989f)
  • convert Patch to abstract class (23e897a)
  • Optimize Signature class (#11) (49beec9)
  • Rename net.revanced to app.revanced (3ab42a9)

Features

  • PatchLoader (1a99eca)
  • Add findParentMethod utility method (#4) (00c6ab7)
  • 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 SafeClassWriter (ca6b94d)
  • 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 DexPatchBundle and JarPatchBundle (7573db2)
  • migrate to dexlib (be51f42)
  • Minor refactor and return proxy, if class has been proxied already (2d3c611)
  • patch dependencies annotation and PatcherOptions (8442991)
  • properly manage ClassProxy & add ProxyBackedClassList (2319787)
  • remaining mutable EncodedValue classes (7d38bb0)
  • string signature (#22) (c245edb)
  • use annotations instead of metadata objects (6726884)
  • utility functions to get metadata of patch & sigs (72f16b7)

Performance Improvements

  • check type instead of class (47eb493)
  • decode manifest only when not using resource patcher (40b1fa4)
  • 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
  • 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.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

  • MethodResolver: fix cd57a8c9a0db7e3ae5ad0bca202e5955930319ab (1af31b2)

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.