mirror of
https://github.com/revanced/revanced-cli.git
synced 2025-06-12 21:27:37 +02:00
feat: Set patch options via CLI (#336)
BREAKING CHANGE: This commit changes various CLI options and removes the `options.json` file. Instead, patch options can now be passed via CLI options
This commit is contained in:
@ -13,10 +13,12 @@ java -jar revanced-cli.jar -h
|
||||
## 📃 List patches
|
||||
|
||||
```bash
|
||||
java -jar revanced-cli.jar list-patches --with-descriptions --with-packages --with-versions --with-options --with-universal-patches revanced-patches.rvp
|
||||
java -jar revanced-cli.jar list-patches --with-packages --with-versions --with-options revanced-patches.rvp
|
||||
```
|
||||
|
||||
## 💉 Patch an app with the default list of patches
|
||||
## 💉 Patch an app
|
||||
|
||||
To patch an app using the default list of patches, use the `patch` command:
|
||||
|
||||
```bash
|
||||
java -jar revanced-cli.jar patch -b revanced-patches.rvp input.apk
|
||||
@ -28,22 +30,37 @@ You can also use multiple patch bundles:
|
||||
java -jar revanced-cli.jar patch -b revanced-patches.rvp -b another-patches.rvp input.apk
|
||||
```
|
||||
|
||||
To manually include or exclude patches, use the options `-i` and `-e`.
|
||||
Keep in mind the name of the patch must be an exact match.
|
||||
You can also use the options `--ii` and `--ie` to include or exclude patches by their index
|
||||
if two patches have the same name.
|
||||
To know the indices of patches, use the option `--with-indices` when listing patches:
|
||||
To change the default set of used patches, use the option `-i` or `-e` to use or disuse specific patches.
|
||||
You can use the `list-patches` command to see which patches are used by default.
|
||||
|
||||
To only use specific patches, you can use the option `--exclusive` combined with `-i`.
|
||||
Remember that the options `-i` and `-e` match the patch's name exactly. Here is an example:
|
||||
|
||||
```bash
|
||||
java -jar revanced-cli.jar list-patches --with-indices revanced-patches.rvp
|
||||
java -jar revanced-cli.jar patch -b revanced-patches.rvp --exclusive -i "Patch name" -i "Another patch name" input.apk
|
||||
```
|
||||
|
||||
Then you can use the indices to include or exclude patches:
|
||||
You can also use the options `--ii` and `--ie` to use or disuse patches by their index.
|
||||
This is useful, if two patches happen to have the same name.
|
||||
To know the indices of patches, use the command `list-patches`:
|
||||
|
||||
```bash
|
||||
java -jar revanced-cli.jar list-patches revanced-patches.rvp
|
||||
```
|
||||
|
||||
Then you can use the indices to use or disuse patches:
|
||||
|
||||
```bash
|
||||
java -jar revanced-cli.jar patch -b revanced-patches.rvp --ii 123 --ie 456 input.apk
|
||||
```
|
||||
|
||||
You can combine the option `-i`, `-e`, `--ii`, `--ie` and `--exclusive`. Here is an example:
|
||||
|
||||
```bash
|
||||
java -jar revanced-cli.jar patch -b revanced-patches.rvp --exclusive -i "Patch name" --ii 123 input.apk
|
||||
```
|
||||
|
||||
|
||||
> [!TIP]
|
||||
> You can use the option `-d` to automatically install the patched app after patching.
|
||||
> Make sure ADB is working:
|
||||
@ -62,7 +79,61 @@ java -jar revanced-cli.jar patch -b revanced-patches.rvp --ii 123 --ie 456 input
|
||||
> adb install input.apk
|
||||
> ```
|
||||
|
||||
## 📦 Install an app manually
|
||||
Patches can have options you can set using the option `-O` alongside the option to include the patch by name or index.
|
||||
To know the options of a patch, use the option `--with-options` when listing patches:
|
||||
|
||||
```bash
|
||||
java -jar revanced-cli.jar list-patches --with-options revanced-patches.rvp
|
||||
```
|
||||
|
||||
Each patch can have multiple options. You can set them using the option `-O`.
|
||||
For example, to set the options for the patch with the name `Patch name`
|
||||
with the key `key1` and `key2` to `value1` and `value2` respectively, use the following command:
|
||||
|
||||
```bash
|
||||
java -jar revanced-cli.jar patch -b revanced-patches.rvp -i "Patch name" -Okey1=value1 -Okey2=value2 input.apk
|
||||
```
|
||||
|
||||
If you want to set a value to `null`, you can omit the value:
|
||||
|
||||
```bash
|
||||
java -jar revanced-cli.jar patch -b revanced-patches.rvp -i "Patch name" -Okey1 input.apk
|
||||
```
|
||||
|
||||
> [!WARNING]
|
||||
> Option values are usually typed. If you set a value with the wrong type, the patch can fail.
|
||||
> Option value types can be seen when listing patches with the option `--with-options`.
|
||||
>
|
||||
> Example option values:
|
||||
>
|
||||
> - String: `string`
|
||||
> - Boolean: `true`, `false`
|
||||
> - Integer: `123`
|
||||
> - Double: `1.0`
|
||||
> - Float: `1.0f`
|
||||
> - Long: `1234567890`, `1L`
|
||||
> - List: `[item1,item2,item3]`
|
||||
> - List of type `Any`: `[item1,123,true,1.0]`
|
||||
> - Empty list of type `Any`: `[]`
|
||||
> - Typed empty list: `int[]`
|
||||
> - Typed and nested empty list: `[int[]]`
|
||||
> - List with null value and two empty strings: `[null,\'\',\"\"]`
|
||||
>
|
||||
> Quotes and commas escaped in strings (`\"`, `\'`, `\,`) are parsed as part of the string.
|
||||
> List items are recursively parsed, so you can escape values in lists:
|
||||
>
|
||||
> - Escaped integer as a string: `[\'123\']`
|
||||
> - Escaped boolean as a string: `[\'true\']`
|
||||
> - Escaped list as a string: `[\'[item1,item2]\']`
|
||||
> - Escaped null value as a string: `[\'null\']`
|
||||
> - List with an integer, an integer as a string and a string with a comma, and an escaped list: [`123,\'123\',str\,ing`,`\'[]\'`]
|
||||
>
|
||||
> Example command with an escaped integer as a string:
|
||||
>
|
||||
> ```bash
|
||||
> java -jar revanced-cli.jar -b revanced-patches.rvp -i "Patch name" -OstringKey=\'1\' input.apk
|
||||
> ```
|
||||
## 📦 Install an app manually
|
||||
|
||||
```bash
|
||||
java -jar revanced-cli.jar utility install -a input.apk
|
||||
|
Reference in New Issue
Block a user