21.0.0 (2024-11-05)
- Match fingerprint before delegating the match property (5d996de)
- Merge extension only when patch executes (#315) (aa472eb)
- Improve Fingerprint API (#316) (0abf1c6)
- Improve various APIs (#317) (b824978)
- Move fingerprint match members to fingerprint for ease of access by using context receivers (0746c22)
- Use smallest lookup map for strings (1358d3f)
- Various APIs have been changed.
- Many APIs have been changed.
21.0.0-dev.4 (2024-11-05)
- Use smallest lookup map for strings (1358d3f)
21.0.0-dev.3 (2024-11-05)
- Move fingerprint match members to fingerprint for ease of access by using context receivers (0746c22)
21.0.0-dev.2 (2024-11-01)
- Match fingerprint before delegating the match property (5d996de)
21.0.0-dev.1 (2024-10-27)
- Various APIs have been changed.
- Many APIs have been changed.
20.0.2 (2024-10-17)
20.0.2-dev.1 (2024-10-15)
20.0.1 (2024-10-13)
- 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)
- Free memory earlier and remove negligible lookup maps (d53aacd)
20.0.1-dev.5 (2024-10-11)
- Use non-nullable type for options (ea6fc70)
20.0.1-dev.4 (2024-10-07)
- Make it work on Android by not using APIs from JVM unavailable to Android. (2be6e97)
20.0.1-dev.3 (2024-10-03)
- Free memory earlier and remove negligible lookup maps (d53aacd)
20.0.1-dev.2 (2024-10-01)
20.0.1-dev.1 (2024-09-18)
20.0.0 (2024-08-06)
- 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)
- Add ability to create options outside of a patch (d310246)
- Convert APIs to Kotlin DSL (#298) (11a911d)
- Various old APIs are removed, and DSL APIs are added instead.
20.0.0-dev.4 (2024-08-06)
- Improve exception message wording (bd434ce)
20.0.0-dev.3 (2024-08-01)
- Make constructor internal as supposed (e95fcd1)
- Add ability to create options outside of a patch (b8d763a)
20.0.0-dev.2 (2024-07-31)
- 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)
20.0.0-dev.1 (2024-07-22)
- Various old APIs are removed, and DSL APIs are added instead.
19.3.1 (2024-02-14)
19.3.1-dev.1 (2024-02-14)
19.3.0 (2024-02-14)
- Use
Patch#toString
to get patch class name, when no name available (c9a8260)
- Read and write arbitrary files in APK files (f1d7217)
19.3.0-dev.2 (2024-02-13)
19.3.0-dev.1 (2024-02-13)
- Read and write arbitrary files in APK files (f1d7217)
19.2.1-dev.1 (2024-01-27)
- Use
Patch#toString
to get patch class name, when no name available (c9a8260)
19.2.0 (2023-12-28)
- Accept
PatchSet
inPatchesConsumer#acceptPatches
(716825f)
- Add
PatchExtensions#registerNewPatchOption
function to simplify instantiation and registration of patch options (4a91845)
19.2.0-dev.1 (2023-12-22)
- Add
PatchExtensions#registerNewPatchOption
function to simplify instantiation and registration of patch options (4a91845)
19.1.1-dev.1 (2023-12-01)
- Accept
PatchSet
inPatchesConsumer#acceptPatches
(716825f)
19.1.0 (2023-12-01)
- Add constructor to initialize patches without annotations (462fbe2)
- Retrieve annotations in super and interface classes (7aeae93)
- Use a hash set for fast lookup (f1de9b3)
19.1.0-dev.1 (2023-11-29)
- Add constructor to initialize patches without annotations (462fbe2)
- Retrieve annotations in super and interface classes (7aeae93)
- Use a hash set for fast lookup (f1de9b3)
19.0.0 (2023-10-24)
- Add
PatchOption#valueType
to handle type erasure (a46e948)
- This changes the signature of the
PatchOption
constructor.
19.0.0-dev.1 (2023-10-24)
- Add
PatchOption#valueType
to handle type erasure (a46e948)
- This changes the signature of the
PatchOption
constructor.
18.0.0 (2023-10-22)
- Do not set patch fields if they are empty (a76ac04)
- Only allow setting
MethodFingerprint#result
privately (aed1eac)
-
Change
PatchOption
from abstract to open class (09cd6aa) -
Change data classes to actual classes (6192089)
-
Convert extension functions to member functions (e2ca507)
-
Move files to simplify package structure (124a2e9)
-
Remove deprecated classes and members (a4212f6)
-
refactor!: Remove
Fingerprint
interface (54a2f8f)
- 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)
- Run the garbage collector after writing dex files (d9fb241)
- The
MethodFingerprint#result
member can now only be set insideMethodFingerprint
. - 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.
18.0.0-dev.6 (2023-10-22)
- Only allow setting
MethodFingerprint#result
privately (aed1eac)
-
Change data classes to actual classes (6192089)
-
Convert extension functions to member functions (e2ca507)
-
Move files to simplify package structure (124a2e9)
-
Remove deprecated classes and members (a4212f6)
-
refactor!: Remove
Fingerprint
interface (54a2f8f)
- The
MethodFingerprint#result
member can now only be set insideMethodFingerprint
. - 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.
18.0.0-dev.5 (2023-10-22)
- Do not set patch fields if they are empty (a76ac04)
18.0.0-dev.4 (2023-10-22)
- Use a map for
PatchOption#values
(54ac139)
18.0.0-dev.3 (2023-10-22)
- Make
PatchOption#values
nullable (56ce9ec)
18.0.0-dev.2 (2023-10-22)
- Change
PatchOption
from abstract to open class (09cd6aa)
- 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)
- This gets rid of the existing basic implementations of the
PatchOptions
type and moves extension functions. - This changes the getter name of the property.
18.0.0-dev.1 (2023-10-14)
- Remove patch annotation processor (4456031)
- Various patch constructor signatures have changed.
17.0.1-dev.1 (2023-10-10)
- Run the garbage collector after writing dex files (d9fb241)
17.0.0 (2023-10-09)
- Add option to use single threaded writer for dex files (77dbee3)
- This commit gets rid of deprecated constructors.
17.0.0-dev.1 (2023-10-09)
- Add option to use single threaded writer for dex files (77dbee3)
- This commit gets rid of deprecated constructors.
16.0.2 (2023-10-06)
- Use a map to merge integrations classes (6059d3c)
16.0.2-dev.1 (2023-10-06)
- Use a map to merge integrations classes (6059d3c)
16.0.1 (2023-10-05)
- Merge integrations when required (06c2b76)
16.0.1-dev.1 (2023-10-05)
- Merge integrations when required (06c2b76)
16.0.0 (2023-10-04)
- Use correct super class type (f590436)
- This changes the super classes of some
PatchOptionException
classes
16.0.0-dev.1 (2023-10-04)
- Use correct super class type (f590436)
- This changes the super classes of some
PatchOptionException
classes
15.0.3 (2023-10-01)
15.0.3-dev.1 (2023-09-29)
15.0.2 (2023-09-27)
15.0.2-dev.1 (2023-09-26)
15.0.1 (2023-09-20)
- Remove log management (d51bc32)
15.0.1-dev.1 (2023-09-20)
- Remove log management (d51bc32)
15.0.0 (2023-09-18)
- 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 containpatch
(1d7aeca) - Suppress logger when loading patches in
PatchBundleLoader
(72c9eb2) - Use correct module name (080fbe9)
-
Internalize processor constructor (a802d0d)
-
feat Use
Set
as super type forPatchBundleLoader
(4b76d19) -
feat!: Add patch annotation processor (3fc6a13)
-
feat!: Remove patch annotations (3b4db3d)
- 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.
15.0.0-dev.4 (2023-09-13)
- 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 containpatch
(1d7aeca) - Suppress logger when loading patches in
PatchBundleLoader
(72c9eb2)
- Internalize processor constructor (a802d0d)
- This gets rid of the public constructor.
15.0.0-dev.3 (2023-09-06)
-
Make
CompatiblePackage.versions
a property (67b7dff) -
Use correct module name (080fbe9)
-
feat Use
Set
as super type forPatchBundleLoader
(4b76d19)
PatchBundleLoader
is not a map anymore- This renames packages and the Maven package.
15.0.0-dev.2 (2023-09-06)
15.0.0-dev.1 (2023-09-04)
- 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)
- allow setting
DexClassLoader.optimizedDirectory
(11a3378)
14.2.2-dev.1 (2023-08-29)
- allow setting
DexClassLoader.optimizedDirectory
(11a3378)
14.2.1 (2023-08-27)
- do not flag resource table as sparse when main package is not loaded (b832812)
14.2.1-dev.1 (2023-08-27)
- do not flag resource table as sparse when main package is not loaded (b832812)
14.2.0 (2023-08-27)
- compare types of classes (55d6945)
14.2.0-dev.3 (2023-08-26)
- compare types of classes (55d6945)
14.2.0-dev.2 (2023-08-26)
- log when merging integrations (983563e)
14.2.0-dev.1 (2023-08-25)
- load patches in lexicographical order (e8f2087)
14.1.0 (2023-08-24)
- move version properties file to correct package (e985676)
- properly make use of logging facade (ba56a6a)
14.1.0-dev.1 (2023-08-24)
- properly make use of logging facade (ba56a6a)
14.0.1-dev.1 (2023-08-23)
- move version properties file to correct package (e985676)
14.0.0 (2023-08-22)
- 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)
- improve structure and public API (6b8977f)
- do not log instantiation of ReVanced Patcher (273dd8d)
- Various public APIs have been changed. The
Version
annotation has been removed. Patches do not return anything anymore and instead throwPatchException
. Multiple patch bundles can now be loaded in a single ClassLoader to bypass class loader isolation.
14.0.0-dev.4 (2023-08-22)
- only emit closed patches that did not throw an exception with the
@Patch
annotation (5938f6b)
14.0.0-dev.3 (2023-08-20)
- supply the parent classloader to
DexClassLoader
(0f15077)
- do not log instantiation of ReVanced Patcher (273dd8d)
14.0.0-dev.2 (2023-08-19)
14.0.0-dev.1 (2023-08-18)
- log decoding resources after logging deleting resource cache directory (db62a16)
- improve structure and public API (6b8977f)
- Various public APIs have been changed. The
Version
annotation has been removed. Patches do not return anything anymore and instead throwPatchException
. Multiple patch bundles can now be loaded in a single ClassLoader to bypass class loader isolation.
13.0.0 (2023-08-14)
-
decode in correct order (8fb2f2d)
-
disable correct loggers (c2d89c6)
-
get framework ids to compile resources (f2cb7ee)
-
only enable logging for ReVanced (783ccf8)
-
set package metadata correctly (02d6ff1)
-
build(Needs bump)!: Bump dependencies (d5f89a9)
- This bump updates smali, a crucial dependency
13.0.0-dev.3 (2023-08-14)
13.0.0-dev.2 (2023-08-12)
- disable correct loggers (c2d89c6)
- get framework ids to compile resources (f2cb7ee)
- set package metadata correctly (02d6ff1)
13.0.0-dev.1 (2023-08-11)
- build(Needs bump)!: Bump dependencies (d5f89a9)
- This bump updates smali, a crucial dependency
12.1.1 (2023-08-03)
12.1.1-dev.2 (2023-08-03)
12.1.1-dev.1 (2023-08-03)
12.1.0 (2023-08-03)
- add
MutableMethod.getInstructions
extension function (fae4029)
12.1.0-dev.2 (2023-08-03)
12.1.0-dev.1 (2023-08-01)
- add
MutableMethod.getInstructions
extension function (fae4029)
12.0.0 (2023-07-30)
- This removes the previously available
Path
option
12.0.0-dev.2 (2023-07-28)
- Deprecate
Version
annotation (400442f)
12.0.0-dev.1 (2023-07-26)
- This removes the previously available
Path
option
11.0.4 (2023-07-01)
11.0.4-dev.1 (2023-07-01)
11.0.3 (2023-06-30)
11.0.3-dev.1 (2023-06-28)
11.0.2 (2023-06-27)
- catch exceptions from closing patches (d5d6f85)
- do not load annotations as patches (519359a)
- only close succeeded patches (b8151eb)
- use
versionCode
ifversionName
is unavailable (6e1b647)
11.0.2-dev.4 (2023-06-27)
- do not load annotations as patches (519359a)
11.0.2-dev.3 (2023-06-27)
11.0.2-dev.2 (2023-06-18)
- use
versionCode
ifversionName
is unavailable (6e1b647)
11.0.2-dev.1 (2023-06-14)
11.0.1 (2023-06-12)
- revert using
OutputStream.nullOutputStream
(f02a426)
11.0.1-dev.1 (2023-06-12)
- revert using
OutputStream.nullOutputStream
(f02a426)
11.0.0 (2023-06-10)
-
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)
- This changes the import paths for extension functions.
- This changes the names of extension functions
- This changes the name of functions
11.0.0-dev.2 (2023-06-09)
- add imports to fix failing tests (43d6868)
11.0.0-dev.1 (2023-06-07)
- refactor!: move extension functions to their corresponding classes (a12fe7d)
- refactor!: use proper extension function names (efdd01a)
- fix!: implement extension functions consistently (aacf900)
- 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)
- This requires changes to
MethodFingerprint
10.0.0-dev.1 (2023-06-07)
- This requires changes to
MethodFingerprint
9.0.0 (2023-05-23)
- refactor!: rename parameter (526a3d7)
- This changes named parameters.
9.0.0-dev.1 (2023-05-23)
- refactor!: rename parameter (526a3d7)
- This changes named parameters.
8.0.0 (2023-05-13)
- This changes the signature of the
customFingerprint
function.
8.0.0-dev.1 (2023-05-10)
- This changes the signature of the
customFingerprint
function.
7.1.1 (2023-05-07)
7.1.1-dev.1 (2023-05-07)
7.1.0 (2023-05-05)
- add appreciation message for new contributors (d674362)
- add overload to get instruction as type (49c173d)
7.1.0-dev.2 (2023-05-05)
- add overload to get instruction as type (49c173d)
7.1.0-dev.1 (2023-04-30)
- add appreciation message for new contributors (d674362)
7.0.0 (2023-02-26)
- feat!: merge integrations only when necessary (6e24a85)
Patcher.addFiles
is now renamed toPatcher.addIntegrations
Signed-off-by: oSumAtrIX [email protected]
7.0.0-dev.1 (2023-02-26)
- feat!: merge integrations only when necessary (6e24a85)
Patcher.addFiles
is now renamed toPatcher.addIntegrations
Signed-off-by: oSumAtrIX [email protected]
6.4.3 (2023-02-10)
- check
CONST_STRING_JUMP
instructions for matching string (058d292)
6.4.3-dev.1 (2023-02-10)
- check
CONST_STRING_JUMP
instructions for matching string (058d292)
6.4.2 (2023-01-17)
- resolve failing builds (a263fdf)
6.4.2-dev.1 (2023-01-17)
- resolve failing builds (a263fdf)
6.4.1 (2023-01-15)
6.4.1 (2023-01-15)
6.4.1-dev.1 (2023-01-15)
6.4.0 (2023-01-02)
- 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)
6.4.0-dev.2 (2023-01-02)
- 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)
6.4.0-dev.1 (2022-12-20)
6.3.2 (2022-12-18)
- check if fingerprint string is substring of any string references (c5de9e2)
- print full exception when patch fails (7cf79e6)
6.3.2-dev.1 (2022-12-18)
- check if fingerprint string is substring of any string references (c5de9e2)
- print full exception when patch fails (7cf79e6)
6.3.2-dev.1 (2022-12-17)
- print full exception when patch fails (27a8401)
6.3.1 (2022-12-13)
6.3.1-dev.1 (2022-12-13)
6.3.0 (2022-12-02)
6.2.0 (2022-12-02)
6.1.1 (2022-11-25)
- use
MethodUtil.methodSignaturesMatch
instead ofMethod.softCompareTo
(bd053b7)
6.1.0 (2022-11-22)
- apply changes from ReVanced Patcher (ba9d998)
6.0.2 (2022-11-18)
- fallback to patch class name instead of
java.lang.Class
class name (4164cb0)
6.0.1 (2022-11-14)
6.0.0 (2022-10-05)
- improve structuring of classes and their implementations (4aa14bb)
- remove unused annotation
DirectPatternScanMethod
(538b2a8) - remove unused annotation
SincePatcher
(4ae9ad0) - remove unused extension
dependsOn
(797286b) - remove unused patch extensions (5583904)
- 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)
- check dependencies for resource patches (9c07ffc)
- use instruction index instead of strings list index for
StringMatch
(843e62a)
5.1.1 (2022-09-26)
- decode resources only when necessary (3ba4be2)
5.1.0 (2022-09-26)
- RwLock for opening files in
DomFileEditor
(db4348c)
5.0.1 (2022-09-23)
5.0.0 (2022-09-21)
-
tests: access
patternScanResult
throughscanResult
(76676fb) -
refactor!: move utility methods from
MethodFingerprintUtils
MethodFingerprint
(d802ef8) -
feat(fingerprint)!:
StringsScanResult
forMethodFingerprint
(3813e28)
- Imports will have to be updated from
MethodFingerprintUtils
toMethodFingerprint.Companion
.
Signed-off-by: oSumAtrIX [email protected]
MethodFingerprint
now has a field forMethodFingerprintScanResult
.MethodFingerprintScanResult
now holds the previous fieldMethodFingerprint.patternScanResult
.
Signed-off-by: oSumAtrIX [email protected]
4.5.0 (2022-09-20)
- section
acknowledgements
for issue templates (a0cb449)
4.4.2 (2022-09-18)
- fingerprint: do not throw on
MethodFingerprint.result
getter (2f7e62e)
- fingerprint: do not resolve already resolved fingerprints (4bfd7eb)
4.4.1 (2022-09-14)
4.4.0 (2022-09-09)
- add PathOption back (172655b)
4.3.0 (2022-09-09)
- improved Patch Options (e722e3f)
4.2.3 (2022-09-08)
- wrong value for iterator in PatchOptions (e31ac1f)
4.2.2 (2022-09-08)
4.2.1 (2022-09-08)
- make patcher version public (76c45dd)
4.2.0 (2022-09-08)
- remove repeatable from PatchDeprecated (6e73631)
- SincePatcher annotation (25f74dc)
4.1.5 (2022-09-08)
- broken deprecation message (62aa295)
4.1.4 (2022-09-08)
- handle option types and nulls properly (aff4968)
4.1.3 (2022-09-07)
- only run list option check if not null (4055939)
4.1.2 (2022-09-07)
- invalid types for example options (79f91e0)
4.1.1 (2022-09-07)
- handle private companion objects (ad3d332)
4.1.0 (2022-09-07)
- deprecation for patches (80c2e80)
4.0.0 (2022-09-07)
- Improve Patch Options (6b909c1)
- 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)
- add tests for PathOption (d6308e1)
- PathOption should be open, not sealed (a562e47)
- typo in ListOption (3921648)
- make exception an object (75d2be8)
3.5.0 (2022-09-05)
- default value for
Package.versions
annotation parameter (131dedd)
3.4.1 (2022-09-03)
- remove default param from Package.versions (4b81318)
3.4.0 (2022-08-31)
- nullable parameters (7882a8d)
3.3.3 (2022-08-14)
- show error message if cause is null (f9da2ad)
3.3.2 (2022-08-06)
3.3.1 (2022-08-03)
- revert soft dependencies (7b2d058)
3.3.0 (2022-08-02)
- add getValue & setValue for PatchOption (2572cd0)
3.2.1 (2022-08-02)
- check if patch option requirement is met (14a73bf)
3.2.0 (2022-08-02)
- PatchOptions#nullify to nullify an option (371f0c4)
3.1.0 (2022-08-02)
- validator for patch options (4e2e772)
3.0.0 (2022-08-02)
- registry for patch options (2431785)
- 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)
- show error message instead of
null
(8d95b14)
- exclusive mutable access to files (814ce0b)
2.8.0 (2022-08-01)
2.7.0 (2022-08-01)
Closeable
patches (bbd40bf)
2.6.0 (2022-07-31)
2.5.2 (2022-07-24)
2.5.1 (2022-07-17)
- close stream when closing
DomFileEditor
(77604d4)
2.5.0 (2022-07-11)
- missing additional items [skip ci] (0ebab8b)
2.4.0 (2022-07-09)
- Improve Smali Compiler (6bfe571)
2.3.1 (2022-07-07)
2.3.0 (2022-07-05)
2.2.2 (2022-07-04)
MethodWalker
not accounting for all reference instructions (48068cb)
2.2.1 (2022-07-03)
- more useful error message (4b2e323)
2.2.0 (2022-07-02)
- DomFileEditor opening in- and output streams on the same file (83187c9)
2.2.0-dev.3 (2022-07-02)
- DomFileEditor opening in- and output streams on the same file (83187c9)
2.2.0-dev.2 (2022-07-02)
- streams overload for
XmlFileHolder
(6f72c4c)
2.2.0-dev.1 (2022-07-02)
- remove deprecated functions (ada5a03)
2.1.2 (2022-06-29)
- invert fingerprint resolution condition of
customFingerprint
(e2faf4c)
2.1.1 (2022-06-28)
2.1.0 (2022-06-28)
- 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)
- use
Exception
instead ofMethodNotFoundException
(2fc4ec4)
2.0.0 (2022-06-26)
- migrate from
Signature
toFingerprint
(efa8ea1)
- Not backwards compatible, since a lot of classes where renamed.
1.11.0 (2022-06-24)
1.10.2 (2022-06-23)
- dexlib must be propagated (b738dcd)
1.10.1 (2022-06-23)
1.10.0 (2022-06-23)
- improve logging (c20dfe1)
1.9.0 (2022-06-22)
- callback for each file instead of class (930768d)
- yield the patch result (dde5385)
1.8.0 (2022-06-22)
- logging class (caf2745)
1.7.2 (2022-06-22)
1.7.1 (2022-06-22)
- revert "feat: use of
java.util.logging.Logger
" (e8488b3)
1.7.0 (2022-06-22)
- migrate logger to
slf4j
(8f66f9f)
1.6.0 (2022-06-22)
- use of
java.util.logging.Logger
(9c39c9e)
1.5.0 (2022-06-22)
- use streams to write the dex files (64bae88)
1.4.0 (2022-06-22)
- return a
File
instance instead ofExtFile
(68174bb)
1.3.4 (2022-06-21)
String.toInstructions
defaultingforStaticMethod
tofalse
(5a2f02b), closes revanced/revanced-patches#46
1.3.3 (2022-06-21)
- add docs (trigger release) (6628b78)
- propagate dependencies (365e1d7)
1.3.2 (2022-06-21)
- return resourceFile to caller (1f75777)
1.3.1 (2022-06-21)
InlineSmaliCompiler.compile
using 0 registers instead of 1 by default (835a421)
1.3.0 (2022-06-20)
parametersCount
forInlineSmaliCompiler
instead ofparameters
(ad6c5c8)- simplify adding instructions (e47b67d)
1.2.9 (2022-06-20)
- update apktool (ab866bb)
1.2.8 (2022-06-18)
- update apktool (051afd9)
1.2.7 (2022-06-18)
- version not working with apktool due to cache (03f5ee0)
1.2.6 (2022-06-18)
- remove javadoc jar (also trigger release) (56f6ca3)
1.2.5 (2022-06-17)
- goodbye security (8f3ac77)
1.2.4 (2022-06-15)
- "fix: enforce aapt v1" (dfd8a24)
1.2.3 (2022-06-14)
- enforce aapt v1 (cff87ff)
1.2.2 (2022-06-14)
- enforce aapt v2 (b68b0bf)
1.2.1 (2022-06-14)
- Patcher setting BuildOptions too late (6a5c873)
1.2.0 (2022-06-14)
- allow custom framework path to be specified (d3a580e)
1.1.0 (2022-06-11)
- allow custom aapt path to be specified (8eb4a8f)
compareSignatureToMethod
not matching correctly in case opcodes are null (cca12aa)ConcurrentModificationException
while iterating throughproxies
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 inMethodSignatureMetadata
(4e56652) - make warnings nullable instead of lateinit (8f1a629)
- match to correct signature method parameters (1ee2e4b)
- MethodResolver: fix cd57a8c9a0db7e3ae5ad0bca202e5955930319ab (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)
- 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
toapp.revanced
(7087230)
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
andJarPatchBundle
(8615798) - migrate to dexlib (3651981)
- Minor refactor and return proxy, if class has been proxied already (4b26305)
- optional
forStaticMethod
parameter forInlineSmaliCompiler.compileMethodInstructions
(41e8860) - patch dependencies annotation and
PatcherOptions
(6c65952) - properly manage
ClassProxy
& addProxyBackedClassList
(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)
- check type instead of class (c7ef264)
- decode manifest only when not using resource patcher (4f60bea)
- depend on
androlib
instead ofApkDecoder
(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)
- AccessFlag extensions not working with IDE (0bfb92a)
- previous commits check for dupes in dexFile, not cache (e810197)
- 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)
Dependencies
annotation (83d608a)- optional
forStaticMethod
parameter forInlineSmaliCompiler.compileMethodInstructions
(28b9847)
1.0.0-dev.17 (2022-05-31)
- patch dependencies annotation and
PatcherOptions
(8442991)
1.0.0-dev.16 (2022-05-27)
JarPatchBundle
loading non-class files to class loader (3f0c740)- remove dependency to fork of Apktool (0fa529f)
- migrate to
DexPatchBundle
andJarPatchBundle
(7573db2)
1.0.0-dev.15 (2022-05-25)
- utility functions to get metadata of patch & sigs (72f16b7)
1.0.0-dev.14 (2022-05-24)
- reformat (trigger release) (45a167e)
1.0.0-dev.13 (2022-05-24)
- decode manifest only when not using resource patcher (40b1fa4)
1.0.0-dev.12 (2022-05-22)
- using old instance of
Androlib
when saving (5630e49)
1.0.0-dev.11 (2022-05-22)
1.0.0-dev.10 (2022-05-07)
- qualifying
Element
with wrong package (4d74de4)
1.0.0-dev.9 (2022-05-07)
compareSignatureToMethod
not matching correctly in case opcodes are null (5ae5e98)ConcurrentModificationException
while iterating throughproxies
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 inMethodSignatureMetadata
(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)
- 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
& addProxyBackedClassList
(2319787) - remaining mutable
EncodedValue
classes (7d38bb0) - string signature (#22) (c245edb)
- depend on
androlib
instead ofApkDecoder
(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)
- AccessFlag extensions not working with IDE (e161f7f)
- previous commits check for dupes in dexFile, not cache (433914f)
- 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)
- check type instead of class (47eb493)
1.0.0-dev.7 (2022-03-24)
- MethodResolver: fix cd57a8c9a0db7e3ae5ad0bca202e5955930319ab (1af31b2)
1.0.0-dev.6 (2022-03-24)
- MethodResolver: strip labels nodes so opcode patterns match (cd57a8c)
1.0.0-dev.5 (2022-03-24)
- MethodResolver: strip labels and line numbers so opcode patterns match (8d1bb5f)
1.0.0-dev.4 (2022-03-23)
- give ClassWriter a ClassReader for symtable (e8f6973)
1.0.0-dev.3 (2022-03-23)
- add SafeClassWriter (ca6b94d)
1.0.0-dev.2 (2022-03-23)
- set marklimit to Integer.MAX_VALUE (ab6453c)
- 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)
- convert Patch to abstract class (23e897a)
- Optimize Signature class (#11) (49beec9)
- Rename
net.revanced
toapp.revanced
(3ab42a9)
- 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.