Repository navigation
v1.0.0
1.0.0 (2025-04-09)
- refactor!: restructure code (07da528)
Bug Fixes
defaultExcludeunused (2015c2a)Main-Classattribute pointing to wrong method (6e82418)ZipAlignernot correctly calculating the file offset (2975a47)- add back in: option to specify keystore file path (c94471f)
- add callback for addFiles (87ffaa4)
- add execute permission to
./gradlewfile (#36) (072d9e1) - Add missing punctuation in command description (8210351)
- align every file (96ec6a0)
- also delete temporary files when uninstalling (52c3be2)
- breaking changes by
revanced-patcherdependency (51d2504) - broken control flow of
includeFilter(a0644c7) - broken deprecation message (e3e74ac)
- broken script
CONTENT_UNMOUNT_SCRIPT(be53e64) - Bump dependencies to support BCS keystore (1c10a77)
- bump patcher dependency version (51c04b7)
- Check for null when no device serial was specified (1da8ae9)
- check for package compatibility at first (9fe5a0b)
- check for root even though when not needed (0d7581a)
- check if
packageVersionis compatible with any fromcompatiblePackages(32589c8) - Check, if mounting is possible (3e13fb5)
- ClassLoader not working with Java 9+ (3a11e11)
- CLI not working (29105ba)
- Command Line Option (3cef9d1)
- Copy APK to output path when it is not being signed (366f400)
- correct spelling mistake (31fb316)
- Correct warning message (ba573f7)
- correctly word option descriptions (ac3a8f6)
- Create options if it does not exist when updating them (ca809f0)
- delete
outputFileafter deploying (329f8a3) - Delete temporal files if it exists (a022feb)
- delete temporary files after root installation (a3d8705)
- deploy to
adb(f9b987e) - do not delete output file (0f3e090)
- do not filter explicitly included patches (a3d8f00)
- do not list compatible packages if patches do not define them (31e4a41)
- Do not sign if mounting (578e16b)
- do not use absolute path from custom AAPT2 binary option (a9c2a5f)
- don't log when package is incompatible and
exclusiveoption is used (ad81a1b) - don't print same patch multiple times (f4b0469)
- dummy publish task (1/2) [skip ci] (afff4c8)
- escape quotation mark in string (6e21d81)
- exclude patcher dependency from minimizing (d5794b9)
- Filter logs correctly (43fc20d)
- filtration of patches malfunctioning (2d5a7fd)
- fix noSuchMethodError (00fec25)
- fix running commands not running (2c7fcaf)
- Fix typo (#300) (9d96bb7)
- format patches input (bbb1a63)
- gitignore: ignore
options.toml(#158) (7be9af0) - gradle build script (6ffba3e)
- gradle sync dependencies (407efdc)
- improper use of mount variable (31853fe)
- invalid code flow when adding patches (206f202)
- invalid header when writing a
ZipFile(#169) (6e703eb) - keystore file not found exception (#57) (5b8537e)
- leftover TODOs (5b1139c)
- List if patch option is required (#346) (98ff0c3)
- Log correct options command (#262) (96c196d)
- Log logs with levels over warning to error output stream (075f6ad)
- Log not showing in CLI (#80) (d9c5a17), closes #79
- Make clear what the --exclusive command actually does (a26b0ea)
- Make CLI ArgGroup non-exclusive to be able to disable and enable patches at the same time (1bb0d13)
- make cli compatible with breaking changes of the patcher (555b38f)
- make integrations optional (bea8b82)
- Make patches selectable by using a mutable collection for the selection option (751fa1d)
- Make the patch command work without specifying any selection (ba159a3)
- migrate from
PatchLoader.load(...)toJarPatchBundle(...).loadPatches()(cabd32f) - migrate to changes of patcher (b30c737)
- migrate to latest patcher api changes (ace70e4)
- missing implementation (48102c6)
- mount bind revanced.apk from magisk's mirror (372470c)
- Move file to output even when mounting (59dfc98)
- move the keystore to the output directory (6ceb449)
- null exception when resource patching is disabled (#85) (125fa06)
- only accept directories when looking for files in resource patch (c76da7e)
- only check once for patch options (11c3a6c)
- Only open files for reading and writing if writeable (3846f72)
- Only set options for filtered patches (64d9127)
- only upload
-all.jarasset (ca8e1ba) - overwrite output file (2bfbbc2)
- Print in new line correctly (c2dc9d7)
- print original instead of kebab cased names (5eaad33)
- print stack trace when a patch failed (924c1f8)
- releases (2/2) (227d8d9)
- remove
-efromexperimentaloption (3829136) - remove
excludePatchescheck (eb83cab) - remove duplicate options entries. (d0fc886)
- remove logger from Signer.kt (51e091c)
- remove requirement for solution [skip ci] (#108) (0ce680a)
- resolve signatures before applying patches (c9941fe)
- resource patcher (9da4f70)
- show actual version in CLI (1dcdbc9)
- Show path for missing files instead of just the name (f0f3e56)
- Sign APKs correctly (5ff105c)
- sign the aligned file instead of the input file (22d2535)
- specify correct class containing entry-point (1fcc591)
- start with uppercase in log message (ae91b0d)
- tests: set order of tests (2ef48af)
- this tiny thing has caused me the worst headache ever in my life (a37304e)
- uncomment merging integrations (f2d9da4)
- unfinished todo message (fb068ef)
- unmount script
CONTENT_UMOUNT_SCRIPT(3a2fa30) - update cli for new patcher version (9fc2f96)
- update patcher to 1.2.5 (055c282)
- update patcher version (499ce0a)
- update patcher version (0df936e)
- update patcher version (80c11fe)
- update patcher version (09b9027), closes #45
- update patcher version (fix apktool) (496f821)
- use absolute file path for key store (d335846)
- Use correct option description (45a2ffa)
- use correct option name (f8972ea)
- use correct prefix in log message (1a67cd8)
- use latest version of patches dependency (029f1ad)
- Use punctuation in option descriptions (da4469f)
- Use the first connected device when no ADB device is specified (5f952f3)
- use working JADB dependency version (#222) (da2c918)
- wrong keystore output path (20fa179)
- wrong label in additional items [skip ci] (cd3ded1)
- wrong separator when using
ZipFileSystemUtils(20e15de) - wrong use of dependency to
revanced-patches(351de6c) - wrong use of variable substitution / typo (81d53b5), closes revanced/revanced-cli#12
- wrong variable inverted (f694542)
Code Refactoring
- migrate from
SignaturetoFingerprint(88852a4)
Features
--custom-aapt2-binaryoption (#104) (d8dbffd)--exclusiveswitch (#78) (8e91c12)--includeoption (#76) (57a1e7c)--uninstallswitch (#84) (131100e)frameworkFolderLocationpatcher option (bc17298)- Add
list-versionscommand (a974b8e) - add appreciation message for new contributors (6962fc2)
- Add CLI (6664f49)
- Add function to get the most common compatible version (77d9173)
- add install command (0350b7f)
- add logging back (4a23cb6)
- Add option to filter patches to be listed by package name (50c0f98)
- add option to specify keystore file path (9331594)
- Add option to warn about patches not being found in supplied patch bundles (e46d855)
- add options command (9edbbf3)
- add path for
cacheDirectoryand enable resource patching by default (54c0a03) - Add progress bar (8d96ec8)
- Add ReVanced Library subproject (#265) (157278c)
- add semantic-release (78d7aa3)
- Added root-only adb runner (tested on emulator) (37ecc5e)
- allow listing patches without other parameters (#42) (b977d70)
- Allow selecting first Adb device, if none supplied automatically by updating dependencies (e7c3d64)
- Allow to only Sign the APK (620876f)
- better output for excluded patches (#77) (ac7c7a9)
- chcon on mount (e1c7d10)
- Check for missing integrations (c93186f)
- check, if input file exists (b6dff6d)
- connect to first device if given device was not found (6485e47)
- debugging option (1b645c6)
- Do not format patch names (80a8d88)
- do not warn on incompatible packages (39e377b)
- Exit application with CLI exit code (36c6a6a)
- Extend signing API (592dc1c)
- handle unmounting deleted files (#148) (3a733e5)
- Improve command line argument descriptions (f9cf7d2)
- improve description of options (#185) (b69e784)
- improve logging (df85fa3)
- improve missing compatibility annotation tracing log (2c7eb72)
- Improve option descriptions (d5ea5a0)
- Include or exclude patches by their index in relation to supplied patch bundles (b2055ce)
- integrations merge (919b34e)
- issue templates [skip ci] (bac8c67)
- List patches which are compatible with any app (#297) (0139dfe)
- load patches dynamically & use kotlinx.cli (4624384)
- Log saved patched APK file path (16109bd)
- Log stacktrace in new line (c67e3c7)
- Make `--out´ option optional (3765957)
- migrate logger to
slf4j(6c4c192) - more efficient zipalign (a942a57)
- Patch Options CLI implementation (#132) (3f5345a)
- properly make use of logging facade (41898d7)
- Remove deprecated CLI options (48a1a39)
- remove extra zipalign step (#106) (c8e793e)
- remove option
--with-descriptions(07a423b) - remove unused option
-r(467d838) - rename
debuggingoption toexperimental(98bd6f3) - run
release.ymlworkflow on branchdev(9a64730) - section
acknowledgementsfor issue templates (0e3ecc3) - separate logger to stdout & stderr (#63) (0ddc2b5)
- separate options for
--list(#60) (52b3161) - Set patch options via CLI (#336) (2300243)
- show description when listing patches (af32572)
- Show error about no installation device found at the beginning (3300e6b)
- show full package name when listing patches (#240) (7174364)
- Simplify command and option names and descriptions (#338) (6e7797a)
- Simplify command description (3b3f7c7)
- simplify log message (74d73ca)
- Simplify option descriptions (45c998b)
- support for
--install(d1ceab4) - trace logs when compatibility annotation is missing (#166) (c590bf5)
- unmount all occurrences in
/proc/mounts(#131) (4f4e1f9) - use
aminstead ofmonkeyto launch the app (#159) (6a35cf7) - use
installmode by default (1a3db77) - use better logging text (b0e748d)
- use friendly descriptions (3dd875d)
- Use more consistent option name (223629c)
- use new patch naming convention (f6c221d)
- Use ReVanced Library in ReVanced CLI (7794327)
- use separate command to list patches (b74213f)
- use separate command to patch (32da961)
- use separate command to uninstall (c0cc909)
- use simpler log (ba758f0)
- Word log message better (6942b22)
Performance Improvements
- Do not check, if the options file exists twice (e3c5550)
- Use a
HashSetto check for included and excluded patches (616d14f) - Use multiple threads for writing dex files (28648a1)
Reverts
- feat: remove extra zipalign step (c3d8fec)
BREAKING CHANGES
- Options have been renamed.
- This commit changes various CLI options and removes the
options.jsonfile. Instead, patch options can now be passed via CLI options - This changes many signatures of existing APIs and adds new functions for signing
- This changes the log handler signature
- This introduces major changes to how ReVanced CLI is used from the command line.
- Not backwards compatible, since a lot of classes where renamed.