oSumAtrIX
12c43072cb
refactor: Include class of method in call expression
2023-11-03 23:31:15 +01:00
oSumAtrIX
a46e948b5a
feat: Add PatchOption#valueType
to handle type erasure
...
Without this new property, it is not possible to infer the type without abusing `ClassCastException` at runtime to infer the type of the option value.
BREAKING CHANGE: This changes the signature of the `PatchOption` constructor.
2023-10-24 22:33:10 +02:00
oSumAtrIX
aed1eac315
fix: Only allow setting MethodFingerprint#result
privately
...
BREAKING CHANGE: The `MethodFingerprint#result` member can now only be set inside `MethodFingerprint`.
2023-10-23 01:52:43 +02:00
oSumAtrIX
54a2f8f16f
refactor!: Remove Fingerprint
interface
...
It served no purpose so far.
BREAKING CHANGE: The `Fingerprint` interface is no longer present.
2023-10-23 01:52:04 +02:00
oSumAtrIX
2ca543ffb9
refactor: Move lookup related classes and members to own file
2023-10-23 01:51:48 +02:00
oSumAtrIX
58e7f815a5
refactor: Move MethodFingerprintResult
to own file
2023-10-23 01:51:34 +02:00
oSumAtrIX
15b38fc841
refactor: Simplify method implementation
2023-10-23 01:50:54 +02:00
oSumAtrIX
e2ca50729d
refactor: Convert extension functions to member functions
...
BREAKING CHANGE: Some extension functions are now member functions.
2023-10-23 01:50:53 +02:00
oSumAtrIX
6192089b71
refactor: Change data classes to actual classes
...
The data class members did not serve any actual purpose.
BREAKING CHANGE: This gets rid of data class members.
2023-10-23 01:49:57 +02:00
oSumAtrIX
a4212f6bf9
refactor: Remove deprecated classes and members
...
BREAKING CHANGE: Some deprecated classes and members are not present anymore.
2023-10-23 01:49:23 +02:00
oSumAtrIX
124a2e9d3e
refactor: Move files to simplify package structure
...
BREAKING CHANGE: Classes and members have changed packages.
2023-10-23 01:48:52 +02:00
oSumAtrIX
a76ac04214
fix: Do not set patch fields if they are empty
2023-10-22 18:08:28 +02:00
oSumAtrIX
54ac1394a9
feat: Use a map for PatchOption#values
...
This allows to display a string representation associated to the option value.
2023-10-22 17:07:22 +02:00
oSumAtrIX
56ce9ec2f9
feat: Make PatchOption#values
nullable
...
There is no difference semantically, but this change allows passing null as a parameter which is simpler than having to use `emptySet()`.
2023-10-22 16:07:01 +02:00
oSumAtrIX
098c2c1efa
chore: Test default option value
2023-10-22 02:50:26 +02:00
oSumAtrIX
64343e5a7c
chore: Test resetting options
2023-10-22 02:49:44 +02:00
oSumAtrIX
0caf6caeb9
refactor: Simplify patch option tests
2023-10-22 02:46:51 +02:00
oSumAtrIX
55f6c2a9fc
feat!: Add property PatchOption#values
2023-10-22 02:38:12 +02:00
oSumAtrIX
c6095bc38a
feat!: Add PatchOption#toString
2023-10-22 02:04:49 +02:00
oSumAtrIX
09cd6aa568
refactor: Change PatchOption
from abstract to open class
...
BREAKING CHANGE: This gets rid of the existing basic implementations of the `PatchOptions` type and moves extension functions.
2023-10-22 01:55:05 +02:00
oSumAtrIX
ebbaafb78e
feat: Add function to reset options to their default value
2023-10-22 01:14:48 +02:00
oSumAtrIX
e6de90d300
feat: Add function to reset options to their default value
2023-10-22 01:10:15 +02:00
oSumAtrIX
c7922e90d0
feat: Add getter for default option value
2023-10-22 01:02:43 +02:00
oSumAtrIX
c1f4c0445a
chore: Fix inline docs wording
2023-10-21 23:52:47 +02:00
oSumAtrIX
caa634fac6
feat: Name patch option value validator property correctly
...
BREAKING CHANGE: This changes the getter name of the property.
2023-10-21 23:51:44 +02:00
oSumAtrIX
f28bfe0dbd
chore: Add missing inline docs
2023-10-21 23:49:40 +02:00
oSumAtrIX
c38f0ef42a
build: Move subproject to root project
2023-10-14 19:30:10 +02:00
oSumAtrIX
4dd04975d9
refactor: Move ReVanced Patcher to sub-project
...
This allows other sub-projects to exist.
2023-09-04 05:37:13 +02:00
oSumAtrIX
3b4db3ddb7
feat!: Remove patch annotations
...
Annotations required reflection and working with them turned out to be rather cumbersome. The annotations have been replaced with properties for the most part.
BREAKING CHANGE: 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.
2023-09-04 05:24:29 +02:00
oSumAtrIX
11a3378659
fix: allow setting DexClassLoader.optimizedDirectory
...
This is required for API level below 26, otherwise an NPE is thrown
2023-08-29 04:09:17 +02:00
oSumAtrIX
93b29d2e83
chore: assert instead of printing in tests
2023-08-29 03:38:11 +02:00
oSumAtrIX
b832812767
fix: do not flag resource table as sparse when main package is not loaded
2023-08-27 22:14:43 +02:00
oSumAtrIX
64020eec49
chore: add multi-threading opportunity notice
2023-08-26 20:58:19 +02:00
oSumAtrIX
55d694579a
perf: compare types of classes
2023-08-26 19:42:33 +02:00
oSumAtrIX
983563efb6
feat: log when merging integrations
2023-08-26 19:14:29 +02:00
oSumAtrIX
e8f2087a6f
feat: load patches in lexicographical order
...
This feature was lost in past commits
2023-08-25 17:10:44 +02:00
oSumAtrIX
ba56a6a2ee
feat: properly make use of logging facade
...
This deprecates the primary constructor of `PatcherOptions` with the `logger` parameter
2023-08-24 04:43:16 +02:00
oSumAtrIX
e985676c2d
fix: move version properties file to correct package
2023-08-23 03:36:48 +02:00
oSumAtrIX
5938f6b7ea
fix: only emit closed patches that did not throw an exception with the @Patch
annotation
2023-08-22 19:00:34 +02:00
oSumAtrIX
0f15077225
fix: supply the parent classloader to DexClassLoader
2023-08-20 19:14:10 +02:00
oSumAtrIX
273dd8d388
feat: do not log instantiation of ReVanced Patcher
2023-08-20 19:14:09 +02:00
oSumAtrIX
6b8977f178
refactor: improve structure and public API
...
This commit introduces a couple changes besides the refactor. Executing patches can be cancelled, multiple bundles loaded into the same class loader and `Patch.execute` does not have to return anymore.
BREAKING CHANGE: 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.
2023-08-19 01:45:27 +02:00
oSumAtrIX
db62a1607b
fix: log decoding resources after logging deleting resource cache directory
2023-08-16 16:53:45 +02:00
oSumAtrIX
783ccf8529
fix: only enable logging for ReVanced
2023-08-14 04:02:39 +02:00
oSumAtrIX
8fb2f2dc1d
fix: decode in correct order
2023-08-14 04:02:24 +02:00
oSumAtrIX
c2d89c622e
fix: disable correct loggers
2023-08-12 02:22:52 +02:00
oSumAtrIX
02d6ff15fe
fix: set package metadata correctly
2023-08-12 02:19:28 +02:00
oSumAtrIX
f2cb7ee7df
fix: get framework ids to compile resources
2023-08-12 02:18:43 +02:00
oSumAtrIX
a2ac44dcc1
chore: use more generic inline docs
2023-08-12 02:15:26 +02:00
oSumAtrIX
d5f89a903f
build(Needs bump)!: Bump dependencies
...
BREAKING CHANGE: This bump updates smali, a crucial dependency
2023-08-11 02:51:37 +02:00