Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
# 1.0.0 (2022-09-06) ### Bug Fixes * `compareSignatureToMethod` not matching correctly in case opcodes are null ([cca12aa](cca12aa)) * `ConcurrentModificationException` while iterating through `proxies` and modifying it ([6cb7cdb](6cb7cdb)) * `InlineSmaliCompiler.compile` using 0 registers instead of 1 by default ([835a421](835a421)) * `JarPatchBundle` loading non-class files to class loader ([849616d](849616d)) * `MethodWalker` not accounting for all reference instructions ([48068cb](48068cb)) * `PackageMetadata` ([7399450](7399450)) * `replaceWith` not replacing classes with used class proxies ([4178a1e](4178a1e)) * `String.toInstructions` defaulting `forStaticMethod` to `false` ([5a2f02b](5a2f02b)), closes [ReVanced/revanced-patches#46](ReVanced/revanced-patches#46) * add docs (trigger release) ([6628b78](6628b78)) * add execute permission to `./gradlew` file ([ReVanced#46](https://github.com/dennyxbox890/revanced-patcher/issues/46)) ([34f607a](34f607a)) * adding existing classes to the patchers cache ([9659a61](9659a61)) * always return PatchResultSuccess on patch success ([996c4ac](996c4ac)) * applying no patches throwing error ([5ca5a1c](5ca5a1c)) * applyPatches not returning successful patches ([f806cb3](f806cb3)) * avoid ignoring test resources (fixes [ReVanced#1](https://github.com/dennyxbox890/revanced-patcher/issues/1)) ([d5a3c76](d5a3c76)) * callback for each file instead of class ([930768d](930768d)) * callback only when inteded ([e3bf367](e3bf367)) * check if patch option requirement is met ([14a73bf](14a73bf)) * Classes not being written properly because of array shifting ([6e4db11](6e4db11)) * close open files ([ReVanced#75](https://github.com/dennyxbox890/revanced-patcher/issues/75)) ([123ad54](123ad54)) * close stream when closing `DomFileEditor` ([77604d4](77604d4)) * current must be calculated after increment ([5f12bab](5f12bab)) * dexlib must be propagated ([b738dcd](b738dcd)) * DomFileEditor opening in- and output streams on the same file ([83187c9](83187c9)) * enforce aapt v2 ([b68b0bf](b68b0bf)) * failing tests temporarily ([fc05fe7](fc05fe7)) * fix classes having multiple instances of fields ([7cc8a7d](7cc8a7d)) * fix classes having multiple method instances ([398239d](398239d)) * Fixed writer & signature resolver, improved tests & speed, minor refactoring ([e6c2501](e6c2501)) * fuzzy resolver warning params were turned around ([e5bea06](e5bea06)) * give ClassWriter a ClassReader for symtable ([41749ba](41749ba)) * goodbye security ([8f3ac77](8f3ac77)) * **gradle:** publish source and javadocs ([c236ebe](c236ebe)) * handle null properly ([ReVanced#64](https://github.com/dennyxbox890/revanced-patcher/issues/64)) ([482af78](482af78)) * incorrect pattern offset ([f3b5f67](f3b5f67)) * invert fingerprint resolution condition of `customFingerprint` ([e2faf4c](e2faf4c)) * **Io:** fix finding classes by name ([b957501](b957501)) * **Io:** JAR loading and saving ([ReVanced#8](https://github.com/dennyxbox890/revanced-patcher/issues/8)) ([310a7c4](310a7c4)) * make `methodMetadata` nullable in `MethodSignatureMetadata` ([4e56652](4e56652)) * make warnings nullable instead of lateinit ([8f1a629](8f1a629)) * match to correct signature method parameters ([1ee2e4b](1ee2e4b)) * **MethodResolver:** fix cd57a8c ([cbd8df2](cbd8df2)) * **MethodResolver:** strip labels and line numbers so opcode patterns match ([699c730](699c730)) * **MethodResolver:** strip labels nodes so opcode patterns match ([82c5306](82c5306)) * MethodSignature#resolved throwing an exception ([c612676](c612676)) * missing additional items [skip ci] ([0ebab8b](0ebab8b)) * more useful error message ([4b2e323](4b2e323)) * Move proxy package out of cache package ([ce21bd6](ce21bd6)) * mutability of local variable `modified` ([0e87ef5](0e87ef5)) * null check causing an exception ([338bd9f](338bd9f)) * nullable signature members ([ReVanced#10](https://github.com/dennyxbox890/revanced-patcher/issues/10)) ([674461f](674461f)) * Patch should have access to the Cache ([4dd820f](4dd820f)) * Patcher not writing resolved methods ([fac44a5](fac44a5)) * Patcher setting BuildOptions too late ([6a5c873](6a5c873)) * qualifying `Element` with wrong package ([024fa86](024fa86)) * reaching all constructors not possible ([c459beb](c459beb)) * reformat (trigger release) ([bf48945](bf48945)) * remove broken code ([0e72a6e](0e72a6e)) * remove default param from Package.versions ([4b81318](4b81318)) * remove dependency to fork of Apktool ([11abc67](11abc67)) * remove javadoc jar (also trigger release) ([56f6ca3](56f6ca3)) * remove leftover debug code ([0f30eac](0f30eac)) * remove requirement for solution [skip ci] ([ReVanced#80](https://github.com/dennyxbox890/revanced-patcher/issues/80)) ([9a4d30e](9a4d30e)) * resource patcher ([31815ca](31815ca)) * return mutable set of classes ([66a9b76](66a9b76)) * return resourceFile to caller ([1f75777](1f75777)) * returning failure on success ([48c4ea2](48c4ea2)) * revert soft dependencies ([7b2d058](7b2d058)) * Search method map for existing class proxy ([a1e909b](a1e909b)) * set index for insertAt to 0 by default ([d5b4c99](d5b4c99)) * set marklimit to Integer.MAX_VALUE ([e6e468f](e6e468f)) * show error message if cause is null ([f9da2ad](f9da2ad)) * show error message instead of `null` ([8d95b14](8d95b14)) * string signature in `SignatureResolver` ([e5ae970](e5ae970)) * Suppress unused for addFiles ([3d6a1d3](3d6a1d3)) * throwing in case the opcode patterns do not match ([3144ec8](3144ec8)) * update apktool ([ab866bb](ab866bb)) * update apktool ([051afd9](051afd9)) * update apktool to fork ([566ecef](566ecef)) * use `Exception` instead of `MethodNotFoundException` ([2fc4ec4](2fc4ec4)) * use Array instead of Iterable for methodParameters ([dfac8f0](dfac8f0)) * using old instance of `Androlib` when saving ([a4d8be2](a4d8be2)) * version not working with apktool due to cache ([03f5ee0](03f5ee0)) * workflow on dev branch ([428f7f4](428f7f4)) * write all classes ([f068fc8](f068fc8)) ### Code Refactoring * bump multidexlib2 to 2.5.2.r2 ([a6c6b49](a6c6b49)) * Change all references from Array to Iterable ([72f3cad](72f3cad)) * convert Patch to abstract class ([cb9b1b9](cb9b1b9)) * migrate from `Signature` to `Fingerprint` ([efa8ea1](efa8ea1)) * Optimize Signature class ([ReVanced#11](https://github.com/dennyxbox890/revanced-patcher/issues/11)) ([7faa001](7faa001)) * Rename `net.revanced` to `app.revanced` ([7087230](7087230)) ### Features * `Closeable` patches ([bbd40bf](bbd40bf)) * `Dependencies` annotation ([893d4c6](893d4c6)) * `parametersCount` for `InlineSmaliCompiler` instead of `parameters` ([ad6c5c8](ad6c5c8)) * `PatchLoader` ([ec9fd15](ec9fd15)) * Add `findParentMethod` utility method ([ReVanced#4](https://github.com/dennyxbox890/revanced-patcher/issues/4)) ([bbb2c54](bbb2c54)) * add `MethodWalker` ([7755bbc](7755bbc)) * add `p` naming scheme to smali compiler ([79909cf](79909cf)) * add extensions for cloning methods ([01bfbd6](01bfbd6)) * add findClass method with className ([4087f49](4087f49)) * Add first tests ([544bcf7](544bcf7)) * add fuzzy resolver ([7a56dca](7a56dca)) * add getValue & setValue for PatchOption ([2572cd0](2572cd0)) * add immutableMethod ([c63b20f](c63b20f)) * add inline smali compiler ([bfe4e3e](bfe4e3e)) * add missing test for fields ([6b8b057](6b8b057)) * add or extension for AccessFlags ([00c85b5](00c85b5)) * Add patch metadata ([642e903](642e903)), closes [ReVancedTeam/revanced-patches#1](https://github.com/ReVancedTeam/revanced-patches/issues/1) * add Patch#dependsOn extension ([523f67b](523f67b)) * add replace and remove extensions ([ReVanced#50](https://github.com/dennyxbox890/revanced-patcher/issues/50)) ([92ac5e4](92ac5e4)) * add SafeClassWriter ([6626014](6626014)) * Add warnings for Fuzzy resolver ([715a2ad](715a2ad)) * allow classes to be overwritten in addFiles and resolve signatures when applyPatches is called ([1db735b](1db735b)) * allow custom aapt path to be specified ([8eb4a8f](8eb4a8f)) * allow custom framework path to be specified ([d3a580e](d3a580e)) * Allow unknown opcodes using `null` ([0e5f4ba](0e5f4ba)) * default value for `Package.versions` annotation parameter ([131dedd](131dedd)) * exclusive mutable access to files ([814ce0b](814ce0b)) * feature request issue template ([1b39278](1b39278)) * Finish first patcher test ([0d8d19e](0d8d19e)) * Improve `SignatureResolver` ([139a23b](139a23b)) * improve logging ([c20dfe1](c20dfe1)) * Improve Smali Compiler ([6bfe571](6bfe571)) * issue templates [skip ci] ([112bc99](112bc99)) * log failed patches due to failed dependencies ([a467fbb](a467fbb)) * logging class ([caf2745](caf2745)) * migrate logger to `slf4j` ([8f66f9f](8f66f9f)) * migrate to `DexPatchBundle` and `JarPatchBundle` ([8615798](8615798)) * migrate to dexlib ([3651981](3651981)) * Minor refactor and return proxy, if class has been proxied already ([4b26305](4b26305)) * nullability for `BytecodePatch` constructor ([ReVanced#59](https://github.com/dennyxbox890/revanced-patcher/issues/59)) ([4ea030d](4ea030d)) * nullable parameters ([7882a8d](7882a8d)) * optional `forStaticMethod` parameter for `InlineSmaliCompiler.compileMethodInstructions` ([41e8860](41e8860)) * patch dependencies annotation and `PatcherOptions` ([6c65952](6c65952)) * patch options ([ReVanced#81](https://github.com/dennyxbox890/revanced-patcher/issues/81)) ([fbb09f3](fbb09f3)) * PatchOptions#nullify to nullify an option ([371f0c4](371f0c4)) * properly manage `ClassProxy` & add `ProxyBackedClassList` ([6cb1fdf](6cb1fdf)) * registry for patch options ([2431785](2431785)) * remaining mutable `EncodedValue` classes ([3f97cc8](3f97cc8)) * remove deprecated functions ([ada5a03](ada5a03)) * return a `File` instance instead of `ExtFile` ([68174bb](68174bb)) * simplify adding instructions ([e47b67d](e47b67d)) * Soft Dependencies for Patches ([8c12f8d](8c12f8d)) * streams overload for `XmlFileHolder` ([6f72c4c](6f72c4c)) * string signature ([ReVanced#22](https://github.com/dennyxbox890/revanced-patcher/issues/22)) ([612515a](612515a)) * use annotations instead of metadata objects ([d20f7fd](d20f7fd)) * use streams to write the dex files ([64bae88](64bae88)) * utility functions to get metadata of patch & sigs ([54511a4](54511a4)) * validator for patch options ([4e2e772](4e2e772)) * yield the patch result ([dde5385](dde5385)) ### Performance Improvements * check type instead of class ([c7ef264](c7ef264)) * decode manifest only when not using resource patcher ([4f60bea](4f60bea)) * depend on `androlib` instead of `ApkDecoder` ([cc9416d](cc9416d)) * do not resolve empty signatures list ([b1eebc9](b1eebc9)) * lazy-ify all mutable clones ([d18a3b6](d18a3b6)) * optimize indexOf call away ([9991f39](9991f39)) * use Set instead of List since there are no dupes ([e65ebd2](e65ebd2)) * use String List and compare instead of any lambda ([5bd416b](5bd416b)) ### Reverts * "fix: enforce aapt v1" ([dfd8a24](dfd8a24)) * AccessFlag extensions not working with IDE ([0bfb92a](0bfb92a)) * previous commits check for dupes in dexFile, not cache ([e810197](e810197)) * propagate dependencies ([365e1d7](365e1d7)) ### BREAKING CHANGES * Patch options now use the PatchOptions registry class instead of an Iterable. This change requires modifications to existing patches using this API. * Not backwards compatible, since a lot of classes where renamed. * 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<Int> 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.
- Loading branch information