From c1681f982aaa3a05499b3b3f4ebfdd8b4e590560 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sat, 25 Oct 2025 08:11:57 +0400 Subject: [PATCH 01/18] chore: Dump api --- patches/api/patches.api | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/patches/api/patches.api b/patches/api/patches.api index 1341b5ff8..14907b9d1 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -60,6 +60,10 @@ public final class app/revanced/patches/all/misc/connectivity/wifi/spoof/SpoofWi public static final fun getSpoofWifiPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } +public final class app/revanced/patches/all/misc/customcertificates/CustomCertificatesPatchKt { + public static final fun getCustomNetworkSecurityPatch ()Lapp/revanced/patcher/patch/ResourcePatch; +} + public final class app/revanced/patches/all/misc/debugging/EnableAndroidDebuggingPatchKt { public static final fun getEnableAndroidDebuggingPatch ()Lapp/revanced/patcher/patch/ResourcePatch; } From c73a03c9e18a12262939c974cdf16221221d1487 Mon Sep 17 00:00:00 2001 From: rospino74 <34315725+rospino74@users.noreply.github.com> Date: Sun, 26 Oct 2025 11:01:06 +0100 Subject: [PATCH 02/18] fix(Instagram): Update failing fingerprints on newer versions (#6181) --- .../revanced/patches/instagram/hide/navigation/Fingerprints.kt | 3 ++- .../patches/instagram/misc/devmenu/EnableDeveloperMenuPatch.kt | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/hide/navigation/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/hide/navigation/Fingerprints.kt index efbdaf597..cc762c123 100644 --- a/patches/src/main/kotlin/app/revanced/patches/instagram/hide/navigation/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/hide/navigation/Fingerprints.kt @@ -3,9 +3,10 @@ package app.revanced.patches.instagram.hide.navigation import app.revanced.patcher.fingerprint import app.revanced.patcher.patch.BytecodePatchContext +import com.android.tools.smali.dexlib2.AccessFlags internal val initializeNavigationButtonsListFingerprint = fingerprint { - strings("Nav3") + accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL) parameters("Lcom/instagram/common/session/UserSession;", "Z") returns("Ljava/util/List;") } diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/devmenu/EnableDeveloperMenuPatch.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/devmenu/EnableDeveloperMenuPatch.kt index 4f594478d..e9577477a 100644 --- a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/devmenu/EnableDeveloperMenuPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/devmenu/EnableDeveloperMenuPatch.kt @@ -24,7 +24,7 @@ val enableDeveloperMenuPatch = bytecodePatch( with(clearNotificationReceiverFingerprint.method) { indexOfFirstInstructionReversedOrThrow(clearNotificationReceiverFingerprint.stringMatches!!.first().index) { val reference = getReference() - Opcode.INVOKE_STATIC == opcode && + opcode in listOf(Opcode.INVOKE_STATIC, Opcode.INVOKE_STATIC_RANGE) && reference?.parameterTypes?.size == 1 && reference.parameterTypes.first() == "Lcom/instagram/common/session/UserSession;" && reference.returnType == "Z" From ef44eaa119b9d6c5faec051e22d20f883d0da4f1 Mon Sep 17 00:00:00 2001 From: hxreborn <32096750+hxreborn@users.noreply.github.com> Date: Sun, 26 Oct 2025 11:01:32 +0100 Subject: [PATCH 03/18] feat(TikTok): Add `Sanitize sharing links` patch (#6176) --- .../shared/privacy/LinkSanitizer.java | 13 ++- .../ExtensionPreferenceCategory.java | 6 ++ .../tiktok/share/ShareUrlSanitizer.java | 29 +++++++ patches/api/patches.api | 4 + .../patches/tiktok/misc/share/Fingerprints.kt | 25 ++++++ .../misc/share/SanitizeShareUrlsPatch.kt | 85 +++++++++++++++++++ 6 files changed, 155 insertions(+), 7 deletions(-) create mode 100644 extensions/tiktok/src/main/java/app/revanced/extension/tiktok/share/ShareUrlSanitizer.java create mode 100644 patches/src/main/kotlin/app/revanced/patches/tiktok/misc/share/Fingerprints.kt create mode 100644 patches/src/main/kotlin/app/revanced/patches/tiktok/misc/share/SanitizeShareUrlsPatch.kt diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/privacy/LinkSanitizer.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/privacy/LinkSanitizer.java index 9cfa05c1b..853ced003 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/privacy/LinkSanitizer.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/privacy/LinkSanitizer.java @@ -17,9 +17,6 @@ public class LinkSanitizer { public LinkSanitizer(String ... parametersToRemove) { final int parameterCount = parametersToRemove.length; - if (parameterCount == 0) { - throw new IllegalArgumentException("No parameters specified"); - } // List is faster if only checking a few parameters. this.parametersToRemove = parameterCount > 4 @@ -40,10 +37,12 @@ public class LinkSanitizer { try { Uri.Builder builder = uri.buildUpon().clearQuery(); - for (String paramName : uri.getQueryParameterNames()) { - if (!parametersToRemove.contains(paramName)) { - for (String value : uri.getQueryParameters(paramName)) { - builder.appendQueryParameter(paramName, value); + if (!parametersToRemove.isEmpty()) { + for (String paramName : uri.getQueryParameterNames()) { + if (!parametersToRemove.contains(paramName)) { + for (String value : uri.getQueryParameters(paramName)) { + builder.appendQueryParameter(paramName, value); + } } } } diff --git a/extensions/tiktok/src/main/java/app/revanced/extension/tiktok/settings/preference/categories/ExtensionPreferenceCategory.java b/extensions/tiktok/src/main/java/app/revanced/extension/tiktok/settings/preference/categories/ExtensionPreferenceCategory.java index 60d7983ea..7383a5582 100644 --- a/extensions/tiktok/src/main/java/app/revanced/extension/tiktok/settings/preference/categories/ExtensionPreferenceCategory.java +++ b/extensions/tiktok/src/main/java/app/revanced/extension/tiktok/settings/preference/categories/ExtensionPreferenceCategory.java @@ -23,6 +23,12 @@ public class ExtensionPreferenceCategory extends ConditionalPreferenceCategory { public void addPreferences(Context context) { addPreference(new ReVancedTikTokAboutPreference(context)); + addPreference(new TogglePreference(context, + "Sanitize sharing links", + "Remove tracking parameters from shared links.", + BaseSettings.SANITIZE_SHARED_LINKS + )); + addPreference(new TogglePreference(context, "Enable debug log", "Show extension debug log.", diff --git a/extensions/tiktok/src/main/java/app/revanced/extension/tiktok/share/ShareUrlSanitizer.java b/extensions/tiktok/src/main/java/app/revanced/extension/tiktok/share/ShareUrlSanitizer.java new file mode 100644 index 000000000..5d09c10c0 --- /dev/null +++ b/extensions/tiktok/src/main/java/app/revanced/extension/tiktok/share/ShareUrlSanitizer.java @@ -0,0 +1,29 @@ +package app.revanced.extension.tiktok.share; + +import app.revanced.extension.shared.Logger; +import app.revanced.extension.shared.privacy.LinkSanitizer; +import app.revanced.extension.shared.settings.BaseSettings; + +@SuppressWarnings("unused") +public final class ShareUrlSanitizer { + + private static final LinkSanitizer sanitizer = new LinkSanitizer(); + + /** + * Injection point for setting check. + */ + public static boolean shouldSanitize() { + return BaseSettings.SANITIZE_SHARED_LINKS.get(); + } + + /** + * Injection point for URL sanitization. + */ + public static String sanitizeShareUrl(final String url) { + if (url == null || url.isEmpty()) { + return url; + } + + return sanitizer.sanitizeUrlString(url); + } +} diff --git a/patches/api/patches.api b/patches/api/patches.api index 14907b9d1..9c3b806d3 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -1188,6 +1188,10 @@ public final class app/revanced/patches/tiktok/misc/settings/SettingsPatchKt { public static final fun getSettingsPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } +public final class app/revanced/patches/tiktok/misc/share/SanitizeShareUrlsPatchKt { + public static final fun getSanitizeShareUrlsPatch ()Lapp/revanced/patcher/patch/BytecodePatch; +} + public final class app/revanced/patches/tiktok/misc/spoof/sim/SpoofSimPatchKt { public static final fun getSpoofSimPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } diff --git a/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/share/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/share/Fingerprints.kt new file mode 100644 index 000000000..836be8900 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/share/Fingerprints.kt @@ -0,0 +1,25 @@ +package app.revanced.patches.tiktok.misc.share + +import app.revanced.patcher.fingerprint +import com.android.tools.smali.dexlib2.AccessFlags +import com.android.tools.smali.dexlib2.Opcode + +internal val urlShorteningFingerprint = fingerprint { + accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC, AccessFlags.FINAL) + returns("LX/") + parameters( + "I", + "Ljava/lang/String;", + "Ljava/lang/String;", + "Ljava/lang/String;" + ) + opcodes(Opcode.RETURN_OBJECT) + + // Same Kotlin intrinsics literal on both variants. + strings("getShortShareUrlObservab\u2026ongUrl, subBizSceneValue)") + + custom { method, _ -> + // LIZLLL is obfuscated by ProGuard/R8, but stable across both TikTok and Musically. + method.name == "LIZLLL" + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/share/SanitizeShareUrlsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/share/SanitizeShareUrlsPatch.kt new file mode 100644 index 000000000..fd616141c --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/share/SanitizeShareUrlsPatch.kt @@ -0,0 +1,85 @@ +package app.revanced.patches.tiktok.misc.share + +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patches.shared.PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS +import app.revanced.patches.shared.PATCH_NAME_SANITIZE_SHARING_LINKS +import app.revanced.patches.tiktok.misc.extension.sharedExtensionPatch +import app.revanced.util.findFreeRegister +import app.revanced.util.getReference +import app.revanced.util.indexOfFirstInstructionOrThrow +import com.android.tools.smali.dexlib2.Opcode +import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction +import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction +import com.android.tools.smali.dexlib2.iface.reference.MethodReference + +private const val EXTENSION_CLASS_DESCRIPTOR = + "Lapp/revanced/extension/tiktok/share/ShareUrlSanitizer;" + +@Suppress("unused") +val sanitizeShareUrlsPatch = bytecodePatch( + name = PATCH_NAME_SANITIZE_SHARING_LINKS, + description = PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS, +) { + dependsOn(sharedExtensionPatch) + + compatibleWith( + "com.ss.android.ugc.trill"("36.5.4"), + "com.zhiliaoapp.musically"("36.5.4"), + ) + + execute { + urlShorteningFingerprint.method.apply { + val invokeIndex = indexOfFirstInstructionOrThrow { + val ref = getReference() + ref?.name == "LIZ" && ref.definingClass.startsWith("LX/") + } + + val moveResultIndex = indexOfFirstInstructionOrThrow(invokeIndex, Opcode.MOVE_RESULT_OBJECT) + val urlRegister = getInstruction(moveResultIndex).registerA + + // Resolve Observable wrapper classes at runtime + val observableWrapperIndex = indexOfFirstInstructionOrThrow(Opcode.NEW_INSTANCE) + val observableWrapperClass = getInstruction(observableWrapperIndex) + .reference.toString() + + val observableFactoryIndex = indexOfFirstInstructionOrThrow { + val ref = getReference() + ref?.name == "LJ" && ref.definingClass.startsWith("LX/") + } + val observableFactoryRef = getInstruction(observableFactoryIndex) + .reference as MethodReference + + val observableFactoryClass = observableFactoryRef.definingClass + val observableInterfaceType = observableFactoryRef.parameterTypes.first() + val observableReturnType = observableFactoryRef.returnType + + val wrapperRegister = findFreeRegister(moveResultIndex + 1, urlRegister) + + // Check setting and conditionally sanitize share URL. + addInstructionsWithLabels( + moveResultIndex + 1, + """ + invoke-static {}, $EXTENSION_CLASS_DESCRIPTOR->shouldSanitize()Z + move-result v$wrapperRegister + if-eqz v$wrapperRegister, :skip_sanitization + + invoke-static { p1 }, $EXTENSION_CLASS_DESCRIPTOR->sanitizeShareUrl(Ljava/lang/String;)Ljava/lang/String; + move-result-object v$urlRegister + + # Wrap sanitized URL and return early to bypass ShareExtService + new-instance v$wrapperRegister, $observableWrapperClass + invoke-direct { v$wrapperRegister, v$urlRegister }, $observableWrapperClass->(Ljava/lang/String;)V + invoke-static { v$wrapperRegister }, $observableFactoryClass->LJ($observableInterfaceType)$observableReturnType + move-result-object v$urlRegister + return-object v$urlRegister + + :skip_sanitization + nop + """ + ) + } + } +} From a32ed30b4c5b0b1c9239b1cb1a7aeb06c1a2eb3c Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 26 Oct 2025 10:05:58 +0000 Subject: [PATCH 04/18] chore: Release v5.45.0-dev.1 [skip ci] # [5.45.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.44.0...v5.45.0-dev.1) (2025-10-26) ### Bug Fixes * **Instagram:** Update failing fingerprints on newer versions ([#6181](https://github.com/ReVanced/revanced-patches/issues/6181)) ([c73a03c](https://github.com/ReVanced/revanced-patches/commit/c73a03c9e18a12262939c974cdf16221221d1487)) ### Features * **TikTok:** Add `Sanitize sharing links` patch ([#6176](https://github.com/ReVanced/revanced-patches/issues/6176)) ([ef44eaa](https://github.com/ReVanced/revanced-patches/commit/ef44eaa119b9d6c5faec051e22d20f883d0da4f1)) --- CHANGELOG.md | 12 ++++++++++++ gradle.properties | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 069d20a74..7d8224d13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# [5.45.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.44.0...v5.45.0-dev.1) (2025-10-26) + + +### Bug Fixes + +* **Instagram:** Update failing fingerprints on newer versions ([#6181](https://github.com/ReVanced/revanced-patches/issues/6181)) ([c73a03c](https://github.com/ReVanced/revanced-patches/commit/c73a03c9e18a12262939c974cdf16221221d1487)) + + +### Features + +* **TikTok:** Add `Sanitize sharing links` patch ([#6176](https://github.com/ReVanced/revanced-patches/issues/6176)) ([ef44eaa](https://github.com/ReVanced/revanced-patches/commit/ef44eaa119b9d6c5faec051e22d20f883d0da4f1)) + # [5.44.0](https://github.com/ReVanced/revanced-patches/compare/v5.43.1...v5.44.0) (2025-10-24) diff --git a/gradle.properties b/gradle.properties index 0ec315418..71023d3f0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M org.gradle.parallel = true android.useAndroidX = true kotlin.code.style = official -version = 5.44.0 +version = 5.45.0-dev.1 From 6d01863ec70617d9abc864ce6686ed9764dd151d Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sun, 26 Oct 2025 19:23:04 +0400 Subject: [PATCH 05/18] fix(YouTube - Force original audio): Fall back to visionOS and not Android Studio if Android VR is not available --- .../extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java index ef8069e85..30ef6c0b8 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java @@ -38,9 +38,9 @@ public class SpoofVideoStreamsPatch { } List availableClients = List.of( + VISIONOS, ANDROID_CREATOR, ANDROID_VR_1_43_32, - VISIONOS, IPADOS); app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.setClientsToUse( From 13cf1724bf2f946c7129cab0db96721c90f9fe89 Mon Sep 17 00:00:00 2001 From: MarcaD <152095496+MarcaDian@users.noreply.github.com> Date: Sun, 26 Oct 2025 17:23:40 +0200 Subject: [PATCH 06/18] fix(YouTube Music - Hide category bar): Correctly hide the category bar in newer app targets (#6175) --- .../music/patches/HideCastButtonPatch.java | 2 +- .../music/patches/HideCategoryBarPatch.java | 7 +++-- .../layout/compactheader/Fingerprints.kt | 16 ++++------ .../layout/compactheader/HideCategoryBar.kt | 31 +++++++++---------- 4 files changed, 26 insertions(+), 30 deletions(-) diff --git a/extensions/music/src/main/java/app/revanced/extension/music/patches/HideCastButtonPatch.java b/extensions/music/src/main/java/app/revanced/extension/music/patches/HideCastButtonPatch.java index d694891ab..ab03ba8e4 100644 --- a/extensions/music/src/main/java/app/revanced/extension/music/patches/HideCastButtonPatch.java +++ b/extensions/music/src/main/java/app/revanced/extension/music/patches/HideCastButtonPatch.java @@ -19,6 +19,6 @@ public class HideCastButtonPatch { * Injection point */ public static void hideCastButton(View view) { - hideViewBy0dpUnderCondition(Settings.HIDE_CAST_BUTTON.get(), view); + hideViewBy0dpUnderCondition(Settings.HIDE_CAST_BUTTON, view); } } diff --git a/extensions/music/src/main/java/app/revanced/extension/music/patches/HideCategoryBarPatch.java b/extensions/music/src/main/java/app/revanced/extension/music/patches/HideCategoryBarPatch.java index f0433ccb1..79d772096 100644 --- a/extensions/music/src/main/java/app/revanced/extension/music/patches/HideCategoryBarPatch.java +++ b/extensions/music/src/main/java/app/revanced/extension/music/patches/HideCategoryBarPatch.java @@ -1,5 +1,8 @@ package app.revanced.extension.music.patches; +import static app.revanced.extension.shared.Utils.hideViewBy0dpUnderCondition; + +import android.view.View; import app.revanced.extension.music.settings.Settings; @SuppressWarnings("unused") @@ -8,7 +11,7 @@ public class HideCategoryBarPatch { /** * Injection point */ - public static boolean hideCategoryBar() { - return Settings.HIDE_CATEGORY_BAR.get(); + public static void hideCategoryBar(View view) { + hideViewBy0dpUnderCondition(Settings.HIDE_CATEGORY_BAR, view); } } diff --git a/patches/src/main/kotlin/app/revanced/patches/music/layout/compactheader/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/music/layout/compactheader/Fingerprints.kt index 234078c2a..76e03d2c9 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/layout/compactheader/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/layout/compactheader/Fingerprints.kt @@ -1,20 +1,16 @@ package app.revanced.patches.music.layout.compactheader import com.android.tools.smali.dexlib2.Opcode -import com.android.tools.smali.dexlib2.AccessFlags import app.revanced.patcher.fingerprint +import app.revanced.util.literal -internal val constructCategoryBarFingerprint = fingerprint { - accessFlags(AccessFlags.PUBLIC, AccessFlags.CONSTRUCTOR) +internal val chipCloudFingerprint = fingerprint { returns("V") - parameters("Landroid/content/Context;", "L", "L", "L") opcodes( - Opcode.IPUT_OBJECT, Opcode.CONST, - Opcode.INVOKE_VIRTUAL, - Opcode.MOVE_RESULT_OBJECT, - Opcode.IPUT_OBJECT, - Opcode.CONST, - Opcode.INVOKE_VIRTUAL + Opcode.CONST_4, + Opcode.INVOKE_STATIC, + Opcode.MOVE_RESULT_OBJECT ) + literal { chipCloud } } diff --git a/patches/src/main/kotlin/app/revanced/patches/music/layout/compactheader/HideCategoryBar.kt b/patches/src/main/kotlin/app/revanced/patches/music/layout/compactheader/HideCategoryBar.kt index 7668c9dc7..5a6270551 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/layout/compactheader/HideCategoryBar.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/layout/compactheader/HideCategoryBar.kt @@ -1,6 +1,6 @@ package app.revanced.patches.music.layout.compactheader -import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.bytecodePatch import app.revanced.patches.all.misc.resources.addResources @@ -8,10 +8,14 @@ import app.revanced.patches.all.misc.resources.addResourcesPatch import app.revanced.patches.music.misc.extension.sharedExtensionPatch import app.revanced.patches.music.misc.settings.PreferenceScreen import app.revanced.patches.music.misc.settings.settingsPatch +import app.revanced.patches.shared.misc.mapping.get +import app.revanced.patches.shared.misc.mapping.resourceMappings import app.revanced.patches.shared.misc.settings.preference.SwitchPreference -import app.revanced.util.findFreeRegister import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction +internal var chipCloud = -1L + private set + private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/music/patches/HideCategoryBarPatch;" @Suppress("unused") @@ -33,28 +37,21 @@ val hideCategoryBar = bytecodePatch( ) execute { + chipCloud = resourceMappings["layout", "chip_cloud"] + addResources("music", "layout.compactheader.hideCategoryBar") PreferenceScreen.GENERAL.addPreferences( SwitchPreference("revanced_music_hide_category_bar"), ) - constructCategoryBarFingerprint.method.apply { - val insertIndex = constructCategoryBarFingerprint.patternMatch!!.startIndex - val register = getInstruction(insertIndex - 1).registerA - val freeRegister = findFreeRegister(insertIndex, register) + chipCloudFingerprint.method.apply { + val targetIndex = chipCloudFingerprint.patternMatch!!.endIndex + val targetRegister = getInstruction(targetIndex).registerA - addInstructionsWithLabels( - insertIndex, - """ - invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->hideCategoryBar()Z - move-result v$freeRegister - if-eqz v$freeRegister, :show - const/16 v$freeRegister, 0x8 - invoke-virtual { v$register, v$freeRegister }, Landroid/view/View;->setVisibility(I)V - :show - nop - """ + addInstruction( + targetIndex + 1, + "invoke-static { v$targetRegister }, $EXTENSION_CLASS_DESCRIPTOR->hideCategoryBar(Landroid/view/View;)V" ) } } From 1b38b1a3c85bc5230008a2819d907a241ac84fcc Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 26 Oct 2025 15:27:23 +0000 Subject: [PATCH 07/18] chore: Release v5.45.0-dev.2 [skip ci] # [5.45.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.1...v5.45.0-dev.2) (2025-10-26) ### Bug Fixes * **YouTube - Force original audio:** Fall back to visionOS and not Android Studio if Android VR is not available ([6d01863](https://github.com/ReVanced/revanced-patches/commit/6d01863ec70617d9abc864ce6686ed9764dd151d)) * **YouTube Music - Hide category bar:** Correctly hide the category bar in newer app targets ([#6175](https://github.com/ReVanced/revanced-patches/issues/6175)) ([13cf172](https://github.com/ReVanced/revanced-patches/commit/13cf1724bf2f946c7129cab0db96721c90f9fe89)) --- CHANGELOG.md | 8 ++++++++ gradle.properties | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d8224d13..c8788c5aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# [5.45.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.1...v5.45.0-dev.2) (2025-10-26) + + +### Bug Fixes + +* **YouTube - Force original audio:** Fall back to visionOS and not Android Studio if Android VR is not available ([6d01863](https://github.com/ReVanced/revanced-patches/commit/6d01863ec70617d9abc864ce6686ed9764dd151d)) +* **YouTube Music - Hide category bar:** Correctly hide the category bar in newer app targets ([#6175](https://github.com/ReVanced/revanced-patches/issues/6175)) ([13cf172](https://github.com/ReVanced/revanced-patches/commit/13cf1724bf2f946c7129cab0db96721c90f9fe89)) + # [5.45.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.44.0...v5.45.0-dev.1) (2025-10-26) diff --git a/gradle.properties b/gradle.properties index 71023d3f0..16f71b818 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M org.gradle.parallel = true android.useAndroidX = true kotlin.code.style = official -version = 5.45.0-dev.1 +version = 5.45.0-dev.2 From e9f45ce92695d5857473ff71c14b190bded28a73 Mon Sep 17 00:00:00 2001 From: MarcaD <152095496+MarcaDian@users.noreply.github.com> Date: Mon, 27 Oct 2025 19:10:49 +0200 Subject: [PATCH 08/18] feat(YouTube - Change Header): Use SVG for header logo (#6178) Co-authored-by: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> --- .../shared/patches/CustomBrandingPatch.java | 4 +- .../youtube/patches/ChangeHeaderPatch.java | 33 ++- .../extension/youtube/settings/Settings.java | 40 +--- .../branding/BaseCustomBrandingPatch.kt | 39 ++-- .../branding/header/ChangeHeaderPatch.kt | 207 +++++++++--------- .../resources/addresources/values/arrays.xml | 8 +- .../revanced_header_custom_dark.png | Bin 0 -> 3561 bytes .../revanced_header_custom_light.png | Bin 0 -> 3554 bytes .../revanced_header_logo_dark.png | Bin 3479 -> 0 bytes .../revanced_header_logo_light.png | Bin 3465 -> 0 bytes .../revanced_header_logo_minimal_dark.png | Bin 3489 -> 0 bytes .../revanced_header_logo_minimal_light.png | Bin 3121 -> 0 bytes .../revanced_header_logo_dark.png | Bin 2176 -> 0 bytes .../revanced_header_logo_light.png | Bin 2165 -> 0 bytes .../revanced_header_logo_minimal_dark.png | Bin 2261 -> 0 bytes .../revanced_header_logo_minimal_light.png | Bin 2059 -> 0 bytes .../revanced_header_custom_dark.png | Bin 0 -> 4654 bytes .../revanced_header_custom_light.png | Bin 0 -> 4669 bytes .../revanced_header_logo_dark.png | Bin 4765 -> 0 bytes .../revanced_header_logo_light.png | Bin 4737 -> 0 bytes .../revanced_header_logo_minimal_dark.png | Bin 4641 -> 0 bytes .../revanced_header_logo_minimal_light.png | Bin 4183 -> 0 bytes .../revanced_header_custom_dark.png | Bin 0 -> 7163 bytes .../revanced_header_custom_light.png | Bin 0 -> 7217 bytes .../revanced_header_logo_dark.png | Bin 7298 -> 0 bytes .../revanced_header_logo_light.png | Bin 7180 -> 0 bytes .../revanced_header_logo_minimal_dark.png | Bin 7519 -> 0 bytes .../revanced_header_logo_minimal_light.png | Bin 6675 -> 0 bytes .../revanced_header_custom_dark.png | Bin 0 -> 9673 bytes .../revanced_header_custom_light.png | Bin 0 -> 9684 bytes .../revanced_header_logo_dark.png | Bin 9641 -> 0 bytes .../revanced_header_logo_light.png | Bin 9502 -> 0 bytes .../revanced_header_logo_minimal_dark.png | Bin 7592 -> 0 bytes .../revanced_header_logo_minimal_light.png | Bin 6870 -> 0 bytes .../drawable/revanced_header_minimal_dark.xml | 39 ++++ .../revanced_header_minimal_light.xml | 39 ++++ .../drawable/revanced_header_rounded_dark.xml | 60 +++++ .../revanced_header_rounded_light.xml | 60 +++++ 38 files changed, 364 insertions(+), 165 deletions(-) create mode 100644 patches/src/main/resources/change-header/drawable-hdpi/revanced_header_custom_dark.png create mode 100644 patches/src/main/resources/change-header/drawable-hdpi/revanced_header_custom_light.png delete mode 100644 patches/src/main/resources/change-header/drawable-hdpi/revanced_header_logo_dark.png delete mode 100644 patches/src/main/resources/change-header/drawable-hdpi/revanced_header_logo_light.png delete mode 100644 patches/src/main/resources/change-header/drawable-hdpi/revanced_header_logo_minimal_dark.png delete mode 100644 patches/src/main/resources/change-header/drawable-hdpi/revanced_header_logo_minimal_light.png delete mode 100644 patches/src/main/resources/change-header/drawable-mdpi/revanced_header_logo_dark.png delete mode 100644 patches/src/main/resources/change-header/drawable-mdpi/revanced_header_logo_light.png delete mode 100644 patches/src/main/resources/change-header/drawable-mdpi/revanced_header_logo_minimal_dark.png delete mode 100644 patches/src/main/resources/change-header/drawable-mdpi/revanced_header_logo_minimal_light.png create mode 100644 patches/src/main/resources/change-header/drawable-xhdpi/revanced_header_custom_dark.png create mode 100644 patches/src/main/resources/change-header/drawable-xhdpi/revanced_header_custom_light.png delete mode 100644 patches/src/main/resources/change-header/drawable-xhdpi/revanced_header_logo_dark.png delete mode 100644 patches/src/main/resources/change-header/drawable-xhdpi/revanced_header_logo_light.png delete mode 100644 patches/src/main/resources/change-header/drawable-xhdpi/revanced_header_logo_minimal_dark.png delete mode 100644 patches/src/main/resources/change-header/drawable-xhdpi/revanced_header_logo_minimal_light.png create mode 100644 patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_custom_dark.png create mode 100644 patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_custom_light.png delete mode 100644 patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_logo_dark.png delete mode 100644 patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_logo_light.png delete mode 100644 patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_logo_minimal_dark.png delete mode 100644 patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_logo_minimal_light.png create mode 100644 patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_custom_dark.png create mode 100644 patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_custom_light.png delete mode 100644 patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_logo_dark.png delete mode 100644 patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_logo_light.png delete mode 100644 patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_logo_minimal_dark.png delete mode 100644 patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_logo_minimal_light.png create mode 100644 patches/src/main/resources/change-header/drawable/revanced_header_minimal_dark.xml create mode 100644 patches/src/main/resources/change-header/drawable/revanced_header_minimal_light.xml create mode 100644 patches/src/main/resources/change-header/drawable/revanced_header_rounded_dark.xml create mode 100644 patches/src/main/resources/change-header/drawable/revanced_header_rounded_light.xml diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/CustomBrandingPatch.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/CustomBrandingPatch.java index c6cf761ca..ca4a8ff61 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/CustomBrandingPatch.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/CustomBrandingPatch.java @@ -150,14 +150,14 @@ public class CustomBrandingPatch { } for (ComponentName disable : componentsToDisable) { - // Use info logging because if the alias status become corrupt the app cannot launch. - Logger.printInfo(() -> "Disabling: " + disable.getClassName()); pm.setComponentEnabledSetting(disable, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); } + // Use info logging because if the alias status become corrupt the app cannot launch. ComponentName componentToEnableFinal = componentToEnable; Logger.printInfo(() -> "Enabling: " + componentToEnableFinal.getClassName()); + pm.setComponentEnabledSetting(componentToEnable, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 0); } catch (Exception ex) { diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ChangeHeaderPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ChangeHeaderPatch.java index ed5bcec07..8d7462119 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ChangeHeaderPatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ChangeHeaderPatch.java @@ -17,15 +17,25 @@ public class ChangeHeaderPatch { DEFAULT(null, null), REGULAR("ytWordmarkHeader", "yt_ringo2_wordmark_header"), PREMIUM("ytPremiumWordmarkHeader", "yt_ringo2_premium_wordmark_header"), - REVANCED("revanced_header_logo", "revanced_header_logo"), - REVANCED_MINIMAL("revanced_header_logo_minimal", "revanced_header_logo_minimal"), - CUSTOM("custom_header", "custom_header"); + ROUNDED("revanced_header_rounded"), + MINIMAL("revanced_header_minimal"), + CUSTOM("revanced_header_custom"), + + // Old enum names for data migration. TODO: Eventually delete these. + @Deprecated + REVANCED(ROUNDED.attributeName), + @Deprecated + REVANCED_MINIMAL(MINIMAL.attributeName); @Nullable private final String attributeName; @Nullable private final String drawableName; + HeaderLogo(String attributeName) { + this(Objects.requireNonNull(attributeName), Objects.requireNonNull(attributeName)); + } + HeaderLogo(@Nullable String attributeName, @Nullable String drawableName) { this.attributeName = attributeName; this.drawableName = drawableName; @@ -42,9 +52,8 @@ public class ChangeHeaderPatch { final int identifier = Utils.getResourceIdentifier(attributeName, "attr"); if (identifier == 0) { - // Identifier is zero if custom header setting was included in imported settings - // and a custom image was not included during patching. - Logger.printDebug(() -> "Could not find attribute: " + drawableName); + // Should never happen. + Logger.printException(() -> "Could not find attribute: " + drawableName); Settings.HEADER_LOGO.resetToDefault(); return null; } @@ -63,12 +72,14 @@ public class ChangeHeaderPatch { : "_light"); final int identifier = Utils.getResourceIdentifier(drawableFullName, "drawable"); - if (identifier == 0) { - Logger.printDebug(() -> "Could not find drawable: " + drawableFullName); - Settings.HEADER_LOGO.resetToDefault(); - return null; + if (identifier != 0) { + return Utils.getContext().getDrawable(identifier); } - return Utils.getContext().getDrawable(identifier); + + // Should never happen. + Logger.printException(() -> "Could not find drawable: " + drawableFullName); + Settings.HEADER_LOGO.resetToDefault(); + return null; } } diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java index 747a4f048..0dd82d240 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java @@ -2,7 +2,6 @@ package app.revanced.extension.youtube.settings; import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; -import static app.revanced.extension.shared.settings.Setting.migrateOldSettingToNew; import static app.revanced.extension.shared.settings.Setting.parent; import static app.revanced.extension.shared.settings.Setting.parentsAll; import static app.revanced.extension.shared.settings.Setting.parentsAny; @@ -17,7 +16,6 @@ import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerH import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerHideSubtextsAvailability; import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerHorizontalDragAvailability; import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerType; -import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerType.MINIMAL; import static app.revanced.extension.youtube.patches.OpenShortsInRegularPlayerPatch.ShortsPlayerType; import static app.revanced.extension.youtube.patches.SeekbarThumbnailsPatch.SeekbarThumbnailsHighQualityAvailability; import static app.revanced.extension.youtube.patches.components.PlayerFlyoutMenuItemsFilter.HideAudioFlyoutMenuAvailability; @@ -41,7 +39,6 @@ import app.revanced.extension.shared.settings.IntegerSetting; import app.revanced.extension.shared.settings.LongSetting; import app.revanced.extension.shared.settings.Setting; import app.revanced.extension.shared.settings.StringSetting; -import app.revanced.extension.shared.settings.preference.SharedPrefCategory; import app.revanced.extension.shared.spoof.ClientType; import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.DeArrowAvailability; import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.StillImagesAvailability; @@ -452,14 +449,7 @@ public class Settings extends BaseSettings { public static final StringSetting SB_CATEGORY_UNSUBMITTED_COLOR = new StringSetting("sb_unsubmitted_color", "#FFFFFFFF", false, false); // Deprecated migrations - private static final BooleanSetting DEPRECATED_AUTO_REPEAT = new BooleanSetting("revanced_auto_repeat", FALSE); - private static final BooleanSetting DEPRECATED_HIDE_PLAYER_BUTTONS = new BooleanSetting("revanced_hide_player_buttons", FALSE, true); - private static final BooleanSetting DEPRECATED_HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER = new BooleanSetting("revanced_hide_video_quality_menu_footer", FALSE); - private static final IntegerSetting DEPRECATED_SWIPE_OVERLAY_BACKGROUND_ALPHA = new IntegerSetting("revanced_swipe_overlay_background_alpha", 127); private static final StringSetting DEPRECATED_SEEKBAR_CUSTOM_COLOR_PRIMARY = new StringSetting("revanced_seekbar_custom_color_value", "#FF0033"); - private static final BooleanSetting DEPRECATED_DISABLE_SUGGESTED_VIDEO_END_SCREEN = new BooleanSetting("revanced_disable_suggested_video_end_screen", FALSE); - private static final BooleanSetting DEPRECATED_RESTORE_OLD_VIDEO_QUALITY_MENU = new BooleanSetting("revanced_restore_old_video_quality_menu", TRUE); - private static final BooleanSetting DEPRECATED_AUTO_CAPTIONS = new BooleanSetting("revanced_auto_captions", FALSE); private static final FloatSetting DEPRECATED_SB_CATEGORY_SPONSOR_OPACITY = new FloatSetting("sb_sponsor_opacity", 0.8f, false, false); private static final FloatSetting DEPRECATED_SB_CATEGORY_SELF_PROMO_OPACITY = new FloatSetting("sb_selfpromo_opacity", 0.8f, false, false); @@ -475,17 +465,12 @@ public class Settings extends BaseSettings { static { // region Migration - migrateOldSettingToNew(DEPRECATED_AUTO_REPEAT, LOOP_VIDEO); - migrateOldSettingToNew(DEPRECATED_HIDE_PLAYER_BUTTONS, HIDE_PLAYER_PREVIOUS_NEXT_BUTTONS); - migrateOldSettingToNew(DEPRECATED_HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER, HIDE_PLAYER_FLYOUT_VIDEO_QUALITY_FOOTER); - migrateOldSettingToNew(DEPRECATED_DISABLE_SUGGESTED_VIDEO_END_SCREEN, HIDE_END_SCREEN_SUGGESTED_VIDEO); - migrateOldSettingToNew(DEPRECATED_RESTORE_OLD_VIDEO_QUALITY_MENU, ADVANCED_VIDEO_QUALITY_MENU); - migrateOldSettingToNew(DEPRECATED_AUTO_CAPTIONS, DISABLE_AUTO_CAPTIONS); - - // Migrate renamed enum. - //noinspection deprecation - if (MINIPLAYER_TYPE.get() == MiniplayerType.PHONE) { - MINIPLAYER_TYPE.save(MINIMAL); + // Migrate renamed change header enums. + if (HEADER_LOGO.get() == HeaderLogo.REVANCED) { + HEADER_LOGO.save(HeaderLogo.ROUNDED); + } + if (HEADER_LOGO.get() == HeaderLogo.REVANCED_MINIMAL) { + HEADER_LOGO.save(HeaderLogo.MINIMAL); } // Migrate old single color seekbar with a slightly brighter accent color based on the primary. @@ -512,11 +497,6 @@ public class Settings extends BaseSettings { DEPRECATED_SEEKBAR_CUSTOM_COLOR_PRIMARY.resetToDefault(); } - if (!DEPRECATED_SWIPE_OVERLAY_BACKGROUND_ALPHA.isSetToDefault()) { - SWIPE_OVERLAY_OPACITY.save(DEPRECATED_SWIPE_OVERLAY_BACKGROUND_ALPHA.get() / 255); - DEPRECATED_SWIPE_OVERLAY_BACKGROUND_ALPHA.resetToDefault(); - } - // Old spoof versions that no longer work, // or is spoofing to a version the same or newer than this app. if (!SPOOF_APP_VERSION_TARGET.isSetToDefault() && @@ -534,13 +514,7 @@ public class Settings extends BaseSettings { // RYD requires manually migrating old settings since the lack of // a "revanced_" on the old setting causes duplicate key exceptions during export. - SharedPrefCategory revancedPrefs = Setting.preferences; - Setting.migrateFromOldPreferences(revancedPrefs, RYD_USER_ID, "ryd_user_id"); - Setting.migrateFromOldPreferences(revancedPrefs, RYD_ENABLED, "ryd_enabled"); - Setting.migrateFromOldPreferences(revancedPrefs, RYD_DISLIKE_PERCENTAGE, "ryd_dislike_percentage"); - Setting.migrateFromOldPreferences(revancedPrefs, RYD_COMPACT_LAYOUT, "ryd_compact_layout"); - Setting.migrateFromOldPreferences(revancedPrefs, RYD_ESTIMATED_LIKE, "ryd_estimated_like"); - Setting.migrateFromOldPreferences(revancedPrefs, RYD_TOAST_ON_CONNECTION_ERROR, "ryd_toast_on_connection_error"); + Setting.migrateFromOldPreferences(Setting.preferences, RYD_USER_ID, "ryd_user_id"); // Migrate old saved data. Must be done here before the settings can be used by any other code. applyOldSbOpacityToColor(SB_CATEGORY_SPONSOR_COLOR, DEPRECATED_SB_CATEGORY_SPONSOR_OPACITY); diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/BaseCustomBrandingPatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/BaseCustomBrandingPatch.kt index 5381131f2..d3e718085 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/BaseCustomBrandingPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/BaseCustomBrandingPatch.kt @@ -36,13 +36,13 @@ import org.w3c.dom.NodeList import java.io.File import java.util.logging.Logger -private val mipmapDirectories = arrayOf( +private val mipmapDirectories = mapOf( // Target app does not have ldpi icons. - "mipmap-mdpi", - "mipmap-hdpi", - "mipmap-xhdpi", - "mipmap-xxhdpi", - "mipmap-xxxhdpi" + "mipmap-mdpi" to "108x108 px", + "mipmap-hdpi" to "162x162 px", + "mipmap-xhdpi" to "216x216 px", + "mipmap-xxhdpi" to "324x324 px", + "mipmap-xxxhdpi" to "432x432 px" ) private val iconStyleNames = arrayOf( @@ -104,10 +104,13 @@ internal fun baseCustomBrandingPatch( Folder with images to use as a custom icon. The folder must contain one or more of the following folders, depending on the DPI of the device: - ${mipmapDirectories.joinToString("\n") { "- $it" }} + ${mipmapDirectories.keys.joinToString("\n") { "- $it" }} Each of the folders must contain all of the following files: ${USER_CUSTOM_ADAPTIVE_FILE_NAMES.joinToString("\n")} + + The image dimensions must be as follows: + ${mipmapDirectories.map { (dpi, dim) -> "- $dpi: $dim" }.joinToString("\n")} Optionally, the path contains a 'drawable' folder with any of the monochrome icon files: $USER_CUSTOM_MONOCHROME_FILE_NAME @@ -249,7 +252,7 @@ internal fun baseCustomBrandingPatch( ) // Copy template icon files. - mipmapDirectories.forEach { dpi -> + mipmapDirectories.keys.forEach { dpi -> copyResources( "custom-branding", ResourceGroup( @@ -405,23 +408,24 @@ internal fun baseCustomBrandingPatch( ) } - val sourceFolders = iconPathFile.listFiles { file -> file.isDirectory } - ?: throw PatchException("The custom icon path contains no subfolders: " + - iconPathFile.absolutePath) - val resourceDirectory = get("res") var copiedFiles = false // For each source folder, copy the files to the target resource directories. - sourceFolders.forEach { dpiSourceFolder -> + iconPathFile.listFiles { + file -> file.isDirectory && file.name in mipmapDirectories + }!!.forEach { dpiSourceFolder -> val targetDpiFolder = resourceDirectory.resolve(dpiSourceFolder.name) - if (!targetDpiFolder.exists()) return@forEach + if (!targetDpiFolder.exists()) { + // Should never happen. + throw IllegalStateException("Resource not found: $dpiSourceFolder") + } val customFiles = dpiSourceFolder.listFiles { file -> file.isFile && file.name in USER_CUSTOM_ADAPTIVE_FILE_NAMES }!! - if (customFiles.size > 0 && customFiles.size != USER_CUSTOM_ADAPTIVE_FILE_NAMES.size) { + if (customFiles.isNotEmpty() && customFiles.size != USER_CUSTOM_ADAPTIVE_FILE_NAMES.size) { throw PatchException("Must include all required icon files " + "but only found " + customFiles.map { it.name }) } @@ -451,8 +455,9 @@ internal fun baseCustomBrandingPatch( } if (!copiedFiles) { - throw PatchException("Could not find any replacement images in " + - "patch option path: " + iconPathFile.absolutePath) + throw PatchException("Expected to find directories and files: " + + USER_CUSTOM_ADAPTIVE_FILE_NAMES.contentToString() + + "\nBut none were found in the provided option file path: " + iconPathFile.absolutePath) } } diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt index 26a10aacf..1a5e131ba 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt @@ -24,15 +24,40 @@ import java.io.File private val variants = arrayOf("light", "dark") -private const val EXTENSION_CLASS_DESCRIPTOR = - "Lapp/revanced/extension/youtube/patches/ChangeHeaderPatch;" +private val targetResourceDirectoryNames = mapOf( + "drawable-hdpi" to "194x72 px", + "drawable-xhdpi" to "258x96 px", + "drawable-xxhdpi" to "387x144 px", + "drawable-xxxhdpi" to "512x192 px" +) + +/** + * Header logos built into this patch. + */ +private val logoResourceNames = arrayOf( + "revanced_header_minimal", + "revanced_header_rounded", +) + +/** + * Custom header resource/file name. + */ +private const val CUSTOM_HEADER_RESOURCE_NAME = "revanced_header_custom" + +/** + * Custom header resource/file names. + */ +private val customHeaderResourceFileNames = variants.map { variant -> + "${CUSTOM_HEADER_RESOURCE_NAME}_$variant.png" +}.toTypedArray() + +private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/ChangeHeaderPatch;" private val changeHeaderBytecodePatch = bytecodePatch { dependsOn(resourceMappingPatch) execute { - // Resources are not used during patching, but extension code uses these - // images so verify they exist. + // Verify images exist. Resources are not used during patching but extension code does. arrayOf( "yt_ringo2_wordmark_header", "yt_ringo2_premium_wordmark_header" @@ -62,28 +87,6 @@ private val changeHeaderBytecodePatch = bytecodePatch { } } -private val targetResourceDirectoryNames = mapOf( - "xxxhdpi" to "512px x 192px", - "xxhdpi" to "387px x 144px", - "xhdpi" to "258px x 96px", - "hdpi" to "194px x 72px", - "mdpi" to "129px x 48px" -).mapKeys { (dpi, _) -> "drawable-$dpi" } - - -/** - * Header logos built into this patch. - */ -private val logoResourceNames = arrayOf( - "revanced_header_logo_minimal", - "revanced_header_logo", -) - -/** - * Custom header resource/file name. - */ -private const val CUSTOM_HEADER_RESOURCE_NAME = "custom_header" - @Suppress("unused") val changeHeaderPatch = resourcePatch( name = "Change header", @@ -110,7 +113,7 @@ val changeHeaderPatch = resourcePatch( ${targetResourceDirectoryNames.keys.joinToString("\n") { "- $it" }} Each of the folders must contain all of the following files: - ${variants.joinToString("\n") { variant -> "- ${CUSTOM_HEADER_RESOURCE_NAME}_$variant.png" }} + ${customHeaderResourceFileNames.joinToString("\n")} The image dimensions must be as follows: ${targetResourceDirectoryNames.map { (dpi, dim) -> "- $dpi: $dim" }.joinToString("\n")} @@ -120,67 +123,41 @@ val changeHeaderPatch = resourcePatch( execute { addResources("youtube", "layout.branding.changeHeaderPatch") - fun getLightDarkFileNames(vararg resourceNames: String): Array = - variants.flatMap { variant -> - resourceNames.map { resource -> "${resource}_$variant.png" } - }.toTypedArray() - - val logoResourceFileNames = getLightDarkFileNames(*logoResourceNames) - copyResources( - "change-header", - ResourceGroup("drawable-hdpi", *logoResourceFileNames), - ResourceGroup("drawable-mdpi", *logoResourceFileNames), - ResourceGroup("drawable-xhdpi", *logoResourceFileNames), - ResourceGroup("drawable-xxhdpi", *logoResourceFileNames), - ResourceGroup("drawable-xxxhdpi", *logoResourceFileNames), - ) - - if (custom != null) { - val customFile = File(custom!!) - if (!customFile.exists()) { - throw PatchException("The custom icon path cannot be found: " + - customFile.absolutePath + PreferenceScreen.GENERAL_LAYOUT.addPreferences( + if (custom == null) { + ListPreference("revanced_header_logo") + } else { + ListPreference( + key = "revanced_header_logo", + entriesKey = "revanced_header_logo_custom_entries", + entryValuesKey = "revanced_header_logo_custom_entry_values" ) } + ) - if (!customFile.isDirectory) { - throw PatchException("The custom icon path must be a folder: " - + customFile.absolutePath) + logoResourceNames.forEach { logo -> + variants.forEach { variant -> + copyResources( + "change-header", + ResourceGroup( + "drawable", + logo + "_" + variant + ".xml" + ) + ) } + } - val sourceFolders = customFile.listFiles { file -> file.isDirectory } - ?: throw PatchException("The custom icon path contains no subfolders: " + - customFile.absolutePath) - - val customResourceFileNames = getLightDarkFileNames(CUSTOM_HEADER_RESOURCE_NAME) - - var copiedFiles = false - - // For each source folder, copy the files to the target resource directories. - sourceFolders.forEach { dpiSourceFolder -> - val targetDpiFolder = get("res").resolve(dpiSourceFolder.name) - if (!targetDpiFolder.exists()) return@forEach - - val customFiles = dpiSourceFolder.listFiles { file -> - file.isFile && file.name in customResourceFileNames - }!! - - if (customFiles.size > 0 && customFiles.size != variants.size) { - throw PatchException("Both light/dark mode images " + - "must be specified but only found: " + customFiles.map { it.name }) - } - - customFiles.forEach { imgSourceFile -> - val imgTargetFile = targetDpiFolder.resolve(imgSourceFile.name) - imgSourceFile.copyTo(imgTargetFile) - - copiedFiles = true - } - } - - if (!copiedFiles) { - throw PatchException("No custom header images found in " + - "the provided path: " + customFile.absolutePath) + // Copy custom template. Images are only used if settings + // are imported and a custom header is enabled. + targetResourceDirectoryNames.keys.forEach { dpi -> + variants.forEach { variant -> + copyResources( + "change-header", + ResourceGroup( + dpi, + *customHeaderResourceFileNames + ) + ) } } @@ -199,9 +176,7 @@ val changeHeaderPatch = resourcePatch( addAttributeReference(logoName) } - if (custom != null) { - addAttributeReference(CUSTOM_HEADER_RESOURCE_NAME) - } + addAttributeReference(CUSTOM_HEADER_RESOURCE_NAME) } // Add custom drawables to all styles that use the regular and premium logo. @@ -227,22 +202,58 @@ val changeHeaderPatch = resourcePatch( addDrawableElement(document, logoName, mode) } - if (custom != null) { - addDrawableElement(document, CUSTOM_HEADER_RESOURCE_NAME, mode) - } + addDrawableElement(document, CUSTOM_HEADER_RESOURCE_NAME, mode) } } - PreferenceScreen.GENERAL_LAYOUT.addPreferences( - if (custom == null) { - ListPreference("revanced_header_logo") - } else { - ListPreference( - key = "revanced_header_logo", - entriesKey = "revanced_header_logo_custom_entries", - entryValuesKey = "revanced_header_logo_custom_entry_values" + // Copy user provided images last, so if an exception is thrown due to bad input. + if (custom != null) { + val customFile = File(custom!!.trim()) + if (!customFile.exists()) { + throw PatchException("The custom header path cannot be found: " + + customFile.absolutePath ) } - ) + + if (!customFile.isDirectory) { + throw PatchException("The custom header path must be a folder: " + + customFile.absolutePath) + } + + var copiedFiles = false + + // For each source folder, copy the files to the target resource directories. + customFile.listFiles { + file -> file.isDirectory && file.name in targetResourceDirectoryNames + }!!.forEach { dpiSourceFolder -> + val targetDpiFolder = get("res").resolve(dpiSourceFolder.name) + if (!targetDpiFolder.exists()) { + // Should never happen. + throw IllegalStateException("Resource not found: $dpiSourceFolder") + } + + val customFiles = dpiSourceFolder.listFiles { file -> + file.isFile && file.name in customHeaderResourceFileNames + }!! + + if (customFiles.isNotEmpty() && customFiles.size != variants.size) { + throw PatchException("Both light/dark mode images " + + "must be specified but only found: " + customFiles.map { it.name }) + } + + customFiles.forEach { imgSourceFile -> + val imgTargetFile = targetDpiFolder.resolve(imgSourceFile.name) + imgSourceFile.copyTo(target = imgTargetFile, overwrite = true) + + copiedFiles = true + } + } + + if (!copiedFiles) { + throw PatchException("Expected to find directories and files: " + + customHeaderResourceFileNames.contentToString() + + "\nBut none were found in the provided option file path: " + customFile.absolutePath) + } + } } } diff --git a/patches/src/main/resources/addresources/values/arrays.xml b/patches/src/main/resources/addresources/values/arrays.xml index 980f0c20c..439261474 100644 --- a/patches/src/main/resources/addresources/values/arrays.xml +++ b/patches/src/main/resources/addresources/values/arrays.xml @@ -397,8 +397,8 @@ DEFAULT REGULAR PREMIUM - REVANCED - REVANCED_MINIMAL + ROUNDED + MINIMAL @string/revanced_header_logo_entry_1 @@ -412,8 +412,8 @@ DEFAULT REGULAR PREMIUM - REVANCED - REVANCED_MINIMAL + ROUNDED + MINIMAL CUSTOM diff --git a/patches/src/main/resources/change-header/drawable-hdpi/revanced_header_custom_dark.png b/patches/src/main/resources/change-header/drawable-hdpi/revanced_header_custom_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..8a9dc3177f10955fefb758caac2119c9c035f1a8 GIT binary patch literal 3561 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 YL+8T9bN)&_=>ci+boFyt=akR{07ABdTL1t6 literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/change-header/drawable-hdpi/revanced_header_custom_light.png b/patches/src/main/resources/change-header/drawable-hdpi/revanced_header_custom_light.png new file mode 100644 index 0000000000000000000000000000000000000000..64ca9cf9a25333fefcb7bdb902ef881aa6daec4f GIT binary patch literal 3554 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 diff --git a/patches/src/main/resources/change-header/drawable-hdpi/revanced_header_logo_minimal_dark.png b/patches/src/main/resources/change-header/drawable-hdpi/revanced_header_logo_minimal_dark.png deleted file mode 100644 index 2428aee24f44af83aaf6f9df0f8286bbfd999c72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3489 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 diff --git a/patches/src/main/resources/change-header/drawable-hdpi/revanced_header_logo_minimal_light.png b/patches/src/main/resources/change-header/drawable-hdpi/revanced_header_logo_minimal_light.png deleted file mode 100644 index c444e6e0dac59599efe412018ced47c7d98cac36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3121 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 WHR8F&uPLqt@jPAqT-G@yGywpYVbd`H diff --git a/patches/src/main/resources/change-header/drawable-mdpi/revanced_header_logo_dark.png b/patches/src/main/resources/change-header/drawable-mdpi/revanced_header_logo_dark.png deleted file mode 100644 index 92c1bd7c61d48e76d3408f566b30d978839fca10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2176 zcmeAS@N?(olHy`uVBq!ia0y~yU}$7uU@+idV_;w~Gm~s!U| z%P&#L$xKeoD^5*OD9uYrEmCj~@X=EUPEA$FC@Co@w$j&6&n(F(P0~xw&(#k~4NJ^R zPEFA-N-YC3bd!n_^HMVN((`YtPGVqSkjo4K8D3CXl$oAU!T3i(IZ?h~>Dxt4+9K)~hdva^;aHmY_V{(e*J+P1kj zZ*I&@%+<`ky)74vKG~Lp`-XqZ+jL6)=Be<~rgxXOTNl?Y550Umz%DasrB$}rE_2Jx z2Uov+>wE9*d)@CDb(PbyoA)+*hrGLGm4E5|tY-fHYdaU&y?-8(`$O!1-1%>;ya^F2 ztt7ZzgU!~<7w+7bSVm(OJU!{~E$W1&OsgYdV!3`H8}e|Rqc$DOcgjsB{eiVmKZ|1Qqb^)R|} z>aKmBUF&A+y}KEfEcKf^t8Ah2%6C`GW}V|d)sec6$#^mQ!o5`}h@%+?J{SBWvUY*?J-zas!>H*6JaS4VcVYeh3RyGKBOy2jr;jV-3 z1Le(y%h}nOen0u~j7iSwU=PzYrsEB=4(?y3Z{SGSDRbW~VU@3IfO+Ot&2Y2B+O7|t zKR>?Id%DJiy&Q)hiyLSqa(en*eR+Ss{bIM?O*?c#dS>|S2;be8ufW95qV_;LGK^)% z(bG1}hnAez|76{;{L`MKB@uX8udl5QSsm6}uzi_HN3_GXH9L0{K4#O?(-XVx z%EGI5VfpWrY^4CB5|gISUTX4A8<;itQW)42c5u`v)?Qb7vDjv_auf5X-|vlf`#4A+ zP)MJ+oMTdmphp=~qXSO?@4?Ka{ckzWF%>!pY+yeq`#}0Yw@4JTWa|Cp0$T#jcAghJ z!^q{af3KNvW4C*^(n-;8lTMvlxgcn%*PEN0+e=<U$r)OtAPc^NVhC>7%I! zlujmpySw0vJd=#m{A+1S6?xl^Yxr=@YzPSQSiP4?v&j3-gu2H9ImX%Z&n>HNx}jz5 zd$Y(Ynm1#2+1nY`<$9f+oidh1PwEXL_Ue1g>UR(L&L`#)AlxzOy+@MB{S+0WY^&EZ zX02=&G-2-HSjRA5qq^lehaXez(hGcx^_$vfHO=}Nl=5%Mgo{la+mtMpe3zb5*RFgc z|C-%yUsr)CHqWa9ug?l&o~7*G_urrS`MJ4=GfbjB|F19WTwg39et+BgQY(fqg&X}g zk|%oHg6`=UM=`XX^%IO0%wfBxD6#O$cIOSOKSHL}GT*877F-fEZK+$=eC-V!8QgzX z$OP-p&Ser_dZB*${cNq-_e#3rEoXNfu-)`uW&e}RuqLgX4-XFhpD$vRdMf4W_65b2 zP1?GXgLRCN8PkJk-XrXk}O3*;@h5r1n(gnf?4HwK4xgwxA8*L5q{+I?<* z+O_|<^kEa0(Ad7{FAFroTo)`zdGGf?In{lC1GOq*}Z8A>MYo@nK}%UsAo&sjw=xBo$0Q^EAhYRiqB*)zZOGgnUjv2x*|4T^QL-|Tr` z)v-Na^;lEp-kd%6rk;E|&80CxS#?tN-MkQcBkU@>a)|T-<=JMD_Uuv?!U39*-Er4`|Ij7@jsX4WH>-|Im6HWW=*TW YfWa$)(ebRUZ7)dN)78&qol`;+05e7Fi2wiq diff --git a/patches/src/main/resources/change-header/drawable-mdpi/revanced_header_logo_light.png b/patches/src/main/resources/change-header/drawable-mdpi/revanced_header_logo_light.png deleted file mode 100644 index 4c5a740440c87ffc77ddab1be1bbc2e1c3699ee7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2165 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 J%Q~loCIIa|Bo6=p diff --git a/patches/src/main/resources/change-header/drawable-mdpi/revanced_header_logo_minimal_light.png b/patches/src/main/resources/change-header/drawable-mdpi/revanced_header_logo_minimal_light.png deleted file mode 100644 index a94f9918f68fddae2cec54817c8ea05abccf0521..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2059 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 literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/change-header/drawable-xhdpi/revanced_header_logo_dark.png b/patches/src/main/resources/change-header/drawable-xhdpi/revanced_header_logo_dark.png deleted file mode 100644 index 09380c6e59b2b8d45ba475d09cf4050af3821d4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4765 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 O>O5WjT-G@yGywpm9P_FG diff --git a/patches/src/main/resources/change-header/drawable-xhdpi/revanced_header_logo_light.png b/patches/src/main/resources/change-header/drawable-xhdpi/revanced_header_logo_light.png deleted file mode 100644 index 96aa0bffdb493e648a177ddb325b686c03f8a2cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4737 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 Z0fT_$lJk2!Tg^cVJzf1=);T3K0Ra17(K7%5 diff --git a/patches/src/main/resources/change-header/drawable-xhdpi/revanced_header_logo_minimal_dark.png b/patches/src/main/resources/change-header/drawable-xhdpi/revanced_header_logo_minimal_dark.png deleted file mode 100644 index 438db33167e8231b461c960953ec5ab313ccea4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4641 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 q85tND8XW&!YrYW;Vxoto}BrA{9|Oa)$fVt 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 Mr>mdKI;Vst0E+O{#Q*>R diff --git a/patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_custom_dark.png b/patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_custom_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..1fd39d2fe595b98cd5568b14390d8715fcf62f8d GIT binary patch literal 7163 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 VJ#u$^m3atcpQo#z%Q~loCIG(kV2J<# literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_custom_light.png b/patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_custom_light.png new file mode 100644 index 0000000000000000000000000000000000000000..9399534b741569e0cee2a74a420eb4ea94eadd66 GIT binary patch literal 7217 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 WhVH_{s&)>b2{unxKbLh*2~7YR%#5J` literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_logo_dark.png b/patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_logo_dark.png deleted file mode 100644 index 20e764314b28452b355a249a1599aa76634761c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7298 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 I&MBb@0L16raR2}S diff --git a/patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_logo_light.png b/patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_logo_light.png deleted file mode 100644 index f49bc8aa9af1c7056fb692067fc419099f153504..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7180 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 diff --git a/patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_logo_minimal_dark.png b/patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_logo_minimal_dark.png deleted file mode 100644 index 331911070a08c075fd5bbf529381a1bdcbf1caa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7519 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 diff --git a/patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_logo_minimal_light.png b/patches/src/main/resources/change-header/drawable-xxhdpi/revanced_header_logo_minimal_light.png deleted file mode 100644 index def9f286156c4624a9e19c50a49d533a15de8415..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6675 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 diff --git a/patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_custom_dark.png b/patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_custom_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..b9eb10e28d973d7d539de63e3dc0d1aac929d0c2 GIT binary patch literal 9673 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 literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_logo_dark.png b/patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_logo_dark.png deleted file mode 100644 index e8f2deb436d183d7dcfe117ef1ac850d9b6bff2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9641 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 diff --git a/patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_logo_light.png b/patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_logo_light.png deleted file mode 100644 index 6157ca5cee0538286c3ff398fb6a7364be3db554..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9502 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 diff --git a/patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_logo_minimal_dark.png b/patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_logo_minimal_dark.png deleted file mode 100644 index 81509cfa02b5fea81faa5049d147db134f641ccd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7592 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 T{Z$i;0;%zI^>bP0l+XkK%4xzj diff --git a/patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_logo_minimal_light.png b/patches/src/main/resources/change-header/drawable-xxxhdpi/revanced_header_logo_minimal_light.png deleted file mode 100644 index d0c59666d1b7a8b00ea4ac033b1f60cf81fb7303..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6870 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 lyW0%!)CnHn@mvv4FO#tNbCRzXh diff --git a/patches/src/main/resources/change-header/drawable/revanced_header_minimal_dark.xml b/patches/src/main/resources/change-header/drawable/revanced_header_minimal_dark.xml new file mode 100644 index 000000000..9f337b7c1 --- /dev/null +++ b/patches/src/main/resources/change-header/drawable/revanced_header_minimal_dark.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + diff --git a/patches/src/main/resources/change-header/drawable/revanced_header_minimal_light.xml b/patches/src/main/resources/change-header/drawable/revanced_header_minimal_light.xml new file mode 100644 index 000000000..a40169f45 --- /dev/null +++ b/patches/src/main/resources/change-header/drawable/revanced_header_minimal_light.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + diff --git a/patches/src/main/resources/change-header/drawable/revanced_header_rounded_dark.xml b/patches/src/main/resources/change-header/drawable/revanced_header_rounded_dark.xml new file mode 100644 index 000000000..73de0de42 --- /dev/null +++ b/patches/src/main/resources/change-header/drawable/revanced_header_rounded_dark.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/patches/src/main/resources/change-header/drawable/revanced_header_rounded_light.xml b/patches/src/main/resources/change-header/drawable/revanced_header_rounded_light.xml new file mode 100644 index 000000000..a6e1cbe5e --- /dev/null +++ b/patches/src/main/resources/change-header/drawable/revanced_header_rounded_light.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + From dfdbbfa0478b22da83f9c57f40b23612d1ff4fca Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 27 Oct 2025 17:14:52 +0000 Subject: [PATCH 09/18] chore: Release v5.45.0-dev.3 [skip ci] # [5.45.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.2...v5.45.0-dev.3) (2025-10-27) ### Features * **YouTube - Change Header:** Use SVG for header logo ([#6178](https://github.com/ReVanced/revanced-patches/issues/6178)) ([e9f45ce](https://github.com/ReVanced/revanced-patches/commit/e9f45ce92695d5857473ff71c14b190bded28a73)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8788c5aa..c638ea10a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.45.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.2...v5.45.0-dev.3) (2025-10-27) + + +### Features + +* **YouTube - Change Header:** Use SVG for header logo ([#6178](https://github.com/ReVanced/revanced-patches/issues/6178)) ([e9f45ce](https://github.com/ReVanced/revanced-patches/commit/e9f45ce92695d5857473ff71c14b190bded28a73)) + # [5.45.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.1...v5.45.0-dev.2) (2025-10-26) diff --git a/gradle.properties b/gradle.properties index 16f71b818..55e310f9b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M org.gradle.parallel = true android.useAndroidX = true kotlin.code.style = official -version = 5.45.0-dev.2 +version = 5.45.0-dev.3 From 38d9299dfe53aacd0338a507ade2f360f0d2a3f1 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Thu, 30 Oct 2025 09:26:18 +0100 Subject: [PATCH 10/18] chore: Add branding license text file (#6179) --- .../layout/branding/AddBrandLicensePatch.kt | 25 +++++++++++++++++++ .../branding/BaseCustomBrandingPatch.kt | 1 + .../shared/misc/settings/SettingsPatch.kt | 7 +++++- .../tiktok/misc/settings/SettingsPatch.kt | 3 ++- .../branding/header/ChangeHeaderPatch.kt | 6 ++++- .../branding-license/LICENSE_REVANCED.TXT | 5 ++++ 6 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/AddBrandLicensePatch.kt create mode 100644 patches/src/main/resources/branding-license/LICENSE_REVANCED.TXT diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/AddBrandLicensePatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/AddBrandLicensePatch.kt new file mode 100644 index 000000000..629a53e2e --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/AddBrandLicensePatch.kt @@ -0,0 +1,25 @@ +package app.revanced.patches.shared.layout.branding + +import app.revanced.patcher.patch.rawResourcePatch +import app.revanced.util.inputStreamFromBundledResource +import java.nio.file.Files + +/** + * Copies a branding license text file to the target apk. + * + * This patch must be a dependency for all patches that add ReVanced branding to the target app. + */ +internal val addBrandLicensePatch = rawResourcePatch { + execute { + val brandingLicenseFileName = "LICENSE_REVANCED.TXT" + + val inputFileStream = inputStreamFromBundledResource( + "branding-license", + brandingLicenseFileName + )!! + + val targetFile = get(brandingLicenseFileName, false).toPath() + + Files.copy(inputFileStream, targetFile) + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/BaseCustomBrandingPatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/BaseCustomBrandingPatch.kt index d3e718085..a2b88d7f1 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/BaseCustomBrandingPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/BaseCustomBrandingPatch.kt @@ -123,6 +123,7 @@ internal fun baseCustomBrandingPatch( dependsOn( addResourcesPatch, resourceMappingPatch, + addBrandLicensePatch, bytecodePatch { execute { mainActivityOnCreateFingerprint.method.addInstruction( diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/misc/settings/SettingsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/misc/settings/SettingsPatch.kt index 9d13d1e55..c721044cc 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/misc/settings/SettingsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/misc/settings/SettingsPatch.kt @@ -6,6 +6,7 @@ import app.revanced.patcher.patch.resourcePatch import app.revanced.patches.all.misc.resources.addResource import app.revanced.patches.all.misc.resources.addResources import app.revanced.patches.all.misc.resources.addResourcesPatch +import app.revanced.patches.shared.layout.branding.addBrandLicensePatch import app.revanced.patches.shared.misc.settings.preference.BasePreference import app.revanced.patches.shared.misc.settings.preference.IntentPreference import app.revanced.patches.shared.misc.settings.preference.PreferenceCategory @@ -61,7 +62,11 @@ fun settingsPatch ( rootPreferences: List>? = null, preferences: Set, ) = resourcePatch { - dependsOn(addResourcesPatch, settingsColorPatch) + dependsOn( + addResourcesPatch, + settingsColorPatch, + addBrandLicensePatch + ) execute { copyResources( diff --git a/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt index 3b4840a83..bc6cc2bff 100644 --- a/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt @@ -5,6 +5,7 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWith import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.util.smali.ExternalLabel +import app.revanced.patches.shared.layout.branding.addBrandLicensePatch import app.revanced.patches.tiktok.misc.extension.sharedExtensionPatch import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction22c @@ -18,7 +19,7 @@ val settingsPatch = bytecodePatch( name = "Settings", description = "Adds ReVanced settings to TikTok.", ) { - dependsOn(sharedExtensionPatch) + dependsOn(sharedExtensionPatch, addBrandLicensePatch) compatibleWith( "com.ss.android.ugc.trill"("36.5.4"), diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt index 1a5e131ba..a7b33cd48 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/ChangeHeaderPatch.kt @@ -9,6 +9,7 @@ import app.revanced.patcher.patch.stringOption import app.revanced.patcher.util.Document import app.revanced.patches.all.misc.resources.addResources import app.revanced.patches.all.misc.resources.addResourcesPatch +import app.revanced.patches.shared.layout.branding.addBrandLicensePatch import app.revanced.patches.shared.misc.mapping.get import app.revanced.patches.shared.misc.mapping.resourceMappingPatch import app.revanced.patches.shared.misc.mapping.resourceMappings @@ -54,7 +55,10 @@ private val customHeaderResourceFileNames = variants.map { variant -> private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/ChangeHeaderPatch;" private val changeHeaderBytecodePatch = bytecodePatch { - dependsOn(resourceMappingPatch) + dependsOn( + resourceMappingPatch, + addBrandLicensePatch + ) execute { // Verify images exist. Resources are not used during patching but extension code does. diff --git a/patches/src/main/resources/branding-license/LICENSE_REVANCED.TXT b/patches/src/main/resources/branding-license/LICENSE_REVANCED.TXT new file mode 100644 index 000000000..c32047dba --- /dev/null +++ b/patches/src/main/resources/branding-license/LICENSE_REVANCED.TXT @@ -0,0 +1,5 @@ +The ReVanced branding found in this software is copyrighted and not covered under the GPL. + +To use or distribute ReVanced branding, you must obtain permission by contacting branding@revanced.app + +For more information see https://github.com/ReVanced/revanced-branding From a0c56049510ce040e1ccd49257864672c343344d Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Thu, 30 Oct 2025 09:27:27 +0100 Subject: [PATCH 11/18] fix(YouTube - Change header): Do not mirror header graphic with RTL languages --- .../drawable/revanced_header_minimal_dark.xml | 1 + .../revanced_header_minimal_light.xml | 1 + .../drawable/revanced_header_rounded_dark.xml | 69 ++++++++++--------- .../revanced_header_rounded_light.xml | 69 ++++++++++--------- 4 files changed, 72 insertions(+), 68 deletions(-) diff --git a/patches/src/main/resources/change-header/drawable/revanced_header_minimal_dark.xml b/patches/src/main/resources/change-header/drawable/revanced_header_minimal_dark.xml index 9f337b7c1..5af74bac1 100644 --- a/patches/src/main/resources/change-header/drawable/revanced_header_minimal_dark.xml +++ b/patches/src/main/resources/change-header/drawable/revanced_header_minimal_dark.xml @@ -3,6 +3,7 @@ xmlns:aapt="http://schemas.android.com/aapt" android:width="129dp" android:height="48dp" + android:autoMirrored="false" android:viewportWidth="129" android:viewportHeight="48"> diff --git a/patches/src/main/resources/change-header/drawable/revanced_header_minimal_light.xml b/patches/src/main/resources/change-header/drawable/revanced_header_minimal_light.xml index a40169f45..d36de64b2 100644 --- a/patches/src/main/resources/change-header/drawable/revanced_header_minimal_light.xml +++ b/patches/src/main/resources/change-header/drawable/revanced_header_minimal_light.xml @@ -3,6 +3,7 @@ xmlns:aapt="http://schemas.android.com/aapt" android:width="129dp" android:height="48dp" + android:autoMirrored="false" android:viewportWidth="129" android:viewportHeight="48"> diff --git a/patches/src/main/resources/change-header/drawable/revanced_header_rounded_dark.xml b/patches/src/main/resources/change-header/drawable/revanced_header_rounded_dark.xml index 73de0de42..90c589e63 100644 --- a/patches/src/main/resources/change-header/drawable/revanced_header_rounded_dark.xml +++ b/patches/src/main/resources/change-header/drawable/revanced_header_rounded_dark.xml @@ -3,54 +3,55 @@ xmlns:aapt="http://schemas.android.com/aapt" android:width="129dp" android:height="48dp" + android:autoMirrored="false" android:viewportWidth="129" android:viewportHeight="48"> - - - - - - - - - - + + + + + + + + + + + + - + + android:color="#F04E98" + android:offset="0" /> + android:color="#5F65D4" + android:offset="0.5" /> + android:color="#4E98F0" + android:offset="1" /> diff --git a/patches/src/main/resources/change-header/drawable/revanced_header_rounded_light.xml b/patches/src/main/resources/change-header/drawable/revanced_header_rounded_light.xml index a6e1cbe5e..2523e2f6a 100644 --- a/patches/src/main/resources/change-header/drawable/revanced_header_rounded_light.xml +++ b/patches/src/main/resources/change-header/drawable/revanced_header_rounded_light.xml @@ -3,54 +3,55 @@ xmlns:aapt="http://schemas.android.com/aapt" android:width="129dp" android:height="48dp" + android:autoMirrored="false" android:viewportWidth="129" android:viewportHeight="48"> - - - - - - - - - - + + + + + + + + + + + + - + + android:color="#F04E98" + android:offset="0" /> + android:color="#5F65D4" + android:offset="0.5" /> + android:color="#4E98F0" + android:offset="1" /> From 12e7c0943a047d8f59bbc0e637ddf30cdfffda73 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 30 Oct 2025 08:32:28 +0000 Subject: [PATCH 12/18] chore: Release v5.45.0-dev.4 [skip ci] # [5.45.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.3...v5.45.0-dev.4) (2025-10-30) ### Bug Fixes * **YouTube - Change header:** Do not mirror header graphic with RTL languages ([a0c5604](https://github.com/ReVanced/revanced-patches/commit/a0c56049510ce040e1ccd49257864672c343344d)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c638ea10a..4bcf9302f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.45.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.3...v5.45.0-dev.4) (2025-10-30) + + +### Bug Fixes + +* **YouTube - Change header:** Do not mirror header graphic with RTL languages ([a0c5604](https://github.com/ReVanced/revanced-patches/commit/a0c56049510ce040e1ccd49257864672c343344d)) + # [5.45.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.2...v5.45.0-dev.3) (2025-10-27) diff --git a/gradle.properties b/gradle.properties index 55e310f9b..0d294bd02 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M org.gradle.parallel = true android.useAndroidX = true kotlin.code.style = official -version = 5.45.0-dev.3 +version = 5.45.0-dev.4 From 292fae440c6d5694c5e84407becec2d91f1fd156 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sat, 1 Nov 2025 08:31:17 +0100 Subject: [PATCH 13/18] fix(YouTube - Spoof video streams): Remove spoof stream audio selector that no longer works --- .../shared/settings/BaseSettings.java | 2 - .../shared/spoof/SpoofVideoStreamsPatch.java | 11 +--- .../shared/spoof/requests/PlayerRoutes.java | 5 +- .../SpoofAudioSelectorListPreference.java | 63 ------------------- .../misc/spoof/SpoofVideoStreamsPatch.kt | 7 --- .../resources/addresources/values/strings.xml | 6 +- 6 files changed, 3 insertions(+), 91 deletions(-) delete mode 100644 extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofAudioSelectorListPreference.java diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/BaseSettings.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/BaseSettings.java index 3bc16e313..c1bc849c1 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/BaseSettings.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/BaseSettings.java @@ -4,7 +4,6 @@ import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; import static app.revanced.extension.shared.patches.CustomBrandingPatch.BrandingTheme; import static app.revanced.extension.shared.settings.Setting.parent; -import static app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.AudioStreamLanguageOverrideAvailability; /** * Settings shared across multiple apps. @@ -34,7 +33,6 @@ public class BaseSettings { // public static final BooleanSetting SPOOF_VIDEO_STREAMS = new BooleanSetting("revanced_spoof_video_streams", TRUE, true, "revanced_spoof_video_streams_user_dialog_message"); - public static final EnumSetting SPOOF_VIDEO_STREAMS_LANGUAGE = new EnumSetting<>("revanced_spoof_video_streams_language", AppLanguage.DEFAULT, new AudioStreamLanguageOverrideAvailability()); public static final BooleanSetting SPOOF_STREAMING_DATA_STATS_FOR_NERDS = new BooleanSetting("revanced_spoof_streaming_data_stats_for_nerds", TRUE, parent(SPOOF_VIDEO_STREAMS)); public static final BooleanSetting SANITIZE_SHARED_LINKS = new BooleanSetting("revanced_sanitize_sharing_links", TRUE); diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/SpoofVideoStreamsPatch.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/SpoofVideoStreamsPatch.java index 53664881b..77ef1a663 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/SpoofVideoStreamsPatch.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/SpoofVideoStreamsPatch.java @@ -14,19 +14,11 @@ import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.Utils; import app.revanced.extension.shared.settings.AppLanguage; import app.revanced.extension.shared.settings.BaseSettings; -import app.revanced.extension.shared.settings.Setting; import app.revanced.extension.shared.spoof.requests.StreamingDataRequest; @SuppressWarnings("unused") public class SpoofVideoStreamsPatch { - public static final class AudioStreamLanguageOverrideAvailability implements Setting.Availability { - @Override - public boolean isAvailable() { - return BaseSettings.SPOOF_VIDEO_STREAMS.get() && !preferredClient.useAuth; - } - } - /** * Domain used for internet connectivity verification. * It has an empty response body and is only used to check for a 204 response code. @@ -62,8 +54,7 @@ public class SpoofVideoStreamsPatch { } /** - * @param language Language override for non-authenticated requests. If this is null then - * {@link BaseSettings#SPOOF_VIDEO_STREAMS_LANGUAGE} is used. + * @param language Language override for non-authenticated requests. */ public static void setLanguageOverride(@Nullable AppLanguage language) { languageOverride = language; diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/requests/PlayerRoutes.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/requests/PlayerRoutes.java index cfc811d75..31e3f0303 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/requests/PlayerRoutes.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/requests/PlayerRoutes.java @@ -1,7 +1,5 @@ package app.revanced.extension.shared.spoof.requests; -import static app.revanced.extension.shared.spoof.ClientType.ANDROID_VR_1_43_32; - import org.json.JSONException; import org.json.JSONObject; @@ -13,7 +11,6 @@ import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.requests.Requester; import app.revanced.extension.shared.requests.Route; import app.revanced.extension.shared.settings.AppLanguage; -import app.revanced.extension.shared.settings.BaseSettings; import app.revanced.extension.shared.spoof.ClientType; import app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch; @@ -44,7 +41,7 @@ final class PlayerRoutes { AppLanguage language = SpoofVideoStreamsPatch.getLanguageOverride(); if (language == null) { // Force original audio has not overrode the language. - language = BaseSettings.SPOOF_VIDEO_STREAMS_LANGUAGE.get(); + language = AppLanguage.DEFAULT; } //noinspection ExtractMethodRecommender Locale streamLocale = language.getLocale(); diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofAudioSelectorListPreference.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofAudioSelectorListPreference.java deleted file mode 100644 index 00c3f2007..000000000 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofAudioSelectorListPreference.java +++ /dev/null @@ -1,63 +0,0 @@ -package app.revanced.extension.youtube.settings.preference; - -import static app.revanced.extension.shared.StringRef.str; - -import android.content.Context; -import android.util.AttributeSet; - -import app.revanced.extension.shared.settings.preference.SortedListPreference; -import app.revanced.extension.shared.spoof.ClientType; -import app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch; -import app.revanced.extension.youtube.settings.Settings; - -@SuppressWarnings({"deprecation", "unused"}) -public class SpoofAudioSelectorListPreference extends SortedListPreference { - - private final boolean available; - - { - final boolean isAndroidStudio = Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() == ClientType.ANDROID_CREATOR; - - if (isAndroidStudio || SpoofVideoStreamsPatch.getLanguageOverride() != null) { - available = false; - super.setEnabled(false); - super.setSummary(str(isAndroidStudio - ? "revanced_spoof_video_streams_language_android_studio" - : "revanced_spoof_video_streams_language_not_available")); - } else { - available = true; - } - } - - public SpoofAudioSelectorListPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - } - public SpoofAudioSelectorListPreference(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - public SpoofAudioSelectorListPreference(Context context, AttributeSet attrs) { - super(context, attrs); - } - public SpoofAudioSelectorListPreference(Context context) { - super(context); - } - - @Override - public void setEnabled(boolean enabled) { - if (!available) { - return; - } - - super.setEnabled(enabled); - } - - @Override - public void setSummary(CharSequence summary) { - if (!available) { - return; - } - - super.setSummary(summary); - } -} - diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/spoof/SpoofVideoStreamsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/spoof/SpoofVideoStreamsPatch.kt index 2192f8016..28cf55bd4 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/spoof/SpoofVideoStreamsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/spoof/SpoofVideoStreamsPatch.kt @@ -63,13 +63,6 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch( tag = "app.revanced.extension.youtube.settings.preference.SpoofStreamingDataSideEffectsPreference" ), SwitchPreference("revanced_spoof_video_streams_av1"), - ListPreference( - key = "revanced_spoof_video_streams_language", - // Language strings are declared in Setting patch. - entriesKey = "revanced_language_entries", - entryValuesKey = "revanced_language_entry_values", - tag = "app.revanced.extension.youtube.settings.preference.SpoofAudioSelectorListPreference" - ), SwitchPreference("revanced_spoof_streaming_data_stats_for_nerds"), ) ) diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index 4b7a00125..d644d34a2 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -1,4 +1,4 @@ - + - To select a specific audio language, turn off \'Force original audio language\' - Stream language selection is not available with Android Studio From 3e4990afff4c86b93970b153db713ad0f813124d Mon Sep 17 00:00:00 2001 From: hxreborn <32096750+hxreborn@users.noreply.github.com> Date: Sat, 1 Nov 2025 08:32:26 +0100 Subject: [PATCH 14/18] fix(TikTok - Downloads): Fix download path setting (#6191) --- .../interaction/downloads/DownloadsPatch.kt | 83 +++++++++---------- 1 file changed, 37 insertions(+), 46 deletions(-) diff --git a/patches/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/DownloadsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/DownloadsPatch.kt index b80ceaed0..e6894b521 100644 --- a/patches/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/DownloadsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/DownloadsPatch.kt @@ -3,14 +3,20 @@ package app.revanced.patches.tiktok.interaction.downloads import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels -import app.revanced.patcher.extensions.InstructionExtensions.replaceInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.extensions.InstructionExtensions.removeInstructions import app.revanced.patcher.patch.bytecodePatch import app.revanced.patches.tiktok.misc.extension.sharedExtensionPatch import app.revanced.patches.tiktok.misc.settings.settingsPatch import app.revanced.patches.tiktok.misc.settings.settingsStatusLoadFingerprint +import app.revanced.util.findInstructionIndicesReversedOrThrow import app.revanced.util.getReference -import app.revanced.util.indexOfFirstInstructionOrThrow -import com.android.tools.smali.dexlib2.iface.reference.MethodReference +import app.revanced.util.returnEarly +import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction +import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction +import com.android.tools.smali.dexlib2.iface.reference.FieldReference + +private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/tiktok/download/DownloadsPatch;" @Suppress("unused") val downloadsPatch = bytecodePatch( @@ -28,60 +34,45 @@ val downloadsPatch = bytecodePatch( ) execute { - aclCommonShareFingerprint.method.replaceInstructions( - 0, - """ - const/4 v0, 0x0 - return v0 - """, - ) - - aclCommonShare2Fingerprint.method.replaceInstructions( - 0, - """ - const/4 v0, 0x2 - return v0 - """, - ) + aclCommonShareFingerprint.method.returnEarly(0) + aclCommonShare2Fingerprint.method.returnEarly(2) // Download videos without watermark. aclCommonShare3Fingerprint.method.addInstructionsWithLabels( 0, """ - invoke-static {}, Lapp/revanced/extension/tiktok/download/DownloadsPatch;->shouldRemoveWatermark()Z - move-result v0 - if-eqz v0, :noremovewatermark - const/4 v0, 0x1 - return v0 - :noremovewatermark - nop - """, + invoke-static {}, $EXTENSION_CLASS_DESCRIPTOR->shouldRemoveWatermark()Z + move-result v0 + if-eqz v0, :noremovewatermark + const/4 v0, 0x1 + return v0 + :noremovewatermark + nop + """, ) // Change the download path patch. downloadUriFingerprint.method.apply { - val firstIndex = indexOfFirstInstructionOrThrow { - getReference()?.name == "" - } - val secondIndex = indexOfFirstInstructionOrThrow { - getReference()?.returnType?.contains("Uri") == true - } + findInstructionIndicesReversedOrThrow { + getReference().let { + it?.definingClass == "Landroid/os/Environment;" && it.name.startsWith("DIRECTORY_") + } + }.forEach { fieldIndex -> + val pathRegister = getInstruction(fieldIndex).registerA + val builderRegister = getInstruction(fieldIndex + 1).registerC - addInstructions( - secondIndex, - """ - invoke-static {}, Lapp/revanced/extension/tiktok/download/DownloadsPatch;->getDownloadPath()Ljava/lang/String; - move-result-object v0 - """, - ) + // Remove 'field load → append → "/Camera/" → append' block. + removeInstructions(fieldIndex, 4) - addInstructions( - firstIndex, - """ - invoke-static {}, Lapp/revanced/extension/tiktok/download/DownloadsPatch;->getDownloadPath()Ljava/lang/String; - move-result-object v0 - """, - ) + addInstructions( + fieldIndex, + """ + invoke-static {}, $EXTENSION_CLASS_DESCRIPTOR->getDownloadPath()Ljava/lang/String; + move-result-object v$pathRegister + invoke-virtual { v$builderRegister, v$pathRegister }, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + """, + ) + } } settingsStatusLoadFingerprint.method.addInstruction( From c17cf98c7eb9708d210af466cb4f6f630a4edd21 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 1 Nov 2025 07:36:49 +0000 Subject: [PATCH 15/18] chore: Release v5.45.0-dev.5 [skip ci] # [5.45.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.4...v5.45.0-dev.5) (2025-11-01) ### Bug Fixes * **TikTok - Downloads:** Fix download path setting ([#6191](https://github.com/ReVanced/revanced-patches/issues/6191)) ([3e4990a](https://github.com/ReVanced/revanced-patches/commit/3e4990afff4c86b93970b153db713ad0f813124d)) * **YouTube - Spoof video streams:** Remove spoof stream audio selector that no longer works ([292fae4](https://github.com/ReVanced/revanced-patches/commit/292fae440c6d5694c5e84407becec2d91f1fd156)) --- CHANGELOG.md | 8 ++++++++ gradle.properties | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bcf9302f..552afbcb4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# [5.45.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.4...v5.45.0-dev.5) (2025-11-01) + + +### Bug Fixes + +* **TikTok - Downloads:** Fix download path setting ([#6191](https://github.com/ReVanced/revanced-patches/issues/6191)) ([3e4990a](https://github.com/ReVanced/revanced-patches/commit/3e4990afff4c86b93970b153db713ad0f813124d)) +* **YouTube - Spoof video streams:** Remove spoof stream audio selector that no longer works ([292fae4](https://github.com/ReVanced/revanced-patches/commit/292fae440c6d5694c5e84407becec2d91f1fd156)) + # [5.45.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.3...v5.45.0-dev.4) (2025-10-30) diff --git a/gradle.properties b/gradle.properties index 0d294bd02..4706cb5b5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M org.gradle.parallel = true android.useAndroidX = true kotlin.code.style = official -version = 5.45.0-dev.4 +version = 5.45.0-dev.5 From 2cf8f0e636d93d56c16127829521c942fb9b3578 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 1 Nov 2025 09:17:01 +0100 Subject: [PATCH 16/18] chore: Sync translations (#6197) --- .../addresources/values-af-rZA/strings.xml | 3 +- .../addresources/values-am-rET/strings.xml | 3 +- .../addresources/values-ar-rSA/strings.xml | 6 +-- .../addresources/values-as-rIN/strings.xml | 3 +- .../addresources/values-az-rAZ/strings.xml | 6 +-- .../addresources/values-be-rBY/strings.xml | 6 +-- .../addresources/values-bg-rBG/strings.xml | 6 +-- .../addresources/values-bn-rBD/strings.xml | 6 +-- .../addresources/values-bs-rBA/strings.xml | 3 +- .../addresources/values-ca-rES/strings.xml | 3 +- .../addresources/values-cs-rCZ/strings.xml | 6 +-- .../addresources/values-da-rDK/strings.xml | 6 +-- .../addresources/values-de-rDE/strings.xml | 6 +-- .../addresources/values-el-rGR/strings.xml | 6 +-- .../addresources/values-es-rES/strings.xml | 6 +-- .../addresources/values-et-rEE/strings.xml | 6 +-- .../addresources/values-eu-rES/strings.xml | 3 +- .../addresources/values-fa-rIR/strings.xml | 3 +- .../addresources/values-fi-rFI/strings.xml | 6 +-- .../addresources/values-fil-rPH/strings.xml | 6 +-- .../addresources/values-fr-rFR/strings.xml | 6 +-- .../addresources/values-ga-rIE/strings.xml | 6 +-- .../addresources/values-gl-rES/strings.xml | 3 +- .../addresources/values-gu-rIN/strings.xml | 3 +- .../addresources/values-hi-rIN/strings.xml | 3 +- .../addresources/values-hr-rHR/strings.xml | 3 +- .../addresources/values-hu-rHU/strings.xml | 6 +-- .../addresources/values-hy-rAM/strings.xml | 6 +-- .../addresources/values-in-rID/strings.xml | 6 +-- .../addresources/values-is-rIS/strings.xml | 3 +- .../addresources/values-it-rIT/strings.xml | 6 +-- .../addresources/values-iw-rIL/strings.xml | 6 +-- .../addresources/values-ja-rJP/strings.xml | 46 ++++++++-------- .../addresources/values-ka-rGE/strings.xml | 3 +- .../addresources/values-kk-rKZ/strings.xml | 3 +- .../addresources/values-km-rKH/strings.xml | 3 +- .../addresources/values-kn-rIN/strings.xml | 3 +- .../addresources/values-ko-rKR/strings.xml | 10 ++-- .../addresources/values-ky-rKG/strings.xml | 3 +- .../addresources/values-lo-rLA/strings.xml | 3 +- .../addresources/values-lt-rLT/strings.xml | 6 +-- .../addresources/values-lv-rLV/strings.xml | 6 +-- .../addresources/values-mk-rMK/strings.xml | 3 +- .../addresources/values-ml-rIN/strings.xml | 3 +- .../addresources/values-mn-rMN/strings.xml | 3 +- .../addresources/values-mr-rIN/strings.xml | 3 +- .../addresources/values-ms-rMY/strings.xml | 3 +- .../addresources/values-my-rMM/strings.xml | 3 +- .../addresources/values-nb-rNO/strings.xml | 3 +- .../addresources/values-ne-rIN/strings.xml | 3 +- .../addresources/values-nl-rNL/strings.xml | 6 +-- .../addresources/values-or-rIN/strings.xml | 3 +- .../addresources/values-pa-rIN/strings.xml | 3 +- .../addresources/values-pl-rPL/strings.xml | 6 +-- .../addresources/values-pt-rBR/strings.xml | 6 +-- .../addresources/values-pt-rPT/strings.xml | 6 +-- .../addresources/values-ro-rRO/strings.xml | 6 +-- .../addresources/values-ru-rRU/strings.xml | 54 +++++++++---------- .../addresources/values-si-rLK/strings.xml | 3 +- .../addresources/values-sk-rSK/strings.xml | 6 +-- .../addresources/values-sl-rSI/strings.xml | 6 +-- .../addresources/values-sq-rAL/strings.xml | 6 +-- .../addresources/values-sr-rCS/strings.xml | 6 +-- .../addresources/values-sr-rSP/strings.xml | 6 +-- .../addresources/values-sv-rSE/strings.xml | 12 ++--- .../addresources/values-sw-rKE/strings.xml | 3 +- .../addresources/values-ta-rIN/strings.xml | 3 +- .../addresources/values-te-rIN/strings.xml | 3 +- .../addresources/values-th-rTH/strings.xml | 6 +-- .../addresources/values-tr-rTR/strings.xml | 6 +-- .../addresources/values-uk-rUA/strings.xml | 6 +-- .../addresources/values-ur-rIN/strings.xml | 3 +- .../addresources/values-uz-rUZ/strings.xml | 3 +- .../addresources/values-vi-rVN/strings.xml | 6 +-- .../addresources/values-zh-rCN/strings.xml | 6 +-- .../addresources/values-zh-rTW/strings.xml | 6 +-- .../addresources/values-zu-rZA/strings.xml | 3 +- 77 files changed, 126 insertions(+), 329 deletions(-) diff --git a/patches/src/main/resources/addresources/values-af-rZA/strings.xml b/patches/src/main/resources/addresources/values-af-rZA/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-af-rZA/strings.xml +++ b/patches/src/main/resources/addresources/values-af-rZA/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-am-rET/strings.xml b/patches/src/main/resources/addresources/values-am-rET/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-am-rET/strings.xml +++ b/patches/src/main/resources/addresources/values-am-rET/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-ar-rSA/strings.xml b/patches/src/main/resources/addresources/values-ar-rSA/strings.xml index 0c50680e1..a56d4fcfa 100644 --- a/patches/src/main/resources/addresources/values-ar-rSA/strings.xml +++ b/patches/src/main/resources/addresources/values-ar-rSA/strings.xml @@ -1,5 +1,5 @@ - + - لتحديد لغة صوتية معينة، قم بإيقاف تشغيل \'فرض لغة الصوت الأصلية\' - اختيار لغة البث غير متاح مع Android Studio diff --git a/patches/src/main/resources/addresources/values-as-rIN/strings.xml b/patches/src/main/resources/addresources/values-as-rIN/strings.xml index 4f1e6a7a1..efed7ec2d 100644 --- a/patches/src/main/resources/addresources/values-as-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-as-rIN/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-az-rAZ/strings.xml b/patches/src/main/resources/addresources/values-az-rAZ/strings.xml index adf2063f5..5b8058b40 100644 --- a/patches/src/main/resources/addresources/values-az-rAZ/strings.xml +++ b/patches/src/main/resources/addresources/values-az-rAZ/strings.xml @@ -1,5 +1,5 @@ - + - Xüsusi səs dilini seçmək üçün \"Orijinal səs dilini zorlanı\" qapat - Yayım dili seçimi Android Studio ilə əlçatmazdır diff --git a/patches/src/main/resources/addresources/values-be-rBY/strings.xml b/patches/src/main/resources/addresources/values-be-rBY/strings.xml index 39e9966c7..ccbe93cb6 100644 --- a/patches/src/main/resources/addresources/values-be-rBY/strings.xml +++ b/patches/src/main/resources/addresources/values-be-rBY/strings.xml @@ -1,5 +1,5 @@ - + - Каб выбраць пэўную мову аўдыё, адключыце \'Прымусовая арыгінальная мова аўдыё\' - Выбар мовы трансляцыі недаступны ў Android Studio diff --git a/patches/src/main/resources/addresources/values-bg-rBG/strings.xml b/patches/src/main/resources/addresources/values-bg-rBG/strings.xml index 49826e283..6b5f61c3b 100644 --- a/patches/src/main/resources/addresources/values-bg-rBG/strings.xml +++ b/patches/src/main/resources/addresources/values-bg-rBG/strings.xml @@ -1,5 +1,5 @@ - + - За да изберете конкретен аудио език, изключете \'Принудително оригинален аудио език\' - Изборът на език на потока не е наличен с Android Studio diff --git a/patches/src/main/resources/addresources/values-bn-rBD/strings.xml b/patches/src/main/resources/addresources/values-bn-rBD/strings.xml index 6a4d757a6..0f017c3ce 100644 --- a/patches/src/main/resources/addresources/values-bn-rBD/strings.xml +++ b/patches/src/main/resources/addresources/values-bn-rBD/strings.xml @@ -1,5 +1,5 @@ - + - একটি নির্দিষ্ট অডিও ভাষা নির্বাচন করতে, \'মূল অডিও ভাষা জোর করে চালু রাখুন\' বন্ধ করুন - অ্যান্ড্রয়েড স্টুডিও সহ স্ট্রিম ভাষার নির্বাচন উপলব্ধ নেই diff --git a/patches/src/main/resources/addresources/values-bs-rBA/strings.xml b/patches/src/main/resources/addresources/values-bs-rBA/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-bs-rBA/strings.xml +++ b/patches/src/main/resources/addresources/values-bs-rBA/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-ca-rES/strings.xml b/patches/src/main/resources/addresources/values-ca-rES/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-ca-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-ca-rES/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml b/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml index dfd9497ea..c4fc334a8 100644 --- a/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml +++ b/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml @@ -1,5 +1,5 @@ - + - Chcete-li vybrat konkrétní zvukový jazyk, vypněte „Vynutit původní zvukový jazyk“ - Volba jazyka streamu není k dispozici s Android Studiem diff --git a/patches/src/main/resources/addresources/values-da-rDK/strings.xml b/patches/src/main/resources/addresources/values-da-rDK/strings.xml index 2b2d63169..a6fa45cb8 100644 --- a/patches/src/main/resources/addresources/values-da-rDK/strings.xml +++ b/patches/src/main/resources/addresources/values-da-rDK/strings.xml @@ -1,5 +1,5 @@ - + - For at vælge et specifikt lydsprog, slå \'Gennemtving originalt lydsprog\' fra - Valg af streaming-sprog er ikke tilgængeligt med Android Studio diff --git a/patches/src/main/resources/addresources/values-de-rDE/strings.xml b/patches/src/main/resources/addresources/values-de-rDE/strings.xml index 280ea35c3..9c0fe3cc3 100644 --- a/patches/src/main/resources/addresources/values-de-rDE/strings.xml +++ b/patches/src/main/resources/addresources/values-de-rDE/strings.xml @@ -1,5 +1,5 @@ - + - Um eine bestimmte Audiosprache auszuwählen, deaktivieren Sie „Original-Audiosprache erzwingen“ - Die Auswahl der Stream-Sprache ist mit Android Studio nicht verfügbar. diff --git a/patches/src/main/resources/addresources/values-el-rGR/strings.xml b/patches/src/main/resources/addresources/values-el-rGR/strings.xml index 952f94146..37ddafdf3 100644 --- a/patches/src/main/resources/addresources/values-el-rGR/strings.xml +++ b/patches/src/main/resources/addresources/values-el-rGR/strings.xml @@ -1,5 +1,5 @@ - + - Για να επιλέξετε μια συγκεκριμένη γλώσσα ήχου, απενεργοποιήστε το «Εξαναγκασμός αρχικής γλώσσας ήχου» - Η επιλογή γλώσσας ροής δεν είναι διαθέσιμη με το Android Studio diff --git a/patches/src/main/resources/addresources/values-es-rES/strings.xml b/patches/src/main/resources/addresources/values-es-rES/strings.xml index 535ae0622..4d47100b4 100644 --- a/patches/src/main/resources/addresources/values-es-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-es-rES/strings.xml @@ -1,5 +1,5 @@ - + - Para seleccionar un idioma de audio específico, desactiva \"Forzar idioma de audio original\" - La selección de idioma de transmisión no está disponible con Android Studio diff --git a/patches/src/main/resources/addresources/values-et-rEE/strings.xml b/patches/src/main/resources/addresources/values-et-rEE/strings.xml index 22185a399..e386c7fb7 100644 --- a/patches/src/main/resources/addresources/values-et-rEE/strings.xml +++ b/patches/src/main/resources/addresources/values-et-rEE/strings.xml @@ -1,5 +1,5 @@ - + - Konkreetse helikeele valimiseks lülita välja \"Sunni algne helikeel\" - Voogedastuse keelevalik ei ole Android Studioga saadaval diff --git a/patches/src/main/resources/addresources/values-eu-rES/strings.xml b/patches/src/main/resources/addresources/values-eu-rES/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-eu-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-eu-rES/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-fa-rIR/strings.xml b/patches/src/main/resources/addresources/values-fa-rIR/strings.xml index 0801f705b..8a9c424a7 100644 --- a/patches/src/main/resources/addresources/values-fa-rIR/strings.xml +++ b/patches/src/main/resources/addresources/values-fa-rIR/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-fi-rFI/strings.xml b/patches/src/main/resources/addresources/values-fi-rFI/strings.xml index 4662ae628..b0ac3fdbb 100644 --- a/patches/src/main/resources/addresources/values-fi-rFI/strings.xml +++ b/patches/src/main/resources/addresources/values-fi-rFI/strings.xml @@ -1,5 +1,5 @@ - + - Valitaksesi tietyn äänen kielen, poista \"Pakota alkuperäinen äänen kieli\" käytöstä - Striimin kielivalinta ei ole käytettävissä Android Studion kanssa diff --git a/patches/src/main/resources/addresources/values-fil-rPH/strings.xml b/patches/src/main/resources/addresources/values-fil-rPH/strings.xml index 4c4bef93e..9f8b3dd81 100644 --- a/patches/src/main/resources/addresources/values-fil-rPH/strings.xml +++ b/patches/src/main/resources/addresources/values-fil-rPH/strings.xml @@ -1,5 +1,5 @@ - + - Upang pumili ng isang partikular na wika ng audio, i-off ang \'Puwersahin ang orihinal na wika ng audio\' - Hindi available ang pagpili ng wika ng stream sa Android Studio diff --git a/patches/src/main/resources/addresources/values-fr-rFR/strings.xml b/patches/src/main/resources/addresources/values-fr-rFR/strings.xml index 5469dd10c..2cb49e62f 100644 --- a/patches/src/main/resources/addresources/values-fr-rFR/strings.xml +++ b/patches/src/main/resources/addresources/values-fr-rFR/strings.xml @@ -1,5 +1,5 @@ - + - Pour sélectionner une langue audio spécifique, désactivez \"Forcer la langue audio d\'origine\" - La sélection de la langue du flux n\'est pas disponible avec Android Studio diff --git a/patches/src/main/resources/addresources/values-ga-rIE/strings.xml b/patches/src/main/resources/addresources/values-ga-rIE/strings.xml index ff9a063ad..1ce439b48 100644 --- a/patches/src/main/resources/addresources/values-ga-rIE/strings.xml +++ b/patches/src/main/resources/addresources/values-ga-rIE/strings.xml @@ -1,5 +1,5 @@ - + - Chun teanga fuaime ar leith a roghnú, múch \'Fórsaigh teanga fuaime bhunaidh\' - Níl roghnú theanga an tsrutha ar fáil le Android Studio diff --git a/patches/src/main/resources/addresources/values-gl-rES/strings.xml b/patches/src/main/resources/addresources/values-gl-rES/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-gl-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-gl-rES/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-gu-rIN/strings.xml b/patches/src/main/resources/addresources/values-gu-rIN/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-gu-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-gu-rIN/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-hi-rIN/strings.xml b/patches/src/main/resources/addresources/values-hi-rIN/strings.xml index 7e56c695e..3b5672382 100644 --- a/patches/src/main/resources/addresources/values-hi-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-hi-rIN/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-hr-rHR/strings.xml b/patches/src/main/resources/addresources/values-hr-rHR/strings.xml index 5b8e7e12a..09bfdb4ae 100644 --- a/patches/src/main/resources/addresources/values-hr-rHR/strings.xml +++ b/patches/src/main/resources/addresources/values-hr-rHR/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-hu-rHU/strings.xml b/patches/src/main/resources/addresources/values-hu-rHU/strings.xml index 8be320b4c..0c7c86f34 100644 --- a/patches/src/main/resources/addresources/values-hu-rHU/strings.xml +++ b/patches/src/main/resources/addresources/values-hu-rHU/strings.xml @@ -1,5 +1,5 @@ - + - Egy adott hangsáv nyelv kiválasztásához kapcsold ki az \"Eredeti hangsáv nyelv kikényszerítése\" opciót - Az Android Studio-val nem érhető el a stream nyelvének kiválasztása diff --git a/patches/src/main/resources/addresources/values-hy-rAM/strings.xml b/patches/src/main/resources/addresources/values-hy-rAM/strings.xml index 5848a7adc..48e7e22e7 100644 --- a/patches/src/main/resources/addresources/values-hy-rAM/strings.xml +++ b/patches/src/main/resources/addresources/values-hy-rAM/strings.xml @@ -1,5 +1,5 @@ - + - Որոշակի ձայնային լեզու ընտրելու համար անջատեք \'Պարտադրել բնօրինակ ձայնային լեզուն\' - Հոսքի լեզվի ընտրությունը հասանելի չէ Android Studio-ի հետ diff --git a/patches/src/main/resources/addresources/values-in-rID/strings.xml b/patches/src/main/resources/addresources/values-in-rID/strings.xml index 4e0ee5ec0..1bc00ca0b 100644 --- a/patches/src/main/resources/addresources/values-in-rID/strings.xml +++ b/patches/src/main/resources/addresources/values-in-rID/strings.xml @@ -1,5 +1,5 @@ - + - Untuk memilih bahasa audio tertentu, matikan \'Paksa bahasa audio asli\' - Pilihan bahasa streaming tidak tersedia dengan Android Studio diff --git a/patches/src/main/resources/addresources/values-is-rIS/strings.xml b/patches/src/main/resources/addresources/values-is-rIS/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-is-rIS/strings.xml +++ b/patches/src/main/resources/addresources/values-is-rIS/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-it-rIT/strings.xml b/patches/src/main/resources/addresources/values-it-rIT/strings.xml index d94d160be..ee8bf8d7d 100644 --- a/patches/src/main/resources/addresources/values-it-rIT/strings.xml +++ b/patches/src/main/resources/addresources/values-it-rIT/strings.xml @@ -1,5 +1,5 @@ - + - Per selezionare una lingua audio specifica, disattiva \'Forza lingua audio originale\' - La selezione della lingua dello stream non è disponibile con Android Studio diff --git a/patches/src/main/resources/addresources/values-iw-rIL/strings.xml b/patches/src/main/resources/addresources/values-iw-rIL/strings.xml index c438e9573..3e91971a8 100644 --- a/patches/src/main/resources/addresources/values-iw-rIL/strings.xml +++ b/patches/src/main/resources/addresources/values-iw-rIL/strings.xml @@ -1,5 +1,5 @@ - + - כדי לבחור שפת שמע ספציפית, כבה את \'אכוף שפת שמע מקורית\' - בחירת שפת הזרם אינה זמינה עם אנדרואיד סטודיו diff --git a/patches/src/main/resources/addresources/values-ja-rJP/strings.xml b/patches/src/main/resources/addresources/values-ja-rJP/strings.xml index a354c8430..e4181b89e 100644 --- a/patches/src/main/resources/addresources/values-ja-rJP/strings.xml +++ b/patches/src/main/resources/addresources/values-ja-rJP/strings.xml @@ -1,5 +1,5 @@ - + %1$s ~ %2$s - セグメントのカテゴリーを選択してください - カテゴリーが設定で無効になっています。送信するには、このカテゴリーを有効にしてください。 - 新しいセグメント + セグメントのカテゴリを選択してください + カテゴリが「無効」に設定されています。送信するには、設定を変更してください。 + 新しいセグメント %s を新しいセグメント (SponsorBlock) の開始位置 / 終了位置に設定しますか? 開始位置 終了位置 @@ -1641,10 +1641,6 @@ AV1 での動画再生は、カクつくまたはコマ落ちが発生する場 統計情報にクライアントを表示 統計情報には現在のクライアントが表示されます 統計情報には現在のクライアントは表示されません - 音声ストリームの言語 - - 特定の音声言語を選択するには、「オリジナルの音声を強制的に使用」を無効にしてください - Android Studio では、ストリームの言語を選択できません diff --git a/patches/src/main/resources/addresources/values-ka-rGE/strings.xml b/patches/src/main/resources/addresources/values-ka-rGE/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-ka-rGE/strings.xml +++ b/patches/src/main/resources/addresources/values-ka-rGE/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml b/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml +++ b/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-km-rKH/strings.xml b/patches/src/main/resources/addresources/values-km-rKH/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-km-rKH/strings.xml +++ b/patches/src/main/resources/addresources/values-km-rKH/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-kn-rIN/strings.xml b/patches/src/main/resources/addresources/values-kn-rIN/strings.xml index a521cc779..5ab077fb1 100644 --- a/patches/src/main/resources/addresources/values-kn-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-kn-rIN/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-ko-rKR/strings.xml b/patches/src/main/resources/addresources/values-ko-rKR/strings.xml index 5817517b5..dbff33c9b 100644 --- a/patches/src/main/resources/addresources/values-ko-rKR/strings.xml +++ b/patches/src/main/resources/addresources/values-ko-rKR/strings.xml @@ -1,5 +1,5 @@ - + @@ -1646,10 +1646,6 @@ AV1이 사용된 동영상 재생이 끊기거나 프레임이 손실될 수 있 전문 통계에서 표시하기 동영상 스트림을 가져오는 데 사용되는 클라이언트가 전문 통계에서 표시됩니다 동영상 스트림을 가져오는 데 사용되는 클라이언트가 전문 통계에서 표시되지 않습니다 - 오디오 스트림 언어 - - 특정 오디오 언어를 선택하려면, \'원본 오디오 언어 강제로 활성화하기\'를 끄세요 - Android Studio에서는 스트림 언어를 선택할 수 없습니다 diff --git a/patches/src/main/resources/addresources/values-ky-rKG/strings.xml b/patches/src/main/resources/addresources/values-ky-rKG/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-ky-rKG/strings.xml +++ b/patches/src/main/resources/addresources/values-ky-rKG/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-lo-rLA/strings.xml b/patches/src/main/resources/addresources/values-lo-rLA/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-lo-rLA/strings.xml +++ b/patches/src/main/resources/addresources/values-lo-rLA/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-lt-rLT/strings.xml b/patches/src/main/resources/addresources/values-lt-rLT/strings.xml index 28c776da1..5ffd71a7e 100644 --- a/patches/src/main/resources/addresources/values-lt-rLT/strings.xml +++ b/patches/src/main/resources/addresources/values-lt-rLT/strings.xml @@ -1,5 +1,5 @@ - + - Norėdami pasirinkti konkrečią garso kalbą, išjunkite „Priverstinė originali garso kalba“. - Transliacijos kalbos pasirinkimas nepasiekiamas naudojant „Android Studio“ diff --git a/patches/src/main/resources/addresources/values-lv-rLV/strings.xml b/patches/src/main/resources/addresources/values-lv-rLV/strings.xml index 7ad9984aa..4a7659730 100644 --- a/patches/src/main/resources/addresources/values-lv-rLV/strings.xml +++ b/patches/src/main/resources/addresources/values-lv-rLV/strings.xml @@ -1,5 +1,5 @@ - + - Lai atlasītu konkrētu audio valodu, izslēdziet “Piespiest oriģinālo audio valodu” - Straumju valodas izvēle nav pieejama ar Android Studio diff --git a/patches/src/main/resources/addresources/values-mk-rMK/strings.xml b/patches/src/main/resources/addresources/values-mk-rMK/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-mk-rMK/strings.xml +++ b/patches/src/main/resources/addresources/values-mk-rMK/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-ml-rIN/strings.xml b/patches/src/main/resources/addresources/values-ml-rIN/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-ml-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ml-rIN/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-mn-rMN/strings.xml b/patches/src/main/resources/addresources/values-mn-rMN/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-mn-rMN/strings.xml +++ b/patches/src/main/resources/addresources/values-mn-rMN/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-mr-rIN/strings.xml b/patches/src/main/resources/addresources/values-mr-rIN/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-mr-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-mr-rIN/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-ms-rMY/strings.xml b/patches/src/main/resources/addresources/values-ms-rMY/strings.xml index 622dd054e..33f272c20 100644 --- a/patches/src/main/resources/addresources/values-ms-rMY/strings.xml +++ b/patches/src/main/resources/addresources/values-ms-rMY/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-my-rMM/strings.xml b/patches/src/main/resources/addresources/values-my-rMM/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-my-rMM/strings.xml +++ b/patches/src/main/resources/addresources/values-my-rMM/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-nb-rNO/strings.xml b/patches/src/main/resources/addresources/values-nb-rNO/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-nb-rNO/strings.xml +++ b/patches/src/main/resources/addresources/values-nb-rNO/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-ne-rIN/strings.xml b/patches/src/main/resources/addresources/values-ne-rIN/strings.xml index d1b6ab9cd..88ee8597b 100644 --- a/patches/src/main/resources/addresources/values-ne-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ne-rIN/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-nl-rNL/strings.xml b/patches/src/main/resources/addresources/values-nl-rNL/strings.xml index b4d451dc2..2a670f151 100644 --- a/patches/src/main/resources/addresources/values-nl-rNL/strings.xml +++ b/patches/src/main/resources/addresources/values-nl-rNL/strings.xml @@ -1,5 +1,5 @@ - + - Om een specifieke audiotaal te selecteren, schakel \"Oorspronkelijke audiotaal forceren\" uit - Streamtaalselectie is niet beschikbaar met Android Studio diff --git a/patches/src/main/resources/addresources/values-or-rIN/strings.xml b/patches/src/main/resources/addresources/values-or-rIN/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-or-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-or-rIN/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-pa-rIN/strings.xml b/patches/src/main/resources/addresources/values-pa-rIN/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-pa-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-pa-rIN/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-pl-rPL/strings.xml b/patches/src/main/resources/addresources/values-pl-rPL/strings.xml index 345a5f981..e40203383 100644 --- a/patches/src/main/resources/addresources/values-pl-rPL/strings.xml +++ b/patches/src/main/resources/addresources/values-pl-rPL/strings.xml @@ -1,5 +1,5 @@ - + - Aby wybrać konkretny język audio, wyłącz \"Wymuś oryginalny język audio\" - Wybór języka strumienia nie jest dostępny w przypadku Android Studio diff --git a/patches/src/main/resources/addresources/values-pt-rBR/strings.xml b/patches/src/main/resources/addresources/values-pt-rBR/strings.xml index 8c8ed0479..9863849e8 100644 --- a/patches/src/main/resources/addresources/values-pt-rBR/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rBR/strings.xml @@ -1,5 +1,5 @@ - + - Para selecionar um idioma de áudio específico, desative \"Forçar idioma de áudio original\" - A seleção de idioma do stream não está disponível com o Android Studio diff --git a/patches/src/main/resources/addresources/values-pt-rPT/strings.xml b/patches/src/main/resources/addresources/values-pt-rPT/strings.xml index faa9de5b0..fcec5b2d9 100644 --- a/patches/src/main/resources/addresources/values-pt-rPT/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rPT/strings.xml @@ -1,5 +1,5 @@ - + - Para selecionar um idioma de áudio específico, desative \'Forçar idioma de áudio original\' - A seleção do idioma do stream não está disponível com o Android Studio diff --git a/patches/src/main/resources/addresources/values-ro-rRO/strings.xml b/patches/src/main/resources/addresources/values-ro-rRO/strings.xml index 60c5f3436..e82a90a0f 100644 --- a/patches/src/main/resources/addresources/values-ro-rRO/strings.xml +++ b/patches/src/main/resources/addresources/values-ro-rRO/strings.xml @@ -1,5 +1,5 @@ - + - Pentru a selecta o limbă audio specifică, dezactivați „Forțează limba audio originală” - Selecția limbii fluxului nu este disponibilă cu Android Studio diff --git a/patches/src/main/resources/addresources/values-ru-rRU/strings.xml b/patches/src/main/resources/addresources/values-ru-rRU/strings.xml index 95bf138cc..7d3e8c966 100644 --- a/patches/src/main/resources/addresources/values-ru-rRU/strings.xml +++ b/patches/src/main/resources/addresources/values-ru-rRU/strings.xml @@ -1,5 +1,5 @@ - + - Скрыть кнопку \"Стать спонсором\" + Скрыть кнопку \"Подписаться\" Кнопка \"Подписаться\" скрыта Кнопка \"Подписаться\" показана Скрыть медицинские панели @@ -360,22 +360,22 @@ Second \"item\" text" Скрыть или показать компоненты страницы канала Скрыть секцию \"Для вас\" - Секция \"Для вас\" скрыта - Секция \"Для вас\" показана + Секция \"Для вас\" на странице канала скрыта + Секция \"Для вас\" на странице канала показана Скрыть предпросмотр ссылок - Предпросмотр ссылок скрыт - Предпросмотр ссылок показан + Предпросмотр ссылок на странице канала скрыт + Предпросмотр ссылок на странице канала показан Скрыть секцию участников - Секция участников скрыта - Секция участников показана + Секция участников на странице канала скрыта + Секция участников на странице канала показана Скрыть кнопку \"Посетить сообщество\" - Кнопка \"Посетить сообщество\" скрыта - Кнопка \"Перейти в сообщество\" показана + Кнопка \"Посетить сообщество\" на странице канала скрыта + Кнопка \"Посетить сообщество\" на странице канала показана - Скрыть кнопку \"Посетить магазин\" - Кнопка \"Перейти в магазин\" скрыта - Кнопка \"Перейти в магазин\" показана + Скрыть кнопку \"Перейти в магазин\" + Кнопка \"Перейти в магазин\" на странице канала скрыта + Кнопка \"Перейти в магазин\" на странице канала показана Комментарии Скрыть или показать компоненты раздела комментариев Скрыть секцию ИИ сводки чата @@ -469,11 +469,11 @@ Second \"item\" text" Скрыть секцию магазина автора - Секция магазина автора под видеоплеером скрыта - Секция магазина автора под видеоплеером показана + Секция магазина автора под плеером скрыта + Секция магазина автора под плеером показана Скрыть баннер магазина - Баннер магазина на конечном экране скрыт - Баннер магазина на конечном экране показан + Баннер магазина в конце просмотра скрыт + Баннер магазина в конце просмотра показан Скрыть полноэкранную рекламу "Полноэкранная реклама при запуске приложения скрыта @@ -793,8 +793,8 @@ Second \"item\" text" Пункт \"Смотреть в VR-режиме\" в выдвижном меню плеера скрыт Пункт \"Смотреть в VR-режиме\" в выдвижном меню плеера показан Скрыть меню качества видео - Меню качества видео скрыто - Меню качества видео показано + Меню качества видео в выдвижном меню плеера скрыто + Меню качества видео в выдвижном меню плеера показано Скрыть колонтитул меню качества видео Нижний колонтитул старого меню качества видео в выдвижном меню плеера скрыт Нижний колонтитул старого меню качества видео в выдвижном меню плеера показан @@ -838,7 +838,7 @@ Second \"item\" text" Анимированные счетчики просмотров, лайков и дизлайков включены - Скрыть полосу прогресса видеоплеера + Скрыть полосу прогресса плеера Полоса прогресса в плеере скрыта Полоса прогресса в плеере показана @@ -1086,13 +1086,13 @@ Second \"item\" text" Автоскрытие кнопки пропуска Кнопка пропуска автоматически скрывается через несколько секунд Кнопка пропуска показывается для всего сегмента - Длительность кнопки пропуска + Длительность показа кнопки пропуска Длительность показа кнопок пропуска и перехода к основному моменту до автоматического скрытия Показывать уведомление отмены пропуска Всплывающее уведомление показано при автоматическом пропуске сегмента. Нажмите на всплывающее уведомление для отмены пропуска Всплывающее уведомление скрыто Длительность всплывающего уведомления при пропуске - Как долго показывать всплывающее сообщение об отмене пропуска + Длительность показа всплывающего сообщения об отмене пропуска 1 секунда 2 секунды 3 секунды @@ -1538,7 +1538,7 @@ Second \"item\" text" Перенаправления URL-адресов (youtube.com/redirect) не обходятся и исходные URL-адреса не открываются напрямую - Открыть ссылки в браузере + Открывать ссылки в браузере Ссылки открываются во внешнем браузере Ссылки открываются во встроенном браузере @@ -1646,10 +1646,6 @@ Second \"item\" text" Показать в \"Статистике для сисадминов\" Тип клиента в \"Статистике для сисадминов\" показан Тип клиента в \"Статистике для сисадминов\" скрыт - Язык аудиопотока - - Для выбора определенного языка аудио отключите \"Принудительный язык оригинального аудио\" - Выбор языка трансляции недоступен с Android Studio diff --git a/patches/src/main/resources/addresources/values-si-rLK/strings.xml b/patches/src/main/resources/addresources/values-si-rLK/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-si-rLK/strings.xml +++ b/patches/src/main/resources/addresources/values-si-rLK/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-sk-rSK/strings.xml b/patches/src/main/resources/addresources/values-sk-rSK/strings.xml index e70a0a320..75fac144d 100644 --- a/patches/src/main/resources/addresources/values-sk-rSK/strings.xml +++ b/patches/src/main/resources/addresources/values-sk-rSK/strings.xml @@ -1,5 +1,5 @@ - + - Ak chcete vybrať konkrétny jazyk zvuku, vypnite „Vynútiť pôvodný jazyk zvuku“ - Výber jazyka streamu nie je k dispozícii v aplikácii Android Studio diff --git a/patches/src/main/resources/addresources/values-sl-rSI/strings.xml b/patches/src/main/resources/addresources/values-sl-rSI/strings.xml index b25d91f0a..15ab10f19 100644 --- a/patches/src/main/resources/addresources/values-sl-rSI/strings.xml +++ b/patches/src/main/resources/addresources/values-sl-rSI/strings.xml @@ -1,5 +1,5 @@ - + - Za izbiro določenega zvočnega jezika izklopite \'Vsili izvirni zvočni jezik\' - Izbira jezika pretakanja ni na voljo z Android Studio diff --git a/patches/src/main/resources/addresources/values-sq-rAL/strings.xml b/patches/src/main/resources/addresources/values-sq-rAL/strings.xml index c4cd34604..8405fa310 100644 --- a/patches/src/main/resources/addresources/values-sq-rAL/strings.xml +++ b/patches/src/main/resources/addresources/values-sq-rAL/strings.xml @@ -1,5 +1,5 @@ - + - Për të zgjedhur një gjuhë specifike audio, çaktivizoni \"Detyro gjuhën origjinale audio\" - Zgjedhja e gjuhës së transmetimit nuk është e disponueshme me Android Studio diff --git a/patches/src/main/resources/addresources/values-sr-rCS/strings.xml b/patches/src/main/resources/addresources/values-sr-rCS/strings.xml index 8cd9b4256..0e11eda6d 100644 --- a/patches/src/main/resources/addresources/values-sr-rCS/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rCS/strings.xml @@ -1,5 +1,5 @@ - + - Da biste izabrali određeni jezik zvuka, isključite opciju „Prisili originalni jezik zvuka” - Izbor jezika strima nije dostupan sa Android Studio diff --git a/patches/src/main/resources/addresources/values-sr-rSP/strings.xml b/patches/src/main/resources/addresources/values-sr-rSP/strings.xml index 8a9e2315f..270ac39d4 100644 --- a/patches/src/main/resources/addresources/values-sr-rSP/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rSP/strings.xml @@ -1,5 +1,5 @@ - + - Да бисте изабрали одређени језик звука, искључите опцију „Присили оригинални језик звука” - Избор језика стрима није доступан са Android Studio diff --git a/patches/src/main/resources/addresources/values-sv-rSE/strings.xml b/patches/src/main/resources/addresources/values-sv-rSE/strings.xml index a5b569f03..bfc9a6a73 100644 --- a/patches/src/main/resources/addresources/values-sv-rSE/strings.xml +++ b/patches/src/main/resources/addresources/values-sv-rSE/strings.xml @@ -1,5 +1,5 @@ - + - Om du vill välja ett specifikt ljudspråk inaktiverar du \"Tvinga ursprungligt ljudspråk\" - Val av strömspråk är inte tillgängligt med Android Studio diff --git a/patches/src/main/resources/addresources/values-sw-rKE/strings.xml b/patches/src/main/resources/addresources/values-sw-rKE/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-sw-rKE/strings.xml +++ b/patches/src/main/resources/addresources/values-sw-rKE/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-ta-rIN/strings.xml b/patches/src/main/resources/addresources/values-ta-rIN/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-ta-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ta-rIN/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-te-rIN/strings.xml b/patches/src/main/resources/addresources/values-te-rIN/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-te-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-te-rIN/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-th-rTH/strings.xml b/patches/src/main/resources/addresources/values-th-rTH/strings.xml index f3e4ffa53..ae5398aeb 100644 --- a/patches/src/main/resources/addresources/values-th-rTH/strings.xml +++ b/patches/src/main/resources/addresources/values-th-rTH/strings.xml @@ -1,5 +1,5 @@ - + - หากต้องการเลือกภาษาเสียงที่ต้องการ ให้ปิด \'บังคับใช้ภาษาเสียงต้นฉบับ\' - การเลือกภาษาของสตรีมไม่พร้อมใช้งานกับ Android Studio diff --git a/patches/src/main/resources/addresources/values-tr-rTR/strings.xml b/patches/src/main/resources/addresources/values-tr-rTR/strings.xml index 43a2fc154..c1f0959cf 100644 --- a/patches/src/main/resources/addresources/values-tr-rTR/strings.xml +++ b/patches/src/main/resources/addresources/values-tr-rTR/strings.xml @@ -1,5 +1,5 @@ - + - Belirli bir ses dilini seçmek için \'Orijinal ses dilini zorla\' seçeneğini kapatın - Akış dili seçimi Android Studio ile kullanılamıyor diff --git a/patches/src/main/resources/addresources/values-uk-rUA/strings.xml b/patches/src/main/resources/addresources/values-uk-rUA/strings.xml index ee1b3c400..e6467b9dd 100644 --- a/patches/src/main/resources/addresources/values-uk-rUA/strings.xml +++ b/patches/src/main/resources/addresources/values-uk-rUA/strings.xml @@ -1,5 +1,5 @@ - + - Щоб вибрати певну звукову доріжку, вимкніть \"Примусово оригінальна мова звукової доріжки\" - Вибір мови звукової доріжки недоступний з клієнтом Android Studio diff --git a/patches/src/main/resources/addresources/values-ur-rIN/strings.xml b/patches/src/main/resources/addresources/values-ur-rIN/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-ur-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ur-rIN/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml b/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml +++ b/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml @@ -1,5 +1,5 @@ - + - diff --git a/patches/src/main/resources/addresources/values-vi-rVN/strings.xml b/patches/src/main/resources/addresources/values-vi-rVN/strings.xml index 35f29f3a5..7664e581b 100644 --- a/patches/src/main/resources/addresources/values-vi-rVN/strings.xml +++ b/patches/src/main/resources/addresources/values-vi-rVN/strings.xml @@ -1,5 +1,5 @@ - + - Để chọn ngôn ngữ âm thanh cụ thể, hãy tắt \'Buộc ngôn ngữ âm thanh gốc\' - Chọn ngôn ngữ luồng không khả dụng với Android Studio diff --git a/patches/src/main/resources/addresources/values-zh-rCN/strings.xml b/patches/src/main/resources/addresources/values-zh-rCN/strings.xml index 6d09a78da..a261aa031 100644 --- a/patches/src/main/resources/addresources/values-zh-rCN/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rCN/strings.xml @@ -1,5 +1,5 @@ - + - 要选择特定的音频语言,请关闭“强制原始音频语言” - Android Studio 不支持选择流语言 diff --git a/patches/src/main/resources/addresources/values-zh-rTW/strings.xml b/patches/src/main/resources/addresources/values-zh-rTW/strings.xml index 0f5329d36..956129a17 100644 --- a/patches/src/main/resources/addresources/values-zh-rTW/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rTW/strings.xml @@ -1,5 +1,5 @@ - + - 若要選擇特定的音訊語言,請關閉「強制使用原始音訊語言」 - 無法使用 Android Studio 選擇串流語言 diff --git a/patches/src/main/resources/addresources/values-zu-rZA/strings.xml b/patches/src/main/resources/addresources/values-zu-rZA/strings.xml index 6b81af5f3..5ba0a5e1f 100644 --- a/patches/src/main/resources/addresources/values-zu-rZA/strings.xml +++ b/patches/src/main/resources/addresources/values-zu-rZA/strings.xml @@ -1,5 +1,5 @@ - + - From 5f23bfe833c6e01617a7dbc5325b4a3fb931e53e Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sat, 1 Nov 2025 09:19:49 +0100 Subject: [PATCH 17/18] feat(Spoof video streams): Add experimental "Android No SDK" client type --- .../patches/spoof/SpoofVideoStreamsPatch.java | 6 +++-- .../extension/shared/spoof/ClientType.java | 27 +++++++++++++++++++ .../patches/spoof/SpoofVideoStreamsPatch.java | 2 ++ ...oofStreamingDataSideEffectsPreference.java | 21 +++++++++------ .../resources/addresources/values/arrays.xml | 4 +++ 5 files changed, 50 insertions(+), 10 deletions(-) diff --git a/extensions/music/src/main/java/app/revanced/extension/music/patches/spoof/SpoofVideoStreamsPatch.java b/extensions/music/src/main/java/app/revanced/extension/music/patches/spoof/SpoofVideoStreamsPatch.java index 15e90f565..ade26a30f 100644 --- a/extensions/music/src/main/java/app/revanced/extension/music/patches/spoof/SpoofVideoStreamsPatch.java +++ b/extensions/music/src/main/java/app/revanced/extension/music/patches/spoof/SpoofVideoStreamsPatch.java @@ -1,6 +1,7 @@ package app.revanced.extension.music.patches.spoof; import static app.revanced.extension.music.settings.Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE; +import static app.revanced.extension.shared.spoof.ClientType.ANDROID_NO_SDK; import static app.revanced.extension.shared.spoof.ClientType.ANDROID_VR_1_43_32; import static app.revanced.extension.shared.spoof.ClientType.ANDROID_VR_1_61_48; import static app.revanced.extension.shared.spoof.ClientType.VISIONOS; @@ -18,8 +19,9 @@ public class SpoofVideoStreamsPatch { public static void setClientOrderToUse() { List availableClients = List.of( ANDROID_VR_1_43_32, - ANDROID_VR_1_61_48, - VISIONOS + ANDROID_NO_SDK, + VISIONOS, + ANDROID_VR_1_61_48 ); app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.setClientsToUse( diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/ClientType.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/ClientType.java index cfd79b972..39076b562 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/ClientType.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/spoof/ClientType.java @@ -54,6 +54,33 @@ public enum ClientType { ANDROID_VR_1_61_48.supportsMultiAudioTracks, "Android VR 1.43" ), + /** + * Video not playable: Paid / Movie / Private / Age-restricted. + * Note: The 'Authorization' key must be excluded from the header. + * + * According to TeamNewPipe in 2022, if the 'androidSdkVersion' field is missing, + * the GVS did not return a valid response: + * [NewPipe#8713 (comment)](https://github.com/TeamNewPipe/NewPipe/issues/8713#issuecomment-1207443550). + * + * According to the latest commit in yt-dlp, the GVS returns a valid response + * even if the 'androidSdkVersion' field is missing: + * [yt-dlp#14693](https://github.com/yt-dlp/yt-dlp/pull/14693). + * + * For some reason, PoToken is not required. + */ + ANDROID_NO_SDK( + 3, + "ANDROID", + "", + "", + "", + Build.VERSION.RELEASE, + "20.05.46", + "com.google.android.youtube/20.05.46 (Linux; U; Android " + Build.VERSION.RELEASE + ") gzip", + false, + true, + "Android No SDK" + ), /** * Cannot play livestreams and lacks HDR, but can play videos with music and labeled "for children". * Google Pixel 9 Pro Fold diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java index 30ef6c0b8..75374c09e 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java @@ -1,6 +1,7 @@ package app.revanced.extension.youtube.patches.spoof; import static app.revanced.extension.shared.spoof.ClientType.ANDROID_CREATOR; +import static app.revanced.extension.shared.spoof.ClientType.ANDROID_NO_SDK; import static app.revanced.extension.shared.spoof.ClientType.ANDROID_VR_1_43_32; import static app.revanced.extension.shared.spoof.ClientType.ANDROID_VR_1_61_48; import static app.revanced.extension.shared.spoof.ClientType.IPADOS; @@ -41,6 +42,7 @@ public class SpoofVideoStreamsPatch { VISIONOS, ANDROID_CREATOR, ANDROID_VR_1_43_32, + ANDROID_NO_SDK, IPADOS); app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.setClientsToUse( diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofStreamingDataSideEffectsPreference.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofStreamingDataSideEffectsPreference.java index bf66edbd4..86802ee20 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofStreamingDataSideEffectsPreference.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SpoofStreamingDataSideEffectsPreference.java @@ -80,29 +80,34 @@ public class SpoofStreamingDataSideEffectsPreference extends Preference { Logger.printDebug(() -> "Updating spoof stream side effects preference"); setEnabled(BaseSettings.SPOOF_VIDEO_STREAMS.get()); - String summary = str("revanced_spoof_video_streams_about_no_audio_tracks"); + String summary = ""; switch (clientType) { case ANDROID_CREATOR -> - summary += '\n' + str("revanced_spoof_video_streams_about_no_stable_volume") - + '\n' + str("revanced_spoof_video_streams_about_no_av1") - + '\n' + str("revanced_spoof_video_streams_about_no_force_original_audio"); + summary = str("revanced_spoof_video_streams_about_no_audio_tracks") + + '\n' + str("revanced_spoof_video_streams_about_no_stable_volume") + + '\n' + str("revanced_spoof_video_streams_about_no_av1") + + '\n' + str("revanced_spoof_video_streams_about_no_force_original_audio"); // VR 1.61 is not exposed in the UI and should never be reached here. case ANDROID_VR_1_43_32, ANDROID_VR_1_61_48 -> - summary += '\n' + str("revanced_spoof_video_streams_about_no_stable_volume"); + summary = str("revanced_spoof_video_streams_about_no_audio_tracks") + + '\n' + str("revanced_spoof_video_streams_about_no_stable_volume"); + case ANDROID_NO_SDK -> + summary = str("revanced_spoof_video_streams_about_playback_failure"); case IPADOS -> summary = str("revanced_spoof_video_streams_about_playback_failure") + '\n' + str("revanced_spoof_video_streams_about_no_av1"); case VISIONOS -> summary = str("revanced_spoof_video_streams_about_experimental") - + '\n' + summary + + '\n' + str("revanced_spoof_video_streams_about_no_audio_tracks") + '\n' + str("revanced_spoof_video_streams_about_no_av1"); + default -> Logger.printException(() -> "Unknown client: " + clientType); } // Only iPadOS can play children videos in incognito, but it commonly fails at 1 minute - // or doesn't even start playback at all. List the side effect for other clients + // or doesn't start playback at all. List the side effect for other clients // since they will fall over to iPadOS. - if (clientType != ClientType.IPADOS) { + if (clientType != ClientType.IPADOS && clientType != ClientType.ANDROID_NO_SDK) { summary += '\n' + str("revanced_spoof_video_streams_about_kids_videos"); } diff --git a/patches/src/main/resources/addresources/values/arrays.xml b/patches/src/main/resources/addresources/values/arrays.xml index 439261474..9b6ce74e7 100644 --- a/patches/src/main/resources/addresources/values/arrays.xml +++ b/patches/src/main/resources/addresources/values/arrays.xml @@ -185,10 +185,12 @@ Android VR visionOS + Android No SDK ANDROID_VR_1_43_32 VISIONOS + ANDROID_NO_SDK @@ -227,12 +229,14 @@ Android VR Android Studio + Android No SDK visionOS iPadOS ANDROID_VR_1_43_32 ANDROID_CREATOR + ANDROID_NO_SDK VISIONOS IPADOS From 0c03599f0794707b6d6978e8030c6129c609a3c0 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 1 Nov 2025 08:25:19 +0000 Subject: [PATCH 18/18] chore: Release v5.45.0-dev.6 [skip ci] # [5.45.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.5...v5.45.0-dev.6) (2025-11-01) ### Features * **Spoof video streams:** Add experimental "Android No SDK" client type ([5f23bfe](https://github.com/ReVanced/revanced-patches/commit/5f23bfe833c6e01617a7dbc5325b4a3fb931e53e)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 552afbcb4..059a74369 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.45.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.5...v5.45.0-dev.6) (2025-11-01) + + +### Features + +* **Spoof video streams:** Add experimental "Android No SDK" client type ([5f23bfe](https://github.com/ReVanced/revanced-patches/commit/5f23bfe833c6e01617a7dbc5325b4a3fb931e53e)) + # [5.45.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.45.0-dev.4...v5.45.0-dev.5) (2025-11-01) diff --git a/gradle.properties b/gradle.properties index 4706cb5b5..009b6c055 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M org.gradle.parallel = true android.useAndroidX = true kotlin.code.style = official -version = 5.45.0-dev.5 +version = 5.45.0-dev.6