Git Product home page Git Product logo

revanced-cli's Introduction


ย ย ย  ย ย ย  ย ย ย  ย ย ย  ย ย ย  ย ย ย 

Continuing the legacy of Vanced

๐Ÿ’ป ReVanced CLI

GitHub Workflow Status (with event) GPLv3 License

Command line application to use ReVanced.

โ“ About

ReVanced CLI is a command line application that uses ReVanced Patcher to patch Android apps.

๐Ÿ’ช Features

Some of the features ReVanced CLI provides are:

  • ๐Ÿ’‰ Patch apps: Harness ReVanced Patcher to patch Android apps
  • ๐Ÿ’พ Install and uninstall apps: Install and uninstall Apps via ADB, using the Android package manager, or by mounting using root permissions
  • ๐Ÿ“ƒ List patches from patch bundles: List available patches, compatible packages, and versions
  • ๐Ÿ’ช Flexibility and functionality: Apply any combination of patches to any version of Android apps

๐Ÿ”ฝ Download

You can download the most recent version of ReVanced CLI from here.
Learn how to use ReVanced CLI by following the documentation.

๐Ÿ“š Everything else

๐Ÿ“™ Contributing

Thank you for considering contributing to ReVanced CLI. You can find the contribution guidelines here.

๐Ÿ› ๏ธ Building

To build a ReVanced CLI, you can follow the documentation.

๐Ÿ“ƒ Documentation

You can find the documentation of ReVanced CLI here.

๐Ÿ“œ Licence

ReVanced CLI is licensed under the GPLv3 license. Please see the license file for more information. tl;dr you may copy, distribute and modify ReVanced CLI as long as you track changes/dates in source files. Any modifications to ReVanced CLI must also be made available under the GPL, along with build & install instructions.

revanced-cli's People

Contributors

ankit1w avatar aunali321 avatar azimstech avatar bitingsock avatar bogadana avatar canny1913 avatar cnc-robert avatar danthe1st avatar decipher3114 avatar edge790 avatar huskydg avatar iamthecloverly avatar itsprofessional avatar j4k0xb avatar kinsteen avatar lisouseinaikyrios avatar m3dzik avatar n0k0m3 avatar osumatrix avatar palmdevs avatar programminghoch10 avatar sandarukasa avatar sculas avatar semantic-release-bot avatar sharunkumar avatar taku-nm avatar thejeterlp avatar thexxturboxx avatar tillnelown avatar validcube avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

revanced-cli's Issues

some question

what is the difference between --include and --exclusive? or description says the same thing or my english is bad af

problem: Stopped logging because the app was closed

๐Ÿž Issue

revanced app does not get installed
tried the root method described in HERE

have executed the following:
java -jar revanced-cli-2.5.3-all.jar -a YouTube-17.26.35.apk -c -d 192.168.0.111:5555 -o revan ced.apk -b revanced-patches-2.13.4.jar -e microg-support --mount

here's the complete log:

java -jar revanced-cli-2.5.3-all.jar -a YouTube-17.26.35.apk -c -d 192.168.0.111:5555 -o revan
ced.apk -b revanced-patches-2.13.4.jar -e microg-support --mount
INFO: Decoding resources
INFO: Reading dex files
WARNING: Skipping exclusive-audio-playback: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping codecs-unlock: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping background-play: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping tasteBuilder-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping upgrade-button-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
INFO: Skipping microg-support: Explicitely excluded
INFO: Skipping hdr-auto-brightness: Not explicitly included
INFO: Skipping autorepeat-by-default: Not explicitly included
INFO: Skipping enable-debugging: Not explicitly included
WARNING: Skipping old-quality-layout: Incompatible with version 17.26.35. This patch is only compatible with version com.google.android.youtube: 17.17.34, 17.19.36, 17.20.37, 17.22.36, 17.23.35, 17.23.36, 17.24.34, 17.24.35
INFO: Skipping enable-wide-searchbar: Not explicitly included
SEVERE: hide-infocard-suggestions failed:
app.revanced.patcher.patch.PatchResultError: 'hide-infocard-suggestions' depends on 'integrations' but the following error was raised: null
        at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:272)
        at app.revanced.patcher.Patcher.access$applyPatch(Patcher.kt:43)
        at app.revanced.patcher.Patcher$applyPatches$1.invokeSuspend(Patcher.kt:314)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:127)
        at app.revanced.utils.patcher.PatcherKt.applyPatchesVerbose(Patcher.kt:91)
        at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:22)
        at app.revanced.cli.command.MainCommand.run(MainCommand.kt:164)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at app.revanced.cli.main.MainKt.main(Main.kt:7)
SEVERE: video-ads failed:
app.revanced.patcher.patch.PatchResultError: 'video-ads' depends on 'integrations' but the following error was raised: null
        at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:272)
        at app.revanced.patcher.Patcher.access$applyPatch(Patcher.kt:43)
        at app.revanced.patcher.Patcher$applyPatches$1.invokeSuspend(Patcher.kt:314)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:127)
        at app.revanced.utils.patcher.PatcherKt.applyPatchesVerbose(Patcher.kt:91)
        at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:22)
        at app.revanced.cli.command.MainCommand.run(MainCommand.kt:164)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at app.revanced.cli.main.MainKt.main(Main.kt:7)
SEVERE: general-ads failed:
app.revanced.patcher.patch.PatchResultError: 'general-ads' depends on 'integrations' but the following error was raised: null
        at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:272)
        at app.revanced.patcher.Patcher.access$applyPatch(Patcher.kt:43)
        at app.revanced.patcher.Patcher$applyPatches$1.invokeSuspend(Patcher.kt:314)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:127)
        at app.revanced.utils.patcher.PatcherKt.applyPatchesVerbose(Patcher.kt:91)
        at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:22)
        at app.revanced.cli.command.MainCommand.run(MainCommand.kt:164)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at app.revanced.cli.main.MainKt.main(Main.kt:7)
SEVERE: seekbar-tapping failed:
app.revanced.patcher.patch.PatchResultError: 'seekbar-tapping' depends on 'integrations' but the following error was raised: null
        at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:272)
        at app.revanced.patcher.Patcher.access$applyPatch(Patcher.kt:43)
        at app.revanced.patcher.Patcher$applyPatches$1.invokeSuspend(Patcher.kt:314)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:127)
        at app.revanced.utils.patcher.PatcherKt.applyPatchesVerbose(Patcher.kt:91)
        at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:22)
        at app.revanced.cli.command.MainCommand.run(MainCommand.kt:164)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at app.revanced.cli.main.MainKt.main(Main.kt:7)
SEVERE: swipe-controls failed:
app.revanced.patcher.patch.PatchResultError: 'swipe-controls' depends on 'integrations' but the following error was raised: null
        at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:272)
        at app.revanced.patcher.Patcher.access$applyPatch(Patcher.kt:43)
        at app.revanced.patcher.Patcher$applyPatches$1.invokeSuspend(Patcher.kt:314)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:127)
        at app.revanced.utils.patcher.PatcherKt.applyPatchesVerbose(Patcher.kt:91)
        at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:22)
        at app.revanced.cli.command.MainCommand.run(MainCommand.kt:164)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at app.revanced.cli.main.MainKt.main(Main.kt:7)
SEVERE: custom-playback-speed failed:
app.revanced.patcher.patch.PatchResultError: 'custom-playback-speed' depends on 'integrations' but the following error was raised: null
        at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:272)
        at app.revanced.patcher.Patcher.access$applyPatch(Patcher.kt:43)
        at app.revanced.patcher.Patcher$applyPatches$1.invokeSuspend(Patcher.kt:314)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:127)
        at app.revanced.utils.patcher.PatcherKt.applyPatchesVerbose(Patcher.kt:91)
        at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:22)
        at app.revanced.cli.command.MainCommand.run(MainCommand.kt:164)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at app.revanced.cli.main.MainKt.main(Main.kt:7)
SEVERE: hide-cast-button failed:
app.revanced.patcher.patch.PatchResultError: 'hide-cast-button' depends on 'integrations' but the following error was raised: null
        at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:272)
        at app.revanced.patcher.Patcher.access$applyPatch(Patcher.kt:43)
        at app.revanced.patcher.Patcher$applyPatches$1.invokeSuspend(Patcher.kt:314)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:127)
        at app.revanced.utils.patcher.PatcherKt.applyPatchesVerbose(Patcher.kt:91)
        at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:22)
        at app.revanced.cli.command.MainCommand.run(MainCommand.kt:164)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at app.revanced.cli.main.MainKt.main(Main.kt:7)
