-
-
Notifications
You must be signed in to change notification settings - Fork 211
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test resources are ignored #1
Comments
🎉 This issue has been resolved in version 1.0.0-dev.1 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
github-actions bot
pushed a commit
that referenced
this issue
Mar 23, 2022
# 1.0.0-dev.1 (2022-03-23) ### Bug Fixes * avoid ignoring test resources (fixes [#1](#1)) ([d5a3c76](d5a3c76)) * current must be calculated after increment ([5f12bab](5f12bab)) * **gradle:** publish source and javadocs ([87bbde5](87bbde5)) * **Io:** fix finding classes by name ([460d62a](460d62a)) * **Io:** JAR loading and saving ([#8](#8)) ([4d98cbc](4d98cbc)) * nullable signature members ([#10](#10)) ([8db8893](8db8893)) * Patch should have access to the Cache ([6c0f082](6c0f082)) * remove broken code ([0e72a6e](0e72a6e)) * set index for insertAt to 0 by default ([1769132](1769132)) * workflow on dev branch ([7e67daf](7e67daf)) ### Code Refactoring * convert Patch to abstract class ([23e897a](23e897a)) * Optimize Signature class ([#11](#11)) ([49beec9](49beec9)) * Rename `net.revanced` to `app.revanced` ([3ab42a9](3ab42a9)) ### Features * Add `findParentMethod` utility method ([#4](#4)) ([00c6ab7](00c6ab7)) ### BREAKING CHANGES * 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.
🎉 This issue has been resolved in version 1.0.0-dev.1 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
github-actions bot
pushed a commit
to Optinux/revanced-patcher
that referenced
this issue
Mar 27, 2022
# 1.0.0-dev.1 (2022-03-27) ### Bug Fixes * avoid ignoring test resources (fixes [ReVanced#1](https://github.com/Optinux/revanced-patcher/issues/1)) ([d5a3c76](d5a3c76)) * current must be calculated after increment ([5f12bab](5f12bab)) * give ClassWriter a ClassReader for symtable ([e8f6973](e8f6973)) * **gradle:** publish source and javadocs ([87bbde5](87bbde5)) * **Io:** fix finding classes by name ([460d62a](460d62a)) * **Io:** JAR loading and saving ([ReVanced#8](https://github.com/Optinux/revanced-patcher/issues/8)) ([4d98cbc](4d98cbc)) * **MethodResolver:** fix cd57a8c ([1af31b2](1af31b2)) * **MethodResolver:** strip labels and line numbers so opcode patterns match ([8d1bb5f](8d1bb5f)) * **MethodResolver:** strip labels nodes so opcode patterns match ([cd57a8c](cd57a8c)) * nullable signature members ([ReVanced#10](https://github.com/Optinux/revanced-patcher/issues/10)) ([8db8893](8db8893)) * Patch should have access to the Cache ([6c0f082](6c0f082)) * remove broken code ([0e72a6e](0e72a6e)) * set index for insertAt to 0 by default ([1769132](1769132)) * set marklimit to Integer.MAX_VALUE ([ab6453c](ab6453c)) * workflow on dev branch ([7e67daf](7e67daf)) ### Code Refactoring * convert Patch to abstract class ([23e897a](23e897a)) * Optimize Signature class ([ReVanced#11](https://github.com/Optinux/revanced-patcher/issues/11)) ([49beec9](49beec9)) * Rename `net.revanced` to `app.revanced` ([3ab42a9](3ab42a9)) ### Features * Add `findParentMethod` utility method ([ReVanced#4](https://github.com/Optinux/revanced-patcher/issues/4)) ([00c6ab7](00c6ab7)) * add SafeClassWriter ([ca6b94d](ca6b94d)) ### Performance Improvements * check type instead of class ([47eb493](47eb493)) ### BREAKING CHANGES * 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.
github-actions bot
pushed a commit
to sudevn/revanced-patcher
that referenced
this issue
Apr 26, 2022
# 1.0.0 (2022-04-26) ### Bug Fixes * `compareSignatureToMethod` not matching correctly in case opcodes are null ([5ae5e98](5ae5e98)) * `ConcurrentModificationException` while iterating through `proxies` and modifying it ([bfeeaf4](bfeeaf4)) * `PackageMetadata` ([305a817](305a817)) * `replaceWith` not replacing classes with used class proxies ([f0f3403](f0f3403)) * adding existing classes to the patchers cache ([4281546](4281546)) * always return PatchResultSuccess on patch success ([866b03a](866b03a)) * applying no patches throwing error ([f88c118](f88c118)) * applyPatches not returning successful patches ([8b70bb4](8b70bb4)) * avoid ignoring test resources (fixes [ReVanced#1](https://github.com/sudevn/revanced-patcher/issues/1)) ([d5a3c76](d5a3c76)) * Classes not being written properly because of array shifting ([1471956](1471956)) * current must be calculated after increment ([5f12bab](5f12bab)) * fix classes having multiple instances of fields ([b711b80](b711b80)) * fix classes having multiple method instances ([12c10d8](12c10d8)) * Fixed writer & signature resolver, improved tests & speed, minor refactoring ([bb42fa3](bb42fa3)) * fuzzy resolver warning params were turned around ([d49df10](d49df10)) * give ClassWriter a ClassReader for symtable ([e8f6973](e8f6973)) * **gradle:** publish source and javadocs ([87bbde5](87bbde5)) * incorrect pattern offset ([03700ff](03700ff)) * **Io:** fix finding classes by name ([460d62a](460d62a)) * **Io:** JAR loading and saving ([ReVanced#8](https://github.com/sudevn/revanced-patcher/issues/8)) ([4d98cbc](4d98cbc)) * make `methodMetadata` nullable in `MethodSignatureMetadata` ([864e38c](864e38c)) * make warnings nullable instead of lateinit ([04b49b8](04b49b8)) * match to correct signature method parameters ([c49071a](c49071a)) * **MethodResolver:** fix cd57a8c ([1af31b2](1af31b2)) * **MethodResolver:** strip labels and line numbers so opcode patterns match ([8d1bb5f](8d1bb5f)) * **MethodResolver:** strip labels nodes so opcode patterns match ([cd57a8c](cd57a8c)) * MethodSignature#resolved throwing an exception ([82b1e66](82b1e66)) * Move proxy package out of cache package ([6bc4e7e](6bc4e7e)) * null check causing an exception ([560c485](560c485)) * nullable signature members ([ReVanced#10](https://github.com/sudevn/revanced-patcher/issues/10)) ([8db8893](8db8893)) * Patch should have access to the Cache ([6c0f082](6c0f082)) * Patcher not writing resolved methods ([d15240d](d15240d)) * remove broken code ([0e72a6e](0e72a6e)) * remove leftover debug code ([4458141](4458141)) * return mutable set of classes ([84bc7e0](84bc7e0)) * returning failure on success ([3b68d5c](3b68d5c)) * Search method map for existing class proxy ([d5e694c](d5e694c)) * set index for insertAt to 0 by default ([1769132](1769132)) * set marklimit to Integer.MAX_VALUE ([ab6453c](ab6453c)) * string signature in `SignatureResolver` ([ac36d19](ac36d19)) * Suppress unused for addFiles ([a0d6d46](a0d6d46)) * throwing in case the opcode patterns do not match ([f72dd68](f72dd68)) * use Array instead of Iterable for methodParameters ([312235b](312235b)) * workflow on dev branch ([7e67daf](7e67daf)) * write all classes ([6ad51aa](6ad51aa)) ### Code Refactoring * bump multidexlib2 to 2.5.2.r2 ([32e6458](32e6458)) * Change all references from Array to Iterable ([264989f](264989f)) * convert Patch to abstract class ([23e897a](23e897a)) * Optimize Signature class ([ReVanced#11](https://github.com/sudevn/revanced-patcher/issues/11)) ([49beec9](49beec9)) * Rename `net.revanced` to `app.revanced` ([3ab42a9](3ab42a9)) ### Features * Add `findParentMethod` utility method ([ReVanced#4](https://github.com/sudevn/revanced-patcher/issues/4)) ([00c6ab7](00c6ab7)) * add `MethodWalker` ([659e108](659e108)) * add extensions for cloning methods ([df7503b](df7503b)) * add findClass method with className ([78235d1](78235d1)) * Add first tests ([6767c8f](6767c8f)) * add fuzzy resolver ([a492808](a492808)) * add immutableMethod ([eed1cfd](eed1cfd)) * add inline smali compiler ([dbafe2a](dbafe2a)) * add missing test for fields ([4022b8b](4022b8b)) * add or extension for AccessFlags ([aec5eeb](aec5eeb)) * Add patch metadata ([8544fc4](8544fc4)), closes [ReVancedTeam/revanced-patches#1](https://github.com/ReVancedTeam/revanced-patches/issues/1) * add SafeClassWriter ([ca6b94d](ca6b94d)) * Add warnings for Fuzzy resolver ([643a14e](643a14e)) * allow classes to be overwritten in addFiles and resolve signatures when applyPatches is called ([5f71a34](5f71a34)) * Allow unknown opcodes using `null` ([f4a47d4](f4a47d4)) * Finish first patcher test ([a9e4e8a](a9e4e8a)) * Improve `SignatureResolver` ([88a6a27](88a6a27)) * migrate to dexlib ([be51f42](be51f42)) * Minor refactor and return proxy, if class has been proxied already ([2d3c611](2d3c611)) * properly manage `ClassProxy` & add `ProxyBackedClassList` ([2319787](2319787)) * remaining mutable `EncodedValue` classes ([7d38bb0](7d38bb0)) * string signature ([ReVanced#22](https://github.com/sudevn/revanced-patcher/issues/22)) ([c245edb](c245edb)) ### Performance Improvements * check type instead of class ([47eb493](47eb493)) * do not resolve empty signatures list ([1f7bf3a](1f7bf3a)) * lazy-ify all mutable clones ([05e4400](05e4400)) * optimize indexOf call away ([f8e978a](f8e978a)) * use Set instead of List since there are no dupes ([6221387](6221387)) * use String List and compare instead of any lambda ([aed4fd9](aed4fd9)) ### Reverts * AccessFlag extensions not working with IDE ([e161f7f](e161f7f)) * previous commits check for dupes in dexFile, not cache ([433914f](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 * 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.
github-actions bot
pushed a commit
to sudevn/revanced-patcher
that referenced
this issue
Apr 26, 2022
# 1.0.0 (2022-04-26) ### Bug Fixes * `compareSignatureToMethod` not matching correctly in case opcodes are null ([5ae5e98](5ae5e98)) * `ConcurrentModificationException` while iterating through `proxies` and modifying it ([bfeeaf4](bfeeaf4)) * `PackageMetadata` ([305a817](305a817)) * `replaceWith` not replacing classes with used class proxies ([f0f3403](f0f3403)) * adding existing classes to the patchers cache ([4281546](4281546)) * always return PatchResultSuccess on patch success ([866b03a](866b03a)) * applying no patches throwing error ([f88c118](f88c118)) * applyPatches not returning successful patches ([8b70bb4](8b70bb4)) * avoid ignoring test resources (fixes [ReVanced#1](https://github.com/sudevn/revanced-patcher/issues/1)) ([d5a3c76](d5a3c76)) * Classes not being written properly because of array shifting ([1471956](1471956)) * current must be calculated after increment ([5f12bab](5f12bab)) * fix classes having multiple instances of fields ([b711b80](b711b80)) * fix classes having multiple method instances ([12c10d8](12c10d8)) * Fixed writer & signature resolver, improved tests & speed, minor refactoring ([bb42fa3](bb42fa3)) * fuzzy resolver warning params were turned around ([d49df10](d49df10)) * give ClassWriter a ClassReader for symtable ([e8f6973](e8f6973)) * **gradle:** publish source and javadocs ([87bbde5](87bbde5)) * incorrect pattern offset ([03700ff](03700ff)) * **Io:** fix finding classes by name ([460d62a](460d62a)) * **Io:** JAR loading and saving ([ReVanced#8](https://github.com/sudevn/revanced-patcher/issues/8)) ([4d98cbc](4d98cbc)) * make `methodMetadata` nullable in `MethodSignatureMetadata` ([864e38c](864e38c)) * make warnings nullable instead of lateinit ([04b49b8](04b49b8)) * match to correct signature method parameters ([c49071a](c49071a)) * **MethodResolver:** fix cd57a8c ([1af31b2](1af31b2)) * **MethodResolver:** strip labels and line numbers so opcode patterns match ([8d1bb5f](8d1bb5f)) * **MethodResolver:** strip labels nodes so opcode patterns match ([cd57a8c](cd57a8c)) * MethodSignature#resolved throwing an exception ([82b1e66](82b1e66)) * Move proxy package out of cache package ([6bc4e7e](6bc4e7e)) * null check causing an exception ([560c485](560c485)) * nullable signature members ([ReVanced#10](https://github.com/sudevn/revanced-patcher/issues/10)) ([8db8893](8db8893)) * Patch should have access to the Cache ([6c0f082](6c0f082)) * Patcher not writing resolved methods ([d15240d](d15240d)) * remove broken code ([0e72a6e](0e72a6e)) * remove leftover debug code ([4458141](4458141)) * return mutable set of classes ([84bc7e0](84bc7e0)) * returning failure on success ([3b68d5c](3b68d5c)) * Search method map for existing class proxy ([d5e694c](d5e694c)) * set index for insertAt to 0 by default ([1769132](1769132)) * set marklimit to Integer.MAX_VALUE ([ab6453c](ab6453c)) * string signature in `SignatureResolver` ([ac36d19](ac36d19)) * Suppress unused for addFiles ([a0d6d46](a0d6d46)) * throwing in case the opcode patterns do not match ([f72dd68](f72dd68)) * use Array instead of Iterable for methodParameters ([312235b](312235b)) * workflow on dev branch ([7e67daf](7e67daf)) * write all classes ([6ad51aa](6ad51aa)) ### Code Refactoring * bump multidexlib2 to 2.5.2.r2 ([32e6458](32e6458)) * Change all references from Array to Iterable ([264989f](264989f)) * convert Patch to abstract class ([23e897a](23e897a)) * Optimize Signature class ([ReVanced#11](https://github.com/sudevn/revanced-patcher/issues/11)) ([49beec9](49beec9)) * Rename `net.revanced` to `app.revanced` ([3ab42a9](3ab42a9)) ### Features * Add `findParentMethod` utility method ([ReVanced#4](https://github.com/sudevn/revanced-patcher/issues/4)) ([00c6ab7](00c6ab7)) * add `MethodWalker` ([659e108](659e108)) * add extensions for cloning methods ([df7503b](df7503b)) * add findClass method with className ([78235d1](78235d1)) * Add first tests ([6767c8f](6767c8f)) * add fuzzy resolver ([a492808](a492808)) * add immutableMethod ([eed1cfd](eed1cfd)) * add inline smali compiler ([dbafe2a](dbafe2a)) * add missing test for fields ([4022b8b](4022b8b)) * add or extension for AccessFlags ([aec5eeb](aec5eeb)) * Add patch metadata ([8544fc4](8544fc4)), closes [ReVancedTeam/revanced-patches#1](https://github.com/ReVancedTeam/revanced-patches/issues/1) * add SafeClassWriter ([ca6b94d](ca6b94d)) * Add warnings for Fuzzy resolver ([643a14e](643a14e)) * allow classes to be overwritten in addFiles and resolve signatures when applyPatches is called ([5f71a34](5f71a34)) * Allow unknown opcodes using `null` ([f4a47d4](f4a47d4)) * Finish first patcher test ([a9e4e8a](a9e4e8a)) * Improve `SignatureResolver` ([88a6a27](88a6a27)) * migrate to dexlib ([be51f42](be51f42)) * Minor refactor and return proxy, if class has been proxied already ([2d3c611](2d3c611)) * properly manage `ClassProxy` & add `ProxyBackedClassList` ([2319787](2319787)) * remaining mutable `EncodedValue` classes ([7d38bb0](7d38bb0)) * string signature ([ReVanced#22](https://github.com/sudevn/revanced-patcher/issues/22)) ([c245edb](c245edb)) ### Performance Improvements * check type instead of class ([47eb493](47eb493)) * do not resolve empty signatures list ([1f7bf3a](1f7bf3a)) * lazy-ify all mutable clones ([05e4400](05e4400)) * optimize indexOf call away ([f8e978a](f8e978a)) * use Set instead of List since there are no dupes ([6221387](6221387)) * use String List and compare instead of any lambda ([aed4fd9](aed4fd9)) ### Reverts * AccessFlag extensions not working with IDE ([e161f7f](e161f7f)) * previous commits check for dupes in dexFile, not cache ([433914f](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 * 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.
github-actions bot
pushed a commit
to gitcetra/revanced-patcher
that referenced
this issue
Jun 3, 2022
# 1.0.0-dev.1 (2022-06-03) ### Bug Fixes * `compareSignatureToMethod` not matching correctly in case opcodes are null ([5ae5e98](5ae5e98)) * `ConcurrentModificationException` while iterating through `proxies` and modifying it ([bfeeaf4](bfeeaf4)) * `JarPatchBundle` loading non-class files to class loader ([3f0c740](3f0c740)) * `PackageMetadata` ([305a817](305a817)) * `replaceWith` not replacing classes with used class proxies ([f0f3403](f0f3403)) * adding existing classes to the patchers cache ([4281546](4281546)) * always return PatchResultSuccess on patch success ([866b03a](866b03a)) * applying no patches throwing error ([f88c118](f88c118)) * applyPatches not returning successful patches ([8b70bb4](8b70bb4)) * avoid ignoring test resources (fixes [ReVanced#1](https://github.com/gitcetra/revanced-patcher/issues/1)) ([d5a3c76](d5a3c76)) * Classes not being written properly because of array shifting ([1471956](1471956)) * current must be calculated after increment ([5f12bab](5f12bab)) * failing tests temporarily ([66b08f8](66b08f8)) * fix classes having multiple instances of fields ([b711b80](b711b80)) * fix classes having multiple method instances ([12c10d8](12c10d8)) * Fixed writer & signature resolver, improved tests & speed, minor refactoring ([bb42fa3](bb42fa3)) * fuzzy resolver warning params were turned around ([d49df10](d49df10)) * give ClassWriter a ClassReader for symtable ([e8f6973](e8f6973)) * **gradle:** publish source and javadocs ([87bbde5](87bbde5)) * incorrect pattern offset ([03700ff](03700ff)) * **Io:** fix finding classes by name ([460d62a](460d62a)) * **Io:** JAR loading and saving ([ReVanced#8](https://github.com/gitcetra/revanced-patcher/issues/8)) ([4d98cbc](4d98cbc)) * make `methodMetadata` nullable in `MethodSignatureMetadata` ([864e38c](864e38c)) * make warnings nullable instead of lateinit ([04b49b8](04b49b8)) * match to correct signature method parameters ([c49071a](c49071a)) * **MethodResolver:** fix cd57a8c ([1af31b2](1af31b2)) * **MethodResolver:** strip labels and line numbers so opcode patterns match ([8d1bb5f](8d1bb5f)) * **MethodResolver:** strip labels nodes so opcode patterns match ([cd57a8c](cd57a8c)) * MethodSignature#resolved throwing an exception ([82b1e66](82b1e66)) * Move proxy package out of cache package ([6bc4e7e](6bc4e7e)) * null check causing an exception ([560c485](560c485)) * nullable signature members ([ReVanced#10](https://github.com/gitcetra/revanced-patcher/issues/10)) ([8db8893](8db8893)) * Patch should have access to the Cache ([6c0f082](6c0f082)) * Patcher not writing resolved methods ([d15240d](d15240d)) * qualifying `Element` with wrong package ([4d74de4](4d74de4)) * reaching all constructors not possible ([37fa994](37fa994)) * reformat (trigger release) ([45a167e](45a167e)) * remove broken code ([0e72a6e](0e72a6e)) * remove dependency to fork of Apktool ([0fa529f](0fa529f)) * remove leftover debug code ([4458141](4458141)) * return mutable set of classes ([84bc7e0](84bc7e0)) * returning failure on success ([3b68d5c](3b68d5c)) * Search method map for existing class proxy ([d5e694c](d5e694c)) * set index for insertAt to 0 by default ([1769132](1769132)) * set marklimit to Integer.MAX_VALUE ([ab6453c](ab6453c)) * string signature in `SignatureResolver` ([ac36d19](ac36d19)) * Suppress unused for addFiles ([a0d6d46](a0d6d46)) * throwing in case the opcode patterns do not match ([f72dd68](f72dd68)) * use Array instead of Iterable for methodParameters ([312235b](312235b)) * using old instance of `Androlib` when saving ([5630e49](5630e49)) * workflow on dev branch ([7e67daf](7e67daf)) * write all classes ([6ad51aa](6ad51aa)) ### Code Refactoring * bump multidexlib2 to 2.5.2.r2 ([32e6458](32e6458)) * Change all references from Array to Iterable ([264989f](264989f)) * convert Patch to abstract class ([23e897a](23e897a)) * Optimize Signature class ([ReVanced#11](https://github.com/gitcetra/revanced-patcher/issues/11)) ([49beec9](49beec9)) * Rename `net.revanced` to `app.revanced` ([3ab42a9](3ab42a9)) ### Features * `PatchLoader` ([1a99eca](1a99eca)) * Add `findParentMethod` utility method ([ReVanced#4](https://github.com/gitcetra/revanced-patcher/issues/4)) ([00c6ab7](00c6ab7)) * add `MethodWalker` ([659e108](659e108)) * add `p` naming scheme to smali compiler ([38556d6](38556d6)) * add extensions for cloning methods ([df7503b](df7503b)) * add findClass method with className ([78235d1](78235d1)) * Add first tests ([6767c8f](6767c8f)) * add fuzzy resolver ([a492808](a492808)) * add immutableMethod ([eed1cfd](eed1cfd)) * add inline smali compiler ([dbafe2a](dbafe2a)) * add missing test for fields ([4022b8b](4022b8b)) * add or extension for AccessFlags ([aec5eeb](aec5eeb)) * Add patch metadata ([8544fc4](8544fc4)), closes [ReVancedTeam/revanced-patches#1](https://github.com/ReVancedTeam/revanced-patches/issues/1) * add SafeClassWriter ([ca6b94d](ca6b94d)) * Add warnings for Fuzzy resolver ([643a14e](643a14e)) * allow classes to be overwritten in addFiles and resolve signatures when applyPatches is called ([5f71a34](5f71a34)) * Allow unknown opcodes using `null` ([f4a47d4](f4a47d4)) * Finish first patcher test ([a9e4e8a](a9e4e8a)) * Improve `SignatureResolver` ([88a6a27](88a6a27)) * migrate to `DexPatchBundle` and `JarPatchBundle` ([7573db2](7573db2)) * migrate to dexlib ([be51f42](be51f42)) * Minor refactor and return proxy, if class has been proxied already ([2d3c611](2d3c611)) * patch dependencies annotation and `PatcherOptions` ([8442991](8442991)) * properly manage `ClassProxy` & add `ProxyBackedClassList` ([2319787](2319787)) * remaining mutable `EncodedValue` classes ([7d38bb0](7d38bb0)) * string signature ([ReVanced#22](https://github.com/gitcetra/revanced-patcher/issues/22)) ([c245edb](c245edb)) * use annotations instead of metadata objects ([6726884](6726884)) * utility functions to get metadata of patch & sigs ([72f16b7](72f16b7)) ### Performance Improvements * check type instead of class ([47eb493](47eb493)) * decode manifest only when not using resource patcher ([40b1fa4](40b1fa4)) * depend on `androlib` instead of `ApkDecoder` ([e5c054a](e5c054a)) * do not resolve empty signatures list ([1f7bf3a](1f7bf3a)) * lazy-ify all mutable clones ([05e4400](05e4400)) * optimize indexOf call away ([f8e978a](f8e978a)) * use Set instead of List since there are no dupes ([6221387](6221387)) * use String List and compare instead of any lambda ([aed4fd9](aed4fd9)) ### Reverts * AccessFlag extensions not working with IDE ([e161f7f](e161f7f)) * previous commits check for dupes in dexFile, not cache ([433914f](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 * 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.
oSumAtrIX
pushed a commit
that referenced
this issue
Jun 5, 2022
# 1.0.0-dev.1 (2022-03-23) ### Bug Fixes * avoid ignoring test resources (fixes [#1](#1)) ([d5a3c76](d5a3c76)) * current must be calculated after increment ([5f12bab](5f12bab)) * **gradle:** publish source and javadocs ([87bbde5](87bbde5)) * **Io:** fix finding classes by name ([460d62a](460d62a)) * **Io:** JAR loading and saving ([#8](#8)) ([4d98cbc](4d98cbc)) * nullable signature members ([#10](#10)) ([8db8893](8db8893)) * Patch should have access to the Cache ([6c0f082](6c0f082)) * remove broken code ([0e72a6e](0e72a6e)) * set index for insertAt to 0 by default ([1769132](1769132)) * workflow on dev branch ([7e67daf](7e67daf)) ### Code Refactoring * convert Patch to abstract class ([23e897a](23e897a)) * Optimize Signature class ([#11](#11)) ([49beec9](49beec9)) * Rename `net.revanced` to `app.revanced` ([3ab42a9](3ab42a9)) ### Features * Add `findParentMethod` utility method ([#4](#4)) ([00c6ab7](00c6ab7)) ### BREAKING CHANGES * 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.
github-actions bot
pushed a commit
that referenced
this issue
Jun 5, 2022
# 1.0.0 (2022-06-05) ### Bug Fixes * `compareSignatureToMethod` not matching correctly in case opcodes are null ([cca12aa](cca12aa)) * `ConcurrentModificationException` while iterating through `proxies` and modifying it ([6cb7cdb](6cb7cdb)) * `JarPatchBundle` loading non-class files to class loader ([849616d](849616d)) * `PackageMetadata` ([7399450](7399450)) * `replaceWith` not replacing classes with used class proxies ([4178a1e](4178a1e)) * 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 [#1](#1)) ([d5a3c76](d5a3c76)) * Classes not being written properly because of array shifting ([6e4db11](6e4db11)) * current must be calculated after increment ([5f12bab](5f12bab)) * 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)) * **gradle:** publish source and javadocs ([c236ebe](c236ebe)) * incorrect pattern offset ([f3b5f67](f3b5f67)) * **Io:** fix finding classes by name ([b957501](b957501)) * **Io:** JAR loading and saving ([#8](#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)) * Move proxy package out of cache package ([ce21bd6](ce21bd6)) * null check causing an exception ([338bd9f](338bd9f)) * nullable signature members ([#10](#10)) ([674461f](674461f)) * Patch should have access to the Cache ([4dd820f](4dd820f)) * Patcher not writing resolved methods ([fac44a5](fac44a5)) * 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 dependency to fork of Apktool ([11abc67](11abc67)) * remove leftover debug code ([0f30eac](0f30eac)) * return mutable set of classes ([66a9b76](66a9b76)) * returning failure on success ([48c4ea2](48c4ea2)) * 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)) * string signature in `SignatureResolver` ([e5ae970](e5ae970)) * Suppress unused for addFiles ([3d6a1d3](3d6a1d3)) * throwing in case the opcode patterns do not match ([3144ec8](3144ec8)) * use Array instead of Iterable for methodParameters ([dfac8f0](dfac8f0)) * using old instance of `Androlib` when saving ([a4d8be2](a4d8be2)) * 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)) * Optimize Signature class ([#11](#11)) ([7faa001](7faa001)) * Rename `net.revanced` to `app.revanced` ([7087230](7087230)) ### Features * `Dependencies` annotation ([893d4c6](893d4c6)) * `PatchLoader` ([ec9fd15](ec9fd15)) * Add `findParentMethod` utility method ([#4](#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 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 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 unknown opcodes using `null` ([0e5f4ba](0e5f4ba)) * Finish first patcher test ([0d8d19e](0d8d19e)) * Improve `SignatureResolver` ([139a23b](139a23b)) * 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)) * optional `forStaticMethod` parameter for `InlineSmaliCompiler.compileMethodInstructions` ([41e8860](41e8860)) * patch dependencies annotation and `PatcherOptions` ([6c65952](6c65952)) * properly manage `ClassProxy` & add `ProxyBackedClassList` ([6cb1fdf](6cb1fdf)) * remaining mutable `EncodedValue` classes ([3f97cc8](3f97cc8)) * string signature ([#22](#22)) ([612515a](612515a)) * use annotations instead of metadata objects ([d20f7fd](d20f7fd)) * utility functions to get metadata of patch & sigs ([54511a4](54511a4)) ### 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 * AccessFlag extensions not working with IDE ([0bfb92a](0bfb92a)) * previous commits check for dupes in dexFile, not cache ([e810197](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<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.
github-actions bot
pushed a commit
to KiyuM1n/revanced-patcher
that referenced
this issue
Aug 23, 2022
# 1.0.0 (2022-08-23) ### 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/Sean1781031/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/Sean1781031/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/Sean1781031/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/Sean1781031/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/Sean1781031/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/Sean1781031/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 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/Sean1781031/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/Sean1781031/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/Sean1781031/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/Sean1781031/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)) * 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/Sean1781031/revanced-patcher/issues/59)) ([4ea030d](4ea030d)) * optional `forStaticMethod` parameter for `InlineSmaliCompiler.compileMethodInstructions` ([41e8860](41e8860)) * patch dependencies annotation and `PatcherOptions` ([6c65952](6c65952)) * patch options ([ReVanced#81](https://github.com/Sean1781031/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/Sean1781031/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.
github-actions bot
pushed a commit
to 5ee1e/revanced-patcher
that referenced
this issue
Aug 27, 2022
# 1.0.0 (2022-08-27) ### 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/5ee1e/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/5ee1e/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/5ee1e/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/5ee1e/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/5ee1e/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/5ee1e/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 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/5ee1e/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/5ee1e/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/5ee1e/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/5ee1e/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)) * 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/5ee1e/revanced-patcher/issues/59)) ([4ea030d](4ea030d)) * optional `forStaticMethod` parameter for `InlineSmaliCompiler.compileMethodInstructions` ([41e8860](41e8860)) * patch dependencies annotation and `PatcherOptions` ([6c65952](6c65952)) * patch options ([ReVanced#81](https://github.com/5ee1e/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/5ee1e/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.
github-actions bot
pushed a commit
to djvk87/revanced-patcher
that referenced
this issue
Aug 28, 2022
# 1.0.0 (2022-08-28) ### 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/djvk87/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/djvk87/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/djvk87/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/djvk87/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/djvk87/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/djvk87/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 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/djvk87/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/djvk87/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/djvk87/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/djvk87/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)) * 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/djvk87/revanced-patcher/issues/59)) ([4ea030d](4ea030d)) * optional `forStaticMethod` parameter for `InlineSmaliCompiler.compileMethodInstructions` ([41e8860](41e8860)) * patch dependencies annotation and `PatcherOptions` ([6c65952](6c65952)) * patch options ([ReVanced#81](https://github.com/djvk87/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/djvk87/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.
github-actions bot
pushed a commit
to Thuyen21/revanced-patcher
that referenced
this issue
Sep 1, 2022
# 1.0.0 (2022-09-01) ### 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/Thuyen21/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/Thuyen21/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/Thuyen21/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/Thuyen21/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/Thuyen21/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/Thuyen21/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 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/Thuyen21/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/Thuyen21/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/Thuyen21/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/Thuyen21/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)) * 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/Thuyen21/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/Thuyen21/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/Thuyen21/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.
github-actions bot
pushed a commit
to apicalshark/revanced-patcher
that referenced
this issue
Sep 6, 2022
# 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.
github-actions bot
pushed a commit
to yuchi0531/revanced-patcher
that referenced
this issue
Sep 22, 2022
# 1.0.0 (2022-09-22) ### 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/yuchi0531/revanced-patcher/issues/46)) ([34f607a](34f607a)) * add tests for PathOption ([d6308e1](d6308e1)) * 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/yuchi0531/revanced-patcher/issues/1)) ([d5a3c76](d5a3c76)) * broken deprecation message ([62aa295](62aa295)) * 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/yuchi0531/revanced-patcher/issues/75)) ([123ad54](123ad54)) * close stream when closing `DomFileEditor` ([77604d4](77604d4)) * compare any methods parameters ([ReVanced#101](https://github.com/yuchi0531/revanced-patcher/issues/101)) ([085a3a4](085a3a4)) * 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)) * **fingerprint:** do not throw on `MethodFingerprint.result` getter ([2f7e62e](2f7e62e)) * 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/yuchi0531/revanced-patcher/issues/64)) ([482af78](482af78)) * handle option types and nulls properly ([aff4968](aff4968)) * handle private companion objects ([ad3d332](ad3d332)) * incorrect pattern offset ([f3b5f67](f3b5f67)) * invalid type propagation in options ([b873228](b873228)), closes [ReVanced#98](https://github.com/yuchi0531/revanced-patcher/issues/98) * invalid types for example options ([79f91e0](79f91e0)) * 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/yuchi0531/revanced-patcher/issues/8)) ([310a7c4](310a7c4)) * make `methodMetadata` nullable in `MethodSignatureMetadata` ([4e56652](4e56652)) * make patcher version public ([76c45dd](76c45dd)) * 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/yuchi0531/revanced-patcher/issues/10)) ([674461f](674461f)) * only run list option check if not null ([4055939](4055939)) * Patch should have access to the Cache ([4dd820f](4dd820f)) * Patcher not writing resolved methods ([fac44a5](fac44a5)) * Patcher setting BuildOptions too late ([6a5c873](6a5c873)) * PathOption should be open, not sealed ([a562e47](a562e47)) * 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 repeatable from PatchDeprecated ([6e73631](6e73631)) * remove requirement for solution [skip ci] ([ReVanced#80](https://github.com/yuchi0531/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)) * **tests:** access `patternScanResult` through `scanResult` ([76676fb](76676fb)) * throwing in case the opcode patterns do not match ([3144ec8](3144ec8)) * typo in ListOption ([3921648](3921648)) * 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)) * wrong value for iterator in PatchOptions ([e31ac1f](e31ac1f)) ### 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)) * Improve Patch Options ([6b909c1](6b909c1)) * migrate from `Signature` to `Fingerprint` ([efa8ea1](efa8ea1)) * Optimize Signature class ([ReVanced#11](https://github.com/yuchi0531/revanced-patcher/issues/11)) ([7faa001](7faa001)) * Rename `net.revanced` to `app.revanced` ([7087230](7087230)) * refactor!: move utility methods from `MethodFingerprintUtils` `MethodFingerprint` ([d802ef8](d802ef8)) * feat(fingerprint)!: `StringsScanResult` for `MethodFingerprint` ([3813e28](3813e28)) ### 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/yuchi0531/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 PathOption back ([172655b](172655b)) * add replace and remove extensions ([ReVanced#50](https://github.com/yuchi0531/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)) * deprecation for patches ([80c2e80](80c2e80)) * 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)) * improved Patch Options ([e722e3f](e722e3f)) * 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/yuchi0531/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/yuchi0531/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)) * section `acknowledgements` for issue templates ([a0cb449](a0cb449)) * simplify adding instructions ([e47b67d](e47b67d)) * SincePatcher annotation ([25f74dc](25f74dc)) * Soft Dependencies for Patches ([8c12f8d](8c12f8d)) * streams overload for `XmlFileHolder` ([6f72c4c](6f72c4c)) * string signature ([ReVanced#22](https://github.com/yuchi0531/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)) * **fingerprint:** do not resolve already resolved fingerprints ([4bfd7eb](4bfd7eb)) * lazy-ify all mutable clones ([d18a3b6](d18a3b6)) * make exception an object ([75d2be8](75d2be8)) * 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)) * revert breaking changes ([ReVanced#106](https://github.com/yuchi0531/revanced-patcher/issues/106)) ([124332f](124332f)) ### 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> * 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. * 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.
github-actions bot
pushed a commit
to ThexXTURBOXx/revanced-patcher
that referenced
this issue
Nov 5, 2022
# 1.0.0 (2022-11-05) ### 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/ThexXTURBOXx/revanced-patcher/issues/46)) ([34f607a](34f607a)) * add tests for PathOption ([d6308e1](d6308e1)) * 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/ThexXTURBOXx/revanced-patcher/issues/1)) ([d5a3c76](d5a3c76)) * broken deprecation message ([62aa295](62aa295)) * callback for each file instead of class ([930768d](930768d)) * callback only when inteded ([e3bf367](e3bf367)) * check dependencies for resource patches ([9c07ffc](9c07ffc)) * 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/ThexXTURBOXx/revanced-patcher/issues/75)) ([123ad54](123ad54)) * close stream when closing `DomFileEditor` ([77604d4](77604d4)) * compare any methods parameters ([ReVanced#101](https://github.com/ThexXTURBOXx/revanced-patcher/issues/101)) ([085a3a4](085a3a4)) * 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)) * **fingerprint:** do not throw on `MethodFingerprint.result` getter ([2f7e62e](2f7e62e)) * 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/ThexXTURBOXx/revanced-patcher/issues/64)) ([482af78](482af78)) * handle option types and nulls properly ([aff4968](aff4968)) * handle private companion objects ([ad3d332](ad3d332)) * incorrect pattern offset ([f3b5f67](f3b5f67)) * invalid type propagation in options ([b873228](b873228)), closes [ReVanced#98](https://github.com/ThexXTURBOXx/revanced-patcher/issues/98) * invalid types for example options ([79f91e0](79f91e0)) * 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/ThexXTURBOXx/revanced-patcher/issues/8)) ([310a7c4](310a7c4)) * make `methodMetadata` nullable in `MethodSignatureMetadata` ([4e56652](4e56652)) * make patcher version public ([76c45dd](76c45dd)) * 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/ThexXTURBOXx/revanced-patcher/issues/10)) ([674461f](674461f)) * only run list option check if not null ([4055939](4055939)) * Patch should have access to the Cache ([4dd820f](4dd820f)) * Patcher not writing resolved methods ([fac44a5](fac44a5)) * Patcher setting BuildOptions too late ([6a5c873](6a5c873)) * PathOption should be open, not sealed ([a562e47](a562e47)) * 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 repeatable from PatchDeprecated ([6e73631](6e73631)) * remove requirement for solution [skip ci] ([ReVanced#80](https://github.com/ThexXTURBOXx/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)) * **tests:** access `patternScanResult` through `scanResult` ([76676fb](76676fb)) * throwing in case the opcode patterns do not match ([3144ec8](3144ec8)) * typo in ListOption ([3921648](3921648)) * update apktool ([ab866bb](ab866bb)) * update apktool ([051afd9](051afd9)) * update apktool to fork ([566ecef](566ecef)) * update workflow actions ([20caab2](20caab2)) * use `Exception` instead of `MethodNotFoundException` ([2fc4ec4](2fc4ec4)) * use Array instead of Iterable for methodParameters ([dfac8f0](dfac8f0)) * use instruction index instead of strings list index for `StringMatch` ([843e62a](843e62a)) * 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)) * wrong value for iterator in PatchOptions ([e31ac1f](e31ac1f)) ### 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)) * Improve Patch Options ([6b909c1](6b909c1)) * improve structuring of classes and their implementations ([4aa14bb](4aa14bb)) * migrate from `Signature` to `Fingerprint` ([efa8ea1](efa8ea1)) * Optimize Signature class ([ReVanced#11](https://github.com/ThexXTURBOXx/revanced-patcher/issues/11)) ([7faa001](7faa001)) * Rename `net.revanced` to `app.revanced` ([7087230](7087230)) * refactor!: move utility methods from `MethodFingerprintUtils` `MethodFingerprint` ([d802ef8](d802ef8)) * feat(fingerprint)!: `StringsScanResult` for `MethodFingerprint` ([3813e28](3813e28)) ### 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/ThexXTURBOXx/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 PathOption back ([172655b](172655b)) * add replace and remove extensions ([ReVanced#50](https://github.com/ThexXTURBOXx/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)) * deprecation for patches ([80c2e80](80c2e80)) * 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)) * improved Patch Options ([e722e3f](e722e3f)) * 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/ThexXTURBOXx/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/ThexXTURBOXx/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)) * remove unused annotation `DirectPatternScanMethod` ([538b2a8](538b2a8)) * remove unused annotation `SincePatcher` ([4ae9ad0](4ae9ad0)) * remove unused extension `dependsOn` ([797286b](797286b)) * remove unused patch extensions ([5583904](5583904)) * return a `File` instance instead of `ExtFile` ([68174bb](68174bb)) * RwLock for opening files in `DomFileEditor` ([db4348c](db4348c)) * section `acknowledgements` for issue templates ([a0cb449](a0cb449)) * simplify adding instructions ([e47b67d](e47b67d)) * SincePatcher annotation ([25f74dc](25f74dc)) * Soft Dependencies for Patches ([8c12f8d](8c12f8d)) * streams overload for `XmlFileHolder` ([6f72c4c](6f72c4c)) * string signature ([ReVanced#22](https://github.com/ThexXTURBOXx/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)) * decode resources only when necessary ([3ba4be2](3ba4be2)) * depend on `androlib` instead of `ApkDecoder` ([cc9416d](cc9416d)) * do not resolve empty signatures list ([b1eebc9](b1eebc9)) * **fingerprint:** do not resolve already resolved fingerprints ([4bfd7eb](4bfd7eb)) * lazy-ify all mutable clones ([d18a3b6](d18a3b6)) * make exception an object ([75d2be8](75d2be8)) * 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)) * revert breaking changes ([ReVanced#106](https://github.com/ThexXTURBOXx/revanced-patcher/issues/106)) ([124332f](124332f)) ### 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 * 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> * 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. * 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.
github-actions bot
pushed a commit
to chiraitori/revanced-patcher
that referenced
this issue
Dec 13, 2022
# 1.0.0 (2022-12-13) ### 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/tathaha/revanced-patcher/issues/46)) ([34f607a](34f607a)) * add tests for PathOption ([d6308e1](d6308e1)) * 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/tathaha/revanced-patcher/issues/1)) ([d5a3c76](d5a3c76)) * broken deprecation message ([62aa295](62aa295)) * callback for each file instead of class ([930768d](930768d)) * callback only when inteded ([e3bf367](e3bf367)) * check dependencies for resource patches ([9c07ffc](9c07ffc)) * 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/tathaha/revanced-patcher/issues/75)) ([123ad54](123ad54)) * close stream when closing `DomFileEditor` ([77604d4](77604d4)) * compare any methods parameters ([ReVanced#101](https://github.com/tathaha/revanced-patcher/issues/101)) ([085a3a4](085a3a4)) * 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)) * fallback to patch class name instead of `java.lang.Class` class name ([4164cb0](4164cb0)) * **fingerprint:** do not throw on `MethodFingerprint.result` getter ([2f7e62e](2f7e62e)) * 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/tathaha/revanced-patcher/issues/64)) ([482af78](482af78)) * handle option types and nulls properly ([aff4968](aff4968)) * handle private companion objects ([ad3d332](ad3d332)) * incorrect pattern offset ([f3b5f67](f3b5f67)) * invalid type propagation in options ([b873228](b873228)), closes [ReVanced#98](https://github.com/tathaha/revanced-patcher/issues/98) * invalid types for example options ([79f91e0](79f91e0)) * 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/tathaha/revanced-patcher/issues/8)) ([310a7c4](310a7c4)) * make `methodMetadata` nullable in `MethodSignatureMetadata` ([4e56652](4e56652)) * make patcher version public ([76c45dd](76c45dd)) * 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/tathaha/revanced-patcher/issues/10)) ([674461f](674461f)) * only run list option check if not null ([4055939](4055939)) * Patch should have access to the Cache ([4dd820f](4dd820f)) * Patcher not writing resolved methods ([fac44a5](fac44a5)) * Patcher setting BuildOptions too late ([6a5c873](6a5c873)) * PathOption should be open, not sealed ([a562e47](a562e47)) * 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 repeatable from PatchDeprecated ([6e73631](6e73631)) * remove requirement for solution [skip ci] ([ReVanced#80](https://github.com/tathaha/revanced-patcher/issues/80)) ([9a4d30e](9a4d30e)) * remove unnecessary dummy nop instructions ([ReVanced#111](https://github.com/tathaha/revanced-patcher/issues/111)) ([f9bc95f](f9bc95f)) * 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)) * **tests:** access `patternScanResult` through `scanResult` ([76676fb](76676fb)) * throwing in case the opcode patterns do not match ([3144ec8](3144ec8)) * typo in ListOption ([3921648](3921648)) * update apktool ([ab866bb](ab866bb)) * update apktool ([051afd9](051afd9)) * update apktool to fork ([566ecef](566ecef)) * use `Exception` instead of `MethodNotFoundException` ([2fc4ec4](2fc4ec4)) * use `MethodUtil.methodSignaturesMatch` instead of `Method.softCompareTo` ([bd053b7](bd053b7)) * use Array instead of Iterable for methodParameters ([dfac8f0](dfac8f0)) * use instruction index instead of strings list index for `StringMatch` ([843e62a](843e62a)) * 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)) * wrong value for iterator in PatchOptions ([e31ac1f](e31ac1f)) ### 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)) * Improve Patch Options ([6b909c1](6b909c1)) * improve structuring of classes and their implementations ([4aa14bb](4aa14bb)) * migrate from `Signature` to `Fingerprint` ([efa8ea1](efa8ea1)) * Optimize Signature class ([ReVanced#11](https://github.com/tathaha/revanced-patcher/issues/11)) ([7faa001](7faa001)) * Rename `net.revanced` to `app.revanced` ([7087230](7087230)) * refactor!: move utility methods from `MethodFingerprintUtils` `MethodFingerprint` ([d802ef8](d802ef8)) * feat(fingerprint)!: `StringsScanResult` for `MethodFingerprint` ([3813e28](3813e28)) ### 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/tathaha/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 PathOption back ([172655b](172655b)) * add replace and remove extensions ([ReVanced#50](https://github.com/tathaha/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)) * apply changes from ReVanced Patcher ([ba9d998](ba9d998)) * default value for `Package.versions` annotation parameter ([131dedd](131dedd)) * deprecation for patches ([80c2e80](80c2e80)) * 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)) * improved Patch Options ([e722e3f](e722e3f)) * issue templates [skip ci] ([112bc99](112bc99)) * log failed patches due to failed dependencies ([a467fbb](a467fbb)) * logging class ([caf2745](caf2745)) * merge classes on addition ([ReVanced#127](https://github.com/tathaha/revanced-patcher/issues/127)) ([a925650](a925650)) * 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/tathaha/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/tathaha/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)) * remove unused annotation `DirectPatternScanMethod` ([538b2a8](538b2a8)) * remove unused annotation `SincePatcher` ([4ae9ad0](4ae9ad0)) * remove unused extension `dependsOn` ([797286b](797286b)) * remove unused patch extensions ([5583904](5583904)) * return a `File` instance instead of `ExtFile` ([68174bb](68174bb)) * RwLock for opening files in `DomFileEditor` ([db4348c](db4348c)) * section `acknowledgements` for issue templates ([a0cb449](a0cb449)) * simplify adding instructions ([e47b67d](e47b67d)) * SincePatcher annotation ([25f74dc](25f74dc)) * Soft Dependencies for Patches ([8c12f8d](8c12f8d)) * sort patches in lexicographical order ([a306561](a306561)), closes [ReVanced#125](https://github.com/tathaha/revanced-patcher/issues/125) * streams overload for `XmlFileHolder` ([6f72c4c](6f72c4c)) * string signature ([ReVanced#22](https://github.com/tathaha/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)) * decode resources only when necessary ([3ba4be2](3ba4be2)) * depend on `androlib` instead of `ApkDecoder` ([cc9416d](cc9416d)) * do not resolve empty signatures list ([b1eebc9](b1eebc9)) * **fingerprint:** do not resolve already resolved fingerprints ([4bfd7eb](4bfd7eb)) * lazy-ify all mutable clones ([d18a3b6](d18a3b6)) * make exception an object ([75d2be8](75d2be8)) * 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)) * revert breaking changes ([ReVanced#106](https://github.com/tathaha/revanced-patcher/issues/106)) ([124332f](124332f)) ### 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 * 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> * 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. * 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.
github-actions bot
pushed a commit
to bogadana/ravanched-patcher
that referenced
this issue
Dec 16, 2022
# 1.0.0 (2022-12-16) ### 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/bogadana/ravanched-patcher/issues/46)) ([34f607a](34f607a)) * add tests for PathOption ([d6308e1](d6308e1)) * 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/bogadana/ravanched-patcher/issues/1)) ([d5a3c76](d5a3c76)) * broken deprecation message ([62aa295](62aa295)) * callback for each file instead of class ([930768d](930768d)) * callback only when inteded ([e3bf367](e3bf367)) * check dependencies for resource patches ([9c07ffc](9c07ffc)) * 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/bogadana/ravanched-patcher/issues/75)) ([123ad54](123ad54)) * close stream when closing `DomFileEditor` ([77604d4](77604d4)) * compare any methods parameters ([ReVanced#101](https://github.com/bogadana/ravanched-patcher/issues/101)) ([085a3a4](085a3a4)) * 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)) * fallback to patch class name instead of `java.lang.Class` class name ([4164cb0](4164cb0)) * **fingerprint:** do not throw on `MethodFingerprint.result` getter ([2f7e62e](2f7e62e)) * 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/bogadana/ravanched-patcher/issues/64)) ([482af78](482af78)) * handle option types and nulls properly ([aff4968](aff4968)) * handle private companion objects ([ad3d332](ad3d332)) * incorrect pattern offset ([f3b5f67](f3b5f67)) * invalid type propagation in options ([b873228](b873228)), closes [ReVanced#98](https://github.com/bogadana/ravanched-patcher/issues/98) * invalid types for example options ([79f91e0](79f91e0)) * 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/bogadana/ravanched-patcher/issues/8)) ([310a7c4](310a7c4)) * make `methodMetadata` nullable in `MethodSignatureMetadata` ([4e56652](4e56652)) * make patcher version public ([76c45dd](76c45dd)) * 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/bogadana/ravanched-patcher/issues/10)) ([674461f](674461f)) * only run list option check if not null ([4055939](4055939)) * Patch should have access to the Cache ([4dd820f](4dd820f)) * Patcher not writing resolved methods ([fac44a5](fac44a5)) * Patcher setting BuildOptions too late ([6a5c873](6a5c873)) * PathOption should be open, not sealed ([a562e47](a562e47)) * publicize types when merging files if necessary ([ReVanced#137](https://github.com/bogadana/ravanched-patcher/issues/137)) ([9ec720e](9ec720e)) * 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 repeatable from PatchDeprecated ([6e73631](6e73631)) * remove requirement for solution [skip ci] ([ReVanced#80](https://github.com/bogadana/ravanched-patcher/issues/80)) ([9a4d30e](9a4d30e)) * remove unnecessary dummy nop instructions ([ReVanced#111](https://github.com/bogadana/ravanched-patcher/issues/111)) ([f9bc95f](f9bc95f)) * 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)) * **tests:** access `patternScanResult` through `scanResult` ([76676fb](76676fb)) * throwing in case the opcode patterns do not match ([3144ec8](3144ec8)) * typo in ListOption ([3921648](3921648)) * update apktool ([ab866bb](ab866bb)) * update apktool ([051afd9](051afd9)) * update apktool to fork ([566ecef](566ecef)) * use `Exception` instead of `MethodNotFoundException` ([2fc4ec4](2fc4ec4)) * use `MethodUtil.methodSignaturesMatch` instead of `Method.softCompareTo` ([bd053b7](bd053b7)) * use Array instead of Iterable for methodParameters ([dfac8f0](dfac8f0)) * use instruction index instead of strings list index for `StringMatch` ([843e62a](843e62a)) * 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)) * wrong value for iterator in PatchOptions ([e31ac1f](e31ac1f)) ### 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)) * Improve Patch Options ([6b909c1](6b909c1)) * improve structuring of classes and their implementations ([4aa14bb](4aa14bb)) * migrate from `Signature` to `Fingerprint` ([efa8ea1](efa8ea1)) * Optimize Signature class ([ReVanced#11](https://github.com/bogadana/ravanched-patcher/issues/11)) ([7faa001](7faa001)) * Rename `net.revanced` to `app.revanced` ([7087230](7087230)) * refactor!: move utility methods from `MethodFingerprintUtils` `MethodFingerprint` ([d802ef8](d802ef8)) * feat(fingerprint)!: `StringsScanResult` for `MethodFingerprint` ([3813e28](3813e28)) ### 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/bogadana/ravanched-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 PathOption back ([172655b](172655b)) * add replace and remove extensions ([ReVanced#50](https://github.com/bogadana/ravanched-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)) * apply changes from ReVanced Patcher ([ba9d998](ba9d998)) * default value for `Package.versions` annotation parameter ([131dedd](131dedd)) * deprecation for patches ([80c2e80](80c2e80)) * 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)) * improved Patch Options ([e722e3f](e722e3f)) * issue templates [skip ci] ([112bc99](112bc99)) * log failed patches due to failed dependencies ([a467fbb](a467fbb)) * logging class ([caf2745](caf2745)) * merge classes on addition ([ReVanced#127](https://github.com/bogadana/ravanched-patcher/issues/127)) ([a925650](a925650)) * 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/bogadana/ravanched-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/bogadana/ravanched-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)) * remove unused annotation `DirectPatternScanMethod` ([538b2a8](538b2a8)) * remove unused annotation `SincePatcher` ([4ae9ad0](4ae9ad0)) * remove unused extension `dependsOn` ([797286b](797286b)) * remove unused patch extensions ([5583904](5583904)) * return a `File` instance instead of `ExtFile` ([68174bb](68174bb)) * RwLock for opening files in `DomFileEditor` ([db4348c](db4348c)) * section `acknowledgements` for issue templates ([a0cb449](a0cb449)) * simplify adding instructions ([e47b67d](e47b67d)) * SincePatcher annotation ([25f74dc](25f74dc)) * Soft Dependencies for Patches ([8c12f8d](8c12f8d)) * sort patches in lexicographical order ([a306561](a306561)), closes [ReVanced#125](https://github.com/bogadana/ravanched-patcher/issues/125) * streams overload for `XmlFileHolder` ([6f72c4c](6f72c4c)) * string signature ([ReVanced#22](https://github.com/bogadana/ravanched-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)) * decode resources only when necessary ([3ba4be2](3ba4be2)) * depend on `androlib` instead of `ApkDecoder` ([cc9416d](cc9416d)) * do not resolve empty signatures list ([b1eebc9](b1eebc9)) * **fingerprint:** do not resolve already resolved fingerprints ([4bfd7eb](4bfd7eb)) * lazy-ify all mutable clones ([d18a3b6](d18a3b6)) * make exception an object ([75d2be8](75d2be8)) * 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)) * revert breaking changes ([ReVanced#106](https://github.com/bogadana/ravanched-patcher/issues/106)) ([124332f](124332f)) ### 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 * 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> * 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. * 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.
github-actions bot
pushed a commit
to bogadana/ravanched-patcher
that referenced
this issue
Dec 16, 2022
# 1.0.0 (2022-12-16) ### 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/bogadana/ravanched-patcher/issues/46)) ([34f607a](34f607a)) * add tests for PathOption ([d6308e1](d6308e1)) * 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/bogadana/ravanched-patcher/issues/1)) ([d5a3c76](d5a3c76)) * broken deprecation message ([62aa295](62aa295)) * callback for each file instead of class ([930768d](930768d)) * callback only when inteded ([e3bf367](e3bf367)) * check dependencies for resource patches ([9c07ffc](9c07ffc)) * 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/bogadana/ravanched-patcher/issues/75)) ([123ad54](123ad54)) * close stream when closing `DomFileEditor` ([77604d4](77604d4)) * compare any methods parameters ([ReVanced#101](https://github.com/bogadana/ravanched-patcher/issues/101)) ([085a3a4](085a3a4)) * 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)) * fallback to patch class name instead of `java.lang.Class` class name ([4164cb0](4164cb0)) * **fingerprint:** do not throw on `MethodFingerprint.result` getter ([2f7e62e](2f7e62e)) * 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/bogadana/ravanched-patcher/issues/64)) ([482af78](482af78)) * handle option types and nulls properly ([aff4968](aff4968)) * handle private companion objects ([ad3d332](ad3d332)) * incorrect pattern offset ([f3b5f67](f3b5f67)) * invalid type propagation in options ([b873228](b873228)), closes [ReVanced#98](https://github.com/bogadana/ravanched-patcher/issues/98) * invalid types for example options ([79f91e0](79f91e0)) * 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/bogadana/ravanched-patcher/issues/8)) ([310a7c4](310a7c4)) * make `methodMetadata` nullable in `MethodSignatureMetadata` ([4e56652](4e56652)) * make patcher version public ([76c45dd](76c45dd)) * 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/bogadana/ravanched-patcher/issues/10)) ([674461f](674461f)) * only run list option check if not null ([4055939](4055939)) * Patch should have access to the Cache ([4dd820f](4dd820f)) * Patcher not writing resolved methods ([fac44a5](fac44a5)) * Patcher setting BuildOptions too late ([6a5c873](6a5c873)) * PathOption should be open, not sealed ([a562e47](a562e47)) * publicize types when merging files if necessary ([ReVanced#137](https://github.com/bogadana/ravanched-patcher/issues/137)) ([9ec720e](9ec720e)) * 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 repeatable from PatchDeprecated ([6e73631](6e73631)) * remove requirement for solution [skip ci] ([ReVanced#80](https://github.com/bogadana/ravanched-patcher/issues/80)) ([9a4d30e](9a4d30e)) * remove unnecessary dummy nop instructions ([ReVanced#111](https://github.com/bogadana/ravanched-patcher/issues/111)) ([f9bc95f](f9bc95f)) * 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)) * **tests:** access `patternScanResult` through `scanResult` ([76676fb](76676fb)) * throwing in case the opcode patterns do not match ([3144ec8](3144ec8)) * typo in ListOption ([3921648](3921648)) * update apktool ([ab866bb](ab866bb)) * update apktool ([051afd9](051afd9)) * update apktool to fork ([566ecef](566ecef)) * use `Exception` instead of `MethodNotFoundException` ([2fc4ec4](2fc4ec4)) * use `MethodUtil.methodSignaturesMatch` instead of `Method.softCompareTo` ([bd053b7](bd053b7)) * use Array instead of Iterable for methodParameters ([dfac8f0](dfac8f0)) * use instruction index instead of strings list index for `StringMatch` ([843e62a](843e62a)) * 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)) * wrong value for iterator in PatchOptions ([e31ac1f](e31ac1f)) ### 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)) * Improve Patch Options ([6b909c1](6b909c1)) * improve structuring of classes and their implementations ([4aa14bb](4aa14bb)) * migrate from `Signature` to `Fingerprint` ([efa8ea1](efa8ea1)) * Optimize Signature class ([ReVanced#11](https://github.com/bogadana/ravanched-patcher/issues/11)) ([7faa001](7faa001)) * Rename `net.revanced` to `app.revanced` ([7087230](7087230)) * refactor!: move utility methods from `MethodFingerprintUtils` `MethodFingerprint` ([d802ef8](d802ef8)) * feat(fingerprint)!: `StringsScanResult` for `MethodFingerprint` ([3813e28](3813e28)) ### 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/bogadana/ravanched-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 PathOption back ([172655b](172655b)) * add replace and remove extensions ([ReVanced#50](https://github.com/bogadana/ravanched-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)) * apply changes from ReVanced Patcher ([ba9d998](ba9d998)) * default value for `Package.versions` annotation parameter ([131dedd](131dedd)) * deprecation for patches ([80c2e80](80c2e80)) * 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)) * improved Patch Options ([e722e3f](e722e3f)) * issue templates [skip ci] ([112bc99](112bc99)) * log failed patches due to failed dependencies ([a467fbb](a467fbb)) * logging class ([caf2745](caf2745)) * merge classes on addition ([ReVanced#127](https://github.com/bogadana/ravanched-patcher/issues/127)) ([a925650](a925650)) * 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/bogadana/ravanched-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/bogadana/ravanched-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)) * remove unused annotation `DirectPatternScanMethod` ([538b2a8](538b2a8)) * remove unused annotation `SincePatcher` ([4ae9ad0](4ae9ad0)) * remove unused extension `dependsOn` ([797286b](797286b)) * remove unused patch extensions ([5583904](5583904)) * return a `File` instance instead of `ExtFile` ([68174bb](68174bb)) * RwLock for opening files in `DomFileEditor` ([db4348c](db4348c)) * section `acknowledgements` for issue templates ([a0cb449](a0cb449)) * simplify adding instructions ([e47b67d](e47b67d)) * SincePatcher annotation ([25f74dc](25f74dc)) * Soft Dependencies for Patches ([8c12f8d](8c12f8d)) * sort patches in lexicographical order ([a306561](a306561)), closes [ReVanced#125](https://github.com/bogadana/ravanched-patcher/issues/125) * streams overload for `XmlFileHolder` ([6f72c4c](6f72c4c)) * string signature ([ReVanced#22](https://github.com/bogadana/ravanched-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)) * decode resources only when necessary ([3ba4be2](3ba4be2)) * depend on `androlib` instead of `ApkDecoder` ([cc9416d](cc9416d)) * do not resolve empty signatures list ([b1eebc9](b1eebc9)) * **fingerprint:** do not resolve already resolved fingerprints ([4bfd7eb](4bfd7eb)) * lazy-ify all mutable clones ([d18a3b6](d18a3b6)) * make exception an object ([75d2be8](75d2be8)) * 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)) * revert breaking changes ([ReVanced#106](https://github.com/bogadana/ravanched-patcher/issues/106)) ([124332f](124332f)) ### 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 * 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> * 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. * 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.
github-actions bot
pushed a commit
to bogadana/ravanched-patcher
that referenced
this issue
Dec 16, 2022
# 1.0.0 (2022-12-16) ### 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/bogadana/ravanched-patcher/issues/46)) ([34f607a](34f607a)) * add tests for PathOption ([d6308e1](d6308e1)) * 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/bogadana/ravanched-patcher/issues/1)) ([d5a3c76](d5a3c76)) * broken deprecation message ([62aa295](62aa295)) * callback for each file instead of class ([930768d](930768d)) * callback only when inteded ([e3bf367](e3bf367)) * check dependencies for resource patches ([9c07ffc](9c07ffc)) * 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/bogadana/ravanched-patcher/issues/75)) ([123ad54](123ad54)) * close stream when closing `DomFileEditor` ([77604d4](77604d4)) * compare any methods parameters ([ReVanced#101](https://github.com/bogadana/ravanched-patcher/issues/101)) ([085a3a4](085a3a4)) * 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)) * fallback to patch class name instead of `java.lang.Class` class name ([4164cb0](4164cb0)) * **fingerprint:** do not throw on `MethodFingerprint.result` getter ([2f7e62e](2f7e62e)) * 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/bogadana/ravanched-patcher/issues/64)) ([482af78](482af78)) * handle option types and nulls properly ([aff4968](aff4968)) * handle private companion objects ([ad3d332](ad3d332)) * incorrect pattern offset ([f3b5f67](f3b5f67)) * invalid type propagation in options ([b873228](b873228)), closes [ReVanced#98](https://github.com/bogadana/ravanched-patcher/issues/98) * invalid types for example options ([79f91e0](79f91e0)) * 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/bogadana/ravanched-patcher/issues/8)) ([310a7c4](310a7c4)) * make `methodMetadata` nullable in `MethodSignatureMetadata` ([4e56652](4e56652)) * make patcher version public ([76c45dd](76c45dd)) * 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/bogadana/ravanched-patcher/issues/10)) ([674461f](674461f)) * only run list option check if not null ([4055939](4055939)) * Patch should have access to the Cache ([4dd820f](4dd820f)) * Patcher not writing resolved methods ([fac44a5](fac44a5)) * Patcher setting BuildOptions too late ([6a5c873](6a5c873)) * PathOption should be open, not sealed ([a562e47](a562e47)) * publicize types when merging files if necessary ([ReVanced#137](https://github.com/bogadana/ravanched-patcher/issues/137)) ([9ec720e](9ec720e)) * 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 repeatable from PatchDeprecated ([6e73631](6e73631)) * remove requirement for solution [skip ci] ([ReVanced#80](https://github.com/bogadana/ravanched-patcher/issues/80)) ([9a4d30e](9a4d30e)) * remove unnecessary dummy nop instructions ([ReVanced#111](https://github.com/bogadana/ravanched-patcher/issues/111)) ([f9bc95f](f9bc95f)) * 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)) * **tests:** access `patternScanResult` through `scanResult` ([76676fb](76676fb)) * throwing in case the opcode patterns do not match ([3144ec8](3144ec8)) * typo in ListOption ([3921648](3921648)) * update apktool ([ab866bb](ab866bb)) * update apktool ([051afd9](051afd9)) * update apktool to fork ([566ecef](566ecef)) * use `Exception` instead of `MethodNotFoundException` ([2fc4ec4](2fc4ec4)) * use `MethodUtil.methodSignaturesMatch` instead of `Method.softCompareTo` ([bd053b7](bd053b7)) * use Array instead of Iterable for methodParameters ([dfac8f0](dfac8f0)) * use instruction index instead of strings list index for `StringMatch` ([843e62a](843e62a)) * 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)) * wrong value for iterator in PatchOptions ([e31ac1f](e31ac1f)) ### 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)) * Improve Patch Options ([6b909c1](6b909c1)) * improve structuring of classes and their implementations ([4aa14bb](4aa14bb)) * migrate from `Signature` to `Fingerprint` ([efa8ea1](efa8ea1)) * Optimize Signature class ([ReVanced#11](https://github.com/bogadana/ravanched-patcher/issues/11)) ([7faa001](7faa001)) * Rename `net.revanced` to `app.revanced` ([7087230](7087230)) * refactor!: move utility methods from `MethodFingerprintUtils` `MethodFingerprint` ([d802ef8](d802ef8)) * feat(fingerprint)!: `StringsScanResult` for `MethodFingerprint` ([3813e28](3813e28)) ### 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/bogadana/ravanched-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 PathOption back ([172655b](172655b)) * add replace and remove extensions ([ReVanced#50](https://github.com/bogadana/ravanched-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)) * apply changes from ReVanced Patcher ([ba9d998](ba9d998)) * default value for `Package.versions` annotation parameter ([131dedd](131dedd)) * deprecation for patches ([80c2e80](80c2e80)) * 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)) * improved Patch Options ([e722e3f](e722e3f)) * issue templates [skip ci] ([112bc99](112bc99)) * log failed patches due to failed dependencies ([a467fbb](a467fbb)) * logging class ([caf2745](caf2745)) * merge classes on addition ([ReVanced#127](https://github.com/bogadana/ravanched-patcher/issues/127)) ([a925650](a925650)) * 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/bogadana/ravanched-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/bogadana/ravanched-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)) * remove unused annotation `DirectPatternScanMethod` ([538b2a8](538b2a8)) * remove unused annotation `SincePatcher` ([4ae9ad0](4ae9ad0)) * remove unused extension `dependsOn` ([797286b](797286b)) * remove unused patch extensions ([5583904](5583904)) * return a `File` instance instead of `ExtFile` ([68174bb](68174bb)) * RwLock for opening files in `DomFileEditor` ([db4348c](db4348c)) * section `acknowledgements` for issue templates ([a0cb449](a0cb449)) * simplify adding instructions ([e47b67d](e47b67d)) * SincePatcher annotation ([25f74dc](25f74dc)) * Soft Dependencies for Patches ([8c12f8d](8c12f8d)) * sort patches in lexicographical order ([a306561](a306561)), closes [ReVanced#125](https://github.com/bogadana/ravanched-patcher/issues/125) * streams overload for `XmlFileHolder` ([6f72c4c](6f72c4c)) * string signature ([ReVanced#22](https://github.com/bogadana/ravanched-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)) * decode resources only when necessary ([3ba4be2](3ba4be2)) * depend on `androlib` instead of `ApkDecoder` ([cc9416d](cc9416d)) * do not resolve empty signatures list ([b1eebc9](b1eebc9)) * **fingerprint:** do not resolve already resolved fingerprints ([4bfd7eb](4bfd7eb)) * lazy-ify all mutable clones ([d18a3b6](d18a3b6)) * make exception an object ([75d2be8](75d2be8)) * 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)) * revert breaking changes ([ReVanced#106](https://github.com/bogadana/ravanched-patcher/issues/106)) ([124332f](124332f)) ### 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 * 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> * 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. * 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.
github-actions bot
pushed a commit
to bogadana/ravanched-patcher
that referenced
this issue
Dec 18, 2022
# 1.0.0-dev.1 (2022-12-18) ### 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/bogadana/ravanched-patcher/issues/46)) ([34f607a](34f607a)) * add tests for PathOption ([d6308e1](d6308e1)) * 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/bogadana/ravanched-patcher/issues/1)) ([d5a3c76](d5a3c76)) * broken deprecation message ([62aa295](62aa295)) * callback for each file instead of class ([930768d](930768d)) * callback only when inteded ([e3bf367](e3bf367)) * check dependencies for resource patches ([9c07ffc](9c07ffc)) * 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/bogadana/ravanched-patcher/issues/75)) ([123ad54](123ad54)) * close stream when closing `DomFileEditor` ([77604d4](77604d4)) * compare any methods parameters ([ReVanced#101](https://github.com/bogadana/ravanched-patcher/issues/101)) ([085a3a4](085a3a4)) * 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)) * fallback to patch class name instead of `java.lang.Class` class name ([4164cb0](4164cb0)) * **fingerprint:** do not throw on `MethodFingerprint.result` getter ([2f7e62e](2f7e62e)) * 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/bogadana/ravanched-patcher/issues/64)) ([482af78](482af78)) * handle option types and nulls properly ([aff4968](aff4968)) * handle private companion objects ([ad3d332](ad3d332)) * incorrect pattern offset ([f3b5f67](f3b5f67)) * invalid type propagation in options ([b873228](b873228)), closes [ReVanced#98](https://github.com/bogadana/ravanched-patcher/issues/98) * invalid types for example options ([79f91e0](79f91e0)) * 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/bogadana/ravanched-patcher/issues/8)) ([310a7c4](310a7c4)) * make `methodMetadata` nullable in `MethodSignatureMetadata` ([4e56652](4e56652)) * make patcher version public ([76c45dd](76c45dd)) * 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/bogadana/ravanched-patcher/issues/10)) ([674461f](674461f)) * only run list option check if not null ([4055939](4055939)) * Patch should have access to the Cache ([4dd820f](4dd820f)) * Patcher not writing resolved methods ([fac44a5](fac44a5)) * Patcher setting BuildOptions too late ([6a5c873](6a5c873)) * PathOption should be open, not sealed ([a562e47](a562e47)) * publicize types when merging files if necessary ([ReVanced#137](https://github.com/bogadana/ravanched-patcher/issues/137)) ([9ec720e](9ec720e)) * 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 repeatable from PatchDeprecated ([6e73631](6e73631)) * remove requirement for solution [skip ci] ([ReVanced#80](https://github.com/bogadana/ravanched-patcher/issues/80)) ([9a4d30e](9a4d30e)) * remove unnecessary dummy nop instructions ([ReVanced#111](https://github.com/bogadana/ravanched-patcher/issues/111)) ([f9bc95f](f9bc95f)) * 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)) * **tests:** access `patternScanResult` through `scanResult` ([76676fb](76676fb)) * throwing in case the opcode patterns do not match ([3144ec8](3144ec8)) * typo in ListOption ([3921648](3921648)) * update apktool ([ab866bb](ab866bb)) * update apktool ([051afd9](051afd9)) * update apktool to fork ([566ecef](566ecef)) * use `Exception` instead of `MethodNotFoundException` ([2fc4ec4](2fc4ec4)) * use `MethodUtil.methodSignaturesMatch` instead of `Method.softCompareTo` ([bd053b7](bd053b7)) * use Array instead of Iterable for methodParameters ([dfac8f0](dfac8f0)) * use instruction index instead of strings list index for `StringMatch` ([843e62a](843e62a)) * 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)) * wrong value for iterator in PatchOptions ([e31ac1f](e31ac1f)) ### 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)) * Improve Patch Options ([6b909c1](6b909c1)) * improve structuring of classes and their implementations ([4aa14bb](4aa14bb)) * migrate from `Signature` to `Fingerprint` ([efa8ea1](efa8ea1)) * Optimize Signature class ([ReVanced#11](https://github.com/bogadana/ravanched-patcher/issues/11)) ([7faa001](7faa001)) * Rename `net.revanced` to `app.revanced` ([7087230](7087230)) * refactor!: move utility methods from `MethodFingerprintUtils` `MethodFingerprint` ([d802ef8](d802ef8)) * feat(fingerprint)!: `StringsScanResult` for `MethodFingerprint` ([3813e28](3813e28)) ### 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/bogadana/ravanched-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 PathOption back ([172655b](172655b)) * add replace and remove extensions ([ReVanced#50](https://github.com/bogadana/ravanched-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)) * apply changes from ReVanced Patcher ([ba9d998](ba9d998)) * default value for `Package.versions` annotation parameter ([131dedd](131dedd)) * deprecation for patches ([80c2e80](80c2e80)) * 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)) * improved Patch Options ([e722e3f](e722e3f)) * issue templates [skip ci] ([112bc99](112bc99)) * log failed patches due to failed dependencies ([a467fbb](a467fbb)) * logging class ([caf2745](caf2745)) * merge classes on addition ([ReVanced#127](https://github.com/bogadana/ravanched-patcher/issues/127)) ([a925650](a925650)) * 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/bogadana/ravanched-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/bogadana/ravanched-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)) * remove unused annotation `DirectPatternScanMethod` ([538b2a8](538b2a8)) * remove unused annotation `SincePatcher` ([4ae9ad0](4ae9ad0)) * remove unused extension `dependsOn` ([797286b](797286b)) * remove unused patch extensions ([5583904](5583904)) * return a `File` instance instead of `ExtFile` ([68174bb](68174bb)) * RwLock for opening files in `DomFileEditor` ([db4348c](db4348c)) * section `acknowledgements` for issue templates ([a0cb449](a0cb449)) * simplify adding instructions ([e47b67d](e47b67d)) * SincePatcher annotation ([25f74dc](25f74dc)) * Soft Dependencies for Patches ([8c12f8d](8c12f8d)) * sort patches in lexicographical order ([a306561](a306561)), closes [ReVanced#125](https://github.com/bogadana/ravanched-patcher/issues/125) * streams overload for `XmlFileHolder` ([6f72c4c](6f72c4c)) * string signature ([ReVanced#22](https://github.com/bogadana/ravanched-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)) * decode resources only when necessary ([3ba4be2](3ba4be2)) * depend on `androlib` instead of `ApkDecoder` ([cc9416d](cc9416d)) * do not resolve empty signatures list ([b1eebc9](b1eebc9)) * **fingerprint:** do not resolve already resolved fingerprints ([4bfd7eb](4bfd7eb)) * lazy-ify all mutable clones ([d18a3b6](d18a3b6)) * make exception an object ([75d2be8](75d2be8)) * 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)) * revert breaking changes ([ReVanced#106](https://github.com/bogadana/ravanched-patcher/issues/106)) ([124332f](124332f)) ### 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 * 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> * 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. * 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.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Seems like I'm gitignoring the resources folders.
Needs to be fixed, tests won't pass otherwise.
The text was updated successfully, but these errors were encountered: