1.0.0-dev.9 (2022-05-07)
Bug Fixes
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)
Code Refactoring
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
& addProxyBackedClassList
(2319787) - remaining mutable
EncodedValue
classes (7d38bb0) - string signature (#22) (c245edb)
Performance Improvements
- 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)
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