INFO: amoled succeeded
INFO: hide-autoplay-button succeeded
INFO: minimized-playback succeeded
INFO: premium-heading succeeded
INFO: custom-branding succeeded
INFO: disable-fullscreen-panels succeeded
SEVERE: hide-shorts-button failed:
app.revanced.patcher.patch.PatchResultError: 'hide-shorts-button' depends on 'integrations' but the following error was raised: null
        at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:272)
        at app.revanced.patcher.Patcher.access$applyPatch(Patcher.kt:43)
        at app.revanced.patcher.Patcher$applyPatches$1.invokeSuspend(Patcher.kt:314)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:127)
        at app.revanced.utils.patcher.PatcherKt.applyPatchesVerbose(Patcher.kt:91)
        at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:22)
        at app.revanced.cli.command.MainCommand.run(MainCommand.kt:164)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at app.revanced.cli.main.MainKt.main(Main.kt:7)
SEVERE: disable-create-button failed:
app.revanced.patcher.patch.PatchResultError: 'disable-create-button' depends on 'integrations' but the following error was raised: null
        at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:272)
        at app.revanced.patcher.Patcher.access$applyPatch(Patcher.kt:43)
        at app.revanced.patcher.Patcher$applyPatches$1.invokeSuspend(Patcher.kt:314)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:127)
        at app.revanced.utils.patcher.PatcherKt.applyPatchesVerbose(Patcher.kt:91)
        at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:22)
        at app.revanced.cli.command.MainCommand.run(MainCommand.kt:164)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at app.revanced.cli.main.MainKt.main(Main.kt:7)
SEVERE: hide-watermark failed:
app.revanced.patcher.patch.PatchResultError: 'hide-watermark' depends on 'integrations' but the following error was raised: null
        at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:272)
        at app.revanced.patcher.Patcher.access$applyPatch(Patcher.kt:43)
        at app.revanced.patcher.Patcher$applyPatches$1.invokeSuspend(Patcher.kt:314)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:127)
        at app.revanced.utils.patcher.PatcherKt.applyPatchesVerbose(Patcher.kt:91)
        at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:22)
        at app.revanced.cli.command.MainCommand.run(MainCommand.kt:164)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at app.revanced.cli.main.MainKt.main(Main.kt:7)
INFO: Compiling resources
INFO: Writing modified dex files
INFO: Writing dex file classes2.dex
INFO: Writing dex file classes.dex
INFO: Writing dex file classes3.dex
INFO: Writing dex file classes4.dex
INFO: Writing dex file classes5.dex
INFO: Writing dex file classes8.dex
INFO: Writing dex file classes7.dex
INFO: Writing dex file classes6.dex
INFO: Writing resources...
INFO: Installing by mounting
07-14 00:56:02.695 19812 19812 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<
07-14 00:56:02.710 19812 19812 I AndroidRuntime: Using default boot image
07-14 00:56:02.710 19812 19812 I AndroidRuntime: Leaving lock profiling enabled
07-14 00:56:02.856 19812 19812 D AndroidRuntime: Calling main entry com.android.commands.content.Content
07-14 00:56:02.884 19812 19812 D AndroidRuntime: Shutting down VM
INFO: Stopped logging because the app was closed

โš™ Reproduce

can be reproduced by removing all patches as:
java -jar revanced-cli-2.5.3-all.jar -a YouTube-17.26.35.apk -c -d 192.168.0.111:5555 -o revanced.apk -b revanced-patches-2.13.4.jar -e microg-support -e hide-infocard-suggestions -e video-ads -e seekbar-tapping -e swipe-controls -e custom-playback-speed -e hide-cast-button -e hide-shorts-button -e disable-create-button -e hide-wate rmark -e general-ads --mount
here's the log:

java -jar revanced-cli-2.5.3-all.jar -a YouTube-17.26.35.apk -c -d 192.168.0.111:5555 -o revanced.apk -b revanced-patches-2.13.4.jar -e microg-support -e hide-infocard-suggestions -e video-ads -e seekbar-tapping -e swipe-controls -e custom-playback-speed -e hide-cast-button -e hide-shorts-button -e disable-create-button -e hide-wate
rmark -e general-ads --mount
INFO: Decoding resources
INFO: Reading dex files
WARNING: Skipping exclusive-audio-playback: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping codecs-unlock: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping background-play: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping tasteBuilder-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping upgrade-button-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
INFO: Skipping hide-infocard-suggestions: Explicitely excluded
INFO: Skipping video-ads: Explicitely excluded
INFO: Skipping general-ads: Explicitely excluded
INFO: Skipping seekbar-tapping: Explicitely excluded
INFO: Skipping swipe-controls: Explicitely excluded
INFO: Skipping microg-support: Explicitely excluded
INFO: Skipping hdr-auto-brightness: Not explicitly included
INFO: Skipping autorepeat-by-default: Not explicitly included
INFO: Skipping custom-playback-speed: Explicitely excluded
INFO: Skipping enable-debugging: Not explicitly included
WARNING: Skipping old-quality-layout: Incompatible with version 17.26.35. This patch is only compatible with version com.google.android.youtube: 17.17.34, 17.19.36, 17.20.37, 17.22.36, 17.23.35, 17.23.36, 17.24.34, 17.24.35
INFO: Skipping hide-cast-button: Explicitely excluded
INFO: Skipping enable-wide-searchbar: Not explicitly included
INFO: Skipping hide-shorts-button: Explicitely excluded
INFO: Skipping disable-create-button: Explicitely excluded
INFO: Skipping hide-watermark: Explicitely excluded
INFO: amoled succeeded
INFO: hide-autoplay-button succeeded
INFO: minimized-playback succeeded
INFO: premium-heading succeeded
INFO: custom-branding succeeded
INFO: disable-fullscreen-panels succeeded
INFO: Compiling resources
INFO: Writing modified dex files
INFO: Writing dex file classes3.dex
INFO: Writing dex file classes.dex
INFO: Writing dex file classes2.dex
INFO: Writing dex file classes4.dex
INFO: Writing dex file classes5.dex
INFO: Writing dex file classes7.dex
INFO: Writing dex file classes6.dex
INFO: Writing dex file classes8.dex
INFO: Writing resources...
INFO: Installing by mounting
07-14 01:12:33.895 21032 21032 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<
07-14 01:12:33.900 21032 21032 I AndroidRuntime: Using default boot image
07-14 01:12:33.900 21032 21032 I AndroidRuntime: Leaving lock profiling enabled
07-14 01:12:34.056 21032 21032 D AndroidRuntime: Calling main entry com.android.commands.content.Content
07-14 01:12:34.073 21032 21032 D AndroidRuntime: Shutting down VM
INFO: Stopped logging because the app was closed

brut.androlib.AndrolibException: brut.directory.PathAlreadyExists: res

Hello, when i want to use the cli to install Revanced with this command:

java -jar vcli.jar -a youtube.apk -c -d [my device] -o revanced.apk -b revanced-patches-1.8.2.jar -i microg-support -i hide-cast-button -i amoled -i minimized-playback -i premium-heading -i custom-branding -i general-ads -i video-ads -i seekbar-tapping -i upgrade-button-remover -i background-play -i codecs-unlock -i integrations --install

i receive this error:
brut.androlib.AndrolibException: brut.directory.PathAlreadyExists: res
at brut.androlib.res.AndrolibResources.decode(AndrolibResources.java:240)
at brut.androlib.Androlib.decodeResourcesFull(Androlib.java:140)
at app.revanced.patcher.Patcher.(Patcher.kt:62)
at app.revanced.cli.command.MainCommand.run(MainCommand.kt:97)
at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
at picocli.CommandLine.execute(CommandLine.java:2078)
at app.revanced.cli.main.MainKt.main(Main.kt:7)
Caused by: brut.directory.PathAlreadyExists: res
at brut.directory.AbstractDirectory.createDir(AbstractDirectory.java:147)
at brut.androlib.res.AndrolibResources.decode(AndrolibResources.java:229)
... 12 more

Any idea on how to fix it? i don't really understand the error...

YouTube ReVanced disappears after rebooting the phone

Info

Device : Xiaomi Redmi 7
OS : LineageOS 18.1 nightly
Magisk : 24.3 (Stable)
Magisk Logs: magisk_log_2022-05-14T20_09_11.log

Revanced cli Install commands:
java -jar "revanced-cli-1.1.0-dev.2-all.jar" -p "revanced-patches-1.0.0-dev.9.jar" -o "revanced.apk" -m "app-release-unsigned.apk" -t "revanced-cache" -ra "youtube.apk" -d "12c220fc"

The problem

Mount script doesn't seem to run well on startup. However, I have no problem running it manually.

\data\adb\service.d\mount_revanced_com.google.android.youtube.sh

#!/system/bin/sh
while [ "$(getprop sys.boot_completed | tr -d '\r')" != "1" ]; do sleep 1; done

base_path="/data/adb/revanced/com.google.android.youtube.apk"
stock_path=${ pm path com.google.android.youtube | grep base | sed 's/package://g' }
mount -o bind $base_path $stock_path

There's a problem with this line when it tries to run on startup:

stock_path=${ pm path com.google.android.youtube | grep base | sed 's/package://g' }

Solution

The solution is to assign stock_path manually

This Works :

\data\adb\service.d\mount_revanced_com.google.android.youtube.sh

#!/system/bin/sh
while [ "$(getprop sys.boot_completed | tr -d '\r')" != "1" ]; do sleep 1; done

