Hi there, I'm Reis! I'm a backend developer in NodeJS and I make stuff that no one uses.
reisxd / revanced-builder Goto Github PK
View Code? Open in Web Editor NEWA NodeJS ReVanced builder
License: GNU General Public License v3.0
A NodeJS ReVanced builder
License: GNU General Public License v3.0
Why does it say there's no YouTube, even though I have it installed?
Issue:
Downloading latest patches, integrations and cli...
[app-release-unsigned.apk] ✓
[microg.apk] ✓
? Select the patches you want to exclude. swipe-controls| Adds volume and brightness swipe controls. , microg-support|
Allows YouTube ReVanced to run without root and under a different package name. (Root required)
WARNING: Rooted builds might or might not work.
Keep in mind that I (reisxd) cannot test it.
An error occured.
Error: YouTube is not installed on your device
It's needed for rooted ReVanced.
at getYTVersion (C:\snapshot\revanced-builder\index.js:305:11)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async C:\snapshot\revanced-builder\index.js:556:25
Please make an issue at https://github.com/reisxd/revanced-builder/issues.
Press any key to exit...
I have YouTube installed on my phone, but the problem is that when I connect it, it says it's not available. Could it be a problem if it's not installed as a system one?
I have Java 8 (java), Java 18 (/usr/lib/jvm/java-18-openjdk/bin/java) and Zulu 18 (/usr/lib/jvm/zulu-18/bin/java) but this app checks for "java". How can I point to /usr/lib/jvm/zulu-18/bin/java?
Describe the bug
Tried the noob way on linux for a rooted phone. Seems to run without error but nothing was installed and no revanced apk in the revanced folder.
revanced-builder Version:
v1.2.10
Desktop (please complete the following information):
Additional context
./revanced-builder-nodejs-linux
Downloading latest patches, integrations and cli...
[revanced-cli-2.5.3-all.jar] ✓
[revanced-patches-2.14.1.dex] ✓
[revanced-patches-2.14.1.jar] ✓
[app-release-unsigned.apk] ✓
[microg.apk] ✓
? Select the patches you want to exclude. microg-support| Allows YouTube ReVanced to run without root and under a different package name.
(Root required), amoled| Enables pure black theme.
WARNING: Rooted builds might or might not work.
Keep in mind that I (reisxd) cannot test it.
Downloading the YouTube APK, this'll take some time!
[youtube.apk] ✓
Download complete!
Building ReVanced, please be patient!
INFOS: Decoding resources
INFOS: Reading dex files
INFOS: Merging ./revanced/app-release-unsigned.apk
INFOS: Skipping microg-support: Explicitely excluded
INFOS: Skipping hdr-auto-brightness: Not explicitly included
INFOS: Skipping autorepeat-by-default: Not explicitly included
INFOS: Skipping enable-debugging: Not explicitly included
INFOS: Skipping amoled: Explicitely excluded
INFOS: Skipping enable-wide-searchbar: Not explicitly included
INFOS: hide-infocard-suggestions succeeded
INFOS: video-ads succeeded
INFOS: general-ads succeeded
INFOS: seekbar-tapping succeeded
INFOS: swipe-controls succeeded
INFOS: custom-playback-speed succeeded
INFOS: old-quality-layout succeeded
INFOS: hide-cast-button succeeded
INFOS: hide-autoplay-button succeeded
INFOS: minimized-playback succeeded
INFOS: premium-heading succeeded
INFOS: custom-branding succeeded
INFOS: disable-fullscreen-panels succeeded
INFOS: hide-shorts-button succeeded
INFOS: disable-create-button succeeded
INFOS: hide-watermark succeeded
INFOS: Compiling resources
INFOS: Writing modified dex files
INFOS: Writing dex file classes2.dex
INFOS: Writing dex file classes3.dex
INFOS: Writing dex file classes.dex
INFOS: Writing dex file classes4.dex
INFOS: Writing dex file classes6.dex
INFOS: Writing dex file classes5.dex
INFOS: Writing dex file classes7.dex
INFOS: Writing dex file classes8.dex
INFOS: Writing resources...
INFOS: Installing by mounting
You now can install ReVanced and MicroG by transferring revanced/revanced.apk and revaned/microg.apk!
when revanced ss
Downloading latest patches, integrations and cli...
[app-release-unsigned.apk] ✓
[microg.apk] ✓
No device found! Fallback to only build.
Unhandled Rejection
Reason: Error: Command failed: java -jar ./revanced/revanced-cli-2.3.1-all.jar -b ./revanced/revanced-patches-2.8.0.jar -l
Error: Invalid or corrupt jarfile ./revanced/revanced-cli-2.3.1-all.jar
The app I built always have the revanced logo as it's app icon. Is there a way to change the icon to default YouTube icon?
Downloading latest patches, integrations and cli...
[app-release-unsigned.apk] ✓
[microg.apk] ✓
An error occured.
TypeError: Cannot read properties of null (reading '0')
at C:\snapshot\revanced-builder\index.js:497:38
at runMicrotasks ()
at processTicksAndRejections (node:internal/process/task_queues:96:5)
Please make an issue at https://github.com/reisxd/revanced-builder/issues.
Press any key to exit...
Sorry, i have got this Error with the latest executable for Windows have you got an idea how to solve it?
Thank you very much
while selecting the patches, can you add a check box in the patches list. it was difficult while selecting the patches for my color blind eyes.
An error occured.
RangeError [ERR_CHILD_PROCESS_STDIO_MAXBUFFER]: stdout maxBuffer length exceeded
at new NodeError (node:internal/errors:372:5)
at Socket.onChildStdout (node:child_process:461:14)
at Socket.emit (node:events:527:28)
at addChunk (node:internal/streams/readable:315:12)
at readableAddChunk (node:internal/streams/readable:285:11)
at Socket.Readable.push (node:internal/streams/readable:228:10)
at Pipe.onStreamRead (node:internal/stream_base_commons:190:23) {
code: 'ERR_CHILD_PROCESS_STDIO_MAXBUFFER',
cmd: 'java -jar ./revanced/revanced-cli-2.3.3-all.jar -b ./revanced/revanced-patches-2.11.0.jar --experimental -a ./revanced/youtube.apk -d 8c5c6b54 -c -o ./revanced/revanced.apk -m ./revanced/app-release-unsigned.apk -e seekbar-tapping -e autorepeat-by-default -e custom-branding -e enable-wide-searchbar -e disable-fullscreen-panels -e hide-autoplay-button -e disable-create-button -e hide-shorts-button -e hide-cast-button --mount -e microg-support',
stdout: '07-10 02:17:17.279 5104 5104 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' +
'07-10 02:17:17.283 5104 5104 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:17.283 5104 5104 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:17.769 5104 5104 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:17.785 5206 5206 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:17.789 5206 5206 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:17.789 5206 5206 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:17.846 5104 5104 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:18.201 5206 5206 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:18.279 5206 5206 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:18.814 5521 5521 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:18.817 5521 5521 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:18.817 5521 5521 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:19.322 5521 5521 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:19.393 5521 5521 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:19.998 5738 5738 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:20.001 5738 5738 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:20.001 5738 5738 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:20.285 5738 5738 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:20.332 5738 5738 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:21.121 5850 5850 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:21.124 5850 5850 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:21.124 5850 5850 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:21.392 5850 5850 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:21.438 5850 5850 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:22.202 5883 5883 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:22.205 5883 5883 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:22.205 5883 5883 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:22.458 5883 5883 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:22.503 5883 5883 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:23.323 5906 5906 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:23.326 5906 5906 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:23.326 5906 5906 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:23.578 5906 5906 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:23.629 5906 5906 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:24.421 5935 5935 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:24.424 5935 5935 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:24.424 5935 5935 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:24.679 5935 5935 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:24.723 5935 5935 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:25.543 5961 5961 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:25.546 5961 5961 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:25.546 5961 5961 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:25.789 5961 5961 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:25.837 5961 5961 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:26.653 6024 6024 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:26.657 6024 6024 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:26.657 6024 6024 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:26.930 6024 6024 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:26.977 6024 6024 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:27.747 6056 6056 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:27.749 6056 6056 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:27.749 6056 6056 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:28.015 6056 6056 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:28.064 6056 6056 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:28.389 4957 4957 I AndroidRuntime: VM exiting with result code 0.\n' +
'07-10 02:17:28.832 6112 6112 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:28.834 6112 6112 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:28.834 6112 6112 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:29.093 6112 6112 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:29.308 6112 6112 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:29.351 6174 6174 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:29.353 6174 6174 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:29.353 6174 6174 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:29.630 6174 6174 D AndroidRuntime: Calling main entry com.topjohnwu.superuser.internal.RootServerMain\n' +
'07-10 02:17:29.927 6243 6243 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:29.930 6243 6243 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:29.930 6243 6243 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:30.227 6243 6243 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:30.283 6243 6243 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:31.006 6365 6365 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:31.009 6365 6365 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:31.009 6365 6365 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:31.279 6365 6365 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:31.331 6365 6365 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:32.096 6391 6391 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:32.098 6391 6391 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:32.098 6391 6391 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:32.382 6391 6391 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:32.429 6391 6391 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:33.192 6417 6417 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:33.195 6417 6417 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:33.195 6417 6417 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:33.458 6417 6417 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:33.509 6417 6417 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:34.295 6437 6437 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:34.298 6437 6437 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:34.298 6437 6437 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:34.568 6437 6437 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:34.619 6437 6437 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:35.371 6465 6465 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:35.373 6465 6465 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:35.373 6465 6465 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:35.644 6465 6465 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:35.700 6465 6465 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:36.452 6488 6488 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:36.454 6488 6488 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:36.454 6488 6488 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:36.730 6488 6488 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:36.792 6488 6488 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:37.528 6515 6515 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:37.531 6515 6515 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:37.531 6515 6515 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:37.803 6515 6515 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:37.851 6515 6515 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:38.602 6535 6535 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:38.604 6535 6535 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:38.604 6535 6535 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:38.868 6535 6535 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:38.920 6535 6535 D AndroidRuntime: Shutting down VM\n' +
'07-10 02:17:39.677 6555 6555 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<\n' + '07-10 02:17:39.679 6555 6555 I AndroidRuntime: Using default boot image\n' +
'07-10 02:17:39.679 6555 6555 I AndroidRuntime: Leaving lock profiling enabled\n' +
'07-10 02:17:39.966 6555 6555 D AndroidRuntime: Calling main entry com.android.commands.content.Content\n' +
'07-10 02:17:4'... 1038576 more characters,
stderr: 'WARNING: Skipping background-play: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music \r\n' +
'WARNING: Skipping exclusive-audio-playback: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music \r\n' +
'WARNING: Skipping codecs-unlock: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music \r\n' +
'WARNING: Skipping upgrade-button-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music \r\n' +
'WARNING: Skipping tasteBuilder-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music \r\n'
}
Please make an issue at https://github.com/reisxd/revanced-builder/issues.
Press any key to exit...
holla @reisxd , it seems to get an error while building for the root version
here is command I use node . --patch --exclude disable-shorts-button,microg-support --manual-apk
Downloading latest patches, integrations and cli...
Building ReVanced, please be patient!
07-02 07:00:59.278 815 815 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<
07-02 07:00:59.281 815 815 I AndroidRuntime: Using default boot image
07-02 07:00:59.281 815 815 I AndroidRuntime: Leaving lock profiling enabled
07-02 07:00:59.425 815 815 D AndroidRuntime: Calling main entry com.android.commands.content.Content
07-02 07:00:59.440 815 815 D AndroidRuntime: Shutting down VM
thank you for your hard work on this awesome project, i really appreciate it! 🍺
I have no idea why does this happen, but I need help. This happened to me before, trying to download an beta apk would cut at 119MB and wouldn't download completely. I made it only download stable APKs until today, a new update to YouTube and APKMirror releasing it. Now this time, it cuts at 123MB. I really have no idea and any help would be appreciated.
as the title says, it gets stuck on installing microg. I left it for 20+ minutes to no success
unable to exclude patches such as disabled shorts button and premium heading
the option to disable never shows up
Guys, make a description of the patcher, for example, I have a couple of those that I figured out.
( * ) hide-autoplay-button - Set star - an autoplay button will be displayed on the video.
( * ) disable-create-button - Set star - Enables - create a short film, upload a video, start streaming
( * ) amoled - Set an asterisk disables the black theme
( * ) hide-shorts-button - Set an asterisk, turns on the shorts button.
I'm on Linux using version 1.2.10.
Downloading latest patches, integrations and cli...
[revanced-cli-2.5.3-all.jar] ✓
[revanced-patches-2.13.3.dex] ✓
[revanced-patches-2.13.3.jar] ✓
[app-release-unsigned.apk] ✓
[microg.apk] ✓
An error occured.
TypeError: Cannot read properties of null (reading '0')
at /snapshot/revanced-builder/index.js:517:38
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
Please make an issue at https://github.com/reisxd/revanced-builder/issues.
Press any key to exit...
I run revanced-builder-nodejs-win.exe but I can't find revanced/revanced.apk file
cmd: revanced-builder-nodejs-win.exe
You don't have ADB installed.
Please get it from here: https://developer.android.com/studio/releases/platform-tools
If you are gonna use rooted ReVanced, this is needed.
Downloading latest patches, integrations and cli...
/INFO:\s([^\t]+)/g
? Select the patches you want to exclude. seekbar-tapping, general-ads,
video-ads, hide-infocard-suggestions, custom-branding, premium-heading,
minimized-playback, disable-fullscreen-panels, old-quality-layout, hide-autoplay-button,
disable-create-button, amoled, hide-shorts-button, hide-cast-button,
hide-watermark, microg-support, custom-playback-speed, hdr-max-brightness,
background-play, exclusive-audio-playback, codecs-unlock, upgrade-button-remover,
tasteBuilder-remover
? The YouTube APK already exists in the revanced folder. Do you want to use it? Yes
Building ReVanced, please be patient!
INFO: Deleting existing resource cache directory
INFO: Decoding resources
INFO: Reading dex files
INFO: Merging .\revanced\app-release-unsigned.apk
INFO: Skipping seekbar-tapping: Explicitly excluded
INFO: Skipping general-ads: Explicitly excluded
INFO: Skipping video-ads: Explicitly excluded
INFO: Skipping hide-infocard-suggestions: Explicitly excluded
INFO: Skipping custom-branding: Explicitly excluded
INFO: Skipping premium-heading: Explicitly excluded
INFO: Skipping minimized-playback: Explicitly excluded
INFO: Skipping disable-fullscreen-panels: Explicitly excluded
INFO: Skipping old-quality-layout: Explicitly excluded
INFO: Skipping hide-autoplay-button: Explicitly excluded
INFO: Skipping disable-create-button: Explicitly excluded
INFO: Skipping amoled: Explicitly excluded
INFO: Skipping hide-shorts-button: Explicitly excluded
INFO: Skipping hide-cast-button: Explicitly excluded
INFO: Skipping hide-watermark: Explicitly excluded
INFO: Skipping microg-support: Explicitly excluded
INFO: Skipping custom-playback-speed: Explicitly excluded
INFO: Skipping hdr-max-brightness: Explicitly excluded
INFO: Skipping background-play: Explicitly excluded
INFO: Skipping exclusive-audio-playback: Explicitly excluded
INFO: Skipping codecs-unlock: Explicitly excluded
INFO: Skipping upgrade-button-remover: Explicitly excluded
INFO: Skipping tasteBuilder-remover: Explicitly excluded
INFO: Compiling resources
You now can install ReVanced and MicroG by transferring revanced/revanced.apk and revaned/microg.apk!
I'm getting the following output. Tried using different versions of the YT apk and the precompiled exe but it didn't help.
I'm using the builder without adb, installed latest node 18.4.0 and zulu 17.34.19.
WARNING: C:\Users\\OneDrive\Desktop\revanced-builder\revanced-cache\res\values-v31\colors.xml:6: error: resource android:color/background_cache_hint_selector_material_light is private. WARNING: C:\Users\\OneDrive\Desktop\revanced-builder\revanced-cache\res\values-v31\colors.xml:7: error: resource android:color/background_floating_material_dark is private. WARNING: C:\Users\\OneDrive\Desktop\revanced-builder\revanced-cache\res\values-v31\colors.xml:8: error: resource android:color/Blue_700 is private. WARNING: C:\Users\\OneDrive\Desktop\revanced-builder\revanced-cache\res\values-v31\colors.xml:9: error: resource android:color/Indigo_800 is private. WARNING: C:\Users\\OneDrive\Desktop\revanced-builder\revanced-cache\res\values-v31\colors.xml:10: error: resource android:color/GM2_grey_800 is private. WARNING: C:\Users\\OneDrive\Desktop\revanced-builder\revanced-cache\res\values-v31\colors.xml:11: error: resource android:color/Red_700 is private. WARNING: C:\Users\\OneDrive\Desktop\revanced-builder\revanced-cache\res\values-v31\colors.xml:12: error: resource android:color/Teal_700 is private. WARNING: C:\Users\\OneDrive\Desktop\revanced-builder\revanced-cache\res\values-v31\colors.xml:13: error: resource android:color/accent_device_default_dark_60_percent_opacity is private. WARNING: C:\Users\\OneDrive\Desktop\revanced-builder\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\\AppData\Local\Temp\brut_util_Jar_125400259197730875146483487048822697.tmp, link, -o, C:\Users\\OneDrive\Desktop\revanced-builder\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\\AppData\Local\Temp\APKTOOL5032270538945955797.tmp, -0, arsc, -I, C:\Users\\AppData\Local\apktool\framework\1.apk, --manifest, C:\Users\\OneDrive\Desktop\revanced-builder\revanced-cache\AndroidManifest.xml, C:\Users\\OneDrive\Desktop\revanced-builder\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: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) Caused by: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\\AppData\Local\Temp\brut_util_Jar_125400259197730875146483487048822697.tmp, link, -o, C:\Users\\OneDrive\Desktop\revanced-builder\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\\AppData\Local\Temp\APKTOOL5032270538945955797.tmp, -0, arsc, -I, C:\Users\\AppData\Local\apktool\framework\1.apk, --manifest, C:\Users\\OneDrive\Desktop\revanced-builder\revanced-cache\AndroidManifest.xml, C:\Users\\OneDrive\Desktop\revanced-builder\revanced-cache\build\resources.zip] at brut.util.OS.exec(OS.java:99) at brut.androlib.res.AndrolibResources.aapt2Package(AndrolibResources.java:487) ... 13 more
Downloading latest patches, integrations and cli...
Unhandled Rejection
Reason: TypeError: patchesArray is not iterable
Please make an issue at https://github.com/reisxd/revanced-builder/issues.
Press any key to exit...
Error when running the node .
command.
Followed all steps as found in README.MD
, jdk-17 is installed.
Unhandled Rejection
Reason: TypeError: Cannot read property 'includes' of undefined
Please make an issue at https://github.com/reisxd/revanced-builder/issues.
Press any key to exit...
Currently sponsorblock support is in a different tree than main one:
https://github.com/revanced/revanced-patches/tree/sponsorblock
I would like to test this, even though I know it's work in progress and I can find bugs.
Would it be possible to add an option to use these patches?
An error occured.
Error: Command failed: java -jar ./revanced/revanced-cli-2.3.3-all.jar -b ./revanced/revanced-patches-2.11.0.jar --experimental -a ./revanced/youtube.apk -o ./revanced/revanced.apk -m ./revanced/app-release-unsigned.apk -e fenster-swipe-controls| Adds volume and brightness swipe controls.
-e seekbar-tapping| Enables tapping on the seekbar of the YouTube player.
-e hide-infocard-suggestions| Hides infocards in videos.
-e autorepeat-by-default| Enables auto repeating of videos by default.
-e custom-branding| Change the branding of YouTube.
-e premium-heading| Show the premium branding on the the YouTube home screen.
-e enable-wide-searchbar| Replaces the search icon with a wide search bar. This will hide the YouTube logo when active.
-e hide-autoplay-button| Disables the autoplay button.
-e enable-debugging| Enables app debugging by patching the manifest file.
/bin/sh: 1: Adds: not found
brut.androlib.AndrolibException: Could not load resources.arsc from file: ./revanced/youtube.apk
at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:788)
at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:66)
at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:58)
at brut.androlib.Androlib.getResTable(Androlib.java:74)
at app.revanced.patcher.Patcher.<init>(Patcher.kt:59)
at app.revanced.cli.command.MainCommand.run(MainCommand.kt:115)
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.PathNotExist: resources.arsc
at brut.directory.AbstractDirectory.getFileInput(AbstractDirectory.java:106)
at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:784)
... 14 more
/bin/sh: 2: -e: not found
/bin/sh: 2: Enables: not found
/bin/sh: 3: Hides: not found
/bin/sh: 3: -e: not found
/bin/sh: 4: Enables: not found
/bin/sh: 4: -e: not found
/bin/sh: 5: Change: not found
/bin/sh: 5: -e: not found
/bin/sh: 6: Show: not found
/bin/sh: 6: -e: not found
/bin/sh: 7: Replaces: not found
/bin/sh: 7: -e: not found
/bin/sh: 8: Disables: not found
/bin/sh: 8: -e: not found
/bin/sh: 9: Enables: not found
/bin/sh: 9: -e: not found
at ChildProcess.exithandler (node:child_process:398:12)
at ChildProcess.emit (node:events:527:28)
at maybeClose (node:internal/child_process:1092:16)
at Socket.<anonymous> (node:internal/child_process:451:11)
at Socket.emit (node:events:527:28)
at Pipe.<anonymous> (node:net:709:12) {
code: 127,
killed: false,
signal: null,
cmd: 'java -jar ./revanced/revanced-cli-2.3.3-all.jar -b ./revanced/revanced-patches-2.11.0.jar --experimental -a ./revanced/youtube.apk -o ./revanced/revanced.apk -m ./revanced/app-release-unsigned.apk -e fenster-swipe-controls| Adds volume and brightness swipe controls. \n' +
' -e seekbar-tapping| Enables tapping on the seekbar of the YouTube player. \n' +
' -e hide-infocard-suggestions| Hides infocards in videos. \n' +
' -e autorepeat-by-default| Enables auto repeating of videos by default. \n' +
' -e custom-branding| Change the branding of YouTube. \n' +
' -e premium-heading| Show the premium branding on the the YouTube home screen. \n' +
' -e enable-wide-searchbar| Replaces the search icon with a wide search bar. This will hide the YouTube logo when active. \n' +
' -e hide-autoplay-button| Disables the autoplay button. \n' +
' -e enable-debugging| Enables app debugging by patching the manifest file. \n',
stdout: '',
stderr: '/bin/sh: 1: Adds: not found\n' +
'brut.androlib.AndrolibException: Could not load resources.arsc from file: ./revanced/youtube.apk\n' +
'\tat brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:788)\n' +
'\tat brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:66)\n' +
'\tat brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:58)\n' +
'\tat brut.androlib.Androlib.getResTable(Androlib.java:74)\n' +
'\tat app.revanced.patcher.Patcher.<init>(Patcher.kt:59)\n' +
'\tat app.revanced.cli.command.MainCommand.run(MainCommand.kt:115)\n' +
'\tat picocli.CommandLine.executeUserObject(CommandLine.java:1939)\n' +
'\tat picocli.CommandLine.access$1300(CommandLine.java:145)\n' +
'\tat picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)\n' +
'\tat picocli.CommandLine$RunLast.handle(CommandLine.java:2352)\n' +
'\tat picocli.CommandLine$RunLast.handle(CommandLine.java:2314)\n' +
'\tat picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)\n' +
'\tat picocli.CommandLine$RunLast.execute(CommandLine.java:2316)\n' +
'\tat picocli.CommandLine.execute(CommandLine.java:2078)\n' +
'\tat app.revanced.cli.main.MainKt.main(Main.kt:7)\n' +
'Caused by: brut.directory.PathNotExist: resources.arsc\n' +
'\tat brut.directory.AbstractDirectory.getFileInput(AbstractDirectory.java:106)\n' +
'\tat brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:784)\n' +
'\t... 14 more\n' +
'/bin/sh: 2: -e: not found\n' +
'/bin/sh: 2: Enables: not found\n' +
'/bin/sh: 3: Hides: not found\n' +
'/bin/sh: 3: -e: not found\n' +
'/bin/sh: 4: Enables: not found\n' +
'/bin/sh: 4: -e: not found\n' +
'/bin/sh: 5: Change: not found\n' +
'/bin/sh: 5: -e: not found\n' +
'/bin/sh: 6: Show: not found\n' +
'/bin/sh: 6: -e: not found\n' +
'/bin/sh: 7: Replaces: not found\n' +
'/bin/sh: 7: -e: not found\n' +
'/bin/sh: 8: Disables: not found\n' +
'/bin/sh: 8: -e: not found\n' +
'/bin/sh: 9: Enables: not found\n' +
'/bin/sh: 9: -e: not found\n'
}
Please make an issue at https://github.com/reisxd/revanced-builder/issues.
Press any key to exit...
hi. looked in revanced/revanced-patches
, but didn't find anything, may be you could help. titles of patches isn't very obvious about what they do.
Can you please add detailed instructions and develope a workflow for this
When excluding any features revanced.apk appears and then disappears from revanced folder, then the following AndroidRuntime log is shown. My device is rooted.
Downloading latest patches, integrations and cli...
[app-release-unsigned.apk] ✓
[microg.apk] ✓
? Select the patches you want to exclude. custom-branding, old-quality-layout, hide-autoplay-button,
disable-create-button, hide-shorts-button, hide-cast-button (Root required), microg-support (Root required)
Downloading the YouTube APK, this'll take some time!
[youtube.apk] ✓
Download complete!
Building ReVanced, please be patient!
07-05 22:29:25.408 15422 15422 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<
07-05 22:29:25.410 15422 15422 I AndroidRuntime: Using default boot image
07-05 22:29:25.410 15422 15422 I AndroidRuntime: Leaving lock profiling enabled
07-05 22:29:25.410 15422 15422 D AndroidRuntime: addProductProperty: pBrand1 is not null
07-05 22:29:25.410 15422 15422 D AndroidRuntime: addProductProperty: not brand or 7
07-05 22:29:25.474 15422 15422 D AndroidRuntime: Calling main entry com.android.commands.content.Content
07-05 22:29:25.489 15422 15422 D AndroidRuntime: Shutting down VM
You now can install ReVanced and MicroG by transferring revanced/revanced.apk and revaned/microg.apk!
Press any key to exit...
Will there be an option to build Revanced Music?
At this point, the GUI version is present in main
, while the code for the last CLI version, v1.2.10. is in cli
. Say, there's a weird bug arising from GH API changes and/or APKMirror changing its markup, then:
gui
, but then cli
will remain there stagnant.I want to ask, how are you going to tackle this mess? Will you maintain both the versions or just the GUI? In my opinion, I think the CLI version is pointless atm because this tool is targeted for layman users, so the GUI is better, far better. I don't think I can deduce any use cases for the CLI...
when i go to build the apk i type in node . --patch --exclude disable-shorts-button
but after installing the app the shorts feature is still disabled pls help
Describe the bug
Getting error while extracting zip file
To Reproduce
Steps to reproduce the behavior:
1.Extract file(using 7zip)
Screenshots
If applicable, add screenshots to help explain your problem.
revanced-builder Version: [e.g. v2.0.0]
Desktop (please complete the following information):
I am trying to automate the prompts for the compiled executable. This is the command that im using:
echo -ne '\n\n' | ./revanced-builder-nodejs-linux --patch
This works fine but when the program comes to and end i.e Press any key to exit..., I get an infinite loop of this error:
TypeError: process.stdin.setRawMode is not a function
at exitProcess (/snapshot/revanced-builder/index.js:43:17)
at process.<anonymous> (/snapshot/revanced-builder/index.js:38:9)
at process.emit (node:events:527:28)
at processEmit [as emit] (/snapshot/revanced-builder/node_modules/signal-exit/index.js:199:34)
at emit (node:internal/process/promises:140:20)
at processPromiseRejections (node:internal/process/promises:274:27)
at processTicksAndRejections (node:internal/process/task_queues:97:32)
Please make an issue at https://github.com/reisxd/revanced-builder/issues.
I guess when Im send my input to stdin, I doesnt allow nodejs to setRawMode to true here.
Would be nice if you could change this function to not use setRawMode
From the README:
This project will allow you to download the YouTube APK and build ReVanced easily!
But there is no link or description as to what ReVanced actually is?
The problem is present, the function then works, then does not work .
In addition, when this function is enabled, there is no way to stretch the video to full screen!
Hi dears, I am trying to install ReVanced Using the Root Variant without external MicroG because i have native MicroG
The first time compile and install nice without --manual-apk
, then I try recompile and install (then i've uninstalled YouTube APK from my phone [I think that surely the bug is by this reason]) using now --manual-apk
but it shows this error:
And now when try to install without --manual-apk
also show the same bug.
EDIT PART 2: I've found a temporal solution for the bug, basically I understand that the error "null reading 1" occurs because the algorithm try to check the YouTube.apk from ADB in my phone (the which should be not happened, because I've specified --manual-apk
), I don't know how works your algorithm neither understand about of NodeJS, but I supposed that is it.
Thank u very much for your project !!!
I think this shouldn't be too hard, if the app just stores the patches that's turned off in the patch-exclusion stage (trigger could be tied to pressing Continue?) as a simple textfile and the next time it starts it reads from the file for what was disabled from the last run?
This occurs after all the downloads are finished.
If I comment the 'Unhandled exception/rejection' handlers, I get this:
/home/shrihan/revanced-builder/index.js:496
patch += `| ${patchDescsArray[index]
^
TypeError: Cannot read properties of null (reading '0')
at /home/shrihan/revanced-builder/index.js:497:38
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Node.js v18.4.0
...which basically refers to this chunk, i.e. where the patches and their descriptions are ripped from java -jar <cli.jar> -b <patches.jar> -l
.
If I manually run that listing command:
INFO: fenster-swipe-controls Adds volume and brightness swipe controls.
INFO: seekbar-tapping Enables tapping on the seekbar of the YouTube player.
INFO: general-ads Removes general ads in bytecode.
INFO: video-ads Removes ads in the YouTube video player.
INFO: hide-infocard-suggestions Hides infocards in videos.
INFO: custom-branding Change the branding of YouTube.
INFO: premium-heading Show the premium branding on the the YouTube home screen.
INFO: minimized-playback Enables minimized and background playback.
INFO: enable-wide-searchbar Replaces the search icon with a wide search bar. This will hide the YouTube logo when active.
INFO: disable-fullscreen-panels Disables comments panel in fullscreen view.
INFO: old-quality-layout Enables the original quality flyout menu.
INFO: hide-autoplay-button Disables the autoplay button.
INFO: disable-create-button Disables the create button.
INFO: amoled Enables pure black theme.
INFO: hide-shorts-button Hides the shorts button.
INFO: hide-cast-button Hides the cast button.
INFO: hide-watermark Hides the creator's watermark on videos.
INFO: microg-support Allows YouTube ReVanced to run without root and under a different package name.
INFO: custom-playback-speed Allows to change the default playback speed options.
INFO: hdr-max-brightness Sets brightness to max for HDR videos in fullscreen mode.
INFO: enable-debugging Enables app debugging by patching the manifest file.
INFO: background-play Enable playing music in the background.
INFO: exclusive-audio-playback Adds 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 Removes 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.
I'm guessing the error's because of those extra spaces after "INFO:" to format the patch name and it's description.
In the newest version, after I selected the excluded patches, I get the following error:
Unhandled Rejection
Reason: FetchError: request to https://www.apkmirror.comundefined/ failed, reason: getaddrinfo ENOTFOUND www.apkmirror.comundefined
Please make an issue at https://github.com/reisxd/revanced-builder/issues.
Press any key to exit...
It error occurs after of reinstall youtube.apk (original apk) on my phone and try build and install ReVanced (after of EDIT PART2
in my post #15 )
$ node . --patch --exclude microg-support
Downloading latest patches, integrations and cli...
Unhandled Rejection
Reason: TypeError: Cannot read properties of null (reading '1')
Please make an issue at https://github.com/reisxd/revanced-builder/issues.
Press any key to exit...
Hello,
I discovered your greate code that is really helpfull.
And first, i would like to thank you so much.
I noticed that there are so many patches updates so i Ask you if you could add in the compiled revanced file description (about file) or just in the generated file, the patches version number ?
Thanks.
Fred
runner@fv-az196-146:~/work/tmate/tmate/revanced-builder$ node . --patch
You have an outdated version of JDK.
Please get it from here: https://www.azul.com/downloads/?version=java-17-lts&package=jdk
Press any key to exit...
Having error with Openjdk Zulu
I even installed .Deb package manually but still same error.
Ubuntu:20.04
Azure Github Actions
All packages upgraded
An error occured.
TypeError: Cannot read properties of null (reading '0')
at C:\snapshot\revanced-builder\index.js:504:38
at runMicrotasks ()
at processTicksAndRejections (node:internal/process/task_queues:96:5)
This is what it spat out:
Unhandled Rejection
Reason: FetchError: request to https://www.apkmirror.comundefined/ failed, reason: getaddrinfo ENOTFOUND www.apkmirror.comundefined
Should the Cast button be displayed at all on a device without Root?
I tried two options to collect in none of them it is displayed.
Device - Poco X3 Pro Android 12 MIUI13
Root - No
Although in the original YouTube, the Cast button is displayed!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.