Commit graph

214 commits

Author SHA1 Message Date
Lucaskyy
cbd8df2df0
fix(MethodResolver): fix cd57a8c9a0 2022-06-05 08:02:49 +02:00
semantic-release-bot
f3d8b917de
chore(release): 1.0.0-dev.6 [skip ci]
# [1.0.0-dev.6](https://github.com/ReVancedTeam/revanced-patcher/compare/v1.0.0-dev.5...v1.0.0-dev.6) (2022-03-24)

### Bug Fixes

* **MethodResolver:** strip labels nodes so opcode patterns match ([cd57a8c](cd57a8c9a0))
2022-06-05 08:02:49 +02:00
Lucaskyy
82c530650f
fix(MethodResolver): strip labels nodes so opcode patterns match
this commit is also a fix for 8d1bb5f3d9 because it corrupted the stack by completely removing the nodes
2022-06-05 08:02:49 +02:00
semantic-release-bot
81d0cf20f3
chore(release): 1.0.0-dev.5 [skip ci]
# [1.0.0-dev.5](https://github.com/ReVancedTeam/revanced-patcher/compare/v1.0.0-dev.4...v1.0.0-dev.5) (2022-03-24)

### Bug Fixes

* **MethodResolver:** strip labels and line numbers so opcode patterns match ([8d1bb5f](8d1bb5f3d9))
2022-06-05 08:02:48 +02:00
Lucaskyy
36d4f71325
refactor: log as trace instead of debug
so there's less spam in console
2022-06-05 08:02:48 +02:00
Lucaskyy
699c730a7c
fix(MethodResolver): strip labels and line numbers so opcode patterns match 2022-06-05 08:02:48 +02:00
Lucaskyy
b197956e39
refactor: only compute maxs and use existing stack frames 2022-06-05 08:02:47 +02:00
semantic-release-bot
be992a3e6f
chore(release): 1.0.0-dev.4 [skip ci]
# [1.0.0-dev.4](https://github.com/ReVancedTeam/revanced-patcher/compare/v1.0.0-dev.3...v1.0.0-dev.4) (2022-03-23)

### Bug Fixes

* give ClassWriter a ClassReader for symtable ([e8f6973](e8f6973938))
2022-06-05 08:02:47 +02:00
semantic-release-bot
e0437397df
chore(release): 1.0.0-dev.3 [skip ci]
# [1.0.0-dev.3](https://github.com/ReVancedTeam/revanced-patcher/compare/v1.0.0-dev.2...v1.0.0-dev.3) (2022-03-23)

### Features

* add SafeClassWriter ([ca6b94d](ca6b94d943))
2022-06-05 08:02:47 +02:00
Lucaskyy
41749ba829
fix: give ClassWriter a ClassReader for symtable
removed SafeClassWriter as it was unused
2022-06-05 08:02:46 +02:00
semantic-release-bot
8161ce4fa6
chore(release): 1.0.0-dev.2 [skip ci]
# [1.0.0-dev.2](https://github.com/ReVancedTeam/revanced-patcher/compare/v1.0.0-dev.1...v1.0.0-dev.2) (2022-03-23)

### Bug Fixes

* set marklimit to Integer.MAX_VALUE ([ab6453c](ab6453ca8a))
2022-06-05 08:02:46 +02:00
Lucaskyy
6626014ef3
feat: add SafeClassWriter
the standard ClassWriter implementation uses the ClassLoader to find a common superclass. this won't work for us since we are not loading the JAR into the classpath. using this SafeClassWriter should fix that issue.
2022-06-05 08:02:46 +02:00
Lucaskyy
e6e468fbb5
fix: set marklimit to Integer.MAX_VALUE 2022-06-05 08:02:45 +02:00
semantic-release-bot
2fabbdf71b
chore(release): 1.0.0-dev.1 [skip ci]
# 1.0.0-dev.1 (2022-03-23)

### Bug Fixes

* avoid ignoring test resources (fixes [#1](https://github.com/ReVancedTeam/revanced-patcher/issues/1)) ([d5a3c76](d5a3c76389))
* current must be calculated after increment ([5f12bab](5f12bab5df))
* **gradle:** publish source and javadocs ([87bbde5](87bbde5e06))
* **Io:** fix finding classes by name ([460d62a](460d62a24c))
* **Io:** JAR loading and saving ([#8](https://github.com/ReVancedTeam/revanced-patcher/issues/8)) ([4d98cbc](4d98cbc9e8))
* nullable signature members ([#10](https://github.com/ReVancedTeam/revanced-patcher/issues/10)) ([8db8893](8db8893ab1))
* Patch should have access to the Cache ([6c0f082](6c0f0823c9))
* remove broken code ([0e72a6e](0e72a6e85f))
* set index for insertAt to 0 by default ([1769132](1769132a9e))
* workflow on dev branch ([7e67daf](7e67daf878))

### Code Refactoring

* convert Patch to abstract class ([23e897a](23e897a7a9))
* Optimize Signature class ([#11](https://github.com/ReVancedTeam/revanced-patcher/issues/11)) ([49beec9](49beec9fc6))
* Rename `net.revanced` to `app.revanced` ([3ab42a9](3ab42a932c))

### Features

* Add `findParentMethod` utility method ([#4](https://github.com/ReVancedTeam/revanced-patcher/issues/4)) ([00c6ab7](00c6ab7faf))

### 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.
2022-06-05 08:02:45 +02:00
Lucaskyy
7faa001406
refactor: Optimize Signature class (#11)
BREAKING CHANGE: Array<Int> was changed to IntArray. This breaks existing patches.
2022-06-05 08:02:44 +02:00
Lucaskyy
70872307e3
refactor: Rename net.revanced to app.revanced
BREAKING CHANGE: Package name was changed from "net.revanced" to "app.revanced"
2022-06-05 08:02:44 +02:00
oSumAtrIX
310a7c446b
fix(Io): JAR loading and saving (#8)
* refactor: Complete rewrite of `Io`

* style: format code

* style: rewrite todos

* fix: use lateinit instead of nonnull assert for zipEntry

* fix: use lateinit instead of nonnull assert for jarEntry & reuse zipEntry

* docs: add docs to `Patcher`

* test: match output of patcher

* chore: add todo to `Io` for removing non-class files

Co-authored-by: Sculas <contact@sculas.xyz>
2022-06-05 08:02:43 +02:00
Lucaskyy
c236ebe078
fix(gradle): publish source and javadocs 2022-06-05 08:02:43 +02:00
oSumAtrIX
674461f08d
fix: nullable signature members (#10)
This commit will allow "partial" signatures, basically we will be allowed to exclude members to match for the signature
2022-06-05 08:02:43 +02:00
oSumAtrIX
bbb2c547aa
feat: Add findParentMethod utility method (#4)
* feat: Add `findParentMethod` utitly method

* refactor: add `resolveMethod` to `MethodResolver`

added some assertions and some tests

Co-authored-by: Lucaskyy <contact@sculas.xyz>
2022-06-05 08:02:42 +02:00
Bleuzen
b957501e70
fix(Io): fix finding classes by name 2022-06-05 08:02:42 +02:00
Lucaskyy
b6ca31a970
chore: push IntelliJ project files 2022-06-05 08:02:42 +02:00
Lucaskyy
cbcf93f7d6
refactor: target java 8 instead of java 17 2022-06-05 08:02:41 +02:00
Lucaskyy
d5b4c99c00
fix: set index for insertAt to 0 by default 2022-06-05 08:02:41 +02:00
Lucaskyy
4dd820ffdf
fix: Patch should have access to the Cache
BREAKING CHANGE: Method signature of execute() was changed to include the cache, this will break existing implementations of the Patch class.
2022-06-05 08:02:41 +02:00
Lucaskyy
cb9b1b9416
refactor: convert Patch to abstract class
BREAKING CHANGE: Patch class is now an abstract class. You must implement it. You can use anonymous implements, like done in the tests.
2022-06-05 08:02:40 +02:00
Lucaskyy
428f7f4dec
fix: workflow on dev branch 2022-06-05 08:02:40 +02:00
Lucaskyy
77536cce8f
style: remove tab 2022-06-05 08:02:39 +02:00
she11sh0cked
7b6a61b674
ci: add gradle-semantic-release-plugin and remove the github release assets 2022-06-05 08:02:39 +02:00
she11sh0cked
7f5f3b217d
ci: add semantic-release 2022-06-05 08:02:39 +02:00
Lucaskyy
5ecbbfc954
chore: fix credentials for publishing 2022-03-20 20:32:17 +01:00
Lucaskyy
cd1baabe2e
chore: publish package to GitHub Packages 2022-03-20 20:30:51 +01:00
Lucaskyy
b3762bd5c7
chore: move version to properties 2022-03-20 20:22:51 +01:00
Lucaskyy
6b1cec4a43
test: add test for multiple classes in jar 2022-03-20 19:05:24 +01:00
Lucaskyy
5f12bab5df
fix: current must be calculated after increment 2022-03-20 16:57:33 +01:00
Lucaskyy
ec8115f3ac
test: improve PatcherTest 2022-03-20 16:28:23 +01:00
Lucaskyy
0e72a6e85f
fix: remove broken code
accidentally committed TestUtil in previous commit, this allows it to compile again
2022-03-20 15:57:05 +01:00
Lucaskyy
d5a3c76389
fix: avoid ignoring test resources (fixes #1) 2022-03-20 15:54:41 +01:00
oSumAtrIX
ded2538605
Renamed Jar2ASM to Io due to reader & writer class 2022-03-20 03:19:13 +01:00
oSumAtrIX
5d146c362f
Improve example test testPatcher and increase caching speed 2022-03-20 03:06:23 +01:00
Sculas
81e0220d15
License ReVanced Patcher under GPLv3 2022-03-20 00:16:53 +01:00
Lucaskyy
29f1595183
WIP Saving 2022-03-19 23:58:37 +01:00
Lucaskyy
57d5751b2c
Add saveTo test 2022-03-19 23:33:17 +01:00
Lucaskyy
8c56d15823
Finish tests, add InsnList.setAt, sr -> sd
Added some sweet explanation too.
2022-03-19 23:15:20 +01:00
Lucaskyy
61c0541ef5
Add information about test data in PatcherTest 2022-03-19 23:01:10 +01:00
Lucaskyy
f45dd511f3
Cleanup 2022-03-19 22:53:30 +01:00
Lucaskyy
fc64bbc32a
Minor things 2022-03-19 22:53:05 +01:00
Lucaskyy
e5f9a42ee6
Convert typed Object & Array types to Object types
Commit name is a bit superfluous, but it means that types such as "Ljava/lang/String;" get converted to "Ljava/lang/Object;". This is so we don't need to know the mappings, which are random in YT's code.

This is done in MethodResolver's "convertObject" and "convertObjects" for arrays.

Also changed ExtraTypes.ArrayAny to Object instead of String, that was a mistake. (which caused the test to pass at first)
2022-03-19 22:34:41 +01:00
Lucaskyy
f9327a2043
executePatches -> applyPatches, made logback a test dep 2022-03-19 21:58:31 +01:00
Lucaskyy
6bd4d80c47
Cache classes with their path & add ScanData for PatchData 2022-03-19 21:30:13 +01:00