base_path="/data/adb/revanced/com.google.android.youtube.apk"
stock_path="/data/app/~~3mttlb9deoC7gMr5hQcUwQ==/com.google.android.youtube-fIY1uuXsfsWfzzqrOHi35Q==/base.apk"
mount -o bind $base_path $stock_path

java.io.FileNotFoundException: revanced.apk (The system cannot find the file specified)

OUTPUT

Youtube

java -jar revanced-cli-1.7.0-all.jar -a youtube-17.23.35.apk -c -d 9d7f01a81020 -o revanced.apk -b revanced-patches-1.9.1.jar -m revanced-integrations-0.11.0.apk -e microg-support -e custom-branding -e hide-cast-button -e disable-shorts-button --mount
[added] amoled
[added] minimized-playback
[added] disable-create-button
[added] premium-heading
[skipped] custom-branding: Explicitly excluded.
[skipped] disable-shorts-button: Explicitly excluded.
[added] disable-fullscreen-panels
[added] old-quality-layout
[skipped] hide-cast-button: Explicitly excluded.
[skipped] microg-support: Explicitly excluded.
[added] general-ads
[added] video-ads
[added] seekbar-tapping
[skipped] upgrade-button-remover: Incompatible package.
[skipped] tasteBuilder-remover: Incompatible package.
[skipped] background-play: Incompatible package.
[skipped] exclusive-audio-playback: Incompatible package.
[skipped] codecs-unlock: Incompatible package.
[success] amoled
[success] minimized-playback
[success] disable-create-button
[success] premium-heading
[success] disable-fullscreen-panels
[success] old-quality-layout
[success] general-ads
[success] video-ads
[success] seekbar-tapping
[aligning & signing]
[deploying]
java.io.FileNotFoundException: revanced.apk (The system cannot find the file specified)
        at java.base/java.io.FileInputStream.open0(Native Method)
        at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
        at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
        at se.vidstige.jadb.JadbDevice.push(JadbDevice.java:215)
        at app.revanced.utils.adb.CommandsKt.copy(Commands.kt:24)
        at app.revanced.utils.adb.Adb.deploy$revanced_cli(Adb.kt:35)
        at app.revanced.cli.command.MainCommand.run(MainCommand.kt:123)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at app.revanced.cli.main.MainKt.main(Main.kt:7)

Music

java -jar revanced-cli-1.7.0-all.jar -a music-5.03.50.apk -c -d 9d7f01a81020 -o revanced.apk -b revanced-patches-1.9.1.jar -m revanced-integrations-0.11.0.apk -e microg-support --mount
[skipped] amoled: Incompatible package.
[skipped] minimized-playback: Incompatible package.
[skipped] disable-create-button: Incompatible package.
[skipped] premium-heading: Incompatible package.
[skipped] custom-branding: Incompatible package.
[skipped] disable-shorts-button: Incompatible package.
[skipped] disable-fullscreen-panels: Incompatible package.
[skipped] old-quality-layout: Incompatible package.
[skipped] hide-cast-button: Incompatible package.
[skipped] microg-support: Explicitly excluded.
[skipped] general-ads: Incompatible package.
[skipped] video-ads: Incompatible package.
[skipped] seekbar-tapping: Incompatible package.
[added] upgrade-button-remover
[added] tasteBuilder-remover
[added] background-play
[added] exclusive-audio-playback
[added] codecs-unlock
[success] upgrade-button-remover
[success] tasteBuilder-remover
[success] background-play
[success] exclusive-audio-playback
[success] codecs-unlock
[aligning & signing]
[deploying]
java.io.FileNotFoundException: revanced.apk (The system cannot find the file specified)
        at java.base/java.io.FileInputStream.open0(Native Method)
        at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
        at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
        at se.vidstige.jadb.JadbDevice.push(JadbDevice.java:215)
        at app.revanced.utils.adb.CommandsKt.copy(Commands.kt:24)
        at app.revanced.utils.adb.Adb.deploy$revanced_cli(Adb.kt:35)
        at app.revanced.cli.command.MainCommand.run(MainCommand.kt:123)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at app.revanced.cli.main.MainKt.main(Main.kt:7)

Revanced cli writes all "INFO" information into stderr instead of stdout

For example, running

java -jar cli.jar -a *.apk -o revanced.apk -b patches.jar -m integrations.apk -l

results in output

INFO: general-ads: Patch to remove general ads in bytecode. 
INFO: video-ads: Patch to remove ads in the YouTube video player. 
INFO: custom-branding: Change the branding of YouTube. 
INFO: premium-heading: Show the premium branding on the the YouTube home screen. 
INFO: minimized-playback: Enable minimized and background playback. 
INFO: disable-fullscreen-panels: Disable comments panel in fullscreen view. 
INFO: old-quality-layout: Enable the original quality flyout menu. 
INFO: disable-create-button: Disable the create button. 
INFO: amoled: Enables pure black theme. 
INFO: disable-shorts-button: Hide the shorts button. 
INFO: hide-cast-button: Patch to hide the cast button. 
INFO: microg-support: Patch to allow YouTube ReVanced to run without root and under a different package name. 
INFO: background-play: Enable playing music in the background. 
INFO: exclusive-audio-playback: Add the option to play music without video. 
INFO: codecs-unlock: Enables more audio codecs. Usually results in better audio quality but may depend on song and device. 
INFO: upgrade-button-remover: Remove the upgrade tab from the pivot bar in YouTube music. 
INFO: tasteBuilder-remover: Removes the "Tell us which artists you like" card from the Home screen. The same functionality can be triggered from the settings anyway.

which is written to STDERR

Turn off updates in Play Store using Magisk script

PK=com.google.android.youtube
PS=com.android.vending

LDB=/data/data/$PS/databases/library.db
LADB=/data/data/$PS/databases/localappstate.db 

cmd appops set --uid $PS GET_USAGE_STATS ignore pm disable $PS > /dev/null 2>&1 
./sqlite3 $LDB "UPDATE ownership SET doc_type = '25' WHERE doc_id = '$PK'"; 
./sqlite3 $LADB "UPDATE appstate SET auto_update = '2' WHERE package_name = '$PK'"; 

