Skip to content

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 09 Apr 04:35
· 2 commits to main since this release

1.0.0 (2025-04-09)

  • refactor!: restructure code (07da528)

Bug Fixes

  • defaultExclude unused (2015c2a)
  • Main-Class attribute pointing to wrong method (6e82418)
  • ZipAligner not 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 ./gradlew file (#36) (072d9e1)
  • Add missing punctuation in command description (8210351)
  • align every file (96ec6a0)
  • also delete temporary files when uninstalling (52c3be2)
  • breaking changes by revanced-patcher dependency (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 packageVersion is compatible with any from compatiblePackages (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 outputFile after 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 exclusive option 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(...) to JarPatchBundle(...).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.jar asset (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 -e from experimental option (3829136)
  • remove excludePatches check (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 Signature to Fingerprint (88852a4)

Features

  • --custom-aapt2-binary option (#104) (d8dbffd)
  • --exclusive switch (#78) (8e91c12)
  • --include option (#76) (57a1e7c)
  • --uninstall switch (#84) (131100e)
  • frameworkFolderLocation patcher option (bc17298)
  • Add list-versions command (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 cacheDirectory and 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 debugging option to experimental (98bd6f3)
  • run release.yml workflow on branch dev (9a64730)
  • section acknowledgements for 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 am instead of monkey to launch the app (#159) (6a35cf7)
  • use install mode 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 HashSet to 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.json file. 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.