20.0.2 (2024-10-17)
Bug Fixes
- Make it work on Android 12 and lower by using existing APIs (#312) (a44802e)
Bug Fixes
- Make it work on Android 12 and lower by using existing APIs (#312) (a44802e)
20.0.1 (2024-10-13)
Bug Fixes
- Check for class type exactly instead of with contains (#310) (69f2f20)
- Make it work on Android by not using APIs from JVM unavailable to Android. (2be6e97)
- Use non-nullable type for options (ea6fc70)
Performance Improvements
- Free memory earlier and remove negligible lookup maps (d53aacd)
Bug Fixes
- Use non-nullable type for options (ea6fc70)
Bug Fixes
- Make it work on Android by not using APIs from JVM unavailable to Android. (2be6e97)
Performance Improvements
- Free memory earlier and remove negligible lookup maps (d53aacd)
Bug Fixes
- Check for class type exactly instead of with contains (#310) (69f2f20)
20.0.0 (2024-08-06)
Bug Fixes
- Downgrade smali to fix dex compilation issue (5227e98)
- Improve exception message wording (5481d0c)
- Make constructor internal as supposed (7f44174)
- Merge all extensions before initializing lookup maps (8c4dd5b)
- Use null for compatible package version when adding packages only (736b3ee)
Features
- Add ability to create options outside of a patch (d310246)
- Convert APIs to Kotlin DSL (#298) (11a911d)
BREAKING CHANGES
- Various old APIs are removed, and DSL APIs are added instead.
Bug Fixes
- Improve exception message wording (bd434ce)
Bug Fixes
- Make constructor internal as supposed (e95fcd1)
Features
- Add ability to create options outside of a patch (b8d763a)
Bug Fixes
- Downgrade smali to fix dex compilation issue (714447d)
- Merge all extensions before initializing lookup maps (328aa87)
- Use null for compatible package version when adding packages only (a8e8fa4)
Features
BREAKING CHANGES
- Various old APIs are removed, and DSL APIs are added instead.
19.3.1 (2024-02-14)
19.3.0 (2024-02-14)
Bug Fixes
- Use
Patch#toString
to get patch class name, when no name available (c9a8260)
Features
- Read and write arbitrary files in APK files (f1d7217)
Features
- Read and write arbitrary files in APK files (f1d7217)
Bug Fixes
- Use
Patch#toString
to get patch class name, when no name available (c9a8260)
19.2.0 (2023-12-28)
Bug Fixes
- Accept
PatchSet
in PatchesConsumer#acceptPatches
(716825f)
Features
- Add
PatchExtensions#registerNewPatchOption
function to simplify instantiation and registration of patch options (4a91845)
Features
- Add
PatchExtensions#registerNewPatchOption
function to simplify instantiation and registration of patch options (4a91845)
Bug Fixes
- Accept
PatchSet
in PatchesConsumer#acceptPatches
(716825f)
19.1.0 (2023-12-01)
Features
- Add constructor to initialize patches without annotations (462fbe2)
- Retrieve annotations in super and interface classes (7aeae93)
Performance Improvements
- Use a hash set for fast lookup (f1de9b3)
Features
- Add constructor to initialize patches without annotations (462fbe2)
- Retrieve annotations in super and interface classes (7aeae93)
Performance Improvements
- Use a hash set for fast lookup (f1de9b3)
19.0.0 (2023-10-24)
Features
- Add
PatchOption#valueType
to handle type erasure (a46e948)
BREAKING CHANGES
- This changes the signature of the
PatchOption
constructor.
Features
- Add
PatchOption#valueType
to handle type erasure (a46e948)
BREAKING CHANGES
- This changes the signature of the
PatchOption
constructor.
18.0.0 (2023-10-22)
Bug Fixes
- Do not set patch fields if they are empty (a76ac04)
- Only allow setting
MethodFingerprint#result
privately (aed1eac)
Code Refactoring
Features
- Add function to reset options to their default value (ebbaafb)
- Add function to reset options to their default value (e6de90d)
- Add getter for default option value (c7922e9)
- Make
PatchOption#values
nullable (56ce9ec)
- Name patch option value validator property correctly (caa634f)
- Remove patch annotation processor (4456031)
- Use a map for
PatchOption#values
(54ac139)
Performance Improvements
- Run the garbage collector after writing dex files (d9fb241)
BREAKING CHANGES
- The
MethodFingerprint#result
member can now only be set inside MethodFingerprint
.
- The
Fingerprint
interface is no longer present.
- Some extension functions are now member functions.
- This gets rid of data class members.
- Some deprecated classes and members are not present anymore.
- Classes and members have changed packages.
- This gets rid of the existing basic implementations of the
PatchOptions
type and moves extension functions.
- This changes the getter name of the property.
- Various patch constructor signatures have changed.
Bug Fixes
- Only allow setting
MethodFingerprint#result
privately (aed1eac)
Code Refactoring
BREAKING CHANGES
- The
MethodFingerprint#result
member can now only be set inside MethodFingerprint
.
- The
Fingerprint
interface is no longer present.
- Some extension functions are now member functions.
- This gets rid of data class members.
- Some deprecated classes and members are not present anymore.
- Classes and members have changed packages.
Bug Fixes
- Do not set patch fields if they are empty (a76ac04)
Features
- Use a map for
PatchOption#values
(54ac139)
Features
- Make
PatchOption#values
nullable (56ce9ec)
Code Refactoring
- Change
PatchOption
from abstract to open class (09cd6aa)
Features
- Add function to reset options to their default value (ebbaafb)
- Add function to reset options to their default value (e6de90d)
- Add getter for default option value (c7922e9)
- Name patch option value validator property correctly (caa634f)
BREAKING CHANGES
- This gets rid of the existing basic implementations of the
PatchOptions
type and moves extension functions.
- This changes the getter name of the property.
Features
- Remove patch annotation processor (4456031)
BREAKING CHANGES
- Various patch constructor signatures have changed.
Performance Improvements
- Run the garbage collector after writing dex files (d9fb241)
17.0.0 (2023-10-09)
Features
- Add option to use single threaded writer for dex files (77dbee3)
BREAKING CHANGES
- This commit gets rid of deprecated constructors.
Features
- Add option to use single threaded writer for dex files (77dbee3)
BREAKING CHANGES
- This commit gets rid of deprecated constructors.
16.0.2 (2023-10-06)
Performance Improvements
- Use a map to merge integrations classes (6059d3c)
Performance Improvements
- Use a map to merge integrations classes (6059d3c)
16.0.1 (2023-10-05)
Bug Fixes
- Merge integrations when required (06c2b76)
Bug Fixes
- Merge integrations when required (06c2b76)
16.0.0 (2023-10-04)
Bug Fixes
- Use correct super class type (f590436)
BREAKING CHANGES
- This changes the super classes of some
PatchOptionException
classes
Bug Fixes
- Use correct super class type (f590436)
BREAKING CHANGES
- This changes the super classes of some
PatchOptionException
classes
15.0.3 (2023-10-01)
Bug Fixes
- Fix SMALI compilation on devices with RTL language (#242) (356f1f1)
Bug Fixes
- Fix SMALI compilation on devices with RTL language (#242) (356f1f1)
15.0.2 (2023-09-27)
Performance Improvements
- Do not unnecessary resolve fingeprints twice (#241) (4d6e08a)
Performance Improvements
- Do not unnecessary resolve fingeprints twice (#241) (4d6e08a)
15.0.1 (2023-09-20)
Bug Fixes
Bug Fixes
15.0.0 (2023-09-18)
Bug Fixes
- Account for source patch dependency for tests (6918418)
- Always make the generated patch depend on the source patch (8de3063)
- Catch correct exception (637d487)
- Delegate
PatchBundleLoader
by mutable set of patches (9a109c1)
- Do not resolve the proxied patch to the proxy in the dependency list (e112837)
- Do not set
CompatiblePackage.versions
if @CompatiblePackage.versions
is empty (6b1e0a1)
- Filter for patches correctly (4bc4b0d)
- Find dependency in
context.allPatches
(670f015)
- Log the correct patch names (9fdb8f0)
- Make
CompatiblePackage.versions
a property (67b7dff)
- Print patch name instead of class name (4e7811e)
- Print stack trace of exception (aa71146)
- Run code-block if
executablePatches
does not yet contain patch
(1d7aeca)
- Suppress logger when loading patches in
PatchBundleLoader
(72c9eb2)
- Use correct module name (080fbe9)
Code Refactoring
Internalize processor constructor (a802d0d)
feat Use Set
as super type for PatchBundleLoader
(4b76d19)
feat!: Add patch annotation processor (3fc6a13)
feat!: Remove patch annotations (3b4db3d)
Features
BREAKING CHANGES
- This gets rid of the public constructor.
PatchBundleLoader
is not a map anymore
- This renames packages and the Maven package.
- The manifest for patches has been removed, and the properties have been added to patches. Patches are now
OptionsContainer
. The @Patch
annotation has been removed in favour of the @Patch
annotation from the annotation processor.
- Patch annotations have been removed. PatcherException is now thrown in various places. PatchBundleLoader is now a map of patches associated by their name. Patches are now instances.
Bug Fixes
- Account for source patch dependency for tests (6918418)
- Always make the generated patch depend on the source patch (8de3063)
- Catch correct exception (637d487)
- Delegate
PatchBundleLoader
by mutable set of patches (9a109c1)
- Do not resolve the proxied patch to the proxy in the dependency list (e112837)
- Do not set
CompatiblePackage.versions
if @CompatiblePackage.versions
is empty (6b1e0a1)
- Filter for patches correctly (4bc4b0d)
- Find dependency in
context.allPatches
(670f015)
- Log the correct patch names (9fdb8f0)
- Print patch name instead of class name (4e7811e)
- Print stack trace of exception (aa71146)
- Run code-block if
executablePatches
does not yet contain patch
(1d7aeca)
- Suppress logger when loading patches in
PatchBundleLoader
(72c9eb2)
Code Refactoring
- Internalize processor constructor (a802d0d)
BREAKING CHANGES
- This gets rid of the public constructor.
Bug Fixes
BREAKING CHANGES
PatchBundleLoader
is not a map anymore
- This renames packages and the Maven package.
- feat!: Add patch annotation processor (3fc6a13)
- feat!: Remove patch annotations (3b4db3d)
Features
BREAKING CHANGES
- The manifest for patches has been removed, and the properties have been added to patches. Patches are now
OptionsContainer
. The @Patch
annotation has been removed in favour of the @Patch
annotation from the annotation processor.
- Patch annotations have been removed. PatcherException is now thrown in various places. PatchBundleLoader is now a map of patches associated by their name. Patches are now instances.
14.2.2 (2023-08-30)
Bug Fixes
- allow setting
DexClassLoader.optimizedDirectory
(11a3378)
Bug Fixes
- allow setting
DexClassLoader.optimizedDirectory
(11a3378)
14.2.1 (2023-08-27)
Bug Fixes
- do not flag resource table as sparse when main package is not loaded (b832812)
Bug Fixes
- do not flag resource table as sparse when main package is not loaded (b832812)
14.2.0 (2023-08-27)
Features
- load patches in lexicographical order (e8f2087)
- log when merging integrations (983563e)
Performance Improvements
Performance Improvements
Features
- log when merging integrations (983563e)
Features
- load patches in lexicographical order (e8f2087)
14.1.0 (2023-08-24)
Bug Fixes
- move version properties file to correct package (e985676)
Features
- properly make use of logging facade (ba56a6a)
Features
- properly make use of logging facade (ba56a6a)
Bug Fixes
- move version properties file to correct package (e985676)
14.0.0 (2023-08-22)
Bug Fixes
- log decoding resources after logging deleting resource cache directory (db62a16)
- only emit closed patches that did not throw an exception with the
@Patch
annotation (5938f6b)
- supply the parent classloader to
DexClassLoader
(0f15077)
Code Refactoring
- improve structure and public API (6b8977f)
Features
- do not log instantiation of ReVanced Patcher (273dd8d)
BREAKING CHANGES
- Various public APIs have been changed. The
Version
annotation has been removed. Patches do not return anything anymore and instead throw PatchException
. Multiple patch bundles can now be loaded in a single ClassLoader to bypass class loader isolation.
Bug Fixes
- only emit closed patches that did not throw an exception with the
@Patch
annotation (5938f6b)
Bug Fixes
- supply the parent classloader to
DexClassLoader
(0f15077)
Features
- do not log instantiation of ReVanced Patcher (273dd8d)
Bug Fixes
- log decoding resources after logging deleting resource cache directory (db62a16)
Code Refactoring
- improve structure and public API (6b8977f)
BREAKING CHANGES
- Various public APIs have been changed. The
Version
annotation has been removed. Patches do not return anything anymore and instead throw PatchException
. Multiple patch bundles can now be loaded in a single ClassLoader to bypass class loader isolation.
13.0.0 (2023-08-14)
Bug Fixes
BREAKING CHANGES
- This bump updates smali, a crucial dependency
Bug Fixes
- decode in correct order (8fb2f2d)
- only enable logging for ReVanced (783ccf8)
Bug Fixes
- disable correct loggers (c2d89c6)
- get framework ids to compile resources (f2cb7ee)
- set package metadata correctly (02d6ff1)
- build(Needs bump)!: Bump dependencies (d5f89a9)
BREAKING CHANGES
- This bump updates smali, a crucial dependency
12.1.1 (2023-08-03)
Bug Fixes
- clear method lookup maps before initializing them (#210) (746544f)
Bug Fixes
- clear method lookup maps before initializing them (#210) (746544f)
12.1.0 (2023-08-03)
Features
- add
MutableMethod.getInstructions
extension function (fae4029)
Features
- add
MutableMethod.getInstructions
extension function (fae4029)
12.0.0 (2023-07-30)
Bug Fixes
- correct access flags of
PackageMetadata
(416d691)
- set resource table via resource decoder (e0f8e1b)
Features
BREAKING CHANGES
- This removes the previously available
Path
option
Features
- Deprecate
Version
annotation (400442f)
Bug Fixes
- correct access flags of
PackageMetadata
(416d691)
- set resource table via resource decoder (e0f8e1b)
Features
BREAKING CHANGES
- This removes the previously available
Path
option
11.0.4 (2023-07-01)
Bug Fixes
Bug Fixes
11.0.3 (2023-06-30)
Bug Fixes
Bug Fixes
11.0.2 (2023-06-27)
Bug Fixes
- catch exceptions from closing patches (d5d6f85)
- do not load annotations as patches (519359a)
- only close succeeded patches (b8151eb)
- use
versionCode
if versionName
is unavailable (6e1b647)
Performance Improvements
- resolve fingerprints using method maps (#185) (d718134)
Bug Fixes
- do not load annotations as patches (519359a)
Performance Improvements
- resolve fingerprints using method maps (#185) (d718134)
Bug Fixes
- use
versionCode
if versionName
is unavailable (6e1b647)
Bug Fixes
- catch exceptions from closing patches (d5d6f85)
- only close succeeded patches (b8151eb)
11.0.1 (2023-06-12)
Bug Fixes
- revert using
OutputStream.nullOutputStream
(f02a426)
Bug Fixes
- revert using
OutputStream.nullOutputStream
(f02a426)
11.0.0 (2023-06-10)
Bug Fixes
add imports to fix failing tests (43d6868)
refactor!: move extension functions to their corresponding classes (a12fe7d)
refactor!: use proper extension function names (efdd01a)
fix!: implement extension functions consistently (aacf900)
BREAKING CHANGES
- This changes the import paths for extension functions.
- This changes the names of extension functions
- This changes the name of functions
Bug Fixes
- add imports to fix failing tests (43d6868)
- refactor!: move extension functions to their corresponding classes (a12fe7d)
- refactor!: use proper extension function names (efdd01a)
- fix!: implement extension functions consistently (aacf900)
BREAKING CHANGES
- This changes the import paths for extension functions.
- This changes the names of extension functions
- This changes the name of functions
10.0.0 (2023-06-07)
- fix!: check for two methods parameters orders (#183) (b6d6a75), closes #183
BREAKING CHANGES
- This requires changes to
MethodFingerprint
- fix!: check for two methods parameters orders (#183) (b6d6a75), closes #183
BREAKING CHANGES
- This requires changes to
MethodFingerprint
9.0.0 (2023-05-23)
- refactor!: rename parameter (526a3d7)
BREAKING CHANGES
- This changes named parameters.
- refactor!: rename parameter (526a3d7)
BREAKING CHANGES
- This changes named parameters.
8.0.0 (2023-05-13)
- feat!: add
classDef
parameter to MethodFingerprint
(#175) (a205220), closes #175
BREAKING CHANGES
- This changes the signature of the
customFingerprint
function.
- feat!: add
classDef
parameter to MethodFingerprint
(#175) (a205220), closes #175
BREAKING CHANGES
- This changes the signature of the
customFingerprint
function.
7.1.1 (2023-05-07)
Bug Fixes
- remove
count
instead of count + 1
instructions with removeInstructions
(#167) (98f8eed)
Bug Fixes
- remove
count
instead of count + 1
instructions with removeInstructions
(#167) (98f8eed)
7.1.0 (2023-05-05)
Features
- add appreciation message for new contributors (d674362)
- add overload to get instruction as type (49c173d)
Features
- add overload to get instruction as type (49c173d)
Features
- add appreciation message for new contributors (d674362)
7.0.0 (2023-02-26)
- feat!: merge integrations only when necessary (6e24a85)
BREAKING CHANGES
Patcher.addFiles
is now renamed to Patcher.addIntegrations
Signed-off-by: oSumAtrIX johan.melkonyan1@web.de
- feat!: merge integrations only when necessary (6e24a85)
BREAKING CHANGES
Patcher.addFiles
is now renamed to Patcher.addIntegrations
Signed-off-by: oSumAtrIX johan.melkonyan1@web.de
6.4.3 (2023-02-10)
Bug Fixes
- check
CONST_STRING_JUMP
instructions for matching string (058d292)
Bug Fixes
- check
CONST_STRING_JUMP
instructions for matching string (058d292)
6.4.2 (2023-01-17)
Bug Fixes
Bug Fixes
6.4.1 (2023-01-15)
Bug Fixes
- update dependency
app.revanced:multidexlib2
(#150) (dd7dd38)
6.4.1 (2023-01-15)
Bug Fixes
- update dependency
app.revanced:multidexlib2
(#150) (dd7dd38)
Bug Fixes
- update dependency
app.revanced:multidexlib2
(#150) (dd7dd38)
6.4.0 (2023-01-02)
Features
- add missing setter to
MutableMethod
(8f3ecc3)
- do not fix methods or methods in class merger (4102f43)
- fix method and field access when merging classes (5c09ef7)
- make
aaptPath
nullable (#146) (9f0a09a)
Features
- add missing setter to
MutableMethod
(8f3ecc3)
- do not fix methods or methods in class merger (4102f43)
- fix method and field access when merging classes (5c09ef7)
Features
6.3.2 (2022-12-18)
Bug Fixes
- check if fingerprint string is substring of any string references (c5de9e2)
- print full exception when patch fails (7cf79e6)
Bug Fixes
- check if fingerprint string is substring of any string references (c5de9e2)
- print full exception when patch fails (7cf79e6)
Bug Fixes
- print full exception when patch fails (27a8401)
6.3.1 (2022-12-13)
Bug Fixes
- publicize types when merging files if necessary (#137) (9ec720e)
Bug Fixes
- publicize types when merging files if necessary (#137) (9ec720e)
6.3.0 (2022-12-02)
Features
- sort patches in lexicographical order (a306561), closes #125
6.2.0 (2022-12-02)
Features
6.1.1 (2022-11-25)
Bug Fixes
- use
MethodUtil.methodSignaturesMatch
instead of Method.softCompareTo
(bd053b7)
6.1.0 (2022-11-22)
Features
- apply changes from ReVanced Patcher (ba9d998)
6.0.2 (2022-11-18)
Bug Fixes
- fallback to patch class name instead of
java.lang.Class
class name (4164cb0)
6.0.1 (2022-11-14)
Bug Fixes
- remove unnecessary dummy nop instructions (#111) (f9bc95f)
6.0.0 (2022-10-05)
Code Refactoring
- improve structuring of classes and their implementations (4aa14bb)
Features
- remove unused annotation
DirectPatternScanMethod
(538b2a8)
- remove unused annotation
SincePatcher
(4ae9ad0)
- remove unused extension
dependsOn
(797286b)
- remove unused patch extensions (5583904)
BREAKING CHANGES
- various changes in which packages classes previously where and their implementation
- These extensions do not exist anymore and any use should be removed
- The extension does not exist anymore and any use should be removed
- The annotation does not exist anymore and any use should be removed
5.1.2 (2022-09-29)
Bug Fixes
- check dependencies for resource patches (9c07ffc)
- use instruction index instead of strings list index for
StringMatch
(843e62a)
5.1.1 (2022-09-26)
Performance Improvements
- decode resources only when necessary (3ba4be2)
5.1.0 (2022-09-26)
Features
- RwLock for opening files in
DomFileEditor
(db4348c)
5.0.1 (2022-09-23)
Reverts
5.0.0 (2022-09-21)
Bug Fixes
tests: access patternScanResult
through scanResult
(76676fb)
refactor!: move utility methods from MethodFingerprintUtils
MethodFingerprint
(d802ef8)
feat(fingerprint)!: StringsScanResult
for MethodFingerprint
(3813e28)
BREAKING CHANGES
- Imports will have to be updated from
MethodFingerprintUtils
to MethodFingerprint.Companion
.
Signed-off-by: oSumAtrIX johan.melkonyan1@web.de
MethodFingerprint
now has a field for MethodFingerprintScanResult
. MethodFingerprintScanResult
now holds the previous field MethodFingerprint.patternScanResult
.
Signed-off-by: oSumAtrIX johan.melkonyan1@web.de
4.5.0 (2022-09-20)
Features
- section
acknowledgements
for issue templates (a0cb449)
4.4.2 (2022-09-18)
Bug Fixes
- fingerprint: do not throw on
MethodFingerprint.result
getter (2f7e62e)
Performance Improvements
- fingerprint: do not resolve already resolved fingerprints (4bfd7eb)
4.4.1 (2022-09-14)
Bug Fixes
4.4.0 (2022-09-09)
Features
4.3.0 (2022-09-09)
Features
4.2.3 (2022-09-08)
Bug Fixes
- wrong value for iterator in PatchOptions (e31ac1f)
4.2.2 (2022-09-08)
Bug Fixes
- invalid type propagation in options (b873228), closes #98
4.2.1 (2022-09-08)
Bug Fixes
- make patcher version public (76c45dd)
4.2.0 (2022-09-08)
Bug Fixes
- remove repeatable from PatchDeprecated (6e73631)
Features
4.1.5 (2022-09-08)
Bug Fixes
- broken deprecation message (62aa295)
4.1.4 (2022-09-08)
Bug Fixes
- handle option types and nulls properly (aff4968)
4.1.3 (2022-09-07)
Bug Fixes
- only run list option check if not null (4055939)
4.1.2 (2022-09-07)
Bug Fixes
- invalid types for example options (79f91e0)
4.1.1 (2022-09-07)
Bug Fixes
- handle private companion objects (ad3d332)
4.1.0 (2022-09-07)
Features
4.0.0 (2022-09-07)
Code Refactoring
BREAKING CHANGES
- Options has been moved from Patch to a new interface called OptionsContainer and are now handled entirely different. Make sure to check the examples to understand how it works.
3.5.1 (2022-09-06)
Bug Fixes
- add tests for PathOption (d6308e1)
- PathOption should be open, not sealed (a562e47)
- typo in ListOption (3921648)
Performance Improvements
3.5.0 (2022-09-05)
Features
- default value for
Package.versions
annotation parameter (131dedd)
3.4.1 (2022-09-03)
Bug Fixes
- remove default param from Package.versions (4b81318)
3.4.0 (2022-08-31)
Features
3.3.3 (2022-08-14)
Bug Fixes
- show error message if cause is null (f9da2ad)
3.3.2 (2022-08-06)
Bug Fixes
3.3.1 (2022-08-03)
Bug Fixes
3.3.0 (2022-08-02)
Features
- add getValue & setValue for PatchOption (2572cd0)
3.2.1 (2022-08-02)
Bug Fixes
- check if patch option requirement is met (14a73bf)
3.2.0 (2022-08-02)
Features
- PatchOptions#nullify to nullify an option (371f0c4)
3.1.0 (2022-08-02)
Features
- validator for patch options (4e2e772)
3.0.0 (2022-08-02)
Features
- registry for patch options (2431785)
BREAKING CHANGES
- Patch options now use the PatchOptions registry class instead of an Iterable. This change requires modifications to existing patches using this API.
2.9.0 (2022-08-02)
Bug Fixes
- show error message instead of
null
(8d95b14)
Features
- exclusive mutable access to files (814ce0b)
2.8.0 (2022-08-01)
Bug Fixes
Features
2.7.0 (2022-08-01)
Features
2.6.0 (2022-07-31)
Features
- add Patch#dependsOn extension (523f67b)
- Soft Dependencies for Patches (8c12f8d)
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
Features
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)
Bug Fixes
- DomFileEditor opening in- and output streams on the same file (83187c9)
Features
- streams overload for
XmlFileHolder
(6f72c4c)
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
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
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.
Features
Dependencies
annotation (83d608a)
- optional
forStaticMethod
parameter for InlineSmaliCompiler.compileMethodInstructions
(28b9847)
Features
- patch dependencies annotation and
PatcherOptions
(8442991)
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)
Features
- utility functions to get metadata of patch & sigs (72f16b7)
Bug Fixes
- reformat (trigger release) (45a167e)
Performance Improvements
- decode manifest only when not using resource patcher (40b1fa4)
Bug Fixes
- using old instance of
Androlib
when saving (5630e49)
Features
PatchLoader
(1a99eca)
- use annotations instead of metadata objects (6726884)
Bug Fixes
- qualifying
Element
with wrong package (4d74de4)
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
Performance Improvements
- check type instead of class (47eb493)
Bug Fixes
Bug Fixes
- MethodResolver: strip labels nodes so opcode patterns match (cd57a8c)
Bug Fixes
- MethodResolver: strip labels and line numbers so opcode patterns match (8d1bb5f)
Bug Fixes
- give ClassWriter a ClassReader for symtable (e8f6973)
Features
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.