rm -rf /data/data/$PS/cache/* pm enable $PS > /dev/null 2>&1

Try the above code and you will be surprised when it will disappear the YouTube update button, I got these codes from the magisk module of: JumbomanXDA

Do this code every reboot, and just install the app it will no longer have the YouTube update button.

Regarding support for rooted phones without Google components

Hey, great project.

I'm running a Xiaomi phone with CrDroid ROM (Android 12, based on LineageOS) with Magisk for root access & the official MicroG project installed and configured instead of Google services,

Installing ReVanced somewhat works, though the --mount option is required, along with an existing unpatched YouTube app (downloaded from ApkMirror) for the installation to succeed, else nothing happens after the command on the desktop finishes.

I compiled without excluding MicroG support, and the app does work somewhat. It tends to crash on opening it often. My concern in this case is that the patched ReVanced app doesn't allow me to log into my Google account. I've tried using the old Vanced MicroG app which is opened through the MicroG option in RV's settings, and also logging in natively through my system's MicroG installation, though the accounts list remains empty no matter what.

So, I'd like to know whether this is intentional (lack of support for this kind of configuration) or some new bug. I imagine there's plenty of rooted phone users using this app, just not too many of those that don't have Google services.

Issue when installing non-root version

1655750528

  • the command used to create revanced.apk: ยจjava -jar revanced-cli.jar -a youtube.apk -c -o revanced.apk -b revanced-patches.jar -m integrations.apk -i general-resource-ads -i general-ads -i video-ads -i seekbar-tapping -i amoled -i premium-heading -i custom-branding -i hide-cast-button -i disable-create-button -i minimized-playback -i old-quality-layout -i microg-support

-e is used by two args

CLI Crashes because -e is used by experimental and exclude command. I'm already working on a PR

feat: normalize descriptions of cli arguments and options

๐Ÿž Issue

Currently, the descriptions of options and arguments of the CLI do not follow the same voice. This can lead to confusion.

โ— Solution

Normalize the descriptions and use one voice.

โ“ Motivation

This will allow users predictively understand the descriptions without having to think about the meaning.

Error when installing using the ReVanced CLI (Non-Root)

java version:
openjdk version "18.0.1" 2022-04-19
OpenJDK Runtime Environment Zulu18.30+11-CA (build 18.0.1+10)
OpenJDK 64-Bit Server VM Zulu18.30+11-CA (build 18.0.1+10, mixed mode, sharing)

The code i ran:
java -jar revanced-cli-2.0.0-all.jar -a "com.google.android.youtube_17.24.35-1529994688_minAPI23(arm64-v8a,armeabi-v7a,x86,x86_64)(nodpi)_apkmirror.com.apk" -c -d R5CR93118YF -o revanced.apk -b revanced-patches-2.0.1.jar -e disable-shorts-button -m app-release-unsigned.apk

Output:
INFO: Decoding resources
INFO: Reading dex files
INFO: Merging app-release-unsigned.apk
INFO: Skipping disable-shorts-button: Explicitly excluded
WARNING: Skipping background-play: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping exclusive-audio-playback: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping codecs-unlock: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping upgrade-button-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping tasteBuilder-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
INFO: seekbar-tapping succeeded
Exception in thread "main" java.lang.NoSuchMethodError: 'app.revanced.patcher.data.impl.ResourceData$XmlFileHolder app.revanced.patcher.data.impl.ResourceData.getXmlEditor()'
at app.revanced.patches.youtube.misc.mapping.patch.ResourceIdMappingProviderResourcePatch.execute(ResourceIdMappingProviderResourcePatch.kt:23)
at app.revanced.patches.youtube.misc.mapping.patch.ResourceIdMappingProviderResourcePatch.execute(ResourceIdMappingProviderResourcePatch.kt:13)
at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:291)
at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:264)
at app.revanced.patcher.Patcher.access$applyPatch(Patcher.kt:43)
at app.revanced.patcher.Patcher$applyPatches$1.invokeSuspend(Patcher.kt:307)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:127)
at app.revanced.utils.patcher.PatcherKt.applyPatchesVerbose(Patcher.kt:94)
at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:21)
at app.revanced.cli.command.MainCommand.run(MainCommand.kt:122)
at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
at picocli.CommandLine.execute(CommandLine.java:2078)
at app.revanced.cli.main.MainKt.main(Main.kt:7)

problem: NoClassDefFoundError on self built CLI

๐Ÿž Issue

When I build the revanced cli and use it, there is an error. When I download the revanced cli from the releases, there is not an error.

โš™ Reproduce

Steps and error:

~> git clone  https://github.com/revanced/revanced-cli
~> ./gradlew build
~> java -jar ./revanced-cli/build/libs/revanced-cli-2.5.3-all.jar -a ./youtube-17.26.35.apk -b ./revanced-patches/build/libs/revanced-patches-2.13.3.jar -c -d R5CRC3QQHQE -m ./app-release-unsigned-0.22.1.apk -o revanced-17.26.35.apk
Exception in thread "main" java.lang.NoClassDefFoundError: brut/directory/ExtFile
        at app.revanced.patcher.Patcher.<init>(Patcher.kt:50)
        at app.revanced.cli.command.MainCommand.run(MainCommand.kt:147)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at app.revanced.cli.main.MainKt.main(Main.kt:7)
Caused by: java.lang.ClassNotFoundException: brut.directory.ExtFile
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        ... 11 more
~> java --version
openjdk 17.0.3 2022-04-19 LTS
OpenJDK Runtime Environment Zulu17.34+19-CA (build 17.0.3+7-LTS)
OpenJDK 64-Bit Server VM Zulu17.34+19-CA (build 17.0.3+7-LTS, mixed mode, sharing)

๐Ÿ›  Solution

โš  Additional context

There must be some problem with my dev environment, as the jarfile built by github releases works unlike the jarfile buil by myself. I just cannot figure out what could be different.

Add method to include patches back

-i is gone, I'm creating a Patch right now that is auto-excluded by default, so theres no way to include it anymore. Bring an option back for that.

"Exception in thread 'main' ... InlineSmaliCompilerKt.toInstructions$default( ... )"

Here's the entire log:
image

Here's the error and stack trace:
image

And the written versions:

Exception in thread "main" java.lang.NoSuchMethodError: 'java.util.List app.revanced.patcher.util.smali.InlineSmaliCompilerKt.toInstructions$default(java.lang.String, org.jf.dexlib2.iface.Method, int, java.lang.Object)'
java -jar revanced-cli.jar -a youtube.apk -c -d R3CT40AGH8B -o youtube_revanced.apk -b revanced-patches.jar -m revanced-integrations.apk -i minimized-playback -i disable-create-button -i premium-heading -i custom-branding -i old-quality-layout -i hide-cast-button -i microg-support -i general-ads -i video-ads -i seekbar-tapping -i microg-patch --install

Not sure what I'm missing here.

[error] upgrade-button-remover: app.revanced.patcher.patch.implementation.misc.PatchResultError: Collection is empty.

java -jar revanced-cli-1.5.0-all.jar -a ytm.apk -c -d 2ee55f87 -o revanced.apk -b revanced-patches-1.8.2.jar -i minimized-playback -i microg-support -i background-play -i upgrade-button-remover -i upgrade-button-remover -i codecs-unlock -i tasteBuilder-remover --install
[skipped] amoled: Explicitly excluded.
[skipped] minimized-playback: Incompatible package.
[skipped] disable-create-button: Explicitly excluded.
[skipped] premium-heading: Explicitly excluded.
[skipped] custom-branding: Explicitly excluded.
[skipped] disable-shorts-button: Explicitly excluded.
[skipped] disable-fullscreen-panels: Explicitly excluded.
[skipped] old-quality-layout: Explicitly excluded.
[skipped] hide-cast-button: Explicitly excluded.
[skipped] microg-support: Incompatible package.
[skipped] general-ads: Explicitly excluded.
[skipped] video-ads: Explicitly excluded.
[skipped] seekbar-tapping: Explicitly excluded.
[added] upgrade-button-remover
[added] tasteBuilder-remover
[added] background-play
[skipped] exclusive-audio-playback: Explicitly excluded.
[added] codecs-unlock
[5,20] This method requires at least 1 registers, for the method parameters
[5,20] This method requires at least 1 registers, for the method parameters
[5,20] This method requires at least 1 registers, for the method parameters
[error] upgrade-button-remover:
app.revanced.patcher.patch.implementation.misc.PatchResultError: Collection is empty.
at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:264)
at app.revanced.patcher.Patcher.applyPatches(Patcher.kt:282)
at app.revanced.patcher.Patcher.applyPatches$default(Patcher.kt:275)
at app.revanced.utils.patcher.PatcherKt.applyPatchesVerbose(Patcher.kt:60)
at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:20)
at app.revanced.cli.command.MainCommand.run(MainCommand.kt:107)
at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
at picocli.CommandLine.execute(CommandLine.java:2078)
at app.revanced.cli.main.MainKt.main(Main.kt:7)
Caused by: java.util.NoSuchElementException: Collection is empty.
at kotlin.collections.CollectionsKt___CollectionsKt.first(_Collections.kt:201)
at app.revanced.patcher.util.smali.InlineSmaliCompiler$Companion.compileMethodInstructions(InlineSmaliCompiler.kt:57)
at app.revanced.patcher.util.smali.InlineSmaliCompilerKt.toInstructions(InlineSmaliCompiler.kt:67)
at app.revanced.patcher.util.smali.InlineSmaliCompilerKt.toInstructions$default(InlineSmaliCompiler.kt:67)
at app.revanced.patches.music.layout.upgradebutton.patch.RemoveUpgradeButtonPatch.execute(RemoveUpgradeButtonPatch.kt:46)
at app.revanced.patches.music.layout.upgradebutton.patch.RemoveUpgradeButtonPatch.execute(RemoveUpgradeButtonPatch.kt:21)
at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:262)
... 14 more
[success] tasteBuilder-remover
[error] background-play:
app.revanced.patcher.patch.implementation.misc.PatchResultError: Collection is empty.
at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:264)
at app.revanced.patcher.Patcher.applyPatches(Patcher.kt:282)
at app.revanced.patcher.Patcher.applyPatches$default(Patcher.kt:275)
at app.revanced.utils.patcher.PatcherKt.applyPatchesVerbose(Patcher.kt:60)
at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:20)
at app.revanced.cli.command.MainCommand.run(MainCommand.kt:107)
at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
at picocli.CommandLine.execute(CommandLine.java:2078)
at app.revanced.cli.main.MainKt.main(Main.kt:7)
Caused by: java.util.NoSuchElementException: Collection is empty.
at kotlin.collections.CollectionsKt___CollectionsKt.first(_Collections.kt:201)
at app.revanced.patcher.util.smali.InlineSmaliCompiler$Companion.compileMethodInstructions(InlineSmaliCompiler.kt:57)
at app.revanced.patcher.util.smali.InlineSmaliCompilerKt.toInstructions(InlineSmaliCompiler.kt:67)
at app.revanced.patcher.util.smali.InlineSmaliCompilerKt.toInstructions$default(InlineSmaliCompiler.kt:67)
at app.revanced.patches.music.premium.backgroundplay.patch.BackgroundPlayPatch.execute(BackgroundPlayPatch.kt:32)
at app.revanced.patches.music.premium.backgroundplay.patch.BackgroundPlayPatch.execute(BackgroundPlayPatch.kt:16)
at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:262)
... 14 more
[error] codecs-unlock:
app.revanced.patcher.patch.implementation.misc.PatchResultError: Collection is empty.
at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:264)
at app.revanced.patcher.Patcher.applyPatches(Patcher.kt:282)
at app.revanced.patcher.Patcher.applyPatches$default(Patcher.kt:275)
at app.revanced.utils.patcher.PatcherKt.applyPatchesVerbose(Patcher.kt:60)
at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:20)
at app.revanced.cli.command.MainCommand.run(MainCommand.kt:107)
at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
at picocli.CommandLine.execute(CommandLine.java:2078)
at app.revanced.cli.main.MainKt.main(Main.kt:7)
Caused by: java.util.NoSuchElementException: Collection is empty.
at kotlin.collections.CollectionsKt___CollectionsKt.first(_Collections.kt:201)
at app.revanced.patcher.util.smali.InlineSmaliCompiler$Companion.compileMethodInstructions(InlineSmaliCompiler.kt:57)
at app.revanced.patcher.util.smali.InlineSmaliCompilerKt.toInstructions(InlineSmaliCompiler.kt:67)
at app.revanced.patcher.util.smali.InlineSmaliCompilerKt.toInstruction(InlineSmaliCompiler.kt:77)
at app.revanced.patcher.util.smali.InlineSmaliCompilerKt.toInstruction$default(InlineSmaliCompiler.kt:77)
at app.revanced.patches.music.audio.codecs.patch.CodecsUnlockPatch.execute(CodecsUnlockPatch.kt:40)
at app.revanced.patches.music.audio.codecs.patch.CodecsUnlockPatch.execute(CodecsUnlockPatch.kt:17)
at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:262)
... 14 more
java.nio.file.NoSuchFileException: /resources.zip
at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.deleteFile(ZipFileSystem.java:1973)
at jdk.zipfs/jdk.nio.zipfs.ZipPath.delete(ZipPath.java:759)
at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.delete(ZipFileSystemProvider.java:191)
at java.base/java.nio.file.Files.delete(Files.java:1152)
at app.revanced.utils.filesystem.ZipFileSystemUtils.deleteRecursively(ZipFileSystemUtils.kt:22)
at app.revanced.utils.filesystem.ZipFileSystemUtils.writePathRecursively$lambda-2$lambda-1(ZipFileSystemUtils.kt:29)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
at app.revanced.utils.filesystem.ZipFileSystemUtils.writePathRecursively$revanced_cli(ZipFileSystemUtils.kt:27)
at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:35)
at app.revanced.cli.command.MainCommand.run(MainCommand.kt:107)
at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
at picocli.CommandLine.execute(CommandLine.java:2078)
at app.revanced.cli.main.MainKt.main(Main.kt:7)

Application package name changed

At the command line added --mount and the package name of the app changes app.revanced.android.youtube but not com.google.android.youtube Is that an error?

Broken apk signer

The cli's APK signer breaks when signing a resource patched APK file.

Cannot uninstall ReVanced(root) easily by users

Currently, Root Revanced YouTube cannot uninstall the script unless each file of "/ data / adb /" is completely deleted.
Even if you temporarily return to the original YouTube by reinstalling, after restarting, it will automatically change to Revanced by the mount script.

The solution to this is,
First, the direct deletion of each Revanced file in "/ data / adb /" above,
Second, simplification of script uninstall by Magisk Module,
Third, stop grep of the mount script and write it with a fixed path to disable the mount script after uninstalling the application.

First, the most certain, but not something that everyone can do, you will be at a loss for the same question. Not even written in Revanced-Documents.
Your teram's revanced manager will support it in the future, maybe, but at least not now.

Second, if you're not using Magisk, you can't use the Magisk module, of course.
(Should I throw away the Magisk module method that is convenient for supporting other than Magisk, such as SuperSU? Currently YouTube is only compatible with Android 5.0 and above. That is, if it is a mobile that can start YouTube, it is compatible with Magisk. It shouldn't be a bad idea to consider if you really need to consider something other than Magisk, such as SuperSU.)

Third, the amendment. Get the application path directly from revanced-cli with the pm command, and describe it in the mount script.
https://github.com/yuma2b/revanced-cli/blob/450198056a68d31579c6c91ba94f8c574f5a3fff/src/main/kotlin/app/revanced/utils/adb/Adb.kt#L50-L54
https://github.com/yuma2b/revanced-cli/blob/450198056a68d31579c6c91ba94f8c574f5a3fff/src/main/kotlin/app/revanced/utils/adb/Constants.kt#L51-L61
Such a technique was also used in Vanced. As a result, if you reinstall the app, it will no longer be the path described in the mount script, so you can virtually assume that you have uninstalled Revanced.

If the Manager is delayed, write a manual removal method like "First" in Revanced-Documents, and improve it, for users.

Button Cast

The cast button is not shown in the application once compiled as it disables it without prompting or without setting the -e

Does not build an apk [brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1):]

C:\Users\user\Downloads\revanced>"C:\Program Files\Zulu\zulu-17\bin\java.exe" -jar revanced-cli-2.3.1-all.jar -a youtube.apk -o revanced.apk -b revanced-patches-2.8.0.jar -m app-release-unsigned.apk
WARNING: Skipping background-play: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping exclusive-audio-playback: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping codecs-unlock: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping upgrade-button-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping tasteBuilder-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: C:\Users\user\Downloads\revanced\revanced-cache\res\values-v31\colors.xml:6: error: resource android:color/background_cache_hint_selector_material_light is private.
WARNING: C:\Users\user\Downloads\revanced\revanced-cache\res\values-v31\colors.xml:7: error: resource android:color/background_floating_material_dark is private.
WARNING: C:\Users\user\Downloads\revanced\revanced-cache\res\values-v31\colors.xml:8: error: resource android:color/Blue_700 is private.
WARNING: C:\Users\user\Downloads\revanced\revanced-cache\res\values-v31\colors.xml:9: error: resource android:color/Indigo_800 is private.
WARNING: C:\Users\user\Downloads\revanced\revanced-cache\res\values-v31\colors.xml:10: error: resource android:color/GM2_grey_800 is private.
WARNING: C:\Users\user\Downloads\revanced\revanced-cache\res\values-v31\colors.xml:11: error: resource android:color/Red_700 is private.
WARNING: C:\Users\user\Downloads\revanced\revanced-cache\res\values-v31\colors.xml:12: error: resource android:color/Teal_700 is private.
WARNING: C:\Users\user\Downloads\revanced\revanced-cache\res\values-v31\colors.xml:13: error: resource android:color/accent_device_default_dark_60_percent_opacity is private.
WARNING: C:\Users\user\Downloads\revanced\revanced-cache\res\values-v31\colors.xml:14: error: resource android:color/autofill_background_material_dark is private.
WARNING: error: failed linking references.
brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\user\AppData\Local\Temp\brut_util_Jar_21614907946224508614034811161087778448.tmp, link, -o, C:\Users\user\Downloads\revanced\revanced-cache\aapt_temp_file, --min-sdk-version, 23, --target-sdk-version, 31, --version-code, 1530123712, --version-name, 17.25.34, --no-auto-version, --no-version-vectors, --no-version-transitions, --no-resource-deduping, --allow-reserved-package-id, -e, C:\Users\user\AppData\Local\Temp\APKTOOL2182423897097567369.tmp, -0, arsc, -I, C:\Users\user\AppData\Local\apktool\framework\1.apk, --manifest, C:\Users\user\Downloads\revanced\revanced-cache\AndroidManifest.xml, C:\Users\user\Downloads\revanced\revanced-cache\build\resources.zip]
at brut.androlib.res.AndrolibResources.aapt2Package(AndrolibResources.java:491)
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:626)
at app.revanced.patcher.Patcher.save(Patcher.kt:199)
at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:27)
at app.revanced.cli.command.MainCommand.run(MainCommand.kt:133)
at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
at picocli.CommandLine.execute(CommandLine.java:2078)
at app.revanced.cli.main.MainKt.main(Main.kt:7)
Caused by: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\user\AppData\Local\Temp\brut_util_Jar_21614907946224508614034811161087778448.tmp, link, -o, C:\Users\user\Downloads\revanced\revanced-cache\aapt_temp_file, --min-sdk-version, 23, --target-sdk-version, 31, --version-code, 1530123712, --version-name, 17.25.34, --no-auto-version, --no-version-vectors, --no-version-transitions, --no-resource-deduping, --allow-reserved-package-id, -e, C:\Users\user\AppData\Local\Temp\APKTOOL2182423897097567369.tmp, -0, arsc, -I, C:\Users\user\AppData\Local\apktool\framework\1.apk, --manifest, C:\Users\user\Downloads\revanced\revanced-cache\AndroidManifest.xml, C:\Users\user\Downloads\revanced\revanced-cache\build\resources.zip]
at brut.util.OS.exec(OS.java:99)
at brut.androlib.res.AndrolibResources.aapt2Package(AndrolibResources.java:487)
... 13 more
INFO: Deleting existing resource cache directory
INFO: Decoding resources
INFO: Reading dex files
INFO: Merging app-release-unsigned.apk
INFO: Skipping enable-debugging: Explicitly excluded
INFO: seekbar-tapping succeeded
INFO: general-ads succeeded
INFO: video-ads succeeded
INFO: hide-infocard-suggestions succeeded
INFO: custom-branding succeeded
INFO: premium-heading succeeded
INFO: minimized-playback succeeded
INFO: disable-fullscreen-panels succeeded
INFO: old-quality-layout succeeded
INFO: hide-autoplay-button succeeded
INFO: disable-create-button succeeded
INFO: amoled succeeded
INFO: hide-shorts-button succeeded
INFO: hide-cast-button succeeded
INFO: hide-watermark succeeded
INFO: microg-support succeeded
INFO: custom-playback-speed succeeded
INFO: hdr-max-brightness succeeded
INFO: Compiling resources

There is no resulting apk file after this. Only files in cache which contain a revanced_raw.apk whose SHA matches the vanilla youtube apk

error passing arguments to a method which result in an empty collection and a failure compiling

using this command to compile an apk for the non-root version without using adb:
java -jar .\revanced-cli-1.5.0-all.jar -a youtube.apk -c -o revanced.apk -b .\revanced-patches-1.8.2.jar -m integrations.apk -i microg-support -i amoled -i minimized-playback -i general-ads -i video-ads -i disable-create-button -i premium-heading -i custom-branding -i hide-cast-button -i seekbar-tapping -i old-quality-layout -i disable-fullscreen-panels -t tmp --install
gives me this error:
image

going by the fact that said error seems to only happen on a few select patches, as can be seen here:
image

it might be a problem with the integrations, though i haven't tried testing this theory myself yet. the patches that have failed are these:

  1. minimized-playback
  2. disable-create-button
  3. old-quality-layout
  4. microg-support
  5. general-ads
  6. video-ads
  7. seekbar-tapping

with the others being "successfully" applied before the program crashes because resources.zip doesn't exist:
image

the command works for the cli version 1.4.2, but has failed on any version above it, including versions 1.4.3 and 1.4.4, which were scrapped when the cli was rolled back to version 1.4.2. after that, it has also failed on release 1.4.5 and, as the one this issue is focused on, 1.5.0

Errors building Revanced cli shadowJar

Hello! I got errors related to building shadowJar
If you can look at it it will be very useful, thanks!


> Task :compileKotlin FAILED
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/Main.kt: (8, 35): Unresolved reference: PatchMetadata
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/Main.kt: (46, 35): Type mismatch: inferred type is File but InputStream was expected
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/Main.kt: (46, 38): No value passed for parameter 'output'
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/Main.kt: (46, 38): No value passed for parameter 'signatures'
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/Main.kt: (52, 25): Unresolved reference: addFiles
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/Main.kt: (60, 32): Type mismatch: inferred type is List<Patch> but Patch was expected
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/Main.kt: (65, 21): Unresolved reference: resolveSignatures
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/Main.kt: (71, 48): Type mismatch: inferred type is () -> Unit but Boolean was expected
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/Main.kt: (72, 54): Unresolved reference: it
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/Main.kt: (79, 39): Unresolved reference: size
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/Main.kt: (82, 22): Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public inline fun <T> Iterable<TypeVariable(T)>.forEach(action: (TypeVariable(T)) -> Unit): Unit defined in kotlin.collections
public inline fun <K, V> Map<out TypeVariable(K), TypeVariable(V)>.forEach(action: (Map.Entry<TypeVariable(K), TypeVariable(V)>) -> Unit): Unit defined in kotlin.collections
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/Main.kt: (82, 32): Cannot infer a type for this parameter. Please specify it explicitly.
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/Main.kt: (93, 21): Type mismatch: inferred type is Unit but Map<String, [ERROR : MemoryDataStore]> was expected
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/Main.kt: (102, 30): Type mismatch: inferred type is Map<String, Result<Nothing?>> but Map<[ERROR : PatchMetadata], Result<PatchResult>> was expected
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/Main.kt: (106, 47): Unresolved reference: PatchMetadata
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/runner/AdbRunner.kt: (9, 12): Unresolved reference: jf
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/runner/AdbRunner.kt: (20, 31): Unresolved reference: MemoryDataStore
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/utils/DexReplacer.kt: (3, 8): Unresolved reference: lanchon
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/utils/DexReplacer.kt: (4, 12): Unresolved reference: jf
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/utils/DexReplacer.kt: (9, 13): Unresolved reference: BasicDexFileNamer
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/utils/DexReplacer.kt: (12, 56): Unresolved reference: MemoryDataStore
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/utils/DexReplacer.kt: (26, 28): Cannot infer a type for this parameter. Please specify it explicitly.
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/utils/DexReplacer.kt: (26, 29): Destructuring declaration initializer of type Map.Entry<String, ???> must have a 'component1()' function
e: /home/critical/Documents/revanced-cli/src/main/kotlin/app/revanced/cli/utils/DexReplacer.kt: (26, 38): Destructuring declaration initializer of type Map.Entry<String, ???> must have a 'component2()' function

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction
   > Compilation error. See log for more details

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 55s
1 actionable task: 1 executed```

The Apk Signer in the cli is broken - Error initialising store of key store

OUTPUT :

java -jar revanced-cli-1.7.0-all.jar -a YouTube_v17.23.35_Original.apk -c -d emulator-5554 -o revanced_yt.apk -b revanced-patches-1.9.1.jar


[added] amoled
[added] minimized-playback
[added] disable-create-button
[added] premium-heading
[added] custom-branding
[added] disable-shorts-button
[added] disable-fullscreen-panels
[added] old-quality-layout
[added] hide-cast-button
[added] microg-support
[added] general-ads
[added] video-ads
[added] seekbar-tapping
[skipped] upgrade-button-remover: Incompatible package.
[skipped] tasteBuilder-remover: Incompatible package.
[skipped] background-play: Incompatible package.
[skipped] exclusive-audio-playback: Incompatible package.
[skipped] codecs-unlock: Incompatible package.
[success] amoled
[success] minimized-playback
[error] disable-create-button:
app.revanced.patcher.patch.implementation.misc.PatchResultError: disable-create-button depends on integrations but the following error was raised: Integrations have not been merged yet. This patch can not succeed without the integrations.
	at app.revanced.patcher.Patcher.applyPatch(Patcher.kt:242)
	at app.revanced.patcher.Patcher.applyPatches(Patcher.kt:282)
	at app.revanced.patcher.Patcher.applyPatches$default(Patcher.kt:275)
	at app.revanced.utils.patcher.PatcherKt.applyPatchesVerbose(Patcher.kt:58)
	at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:20)
	at app.revanced.cli.command.MainCommand.run(MainCommand.kt:106)
	at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
	at picocli.CommandLine.access$1300(CommandLine.java:145)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
	at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
	at picocli.CommandLine.execute(CommandLine.java:2078)
	at app.revanced.cli.main.MainKt.main(Main.kt:7)
[success] premium-heading
[success] custom-branding
[success] disable-shorts-button
[success] disable-fullscreen-panels
[success] old-quality-layout
[success] hide-cast-button
[success] microg-support
[success] general-ads
[success] video-ads
[success] seekbar-tapping
[aligning & signing]
org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$BCKeyStoreException: java.io.IOException: Error initialising store of key store: java.lang.SecurityException: JCE cannot authenticate the provider BC
	at org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi.engineSetKeyEntry(Unknown Source)
	at java.base/java.security.KeyStore.setKeyEntry(KeyStore.java:1167)
	at app.revanced.utils.signing.Signer.newKeystore(Signer.kt:27)
	at app.revanced.utils.signing.Signer.signApk(Signer.kt:56)
	at app.revanced.cli.signing.Signing.start(Signing.kt:19)
	at app.revanced.cli.command.MainCommand.run(MainCommand.kt:111)
	at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
	at picocli.CommandLine.access$1300(CommandLine.java:145)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
	at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
	at picocli.CommandLine.execute(CommandLine.java:2078)
	at app.revanced.cli.main.MainKt.main(Main.kt:7)
Caused by: java.io.IOException: Error initialising store of key store: java.lang.SecurityException: JCE cannot authenticate the provider BC
	at org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi.makePBECipher(Unknown Source)
	at org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$StoreEntry.<init>(Unknown Source)
	... 15 more```

Youtube Music v5.03.50 instantly crashes after patching even all patches are excluded

Original Music apk which I try to patch works perfectly fine, but patched (even all patches are excluded) crashes. However, the patched Youtube video apk works well.

Versions of revanced packages I used:

  • revanced-cli 1.4.2
  • revanced-patches 1.6.3
  • revanced-integrations 0.10.0

I submit this issue in revanced-cli repository because don't really know where to place it. Sorry if I made a mistake.

Patching and app logs:

[skipped] amoled: Explicitly excluded.
[skipped] minimized-playback: Explicitly excluded.
[skipped] disable-create-button: Explicitly excluded.
[skipped] premium-heading: Explicitly excluded.
[skipped] custom-branding: Explicitly excluded.
[skipped] disable-shorts-button: Explicitly excluded.
[skipped] old-quality-layout: Explicitly excluded.
[skipped] hide-cast-button: Explicitly excluded.
[skipped] microg-support: Explicitly excluded.
[skipped] general-ads: Explicitly excluded.
[skipped] video-ads: Explicitly excluded.
[skipped] seekbar-tapping: Explicitly excluded.
[skipped] upgrade-button-remover: Explicitly excluded.
[skipped] tasteBuilder-remover: Explicitly excluded.
[skipped] background-play: Explicitly excluded.
[skipped] exclusive-audio-playback: Explicitly excluded.
[skipped] codecs-unlock: Explicitly excluded.
[aligning & signing]
[deploying]
06-18 15:58:48.073  7255  7255 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<
06-18 15:58:48.082  7255  7255 I AndroidRuntime: Using default boot image
06-18 15:58:48.082  7255  7255 I AndroidRuntime: Leaving lock profiling enabled
06-18 15:58:48.311  7255  7255 D AndroidRuntime: Calling main entry com.android.commands.content.Content
06-18 15:58:48.329  7255  7255 D AndroidRuntime: Shutting down VM
06-18 15:58:48.595  7287  7287 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<
06-18 15:58:48.605  7287  7287 I AndroidRuntime: Using default boot image
06-18 15:58:48.605  7287  7287 I AndroidRuntime: Leaving lock profiling enabled
06-18 15:58:48.821  7287  7287 D AndroidRuntime: Calling main entry com.android.commands.content.Content
06-18 15:58:48.836  7287  7287 D AndroidRuntime: Shutting down VM
06-18 15:58:49.623  7328  7328 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<
06-18 15:58:49.630  7328  7328 I AndroidRuntime: Using default boot image
06-18 15:58:49.630  7328  7328 I AndroidRuntime: Leaving lock profiling enabled
06-18 15:58:49.826  7328  7328 D AndroidRuntime: Calling main entry com.android.commands.content.Content
06-18 15:58:49.844  7328  7328 D AndroidRuntime: Shutting down VM
06-18 15:58:50.697  7426  7426 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<
06-18 15:58:50.704  7426  7426 I AndroidRuntime: Using default boot image
06-18 15:58:50.704  7426  7426 I AndroidRuntime: Leaving lock profiling enabled
06-18 15:58:50.913  7426  7426 D AndroidRuntime: Calling main entry com.android.commands.content.Content
06-18 15:58:50.928  7426  7426 D AndroidRuntime: Shutting down VM
06-18 15:58:51.757  7480  7480 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<
06-18 15:58:51.764  7480  7480 I AndroidRuntime: Using default boot image
06-18 15:58:51.764  7480  7480 I AndroidRuntime: Leaving lock profiling enabled
06-18 15:58:51.788  7235  7235 D AndroidRuntime: Shutting down VM
06-18 15:58:51.789  7235  7235 E AndroidRuntime: FATAL EXCEPTION: main
06-18 15:58:51.789  7235  7235 E AndroidRuntime: Process: com.google.android.apps.youtube.music, PID: 7235
06-18 15:58:51.789  7235  7235 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: library "libjsc.so" not found: needed by /data/data/com.google.android.apps.youtube.music/app_lib/libelements.so.5.03.50 in namespace classloader-namespace
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at java.lang.Runtime.load0(Runtime.java:929)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at java.lang.System.load(System.java:1620)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at evz.c(PG:48)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at wln.a(PG:7)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at ftf.a(PG:1)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at alko.b(PG:8)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at alko.c(PG:5)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at alko.a(PG:1)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at qjq.a(PG:1)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at wya.<init>(PG:2)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at wyt.<init>(PG:8)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at wyf.f(PG:4)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at wyf.d(PG:1)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at wyf.c(PG:1)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at gpc.p(PG:1)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at gpc.<init>(PG:2)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at fom.m(PG:64)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at fom.a(PG:37)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at axzg.a(PG:1)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at fom.h(PG:72)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at fom.a(PG:29)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at axzg.a(PG:1)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at fnk.c(PG:73)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at fnk.a(PG:4)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at axzg.a(PG:1)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at gqu.<init>(PG:2)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at fke.<init>(PG:2)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at fkp.b(PG:1)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at com.google.android.apps.youtube.music.activities.MusicActivity.g(PG:85)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at fhn.a(PG:1)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at ya.onCreate(PG:3)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at ct.onCreate(PG:1)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at com.google.android.apps.youtube.music.activities.MusicActivity.onCreate(PG:4)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at android.app.Activity.performCreate(Activity.java:8057)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at android.app.Activity.performCreate(Activity.java:8037)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1347)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3688)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3864)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2253)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:106)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:201)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:288)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7870)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
06-18 15:58:51.789  7235  7235 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
06-18 15:58:51.978  7480  7480 D AndroidRuntime: Calling main entry com.android.commands.content.Content
06-18 15:58:51.990  7480  7480 D AndroidRuntime: Shutting down VM
App closed, continuing.
[done]

error: signatures do not match previously installed version

se.vidstige.jadb.JadbException: Could not install revanced.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.google.android.youtube signatures do not match previously installed version; ignoring!]

i have the same yt version installed on my phone.
uninstalling or downgrading it didn't help

Install failed

Hi there.
Thanks for this project ๐Ÿ—ก๏ธ

I try to install it and I get this error


WARNING: Skipping background-play: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music 
WARNING: Skipping exclusive-audio-playback: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music 
WARNING: Skipping codecs-unlock: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music 
WARNING: Skipping upgrade-button-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music 
WARNING: Skipping tasteBuilder-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music 
Exception in thread "main" java.lang.NoSuchMethodError: 'java.nio.file.FileSystem java.nio.file.FileSystems.newFileSystem(java.nio.file.Path, java.util.Map)'
        at app.revanced.utils.filesystem.ZipFileSystemUtils.<init>(ZipFileSystemUtils.kt:13)
        at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:28)
        at app.revanced.cli.command.MainCommand.run(MainCommand.kt:133)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at app.revanced.cli.main.MainKt.main(Main.kt:7)
INFO: Decoding resources 
INFO: Reading dex files 
INFO: Merging app-release-unsigned.apk 
INFO: Skipping premium-heading: Explicitly excluded 
INFO: Skipping disable-fullscreen-panels: Explicitly excluded 
INFO: Skipping amoled: Explicitly excluded 
INFO: Skipping hide-cast-button: Explicitly excluded 
INFO: Skipping microg-support: Explicitly excluded 
INFO: Skipping enable-debugging: Explicitly excluded 
INFO: seekbar-tapping succeeded 
INFO: general-ads succeeded 
INFO: video-ads succeeded 
INFO: hide-infocard-suggestions succeeded 
INFO: custom-branding succeeded 
INFO: minimized-playback succeeded 
INFO: old-quality-layout succeeded 
INFO: hide-autoplay-button succeeded 
INFO: disable-create-button succeeded 
INFO: hide-shorts-button succeeded 
INFO: hide-watermark succeeded 
INFO: custom-playback-speed succeeded 
INFO: hdr-max-brightness succeeded 
INFO: Compiling resources 
INFO: Writing modified dex files

my command is

java -jar revanced-cli-all.jar --experimental -a yt.apk -d f8ea68e7 -c -o revanced.apk -b revanced-patches.jar -m app-release-unsigned.apk -e amoled -e premium-heading -e disable-shorts-button -e disable-fullscreen-panels -e hide-cast-button -e microg-support --mount

I have already Youtube v17.24.34 installed, My phone is Xiaomi Redmi Note 8

Thanks

ReVanced CLI fails to open patched app

Exception in thread "main" java.lang.IllegalStateException: ADB returned non-zero status code for command: su -c /data/adb/ReVanced/mount.sh
        at app.revanced.cli.runner.AdbRunnerKt.assertZero(AdbRunner.kt:134)
        at app.revanced.cli.runner.AdbRunnerKt.access$assertZero(AdbRunner.kt:1)
        at app.revanced.cli.runner.AdbRunner$runApk$3.invoke(AdbRunner.kt:68)
        at app.revanced.cli.runner.AdbRunner$runApk$3.invoke(AdbRunner.kt:56)
        at app.revanced.cli.runner.AdbRunnerKt.use(AdbRunner.kt:150)
        at app.revanced.cli.runner.AdbRunnerKt.access$use(AdbRunner.kt:1)
        at app.revanced.cli.runner.AdbRunner.runApk(AdbRunner.kt:56)
        at app.revanced.cli.Main$Companion.runCLI(Main.kt:91)
        at app.revanced.cli.Main$Companion.main(Main.kt:167)
        at app.revanced.cli.Main.main(Main.kt)```
        

resources.zip failing to compile

brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\ADMIN\AppData\Local\Temp\brut_util_Jar_121317490830691922272717766976781639223.tmp, compile, --dir, C:\Users\ADMIN\Documents\Revanced\revanced-cache\res, --legacy, -o, C:\Users\ADMIN\Documents\Revanced\revanced-cache\build\resources.zip] at brut.androlib.res.AndrolibResources.aapt2Package(AndrolibResources.java:375) at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:629) at app.revanced.patcher.Patcher.save(Patcher.kt:175) at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:29) at app.revanced.cli.command.MainCommand.run(MainCommand.kt:84) at picocli.CommandLine.executeUserObject(CommandLine.java:1939) at picocli.CommandLine.access$1300(CommandLine.java:145) at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358) at picocli.CommandLine$RunLast.handle(CommandLine.java:2352) at picocli.CommandLine$RunLast.handle(CommandLine.java:2314) at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179) at picocli.CommandLine$RunLast.execute(CommandLine.java:2316) at picocli.CommandLine.execute(CommandLine.java:2078) at app.revanced.cli.main.MainKt.main(Main.kt:7) Caused by: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\ADMIN\AppData\Local\Temp\brut_util_Jar_121317490830691922272717766976781639223.tmp, compile, --dir, C:\Users\ADMIN\Documents\Revanced\revanced-cache\res, --legacy, -o, C:\Users\ADMIN\Documents\Revanced\revanced-cache\build\resources.zip] at brut.util.OS.exec(OS.java:99) at brut.androlib.res.AndrolibResources.aapt2Package(AndrolibResources.java:371) ... 13 more Jun 19, 2022 1:27:37 PM brut.util.OS$StreamForwarder run WARNING: C:\Users\ADMIN\Documents\Revanced\revanced-cache\build\resources.zip: error: The system cannot find the file specified. (2).

Regarding apktool framework

Default location framework: /?/.local/share/apktool/framework/1.apk

I think add -p to apktool to keep in the same directory as -t some errors arise if using default

problem: `--exclusive` switch nonfunctional

๐Ÿž Issue

The new --exclusive switch seems to be non-functional.

โš™ Reproduce

  1. Set up ReVanced CLI.
  2. Start the CLI with the --exclusive switch and no --include statements.
  3. Watch the CLI include all the patches anyway.

๐Ÿ›  Solution

The solution is already known on the Discord channel, I'm just putting this issue here so the PR that fixes it doesn't get forgotten :P

โš  Additional context

How I encountered the issue:

Command line: https://pastebin.com/PcYD42CZ
Log: https://pastebin.com/PcYD42CZ

java.nio.file.NoSuchFileException: /resources.zip

revanced-cli=1.6.1 revanced-patches=1.9.0
Error:
at jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.deleteFile(ZipFileSystem.java:1973)
at jdk.zipfs/jdk.nio.zipfs.ZipPath.delete(ZipPath.java:759)
at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.delete(ZipFileSystemProvider.java:191)
at java.base/java.nio.file.Files.delete(Files.java:1152)
at app.revanced.utils.filesystem.ZipFileSystemUtils.deleteRecursively(ZipFileSystemUtils.kt:22)
at app.revanced.utils.filesystem.ZipFileSystemUtils.writePathRecursively$lambda-2$lambda-1(ZipFileSystemUtils.kt:29)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
at app.revanced.utils.filesystem.ZipFileSystemUtils.writePathRecursively$revanced_cli(ZipFileSystemUtils.kt:27)
at app.revanced.cli.patcher.Patcher.start$revanced_cli(Patcher.kt:35)
at app.revanced.cli.command.MainCommand.run(MainCommand.kt:103)
at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
at picocli.CommandLine.execute(CommandLine.java:2078)
at app.revanced.cli.main.MainKt.main(Main.kt:7)

my command:
java -jar revanced-cli-1.6.1-all.jar --experimental -a base.apk -d $(adb devices | grep -o '\b[a-f0-9]+\b') -c -o revanced.apk -b revanced-patches-1.9.0.jar -m app-release-unsigned.apk -e amoled -e premium-heading -e disable-shorts-button -e disable-fullscreen-panels -e hide-cast-button -e microg-support --mount

Chnge skipped text

I would be really happy if the text on skipped would not just say The package version is 17.24.34 and is incompatible..
But would also say which version is supported for it such as Compatible is 17.23.34

Here the text i mean.
grafik

problem: listing patches requires input apk again

๐Ÿž Issue

i wanna look at the changes in patches file (to include/exclude new patches), but cli gives me an error Error: Missing required argument(s): --apk=

โš™ Reproduce

i use revanced aur package. command: revanced-cli (just alias to java -jar /usr/share/revanced/revanced-cli.jar) -b /usr/share/revanced/revanced-patches.jar -l

๐Ÿ›  Solution

selecting vanilla youtube input apk is the solution

โš  Additional context

INFO: Found existing keystore: my-release-key java.io.IOException: Wrong version of key store.

This is log: C:\Users\admin\Downloads\revanced>java -jar revanced-cli-2.0.1-all.jar -a com.google.android.youtube.apk -c -o revanced.apk -b revanced-patches-2.0.1.jar -m app-release-unsigned.apk --keystore=my-release-key.keystore --experimental
INFO: Decoding resources
INFO: Reading dex files
INFO: Merging app-release-unsigned.apk
WARNING: Skipping background-play: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping exclusive-audio-playback: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping codecs-unlock: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping upgrade-button-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
WARNING: Skipping tasteBuilder-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
INFO: seekbar-tapping succeeded
INFO: general-ads succeeded
INFO: video-ads succeeded
INFO: custom-branding succeeded
INFO: premium-heading succeeded
INFO: minimized-playback succeeded
INFO: disable-fullscreen-panels succeeded
INFO: old-quality-layout succeeded
INFO: disable-create-button succeeded
INFO: amoled succeeded
INFO: disable-shorts-button succeeded
INFO: hide-cast-button succeeded
INFO: microg-support succeeded
INFO: Compiling resources
INFO: Writing modified dex files
INFO: Writing dex file classes.dex
INFO: Writing dex file classes3.dex
INFO: Writing dex file classes2.dex
INFO: Writing dex file classes4.dex
INFO: Writing dex file classes8.dex
INFO: Writing dex file classes7.dex
INFO: Writing dex file classes5.dex
INFO: Writing dex file classes6.dex
INFO: Writing resources
INFO: Aligning revanced_raw.apk
INFO: Signing revanced_aligned.apk
INFO: Found existing keystore: my-release-key
java.io.IOException: Wrong version of key store.
at org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi.engineLoad(Unknown Source)
at java.base/java.security.KeyStore.load(KeyStore.java:1473)
at app.revanced.utils.signing.Signer.signApk(Signer.kt:63)
at app.revanced.cli.signing.Signing.start(Signing.kt:22)
at app.revanced.cli.command.MainCommand.run(MainCommand.kt:125)
at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
at picocli.CommandLine.execute(CommandLine.java:2078)
at app.revanced.cli.main.MainKt.main(Main.kt:7)

Command to create keystore file: keytool -genkey -v -keystore my-release-key.keystore -alias Android -keyalg RSA -keysize 2048 -validity 10000

feat: contributing guidelines

Is your feature request related to a problem? Please describe.
Add a contributing.md in the repo so it's easier for new developers to know contributing guidelines.

Describe the solution you'd like
Add a contributing.md.

Describe alternatives you've considered
none

Additional context
none

`./gradle publish` fails to publish after pom metadata warnings

While building revanced-cli I get the following:

$ ./gradle publish

Output:

Maven publication 'gpr' pom metadata warnings (silence with 'suppressPomMetadataWarningsFor(variant)'):
  - Variant runtimeElements:
      -  contains dependencies that will produce a pom file that cannot be consumed by a Maven client.
          - info.picocli:picocli:+ declared with a Maven incompatible version notation
          - org.bouncycastle:bcpkix-jdk15on:+ declared with a Maven incompatible version notation
          - app.revanced:revanced-patcher:+ declared with a Maven incompatible version notation
          - me.tongfei:progressbar:+ declared with a Maven incompatible version notation
These issues indicate information that is lost in the published 'pom' metadata file, which may be an issue if the published library is consumed by an old Gradle version or Apache Maven.
The 'module' metadata file, which is used by Gradle 6+ is not affected.
> Task :publishGprPublicationToGitHubPackagesRepository FAILED

FAILURE: Build failed with an exception.

* What went wrong:
A problem was found with the configuration of task ':publishGprPublicationToGitHubPackagesRepository' (type 'PublishToMavenRepository').
  - In plugin 'org.gradle.maven-publish' type 'org.gradle.api.publish.maven.tasks.PublishToMavenRepository' property 'credentials.username' doesn't have a configured value.
    
    Reason: This property isn't marked as optional and no value has been configured.
    
    Possible solutions:
      1. Assign a value to 'credentials.username'.
      2. Mark property 'credentials.username' as optional.
    
    Please refer to https://docs.gradle.org/7.1.1/userguide/validation_problems.html#value_not_set for more details about this problem.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 9s
9 actionable tasks: 9 executed

Here is my $HOME/.gradle/gradle.properties file

gpr.user = icebarf
gpr.key = ghp_mytoken

I have no idea on how to fix this.

error in latest cli 1.4.5

java.nio.file.NoSuchFileException: /resources.zip

this is what i get while building on the latest cli 1.4.5
although the 1.4.2 works

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.