From 9afe9afc67991bf359dbf5c863719097abb2dfc9 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sat, 27 Sep 2025 11:53:21 +0400 Subject: [PATCH 01/63] chore(YouTube): Fix patch description --- .../patches/youtube/video/quality/VideoQualityPatch.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/VideoQualityPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/VideoQualityPatch.kt index 1a7908772..b188238e2 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/VideoQualityPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/VideoQualityPatch.kt @@ -14,8 +14,7 @@ internal val settingsMenuVideoQualityGroup = mutableSetOf() @Suppress("unused") val videoQualityPatch = bytecodePatch( name = "Video quality", - description = "Adds options to use the advanced video quality menu, set default video qualities, " + - "and disable video codecs such as VP9/HDR." + description = "Adds options to set default video qualities and always use the advanced video quality menu." ) { dependsOn( rememberVideoQualityPatch, From 7817885cffed66608039ab45881537cbd3069c9d Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sat, 27 Sep 2025 16:21:32 +0400 Subject: [PATCH 02/63] fix(YouTube Music - Hide cast button): Resolve button not hiding --- .../patches/music/layout/castbutton/HideCastButton.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/patches/src/main/kotlin/app/revanced/patches/music/layout/castbutton/HideCastButton.kt b/patches/src/main/kotlin/app/revanced/patches/music/layout/castbutton/HideCastButton.kt index 2c1fbdea8..03b621813 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/layout/castbutton/HideCastButton.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/layout/castbutton/HideCastButton.kt @@ -9,6 +9,9 @@ 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.resourceMappingPatch +import app.revanced.patches.shared.misc.mapping.resourceMappings import app.revanced.patches.shared.misc.settings.preference.SwitchPreference import app.revanced.util.indexOfFirstInstructionOrThrow import app.revanced.util.indexOfFirstLiteralInstructionOrThrow @@ -29,6 +32,7 @@ val hideCastButton = bytecodePatch( sharedExtensionPatch, settingsPatch, addResourcesPatch, + resourceMappingPatch ) compatibleWith( @@ -39,6 +43,8 @@ val hideCastButton = bytecodePatch( ) execute { + playerOverlayChip = resourceMappings["id", "player_overlay_chip"] + addResources("music", "layout.castbutton.hideCastButton") PreferenceScreen.GENERAL.addPreferences( From 1c80774d79b4102bc352357fff3c94cd05ca38b9 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 27 Sep 2025 12:24:18 +0000 Subject: [PATCH 03/63] chore: Release v5.41.1-dev.1 [skip ci] ## [5.41.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.41.0...v5.41.1-dev.1) (2025-09-27) ### Bug Fixes * **YouTube Music - Hide cast button:** Resolve button not hiding ([7817885](https://github.com/ReVanced/revanced-patches/commit/7817885cffed66608039ab45881537cbd3069c9d)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c54d9e73..0db402cd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [5.41.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.41.0...v5.41.1-dev.1) (2025-09-27) + + +### Bug Fixes + +* **YouTube Music - Hide cast button:** Resolve button not hiding ([7817885](https://github.com/ReVanced/revanced-patches/commit/7817885cffed66608039ab45881537cbd3069c9d)) + # [5.41.0](https://github.com/ReVanced/revanced-patches/compare/v5.40.0...v5.41.0) (2025-09-27) diff --git a/gradle.properties b/gradle.properties index 428798762..b12a215f1 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.41.0 +version = 5.41.1-dev.1 From 28799a548a73651134ef304cb6cb542cf8e55abe Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sat, 27 Sep 2025 16:31:22 +0400 Subject: [PATCH 04/63] fix(YouTube Music - Hide cast button): Fix patching error --- .../revanced/patches/music/layout/castbutton/HideCastButton.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/src/main/kotlin/app/revanced/patches/music/layout/castbutton/HideCastButton.kt b/patches/src/main/kotlin/app/revanced/patches/music/layout/castbutton/HideCastButton.kt index 03b621813..fba3653ce 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/layout/castbutton/HideCastButton.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/layout/castbutton/HideCastButton.kt @@ -65,7 +65,7 @@ val hideCastButton = bytecodePatch( playerOverlayChipFingerprint.method.apply { val resourceIndex = indexOfFirstLiteralInstructionOrThrow(playerOverlayChip) - val targetIndex = indexOfFirstInstructionOrThrow(resourceIndex, Opcode.MOVE_RESULT) + val targetIndex = indexOfFirstInstructionOrThrow(resourceIndex, Opcode.MOVE_RESULT_OBJECT) val targetRegister = getInstruction(targetIndex).registerA addInstruction( From 52c369576d669d3d69640c51548f13af5aa84e21 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 27 Sep 2025 12:35:45 +0000 Subject: [PATCH 05/63] chore: Release v5.41.1-dev.2 [skip ci] ## [5.41.1-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.41.1-dev.1...v5.41.1-dev.2) (2025-09-27) ### Bug Fixes * **YouTube Music - Hide cast button:** Fix patching error ([28799a5](https://github.com/ReVanced/revanced-patches/commit/28799a548a73651134ef304cb6cb542cf8e55abe)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0db402cd3..895a8c6c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [5.41.1-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.41.1-dev.1...v5.41.1-dev.2) (2025-09-27) + + +### Bug Fixes + +* **YouTube Music - Hide cast button:** Fix patching error ([28799a5](https://github.com/ReVanced/revanced-patches/commit/28799a548a73651134ef304cb6cb542cf8e55abe)) + ## [5.41.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.41.0...v5.41.1-dev.1) (2025-09-27) diff --git a/gradle.properties b/gradle.properties index b12a215f1..6ef7b3334 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.41.1-dev.1 +version = 5.41.1-dev.2 From 5cb46c4e9180ebc16eddb983dad73d137d8ec047 Mon Sep 17 00:00:00 2001 From: Samo Hribar <34912839+samolego@users.noreply.github.com> Date: Sat, 27 Sep 2025 14:59:51 +0200 Subject: [PATCH 06/63] feat(Viber): Add `Hide navigation buttons` patch (#5991) --- patches/api/patches.api | 4 + .../patches/viber/misc/navbar/Fingerprints.kt | 16 ++++ .../misc/navbar/HideNavigationButtons.kt | 85 +++++++++++++++++++ 3 files changed, 105 insertions(+) create mode 100644 patches/src/main/kotlin/app/revanced/patches/viber/misc/navbar/Fingerprints.kt create mode 100644 patches/src/main/kotlin/app/revanced/patches/viber/misc/navbar/HideNavigationButtons.kt diff --git a/patches/api/patches.api b/patches/api/patches.api index 7ac39ad52..ae0c1a588 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -1306,6 +1306,10 @@ public final class app/revanced/patches/viber/ads/HideAdsPatchKt { public static final fun getHideAdsPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } +public final class app/revanced/patches/viber/misc/navbar/HideNavigationButtonsKt { + public static final fun getHideNavigationButtonsPatch ()Lapp/revanced/patcher/patch/BytecodePatch; +} + public final class app/revanced/patches/vsco/misc/pro/UnlockProPatchKt { public static final fun getUnlockProPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } diff --git a/patches/src/main/kotlin/app/revanced/patches/viber/misc/navbar/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/viber/misc/navbar/Fingerprints.kt new file mode 100644 index 000000000..2f2a7bda3 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/viber/misc/navbar/Fingerprints.kt @@ -0,0 +1,16 @@ +package app.revanced.patches.viber.misc.navbar +import app.revanced.patcher.fingerprint +import app.revanced.patcher.patch.BytecodePatchContext + +internal val tabIdClassFingerprint = fingerprint { + strings("shouldShowTabId") +} + +context(BytecodePatchContext) +internal val shouldShowTabIdMethodFingerprint get() = fingerprint { + parameters("I", "I") + returns("Z") + custom { methodDef, classDef -> + classDef == tabIdClassFingerprint.classDef + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/viber/misc/navbar/HideNavigationButtons.kt b/patches/src/main/kotlin/app/revanced/patches/viber/misc/navbar/HideNavigationButtons.kt new file mode 100644 index 000000000..a4aa3e4a0 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/viber/misc/navbar/HideNavigationButtons.kt @@ -0,0 +1,85 @@ +package app.revanced.patches.viber.misc.navbar + +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.patch.booleanOption +import app.revanced.patcher.patch.bytecodePatch +import java.util.logging.Logger +import kotlin.collections.joinToString + + +private const val instructionsFooter = """ + # If we reach this, it means that this tab has been disabled by user + const/4 v0, 0 + return v0 # return false as "This tab is not enabled" + + # Proceed with default execution + :continue + nop +""" + +@Suppress("unused") +val hideNavigationButtonsPatch = bytecodePatch( + name = "Hide navigation buttons", + description = "Permanently hides navigation bar buttons, such as Explore and Marketplace.", + use = false +) { + compatibleWith("com.viber.voip") + + val hideOptions = AllowedNavigationItems.entries.associateWith { + booleanOption( + key = it.key, + default = it.defaultHideOption, + title = it.title, + description = it.description, + ) + } + + execute { + // Items that won't be forcefully hidden. + val allowedItems = hideOptions.filter { (option, enabled) -> enabled.value != true } + + if (allowedItems.size == AllowedNavigationItems.entries.size) { + return@execute Logger.getLogger(this::class.java.name).warning( + "No hide navigation buttons options are enabled. No changes made." + ) + } + + val injectionInstructions = allowedItems + .map { it.key.buildAllowInstruction() } + .joinToString("\n") + instructionsFooter + + shouldShowTabIdMethodFingerprint + .method + .addInstructionsWithLabels(0, injectionInstructions) + } +} + +/** + * Navigation items taken from source code. + * They appear in code like new NavigationItem(0, R.string.bottom_tab_chats, R.drawable.ic_tab_chats). + */ +private enum class AllowedNavigationItems( + val defaultHideOption: Boolean, + private val itemName: String, + private vararg val ids: Int +) { + CHATS(false, "Chats", 0), + CALLS(false, "Calls", 1, 7), + EXPLORE(true, "Explore", 2), + MORE(false, "More", 3), + PAY(true, "Pay", 5), + CAMERA(true, "Camera", 6), + MARKETPLACE(true, "Marketplace", 8); + + val key = "hide$itemName" + val title = "Hide $itemName" + val description = "Permanently hides the $itemName button." + + fun buildAllowInstruction(): String = + ids.joinToString("\n") { id -> + """ + const/4 v0, $id # If tabId == $id ($itemName), don't hide it + if-eq p1, v0, :continue + """ + } +} From 2b71bd80c275d9b5961f77694823e21c7e75223f Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 27 Sep 2025 13:02:45 +0000 Subject: [PATCH 07/63] chore: Release v5.42.0-dev.1 [skip ci] # [5.42.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.41.1-dev.2...v5.42.0-dev.1) (2025-09-27) ### Features * **Viber:** Add `Hide navigation buttons` patch ([#5991](https://github.com/ReVanced/revanced-patches/issues/5991)) ([5cb46c4](https://github.com/ReVanced/revanced-patches/commit/5cb46c4e9180ebc16eddb983dad73d137d8ec047)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 895a8c6c9..690b80e16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.41.1-dev.2...v5.42.0-dev.1) (2025-09-27) + + +### Features + +* **Viber:** Add `Hide navigation buttons` patch ([#5991](https://github.com/ReVanced/revanced-patches/issues/5991)) ([5cb46c4](https://github.com/ReVanced/revanced-patches/commit/5cb46c4e9180ebc16eddb983dad73d137d8ec047)) + ## [5.41.1-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.41.1-dev.1...v5.41.1-dev.2) (2025-09-27) diff --git a/gradle.properties b/gradle.properties index 6ef7b3334..f564fed68 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.41.1-dev.2 +version = 5.42.0-dev.1 From 080a2266146798be71789c939deef2f289697523 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sat, 27 Sep 2025 23:53:35 +0400 Subject: [PATCH 08/63] fix(Instagram - Hide navigation buttons): Resolve app startup crash --- .../hide/navigation/HideNavigationButtons.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/hide/navigation/HideNavigationButtons.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/hide/navigation/HideNavigationButtons.kt index 4ada34d27..9add580bc 100644 --- a/patches/src/main/kotlin/app/revanced/patches/instagram/hide/navigation/HideNavigationButtons.kt +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/hide/navigation/HideNavigationButtons.kt @@ -3,6 +3,7 @@ package app.revanced.patches.instagram.hide.navigation import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.booleanOption import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patches.instagram.misc.extension.sharedExtensionPatch import app.revanced.util.addInstructionsAtControlFlowLabel import app.revanced.util.findFreeRegister import app.revanced.util.getReference @@ -24,6 +25,8 @@ val hideNavigationButtonsPatch = bytecodePatch( ) { compatibleWith("com.instagram.android") + dependsOn(sharedExtensionPatch) + val hideReels by booleanOption( key = "hideReels", default = true, @@ -69,20 +72,22 @@ val hideNavigationButtonsPatch = bytecodePatch( const-string v$freeRegister2, "$enumNameField" invoke-static { v$buttonsListRegister, v$freeRegister, v$freeRegister2 }, $EXTENSION_CLASS_DESCRIPTOR->removeNavigationButtonByName(Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; move-result-object v$buttonsListRegister - """ + """ } - if (hideReels!!) + if (hideReels!!) { addInstructionsAtControlFlowLabel( returnIndex, instructionsRemoveButtonByName("fragment_clips") ) + } - if (hideCreate!!) + if (hideCreate!!) { addInstructionsAtControlFlowLabel( returnIndex, instructionsRemoveButtonByName("fragment_share") ) + } } } } From 1cbff799ad3ace7e3c9d709fd6cb13403def05e3 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 27 Sep 2025 19:57:01 +0000 Subject: [PATCH 09/63] chore: Release v5.42.0-dev.2 [skip ci] # [5.42.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.1...v5.42.0-dev.2) (2025-09-27) ### Bug Fixes * **Instagram - Hide navigation buttons:** Resolve app startup crash ([080a226](https://github.com/ReVanced/revanced-patches/commit/080a2266146798be71789c939deef2f289697523)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 690b80e16..de1ee1c64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.1...v5.42.0-dev.2) (2025-09-27) + + +### Bug Fixes + +* **Instagram - Hide navigation buttons:** Resolve app startup crash ([080a226](https://github.com/ReVanced/revanced-patches/commit/080a2266146798be71789c939deef2f289697523)) + # [5.42.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.41.1-dev.2...v5.42.0-dev.1) (2025-09-27) diff --git a/gradle.properties b/gradle.properties index f564fed68..7ae2a791f 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.42.0-dev.1 +version = 5.42.0-dev.2 From 76b0364c5b5562c6a0d178d2bbe5b220f48aaca9 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sun, 28 Sep 2025 14:22:42 +0400 Subject: [PATCH 10/63] fix(YouTube - Hide end screen cards): Hide new type of end screen card (#6027) --- .../patches/HideEndScreenCardsPatch.java | 24 ++++++++++++++ .../patches/HideEndscreenCardsPatch.java | 14 --------- patches/api/patches.api | 4 +-- .../hide/endscreencards/Fingerprints.kt | 21 +++++++++++++ ...rdsPatch.kt => HideEndScreenCardsPatch.kt} | 31 +++++++++++++++---- .../resources/addresources/values/strings.xml | 2 +- 6 files changed, 73 insertions(+), 23 deletions(-) create mode 100644 extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/HideEndScreenCardsPatch.java delete mode 100644 extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/HideEndscreenCardsPatch.java rename patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/{HideEndscreenCardsPatch.kt => HideEndScreenCardsPatch.kt} (70%) diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/HideEndScreenCardsPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/HideEndScreenCardsPatch.java new file mode 100644 index 000000000..03668aa73 --- /dev/null +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/HideEndScreenCardsPatch.java @@ -0,0 +1,24 @@ +package app.revanced.extension.youtube.patches; + +import android.view.View; + +import app.revanced.extension.shared.Utils; +import app.revanced.extension.youtube.settings.Settings; + +@SuppressWarnings("unused") +public class HideEndScreenCardsPatch { + + /** + * Injection point. + */ + public static void hideEndScreenCardView(View view) { + Utils.hideViewUnderCondition(Settings.HIDE_ENDSCREEN_CARDS, view); + } + + /** + * Injection point. + */ + public static boolean hideEndScreenCards() { + return Settings.HIDE_ENDSCREEN_CARDS.get(); + } +} \ No newline at end of file diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/HideEndscreenCardsPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/HideEndscreenCardsPatch.java deleted file mode 100644 index 89261d119..000000000 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/HideEndscreenCardsPatch.java +++ /dev/null @@ -1,14 +0,0 @@ -package app.revanced.extension.youtube.patches; - -import android.view.View; - -import app.revanced.extension.youtube.settings.Settings; - -@SuppressWarnings("unused") -public class HideEndscreenCardsPatch { - //Used by app.revanced.patches.youtube.layout.hideendscreencards.bytecode.patch.HideEndscreenCardsPatch - public static void hideEndscreen(View view) { - if (!Settings.HIDE_ENDSCREEN_CARDS.get()) return; - view.setVisibility(View.GONE); - } -} \ No newline at end of file diff --git a/patches/api/patches.api b/patches/api/patches.api index ae0c1a588..33b6ea28d 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -1411,8 +1411,8 @@ public final class app/revanced/patches/youtube/layout/formfactor/ChangeFormFact public static final fun getChangeFormFactorPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } -public final class app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsPatchKt { - public static final fun getHideEndscreenCardsPatch ()Lapp/revanced/patcher/patch/BytecodePatch; +public final class app/revanced/patches/youtube/layout/hide/endscreencards/HideEndScreenCardsPatchKt { + public static final fun getHideEndScreenCardsPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } public final class app/revanced/patches/youtube/layout/hide/endscreensuggestion/HideEndScreenSuggestedVideoPatchKt { diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/Fingerprints.kt index 59d859e80..d39a639fa 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/Fingerprints.kt @@ -1,8 +1,13 @@ package app.revanced.patches.youtube.layout.hide.endscreencards import app.revanced.patcher.fingerprint +import app.revanced.util.containsLiteralInstruction +import app.revanced.util.getReference +import app.revanced.util.indexOfFirstInstruction import app.revanced.util.literal +import com.android.tools.smali.dexlib2.AccessFlags import com.android.tools.smali.dexlib2.Opcode +import com.android.tools.smali.dexlib2.iface.reference.FieldReference internal val layoutCircleFingerprint = fingerprint { returns("Landroid/view/View;") @@ -38,3 +43,19 @@ internal val layoutVideoFingerprint = fingerprint { ) literal { layoutVideo } } + +internal val showEndscreenCardsFingerprint = fingerprint { + accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL) + returns("V") + parameters("L") + custom { method, classDef -> + classDef.methods.count() == 5 + && method.containsLiteralInstruction(0) + && method.containsLiteralInstruction(5) + && method.containsLiteralInstruction(8) + && method.indexOfFirstInstruction { + val reference = getReference() + reference?.type == "Lcom/google/android/libraries/youtube/innertube/model/player/PlayerResponseModel;" + } >= 0 + } +} \ No newline at end of file diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndScreenCardsPatch.kt similarity index 70% rename from patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsPatch.kt rename to patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndScreenCardsPatch.kt index d0dce4bd5..d09de1d2f 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndScreenCardsPatch.kt @@ -1,6 +1,7 @@ package app.revanced.patches.youtube.layout.hide.endscreencards import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.patch.resourcePatch @@ -11,6 +12,8 @@ import app.revanced.patches.shared.misc.mapping.resourceMappingPatch import app.revanced.patches.shared.misc.mapping.resourceMappings import app.revanced.patches.shared.misc.settings.preference.SwitchPreference import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch +import app.revanced.patches.youtube.misc.playservice.is_19_43_or_greater +import app.revanced.patches.youtube.misc.playservice.versionCheckPatch import app.revanced.patches.youtube.misc.settings.PreferenceScreen import app.revanced.patches.youtube.misc.settings.settingsPatch import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction @@ -22,7 +25,7 @@ internal var layoutIcon = -1L internal var layoutVideo = -1L private set -private val hideEndscreenCardsResourcePatch = resourcePatch { +private val hideEndScreenCardsResourcePatch = resourcePatch { dependsOn( settingsPatch, resourceMappingPatch, @@ -30,7 +33,7 @@ private val hideEndscreenCardsResourcePatch = resourcePatch { ) execute { - addResources("youtube", "layout.hide.endscreencards.hideEndscreenCardsResourcePatch") + addResources("youtube", "layout.hide.endscreencards.hideEndScreenCardsResourcePatch") PreferenceScreen.PLAYER.addPreferences( SwitchPreference("revanced_hide_endscreen_cards"), @@ -45,16 +48,17 @@ private val hideEndscreenCardsResourcePatch = resourcePatch { } private const val EXTENSION_CLASS_DESCRIPTOR = - "Lapp/revanced/extension/youtube/patches/HideEndscreenCardsPatch;" + "Lapp/revanced/extension/youtube/patches/HideEndScreenCardsPatch;" @Suppress("unused") -val hideEndscreenCardsPatch = bytecodePatch( +val hideEndScreenCardsPatch = bytecodePatch( name = "Hide end screen cards", description = "Adds an option to hide suggested video cards at the end of videos.", ) { dependsOn( sharedExtensionPatch, - hideEndscreenCardsResourcePatch, + hideEndScreenCardsResourcePatch, + versionCheckPatch ) compatibleWith( @@ -78,9 +82,24 @@ val hideEndscreenCardsPatch = bytecodePatch( addInstruction( insertIndex, - "invoke-static { v$viewRegister }, $EXTENSION_CLASS_DESCRIPTOR->hideEndscreen(Landroid/view/View;)V", + "invoke-static { v$viewRegister }, " + + "$EXTENSION_CLASS_DESCRIPTOR->hideEndScreenCardView(Landroid/view/View;)V", ) } } + + if (is_19_43_or_greater) { + showEndscreenCardsFingerprint.method.addInstructionsWithLabels( + 0, + """ + invoke-static {}, $EXTENSION_CLASS_DESCRIPTOR->hideEndScreenCards()Z + move-result v0 + if-eqz v0, :show + return-void + :show + nop + """ + ) + } } } diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index f151ae14d..e7fe5167b 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -859,7 +859,7 @@ To show the Audio track menu, change \'Spoof video streams\' to iPadOS" Previous & Next buttons are hidden Previous & Next buttons are shown - + Hide end screen cards End screen cards are hidden End screen cards are shown From 725d5dc974f9f398778c68d99e6514fb02e88650 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 28 Sep 2025 10:25:37 +0000 Subject: [PATCH 11/63] chore: Release v5.42.0-dev.3 [skip ci] # [5.42.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.2...v5.42.0-dev.3) (2025-09-28) ### Bug Fixes * **YouTube - Hide end screen cards:** Hide new type of end screen card ([#6027](https://github.com/ReVanced/revanced-patches/issues/6027)) ([76b0364](https://github.com/ReVanced/revanced-patches/commit/76b0364c5b5562c6a0d178d2bbe5b220f48aaca9)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index de1ee1c64..3e472c2c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.2...v5.42.0-dev.3) (2025-09-28) + + +### Bug Fixes + +* **YouTube - Hide end screen cards:** Hide new type of end screen card ([#6027](https://github.com/ReVanced/revanced-patches/issues/6027)) ([76b0364](https://github.com/ReVanced/revanced-patches/commit/76b0364c5b5562c6a0d178d2bbe5b220f48aaca9)) + # [5.42.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.1...v5.42.0-dev.2) (2025-09-27) diff --git a/gradle.properties b/gradle.properties index 7ae2a791f..f90566abb 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.42.0-dev.2 +version = 5.42.0-dev.3 From 326953cfc3bd7467191d3b4d5f1c9ed1aa954cd0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 28 Sep 2025 14:30:01 +0400 Subject: [PATCH 12/63] chore: Sync translations (#6028) --- .../addresources/values-af-rZA/strings.xml | 2 +- .../addresources/values-am-rET/strings.xml | 2 +- .../addresources/values-ar-rSA/strings.xml | 2 +- .../addresources/values-as-rIN/strings.xml | 2 +- .../addresources/values-az-rAZ/strings.xml | 2 +- .../addresources/values-be-rBY/strings.xml | 2 +- .../addresources/values-bg-rBG/strings.xml | 2 +- .../addresources/values-bn-rBD/strings.xml | 2 +- .../addresources/values-bs-rBA/strings.xml | 2 +- .../addresources/values-ca-rES/strings.xml | 2 +- .../addresources/values-cs-rCZ/strings.xml | 2 +- .../addresources/values-da-rDK/strings.xml | 2 +- .../addresources/values-de-rDE/strings.xml | 4 +-- .../addresources/values-el-rGR/strings.xml | 2 +- .../addresources/values-es-rES/strings.xml | 2 +- .../addresources/values-et-rEE/strings.xml | 2 +- .../addresources/values-eu-rES/strings.xml | 2 +- .../addresources/values-fa-rIR/strings.xml | 2 +- .../addresources/values-fi-rFI/strings.xml | 2 +- .../addresources/values-fil-rPH/strings.xml | 2 +- .../addresources/values-fr-rFR/strings.xml | 2 +- .../addresources/values-ga-rIE/strings.xml | 2 +- .../addresources/values-gl-rES/strings.xml | 2 +- .../addresources/values-gu-rIN/strings.xml | 2 +- .../addresources/values-hi-rIN/strings.xml | 2 +- .../addresources/values-hr-rHR/strings.xml | 2 +- .../addresources/values-hu-rHU/strings.xml | 2 +- .../addresources/values-hy-rAM/strings.xml | 2 +- .../addresources/values-in-rID/strings.xml | 6 ++-- .../addresources/values-is-rIS/strings.xml | 2 +- .../addresources/values-it-rIT/strings.xml | 2 +- .../addresources/values-iw-rIL/strings.xml | 2 +- .../addresources/values-ja-rJP/strings.xml | 2 +- .../addresources/values-ka-rGE/strings.xml | 2 +- .../addresources/values-kk-rKZ/strings.xml | 2 +- .../addresources/values-km-rKH/strings.xml | 2 +- .../addresources/values-kn-rIN/strings.xml | 2 +- .../addresources/values-ko-rKR/strings.xml | 2 +- .../addresources/values-ky-rKG/strings.xml | 2 +- .../addresources/values-lo-rLA/strings.xml | 2 +- .../addresources/values-lt-rLT/strings.xml | 2 +- .../addresources/values-lv-rLV/strings.xml | 2 +- .../addresources/values-mk-rMK/strings.xml | 2 +- .../addresources/values-ml-rIN/strings.xml | 2 +- .../addresources/values-mn-rMN/strings.xml | 2 +- .../addresources/values-mr-rIN/strings.xml | 2 +- .../addresources/values-ms-rMY/strings.xml | 2 +- .../addresources/values-my-rMM/strings.xml | 2 +- .../addresources/values-nb-rNO/strings.xml | 2 +- .../addresources/values-ne-rIN/strings.xml | 2 +- .../addresources/values-nl-rNL/strings.xml | 2 +- .../addresources/values-or-rIN/strings.xml | 2 +- .../addresources/values-pa-rIN/strings.xml | 2 +- .../addresources/values-pl-rPL/strings.xml | 2 +- .../addresources/values-pt-rBR/strings.xml | 2 +- .../addresources/values-pt-rPT/strings.xml | 2 +- .../addresources/values-ro-rRO/strings.xml | 2 +- .../addresources/values-ru-rRU/strings.xml | 2 +- .../addresources/values-si-rLK/strings.xml | 2 +- .../addresources/values-sk-rSK/strings.xml | 2 +- .../addresources/values-sl-rSI/strings.xml | 2 +- .../addresources/values-sq-rAL/strings.xml | 2 +- .../addresources/values-sr-rCS/strings.xml | 36 +++++++++---------- .../addresources/values-sr-rSP/strings.xml | 28 +++++++-------- .../addresources/values-sv-rSE/strings.xml | 2 +- .../addresources/values-sw-rKE/strings.xml | 2 +- .../addresources/values-ta-rIN/strings.xml | 2 +- .../addresources/values-te-rIN/strings.xml | 2 +- .../addresources/values-th-rTH/strings.xml | 2 +- .../addresources/values-tr-rTR/strings.xml | 2 +- .../addresources/values-uk-rUA/strings.xml | 2 +- .../addresources/values-ur-rIN/strings.xml | 2 +- .../addresources/values-uz-rUZ/strings.xml | 2 +- .../addresources/values-vi-rVN/strings.xml | 6 ++-- .../addresources/values-zh-rCN/strings.xml | 2 +- .../addresources/values-zh-rTW/strings.xml | 2 +- .../addresources/values-zu-rZA/strings.xml | 2 +- 77 files changed, 112 insertions(+), 112 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-af-rZA/strings.xml +++ b/patches/src/main/resources/addresources/values-af-rZA/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-am-rET/strings.xml +++ b/patches/src/main/resources/addresources/values-am-rET/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 aebfa8fb4..9ebebe4e6 100644 --- a/patches/src/main/resources/addresources/values-ar-rSA/strings.xml +++ b/patches/src/main/resources/addresources/values-ar-rSA/strings.xml @@ -797,7 +797,7 @@ Second \"item\" text" تم إخفاء الأزرار يتم عرض الأزرار - + إخفاء بطاقات شاشة النهاية تم إخفاء بطاقات شاشة النهاية يتم عرض بطاقات شاشة النهاية 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 487d0ef80..97160e13f 100644 --- a/patches/src/main/resources/addresources/values-as-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-as-rIN/strings.xml @@ -136,7 +136,7 @@ Second \"item\" text" - + 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 9db6d36d4..3758c3b0b 100644 --- a/patches/src/main/resources/addresources/values-az-rAZ/strings.xml +++ b/patches/src/main/resources/addresources/values-az-rAZ/strings.xml @@ -797,7 +797,7 @@ Səs treki menyusunu göstərmək üçün \"Video yayımları saxtalaşdır\"ı Düymələr gizlidir Düymələr göstərilir - + Son ekran kartlarını gizlət Son ekran kartları gizlidir Son ekran kartları göstərilir 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 a2b78898c..31c20e333 100644 --- a/patches/src/main/resources/addresources/values-be-rBY/strings.xml +++ b/patches/src/main/resources/addresources/values-be-rBY/strings.xml @@ -797,7 +797,7 @@ Second \"item\" text" Кнопкі схаваныя Паказваюцца кнопкі - + Схаваць карткі канцавога экрана Карткі канцавога экрана схаваны Паказваюцца карткі канцавога экрана 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 98b86283a..9ab0c994e 100644 --- a/patches/src/main/resources/addresources/values-bg-rBG/strings.xml +++ b/patches/src/main/resources/addresources/values-bg-rBG/strings.xml @@ -797,7 +797,7 @@ Second \"item\" text" Бутоните са скрити Бутоните се показват - + Скриване на препоръките в края Препоръките в края са скрити Препоръките в края се показват 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 7ff0637ce..550fc078a 100644 --- a/patches/src/main/resources/addresources/values-bn-rBD/strings.xml +++ b/patches/src/main/resources/addresources/values-bn-rBD/strings.xml @@ -793,7 +793,7 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ বোতাম লুকানো হয় বোতাম দেখানো হয় - + শেষ স্ক্রীন কার্ড লুকান শেষ স্ক্রীন কার্ড লুকিয়ে রয়েছে শেষ স্ক্রীন কার্ড প্রদর্শিত হয়েছে 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-bs-rBA/strings.xml +++ b/patches/src/main/resources/addresources/values-bs-rBA/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-ca-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-ca-rES/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 eec21e392..0b681f1d1 100644 --- a/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml +++ b/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml @@ -797,7 +797,7 @@ Chcete-li zobrazit nabídku zvukové stopy, změňte 'Zfalšovat streamy videa' Tlačítka jsou skryta Tlačítka jsou zobrazena - + Skrýt karty s informacemi o videu Karty s informacemi o videu jsou skryty Karty s informacemi o videu jsou zobrazeny 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 f32dacd33..b252891b3 100644 --- a/patches/src/main/resources/addresources/values-da-rDK/strings.xml +++ b/patches/src/main/resources/addresources/values-da-rDK/strings.xml @@ -797,7 +797,7 @@ For at vise lydsporsmenuen, skift 'Spoof videostreams' til iPadOS" Knapper er skjult Knapper vises - + Skjul slutskærmkort Slutskærmskortene er skjult Kort til slutskærm vises 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 7ee669512..c1a617cc8 100644 --- a/patches/src/main/resources/addresources/values-de-rDE/strings.xml +++ b/patches/src/main/resources/addresources/values-de-rDE/strings.xml @@ -560,7 +560,7 @@ Passen Sie die Helligkeit an, indem Sie auf der linken Seite des Bildschirms ver Die Vollbild-Lautstärkegeste ist deaktiviert Wischen durch Drücken aktivieren Wischen durch Drücken ist aktiviert - Wischen durch Drücken ist deaktiviert + Wischgeste durch Drücken ist deaktiviert Haptisches Feedback aktivieren Haptisches Feedback ist aktiviert Haptisches Feedback ist deaktiviert @@ -794,7 +794,7 @@ Um das Audiotrack-Menü anzuzeigen, ändern Sie \"Video-Streams fälschen\" zu i Buttons sind ausgeblendet Tasten werden angezeigt - + Endkarte ausblenden Endbildschirmkarten sind ausgeblendet Endbildschirmkarten werden angezeigt 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 3ea46a397..6802840f5 100644 --- a/patches/src/main/resources/addresources/values-el-rGR/strings.xml +++ b/patches/src/main/resources/addresources/values-el-rGR/strings.xml @@ -799,7 +799,7 @@ Second \"item\" text" Κρυμμένα Εμφανίζονται - + Κάρτες τελικής οθόνης Κρυμμένες Εμφανίζονται 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 a89606794..bebfd2ef8 100644 --- a/patches/src/main/resources/addresources/values-es-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-es-rES/strings.xml @@ -797,7 +797,7 @@ Para mostrar el menú de la pista de audio, cambia 'Suplantar transmisiones de v Los botones están ocultos Los botones se muestran - + Ocultar tarjetas de pantalla final Las tarjetas de pantalla de fin están ocultas Se muestran las tarjetas de la pantalla final 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 2d6ad820b..16bde5d03 100644 --- a/patches/src/main/resources/addresources/values-et-rEE/strings.xml +++ b/patches/src/main/resources/addresources/values-et-rEE/strings.xml @@ -797,7 +797,7 @@ Heliraja menüü nägemiseks muutke \"Video voogude võltsimine\" iPadOS-iks"Nupud on peidetud Nupud on nähtavad - + Peida lõpukujunduse kaardid Lõpukujunduse kaardid on peidetud Lõpukujunduse kaardid on nähtavad 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-eu-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-eu-rES/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 81df8ebe8..9fda43100 100644 --- a/patches/src/main/resources/addresources/values-fa-rIR/strings.xml +++ b/patches/src/main/resources/addresources/values-fa-rIR/strings.xml @@ -182,7 +182,7 @@ Second \"item\" text" - + 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 011c7b8d4..0149dce30 100644 --- a/patches/src/main/resources/addresources/values-fi-rFI/strings.xml +++ b/patches/src/main/resources/addresources/values-fi-rFI/strings.xml @@ -797,7 +797,7 @@ Näyttääksesi ääniraitavalikon, muuta \"Videostriimien naamioiminen\" iPadOS Edellinen- ja Seuraava-painikkeet piilotetaan Painikkeet näytetään - + Piilota loppunäytön kortit Loppunäytön kortit piilotetaan Loppunäytön kortit näytetään 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 5cb394885..11cd54f7f 100644 --- a/patches/src/main/resources/addresources/values-fil-rPH/strings.xml +++ b/patches/src/main/resources/addresources/values-fil-rPH/strings.xml @@ -795,7 +795,7 @@ Upang ipakita ang menu ng Audio track, baguhin ang 'Spoof video streams' sa iPad Nakatago ang mga pindutan Ang mga pindutan ay ipinapakita - + Itago ang mga end screen card Nakatago ang mga end screen card Ipinapakita ang mga end screen card 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 675214568..7e9dc2759 100644 --- a/patches/src/main/resources/addresources/values-fr-rFR/strings.xml +++ b/patches/src/main/resources/addresources/values-fr-rFR/strings.xml @@ -797,7 +797,7 @@ Pour afficher le menu Piste audio, définissez \"Falsifier les flux vidéo\" sur Les boutons sont masqués Les boutons sont affichés - + Masquer les écrans de fin au format fiche Les écrans de fin au format fiche sont masqués Les écrans de fin au format fiche sont affichés 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 a0acceb34..e6b356154 100644 --- a/patches/src/main/resources/addresources/values-ga-rIE/strings.xml +++ b/patches/src/main/resources/addresources/values-ga-rIE/strings.xml @@ -797,7 +797,7 @@ Chun roghchlár an rian fuaime a thaispeáint, athraigh 'Sruthanna físeáin bhr Tá cnaipí i bhfolach Taispeántar cnaipí - + Folaigh cártaí scáileáin deireadh Tá cártaí scáileáin deiridh i bhfolach Taispeántar cártaí scáileáin deireadh 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-gl-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-gl-rES/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-gu-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-gu-rIN/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 1d088b22b..9585fa8ec 100644 --- a/patches/src/main/resources/addresources/values-hi-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-hi-rIN/strings.xml @@ -137,7 +137,7 @@ Second \"item\" text" - + 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 464bf02a9..76d720df6 100644 --- a/patches/src/main/resources/addresources/values-hr-rHR/strings.xml +++ b/patches/src/main/resources/addresources/values-hr-rHR/strings.xml @@ -136,7 +136,7 @@ Second \"item\" text" - + 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 c82619edb..60b8f2a0e 100644 --- a/patches/src/main/resources/addresources/values-hu-rHU/strings.xml +++ b/patches/src/main/resources/addresources/values-hu-rHU/strings.xml @@ -797,7 +797,7 @@ Az hangsáv menü megjelenítéséhez állítsa a 'Videó stream-ek meghamisít A gombok elrejtve A gombok megjelennek - + Záróképernyő kártyák elrejtése A záróképernyő kártyák el vannak rejtve A záróképernyő kártyák megjelennek 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 4f37af712..a8457e3dc 100644 --- a/patches/src/main/resources/addresources/values-hy-rAM/strings.xml +++ b/patches/src/main/resources/addresources/values-hy-rAM/strings.xml @@ -797,7 +797,7 @@ MicroG-ի համար մարտկոցի օպտիմալացումը անջատել Կոճակները թաքցված են Կոճակները երևում են - + Էկրանի վերջում քարտերը թաքցնել Էկրանի վերջում քարտերը թաքցված են Էկրանի վերջում քարտերը երևում են 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 3ea45f7e9..37f93acc7 100644 --- a/patches/src/main/resources/addresources/values-in-rID/strings.xml +++ b/patches/src/main/resources/addresources/values-in-rID/strings.xml @@ -402,14 +402,14 @@ Jika Doodle saat ini ditampilkan di wilayah Anda dan pengaturan penyembunyi ini Jumlah penayangan ditampilkan di umpan dan hasil pencarian "Keterbatasan: -• Rak Shorts, halaman channel, dan hasil pencarian mungkin masih menampilkan jumlah penayangan +• Rak Shorts, halaman saluran, dan hasil pencarian mungkin masih menampilkan jumlah penayangan • Fitur ini tidak berfungsi dengan faktor bentuk otomotif" Sembunyikan waktu unggah Waktu unggah disembunyikan di umpan dan hasil penelusuran Waktu unggah ditampilkan di umpan dan hasil penelusuran "Keterbatasan: -• Rak Shorts, halaman channel, dan hasil penelusuran mungkin masih menampilkan waktu unggah +• Rak Shorts, halaman saluran, dan hasil penelusuran mungkin masih menampilkan waktu unggah • Fitur ini tidak berfungsi dengan faktor bentuk otomotif" Sembunyikan kata kunci konten Sembunyikan pencarian dan feed video menggunakan penyaring kata kunci @@ -797,7 +797,7 @@ Untuk menampilkan menu trek audio, ubah 'Palsukan aliran video' ke iPadOS"Tombol disembunyikan Tombol ditampilkan - + Sembunyikan kartu layar akhir Kartu layar akhir disembunyikan Kartu layar akhir ditampilkan 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-is-rIS/strings.xml +++ b/patches/src/main/resources/addresources/values-is-rIS/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 48ee5cd1b..d18e9d218 100644 --- a/patches/src/main/resources/addresources/values-it-rIT/strings.xml +++ b/patches/src/main/resources/addresources/values-it-rIT/strings.xml @@ -797,7 +797,7 @@ Per mostrare il menu della traccia audio, cambia \"Falsifica flussi video\" su i I pulsanti sono nascosti I pulsanti sono visibili - + Nascondi le schede della schermata finale Le schede della schermata finale sono nascoste Le schede della schermata finale sono visibili 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 3125fd399..fe98be636 100644 --- a/patches/src/main/resources/addresources/values-iw-rIL/strings.xml +++ b/patches/src/main/resources/addresources/values-iw-rIL/strings.xml @@ -797,7 +797,7 @@ Second \"item\" text" הלחצנים מוסתרים הלחצנים מוצגים - + הסתר כרטיסי מסך סיום כרטיסי מסך מסיום מוסתרים כרטיסי מסך מסיום מוצגים 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 cbed69f3c..ac5ace6cf 100644 --- a/patches/src/main/resources/addresources/values-ja-rJP/strings.xml +++ b/patches/src/main/resources/addresources/values-ja-rJP/strings.xml @@ -799,7 +799,7 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が 前の動画ボタンと次の動画ボタンは表示されません 前の動画ボタンと次の動画ボタンは表示されます - + 終了画面カードを非表示 終了画面カードは表示されません 終了画面カードは表示されます 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-ka-rGE/strings.xml +++ b/patches/src/main/resources/addresources/values-ka-rGE/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml +++ b/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-km-rKH/strings.xml +++ b/patches/src/main/resources/addresources/values-km-rKH/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 caaa3813c..dfca2a839 100644 --- a/patches/src/main/resources/addresources/values-kn-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-kn-rIN/strings.xml @@ -150,7 +150,7 @@ Second \"item\" text" - + 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 fd15e110b..3d8c8f740 100644 --- a/patches/src/main/resources/addresources/values-ko-rKR/strings.xml +++ b/patches/src/main/resources/addresources/values-ko-rKR/strings.xml @@ -796,7 +796,7 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니 이전 & 다음 동영상 버튼이 숨겨집니다 이전 & 다음 동영상 버튼이 표시됩니다 - + 최종 화면 카드 숨기기 최종 화면 카드가 숨겨집니다 최종 화면 카드가 표시됩니다 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-ky-rKG/strings.xml +++ b/patches/src/main/resources/addresources/values-ky-rKG/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-lo-rLA/strings.xml +++ b/patches/src/main/resources/addresources/values-lo-rLA/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 0740bbe95..e0b821047 100644 --- a/patches/src/main/resources/addresources/values-lt-rLT/strings.xml +++ b/patches/src/main/resources/addresources/values-lt-rLT/strings.xml @@ -797,7 +797,7 @@ Norėdami parodyti garso takelio meniu, pakeiskite „Klastoti vaizdo srautus“ Mygtukai yra paslėpti Mygtukai yra rodomi - + Slėpti ekrano pabaigos korteles Ekrano pabaigos kortelės yra paslėptos Ekrano pabaigos kortelės yra rodomos 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 1b311ba76..298413c8a 100644 --- a/patches/src/main/resources/addresources/values-lv-rLV/strings.xml +++ b/patches/src/main/resources/addresources/values-lv-rLV/strings.xml @@ -797,7 +797,7 @@ Lai parādītu audio celiņa izvēlni, mainiet \"Atdarināt video straumes\" uz Pogas ir paslēptas Pogas ir redzamas - + Paslēpt ekrāna beigās esošās kartītes Ekrāna beigās esošās kartītes ir paslēptas Ekrāna beigās esošās kartītes ir redzamas 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-mk-rMK/strings.xml +++ b/patches/src/main/resources/addresources/values-mk-rMK/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-ml-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ml-rIN/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-mn-rMN/strings.xml +++ b/patches/src/main/resources/addresources/values-mn-rMN/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-mr-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-mr-rIN/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 399669ca3..d2812bbd5 100644 --- a/patches/src/main/resources/addresources/values-ms-rMY/strings.xml +++ b/patches/src/main/resources/addresources/values-ms-rMY/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-my-rMM/strings.xml +++ b/patches/src/main/resources/addresources/values-my-rMM/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-nb-rNO/strings.xml +++ b/patches/src/main/resources/addresources/values-nb-rNO/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 961293711..66f28ffdf 100644 --- a/patches/src/main/resources/addresources/values-ne-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ne-rIN/strings.xml @@ -137,7 +137,7 @@ Second \"item\" text" - + 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 ae7adbe7b..d02dfb849 100644 --- a/patches/src/main/resources/addresources/values-nl-rNL/strings.xml +++ b/patches/src/main/resources/addresources/values-nl-rNL/strings.xml @@ -797,7 +797,7 @@ Om het audiotracks-menu te tonen, wijzig 'Videostreams spoofen' naar iPadOS"Knoppen zijn verborgen Knoppen worden weergegeven - + Verberg eindschermkaarten Eindschermkaarten zijn verborgen Eindschermkaarten worden weergegeven 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-or-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-or-rIN/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-pa-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-pa-rIN/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 6cc0aa06e..96e96b07f 100644 --- a/patches/src/main/resources/addresources/values-pl-rPL/strings.xml +++ b/patches/src/main/resources/addresources/values-pl-rPL/strings.xml @@ -793,7 +793,7 @@ Aby wyświetlić menu ścieżek audio, zmień „Fałszowanie strumieni wideo” Przyciski są ukryte Przyciski są widoczne - + Karty ekranu końcowego Karty ekranu końcowego są ukryte Karty ekranu końcowego są widoczne 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 5e2d96d1b..70e27324c 100644 --- a/patches/src/main/resources/addresources/values-pt-rBR/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rBR/strings.xml @@ -795,7 +795,7 @@ Se alterar esta configuração não fizer efeito, tente mudar para o modo anôni Os botões estão ocultos Os botões serão exibidos - + Ocultar cartões de tela final Cartões de tela final estão ocultos Cartões de tela final não estão ocultos 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 5b0293be1..6002bdf85 100644 --- a/patches/src/main/resources/addresources/values-pt-rPT/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rPT/strings.xml @@ -797,7 +797,7 @@ Para mostrar o menu da faixa de áudio, altere 'Falsificar fluxos de vídeo' par Botões estão ocultos Botões são exibidos - + Esconder cartões de ecrã final Cartões de fim de ecrã estão escondidos Cartões de fim de ecrã são exibidos 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 82ae2935a..97342ace9 100644 --- a/patches/src/main/resources/addresources/values-ro-rRO/strings.xml +++ b/patches/src/main/resources/addresources/values-ro-rRO/strings.xml @@ -795,7 +795,7 @@ Pentru a afișa meniul de piste audio, modificați „Emulare fluxuri video” l Butoanele sunt ascunse Butoanele sunt afișate - + Ascunde cardurile ecranului final Cardurile de pe ecranul de închidere sunt ascunse Cardurile de închidere ecran sunt afișate 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 551a30150..01f23ee11 100644 --- a/patches/src/main/resources/addresources/values-ru-rRU/strings.xml +++ b/patches/src/main/resources/addresources/values-ru-rRU/strings.xml @@ -797,7 +797,7 @@ Second \"item\" text" Кнопки предыдущего и следующего видео в плеере скрыты Кнопки предыдущего и следующего видео в плеере показаны - + Скрыть заставки следующих видео Заставки следующих видео в конце просмотра скрыты Заставки следующих видео в конце просмотра показаны 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-si-rLK/strings.xml +++ b/patches/src/main/resources/addresources/values-si-rLK/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 0ba8360c8..4e74e90d6 100644 --- a/patches/src/main/resources/addresources/values-sk-rSK/strings.xml +++ b/patches/src/main/resources/addresources/values-sk-rSK/strings.xml @@ -795,7 +795,7 @@ Ak chcete zobraziť menu zvukových stôp, zmeňte \"Falošné video streamy\" n Tlačidlá sú skryté Zobrazia sa tlačidlá - + Skryť karty záverečnej obrazovky Karty záverečnej obrazovky sú skryté Zobrazia sa karty záverečnej obrazovky 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 babf8d99b..703e038ef 100644 --- a/patches/src/main/resources/addresources/values-sl-rSI/strings.xml +++ b/patches/src/main/resources/addresources/values-sl-rSI/strings.xml @@ -797,7 +797,7 @@ Za prikaz menija za zvočno skladbo, spremenite \"Ponarejene video tokove\" na i Gumbi so skriti Gumbi so prikazani - + Skrij kartice na končnem zaslonu Kartice na končnem zaslonu so skrite Kartice na končnem zaslonu so prikazane 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 63d72dc34..350d10008 100644 --- a/patches/src/main/resources/addresources/values-sq-rAL/strings.xml +++ b/patches/src/main/resources/addresources/values-sq-rAL/strings.xml @@ -797,7 +797,7 @@ Për të shfaqur menynë e gjurmës audio, ndryshoje 'Falsifiko transmetimet vid Butonat janë të fshehur Butonat janë të dukshme - + Fsheh kartat e ekranit të fundit Kartat e ekranit të fundit janë të fshehura Kartat e ekranit të fundit janë të dukshme 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 b608aed8c..f3219c982 100644 --- a/patches/src/main/resources/addresources/values-sr-rCS/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rCS/strings.xml @@ -146,9 +146,9 @@ Nećete biti obavešteni ni o kakvim neočekivanim događajima." Evidencije su izbrisane - Saniraj linkove za deljenje - Parametar za praćenje iz upita je uklonjen sa deljenih linkova - Parametar za praćenje iz upita nije uklonjen sa deljenih linkova + Očisti deljene linkove + Parametar upita za praćenje je uklonjen iz deljenih linkova + Parametar upita za praćenje nije uklonjen iz deljenih linkova Promeni linkove za deljenje na youtube.com Deljeni linkovi koriste youtube.com Deljeni linkovi koriste music.youtube.com @@ -379,9 +379,9 @@ Ako se Doodle trenutno prikazuje u vašem regionu i ova opcija skrivanja je uklj Sakrij dugme „Napravi Short” Dugme „Napravi Short” je skriveno Dugme „Napravi Short” je prikazano - Sakrij dugmad za emodžije i vremensku oznaku - Dugmad za emodžije i vremensku oznaku su skrivena - Dugmad za emodžije i vremensku oznaku su prikazana + Sakrij dugmad emodžija i vremenske oznake + Dugmad emodžija i vremenske oznake su skrivena + Dugmad emodžija i vremenske oznake su prikazana Sakrij komentar za pregled Komentar za pregled je skriven Komentar za pregled je prikazan @@ -398,19 +398,19 @@ Ako se Doodle trenutno prikazuje u vašem regionu i ova opcija skrivanja je uklj Lista stringova za pravljenje putanje komponenti za filtriranje, odvojena novim redom Nevažeći prilagođeni filter: %s Sakrij broj pregleda - Broj pregleda je sakriven u feed-u i rezultatima pretrage - Broj pregleda je prikazan u feed-u i rezultatima pretrage + Broj pregleda je skriven u fidu i rezultatima pretrage + Broj pregleda je prikazan u fidu i rezultatima pretrage "Ograničenja: -• Shorts sekcije, stranice kanala i rezultati pretrage i dalje mogu prikazivati brojeve pregleda +• Police Shorts, stranice kanala i rezultati pretrage mogu i dalje prikazivati broj pregleda • Ova funkcija ne radi sa automobilskim faktorom forme" Sakrij vreme otpremanja - Vreme otpremanja je skriveno u feed-u i rezultatima pretrage - Vreme otpremanja je prikazano u feed-u i rezultatima pretrage + Vreme otpremanja je skriveno u fidu i rezultatima pretrage + Vreme otpremanja je prikazano u fidu i rezultatima pretrage "Ograničenja: -• Shorts police, stranice kanala i rezultati pretrage mogu i dalje prikazivati vreme otpremanja -• Ova funkcija ne radi sa automobilskim form faktorom" +• Police Shorts, stranice kanala i rezultati pretrage mogu i dalje prikazivati vreme otpremanja +• Ova funkcija ne radi sa automobilskim faktorom forme" Sakrij sadržaj ključne reči Sakrijte videe iz rezultata pretrage i fida koristeći filtere ključnih reči Sakrij videe na kartici „Početna” prema ključnim rečima @@ -797,7 +797,7 @@ Da biste prikazali meni „Audio snimak”, promenite opciju „Lažirani video Dugmad za prethodni i sledeći video su skrivena Dugmad za prethodni i sledeći video su prikazana - + Sakrij kartice završnog ekrana Kartice završnog ekrana su skrivene Kartice završnog ekrana su prikazane @@ -1351,7 +1351,7 @@ Ograničenje: Korišćenje dugmeta „Nazad” na traci sa alatkama možda neće Moderan 2 Moderan 3 Moderan 4 - Onemogući zaobljene ivice + Onemogući zaobljene uglove Uglovi su kvadratni Uglovi su zaobljeni Omogući dvostruki dodir i štipanje za promenu veličine @@ -1360,12 +1360,12 @@ Ograničenje: Korišćenje dugmeta „Nazad” na traci sa alatkama možda neće • Dvaput dodirnite da biste povećali veličinu mini-plejera • Dvaput dodirnite ponovo da biste vratili originalnu veličinu" Radnja dvostrukog dodira i štipanja za promenu veličine je onemogućena - Onemogući prevlačenje i ispuštanje + Onemogući prevlačenje i otpuštanje Prevlačenje i otpuštanje je onemogućeno "Povlačenje i otpuštanje je omogućeno Mini-plejer se može prevući u bilo koji ugao ekrana" - Onemogući horizontalni gest prevlačenja + Onemogući pokret horizontalnog prevlačenja Pokret horizontalnog prevlačenja je onemogućen "Pokret horizontalnog prevlačenja je omogućen @@ -1584,7 +1584,7 @@ Ako ovo omogućite, mogu biti otključani viši kvaliteti videa" Video kodek se određuje automatski "Prednosti: • Može poboljšati trajanje baterije -• Može vratiti nedostajuće rezolucije videa na starijem uređaju +• Može vratiti nedostajuće rezolucije videa na starijim uređajima Ograničenja: • Maksimalna rezolucija je 1080p 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 635ab6076..95a61fb3c 100644 --- a/patches/src/main/resources/addresources/values-sr-rSP/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rSP/strings.xml @@ -146,9 +146,9 @@ Second \"item\" text" Евиденције су избрисане - Очисти везе за дељење - Параметар упита за праћење је уклоњен из дељених веза - Параметар упита за праћење није уклоњен из дељених веза + Очисти дељене линкове + Параметар упита за праћење је уклоњен из дељених линкова + Параметар упита за праћење није уклоњен из дељених линкова Промени линкове за дељење на youtube.com Дељени линкови користе youtube.com Дељени линкови користе music.youtube.com @@ -379,9 +379,9 @@ Second \"item\" text" Сакриј дугме „Направи Short” Дугме „Направи Short” је скривено Дугме „Направи Short” је приказано - Сакриј дугмад за емотиконе и временске ознаке - Дугмад за емотиконе и временске ознаке су скривена - Дугмад за емотиконе и временске ознаке су приказана + Сакриј дугмад емоџија и временске ознаке + Дугмад емоџија и временске ознаке су скривена + Дугмад емоџија и временске ознаке су приказана Сакриј коментар за преглед Коментар за преглед је скривен Коментар за преглед је приказан @@ -398,19 +398,19 @@ Second \"item\" text" Листа стрингова за прављење путање компоненти за филтрирање, одвојена новим редом Неважећи прилагођени филтер: %s Сакриј број прегледа - Број прегледа је сакривен у фиду и резултатима претраге + Број прегледа је скривен у фиду и резултатима претраге Број прегледа је приказан у фиду и резултатима претраге "Ограничења: -• Shorts секције, странице канала и резултати претраге могу и даље приказивати број прегледа -• Ова функција не ради са аутомобилским форм фактором" +• Полице Shorts, странице канала и резултати претраге могу и даље приказивати број прегледа +• Ова функција не ради са аутомобилским фактором форме" Сакриј време отпремања Време отпремања је скривено у фиду и резултатима претраге Време отпремања је приказано у фиду и резултатима претраге "Ограничења: -• Полице за Shorts, странице канала и резултати претраге могу и даље приказивати време отпремања -• Ова функција не ради са аутомобилским форм фактором" +• Полице Shorts, странице канала и резултати претраге могу и даље приказивати време отпремања +• Ова функција не ради са аутомобилским фактором форме" Сакриј садржај кључне речи Сакријте видее из резултата претраге и фида користећи филтере кључних речи Сакриј видее на картици „Почетна” према кључним речима @@ -797,7 +797,7 @@ Second \"item\" text" Дугмад за претходни и следећи видео су скривена Дугмад за претходни и следећи видео су приказана - + Сакриј картице завршног екрана Картице завршног екрана су скривене Картице завршног екрана су приказане @@ -1365,7 +1365,7 @@ Second \"item\" text" "Превлачење и отпуштање је омогућено Мини-плејер се може превући у било који угао екрана" - Онемогући хоризонтални покрет превлачења + Онемогући покрет хоризонталног превлачења Покрет хоризонталног превлачења је онемогућен "Покрет хоризонталног превлачења је омогућен @@ -1587,7 +1587,7 @@ Second \"item\" text" Видео кодек се одређује аутоматски "Предности: • Може побољшати трајање батерије -• Може вратити недостајуће резолуције видеа на старијем уређају +• Може вратити недостајуће резолуције видеа на старијим уређајима Ограничења: • Максимална резолуција је 1080p 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 1e982b5a3..9672be5cf 100644 --- a/patches/src/main/resources/addresources/values-sv-rSE/strings.xml +++ b/patches/src/main/resources/addresources/values-sv-rSE/strings.xml @@ -797,7 +797,7 @@ För att visa menyn Ljudspår, ändra \"Förfalska videoströmmar\" till iPadOS" Knapparna är dolda Knapparna visas - + Dölj slutskärmskort Slutskärmskort är dolda Slutskärmskort visas 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-sw-rKE/strings.xml +++ b/patches/src/main/resources/addresources/values-sw-rKE/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-ta-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ta-rIN/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-te-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-te-rIN/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 9aa721686..d2a17d15f 100644 --- a/patches/src/main/resources/addresources/values-th-rTH/strings.xml +++ b/patches/src/main/resources/addresources/values-th-rTH/strings.xml @@ -795,7 +795,7 @@ Second \"item\" text" ปุ่มซ่อนอยู่ ปุ่มแสดงอยู่ - + ซ่อนการ์ดหน้าจอสิ้นสุด การ์ดหน้าจอสิ้นสุดซ่อนอยู่ การ์ดหน้าจอสิ้นสุดแสดงอยู่ 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 82869534b..3f31fa5e2 100644 --- a/patches/src/main/resources/addresources/values-tr-rTR/strings.xml +++ b/patches/src/main/resources/addresources/values-tr-rTR/strings.xml @@ -797,7 +797,7 @@ Ses parçası menüsünü göstermek için 'Video akışlarını taklit et' ayar Önceki & Sonraki düğmeleri gizli Önceki & Sonraki düğmeleri görünür - + Bitiş ekranı kartlarını gizle Bitiş ekranı kartları gizli Bitiş ekranı kartları görünür 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 1c99e2a58..798cafee5 100644 --- a/patches/src/main/resources/addresources/values-uk-rUA/strings.xml +++ b/patches/src/main/resources/addresources/values-uk-rUA/strings.xml @@ -797,7 +797,7 @@ Second \"item\" text" Кнопки попереднього та наступного відео приховано Кнопки попереднього та наступного відео показуються - + Приховати картки на кінцевому екрані Картки на кінцевому екрані приховано Картки на кінцевому екрані показуються 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-ur-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ur-rIN/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml +++ b/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + 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 b0796c243..300aa008a 100644 --- a/patches/src/main/resources/addresources/values-vi-rVN/strings.xml +++ b/patches/src/main/resources/addresources/values-vi-rVN/strings.xml @@ -23,7 +23,7 @@ Second \"item\" text" Kiểm tra thất bại Mở trang web chính thức - Bỏ qua + Phớt lờ <h5>Ứng dụng này xem ra không phải do bạn tự vá.</h5><br>Ứng dụng này có thể không hoạt động chính xác, <b>tiềm ẩn rủi ro hoặc thậm chí gây nguy hiểm khi sử dụng</b>.<br><br>Những kiểm tra dưới đây cho thấy rằng ứng dụng được vá sẵn hoặc lấy từ nguồn khác;<br><br><small>%1$s</small><br>Chúng tôi khuyến nghị bạn nên <b>gỡ cài đặt ứng này và tự vá lại</b> để đảm bảo bạn đang dùng một ứng dụng an toàn và hợp lệ.<p><br>Cảnh báo này sẽ chỉ hiện hai lần, hãy cân nhắc trước khi bỏ qua. Đã vá trên một thiết bị khác Không được cài đặt bởi ReVanced Manager @@ -50,7 +50,7 @@ Second \"item\" text" Đặt lại cài đặt ReVanced về mặc định Đã nhập cài đặt %d Nhập thất bại: %s - Tìm kiếm + Cài đặt tìm kiếm Không tìm thấy kết quả nào cho \'%s\' Thử từ khóa khác Các tìm kiếm gần đây @@ -797,7 +797,7 @@ Nếu thay đổi cài đặt này không có hiệu lực, hãy thử chuyển Các nút đã bị ẩn Các nút được hiển thị - + Ẩn thẻ màn hình kết thúc Thẻ màn hình kết thúc đã bị ẩn Thẻ màn hình kết thúc được hiển thị 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 86186d6e6..3244440e5 100644 --- a/patches/src/main/resources/addresources/values-zh-rCN/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rCN/strings.xml @@ -797,7 +797,7 @@ Second \"item\" text" 按钮已隐藏 按钮已显示 - + 隐藏片尾卡 片尾卡已隐藏 片尾卡已显示 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 adbf8b177..d5ba1abc3 100644 --- a/patches/src/main/resources/addresources/values-zh-rTW/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rTW/strings.xml @@ -797,7 +797,7 @@ Second \"item\" text" 已隱藏「上一部」和「下一部」按鈕 已顯示「上一部」和「下一部」按鈕 - + 隱藏片尾資訊卡 已隱藏片尾資訊卡 已顯示片尾資訊卡 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 fcad9b45d..e6bdc7bd4 100644 --- a/patches/src/main/resources/addresources/values-zu-rZA/strings.xml +++ b/patches/src/main/resources/addresources/values-zu-rZA/strings.xml @@ -135,7 +135,7 @@ Second \"item\" text" - + From 328234f39ada81542e596f04e8ce410c787c15c8 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sun, 28 Sep 2025 14:31:40 +0400 Subject: [PATCH 13/63] fix(YouTube Music - GmsCore support): Handle sharing links to certain apps such as Instagram (#6026) --- .../misc/fileprovider/FileProviderPatch.kt | 44 +++++++++++++++++++ .../music/misc/fileprovider/Fingerprints.kt | 11 +++++ .../music/misc/gms/GmsCoreSupportPatch.kt | 7 ++- .../music/misc/settings/SettingsPatch.kt | 3 +- 4 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 patches/src/main/kotlin/app/revanced/patches/music/misc/fileprovider/FileProviderPatch.kt create mode 100644 patches/src/main/kotlin/app/revanced/patches/music/misc/fileprovider/Fingerprints.kt diff --git a/patches/src/main/kotlin/app/revanced/patches/music/misc/fileprovider/FileProviderPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/misc/fileprovider/FileProviderPatch.kt new file mode 100644 index 000000000..32c162a46 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/music/misc/fileprovider/FileProviderPatch.kt @@ -0,0 +1,44 @@ +package app.revanced.patches.music.misc.fileprovider + +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patches.all.misc.packagename.setOrGetFallbackPackageName +import app.revanced.patches.music.utils.fix.fileprovider.fileProviderResolverFingerprint + +internal fun fileProviderPatch( + youtubePackageName: String, + musicPackageName: String +) = bytecodePatch( + description = "Fixes broken YouTube Music file provider that prevents sharing with specific apps such as Instagram." +) { + finalize { + // Must do modification last, so change package name value is correctly set. + val musicChangedPackageName = setOrGetFallbackPackageName(musicPackageName) + + // For some reason, if the app gets "android.support.FILE_PROVIDER_PATHS", + // the package name of YouTube is used, not the package name of the YT Music. + // + // There is no issue in the stock YT Music, but this is an issue in the GmsCore Build. + // https://github.com/ReVanced/revanced-patches/issues/55 + // + // To solve this issue, replace the package name of YouTube with YT Music's package name. + fileProviderResolverFingerprint.method.addInstructionsWithLabels( + 0, + """ + const-string v0, "com.google.android.youtube.fileprovider" + invoke-static { p1, v0 }, Ljava/util/Objects;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z + move-result v0 + if-nez v0, :fix + const-string v0, "$youtubePackageName.fileprovider" + invoke-static { p1, v0 }, Ljava/util/Objects;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z + move-result v0 + if-nez v0, :fix + goto :ignore + :fix + const-string p1, "$musicChangedPackageName.fileprovider" + :ignore + nop + """ + ) + } +} \ No newline at end of file diff --git a/patches/src/main/kotlin/app/revanced/patches/music/misc/fileprovider/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/music/misc/fileprovider/Fingerprints.kt new file mode 100644 index 000000000..16a2d6a58 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/music/misc/fileprovider/Fingerprints.kt @@ -0,0 +1,11 @@ +package app.revanced.patches.music.utils.fix.fileprovider + +import app.revanced.patcher.fingerprint + +internal val fileProviderResolverFingerprint = fingerprint { + returns("L") + strings( + "android.support.FILE_PROVIDER_PATHS", + "Name must not be empty" + ) +} \ No newline at end of file diff --git a/patches/src/main/kotlin/app/revanced/patches/music/misc/gms/GmsCoreSupportPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/misc/gms/GmsCoreSupportPatch.kt index a037909a6..0d6b319d8 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/misc/gms/GmsCoreSupportPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/misc/gms/GmsCoreSupportPatch.kt @@ -9,6 +9,7 @@ import app.revanced.patches.music.misc.gms.Constants.REVANCED_MUSIC_PACKAGE_NAME import app.revanced.patches.music.misc.settings.PreferenceScreen import app.revanced.patches.music.misc.settings.settingsPatch import app.revanced.patches.music.misc.spoof.spoofVideoStreamsPatch +import app.revanced.patches.music.misc.fileprovider.fileProviderPatch import app.revanced.patches.shared.castContextFetchFingerprint import app.revanced.patches.shared.misc.gms.gmsCoreSupportPatch import app.revanced.patches.shared.misc.settings.preference.IntentPreference @@ -60,6 +61,10 @@ private fun gmsCoreSupportResourcePatch( ) { dependsOn( addResourcesPatch, - settingsPatch + settingsPatch, + fileProviderPatch( + MUSIC_PACKAGE_NAME, + REVANCED_MUSIC_PACKAGE_NAME + ) ) } diff --git a/patches/src/main/kotlin/app/revanced/patches/music/misc/settings/SettingsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/misc/settings/SettingsPatch.kt index 1ea963470..e95db8c36 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/misc/settings/SettingsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/misc/settings/SettingsPatch.kt @@ -6,6 +6,7 @@ import app.revanced.patches.all.misc.packagename.setOrGetFallbackPackageName import app.revanced.patches.all.misc.resources.addResources import app.revanced.patches.all.misc.resources.addResourcesPatch import app.revanced.patches.music.misc.extension.sharedExtensionPatch +import app.revanced.patches.music.misc.gms.Constants.MUSIC_PACKAGE_NAME import app.revanced.patches.shared.misc.mapping.resourceMappingPatch import app.revanced.patches.shared.misc.settings.preference.BasePreference import app.revanced.patches.shared.misc.settings.preference.BasePreferenceScreen @@ -126,7 +127,7 @@ fun newIntent(settingsName: String) = IntentPreference.Intent( targetClass = "com.google.android.gms.common.api.GoogleApiActivity" ) { // The package name change has to be reflected in the intent. - setOrGetFallbackPackageName("com.google.android.apps.youtube.music") + setOrGetFallbackPackageName(MUSIC_PACKAGE_NAME) } object PreferenceScreen : BasePreferenceScreen() { From 1754023dd6c34d85e4c64832cf4723e4256bbdb3 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 28 Sep 2025 10:34:39 +0000 Subject: [PATCH 14/63] chore: Release v5.42.0-dev.4 [skip ci] # [5.42.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.3...v5.42.0-dev.4) (2025-09-28) ### Bug Fixes * **YouTube Music - GmsCore support:** Handle sharing links to certain apps such as Instagram ([#6026](https://github.com/ReVanced/revanced-patches/issues/6026)) ([328234f](https://github.com/ReVanced/revanced-patches/commit/328234f39ada81542e596f04e8ce410c787c15c8)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e472c2c1..92c666395 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.3...v5.42.0-dev.4) (2025-09-28) + + +### Bug Fixes + +* **YouTube Music - GmsCore support:** Handle sharing links to certain apps such as Instagram ([#6026](https://github.com/ReVanced/revanced-patches/issues/6026)) ([328234f](https://github.com/ReVanced/revanced-patches/commit/328234f39ada81542e596f04e8ce410c787c15c8)) + # [5.42.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.2...v5.42.0-dev.3) (2025-09-28) diff --git a/gradle.properties b/gradle.properties index f90566abb..bcc02b5d0 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.42.0-dev.3 +version = 5.42.0-dev.4 From 4c8b56f5466b244737f501654eb7c5d34b6b2f88 Mon Sep 17 00:00:00 2001 From: MarcaD <152095496+MarcaDian@users.noreply.github.com> Date: Sun, 28 Sep 2025 14:26:12 +0300 Subject: [PATCH 15/63] feat(YouTube Music): Add `Custom branding` patch (#6007) Co-authored-by: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> --- patches/api/patches.api | 4 + .../layout/branding/CustomBrandingPatch.kt | 81 +++++++++ .../music/layout/branding/Fingerprints.kt | 12 ++ .../branding/BaseCustomBrandingPatch.kt | 146 +++++++++++++++ .../layout/branding/CustomBrandingPatch.kt | 167 +++++------------- .../misc/playservice/VersionCheckPatch.kt | 1 + ...veproduct_youtube_background_color_108.png | Bin 2089 -> 0 bytes ...veproduct_youtube_foreground_color_108.png | Bin 3504 -> 0 bytes .../mipmap-hdpi/ic_launcher.png | Bin 2989 -> 0 bytes .../mipmap-hdpi/ic_launcher_round.png | Bin 2989 -> 0 bytes ...veproduct_youtube_background_color_108.png | Bin 1954 -> 0 bytes ...veproduct_youtube_foreground_color_108.png | Bin 2777 -> 0 bytes .../mipmap-mdpi/ic_launcher.png | Bin 1825 -> 0 bytes .../mipmap-mdpi/ic_launcher_round.png | Bin 1825 -> 0 bytes ...veproduct_youtube_background_color_108.png | Bin 2290 -> 0 bytes ...veproduct_youtube_foreground_color_108.png | Bin 4418 -> 0 bytes .../mipmap-xhdpi/ic_launcher.png | Bin 4281 -> 0 bytes .../mipmap-xhdpi/ic_launcher_round.png | Bin 4281 -> 0 bytes ...veproduct_youtube_background_color_108.png | Bin 2657 -> 0 bytes ...veproduct_youtube_foreground_color_108.png | Bin 6194 -> 0 bytes .../mipmap-xxhdpi/ic_launcher.png | Bin 6760 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_round.png | Bin 6760 -> 0 bytes ...veproduct_youtube_background_color_108.png | Bin 2968 -> 0 bytes ...veproduct_youtube_foreground_color_108.png | Bin 8320 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher.png | Bin 9782 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher_round.png | Bin 9782 -> 0 bytes ...ube_music_2024_q4_background_color_108.png | Bin 0 -> 98 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 0 -> 1425 bytes .../music/mipmap-hdpi/ic_launcher_release.png | Bin 0 -> 2634 bytes ...ube_music_2024_q4_background_color_108.png | Bin 0 -> 92 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 0 -> 916 bytes .../music/mipmap-mdpi/ic_launcher_release.png | Bin 0 -> 1613 bytes ...ube_music_2024_q4_background_color_108.png | Bin 0 -> 100 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 0 -> 1982 bytes .../mipmap-xhdpi/ic_launcher_release.png | Bin 0 -> 3750 bytes ...ube_music_2024_q4_background_color_108.png | Bin 0 -> 108 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 0 -> 3146 bytes .../mipmap-xxhdpi/ic_launcher_release.png | Bin 0 -> 5777 bytes ...ube_music_2024_q4_background_color_108.png | Bin 0 -> 117 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 0 -> 4611 bytes .../mipmap-xxxhdpi/ic_launcher_release.png | Bin 0 -> 8196 bytes ...veproduct_youtube_background_color_108.png | Bin 0 -> 98 bytes ...veproduct_youtube_foreground_color_108.png | Bin 0 -> 1503 bytes .../youtube/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2685 bytes .../youtube/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 2685 bytes ...veproduct_youtube_background_color_108.png | Bin 0 -> 92 bytes ...veproduct_youtube_foreground_color_108.png | Bin 0 -> 922 bytes .../youtube/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1624 bytes .../youtube/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 1624 bytes ...veproduct_youtube_background_color_108.png | Bin 0 -> 100 bytes ...veproduct_youtube_foreground_color_108.png | Bin 0 -> 2075 bytes .../youtube/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3800 bytes .../mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 3800 bytes ...veproduct_youtube_background_color_108.png | Bin 0 -> 108 bytes ...veproduct_youtube_foreground_color_108.png | Bin 0 -> 3361 bytes .../youtube/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 5831 bytes .../mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 5831 bytes ...veproduct_youtube_background_color_108.png | Bin 0 -> 117 bytes ...veproduct_youtube_foreground_color_108.png | Bin 0 -> 4813 bytes .../youtube/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 8371 bytes .../mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 8371 bytes 61 files changed, 285 insertions(+), 126 deletions(-) create mode 100644 patches/src/main/kotlin/app/revanced/patches/music/layout/branding/CustomBrandingPatch.kt create mode 100644 patches/src/main/kotlin/app/revanced/patches/music/layout/branding/Fingerprints.kt create mode 100644 patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/BaseCustomBrandingPatch.kt delete mode 100644 patches/src/main/resources/custom-branding/mipmap-hdpi/adaptiveproduct_youtube_background_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-hdpi/adaptiveproduct_youtube_foreground_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-hdpi/ic_launcher.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-hdpi/ic_launcher_round.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-mdpi/adaptiveproduct_youtube_background_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-mdpi/adaptiveproduct_youtube_foreground_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-mdpi/ic_launcher.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-mdpi/ic_launcher_round.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-xhdpi/adaptiveproduct_youtube_background_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-xhdpi/adaptiveproduct_youtube_foreground_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-xhdpi/ic_launcher.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-xxhdpi/adaptiveproduct_youtube_background_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-xxhdpi/adaptiveproduct_youtube_foreground_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-xxhdpi/ic_launcher.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-xxxhdpi/adaptiveproduct_youtube_background_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-xxxhdpi/adaptiveproduct_youtube_foreground_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 patches/src/main/resources/custom-branding/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 patches/src/main/resources/custom-branding/music/mipmap-hdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png create mode 100644 patches/src/main/resources/custom-branding/music/mipmap-hdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png create mode 100644 patches/src/main/resources/custom-branding/music/mipmap-hdpi/ic_launcher_release.png create mode 100644 patches/src/main/resources/custom-branding/music/mipmap-mdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png create mode 100644 patches/src/main/resources/custom-branding/music/mipmap-mdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png create mode 100644 patches/src/main/resources/custom-branding/music/mipmap-mdpi/ic_launcher_release.png create mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xhdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png create mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xhdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png create mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xhdpi/ic_launcher_release.png create mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png create mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png create mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/ic_launcher_release.png create mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png create mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png create mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/ic_launcher_release.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/adaptiveproduct_youtube_background_color_108.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/adaptiveproduct_youtube_foreground_color_108.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/ic_launcher.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/ic_launcher_round.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/adaptiveproduct_youtube_background_color_108.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/adaptiveproduct_youtube_foreground_color_108.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/ic_launcher.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/ic_launcher_round.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/adaptiveproduct_youtube_background_color_108.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/adaptiveproduct_youtube_foreground_color_108.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/ic_launcher.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/ic_launcher_round.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/adaptiveproduct_youtube_background_color_108.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/adaptiveproduct_youtube_foreground_color_108.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/adaptiveproduct_youtube_background_color_108.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/adaptiveproduct_youtube_foreground_color_108.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/ic_launcher.png create mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/patches/api/patches.api b/patches/api/patches.api index 33b6ea28d..38dc2b638 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -372,6 +372,10 @@ public final class app/revanced/patches/music/interaction/permanentshuffle/Perma public static final fun getPermanentShufflePatch ()Lapp/revanced/patcher/patch/BytecodePatch; } +public final class app/revanced/patches/music/layout/branding/CustomBrandingPatchKt { + public static final fun getCustomBrandingPatch ()Lapp/revanced/patcher/patch/ResourcePatch; +} + public final class app/revanced/patches/music/layout/castbutton/HideCastButtonKt { public static final fun getHideCastButton ()Lapp/revanced/patcher/patch/BytecodePatch; } diff --git a/patches/src/main/kotlin/app/revanced/patches/music/layout/branding/CustomBrandingPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/layout/branding/CustomBrandingPatch.kt new file mode 100644 index 000000000..c85b2c0ed --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/music/layout/branding/CustomBrandingPatch.kt @@ -0,0 +1,81 @@ +package app.revanced.patches.music.layout.branding + +import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels +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.baseCustomBrandingPatch +import app.revanced.patches.shared.misc.mapping.get +import app.revanced.patches.shared.misc.mapping.resourceMappingPatch +import app.revanced.patches.shared.misc.mapping.resourceMappings +import app.revanced.util.getReference +import app.revanced.util.indexOfFirstInstructionOrThrow +import app.revanced.util.indexOfFirstInstructionReversed +import app.revanced.util.indexOfFirstLiteralInstructionOrThrow +import com.android.tools.smali.dexlib2.Opcode +import com.android.tools.smali.dexlib2.iface.reference.MethodReference + +private val disableSplashAnimationPatch = bytecodePatch { + + dependsOn(resourceMappingPatch) + + execute { + // The existing YT animation usually only shows for a fraction of a second, + // and the existing animation does not match the new splash screen + // causing the original YT Music logo to momentarily flash on screen as the animation starts. + // + // Could replace the lottie animation file with our own custom animation (app_launch.json), + // but the animation is not always the same size as the launch screen and it's still + // barely shown. Instead turn off the animation entirely (app will also launch a little faster). + cairoSplashAnimationConfigFingerprint.method.apply { + val mainActivityLaunchAnimation = resourceMappings["layout", "main_activity_launch_animation"] + val literalIndex = indexOfFirstLiteralInstructionOrThrow( + mainActivityLaunchAnimation + ) + val insertIndex = indexOfFirstInstructionReversed(literalIndex) { + this.opcode == Opcode.INVOKE_VIRTUAL && + getReference()?.name == "setContentView" + } + 1 + val jumpIndex = indexOfFirstInstructionOrThrow(insertIndex) { + opcode == Opcode.INVOKE_VIRTUAL && + getReference()?.parameterTypes?.firstOrNull() == "Ljava/lang/Runnable;" + } + 1 + + addInstructionsWithLabels( + insertIndex, + "goto :skip_animation", + ExternalLabel("skip_animation", getInstruction(jumpIndex)) + ) + } + } +} + +private const val APP_NAME = "YT Music ReVanced" + +@Suppress("unused") +val customBrandingPatch = baseCustomBrandingPatch( + defaultAppName = APP_NAME, + appNameValues = mapOf( + "YT Music ReVanced" to APP_NAME, + "Music ReVanced" to "Music ReVanced", + "Music" to "Music", + "YT Music" to "YT Music", + ), + resourceFolder = "custom-branding/music", + iconResourceFileNames = arrayOf( + "adaptiveproduct_youtube_music_2024_q4_background_color_108", + "adaptiveproduct_youtube_music_2024_q4_foreground_color_108", + "ic_launcher_release", + ), + + block = { + dependsOn(disableSplashAnimationPatch) + + compatibleWith( + "com.google.android.apps.youtube.music"( + "7.29.52", + "8.10.52" + ) + ) + } +) diff --git a/patches/src/main/kotlin/app/revanced/patches/music/layout/branding/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/music/layout/branding/Fingerprints.kt new file mode 100644 index 000000000..8e8989983 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/music/layout/branding/Fingerprints.kt @@ -0,0 +1,12 @@ +package app.revanced.patches.music.layout.branding + +import app.revanced.patcher.fingerprint +import app.revanced.patches.music.shared.YOUTUBE_MUSIC_MAIN_ACTIVITY_CLASS_TYPE + +internal val cairoSplashAnimationConfigFingerprint = fingerprint { + returns("V") + parameters("Landroid/os/Bundle;") + custom { method, classDef -> + method.name == "onCreate" && method.definingClass == YOUTUBE_MUSIC_MAIN_ACTIVITY_CLASS_TYPE + } +} 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 new file mode 100644 index 000000000..703d403ec --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/BaseCustomBrandingPatch.kt @@ -0,0 +1,146 @@ +package app.revanced.patches.shared.layout.branding + +import app.revanced.patcher.patch.ResourcePatch +import app.revanced.patcher.patch.ResourcePatchBuilder +import app.revanced.patcher.patch.ResourcePatchContext +import app.revanced.patcher.patch.resourcePatch +import app.revanced.patcher.patch.stringOption +import app.revanced.util.ResourceGroup +import app.revanced.util.Utils.trimIndentMultiline +import app.revanced.util.copyResources +import java.io.File +import java.nio.file.Files +import java.util.logging.Logger + +private const val REVANCED_ICON = "ReVanced*Logo" // Can never be a valid path. + +internal val mipmapDirectories = arrayOf( + "xxxhdpi", + "xxhdpi", + "xhdpi", + "hdpi", + "mdpi", +).map { "mipmap-$it" }.toTypedArray() + +private fun formatResourceFileList(resourceNames: Array) = resourceNames.joinToString("\n") { "- $it" } + +/** + * Attempts to fix unescaped and invalid characters not allowed for an Android app name. + */ +private fun escapeAppName(name: String): String? { + // Remove ASCII control characters. + val cleanedName = name.filter { it.code >= 32 } + + // Replace invalid XML characters with escaped equivalents. + val escapedName = cleanedName + .replace("&", "&") // Must be first to avoid double-escaping. + .replace("<", "<") + .replace(">", ">") + .replace(Regex("(?, + resourceFolder: String, + iconResourceFileNames: Array, + block: ResourcePatchBuilder.() -> Unit = {}, + executeBlock: ResourcePatchContext.() -> Unit = {} +): ResourcePatch = resourcePatch( + name = "Custom branding", + description = "Applies a custom app name and icon. Defaults to \"$defaultAppName\" and the ReVanced logo.", + use = false, +) { + val iconResourceFileNamesPng = iconResourceFileNames.map { "$it.png" }.toTypedArray() + + val appName by stringOption( + key = "appName", + default = defaultAppName, + values = appNameValues, + title = "App name", + description = "The name of the app.", + ) + + val iconPath by stringOption( + key = "iconPath", + default = REVANCED_ICON, + values = mapOf("ReVanced Logo" to REVANCED_ICON), + title = "App icon", + description = """ + The icon to apply to the app. + + If a path to a folder is provided, the folder must contain the following folders: + + ${formatResourceFileList(mipmapDirectories)} + + Each of these folders must contain the following files: + + ${formatResourceFileList(iconResourceFileNamesPng)} + """.trimIndentMultiline(), + ) + + block() + + execute { + // Change the app icon and launch screen. + val iconResourceGroups = mipmapDirectories.map { directory -> + ResourceGroup( + directory, + *iconResourceFileNamesPng, + ) + } + + val iconPathTrimmed = iconPath!!.trim() + if (iconPathTrimmed == REVANCED_ICON) { + iconResourceGroups.forEach { + copyResources(resourceFolder, it) + } + } else { + val filePath = File(iconPathTrimmed) + val resourceDirectory = get("res") + + iconResourceGroups.forEach { group -> + val fromDirectory = filePath.resolve(group.resourceDirectoryName) + val toDirectory = resourceDirectory.resolve(group.resourceDirectoryName) + + group.resources.forEach { iconFileName -> + Files.write( + toDirectory.resolve(iconFileName).toPath(), + fromDirectory.resolve(iconFileName).readBytes(), + ) + } + } + } + + // Change the app name. + escapeAppName(appName!!)?.let { escapedAppName -> + val newValue = "android:label=\"$escapedAppName\"" + + val manifest = get("AndroidManifest.xml") + val original = manifest.readText() + val replacement = original + // YouTube + .replace("android:label=\"@string/application_name\"", newValue) + // YT Music + .replace("android:label=\"@string/app_launcher_name\"", newValue) + + if (original == replacement) { + Logger.getLogger(this::class.java.name).warning( + "Could not replace manifest app name" + ) + } + + manifest.writeText(replacement) + } + + executeBlock() // Must be after the main code to rename the new icons for YouTube 19.34+. + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt index 8a9c44c30..27273680e 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt @@ -1,141 +1,56 @@ package app.revanced.patches.youtube.layout.branding -import app.revanced.patcher.patch.resourcePatch -import app.revanced.patcher.patch.stringOption -import app.revanced.patches.youtube.misc.playservice.is_19_34_or_greater -import app.revanced.patches.youtube.misc.playservice.versionCheckPatch -import app.revanced.util.ResourceGroup -import app.revanced.util.Utils.trimIndentMultiline -import app.revanced.util.copyResources -import java.io.File +import app.revanced.patches.shared.layout.branding.baseCustomBrandingPatch +import app.revanced.patches.shared.layout.branding.mipmapDirectories import java.nio.file.Files -private const val REVANCED_ICON = "ReVanced*Logo" // Can never be a valid path. private const val APP_NAME = "YouTube ReVanced" -private val iconResourceFileNames = arrayOf( - "adaptiveproduct_youtube_background_color_108", - "adaptiveproduct_youtube_foreground_color_108", - "ic_launcher", - "ic_launcher_round", -).map { "$it.png" }.toTypedArray() - -private val iconResourceFileNamesNew = mapOf( +private val youtubeIconResourceFileNames_19_34 = mapOf( "adaptiveproduct_youtube_foreground_color_108" to "adaptiveproduct_youtube_2024_q4_foreground_color_108", "adaptiveproduct_youtube_background_color_108" to "adaptiveproduct_youtube_2024_q4_background_color_108", ) -private val mipmapDirectories = arrayOf( - "xxxhdpi", - "xxhdpi", - "xhdpi", - "hdpi", - "mdpi", -).map { "mipmap-$it" } - @Suppress("unused") -val customBrandingPatch = resourcePatch( - name = "Custom branding", - description = "Applies a custom app name and icon. Defaults to \"YouTube ReVanced\" and the ReVanced logo.", - use = false, -) { - dependsOn(versionCheckPatch) +val customBrandingPatch = baseCustomBrandingPatch( + defaultAppName = APP_NAME, + appNameValues = mapOf( + "YouTube ReVanced" to APP_NAME, + "YT ReVanced" to "YT ReVanced", + "YT" to "YT", + "YouTube" to "YouTube", + ), + resourceFolder = "custom-branding/youtube", + iconResourceFileNames = arrayOf( + "adaptiveproduct_youtube_background_color_108", + "adaptiveproduct_youtube_foreground_color_108", + "ic_launcher", + "ic_launcher_round", + ), - compatibleWith( - "com.google.android.youtube"( - "19.34.42", - "20.07.39", - "20.13.41", - "20.14.43", - ) - ) - - val appName by stringOption( - key = "appName", - default = APP_NAME, - values = mapOf( - "YouTube ReVanced" to APP_NAME, - "YT ReVanced" to "YT ReVanced", - "YT" to "YT", - "YouTube" to "YouTube", - ), - title = "App name", - description = "The name of the app.", - ) - - val icon by stringOption( - key = "iconPath", - default = REVANCED_ICON, - values = mapOf("ReVanced Logo" to REVANCED_ICON), - title = "App icon", - description = """ - The icon to apply to the app. - - If a path to a folder is provided, the folder must contain the following folders: - - ${mipmapDirectories.joinToString("\n") { "- $it" }} - - Each of these folders must contain the following files: - - ${iconResourceFileNames.joinToString("\n") { "- $it" }} - """.trimIndentMultiline(), - ) - - execute { - icon?.let { icon -> - // Change the app icon. - mipmapDirectories.map { directory -> - ResourceGroup( - directory, - *iconResourceFileNames, - ) - }.let { resourceGroups -> - if (icon != REVANCED_ICON) { - val path = File(icon) - val resourceDirectory = get("res") - - resourceGroups.forEach { group -> - val fromDirectory = path.resolve(group.resourceDirectoryName) - val toDirectory = resourceDirectory.resolve(group.resourceDirectoryName) - - group.resources.forEach { iconFileName -> - Files.write( - toDirectory.resolve(iconFileName).toPath(), - fromDirectory.resolve(iconFileName).readBytes(), - ) - } - } - } else { - resourceGroups.forEach { copyResources("custom-branding", it) } - } - } - - if (is_19_34_or_greater) { - val resourceDirectory = get("res") - - mipmapDirectories.forEach { directory -> - val targetDirectory = resourceDirectory.resolve(directory) - - iconResourceFileNamesNew.forEach { (old, new) -> - val oldFile = targetDirectory.resolve("$old.png") - val newFile = targetDirectory.resolve("$new.png") - - Files.write(newFile.toPath(), oldFile.readBytes()) - } - } - } - } - - appName?.let { name -> - // Change the app name. - val manifest = get("AndroidManifest.xml") - manifest.writeText( - manifest.readText() - .replace( - "android:label=\"@string/application_name", - "android:label=\"$name", - ), + block = { + compatibleWith( + "com.google.android.youtube"( + "19.34.42", + "20.07.39", + "20.13.41", + "20.14.43", ) + ) + }, + + executeBlock = { + val resourceDirectory = get("res") + + mipmapDirectories.forEach { directory -> + val targetDirectory = resourceDirectory.resolve(directory) + + youtubeIconResourceFileNames_19_34.forEach { (old, new) -> + val oldFile = targetDirectory.resolve("$old.png") + val newFile = targetDirectory.resolve("$new.png") + + Files.write(newFile.toPath(), oldFile.readBytes()) + } } } -} +) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/playservice/VersionCheckPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/playservice/VersionCheckPatch.kt index 86621209c..fd713626d 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/playservice/VersionCheckPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/playservice/VersionCheckPatch.kt @@ -38,6 +38,7 @@ var is_19_32_or_greater = false @Deprecated("19.34.42 is the lowest supported version") var is_19_33_or_greater = false private set +@Deprecated("19.34.42 is the lowest supported version") var is_19_34_or_greater = false private set var is_19_35_or_greater = false diff --git a/patches/src/main/resources/custom-branding/mipmap-hdpi/adaptiveproduct_youtube_background_color_108.png b/patches/src/main/resources/custom-branding/mipmap-hdpi/adaptiveproduct_youtube_background_color_108.png deleted file mode 100644 index 1813f47fea63a5c275b368ec301d57fb5d0ada7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2089 zcmeAS@N?(olHy`uVBq!ia0y~yU|0mg983%h489W@eHa*6wq=GyltlRYSS9D@>LsS+ zC#C9D0Vi&D~Tl`=|73as??%gf94%8m8%i_-NCEiEne z4UF`SjC6}q(sYX}^GXscbn}XpK}JB#a7isrF3Kz@$;{7F0GXMXlwVq6tE9xGpr8OX zJhdVdVR~LM)ceW#x%wa(eM3D1ePrb&nQ1tbgJdw27i8p@;mZj#ED1$=+6fRZ) znH8xy5iXgzsd>ej`FXZVhGs@+vXQuCo%3_@i-HRhlT&S#48fW}VQ1x;o0y&&o|#gT zfiMjr;ggz|jv)hbT}~+|dPDOvOKg=OP5^6)K*-rDnH%XNSrmy?3LY0$VE6gvr=;2{ z8H1gNkn(hP4k*e`%gjl&RVog0cT(_lbv84!G&9pR(u3Ggky~Kpo1c=IR_T&hl4`4D zWME{hYhbQxXc%H(WMyP%WoW8xU}R-r05%z{I<+J*C9x!tka{~%sbLgD1c+yDlr)pNVZA^MfoYE$*Cz|%i*%c`DrEPiAAZ7 z>8W`own~m^X_sLZhALKH@+c`3F^MN0N|Tco#nGB7YUWI8(sU_=N5 zgT}HM+5>*mKg@7DD7)_Y@~{{1I=aLT)kfIwZF1(9WO6(JQhmid)? zRPQWF71Det{E#o2OJv{2FDZ@lZT-Z5TuzSedZJ}Y@e1>iviwuqlG=I6|yZ_DJ5}}3Oep5R6{~z(+q_J_<8!_!0Iuq2K z=kWzjSJ|z1O(1sq%+#Z=|KHzd<>tR+!d^43(EfG5Z?QG{{gm~#nKPr)%6q-*EXq2XP@oA{&zdG#ldGRvxRf~Hdu}_Xc`EK%qGtn Urzopr0E(^b diff --git a/patches/src/main/resources/custom-branding/mipmap-hdpi/adaptiveproduct_youtube_foreground_color_108.png b/patches/src/main/resources/custom-branding/mipmap-hdpi/adaptiveproduct_youtube_foreground_color_108.png deleted file mode 100644 index 9448e7315f7d66fdecb8ad2b31255bf8b04ff5c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3504 zcmeAS@N?(olHy`uVBq!ia0y~yU|0mg9Bd2>42M36Ni#4oR%JRn2Y5O=D+Cnfr)B1( zGB9YIpE~ipwo9PMaeKC2gWjaXL_^NilDu9yI%%I)Z;)8bW0rsK%&9X64PEd|5eAtM7aCswsQCH&L0ijW4wHkn^t0r>)0Z)Wbe4 zd!+kN%yzA6i+{`CX*B^q++KbZve)*T`XhLwXm5+^cD2O#SK`O(H_qF(>Chxg*_&rJ z{rfCG)ic@1+*o&8Y?!o}pd07IpN+V9KKGVcd%)tR1n;Iv^y(uEq+tIX_n~F(p4KRj(qqfB^(->?;Zqle1Gx6p~WYGxKbf-tXS8q>!0ns}yeP zYv5bpoSKp8QB{;0T;&&%T$P<{nWAKG$IE3?VO5b^kegbPs8ErclUHn2VXFi-*eb8s z3M8zrqySb@l5MLL;TxdfoL`ixV5(=TXP{)q%cY=TQKRGXOaj?2D4jG#pAnGAK$5GV)9E zi!<^I;O<5-8ZM2ZsUjDL@`}U)bcMdY*iD8h&CP{7yST))tOUR6;*iRMRQ;gT;{4L0 z*(w>D86itWVwG~v&&e+eE=WvHwN)}y zQUHaIm1k~ZdTMxPN=XLP5QL~tYF;|3Fvu-ArJzU)&C4vYRWgDa5`mDgRWdiyhZ!D; zDGm>0E3j*P^HWl7m5h}X5aOQB&d}n>R;f71-ATdI)!EF@(#%ZPNY4paO5(y~=r*H)Y1qGXm z+yY-;E04_LlKi4dxG*%`2B#Jx2|)#OG8MqlX_c4^3L9Icf};GC(&W?>C8&6Dep*R+ zVo|DNdTL&Yt&(F}T4r8mNu`2IYH?wrJb8KwT>h`4!(Tk;lh<0 zud$0}e_&;A2|93Lg`;xD9K(ytR!AHb=yqG>sF6Cs^WB5J-+%mG`|ysc_@e0#Gwbb7 z>Q}$rd;RY0Ie#`^i~D`Yn;BI0k%b+6Lo=hj-d3`g ze#YIooqxN(=GU>@m2a!%mz~|%_5SzHO~K!d|b86SS-LAKz zR#hv`TYA>oE8IfBecAk#3So6-mER&)O?bZ5UTu!2mTb=Zr@^=X#@zUBCKtW_+Yw!$^Je`%9QQ@~ z>64A!%lW>9#(w`|w)@(%rdPS!k_wk96+e7gv;0BQ{E8Zlhv{}#&)+Hj^k`-Lt6R%8 z=1nrbU){LL_RZChwcLTh4;PsEYyIbDUnD%mQ)=g|-Lqolznbhy`)U#uUuGVanG&4% zv?ba3?YX)vYbiQY|O7w(xRdt5BBoaZI^MsM;_tn@wZ`{p)Y7FX-BY6cPlx?>@=?Ah zvovPoKaZI&+PX5kyI!7~m$q8HuVv#6E9Jy{*F|KOJ=`+?TiK

i!q$p$E=%0PmkVUX|+h1 zZWONRezbdv@!cI&5A}bUTs?Q?%kPz82Nyn=6H^mkpO#a*i1pN&e{Pq#MLrupKe|!! zhiTt@Z(AW}jUy_$67vF2iN48rTGX5IaQ5_lt9H66KdzM$y;dycIqx=}D{qyS^-S@C+ zZF(xl`S^vn+kq(?_Q!Bfb$vJcM|%Bgk@$bD;y0e|K7DJkKzsCxDXvCgJ5B7h`AlZj z%`KkJwcc7h=@-}emlum4?rrWpwLaBGs_L=RzeefK^?L(c<-ZFAbR1qAI8Cea)|V|c zbBmUg=gs^sY%jiV!O9;iZB(;A(g8wbx(Yk5%bjg*}^;gn!Ud{d~RUZ<>pTH7gp|15m)N8xe z%Hsug%m18|<<1uQKTp}9NNe7-qWwk-QvS`J{C>IK;TLyiTv=}7tXcn>O+r%ig2mI~ z@Zd|!W0vw%-?(h}yz7ek?NvSAu?@A0m9n(_cP!#sui3stPu6bPo=1GG$3?_iZ`f-o zJy&|lt$KUql=W#$va?rA`Fm%dgQso7-vv%mOZTixiDNw<{%4VOLG;Y!Q|<-)xy62? zUQ6wHRCrk8F zOKY1WxfUz($%)RW*DsvCI#>VCr)sBHefgc@Yn7k>-}yRz<4$+G?{zs$>=WH={_}eO zG>vFVdQ&MBb@08-1) AhyVZp diff --git a/patches/src/main/resources/custom-branding/mipmap-hdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 5adf8939817570835394999db679d37b400a289d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2989 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 diff --git a/patches/src/main/resources/custom-branding/mipmap-mdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 46117b63ab0226e4b276100219ba0d68ed388473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1825 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 diff --git a/patches/src/main/resources/custom-branding/mipmap-mdpi/ic_launcher_round.png b/patches/src/main/resources/custom-branding/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index 46117b63ab0226e4b276100219ba0d68ed388473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1825 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 diff --git a/patches/src/main/resources/custom-branding/mipmap-xhdpi/adaptiveproduct_youtube_background_color_108.png b/patches/src/main/resources/custom-branding/mipmap-xhdpi/adaptiveproduct_youtube_background_color_108.png deleted file mode 100644 index 4245fe042fcc88473f148474569b77f3dafafbe8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2290 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 diff --git a/patches/src/main/resources/custom-branding/mipmap-xhdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 224d6643465f529ef5e2c4403c0e9c26149e0368..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4281 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 diff --git a/patches/src/main/resources/custom-branding/mipmap-xxhdpi/adaptiveproduct_youtube_foreground_color_108.png b/patches/src/main/resources/custom-branding/mipmap-xxhdpi/adaptiveproduct_youtube_foreground_color_108.png deleted file mode 100644 index 184eb07a52ede17f2de4ae1ba6646bb71d0add52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6194 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 diff --git a/patches/src/main/resources/custom-branding/mipmap-xxhdpi/ic_launcher_round.png b/patches/src/main/resources/custom-branding/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index f566f259ebd9ad276cfcca3c81b5cc8678d60e20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6760 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 diff --git a/patches/src/main/resources/custom-branding/mipmap-xxxhdpi/adaptiveproduct_youtube_background_color_108.png b/patches/src/main/resources/custom-branding/mipmap-xxxhdpi/adaptiveproduct_youtube_background_color_108.png deleted file mode 100644 index 865aad97407b219e08ff83d8870e2acfb3ce3ea2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2968 zcmeAS@N?(olHy`uVBq!ia0y~yVB7%0983%h4DLG1YZ(|=wq=GyltlRYSS9D@>LsS+ zC#C9D0Vi&D~Tl`=|73as??%gf94%8m8%i_-NCEiEne z4UF`SjC6}q(sYX}^GXscbn}XpK}JB#a7isrF3Kz@$;{7F0GXMXlwVq6tE9xGpr8OX zJhdVdVR~LM)ceW#x%wa(eM3D1ePrb&nQ1tbgJdw27i8p@;mZj#ED1$=+6fRZ) znH8xy5iXgzsd>ej`FXZVCdNi+vXQuCo%3_@i-HRhlT&S#48fW}VQ1x;o0y&&o|#gT zfiMjr;ggz|jv)hbT}~+|dPDOvOKg=OP5^6)K*-rDnH%XNSrmy?3LY0$VE6gvr=;2{ z8H1gNkn(hP4k*e`%gjl&RVog0cT(_lbv84!G&9pR(u3Ggky~Kpo1c=IR_T&hl4`4D zWME{hYhbQxXc%H(WMyb!WniLhU}R-r05%z{I<+J*C9x!tka{~%sbLgD1c+yDlr)pNVZA^MfoYE$*Cz|%i*%c`DrEPiAAZ7 z>8W`own~m^X_sLZhALKH@+c`3F^MN0N|0zQi(85kHFGM$|RFd~G3 zL1SX+#PixNfg;E4(=t*zk`fa?UfST4Jmp42&mS$Fw0WPhjXyuzD`}d)=bp6Zwo_q& zNsq5L?QdASDXh!m%B2g|NfIbIOSbNK%lP8g2=MCijayL%lyhc zs&|&83TZwRe#jTiC9?11mz2i&wtnJ2E+OI0T$oIux0X2rwpf uFc`WtNGLgs3Xg`#Xo48c4MVah_{lhBKJ#Yw9qzKA2DPWFpUXO@geCxyU}IST diff --git a/patches/src/main/resources/custom-branding/mipmap-xxxhdpi/adaptiveproduct_youtube_foreground_color_108.png b/patches/src/main/resources/custom-branding/mipmap-xxxhdpi/adaptiveproduct_youtube_foreground_color_108.png deleted file mode 100644 index 3b066a2c37dec30b46ae792ef4a6195133f002a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8320 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 Q5d>1>>FVdQ&MBb@02Fyf@&Et; diff --git a/patches/src/main/resources/custom-branding/mipmap-xxxhdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 8823abe6678407245585dd0b5518962eec709a05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9782 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 A+5i9m literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-hdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-hdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png new file mode 100644 index 0000000000000000000000000000000000000000..7b480395b59da69c598f39596d490b09b03a396c GIT binary patch literal 1425 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 YkM-zI&VQDb3=9kmp00i_>zopr0B4;(?f?J) literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-mdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-mdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png new file mode 100644 index 0000000000000000000000000000000000000000..d4361b79ce576add632a82cb768f73e22bcfcc47 GIT binary patch literal 92 zcmeAS@N?(olHy`uVBq!ia0y~yV8{VsMrH;EhOH}(_AxLpFbDXAxXQ>#-wXL%&%nSS t;_2cTQo)$KKuCghae_!sQ=kDC16v3KW61BmqYMlT44$rjF6*2UngEJW78w8l literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-mdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-mdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png new file mode 100644 index 0000000000000000000000000000000000000000..a58d8026f04030a831fe71a01081fe164a14159c GIT binary patch literal 916 zcmeAS@N?(olHy`uVBq!ia0y~yV8{Vs4mJh`hW@nhvkVN((Vi}jAr*{o4mL6{FfcSM z_`6bkB@>8=j1#`SVZ1g;h3h~;Z?3jfYj!lp@ol-c!z{Mt-rn{%C;G*`|2eNbABIl) zHF(c+G(}# ziVx2EJpH!3#(Cr34_uS@XK79jzJEH*>6C-KtGku_|E~eh9~W*o>e%pD*g|hn#OK*{ zz4J~qY>_%THQ3nsH%s9JxrJ}e=`Hupe_fO&taBrpan97eTlb!xsk=r~IlE9kNXIVF z?>x^Mn{S7ml%lkvZohT99C}xeZQYx)lW{lSKKgGV?szAA+5Ftr6p!jaznOF9^Kf=< z*dYHjykvh+Qf7a)u-NxK^BAiO`?Gh<+qdTU){`;%%kJ;~=IrIBom%Ak%l<#(5|)}p z8DZpHk1hA+UA=g|rj5m;Jm&YkRJJglTCU%Z5`E^g%esHBoX|C8 zW3Akl>#w~NY?qXL3D7&wvzGCm(zkD^qdPefzZI(3(d)<_uPCIi! z%wdxO+fmW4FaPgJxnFnw)RU@wnO+}{?z`W6H%Ue$yEs<$YPtULcrCib!z3{8G|w8I zYloe0|e$lZHVG zbKNylKXokJ>L#^hug1c+?Nhp@oqA%(yt>tWg3|}feOHcOs=X4Z*8j_`ipgl}=^aeo z^Zm`@PgOrNztnglp5c}D literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-mdpi/ic_launcher_release.png b/patches/src/main/resources/custom-branding/music/mipmap-mdpi/ic_launcher_release.png new file mode 100644 index 0000000000000000000000000000000000000000..f4fe022daa8d8b89a96564b1697e83b540bf8503 GIT binary patch literal 1613 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F8EIuCLGI>5u1iadTr+@tbpFhQ&rZ%?7hyb;-w>w>_G=<7SRu>egAaqSijM6zl%U zarjtm|BuhC3%2G;H1nh^6n@^A@bYP7nh>w9*yT92Z*7izk9bQGo!4LgecEnHv3RB4 ztv6eEg*$#VUNCR_E6*4?Nq}{BkZ*;?YW|%Dx?Ge;8xG!_t)&*yZ=WrhKHQ8|? ztSj=m!$$6#{h6X!2QMnbES)+3twiNlM}zjAO_%qJZEFwPFjsU!xTuTy!ME|>Dkq#* z71wEg#90>jL~XL>{0Bd-?-7q)sJ5J%YkT!MPI3d6Ov}EV5B^-<)_HpB z;+^x2)A^)KG6X``$MqJeo_F|Ld}W!V<*PqJ;DBR}J)Xrlzm0iD?abY~w|!pnU{G7fjW~ET+nX3(cq49scx15a>H=5AOS0byIv3ADolhLbo ziying<5~UItk9Q-+xfRteoph6Z=`!x%Y5p#>$h~6Yr#$vzFf@6s55chk4Js^R&tja zE-mwQR`;8;AbNXV;LA%(S0rtFWwQTST2xfJd4t)n6)`(Em3)6Ed%{V58RG&zzmu*y zap7j^WefOZZ(aWV{e9-QH#etP1PWyx|7o}Jpkl+VsdE0EYr=XQ**5vjJ>$0cV^l#w zK}HF~!-o&k{1&#KW0{~A8@1_Xj?Lk6&E#V|Q*>(uUxk(PH<+cKo5Ptrp>d5dV}g5? zh>*}E6)T3he$(f$&$F&(>ya|;va9{&Vp~LMpPg3>f zTF`6P!)dABeWO5ELBT=&e(Ro{9sVmg7+T8T-}CL4w_i5PG&^9fRq2bDmzQtJy=~UB zl7r#-0m)}?)K641?AfjtRyr~J<|fv?H9ser<=$dh&})~6Goa8LjI7+5DPQC*HBT#ZUa2?413(y*})lbv4OwU(i;r+FxG| zZsSbg4*jSmu>8a81q&9~C{;gsUBYnvpkk=Mr%X&UJ3rfnu&-NO{>dNR_xW+~0pfqsVu*i9C>rQrlw}npLdD<9W@oAzfK0KFS*&@ z(ILUpx4-JjX+g=I0eUK1)`#}E-Bq=b`TxySS?TjL*_B-Ge>C?6d;VY(-=}+p#k}qL z{+g{4hgOrggJ=pXNfA$`TJ-zdZRqPQhiJsN+7XRk|6M2`+rA| W+?aj&i8KQP1B0ilpUXO@geCwdn*`DT literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xhdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-xhdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png new file mode 100644 index 0000000000000000000000000000000000000000..8d2f3ad80e849e4fe6b0849fc546b34d4ced7e10 GIT binary patch literal 100 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

s`^M z3NZzzf37}r=FHU-Q_s{?z4W}kxRT@k?!4B#Hm2ZpCpO-{-{^Zr_N3s>D9QcvX0S#$ z*zUTid0|(G!qe}EH_zLAqW76bcIsc-88&zKvhBY6Zgx)a<#%=a?iN^EUcB>U^6IHS zPwzZh)snwS=ezPY$DO<9PrU!~bKwQudZrkY+iA8hJAb@=Vf6NOlfTCU2!|@ zPyAy)_M)#0q3k?I)$T>y*=BwI@y9<$j#)mt9Lx5jVyDv~t3$8!6Xr&i-(};!E%ICG zw9NDnmXf!dHuK|e>37Z>oOPJC%fj>@0eVgI5%MX>VoE6rq`=p%OpuZ zDz{AAu_WfUPNu*G9@m^VMLW;6WmnxdbF+wXWJ5W_k>!>=ZiZ`x2fyA_bd6ke(tFPjir+v_B1?fQSRxm_`5Xc zZQ8!1nL5&?5{q@~Cajy?UfNrpn*Hm>gsnb;4qM+n<5gJLYR=*1-Tm!g*DtHnt19Mh z=UO1}&TNuJl55TG3B79{>7Dr1YNRy=d#*l2GuCH<8X2+68 zAF8DembWS9=`OpN89g)nw8Wa!YcGxN>^d_i<@XO0XA#FGxA!TWzxE{M<%SZ^#rKu3 z#AlWWZ~Lydfcb}b2D_D{S|*1bo7Mq_R)IwgK9&7BTTi*^{C~e?Z~1Y*3NOZquO|pr`{R=;`X`vd$@?2>^cN76bqQ literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png new file mode 100644 index 0000000000000000000000000000000000000000..f88bbd2489ee113ada15836047c6ddc3ba743962 GIT binary patch literal 3146 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 literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/ic_launcher_release.png b/patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/ic_launcher_release.png new file mode 100644 index 0000000000000000000000000000000000000000..38c2d58fb3908dd76b3f154855c0c079228312e5 GIT binary patch literal 5777 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 literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png new file mode 100644 index 0000000000000000000000000000000000000000..f4983a04e187d1d4677cb4677d334c5b3cd07fa4 GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0y~yVB7%0jLZxS44)bnWil`@FbDXAxXQ>#-wXL%&%nT- x>*?YcQW5v|KqCVK1H<73zk}x|ux$mgvEYK33k;0xTiFdja-Ob!F6*2UngHil8883< literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png new file mode 100644 index 0000000000000000000000000000000000000000..cb34be6b87249b8e9a8cd9c80db5f95f51b23674 GIT binary patch literal 4611 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 literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/ic_launcher_release.png b/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/ic_launcher_release.png new file mode 100644 index 0000000000000000000000000000000000000000..6666edb3c2a5bac65c021aa553089bf98b25229d GIT binary patch literal 8196 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 iak5H@-^;~SOr?(x-DG*6XJBBE z@^oxf#HzC@8#Q$v+J-kFf=gpzF}Z&Kff@Tfq{X+)78&qol`;+07F?B ACjbBd literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/adaptiveproduct_youtube_foreground_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/adaptiveproduct_youtube_foreground_color_108.png new file mode 100644 index 0000000000000000000000000000000000000000..cffd3342f43c597ccfac5def490cefccac7cdd91 GIT binary patch literal 1503 zcmeAS@N?(olHy`uVBq!ia0y~yU|0mg9Bd2>42M36Ni#68F7tG845?szbC8jdfq~<& z!td$x9QkBsGY|zDUftZve#2*WAJt#{Bk z=*XSd#VStECl&k7)iM0`Sy=VhytY)U$e8na>#Bdryh*h_y7m0R`n%m1JdcQj6lWee z3fE{TRcH&ZCoqj@&uT-aCO| zu5yKRR{6@4^6zwPfBxvZG+DQAM$*mCeL)XatS|QYR`dJ+HJQ67;{x9N*6VXnXY_qA zQR!J;{zHorp+J7Si*=W47JK_=%Z64}*{sp9cR2qp`@-hRc}L`QlW&~XjIIs;=>I@h zLo?~!vx5#ZIu8d22-X?Tzx&8un=j0*<>&dXjo%yoJ=9=J`*ny})m0>ZXI({yyTX-U z4VLq^G8X^6#&T}=UbTdITh$WY*{*(j(}sUe`sL@p?(trm*0yP5yoS(%V!3$dn@c(# zDV}K;x6=L~ab?p1)_xt%m>ngB7o1KXdvmDtxX`=TpO>yleET@yT%2}d+PdF&mx=_6 z9FlzzbA0`;e|HwB-apS5SCs4bK`6WILr}N!jEA$fuKwIK{SOOkb$@(;tW|k{h}R5P zk$xqfG_{w%FFQ@MH&9Kf{C{$x_M`;E`^J_>W+u*2PduN zvwNYkP`GAcj`OK?tF3pusd~R)(`%hRzO?5x9yh;oI-g#*nwRzOx=prwF5K*&zF?BF ztB7pkGlhAVzyF?c`-ji`qS;E-({E>d)!Y8^e}R5a`n={%8=pnWG|c1+(445$#a}38 z)wzOkX{oM!*qY*>8=^Pl%zbcX`|c_CgM_?_d+B9tZ;G{0(?|Ac8 zXh+SC(xWF{Zs56R7IT<6;KF>~!wVlDt+>NKRZ4Tw4_@e7%qR5T+p<==%%3xc-z&pox#HY>dE>oun0 z?QJp5n=H?tYo2+uLO@G*Nyi~(`#WvtME@`>4PCkE?bK7D+twbD+QYN7@V|RZ`#Ieo zj!WA`0&Ti2UQ`%f`1?1ub(OW;ijdOZ&H+-_YYkcAUL1K;x#G(trLMMhMsp8I2du0R zULK>G$1_zh$mOF|-vJ-)6(L(%XCAKL)ly#4@yL$HL8xTgW7ZWZds^NaTo(WCm^wuy zu%`L+g-&+^n}7mt7n_oG52RO|nV`faf2MV&Zw14tr;KabXTJQ0tVe9q7K6>Ah+Mf??btm1qQIfn9f+qrMjde z@@3_l#+h*+EPfq0BWJ@75;-ZJJCS3qbH)8a4lBKKwOCJDP|PRq zz^R#3_8~zh=rqUA91YhqdG?RACY?_G!=k#R=x@Jta`QXm;%`z#_sm^1f(lZnJJq_1o&!4W(J5YanX)+@N14D!3 zziY`i?oV`7Qc~*Z=ul8nYU=3Vz~Eqt;8qKj(ZOPp(;=?c)^cvS{h(sm)78&qol`;+ E06KTLD*ylh literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..c96afea8cb2c1d279e3d9be1350a36a7999e29c4 GIT binary patch literal 2685 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 literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/adaptiveproduct_youtube_foreground_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/adaptiveproduct_youtube_foreground_color_108.png new file mode 100644 index 0000000000000000000000000000000000000000..85d8377856af0ed8cf1f9b689aa0603241b2afb2 GIT binary patch literal 922 zcmeAS@N?(olHy`uVBq!ia0y~yV8{Vs4mJh`hW@nhvkVN(iJmTwAr*{o4mL6{FfcSM z_`6bkB@>8=j1#`SW^~)8!gZiv>$PpY8M)SV+twE3-afcF_x86N+j1Ab|Cb(oSJLhA z%wLoB!%LqpEK<80J0&%;?9Qs2BBEd7D_j%*vzBjL#<3=|!hhZRoKK(gnw`H+c=JMY zZ+r8NUh#!lIeqelPFJe>%M_nqc+UIo`pq}@H5NVJ$o~5ypU+#H#KQrsnTmRzGF$%q zZgJFJ)8csA^xW5t4=rEsnZ&01zqNdB1kXyg!)IHz*0&4tXKK7#x5ZLy>g~CLso%Us z9%LPOX{&$Lg8%V9nR|QXn-yIjF1Wej+j^GnhsVCo$f|$zZjI6G*ZF3Pg7Sm7rP<#t zY}@+(p2^qNoO^Q{UkCQ9YB;i|)alx_q%ztNu0WrPFi2={F6e)wX|m`0((_I%T^VZ^C<5 z^{f5nz5H4>f@h`JPwY-uU+9?mLrg*klW&Xn`fmIv&c-&*K%_mC6<_fu$XrwdxBE|<6VuWFIeN z%B%hB`u&ea{yvZ8i!(EKI8XdJ^~T;)2iYP%q$J92N_^E8{LQB5p(g)%Z6o1pwx16h zxny@g;14#RXC(gaLd^fI&d0&IrTNd=OFMt#`z_EXZ2nmh$HH8mAO!$4o3kV%YNE`DdVw43lW>~L~&^5!GQ zvr8X8PF{ZG=+SqHbDr+IT~p7|@h!5ak!{NZ&vN$-Uq0z<7BqeQXv^B18^LTlJC;9a z<#7#cvcH!2PW4et{^m<+IS!}X+4iR22(1;GzNdUa@wM6MiX)ZMVITa$<)l}4ZYy+{_T+^13!}rFH-C8UGCDI$j!EtD z-U+&My5=Sw;avZ}wRc;<{8GkW_Rg0U>pJP}c-6ApHIUC+Y(ph1!oE0c2~*C zWeG=#Y75WbFK7V;h}Xxh_rB4$rv0E;i)F@%qg2iGovt(!Ql{>^|dx77=D2uI*IR0ye=p!=(9#u8-*f2a zn%K5HU|fHiQ+LwNnK40oTbVCkmiqtn)YPTZ_2VzSy1M%1>@znrgEns5vhPxsP%`Ht3X#w{1! zk9LVJ&Az^_Nz5j*l%cY~!$0Zg%U5eAa$Q;ET3q$<5v%V!o0&qwlU7I`|9wJgH$zrf zg@x*o7heONr_JT1zlynCnqM(JvYzxv~f-EzTfYnfBl?o zb7kEtF^1e<58K}xvPoT#Dr69SS?1#6GU+hm>Z`LRvdc-_WoF}*a#qI9&-3M5cqYwag1Ud6RsBDkxi*!P>i&FW-z%T{C6UKu znZ*I?Pv(5=O3KQ@J3em*H+Q>;L}xdZFF$!h-V|9CsheoOn^d zzeg zW8v3#ccmR}uW|Q2@;~m%+`?xp5AEo;xktzI!lLw(=2>sqU_Y+Kpgm#>#> zP5&1&@zjRn>+i~X?aI4xXnAYb2Hz|7%f;t(JP43F(eo>L&RyPPx4&L^IQeQNz6 z9;;p{{r1W7&X0{fLR|y>653LpRvp@zWKxlGSW$RWqPDq}o(5>xTKW(n_ix0w9zWZyAZn`C5@9OSe_Bi=RoY^D6!&6;Y9} z6u6D%Ua1V$_g|A=gwjNQ*37YS{}0g85tUyU(|7j`GTALF;K=f$Tw4D z-c)n<>v0!jP!?c4uhp>}z}hI&PCy1Jmzbo~02dKI2E9p}yO*EH{7{c@Ev ot%WJWd-I!ibOc7Z9X)d6jPCza3=9kmp00i_>zopr0MZx~oB#j- literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/ic_launcher_round.png b/patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..cc5996657ebe145c2c4feed8f937d6e7a6d11795 GIT binary patch literal 1624 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?FOFMt#`z_EXZ2nmh$HH8mAO!$4o3kV%YNE`DdVw43lW>~L~&^5!GQ zvr8X8PF{ZG=+SqHbDr+IT~p7|@h!5ak!{NZ&vN$-Uq0z<7BqeQXv^B18^LTlJC;9a z<#7#cvcH!2PW4et{^m<+IS!}X+4iR22(1;GzNdUa@wM6MiX)ZMVITa$<)l}4ZYy+{_T+^13!}rFH-C8UGCDI$j!EtD z-U+&My5=Sw;avZ}wRc;<{8GkW_Rg0U>pJP}c-6ApHIUC+Y(ph1!oE0c2~*C zWeG=#Y75WbFK7V;h}Xxh_rB4$rv0E;i)F@%qg2iGovt(!Ql{>^|dx77=D2uI*IR0ye=p!=(9#u8-*f2a zn%K5HU|fHiQ+LwNnK40oTbVCkmiqtn)YPTZ_2VzSy1M%1>@znrgEns5vhPxsP%`Ht3X#w{1! zk9LVJ&Az^_Nz5j*l%cY~!$0Zg%U5eAa$Q;ET3q$<5v%V!o0&qwlU7I`|9wJgH$zrf zg@x*o7heONr_JT1zlynCnqM(JvYzxv~f-EzTfYnfBl?o zb7kEtF^1e<58K}xvPoT#Dr69SS?1#6GU+hm>Z`LRvdc-_WoF}*a#qI9&-3M5cqYwag1Ud6RsBDkxi*!P>i&FW-z%T{C6UKu znZ*I?Pv(5=O3KQ@J3em*H+Q>;L}xdZFF$!h-V|9CsheoOn^d zzeg zW8v3#ccmR}uW|Q2@;~m%+`?xp5AEo;xktzI!lLw(=2>sqU_Y+Kpgm#>#> zP5&1&@zjRn>+i~X?aI4xXnAYb2Hz|7%f;t(JP43F(eo>L&RyPPx4&L^IQeQNz6 z9;;p{{r1W7&X0{fLR|y>653LpRvp@zWKxlGSW$RWqPDq}o(5>xTKW(n_ix0w9zWZyAZn`C5@9OSe_Bi=RoY^D6!&6;Y9} z6u6D%Ua1V$_g|A=gwjNQ*37YS{}0g85tUyU(|7j`GTALF;K=f$Tw4D z-c)n<>v0!jP!?c4uhp>}z}hI&PCy1Jmzbo~02dKI2E9p}yO*EH{7{c@Ev ot%WJWd-I!ibOc7Z9X)d6jPCza3=9kmp00i_>zopr0MZx~oB#j- literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/adaptiveproduct_youtube_background_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/adaptiveproduct_youtube_background_color_108.png new file mode 100644 index 0000000000000000000000000000000000000000..9dc71239ee8d1c12a2c86cb8722d04f01ee085f5 GIT binary patch literal 100 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 literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/ic_launcher_round.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..df88da0c76ca7462cd8fe61798f851c7db5cfea2 GIT binary patch literal 3800 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 literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/adaptiveproduct_youtube_background_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/adaptiveproduct_youtube_background_color_108.png new file mode 100644 index 0000000000000000000000000000000000000000..cbf45f81aea1685a42a1ea046035310beb150e8b GIT binary patch literal 108 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 x5F$Y-aRx$F5o0%0DP9*IQ76(P#2AJYC<^h(OFUKX)a(WYpQo#z%Q~loCIG>YrsV(t literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d9c5832ad592ab73463ad4f62b895ae0434a369a GIT binary patch literal 5831 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 k*uQmdKI;Vst0DJ=;;Q#;t literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher_round.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..d9c5832ad592ab73463ad4f62b895ae0434a369a GIT binary patch literal 5831 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 k*uQmdKI;Vst0DJ=;;Q#;t literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/adaptiveproduct_youtube_background_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/adaptiveproduct_youtube_background_color_108.png new file mode 100644 index 0000000000000000000000000000000000000000..f4983a04e187d1d4677cb4677d334c5b3cd07fa4 GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0y~yVB7%0jLZxS44)bnWil`@FbDXAxXQ>#-wXL%&%nT- x>*?YcQW5v|KqCVK1H<73zk}x|ux$mgvEYK33k;0xTiFdja-Ob!F6*2UngHil8883< literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/adaptiveproduct_youtube_foreground_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/adaptiveproduct_youtube_foreground_color_108.png new file mode 100644 index 0000000000000000000000000000000000000000..1185ff2d8bfdae27c7dae650f37a239fd313e327 GIT binary patch literal 4813 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 XoBL%AIZKY&AWwO^`njxgN@xNAu^38z literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..af56c5bb929e43fbdf00bffaacb244fef55ed651 GIT binary patch literal 8371 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 Date: Sun, 28 Sep 2025 11:30:51 +0000 Subject: [PATCH 16/63] chore: Release v5.42.0-dev.5 [skip ci] # [5.42.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.4...v5.42.0-dev.5) (2025-09-28) ### Features * **YouTube Music:** Add `Custom branding` patch ([#6007](https://github.com/ReVanced/revanced-patches/issues/6007)) ([4c8b56f](https://github.com/ReVanced/revanced-patches/commit/4c8b56f5466b244737f501654eb7c5d34b6b2f88)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 92c666395..e135c755d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.4...v5.42.0-dev.5) (2025-09-28) + + +### Features + +* **YouTube Music:** Add `Custom branding` patch ([#6007](https://github.com/ReVanced/revanced-patches/issues/6007)) ([4c8b56f](https://github.com/ReVanced/revanced-patches/commit/4c8b56f5466b244737f501654eb7c5d34b6b2f88)) + # [5.42.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.3...v5.42.0-dev.4) (2025-09-28) diff --git a/gradle.properties b/gradle.properties index bcc02b5d0..dece1c8a8 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.42.0-dev.4 +version = 5.42.0-dev.5 From 6961babee9fb8445d42bc547fbfc7407328038e6 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Tue, 30 Sep 2025 12:11:06 +0400 Subject: [PATCH 17/63] refactor(YouTube - Check watch history domain name resolution): Do not show redundant dialog cancel button --- ...WatchHistoryDomainNameResolutionPatch.java | 36 ++++++++----------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/CheckWatchHistoryDomainNameResolutionPatch.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/CheckWatchHistoryDomainNameResolutionPatch.java index ff2c55ade..23321c0e5 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/CheckWatchHistoryDomainNameResolutionPatch.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/CheckWatchHistoryDomainNameResolutionPatch.java @@ -46,7 +46,7 @@ public class CheckWatchHistoryDomainNameResolutionPatch { /** * Injection point. * - * Checks if s.youtube.com is blacklisted and playback history will fail to work. + * Checks if YouTube watch history endpoint cannot be reached. */ public static void checkDnsResolver(Activity context) { if (!Utils.isNetworkConnected() || !BaseSettings.CHECK_WATCH_HISTORY_DOMAIN_NAME.get()) return; @@ -67,28 +67,20 @@ public class CheckWatchHistoryDomainNameResolutionPatch { } Utils.runOnMainThread(() -> { - try { - // Create the custom dialog. - Pair dialogPair = CustomDialog.create( - context, - str("revanced_check_watch_history_domain_name_dialog_title"), // Title. - Html.fromHtml(str("revanced_check_watch_history_domain_name_dialog_message")), // Message (HTML). - null, // No EditText. - null, // OK button text. - () -> {}, // OK button action (just dismiss). - () -> {}, // Cancel button action (just dismiss). - str("revanced_check_watch_history_domain_name_dialog_ignore"), // Neutral button text. - () -> BaseSettings.CHECK_WATCH_HISTORY_DOMAIN_NAME.save(false), // Neutral button action (Ignore). - true // Dismiss dialog on Neutral button click. - ); + Pair dialogPair = CustomDialog.create( + context, + str("revanced_check_watch_history_domain_name_dialog_title"), // Title. + Html.fromHtml(str("revanced_check_watch_history_domain_name_dialog_message")), // Message (HTML). + null, // No EditText. + null, // OK button text. + () -> {}, // OK button action (just dismiss). + null, // No cancel button. + str("revanced_check_watch_history_domain_name_dialog_ignore"), // Neutral button text. + () -> BaseSettings.CHECK_WATCH_HISTORY_DOMAIN_NAME.save(false), // Neutral button action (Ignore). + true // Dismiss dialog on Neutral button click. + ); - // Show the dialog. - Dialog dialog = dialogPair.first; - - Utils.showDialog(context, dialog, false, null); - } catch (Exception ex) { - Logger.printException(() -> "checkDnsResolver dialog creation failure", ex); - } + Utils.showDialog(context, dialogPair.first, false, null); }); } catch (Exception ex) { Logger.printException(() -> "checkDnsResolver failure", ex); From 5f1a485e8f09aa4ca8f79410a2a57f47fec9a2a9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 1 Oct 2025 00:06:22 +0400 Subject: [PATCH 18/63] chore: Sync translations (#6034) --- .../addresources/values-az-rAZ/strings.xml | 6 +- .../addresources/values-ja-rJP/strings.xml | 140 +++++++++--------- .../addresources/values-ko-rKR/strings.xml | 6 +- .../addresources/values-vi-rVN/strings.xml | 4 +- 4 files changed, 78 insertions(+), 78 deletions(-) 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 3758c3b0b..e3cd54cb0 100644 --- a/patches/src/main/resources/addresources/values-az-rAZ/strings.xml +++ b/patches/src/main/resources/addresources/values-az-rAZ/strings.xml @@ -65,9 +65,9 @@ Second \"item\" text" • Valideyn tənzimləmələri qapadılan uşaq tənzimləmələrin üstündə görünür" Axtarış tarixçəsi boşdur Axtarış tarixçəsini saxlamaq üçün axtarış sorğusu yazın və Daxil Et basın - Axtarış tarixçəsi tənzimləməsin göstər - Axtarış tarixçəsi tənzimləməsi göstərilir - Axtarış tarixçəsi tənzimləməsi göstərilmir + Tənzimləmə axtarış tarixçəsin göstər + Tənzimləmə axtarış tarixçəsi göstərilir + Tənzimləmə axtarış tarixçəsi görünmür ReVanced tənzimləmə nişanların göstər Tənzimləmə nişanları göstərilir Tənzimləmə nişanları göstərilmir 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 ac5ace6cf..f82b7332c 100644 --- a/patches/src/main/resources/addresources/values-ja-rJP/strings.xml +++ b/patches/src/main/resources/addresources/values-ja-rJP/strings.xml @@ -69,8 +69,8 @@ Second \"item\" text" 設定の検索履歴は表示されます 設定の検索履歴は表示されません ReVanced の設定にアイコンを表示 - ReVanced の設定にアイコンが表示されます - ReVanced の設定にアイコンは表示されません + ReVanced の設定メニューにはアイコンが表示されます + ReVanced の設定メニューにはアイコンは表示されません ReVanced 設定の言語 "一部の言語の翻訳が欠落しているまたは不完全である可能性があります。 @@ -94,7 +94,7 @@ Second \"item\" text" 操作が必要です "GmsCore はバックグラウンドで実行する権限がありません。 -お使いのデバイスの「Don't kill my app!」ガイドに従い、GmsCore のインストール手順を適用してください。 +お使いのデバイスの「Don't kill my app!」ガイドに従い、GmsCore に対するデバイスの設定を変更してください。 これはアプリが正常に動作するために必要です。" ウェブサイトを開く @@ -107,7 +107,7 @@ GmsCore の電池の最適化を無効にしても、バッテリーの使用に 動画ストリームを偽装 - 動画再生の失敗を回避するために、クライアントの動画ストリームを偽装します + 動画の再生に失敗しないために、クライアントの動画ストリームを偽装します 動画ストリームを偽装 動画再生の失敗を回避するために、クライアントの動画ストリームを偽装します 動画ストリームを偽装 @@ -122,33 +122,33 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が デバッグ - デバッグオプションを有効または無効にします + デバッグ オプションを有効または無効にします デバッグログを有効化 デバッグログは有効です デバッグログは無効です - スタック トレースをログに記録 - デバッグログにスタック トレースが含まれます - デバッグログにスタック トレースは含まれません + スタック トレースをログに保存 + デバッグログにはスタック トレースが含まれます + デバッグログにはスタック トレースは含まれません ReVanced のエラー時にトーストを表示 - エラーが発生した場合にトーストが表示されます - エラーが発生してもトーストは表示されません - "エラートーストをオフにすると、ReVanced のすべてのエラー通知が非表示になります。 + エラーが発生した場合にトースト通知が表示されます + エラーが発生した場合にトースト通知は表示されません + "エラーのトースト通知をオフにすると、ReVanced のすべてのエラー通知が表示されなくなります。 予期しないイベントが発生した場合でも通知されなくなります。" デバッグログのエクスポート ReVanced のデバッグログをクリップボードにコピーします - デバッグログは無効です + デバッグログが無効になっています ログが見つかりませんでした ログをコピーしました ログのエクスポートに失敗しました: %s デバッグログを消去 - 保存されているすべての ReVanced デバッグログを消去します + 保存されている ReVanced のすべてのデバッグログを消去します ログを消去しました 共有リンクを無害化 - トラッキング クエリ パラメータが共有リンクから削除されます - トラッキング クエリ パラメータは共有リンクから削除されません + 共有リンクから追跡パラメータが削除されます + 共有リンクから追跡パラメータは削除されません 共有リンクを youtube.com に変更 共有リンクには youtube.com が使用されます 共有リンクには music.youtube.com が使用されます @@ -168,8 +168,8 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が その他 動画 古い設定メニューを復元 - 旧バージョンの設定メニューが表示されます - 旧バージョンの設定メニューは表示されません + 古いスタイルの設定メニューが表示されます + 新しいスタイルの設定メニューが表示されます ショートのバックグラウンド再生を無効化 @@ -177,9 +177,9 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が ショート動画のバックグラウンド再生は有効です - プロトコルバッファを記録 - デバッグログに protocol buffer が含まれます - デバッグログに protocol buffer は含まれません + protocol buffer をログに保存 + デバッグログには protocol buffer が含まれます + デバッグログには protocol buffer は含まれません "この設定を有効にすると、一部の UI コンポーネントの画面上のテキストを含む、追加のレイアウトデータがログに記録されます。 これは、カスタムフィルターを作成する際にコンポーネントを識別するのに役立ちます。 @@ -670,7 +670,7 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が 購入ボタンは表示されません 購入ボタンは表示されます - 「保存」を非表示にする + 保存ボタンを非表示 「保存」ボタンは表示されません 「保存」ボタンは表示されます @@ -708,16 +708,16 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が ボタンをアイコンのみで表示 ナビゲーション ボタンはアイコンのみで表示されます ナビゲーション ボタンはアイコンと文字で表示されます - ステータスバーの半透明化を無効化 + 半透明ステータスバーを無効化 ステータスバーは常に透けません ステータスバーは状況に応じて透けます 一部のデバイスでは、この機能を有効にすると、システムのナビゲーション バーが半透明になりアプリ内のコンポーネントに重なってしまう可能性があります。 - ライトモード時のナビゲーション バーの半透明化を無効にする - ライトモード時にナビゲーション バーは透けません - ライトモード時にナビゲーション バーが状況に応じて透けます - ダークモード時のナビゲーション バーの半透明化を無効にする - ダークモード時にナビゲーション バーは透けません - ダークモード時にナビゲーション バーは状況に応じて透けます + ライトモード時の半透明バーを無効化 + ライトモード時にはナビゲーション バーは透けません + ライトモード時にはナビゲーション バーが状況に応じて透けます + ダークモード時の半透明バーを無効化 + ダークモード時にはナビゲーション バーは透けません + ダークモード時にはナビゲーション バーが状況に応じて透けます フライアウト メニュー @@ -833,18 +833,18 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が ショート プレーヤーのコンポーネントを表示または非表示にします ホームフィードでショートを非表示 - ショート動画はホームフィードおよび関連動画に表示されません - ショート動画はホームフィードおよび関連動画に表示されます + ホームフィードおよび関連動画にはショート動画は表示されません + ホームフィードおよび関連動画にはショート動画が表示されます 検索結果でショートを非表示 - ショート動画は検索結果に表示されません - ショート動画は検索結果に表示されます + 検索結果にはショート動画は表示されません + 検索結果にはショート動画が表示されます 登録チャンネル フィードでショートを非表示 - ショート動画は登録チャンネル フィードに表示されません - ショート動画は登録チャンネル フィードに表示されます + 登録チャンネル フィードにはショート動画は表示されません + 登録チャンネル フィードにはショート動画が表示されます 再生履歴でショートを非表示 - ショート動画は再生履歴に表示されません - ショート動画は再生履歴に表示されます + 再生履歴にはショート動画は表示されません + 再生履歴にはショート動画が表示されます 「Super Thanks を購入する」ボタンを非表示 「Super Thanks を購入する」ボタンは表示されません 「Super Thanks を購入する」ボタンは表示されます @@ -1047,7 +1047,7 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が シークバー サムネイルは、再生中の動画と同じ画質になります。 この機能は、非常に高速なインターネット接続を使用して 720P 以下の画質で動画を視聴する場合に最適です。" - 古いスタイルのシークバー サムネイルを復元 + 古いシークバー サムネイルを復元 シーク中のサムネイルはシークバーの上に表示されます シーク中のサムネイルはプレーヤー画面全体に表示されます @@ -1287,7 +1287,7 @@ Automotive レイアウト 再び偽装を無効にする場合には、UI のバグを防ぐためにアプリデータを消去することをお勧めします。" アプリバージョンの偽装先 - 20.13.41 - アクション ボタンの文字表示を復元 + 20.13.41 - アクション ボタンの文字の常時表示を復元 20.05.46 - 文字起こし機能を復元 19.35.36 - 古いショート プレーヤーのアイコンを復元 19.01.34 - 古いナビゲーション アイコンを復元 @@ -1415,11 +1415,11 @@ Automotive レイアウト カスタム - 画像表示の地域制限を回避する + 画像表示の地域制限を回避 yt4.ggpht.com から画像を取得します "オリジナルの画像ホストから画像を取得します -この機能を有効にすると、一部の地域でブロックされている画像が表示される可能性があります" +この機能を有効にすると、一部の地域でブロックされている画像が表示されるようになる可能性があります" @@ -1456,10 +1456,10 @@ Automotive レイアウト DeArrow は一時的に利用できません - ReVanced のお知らせを表示する - お知らせは、アプリ起動時に表示されます - お知らせは、アプリ起動時に表示されません - アプリ起動時にお知らせを表示する + ReVanced のお知らせを表示 + アプリの起動時にお知らせが表示されます + アプリの起動時にお知らせは表示されません + アプリの起動時にお知らせを表示します お知らせの取得に失敗しました 閉じる @@ -1489,16 +1489,16 @@ Automotive レイアウト 触覚フィードバック 触覚フィードバックの設定を変更します - チャプターの触覚フィードバックを無効にする + チャプターの触覚フィードバックを無効化 チャプターの触覚フィードバックは無効です チャプターの触覚フィードバックは有効です 精密シークの触覚フィードバックを無効化 精密シークの触覚フィードバックは無効です 精密シークの触覚フィードバックは有効です - シーク取り消しの触覚フィードバックを無効にする + シーク取り消しの触覚フィードバックを無効化 シーク取り消しの触覚フィードバックは無効です シーク取り消しの触覚フィードバックは有効です - ズームの触覚フィードバックを無効にする + ズームの触覚フィードバックを無効化 ズームの触覚フィードバックは無効です ズームの触覚フィードバックは有効です @@ -1506,8 +1506,8 @@ Automotive レイアウト 最近アカウントのログイン情報を変更した場合は、MicroG をアンインストールして再インストールしてください。 - URL リダイレクトを回避する - YouTube の URL リダイレクトを経由せずにリンクへ移動します + URL リダイレクトを回避 + YouTube の URL リダイレクトを経由せずにリンク先へ移動します YouTube の URL リダイレクトを経由してリンク先へ移動します @@ -1525,23 +1525,23 @@ Automotive レイアウト 自動 - 画質の変更を保存する + 画質の変更を保存 画質の変更はすべての動画に適用されます 画質の変更は現在の動画にのみ適用されます 画質の変更時にトーストを表示 - デフォルトの画質が変更されたとき、トーストが表示されます - デフォルトの画質が変更されたとき、トーストは表示されません + デフォルトの画質が変更された場合にトースト通知が表示されます + デフォルトの画質が変更された場合にトースト通知は表示されません デフォルトの画質(Wi-Fi) デフォルトの画質(携帯回線) - ショートの画質の変更を保存する + ショートの画質の変更を保存 画質の変更はすべてのショート動画に適用されます 画質の変更は現在のショート動画にのみ適用されます デフォルトのショートの画質(Wi-Fi) デフォルトのショートの画質(携帯回線) 携帯回線 Wi-Fi - デフォルトの画質 (%1$s): %2$s - ショートの画質 (%1$s): %2$s + デフォルトの画質の変更 (%1$s): %2$s + ショートの画質の変更 (%1$s): %2$s 再生速度設定ボタンを表示 @@ -1561,25 +1561,25 @@ Automotive レイアウト 古いスタイルの再生速度メニューが表示されます 新しいスタイルの再生速度メニューが表示されます カスタム再生速度リスト - カスタム再生速度を追加または変更します - 再生速度は %s 未満である必要があります - カスタム再生速度が無効です + カスタム再生速度リストを編集します + 再生速度は %s 未満でなければなりません + カスタム再生速度リストの値が無効です 自動 長押し倍速再生の速度 再生速度の範囲は 0-8 で、0 および 8 は含まれません - 再生速度の変更を保存する + 再生速度の変更を保存 再生速度の変更はすべての動画に適用されます 再生速度の変更は現在の動画にのみ適用されます 再生速度の変更時にトーストを表示 - デフォルトの再生速度が変更されたとき、トーストが表示されます - デフォルトの再生速度が変更されたとき、トーストは表示されません + デフォルトの再生速度が変更されたときにトースト通知が表示されます + デフォルトの再生速度が変更されたときにトースト通知は表示されません デフォルトの再生速度 - デフォルトの再生速度: %s + デフォルトの再生速度の変更: %s - HDR 動画を無効にする + HDR 動画を無効化 HDR 動画は無効です HDR 動画は有効です AVC (H.264) を強制的に使用 @@ -1615,9 +1615,9 @@ Automotive レイアウト • ログアウト時またはシークレット モード時に、子ども向け動画が再生されない可能性がある •「オリジナルの音声を強制的に使用」が利用できない - 統計情報に表示する - 統計情報に現在のクライアントが表示されます - 統計情報に現在のクライアントは表示されません + 統計情報にクライアントを表示 + 統計情報には現在のクライアントが表示されます + 統計情報には現在のクライアントは表示されません 音声ストリームの言語 特定の音声言語を選択するには、「オリジナルの音声を強制的に使用」を無効にしてください @@ -1640,7 +1640,7 @@ Automotive レイアウト 常時リピートを有効化 常時リピートは有効です\n\nリピート設定が保存され常時適用されます - 常時リピートは無効です\n\nリピート設定は保存されずリセットされます + 常時リピートは無効です\n\nリピート設定は保存されず毎回リセットされます キャストボタンを非表示 @@ -1714,10 +1714,10 @@ Automotive レイアウト メッセージを削除しました - 削除されたメッセージを表示 + 削除されたメッセージの表示方法 削除されたメッセージを表示しない - スポイラーの後ろに削除されたメッセージを非表示にする - クロスアウトテキストとして削除されたメッセージを表示 + 削除されたメッセージをスポイラー表示で隠して表示する + 削除されたメッセージを取り消し線つきで表示する チャンネルポイントを自動的に獲得する 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 3d8c8f740..82f77fae7 100644 --- a/patches/src/main/resources/addresources/values-ko-rKR/strings.xml +++ b/patches/src/main/resources/addresources/values-ko-rKR/strings.xml @@ -1067,12 +1067,12 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니 건너뛰기 버튼이 몇 초 후에 숨겨집니다 건너뛰기 버튼이 해당 구간이 끝날 때까지 표시됩니다 건너뛰기 버튼 표시 시간 - 건너뛰기 및 하이라이트로 건너뛰기 버튼이 자동으로 숨겨지기 전까지 표시되는 시간을 설정할 수 있습니다 + 건너뛰기 및 하이라이트로 건너뛰기 버튼이 자동으로 숨겨지기 전까지 표시되는 시간을 지정할 수 있습니다 건너뛰기 취소 메시지 표시하기 구간을 자동으로 건너뛰는 경우에 팝업 메시지를 표시합니다\n\n팝업 메시지를 탭하여 건너뛰기를 취소할 수 있습니다 팝업 메시지를 표시하지 않습니다 건너뛰기 취소 메시지 표시 시간 - 건너뛰기 취소 팝업 메시지가 표시되는 시간을 설정할 수 있습니다 + 건너뛰기 취소 팝업 메시지가 표시되는 시간을 지정할 수 있습니다 1 초 2 초 3 초 @@ -1108,7 +1108,7 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니 건너뛴 횟수 기록을 비활성화합니다 건너뛸 최소 구간 길이 설정한 값(초)보다 작은 구간은 건너뛰지 않으며, 재생바에도 표시되지 않습니다 - 잘못된 지속 시간입니다 + 잘못된 표시 시간입니다 비공개 사용자 아이디 비공개 사용자 아이디는 SponsorBlock 서버에서 구간을 제출하거나 건너뛴 구간 정보를 기록하는데 사용되는 고유 아이디 입니다. 절대 다른 이에게 공개하지 마세요 비공개 사용자 아이디는 30자 이상이어야 합니다 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 300aa008a..779392f09 100644 --- a/patches/src/main/resources/addresources/values-vi-rVN/strings.xml +++ b/patches/src/main/resources/addresources/values-vi-rVN/strings.xml @@ -23,7 +23,7 @@ Second \"item\" text" Kiểm tra thất bại Mở trang web chính thức - Phớt lờ + Bỏ qua <h5>Ứng dụng này xem ra không phải do bạn tự vá.</h5><br>Ứng dụng này có thể không hoạt động chính xác, <b>tiềm ẩn rủi ro hoặc thậm chí gây nguy hiểm khi sử dụng</b>.<br><br>Những kiểm tra dưới đây cho thấy rằng ứng dụng được vá sẵn hoặc lấy từ nguồn khác;<br><br><small>%1$s</small><br>Chúng tôi khuyến nghị bạn nên <b>gỡ cài đặt ứng này và tự vá lại</b> để đảm bảo bạn đang dùng một ứng dụng an toàn và hợp lệ.<p><br>Cảnh báo này sẽ chỉ hiện hai lần, hãy cân nhắc trước khi bỏ qua. Đã vá trên một thiết bị khác Không được cài đặt bởi ReVanced Manager @@ -50,7 +50,7 @@ Second \"item\" text" Đặt lại cài đặt ReVanced về mặc định Đã nhập cài đặt %d Nhập thất bại: %s - Cài đặt tìm kiếm + Tìm kiếm Không tìm thấy kết quả nào cho \'%s\' Thử từ khóa khác Các tìm kiếm gần đây From 673609c2aa87988cdc138eab101b9750fe6a7b62 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Wed, 1 Oct 2025 00:06:40 +0400 Subject: [PATCH 19/63] fix(X / Twitter): Remove non functional and obsolete patch `Open links with app chooser` (#6033) --- .../twitter/patches/links/OpenLinksWithAppChooserPatch.java | 1 + .../patches/twitter/misc/dynamiccolor/DynamicColorPatch.kt | 3 +-- .../app/revanced/patches/twitter/misc/hook/HookPatch.kt | 5 +---- .../twitter/misc/links/ChangeLinkSharingDomainPatch.kt | 3 +-- .../twitter/misc/links/OpenLinksWithAppChooserPatch.kt | 4 ++-- .../patches/twitter/misc/links/SanitizeSharingLinksPatch.kt | 3 +-- 6 files changed, 7 insertions(+), 12 deletions(-) diff --git a/extensions/twitter/src/main/java/app/revanced/twitter/patches/links/OpenLinksWithAppChooserPatch.java b/extensions/twitter/src/main/java/app/revanced/twitter/patches/links/OpenLinksWithAppChooserPatch.java index 62220506a..3a4dff608 100644 --- a/extensions/twitter/src/main/java/app/revanced/twitter/patches/links/OpenLinksWithAppChooserPatch.java +++ b/extensions/twitter/src/main/java/app/revanced/twitter/patches/links/OpenLinksWithAppChooserPatch.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.Intent; import android.util.Log; +@Deprecated(forRemoval = true) public final class OpenLinksWithAppChooserPatch { public static void openWithChooser(final Context context, final Intent intent) { Log.d("ReVanced", "Opening intent with chooser: " + intent); diff --git a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/dynamiccolor/DynamicColorPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/dynamiccolor/DynamicColorPatch.kt index 9d813b7ad..342800518 100644 --- a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/dynamiccolor/DynamicColorPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/dynamiccolor/DynamicColorPatch.kt @@ -12,9 +12,8 @@ val dynamicColorPatch = resourcePatch( ) { compatibleWith( "com.twitter.android"( - "10.86.0-release.0", "10.60.0-release.0", - "10.48.0-release.0" + "10.86.0-release.0", ) ) diff --git a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/hook/HookPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/hook/HookPatch.kt index 80da4aecf..682bb4f37 100644 --- a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/hook/HookPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/hook/HookPatch.kt @@ -13,11 +13,8 @@ fun hookPatch( compatibleWith( "com.twitter.android"( - // Only v10.85 uses Pairip and requires additional changes to work. - "10.86.0-release.0", - // Confirmed to not show reply ads. Slightly newer versions may also work. "10.60.0-release.0", - "10.48.0-release.0" + "10.86.0-release.0", ) ) diff --git a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/ChangeLinkSharingDomainPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/ChangeLinkSharingDomainPatch.kt index bf3d9afd2..289a71e72 100644 --- a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/ChangeLinkSharingDomainPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/ChangeLinkSharingDomainPatch.kt @@ -39,9 +39,8 @@ val changeLinkSharingDomainPatch = bytecodePatch( compatibleWith( "com.twitter.android"( - "10.86.0-release.0", "10.60.0-release.0", - "10.48.0-release.0" + "10.86.0-release.0", ) ) diff --git a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/OpenLinksWithAppChooserPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/OpenLinksWithAppChooserPatch.kt index a0fa4d0cc..268f5789f 100644 --- a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/OpenLinksWithAppChooserPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/OpenLinksWithAppChooserPatch.kt @@ -4,12 +4,12 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.bytecodePatch import app.revanced.patches.twitter.misc.extension.sharedExtensionPatch +@Deprecated("Patch is obsolete and no longer needed with the highest supported app target. " + + "This patch will soon be deleted.") @Suppress("unused") val openLinksWithAppChooserPatch = bytecodePatch( - name = "Open links with app chooser", description = "Instead of opening links directly, open them with an app chooser. " + "As a result you can select a browser to open the link with.", - use = false, ) { dependsOn(sharedExtensionPatch) diff --git a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/SanitizeSharingLinksPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/SanitizeSharingLinksPatch.kt index d84cfb2ca..24b4e127b 100644 --- a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/SanitizeSharingLinksPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/SanitizeSharingLinksPatch.kt @@ -10,9 +10,8 @@ val sanitizeSharingLinksPatch = bytecodePatch( ) { compatibleWith( "com.twitter.android"( - "10.86.0-release.0", "10.60.0-release.0", - "10.48.0-release.0" + "10.86.0-release.0", ) ) From d238a427082b55efea1cfd0d31a3fab5ab64c2a4 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 30 Sep 2025 20:09:49 +0000 Subject: [PATCH 20/63] chore: Release v5.42.0-dev.6 [skip ci] # [5.42.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.5...v5.42.0-dev.6) (2025-09-30) ### Bug Fixes * **X / Twitter:** Remove non functional and obsolete patch `Open links with app chooser` ([#6033](https://github.com/ReVanced/revanced-patches/issues/6033)) ([673609c](https://github.com/ReVanced/revanced-patches/commit/673609c2aa87988cdc138eab101b9750fe6a7b62)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e135c755d..f71891a17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.5...v5.42.0-dev.6) (2025-09-30) + + +### Bug Fixes + +* **X / Twitter:** Remove non functional and obsolete patch `Open links with app chooser` ([#6033](https://github.com/ReVanced/revanced-patches/issues/6033)) ([673609c](https://github.com/ReVanced/revanced-patches/commit/673609c2aa87988cdc138eab101b9750fe6a7b62)) + # [5.42.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.4...v5.42.0-dev.5) (2025-09-28) diff --git a/gradle.properties b/gradle.properties index dece1c8a8..ede2db1f1 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.42.0-dev.5 +version = 5.42.0-dev.6 From 08e8ead04ffff47a4608a3db7aadc8d5feccd4ad Mon Sep 17 00:00:00 2001 From: Swakshan <56347042+Swakshan@users.noreply.github.com> Date: Wed, 1 Oct 2025 11:47:19 +0530 Subject: [PATCH 21/63] feat(Instagram): Add `Open links externally` patch (#6012) --- .../misc/links/OpenLinksExternallyPatch.java | 30 ++++++++++++ .../app/revanced/extension/shared/Utils.java | 13 +++++ extensions/twitter/build.gradle.kts | 4 +- .../links/ChangeLinkSharingDomainPatch.java | 7 +++ .../links/OpenLinksWithAppChooserPatch.java | 10 +++- patches/api/patches.api | 4 ++ .../instagram/misc/links/Fingerprint.kt | 9 ++++ .../misc/links/OpenLinksExternallyPatch.kt | 47 +++++++++++++++++++ .../twitter/misc/extension/ExtensionPatch.kt | 3 +- .../extension/hooks/ApplicationInitHook.kt | 10 ++++ .../links/ChangeLinkSharingDomainPatch.kt | 36 +++++++------- .../links/OpenLinksWithAppChooserPatch.kt | 4 +- 12 files changed, 153 insertions(+), 24 deletions(-) create mode 100644 extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/links/OpenLinksExternallyPatch.java create mode 100644 patches/src/main/kotlin/app/revanced/patches/instagram/misc/links/Fingerprint.kt create mode 100644 patches/src/main/kotlin/app/revanced/patches/instagram/misc/links/OpenLinksExternallyPatch.kt create mode 100644 patches/src/main/kotlin/app/revanced/patches/twitter/misc/extension/hooks/ApplicationInitHook.kt diff --git a/extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/links/OpenLinksExternallyPatch.java b/extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/links/OpenLinksExternallyPatch.java new file mode 100644 index 000000000..49db896c2 --- /dev/null +++ b/extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/links/OpenLinksExternallyPatch.java @@ -0,0 +1,30 @@ +package app.revanced.extension.instagram.misc.links; + +import android.net.Uri; + +import app.revanced.extension.shared.Logger; +import app.revanced.extension.shared.Utils; + +@SuppressWarnings("unused") +public final class OpenLinksExternallyPatch { + + /** + * Injection point. + */ + public static boolean openExternally(String url) { + try { + // The "url" parameter to this function will be of the form. + // https://l.instagram.com/?u=&e= + String actualUrl = Uri.parse(url).getQueryParameter("u"); + if (actualUrl != null) { + Utils.openLink(actualUrl); + return true; + } + + } catch (Exception ex) { + Logger.printException(() -> "openExternally failure", ex); + } + + return false; + } +} diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/Utils.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/Utils.java index feeb379a7..a9d7b6e9d 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/Utils.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/Utils.java @@ -15,6 +15,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Color; import android.net.ConnectivityManager; +import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Handler; @@ -696,6 +697,18 @@ public class Utils { } } + public static void openLink(String url) { + try { + Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(url)); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + + Logger.printInfo(() -> "Opening link with external browser: " + intent); + getContext().startActivity(intent); + } catch (Exception ex) { + Logger.printException(() -> "openLink failure", ex); + } + } + public enum NetworkType { NONE, MOBILE, diff --git a/extensions/twitter/build.gradle.kts b/extensions/twitter/build.gradle.kts index f3c06ad73..8cf6305c1 100644 --- a/extensions/twitter/build.gradle.kts +++ b/extensions/twitter/build.gradle.kts @@ -1 +1,3 @@ -// Do not remove. Necessary for the extension plugin to be applied to the project. +dependencies { + compileOnly(project(":extensions:shared:library")) +} diff --git a/extensions/twitter/src/main/java/app/revanced/twitter/patches/links/ChangeLinkSharingDomainPatch.java b/extensions/twitter/src/main/java/app/revanced/twitter/patches/links/ChangeLinkSharingDomainPatch.java index ff67394c6..f4f4a107d 100644 --- a/extensions/twitter/src/main/java/app/revanced/twitter/patches/links/ChangeLinkSharingDomainPatch.java +++ b/extensions/twitter/src/main/java/app/revanced/twitter/patches/links/ChangeLinkSharingDomainPatch.java @@ -1,15 +1,22 @@ package app.revanced.twitter.patches.links; +@SuppressWarnings("unused") public final class ChangeLinkSharingDomainPatch { private static final String DOMAIN_NAME = "https://fxtwitter.com"; private static final String LINK_FORMAT = "%s/%s/status/%s"; + /** + * Injection point. + */ public static String formatResourceLink(Object... formatArgs) { String username = (String) formatArgs[0]; String tweetId = (String) formatArgs[1]; return String.format(LINK_FORMAT, DOMAIN_NAME, username, tweetId); } + /** + * Injection point. + */ public static String formatLink(long tweetId, String username) { return String.format(LINK_FORMAT, DOMAIN_NAME, username, tweetId); } diff --git a/extensions/twitter/src/main/java/app/revanced/twitter/patches/links/OpenLinksWithAppChooserPatch.java b/extensions/twitter/src/main/java/app/revanced/twitter/patches/links/OpenLinksWithAppChooserPatch.java index 3a4dff608..bd0476d8b 100644 --- a/extensions/twitter/src/main/java/app/revanced/twitter/patches/links/OpenLinksWithAppChooserPatch.java +++ b/extensions/twitter/src/main/java/app/revanced/twitter/patches/links/OpenLinksWithAppChooserPatch.java @@ -2,12 +2,18 @@ package app.revanced.twitter.patches.links; import android.content.Context; import android.content.Intent; -import android.util.Log; +import app.revanced.extension.shared.Logger; + +@SuppressWarnings("unused") @Deprecated(forRemoval = true) public final class OpenLinksWithAppChooserPatch { + + /** + * Injection point. + */ public static void openWithChooser(final Context context, final Intent intent) { - Log.d("ReVanced", "Opening intent with chooser: " + intent); + Logger.printInfo(() -> "Opening intent with chooser: " + intent); intent.setAction("android.intent.action.VIEW"); diff --git a/patches/api/patches.api b/patches/api/patches.api index 38dc2b638..2e35481c9 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -284,6 +284,10 @@ public final class app/revanced/patches/instagram/misc/extension/SharedExtension public static final fun getSharedExtensionPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } +public final class app/revanced/patches/instagram/misc/links/OpenLinksExternallyPatchKt { + public static final fun getOpenLinksExternallyPatch ()Lapp/revanced/patcher/patch/BytecodePatch; +} + public final class app/revanced/patches/instagram/misc/signature/SignatureCheckPatchKt { public static final fun getSignatureCheckPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/links/Fingerprint.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/links/Fingerprint.kt new file mode 100644 index 000000000..b33d5ace5 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/links/Fingerprint.kt @@ -0,0 +1,9 @@ +package app.revanced.patches.instagram.misc.links +import app.revanced.patcher.fingerprint + +internal const val TARGET_STRING = "Tracking.ARG_CLICK_SOURCE" + +internal val inAppBrowserFunctionFingerprint = fingerprint { + returns("Z") + strings("TrackingInfo.ARG_MODULE_NAME", TARGET_STRING) +} diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/links/OpenLinksExternallyPatch.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/links/OpenLinksExternallyPatch.kt new file mode 100644 index 000000000..19b43e27e --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/links/OpenLinksExternallyPatch.kt @@ -0,0 +1,47 @@ +package app.revanced.patches.instagram.misc.links + +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patches.instagram.misc.extension.sharedExtensionPatch +import app.revanced.util.indexOfFirstInstructionOrThrow +import com.android.tools.smali.dexlib2.Opcode +import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction + +private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/instagram/misc/links/OpenLinksExternallyPatch;" + +@Suppress("unused") +val openLinksExternallyPatch = bytecodePatch( + name = "Open links externally", + description = "Changes links to always open in your external browser, instead of the in-app browser.", + use = false, +) { + + dependsOn(sharedExtensionPatch) + + compatibleWith("com.instagram.android") + + execute { + inAppBrowserFunctionFingerprint.let { + val stringMatchIndex = it.stringMatches?.first { match -> match.string == TARGET_STRING }!!.index + + it.method.apply { + val urlResultObjIndex = indexOfFirstInstructionOrThrow( + stringMatchIndex, Opcode.MOVE_OBJECT_FROM16 + ) + + // Register that contains the url after moving from a higher register. + val urlRegister = getInstruction(urlResultObjIndex).registerA + + addInstructions( + urlResultObjIndex + 1, + """ + invoke-static { v$urlRegister }, $EXTENSION_CLASS_DESCRIPTOR->openExternally(Ljava/lang/String;)Z + move-result v$urlRegister + return v$urlRegister + """ + ) + } + } + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/extension/ExtensionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/extension/ExtensionPatch.kt index c5c758245..8f9b5574f 100644 --- a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/extension/ExtensionPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/extension/ExtensionPatch.kt @@ -1,5 +1,6 @@ package app.revanced.patches.twitter.misc.extension import app.revanced.patches.shared.misc.extension.sharedExtensionPatch +import app.revanced.patches.twitter.misc.extension.hooks.applicationInitHook -val sharedExtensionPatch = sharedExtensionPatch("twitter") +val sharedExtensionPatch = sharedExtensionPatch("twitter", applicationInitHook) diff --git a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/extension/hooks/ApplicationInitHook.kt b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/extension/hooks/ApplicationInitHook.kt new file mode 100644 index 000000000..13a1590a7 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/extension/hooks/ApplicationInitHook.kt @@ -0,0 +1,10 @@ +package app.revanced.patches.twitter.misc.extension.hooks + +import app.revanced.patches.shared.misc.extension.extensionHook + +internal val applicationInitHook = + extensionHook { + custom { method, classDef -> + classDef.type == "Lcom/twitter/app/TwitterApplication;" && method.name == "onCreate" + } + } \ No newline at end of file diff --git a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/ChangeLinkSharingDomainPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/ChangeLinkSharingDomainPatch.kt index 289a71e72..982fdb5a4 100644 --- a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/ChangeLinkSharingDomainPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/ChangeLinkSharingDomainPatch.kt @@ -53,28 +53,28 @@ val changeLinkSharingDomainPatch = bytecodePatch( ) execute { - val replacementIndex = - linkSharingDomainFingerprint.stringMatches!!.first().index - val domainRegister = - linkSharingDomainFingerprint.method.getInstruction(replacementIndex).registerA + linkSharingDomainFingerprint.let { + val replacementIndex = it.stringMatches!!.first().index + val domainRegister = it.method.getInstruction( + replacementIndex + ).registerA - linkSharingDomainFingerprint.method.replaceInstruction( - replacementIndex, - "const-string v$domainRegister, \"https://$domainName\"", - ) - - // Replace the domain name when copying a link with "Copy link" button. - linkBuilderFingerprint.method.apply { - addInstructions( - 0, - """ - invoke-static { p0, p1, p2 }, $EXTENSION_CLASS_DESCRIPTOR->formatLink(JLjava/lang/String;)Ljava/lang/String; - move-result-object p0 - return-object p0 - """, + it.method.replaceInstruction( + replacementIndex, + "const-string v$domainRegister, \"https://$domainName\"", ) } + // Replace the domain name when copying a link with "Copy link" button. + linkBuilderFingerprint.method.addInstructions( + 0, + """ + invoke-static { p0, p1, p2 }, $EXTENSION_CLASS_DESCRIPTOR->formatLink(JLjava/lang/String;)Ljava/lang/String; + move-result-object p0 + return-object p0 + """ + ) + // Used in the Share via... dialog. linkResourceGetterFingerprint.method.apply { val templateIdConstIndex = indexOfFirstLiteralInstructionOrThrow(tweetShareLinkTemplateId) diff --git a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/OpenLinksWithAppChooserPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/OpenLinksWithAppChooserPatch.kt index 268f5789f..9c109e360 100644 --- a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/OpenLinksWithAppChooserPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/OpenLinksWithAppChooserPatch.kt @@ -9,7 +9,7 @@ import app.revanced.patches.twitter.misc.extension.sharedExtensionPatch @Suppress("unused") val openLinksWithAppChooserPatch = bytecodePatch( description = "Instead of opening links directly, open them with an app chooser. " + - "As a result you can select a browser to open the link with.", + "As a result you can select a browser to open the link with.", ) { dependsOn(sharedExtensionPatch) @@ -18,7 +18,7 @@ val openLinksWithAppChooserPatch = bytecodePatch( execute { val methodReference = "Lapp/revanced/extension/twitter/patches/links/OpenLinksWithAppChooserPatch;->" + - "openWithChooser(Landroid/content/Context;Landroid/content/Intent;)V" + "openWithChooser(Landroid/content/Context;Landroid/content/Intent;)V" openLinkFingerprint.method.addInstructions( 0, From 0c662c8e3bf5165ec2adb03fa0564b3f8bd42af3 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Wed, 1 Oct 2025 10:18:59 +0400 Subject: [PATCH 22/63] chore(deps): Bump actions/checkout from 4 to 5 --- .github/workflows/build_pull_request.yml | 4 ++-- .github/workflows/open_pull_request.yml | 2 +- .github/workflows/pull_strings.yml | 2 +- .github/workflows/push_strings.yml | 2 +- .github/workflows/release.yml | 8 ++++---- .github/workflows/update-gradle-wrapper.yml | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build_pull_request.yml b/.github/workflows/build_pull_request.yml index c7ffa59f1..3e2f365f7 100644 --- a/.github/workflows/build_pull_request.yml +++ b/.github/workflows/build_pull_request.yml @@ -12,10 +12,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '17' diff --git a/.github/workflows/open_pull_request.yml b/.github/workflows/open_pull_request.yml index 33c8a7211..6e3eddd18 100644 --- a/.github/workflows/open_pull_request.yml +++ b/.github/workflows/open_pull_request.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Open pull request uses: repo-sync/pull-request@v2 diff --git a/.github/workflows/pull_strings.yml b/.github/workflows/pull_strings.yml index 6f0f6f6cd..be27b0687 100644 --- a/.github/workflows/pull_strings.yml +++ b/.github/workflows/pull_strings.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: dev clean: true diff --git a/.github/workflows/push_strings.yml b/.github/workflows/push_strings.yml index 1be23c2a5..c51254f75 100644 --- a/.github/workflows/push_strings.yml +++ b/.github/workflows/push_strings.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Preprocess strings env: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0e2278b3a..607ff8293 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,10 +18,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '17' @@ -51,14 +51,14 @@ jobs: fingerprint: ${{ vars.GPG_FINGERPRINT }} - name: Release - uses: cycjimmy/semantic-release-action@v4 + uses: cycjimmy/semantic-release-action@v5 id: release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Attest if: steps.release.outputs.new_release_published == 'true' - uses: actions/attest-build-provenance@v2 + uses: actions/attest-build-provenance@v3 with: subject-name: 'ReVanced Patches ${{ steps.release.outputs.new_release_git_tag }}' subject-path: patches/build/libs/patches-*.rvp diff --git a/.github/workflows/update-gradle-wrapper.yml b/.github/workflows/update-gradle-wrapper.yml index 8136ad5f3..765927aaf 100644 --- a/.github/workflows/update-gradle-wrapper.yml +++ b/.github/workflows/update-gradle-wrapper.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Update Gradle Wrapper uses: gradle-update/update-gradle-wrapper-action@v1 From 5a7e1991622747f38846449d0960e2d40de75980 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 1 Oct 2025 06:25:01 +0000 Subject: [PATCH 23/63] chore: Release v5.42.0-dev.7 [skip ci] # [5.42.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.6...v5.42.0-dev.7) (2025-10-01) ### Features * **Instagram:** Add `Open links externally` patch ([#6012](https://github.com/ReVanced/revanced-patches/issues/6012)) ([08e8ead](https://github.com/ReVanced/revanced-patches/commit/08e8ead04ffff47a4608a3db7aadc8d5feccd4ad)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f71891a17..b307935b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.6...v5.42.0-dev.7) (2025-10-01) + + +### Features + +* **Instagram:** Add `Open links externally` patch ([#6012](https://github.com/ReVanced/revanced-patches/issues/6012)) ([08e8ead](https://github.com/ReVanced/revanced-patches/commit/08e8ead04ffff47a4608a3db7aadc8d5feccd4ad)) + # [5.42.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.5...v5.42.0-dev.6) (2025-09-30) diff --git a/gradle.properties b/gradle.properties index ede2db1f1..5d26c07f2 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.42.0-dev.6 +version = 5.42.0-dev.7 From 9d6731660ba0e19b863d05d54aa04f74a879f69b Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Wed, 1 Oct 2025 18:57:53 +0400 Subject: [PATCH 24/63] fix(YouTube - Force original language): Resolve some videos using Swedish audio track --- .../app/revanced/extension/shared/settings/AppLanguage.java | 4 ++-- .../extension/youtube/patches/ForceOriginalAudioPatch.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/AppLanguage.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/AppLanguage.java index 944529f4e..fbc734a51 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/AppLanguage.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/AppLanguage.java @@ -36,8 +36,8 @@ public enum AppLanguage { FR, GL, GU, - HI, HE, // App uses obsolete 'IW' and not the modern 'HE' ISO code. + HI, HR, HU, HY, @@ -60,9 +60,9 @@ public enum AppLanguage { MR, MS, MY, + NB, NE, NL, - NB, OR, PA, PL, diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ForceOriginalAudioPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ForceOriginalAudioPatch.java index 8836e7b32..bf3b866d8 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ForceOriginalAudioPatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ForceOriginalAudioPatch.java @@ -24,7 +24,7 @@ public class ForceOriginalAudioPatch { // not auto-dubbed by YouTube: https://support.google.com/youtube/answer/15569972 // but the language is also supported natively by the Meta Quest device that // Android VR is spoofing. - AppLanguage override = AppLanguage.SV; + AppLanguage override = AppLanguage.NB; // Norwegian Bokmal. Logger.printDebug(() -> "Setting language override: " + override); SpoofVideoStreamsPatch.setLanguageOverride(override); } From d0d53d109e451759a029326873adfa36fba12b23 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Wed, 1 Oct 2025 18:59:16 +0400 Subject: [PATCH 25/63] feat(YouTube Music): Add `Force original audio` patch (#6036) --- .../patches/ForceOriginalAudioPatch.java | 17 ++ .../extension/music/settings/Settings.java | 2 + .../patches/ForceOriginalAudioPatch.java | 73 ++++++++ .../ForceOriginalAudioSwitchPreference.java | 8 +- .../shared/spoof/SpoofVideoStreamsPatch.java | 4 + .../patches/ForceOriginalAudioPatch.java | 63 +------ .../extension/youtube/settings/Settings.java | 4 +- patches/api/patches.api | 5 + .../misc/tracks/ForceOriginalAudioPatch.kt | 34 ++++ .../music/playservice/VersionCheckPatch.kt | 3 + .../fix/redgifs/FixRedgifsApiPatch.kt | 5 +- .../misc}/audio/Fingerprints.kt | 13 +- .../misc/audio/ForceOriginalAudioPatch.kt | 157 +++++++++++++++++ .../OpenShortsInRegularPlayerPatch.kt | 2 +- .../misc/navigation/NavigationBarHookPatch.kt | 2 +- .../video/audio/ForceOriginalAudioPatch.kt | 161 +++--------------- .../resources/addresources/values/strings.xml | 14 +- 17 files changed, 341 insertions(+), 226 deletions(-) create mode 100644 extensions/music/src/main/java/app/revanced/extension/music/patches/ForceOriginalAudioPatch.java create mode 100644 extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/ForceOriginalAudioPatch.java rename extensions/{youtube/src/main/java/app/revanced/extension/youtube => shared/library/src/main/java/app/revanced/extension/shared}/settings/preference/ForceOriginalAudioSwitchPreference.java (87%) create mode 100644 patches/src/main/kotlin/app/revanced/patches/music/misc/tracks/ForceOriginalAudioPatch.kt rename patches/src/main/kotlin/app/revanced/patches/{youtube/video => shared/misc}/audio/Fingerprints.kt (67%) create mode 100644 patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/ForceOriginalAudioPatch.kt diff --git a/extensions/music/src/main/java/app/revanced/extension/music/patches/ForceOriginalAudioPatch.java b/extensions/music/src/main/java/app/revanced/extension/music/patches/ForceOriginalAudioPatch.java new file mode 100644 index 000000000..30a2cb8f2 --- /dev/null +++ b/extensions/music/src/main/java/app/revanced/extension/music/patches/ForceOriginalAudioPatch.java @@ -0,0 +1,17 @@ +package app.revanced.extension.music.patches; + +import app.revanced.extension.music.settings.Settings; + +@SuppressWarnings("unused") +public class ForceOriginalAudioPatch { + + /** + * Injection point. + */ + public static void setPreferredLanguage() { + app.revanced.extension.shared.patches.ForceOriginalAudioPatch.setEnabled( + Settings.FORCE_ORIGINAL_AUDIO.get(), + Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() + ); + } +} diff --git a/extensions/music/src/main/java/app/revanced/extension/music/settings/Settings.java b/extensions/music/src/main/java/app/revanced/extension/music/settings/Settings.java index 4feb13d9c..a56fb04b9 100644 --- a/extensions/music/src/main/java/app/revanced/extension/music/settings/Settings.java +++ b/extensions/music/src/main/java/app/revanced/extension/music/settings/Settings.java @@ -32,4 +32,6 @@ public class Settings extends BaseSettings { // Miscellaneous public static final EnumSetting SPOOF_VIDEO_STREAMS_CLIENT_TYPE = new EnumSetting<>("revanced_spoof_video_streams_client_type", ClientType.ANDROID_VR_1_43_32, true, parent(SPOOF_VIDEO_STREAMS)); + + public static final BooleanSetting FORCE_ORIGINAL_AUDIO = new BooleanSetting("revanced_force_original_audio", TRUE, true); } diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/ForceOriginalAudioPatch.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/ForceOriginalAudioPatch.java new file mode 100644 index 000000000..762a77352 --- /dev/null +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/ForceOriginalAudioPatch.java @@ -0,0 +1,73 @@ +package app.revanced.extension.shared.patches; + +import app.revanced.extension.shared.Logger; +import app.revanced.extension.shared.settings.AppLanguage; +import app.revanced.extension.shared.spoof.ClientType; +import app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch; + +@SuppressWarnings("unused") +public class ForceOriginalAudioPatch { + + private static final String DEFAULT_AUDIO_TRACKS_SUFFIX = ".4"; + + private static volatile boolean enabled = false; + + public static void setEnabled(boolean isEnabled, ClientType client) { + enabled = isEnabled; + + if (isEnabled + && SpoofVideoStreamsPatch.spoofingToClientWithNoMultiAudioStreams() + && !client.useAuth) { + // If client spoofing does not use authentication and lacks multi-audio streams, + // then can use any language code for the request and if that requested language is + // not available YT uses the original audio language. Authenticated requests ignore + // the language code and always use the account language. Use a language that is + // not auto-dubbed by YouTube: https://support.google.com/youtube/answer/15569972 + // but the language is also supported natively by the Meta Quest device that + // Android VR is spoofing. + AppLanguage override = AppLanguage.NB; // Norwegian Bokmal. + Logger.printDebug(() -> "Setting language override: " + override); + SpoofVideoStreamsPatch.setLanguageOverride(override); + } + } + + /** + * Injection point. + */ + public static boolean ignoreDefaultAudioStream(boolean original) { + if (enabled) { + return false; + } + return original; + } + + /** + * Injection point. + */ + public static boolean isDefaultAudioStream(boolean isDefault, String audioTrackId, String audioTrackDisplayName) { + try { + if (!enabled) { + return isDefault; + } + + if (audioTrackId.isEmpty()) { + // Older app targets can have empty audio tracks and these might be placeholders. + // The real audio tracks are called after these. + return isDefault; + } + + Logger.printDebug(() -> "default: " + String.format("%-5s", isDefault) + " id: " + + String.format("%-8s", audioTrackId) + " name:" + audioTrackDisplayName); + + final boolean isOriginal = audioTrackId.endsWith(DEFAULT_AUDIO_TRACKS_SUFFIX); + if (isOriginal) { + Logger.printDebug(() -> "Using audio: " + audioTrackId); + } + + return isOriginal; + } catch (Exception ex) { + Logger.printException(() -> "isDefaultAudioStream failure", ex); + return isDefault; + } + } +} diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ForceOriginalAudioSwitchPreference.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/ForceOriginalAudioSwitchPreference.java similarity index 87% rename from extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ForceOriginalAudioSwitchPreference.java rename to extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/ForceOriginalAudioSwitchPreference.java index b6be1b893..fdcde3668 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ForceOriginalAudioSwitchPreference.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/ForceOriginalAudioSwitchPreference.java @@ -1,4 +1,4 @@ -package app.revanced.extension.youtube.settings.preference; +package app.revanced.extension.shared.settings.preference; import static app.revanced.extension.shared.StringRef.str; @@ -6,17 +6,17 @@ import android.content.Context; import android.preference.SwitchPreference; import android.util.AttributeSet; +import app.revanced.extension.shared.settings.BaseSettings; 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 ForceOriginalAudioSwitchPreference extends SwitchPreference { // Spoof stream patch is not included, or is not currently spoofing to Android Studio. private static final boolean available = !SpoofVideoStreamsPatch.isPatchIncluded() - || !(Settings.SPOOF_VIDEO_STREAMS.get() - && Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() == ClientType.ANDROID_CREATOR); + || !(BaseSettings.SPOOF_VIDEO_STREAMS.get() + && SpoofVideoStreamsPatch.getPreferredClient() == ClientType.ANDROID_CREATOR); { if (!available) { 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 a5f69ba30..8275f9c71 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 @@ -66,6 +66,10 @@ public class SpoofVideoStreamsPatch { StreamingDataRequest.setClientOrderToUse(availableClients, client); } + public static ClientType getPreferredClient() { + return preferredClient; + } + public static boolean spoofingToClientWithNoMultiAudioStreams() { return isPatchIncluded() && SPOOF_STREAMING_DATA diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ForceOriginalAudioPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ForceOriginalAudioPatch.java index bf3b866d8..5540b670d 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ForceOriginalAudioPatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ForceOriginalAudioPatch.java @@ -1,72 +1,17 @@ package app.revanced.extension.youtube.patches; -import app.revanced.extension.shared.Logger; -import app.revanced.extension.shared.settings.AppLanguage; -import app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch; import app.revanced.extension.youtube.settings.Settings; @SuppressWarnings("unused") public class ForceOriginalAudioPatch { - private static final String DEFAULT_AUDIO_TRACKS_SUFFIX = ".4"; - /** * Injection point. */ public static void setPreferredLanguage() { - if (Settings.FORCE_ORIGINAL_AUDIO.get() - && SpoofVideoStreamsPatch.spoofingToClientWithNoMultiAudioStreams() - && !Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get().useAuth) { - // If client spoofing does not use authentication and lacks multi-audio streams, - // then can use any language code for the request and if that requested language is - // not available YT uses the original audio language. Authenticated requests ignore - // the language code and always use the account language. Use a language that is - // not auto-dubbed by YouTube: https://support.google.com/youtube/answer/15569972 - // but the language is also supported natively by the Meta Quest device that - // Android VR is spoofing. - AppLanguage override = AppLanguage.NB; // Norwegian Bokmal. - Logger.printDebug(() -> "Setting language override: " + override); - SpoofVideoStreamsPatch.setLanguageOverride(override); - } - } - - /** - * Injection point. - */ - public static boolean ignoreDefaultAudioStream(boolean original) { - if (Settings.FORCE_ORIGINAL_AUDIO.get()) { - return false; - } - return original; - } - - /** - * Injection point. - */ - public static boolean isDefaultAudioStream(boolean isDefault, String audioTrackId, String audioTrackDisplayName) { - try { - if (!Settings.FORCE_ORIGINAL_AUDIO.get()) { - return isDefault; - } - - if (audioTrackId.isEmpty()) { - // Older app targets can have empty audio tracks and these might be placeholders. - // The real audio tracks are called after these. - return isDefault; - } - - Logger.printDebug(() -> "default: " + String.format("%-5s", isDefault) + " id: " - + String.format("%-8s", audioTrackId) + " name:" + audioTrackDisplayName); - - final boolean isOriginal = audioTrackId.endsWith(DEFAULT_AUDIO_TRACKS_SUFFIX); - if (isOriginal) { - Logger.printDebug(() -> "Using audio: " + audioTrackId); - } - - return isOriginal; - } catch (Exception ex) { - Logger.printException(() -> "isDefaultAudioStream failure", ex); - return isDefault; - } + app.revanced.extension.shared.patches.ForceOriginalAudioPatch.setEnabled( + Settings.FORCE_ORIGINAL_AUDIO.get(), + Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() + ); } } 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 17937a660..cfe87af71 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 @@ -55,6 +55,7 @@ public class Settings extends BaseSettings { public static final BooleanSetting ADVANCED_VIDEO_QUALITY_MENU = new BooleanSetting("revanced_advanced_video_quality_menu", TRUE); public static final BooleanSetting DISABLE_HDR_VIDEO = new BooleanSetting("revanced_disable_hdr_video", FALSE); public static final BooleanSetting FORCE_AVC_CODEC = new BooleanSetting("revanced_force_avc_codec", FALSE, true, "revanced_force_avc_codec_user_dialog_message"); + public static final BooleanSetting FORCE_ORIGINAL_AUDIO = new BooleanSetting("revanced_force_original_audio", FALSE, true); public static final IntegerSetting VIDEO_QUALITY_DEFAULT_WIFI = new IntegerSetting("revanced_video_quality_default_wifi", -2); public static final IntegerSetting VIDEO_QUALITY_DEFAULT_MOBILE = new IntegerSetting("revanced_video_quality_default_mobile", -2); public static final BooleanSetting REMEMBER_VIDEO_QUALITY_LAST_SELECTED = new BooleanSetting("revanced_remember_video_quality_last_selected", FALSE); @@ -75,9 +76,6 @@ public class Settings extends BaseSettings { public static final StringSetting CUSTOM_PLAYBACK_SPEEDS = new StringSetting("revanced_custom_playback_speeds", "0.25\n0.5\n0.75\n1.0\n1.25\n1.5\n1.75\n2.0\n2.5\n3.0\n4.0\n5.0\n6.0\n7.0\n8.0", true); - // Audio - public static final BooleanSetting FORCE_ORIGINAL_AUDIO = new BooleanSetting("revanced_force_original_audio", FALSE, true); - // Ads public static final BooleanSetting HIDE_CREATOR_STORE_SHELF = new BooleanSetting("revanced_hide_creator_store_shelf", TRUE); public static final BooleanSetting HIDE_END_SCREEN_STORE_BANNER = new BooleanSetting("revanced_hide_end_screen_store_banner", TRUE, true); diff --git a/patches/api/patches.api b/patches/api/patches.api index 2e35481c9..01e889e44 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -459,9 +459,14 @@ public final class app/revanced/patches/music/misc/spoof/UserAgentClientSpoofPat public static final fun getUserAgentClientSpoofPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } +public final class app/revanced/patches/music/misc/tracks/ForceOriginalAudioPatchKt { + public static final fun getForceOriginalAudioPatch ()Lapp/revanced/patcher/patch/BytecodePatch; +} + public final class app/revanced/patches/music/playservice/VersionCheckPatchKt { public static final fun getVersionCheckPatch ()Lapp/revanced/patcher/patch/ResourcePatch; public static final fun is_7_33_or_greater ()Z + public static final fun is_8_10_or_greater ()Z public static final fun is_8_11_or_greater ()Z public static final fun is_8_15_or_greater ()Z } diff --git a/patches/src/main/kotlin/app/revanced/patches/music/misc/tracks/ForceOriginalAudioPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/misc/tracks/ForceOriginalAudioPatch.kt new file mode 100644 index 000000000..8130cbe71 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/music/misc/tracks/ForceOriginalAudioPatch.kt @@ -0,0 +1,34 @@ +package app.revanced.patches.music.misc.tracks + +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.music.playservice.is_8_10_or_greater +import app.revanced.patches.music.playservice.versionCheckPatch +import app.revanced.patches.music.shared.mainActivityOnCreateFingerprint +import app.revanced.patches.shared.misc.audio.forceOriginalAudioPatch + +private const val EXTENSION_CLASS_DESCRIPTOR = + "Lapp/revanced/extension/music/patches/ForceOriginalAudioPatch;" + +@Suppress("unused") +val forceOriginalAudioPatch = forceOriginalAudioPatch( + block = { + dependsOn( + sharedExtensionPatch, + settingsPatch, + versionCheckPatch + ) + + compatibleWith( + "com.google.android.apps.youtube.music"( + "7.29.52", + "8.10.52" + ) + ) + }, + fixUseLocalizedAudioTrackFlag = is_8_10_or_greater, + mainActivityOnCreateFingerprint = mainActivityOnCreateFingerprint, + subclassExtensionClassDescriptor = EXTENSION_CLASS_DESCRIPTOR, + preferenceScreen = PreferenceScreen.MISC, +) diff --git a/patches/src/main/kotlin/app/revanced/patches/music/playservice/VersionCheckPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/playservice/VersionCheckPatch.kt index 467498bf2..b14d6b659 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/playservice/VersionCheckPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/playservice/VersionCheckPatch.kt @@ -7,6 +7,8 @@ import app.revanced.util.findPlayStoreServicesVersion var is_7_33_or_greater = false private set +var is_8_10_or_greater = false + private set var is_8_11_or_greater = false private set var is_8_15_or_greater = false @@ -22,6 +24,7 @@ val versionCheckPatch = resourcePatch( // All bug fix releases always seem to use the same play store version as the minor version. is_7_33_or_greater = 245199000 <= playStoreServicesVersion + is_8_10_or_greater = 244799000 <= playStoreServicesVersion is_8_11_or_greater = 251199000 <= playStoreServicesVersion is_8_15_or_greater = 251530000 <= playStoreServicesVersion } diff --git a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/fix/redgifs/FixRedgifsApiPatch.kt b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/fix/redgifs/FixRedgifsApiPatch.kt index f19a5964d..340f4096c 100644 --- a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/fix/redgifs/FixRedgifsApiPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/fix/redgifs/FixRedgifsApiPatch.kt @@ -1,6 +1,5 @@ package app.revanced.patches.reddit.customclients.boostforreddit.fix.redgifs -import app.revanced.patcher.extensions.InstructionExtensions.instructions import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patches.reddit.customclients.CREATE_NEW_CLIENT_METHOD import app.revanced.patches.reddit.customclients.boostforreddit.misc.extension.sharedExtensionPatch @@ -27,9 +26,7 @@ val fixRedgifsApi = fixRedgifsApiPatch( } replaceInstruction( index, - """ - invoke-static { }, ${EXTENSION_CLASS_DESCRIPTOR}->$CREATE_NEW_CLIENT_METHOD - """ + "invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->$CREATE_NEW_CLIENT_METHOD" ) } diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/Fingerprints.kt similarity index 67% rename from patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/Fingerprints.kt rename to patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/Fingerprints.kt index 8e3755bc8..495ac4865 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/Fingerprints.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.video.audio +package app.revanced.patches.shared.misc.audio import app.revanced.patcher.fingerprint import app.revanced.util.containsLiteralInstruction @@ -7,10 +7,14 @@ import com.android.tools.smali.dexlib2.AccessFlags internal val formatStreamModelToStringFingerprint = fingerprint { accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL) returns("Ljava/lang/String;") - custom { method, classDef -> - method.name == "toString" && classDef.type == - "Lcom/google/android/libraries/youtube/innertube/model/media/FormatStreamModel;" + custom { method, _ -> + method.name == "toString" } + strings( + // Strings are partial matches. + "isDefaultAudioTrack=", + "audioTrackId=" + ) } internal const val AUDIO_STREAM_IGNORE_DEFAULT_FEATURE_FLAG = 45666189L @@ -20,7 +24,6 @@ internal val selectAudioStreamFingerprint = fingerprint { returns("L") custom { method, _ -> method.parameters.size > 2 // Method has a large number of parameters and may change. - && method.parameters[1].type == "Lcom/google/android/libraries/youtube/innertube/model/media/PlayerConfigModel;" && method.containsLiteralInstruction(AUDIO_STREAM_IGNORE_DEFAULT_FEATURE_FLAG) } } diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/ForceOriginalAudioPatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/ForceOriginalAudioPatch.kt new file mode 100644 index 000000000..0f5d8f1ac --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/ForceOriginalAudioPatch.kt @@ -0,0 +1,157 @@ +package app.revanced.patches.shared.misc.audio + +import app.revanced.patcher.Fingerprint +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.getInstruction +import app.revanced.patcher.patch.BytecodePatchBuilder +import app.revanced.patcher.patch.BytecodePatchContext +import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patcher.util.proxy.mutableTypes.MutableField.Companion.toMutable +import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable +import app.revanced.patches.all.misc.resources.addResources +import app.revanced.patches.all.misc.resources.addResourcesPatch +import app.revanced.patches.shared.misc.settings.preference.BasePreferenceScreen +import app.revanced.patches.shared.misc.settings.preference.SwitchPreference +import app.revanced.util.findMethodFromToString +import app.revanced.util.indexOfFirstInstructionOrThrow +import app.revanced.util.insertLiteralOverride +import com.android.tools.smali.dexlib2.AccessFlags +import com.android.tools.smali.dexlib2.Opcode +import com.android.tools.smali.dexlib2.builder.MutableMethodImplementation +import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction +import com.android.tools.smali.dexlib2.immutable.ImmutableField +import com.android.tools.smali.dexlib2.immutable.ImmutableMethod +import com.android.tools.smali.dexlib2.immutable.ImmutableMethodParameter + +private const val EXTENSION_CLASS_DESCRIPTOR = + "Lapp/revanced/extension/shared/patches/ForceOriginalAudioPatch;" + +/** + * Patch shared with YouTube and YT Music. + */ +internal fun forceOriginalAudioPatch( + block: BytecodePatchBuilder.() -> Unit = {}, + executeBlock: BytecodePatchContext.() -> Unit = {}, + fixUseLocalizedAudioTrackFlag: Boolean, + mainActivityOnCreateFingerprint: Fingerprint, + subclassExtensionClassDescriptor: String, + preferenceScreen: BasePreferenceScreen.Screen +) = bytecodePatch( + name = "Force original audio", + description = "Adds an option to always use the original audio track.", +) { + + block() + + dependsOn(addResourcesPatch) + + execute { + addResources("shared", "misc.audio.forceOriginalAudioPatch") + + preferenceScreen.addPreferences( + SwitchPreference( + key = "revanced_force_original_audio", + tag = "app.revanced.extension.shared.settings.preference.ForceOriginalAudioSwitchPreference" + ) + ) + + mainActivityOnCreateFingerprint.method.addInstruction( + 0, + "invoke-static { }, $subclassExtensionClassDescriptor->setPreferredLanguage()V" + ) + + // Disable feature flag that ignores the default track flag + // and instead overrides to the user region language. + if (fixUseLocalizedAudioTrackFlag) { + selectAudioStreamFingerprint.method.insertLiteralOverride( + AUDIO_STREAM_IGNORE_DEFAULT_FEATURE_FLAG, + "$EXTENSION_CLASS_DESCRIPTOR->ignoreDefaultAudioStream(Z)Z" + ) + } + + formatStreamModelToStringFingerprint.let { + val isDefaultAudioTrackMethod = it.originalMethod.findMethodFromToString("isDefaultAudioTrack=") + val audioTrackDisplayNameMethod = it.originalMethod.findMethodFromToString("audioTrackDisplayName=") + val audioTrackIdMethod = it.originalMethod.findMethodFromToString("audioTrackId=") + + it.classDef.apply { + // Add a new field to store the override. + val helperFieldName = "patch_isDefaultAudioTrackOverride" + fields.add( + ImmutableField( + type, + helperFieldName, + "Ljava/lang/Boolean;", + // Boolean is a 100% immutable class (all fields are final) + // and safe to write to a shared field without volatile/synchronization, + // but without volatile the field can show stale data + // and the same field is calculated more than once by different threads. + AccessFlags.PRIVATE.value or AccessFlags.VOLATILE.value, + null, + null, + null + ).toMutable() + ) + + // Add a helper method because the isDefaultAudioTrack() has only 2 registers and 3 are needed. + val helperMethodClass = type + val helperMethodName = "patch_isDefaultAudioTrack" + val helperMethod = ImmutableMethod( + helperMethodClass, + helperMethodName, + listOf(ImmutableMethodParameter("Z", null, null)), + "Z", + AccessFlags.PRIVATE.value, + null, + null, + MutableMethodImplementation(6), + ).toMutable().apply { + addInstructionsWithLabels( + 0, + """ + iget-object v0, p0, $helperMethodClass->$helperFieldName:Ljava/lang/Boolean; + if-eqz v0, :call_extension + invoke-virtual { v0 }, Ljava/lang/Boolean;->booleanValue()Z + move-result v3 + return v3 + + :call_extension + invoke-virtual { p0 }, $audioTrackIdMethod + move-result-object v1 + + invoke-virtual { p0 }, $audioTrackDisplayNameMethod + move-result-object v2 + + invoke-static { p1, v1, v2 }, $EXTENSION_CLASS_DESCRIPTOR->isDefaultAudioStream(ZLjava/lang/String;Ljava/lang/String;)Z + move-result v3 + + invoke-static { v3 }, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; + move-result-object v0 + iput-object v0, p0, $helperMethodClass->$helperFieldName:Ljava/lang/Boolean; + return v3 + """ + ) + } + methods.add(helperMethod) + + // Modify isDefaultAudioTrack() to call extension helper method. + isDefaultAudioTrackMethod.apply { + val index = indexOfFirstInstructionOrThrow(Opcode.RETURN) + val register = getInstruction(index).registerA + + addInstructions( + index, + """ + invoke-direct { p0, v$register }, $helperMethodClass->$helperMethodName(Z)Z + move-result v$register + """ + ) + } + } + } + + executeBlock() + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/shortsplayer/OpenShortsInRegularPlayerPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/shortsplayer/OpenShortsInRegularPlayerPatch.kt index 08450dc4d..463785754 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/shortsplayer/OpenShortsInRegularPlayerPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/shortsplayer/OpenShortsInRegularPlayerPatch.kt @@ -161,7 +161,7 @@ val openShortsInRegularPlayerPatch = bytecodePatch( addInstructions( index + 1, """ - invoke-static { v$register }, ${EXTENSION_CLASS_DESCRIPTOR}->overrideBackPressToExit(Z)Z + invoke-static { v$register }, $EXTENSION_CLASS_DESCRIPTOR->overrideBackPressToExit(Z)Z move-result v$register """ ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/navigation/NavigationBarHookPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/navigation/NavigationBarHookPatch.kt index ee6750c60..083fdf2e2 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/navigation/NavigationBarHookPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/navigation/NavigationBarHookPatch.kt @@ -164,7 +164,7 @@ val navigationBarHookPatch = bytecodePatch(description = "Hooks the active navig addInstruction( index + 1, - "invoke-static { v$register }, ${EXTENSION_CLASS_DESCRIPTOR}->setToolbar(Landroid/widget/FrameLayout;)V" + "invoke-static { v$register }, $EXTENSION_CLASS_DESCRIPTOR->setToolbar(Landroid/widget/FrameLayout;)V" ) } diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/ForceOriginalAudioPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/ForceOriginalAudioPatch.kt index bc985a70f..3b9097095 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/ForceOriginalAudioPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/ForceOriginalAudioPatch.kt @@ -1,159 +1,36 @@ package app.revanced.patches.youtube.video.audio -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.getInstruction -import app.revanced.patcher.patch.bytecodePatch -import app.revanced.patcher.util.proxy.mutableTypes.MutableField.Companion.toMutable -import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable -import app.revanced.patches.all.misc.resources.addResources -import app.revanced.patches.all.misc.resources.addResourcesPatch -import app.revanced.patches.shared.misc.settings.preference.SwitchPreference +import app.revanced.patches.shared.misc.audio.forceOriginalAudioPatch import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch import app.revanced.patches.youtube.misc.playservice.is_20_07_or_greater import app.revanced.patches.youtube.misc.playservice.versionCheckPatch import app.revanced.patches.youtube.misc.settings.PreferenceScreen import app.revanced.patches.youtube.misc.settings.settingsPatch import app.revanced.patches.youtube.shared.mainActivityOnCreateFingerprint -import app.revanced.util.findMethodFromToString -import app.revanced.util.indexOfFirstInstructionOrThrow -import app.revanced.util.insertLiteralOverride -import com.android.tools.smali.dexlib2.AccessFlags -import com.android.tools.smali.dexlib2.Opcode -import com.android.tools.smali.dexlib2.builder.MutableMethodImplementation -import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction -import com.android.tools.smali.dexlib2.immutable.ImmutableField -import com.android.tools.smali.dexlib2.immutable.ImmutableMethod -import com.android.tools.smali.dexlib2.immutable.ImmutableMethodParameter private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/ForceOriginalAudioPatch;" @Suppress("unused") -val forceOriginalAudioPatch = bytecodePatch( - name = "Force original audio", - description = "Adds an option to always use the original audio track.", -) { - dependsOn( - sharedExtensionPatch, - settingsPatch, - addResourcesPatch, - versionCheckPatch - ) - - compatibleWith( - "com.google.android.youtube"( - "19.34.42", - "20.07.39", - "20.13.41", - "20.14.43", +val forceOriginalAudioPatch = forceOriginalAudioPatch( + block = { + dependsOn( + sharedExtensionPatch, + settingsPatch, + versionCheckPatch ) - ) - execute { - addResources("youtube", "video.audio.forceOriginalAudioPatch") - - PreferenceScreen.VIDEO.addPreferences( - SwitchPreference( - key = "revanced_force_original_audio", - tag = "app.revanced.extension.youtube.settings.preference.ForceOriginalAudioSwitchPreference" + compatibleWith( + "com.google.android.youtube"( + "19.34.42", + "20.07.39", + "20.13.41", + "20.14.43", ) ) - - mainActivityOnCreateFingerprint.method.addInstruction( - 0, - "invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->setPreferredLanguage()V" - ) - - // Disable feature flag that ignores the default track flag - // and instead overrides to the user region language. - if (is_20_07_or_greater) { - selectAudioStreamFingerprint.method.insertLiteralOverride( - AUDIO_STREAM_IGNORE_DEFAULT_FEATURE_FLAG, - "$EXTENSION_CLASS_DESCRIPTOR->ignoreDefaultAudioStream(Z)Z" - ) - } - - formatStreamModelToStringFingerprint.let { - val isDefaultAudioTrackMethod = it.originalMethod.findMethodFromToString("isDefaultAudioTrack=") - val audioTrackDisplayNameMethod = it.originalMethod.findMethodFromToString("audioTrackDisplayName=") - val audioTrackIdMethod = it.originalMethod.findMethodFromToString("audioTrackId=") - - it.classDef.apply { - // Add a new field to store the override. - val helperFieldName = "patch_isDefaultAudioTrackOverride" - fields.add( - ImmutableField( - type, - helperFieldName, - "Ljava/lang/Boolean;", - // Boolean is a 100% immutable class (all fields are final) - // and safe to write to a shared field without volatile/synchronization, - // but without volatile the field can show stale data - // and the same field is calculated more than once by different threads. - AccessFlags.PRIVATE.value or AccessFlags.VOLATILE.value, - null, - null, - null - ).toMutable() - ) - - // Add a helper method because the isDefaultAudioTrack() has only 2 registers and 3 are needed. - val helperMethodClass = type - val helperMethodName = "patch_isDefaultAudioTrack" - val helperMethod = ImmutableMethod( - helperMethodClass, - helperMethodName, - listOf(ImmutableMethodParameter("Z", null, null)), - "Z", - AccessFlags.PRIVATE.value, - null, - null, - MutableMethodImplementation(6), - ).toMutable().apply { - addInstructionsWithLabels( - 0, - """ - iget-object v0, p0, $helperMethodClass->$helperFieldName:Ljava/lang/Boolean; - if-eqz v0, :call_extension - invoke-virtual { v0 }, Ljava/lang/Boolean;->booleanValue()Z - move-result v3 - return v3 - - :call_extension - invoke-virtual { p0 }, $audioTrackIdMethod - move-result-object v1 - - invoke-virtual { p0 }, $audioTrackDisplayNameMethod - move-result-object v2 - - invoke-static { p1, v1, v2 }, $EXTENSION_CLASS_DESCRIPTOR->isDefaultAudioStream(ZLjava/lang/String;Ljava/lang/String;)Z - move-result v3 - - invoke-static { v3 }, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; - move-result-object v0 - iput-object v0, p0, $helperMethodClass->$helperFieldName:Ljava/lang/Boolean; - return v3 - """ - ) - } - methods.add(helperMethod) - - // Modify isDefaultAudioTrack() to call extension helper method. - isDefaultAudioTrackMethod.apply { - val index = indexOfFirstInstructionOrThrow(Opcode.RETURN) - val register = getInstruction(index).registerA - - addInstructions( - index, - """ - invoke-direct { p0, v$register }, $helperMethodClass->$helperMethodName(Z)Z - move-result v$register - """ - ) - } - } - } - } -} + }, + fixUseLocalizedAudioTrackFlag = is_20_07_or_greater, + mainActivityOnCreateFingerprint = mainActivityOnCreateFingerprint, + subclassExtensionClassDescriptor = EXTENSION_CLASS_DESCRIPTOR, + preferenceScreen = PreferenceScreen.VIDEO, +) diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index e7fe5167b..a23b530ae 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -176,6 +176,13 @@ Playback may not work" Turning off this setting may cause playback issues. Default client + + Force original audio language + Using original audio language + Using default audio + + To use this feature, change \'Spoof video streams\' to any client except Android Studio + Debugging Enable or disable debugging options @@ -1590,13 +1597,6 @@ Enabling this can unlock higher video qualities" Opening links in external browser Opening links in in-app browser - - Force original audio language - Using original audio language - Using default audio - - To use this feature, change \'Spoof video streams\' to any client except Android Studio - Auto From 526c7c05e221dede7caf74d8ead1ce9bc8801feb Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 1 Oct 2025 15:04:39 +0000 Subject: [PATCH 26/63] chore: Release v5.42.0-dev.8 [skip ci] # [5.42.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.7...v5.42.0-dev.8) (2025-10-01) ### Bug Fixes * **YouTube - Force original language:** Resolve some videos using Swedish audio track ([9d67316](https://github.com/ReVanced/revanced-patches/commit/9d6731660ba0e19b863d05d54aa04f74a879f69b)) ### Features * **YouTube Music:** Add `Force original audio` patch ([#6036](https://github.com/ReVanced/revanced-patches/issues/6036)) ([d0d53d1](https://github.com/ReVanced/revanced-patches/commit/d0d53d109e451759a029326873adfa36fba12b23)) --- CHANGELOG.md | 12 ++++++++++++ gradle.properties | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b307935b6..c4e3d56b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# [5.42.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.7...v5.42.0-dev.8) (2025-10-01) + + +### Bug Fixes + +* **YouTube - Force original language:** Resolve some videos using Swedish audio track ([9d67316](https://github.com/ReVanced/revanced-patches/commit/9d6731660ba0e19b863d05d54aa04f74a879f69b)) + + +### Features + +* **YouTube Music:** Add `Force original audio` patch ([#6036](https://github.com/ReVanced/revanced-patches/issues/6036)) ([d0d53d1](https://github.com/ReVanced/revanced-patches/commit/d0d53d109e451759a029326873adfa36fba12b23)) + # [5.42.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.6...v5.42.0-dev.7) (2025-10-01) diff --git a/gradle.properties b/gradle.properties index 5d26c07f2..be9ae46ef 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.42.0-dev.7 +version = 5.42.0-dev.8 From 83ccd9d3f18eddabc3a850435a5812042434aa8e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 1 Oct 2025 19:04:51 +0400 Subject: [PATCH 27/63] chore: Sync translations (#6037) --- .../addresources/values-af-rZA/strings.xml | 6 +- .../addresources/values-am-rET/strings.xml | 6 +- .../addresources/values-ar-rSA/strings.xml | 336 +++++++++--------- .../addresources/values-as-rIN/strings.xml | 6 +- .../addresources/values-az-rAZ/strings.xml | 14 +- .../addresources/values-be-rBY/strings.xml | 14 +- .../addresources/values-bg-rBG/strings.xml | 14 +- .../addresources/values-bn-rBD/strings.xml | 14 +- .../addresources/values-bs-rBA/strings.xml | 6 +- .../addresources/values-ca-rES/strings.xml | 6 +- .../addresources/values-cs-rCZ/strings.xml | 14 +- .../addresources/values-da-rDK/strings.xml | 14 +- .../addresources/values-de-rDE/strings.xml | 14 +- .../addresources/values-el-rGR/strings.xml | 14 +- .../addresources/values-es-rES/strings.xml | 14 +- .../addresources/values-et-rEE/strings.xml | 14 +- .../addresources/values-eu-rES/strings.xml | 6 +- .../addresources/values-fa-rIR/strings.xml | 6 +- .../addresources/values-fi-rFI/strings.xml | 14 +- .../addresources/values-fil-rPH/strings.xml | 14 +- .../addresources/values-fr-rFR/strings.xml | 14 +- .../addresources/values-ga-rIE/strings.xml | 14 +- .../addresources/values-gl-rES/strings.xml | 6 +- .../addresources/values-gu-rIN/strings.xml | 6 +- .../addresources/values-hi-rIN/strings.xml | 6 +- .../addresources/values-hr-rHR/strings.xml | 6 +- .../addresources/values-hu-rHU/strings.xml | 14 +- .../addresources/values-hy-rAM/strings.xml | 14 +- .../addresources/values-in-rID/strings.xml | 14 +- .../addresources/values-is-rIS/strings.xml | 6 +- .../addresources/values-it-rIT/strings.xml | 14 +- .../addresources/values-iw-rIL/strings.xml | 14 +- .../addresources/values-ja-rJP/strings.xml | 22 +- .../addresources/values-ka-rGE/strings.xml | 6 +- .../addresources/values-kk-rKZ/strings.xml | 6 +- .../addresources/values-km-rKH/strings.xml | 6 +- .../addresources/values-kn-rIN/strings.xml | 6 +- .../addresources/values-ko-rKR/strings.xml | 14 +- .../addresources/values-ky-rKG/strings.xml | 6 +- .../addresources/values-lo-rLA/strings.xml | 6 +- .../addresources/values-lt-rLT/strings.xml | 14 +- .../addresources/values-lv-rLV/strings.xml | 14 +- .../addresources/values-mk-rMK/strings.xml | 6 +- .../addresources/values-ml-rIN/strings.xml | 6 +- .../addresources/values-mn-rMN/strings.xml | 6 +- .../addresources/values-mr-rIN/strings.xml | 6 +- .../addresources/values-ms-rMY/strings.xml | 6 +- .../addresources/values-my-rMM/strings.xml | 6 +- .../addresources/values-nb-rNO/strings.xml | 6 +- .../addresources/values-ne-rIN/strings.xml | 6 +- .../addresources/values-nl-rNL/strings.xml | 14 +- .../addresources/values-or-rIN/strings.xml | 6 +- .../addresources/values-pa-rIN/strings.xml | 6 +- .../addresources/values-pl-rPL/strings.xml | 14 +- .../addresources/values-pt-rBR/strings.xml | 14 +- .../addresources/values-pt-rPT/strings.xml | 14 +- .../addresources/values-ro-rRO/strings.xml | 14 +- .../addresources/values-ru-rRU/strings.xml | 14 +- .../addresources/values-si-rLK/strings.xml | 6 +- .../addresources/values-sk-rSK/strings.xml | 14 +- .../addresources/values-sl-rSI/strings.xml | 14 +- .../addresources/values-sq-rAL/strings.xml | 14 +- .../addresources/values-sr-rCS/strings.xml | 14 +- .../addresources/values-sr-rSP/strings.xml | 14 +- .../addresources/values-sv-rSE/strings.xml | 14 +- .../addresources/values-sw-rKE/strings.xml | 6 +- .../addresources/values-ta-rIN/strings.xml | 6 +- .../addresources/values-te-rIN/strings.xml | 6 +- .../addresources/values-th-rTH/strings.xml | 14 +- .../addresources/values-tr-rTR/strings.xml | 14 +- .../addresources/values-uk-rUA/strings.xml | 14 +- .../addresources/values-ur-rIN/strings.xml | 6 +- .../addresources/values-uz-rUZ/strings.xml | 6 +- .../addresources/values-vi-rVN/strings.xml | 14 +- .../addresources/values-zh-rCN/strings.xml | 14 +- .../addresources/values-zh-rTW/strings.xml | 14 +- .../addresources/values-zu-rZA/strings.xml | 6 +- 77 files changed, 564 insertions(+), 564 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-af-rZA/strings.xml +++ b/patches/src/main/resources/addresources/values-af-rZA/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-am-rET/strings.xml +++ b/patches/src/main/resources/addresources/values-am-rET/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 9ebebe4e6..f62dfc7b2 100644 --- a/patches/src/main/resources/addresources/values-ar-rSA/strings.xml +++ b/patches/src/main/resources/addresources/values-ar-rSA/strings.xml @@ -21,7 +21,7 @@ Second \"item\" text" - فشلت الفحوصات + فشلت عمليات التحقق فتح الموقع الرسمي تجاهل <h5>لا يبدو أن هذا التطبيق قد تم تعديله من قبلك.</h5><br>قد لا يعمل هذا التطبيق بشكل صحيح، <b>قد يكون ضارًا أو حتى خطيرًا للاستخدام</b>.<br><br>تشير هذه الفحوصات إلى أن هذا التطبيق تم تعديله مسبقًا أو تم الحصول عليه من شخص آخر:<br><br><small>%1$s</small><br>يوصى بشدة بـ <b>إلغاء تثبيت هذا التطبيق وتعديله بنفسك</b> للتأكد من أنك تستخدم تطبيقًا معتمدًا وآمنًا.<p><br>في حالة تجاهل هذا التحذير، سيتم عرضه مرتين فقط. @@ -58,9 +58,9 @@ Second \"item\" text" مسح سجل البحث هل أنت متأكد أنك تريد مسح كل سجل البحث؟ نصائح البحث - "• انقر فوق مسار للتنقل إليه -• اضغط مطولاً على إعداد للتنقل إليه -• اضغط على Enter لحفظ استعلام بحث في السجل + "• انقر على مسار للانتقال إليه +• اضغط مطولًا على إعداد للانتقال إليه +• اضغط على Enter لحفظ استعلام البحث في السجل • يتجاهل البحث حالة الأحرف وعلامات الترقيم • تظهر الإعدادات الرئيسية فوق الإعدادات الفرعية المعطلة" سجل البحث فارغ @@ -81,7 +81,7 @@ Second \"item\" text" أنت تستخدم إصدار ReVanced Patches <i>%s</i> ملاحظة - هذه النسخة هي إصدار مسبق وقد تواجه مشكلات غير متوقعة + هذه النسخة هي إصدار ما قبل الإصدار وقد تواجه مشكلات غير متوقعة الروابط الرسمية @@ -94,7 +94,7 @@ Second \"item\" text" الإجراء مطلوب "لا يملك MicroG GmsCore صلاحية التشغيل في الخلفية. -اتبع دليل \"لا تقتل تطبيقي\" لهاتفك، وطبّق التعليمات لتثبيت MicroG. +اتبع دليل \"لا تغلق تطبيقي\" لهاتفك، وطبّق التعليمات على تثبيت MicroG. هذا مطلوب لعمل التطبيق." فتح الموقع @@ -108,18 +108,25 @@ Second \"item\" text" Spoof Video Streams تزييف تدفقات الفيديو الخاصة بالعميل لمنع حدوث مشكلات أثناء التشغيل - انتحال بثوث الفيديو - انتحال بثوث الفيديو الخاصة بالعميل لمنع مشكلات التشغيل + Spoof Video Streams + تزييف بثوث الفيديو الخاصة بالعميل لمنع مشكلات التشغيل Spoof Video Streams - "تدفقات الفيديو مزورة + "يتم تزييف تدفقات الفيديو إذا كنت مستخدمًا لـ YouTube Premium، فقد لا يكون هذا الإعداد مطلوبًا" - "لم يتم انتحال بثوث الفيديو + "لا يتم تزييف تدفقات الفيديو -قد لا يعمل التشغيل" +قد لا يعمل تشغيل الفيديو" قد يؤدي إيقاف تشغيل هذا الإعداد إلى مشكلات في التشغيل. العميل الافتراضي + + فرض لغة الصوت الأصلية + استخدام لغة الصوت الأصلية + استخدام الصوت الافتراضي + + لاستخدام هذه الميزة، غيّر \"تزوير تدفقات الفيديو\" إلى أي عميل باستثناء Android Studio + تصحيح الأخطاء تمكين أو تعطيل خيارات تصحيح الأخطاء @@ -147,18 +154,18 @@ Second \"item\" text" تطهير روابط المشاركة - تمت إزالة معلمة استعلام التتبع من الروابط المشتركة - لم تتم إزالة معلمة استعلام التتبع من الروابط المشتركة + تمت إزالة معلمة استعلام التتبع من الروابط عند المشاركة + لم تتم إزالة معلمة استعلام التتبع من الروابط عند المشاركة تغيير روابط المشاركة إلى youtube.com - تستخدم الروابط المشتركة youtube.com - تستخدم الروابط المشتركة music.youtube.com + تستخدم روابط المشاركة youtube.com + تستخدم روابط المشاركة music.youtube.com لمحة الإعلانات - مُصغَّرات فيديو بديلة + مصغرات فيديو بديلة الموجز عام المشغل @@ -205,23 +212,23 @@ Second \"item\" text" تم إخفاء مربع التمويل الجماعي يتم عرض مربع التمويل الجماعي إخفاء البطاقة القابلة للتوسيع - البطاقة القابلة للتوسيع أسفل مقاطع الفيديو مخفية - البطاقة القابلة للتوسيع أسفل مقاطع الفيديو معروضة + تم إخفاء البطاقة القابلة للتوسيع أسفل مقاطع الفيديو + يتم عرض البطاقة القابلة للتوسيع أسفل مقاطع الفيديو إخفاء زر الميكروفون العائم - زر الميكروفون العائم في البحث مخفي - يظهر زر الميكروفون العائم في البحث + تم إخفاء زر الميكروفون العائم في البحث + يتم عرض زر الميكروفون العائم في البحث إخفاء الرفوف الأفقية - "الأرفف الأفقية مخفية، مثل: + "تم إخفاء الأرفف الأفقية، مثل: • الأخبار العاجلة • متابعة المشاهدة • استكشاف المزيد من القنوات • الأكثر صلة • التسوق -• شاهدها مرة أخرى" - الأرفف الأفقية معروضة +• أريد أن اشاهدها مرة أخرى" + يتم عرض الأرفف الأفقية إخفاء رف الصور - رف الصور في نتائج البحث مخفي - رف الصور في نتائج البحث معروض + تم إخفاء رف الصور في نتائج البحث + يتم عرض رف الصور في نتائج البحث إخفاء آخر المشاركات تم إخفاء أحدث المشاركات يتم عرض أحدث المشاركات @@ -234,33 +241,33 @@ Second \"item\" text" إخفاء زر \'تنبيهي\' - زر إشعاري مخفي - زر إشعاري معروض + تم إخفاء زر تنبيهي + يتم عرض زر تنبيهي إخفاء هيّا نلعب تم إخفاء هيّا نلعب يتم عرض هيّا نلعب إخفاء زر \'عرض المزيد\' - زر إظهار المزيد في نتائج البحث مخفي - زر إظهار المزيد في نتائج البحث معروض + تم إخفاء زر عرض المزيد في نتائج البحث + يتم إظهار زر عرض المزيد في نتائج البحث إخفاء الاستبيانات - الاستطلاعات مخفية - الاستطلاعات معروضة + تم إخفاء الاستبيانات + يتم عرض الاستبيانات إخفاء رف التذاكر تم إخفاء رف التذاكر يتم عرض رف التذاكر إخفاء تسميات توصيات الفيديو - تسميات \'شاهد المستخدمون أيضاً\' و\'قد يعجبك أيضاً\' في نتائج البحث مخفية - تسميات \'شاهد المستخدمون أيضاً\' و\'قد يعجبك أيضاً\' في نتائج البحث معروضة + تم إخفاء تسميات \'شاهد المستخدمون أيضًا\' و\'قد يعجبك أيضًا\' في نتائج البحث + يتم عرض تسميات \'شاهد المستخدمون أيضًا\' و\'قد يعجبك أيضًا\' في نتائج البحث إخفاء رسومات YouTube - رسوم Doodles المتحركة في شعار YouTube مخفية - يتم عرض رسوم متحركة Doodles من YouTube على الشعار - "تظهر \"\"Doodles\"\" على YouTube بضعة أيام كل عام. + تم إخفاء رسوم Doodles المتحركة على شعار YouTube + يتم عرض رسوم Doodles المتحركة على شعار YouTube + "تظهر رسومات YouTube Doodles لعدة أيام كل عام. -إذا كان يتم عرض \"Doodle\" حاليًا في منطقتك وإذا كان إعداد الإخفاء هذا قيد التشغيل، فسيتم أيضًا إخفاء شريط التصفية أسفل شريط البحث." +إذا كانت رسومات Doodles تظهر حاليًا في منطقتك وكان إعداد الإخفاء هذا قيد التشغيل، فسيتم أيضًا إخفاء شريط الفلتر الموجود أسفل شريط البحث." إخفاء شريط القناة تم إخفاء شريط القناة يتم عرض شريط القناة @@ -276,17 +283,17 @@ Second \"item\" text" إخفاء زر الانضمام - زر الانضمام مخفي - زر الانضمام معروض + تم إخفاء زر الانضمام + يتم عرض زر الانضمام إخفاء اللوحات الطبية تم إخفاء اللوحات الطبية يتم عرض اللوحات الطبية إخفاء الإجراءات السريعة - الإجراءات السريعة في وضع ملء الشاشة مخفية - الإجراءات السريعة في وضع ملء الشاشة معروضة - إخفاء مقاطع الفيديو ذات الصلة - مقاطع الفيديو ذات الصلة في الإجراءات السريعة مخفية - مقاطع الفيديو ذات الصلة في الإجراءات السريعة معروضة + تم إخفاء الإجراءات السريعة في ملء الشاشة + يتم عرض الإجراءات السريعة في ملء الشاشة + إخفاء الفيديوهات ذات الصلة + تم إخفاء الفيديوهات ذات الصلة في الإجراءات السريعة + يتم عرض الفيديوهات ذات الصلة في الإجراءات السريعة إخفاء إرشادات المشتركين تم إخفاء إرشادات مجتمع المشتركين يتم عرض إرشادات مجتمع المشتركين @@ -294,11 +301,11 @@ Second \"item\" text" تم إخفاء ردود الفعل المؤقتة يتم عرض ردود الفعل المؤقتة إخفاء \'ملخص الفيديو الذي تم إنشاؤه بواسطة الذكاء الاصطناعي\' - قسم ملخص الفيديو الذي تم إنشاؤه بواسطة الذكاء الاصطناعي مخفي - قسم ملخص الفيديو الذي تم إنشاؤه بواسطة الذكاء الاصطناعي معروض - إخفاء \"Ask\" - تم إخفاء قسم \"Ask\" - يتم عرض قسم \"Ask\" + تم إخفاء قسم ملخص الفيديو الذي تم إنشاؤه بواسطة AI + يتم عرض قسم ملخص الفيديو الذي تم إنشاؤه بواسطة AI + إخفاء طرح سؤال + تم إخفاء قسم طرح سؤال + يتم عرض قسم طرح سؤال إخفاء الصفات تم إخفاء أقسام الأماكن المميزة، الألعاب، الموسيقى والأشخاص المذكورون يتم عرض أقسام الأماكن المميزة، الألعاب، الموسيقى والأشخاص المذكورون @@ -323,65 +330,65 @@ Second \"item\" text" وصف الفيديو إخفاء أو عرض مكونات وصف الفيديو شريط التصفية - إخفاء أو إظهار شريط الفلترة في الموجزات ومقاطع الفيديو ذات الصلة ونتائج البحث وسجل المشاهدة + إخفاء أو عرض شريط الفلترة في الموجزات والفيديوهات ذات الصلة ونتائج البحث وسجل المشاهدة إخفاء في الموجز مخفي في الموجز - معروض في الموجز + يُعرض في الموجز إخفاء في الفيديوهات ذات الصلة مخفي في الفيديوهات ذات الصلة يُعرض في الفيديوهات ذات الصلة إخفاء في نتائج البحث مخفي في نتائج البحث يُعرض في نتائج البحث - إخفاء في سجل المشاهدة - مخفي في سجل المشاهدة - معروض في سجل المشاهدة + إخفاء في السجلّ + مخفي في السجلّ + يُعرض في السجلّ صفحة القناة - إخفاء أو إظهار مكونات صفحة القناة + إخفاء أو عرض مكونات صفحة القناة إخفاء رف \'مقترحات لك\' - رف \"لك\" مخفي - رف \"لك\" معروض + تم إخفاء رف مقترح لك + يتم عرض رف مقترح لك إخفاء معاينة الروابط - معاينة الروابط مخفية - معاينة الروابط معروضة + تم إخفاء معاينة الروابط + يتم عرض معاينة الروابط إخفاء رف الأعضاء - رف الأعضاء مخفي + تم إخفاء رف الأعضاء يتم عرض رف الأعضاء - إخفاء زر \"زيارة المنتدى\" - زر \"زيارة المنتدى\" مخفي - زر زيارة المجتمع معروض + إخفاء زر \'زيارة المجتمع\' + تم إخفاء زر زيارة المجتمع + يتم عرض زر زيارة المجتمع - إخفاء زر \'زيارة المتجر\' على صفحات القناة - زر زيارة المتجر مخفي - زر زيارة المتجر معروض + إخفاء زر \'زيارة المتجر\' + تم إخفاء زر زيارة المتجر + يتم عرض زر زيارة المتجر التعليقات إخفاء أو عرض مكونات قسم التعليقات - إخفاء ملخص الدردشة بالذكاء الاصطناعي - ملخص الدردشة بالذكاء الاصطناعي مخفي - ملخص الدردشة بالذكاء الاصطناعي معروض + إخفاء ملخص محادثات الذكاء الاصطناعي + تم إخفاء ملخص محادثة الذكاء الاصطناعي + يتم عرض ملخص محادثة الذكاء الاصطناعي إخفاء ملخص تعليقات الذكاء الاصطناعي - ملخص تعليقات الذكاء الاصطناعي مخفي - ملخص تعليقات الذكاء الاصطناعي معروض + تم إخفاء ملخص تعليقات الذكاء الاصطناعي + يتم عرض ملخص تعليقات الذكاء الاصطناعي إخفاء إرشادات القناة - إرشادات القناة مخفية - إرشادات القناة معروضة - إخفاء رأس \'تعليقات الأعضاء\' + تم إخفاء إرشادات القناة + يتم عرض إرشادات القناة + إخفاء علامة \'تعليقات بواسطة الأعضاء\' تم إخفاء علامة تعليقات من الأعضاء يتم عرض علامة تعليقات من الأعضاء إخفاء قسم التعليقات تم إخفاء قسم التعليقات يتم عرض قسم التعليقات - إخفاء إرشادات المنتدى - إرشادات المجتمع مخفية - إرشادات المجتمع معروضة + إخفاء إرشادات المجتمع + تم إخفاء إرشادات المجتمع + يتم عرض إرشادات المجتمع إخفاء زر \'إنشاء Short\' تم إخفاء زر إنشاء Short يتم عرض زر إنشاء Short إخفاء أزرار الرموز التعبيرية والطابع الزمني - أزرار الرموز التعبيرية والطابع الزمني مخفية - أزرار الرموز التعبيرية والطابع الزمني معروضة + تم إخفاء أزرار الرموز التعبيرية والطوابع الزمنية + يتم عرض أزرار الرموز التعبيرية والطوابع الزمنية إخفاء تعليق المعاينة تم إخفاء تعليق المعاينة يتم عرض تعليق المعاينة @@ -398,28 +405,28 @@ Second \"item\" text" قائمة سلاسل منشئ مسار المكونات المراد تصفيتها مفصولة بسطر جديد فلتر مخصص غير صالح: %s إخفاء عدد المشاهدات - عدد المشاهدات مخفي في الموجز ونتائج البحث - عدد المشاهدات ظاهر في الموجز ونتائج البحث + تم إخفاء عدد المشاهدات في الموجز ونتائج البحث + يتم عرض عدد المشاهدات في الموجز ونتائج البحث - "قيود: + "القيود: • رفوف Shorts وصفحات القنوات ونتائج البحث قد تظل تعرض أعداد المشاهدات -• هذه الميزة لا تعمل مع عامل الشكل الخاص بالسيارات" +• هذه الميزة لا تعمل مع عامل الشكل Automotive" إخفاء وقت التحميل - وقت التحميل مخفي في الخلاصة ونتائج البحث - وقت التحميل معروض في الخلاصة ونتائج البحث + تم إخفاء وقت التحميل في الموجز ونتائج البحث + يتم عرض وقت التحميل في الموجز ونتائج البحث "القيود: • قد تظل أرفف Shorts وصفحات القنوات ونتائج البحث تُظهر أوقات التحميل -• هذه الميزة لا تعمل مع عامل شكل السيارات" - إخفاء محتوى الكلمات المفتاحية +• هذه الميزة لا تعمل مع عامل الشكل Automotive" + إخفاء محتوى بالكلمات المفتاحية إخفاء فيديوهات البحث والموجز باستخدام فلاتر الكلمات المفتاحية إخفاء فيديوهات الصفحة الرئيسية بواسطة الكلمات المفتاحية - تتم تصفية الفيديوهات في علامة التبويب \"الصفحة الرئيسية\" حسب الكلمات المفتاحية - لا تتم تصفية الفيديوهات في علامة التبويب \"الصفحة الرئيسية\" حسب الكلمات المفتاحية + تتم تصفية الفيديوهات في علامة التبويب \'الصفحة الرئيسية\' حسب الكلمات المفتاحية + لا تتم تصفية الفيديوهات في علامة التبويب \'الصفحة الرئيسية\' حسب الكلمات المفتاحية إخفاء نتائج البحث عن طريق الكلمات المفتاحية يتم تصفية نتائج البحث حسب الكلمات المفتاحية لا يتم تصفية نتائج البحث حسب الكلمات المفتاحية - إخفاء الفيديوهات الخاصة بالاشتراك عن طريق الكلمات المفتاحية + إخفاء الفيديوهات الخاصة بالاشتراكات عن طريق الكلمات المفتاحية يتم تصفية الفيديوهات في علامة التبويب الاشتراكات حسب الكلمات المفتاحية لا يتم تصفية الفيديوهات في علامة التبويب الاشتراكات حسب الكلمات المفتاحية الكلمات المفتاحية المراد إخفاؤها @@ -430,7 +437,7 @@ Second \"item\" text" يمكن أن تكون الكلمات عبارة عن أسماء قنوات أو أي نص يظهر في عناوين الفيديوهات يجب إدخال الكلمات التي تحتوي على أحرف كبيرة في المنتصف بنفس الحالة (على سبيل المثال: iPhone, TikTok, LeBlanc)" - حول تصفية الكلمات المفتاحية + لمحة عن تصفية الكلمات المفتاحية "الصفحة الرئيسية/الاشتراكات/نتائج البحث يتم تصفيتها لإخفاء المحتوى الذي يتطابق مع كلمات البحث القيود @@ -439,21 +446,21 @@ Second \"item\" text" • البحث عن كلمة ما قد لا يعطي نتائج" مطابقة الكلمات بأكملها - سيؤدي وضع علامة اقتباس مزدوجة حول كلمة رئيسية/عبارة إلى منع التطابقات الجزئية لعناوين الفيديو وأسماء القنوات.<br><br>على سبيل المثال،<br><b>\"ai\"</b> سيخفي الفيديو: <b>How does AI work?</b><br>ولكن لن يخفي: <b>What does fair use mean?</b> + سيؤدي وضع علامة اقتباس مزدوجة حول كلمة مفتاحية/عبارة إلى منع التطابقات الجزئية لعناوين الفيديو وأسماء القنوات<br><br>على سبيل المثال،<br><b>\"ai\"</b> سيخفي الفيديو: <b>How does AI work?</b><br><b>ولكن لن يخفي:<b>What does fair use mean?</b> لا يمكن استخدام الكلمة المفتاحية: %s إضافة اقتباسات لاستخدام الكلمة المفتاحية: %s - الكلمة المفتاحية لها بيانات متضاربة: %s + الكلمة المفتاحية بها تعريفات متعارضة: %s الكلمة المفتاحية قصيرة جدًا وتتطلب اقتباسات: %s الكلمة المفتاحية سوف تخفي جميع الفيديوهات: %s - إخفاء رف متجر المبدع - رف متجر المنشئ أسفل مشغل الفيديو مخفي - يتم عرض رف متجر المنشئ تحت مشغل الفيديو + إخفاء رف متجر المنشئ + تم إخفاء رف متجر المنشئ أسفل مشغل الفيديو + يتم عرض رف متجر المنشئ أسفل مشغل الفيديو إخفاء لافتة شاشة المتجر النهائية - لافتة متجر الشاشة النهائية مخفية - لافتة متجر الشاشة النهائية معروضة + تم إخفاء لافتة المتجر بالشاشة النهائية + يتم عرض لافتة المتجر بالشاشة النهائية إخفاء إعلانات ملء الشاشة "يتم إخفاء إعلانات ملء الشاشة @@ -474,11 +481,11 @@ Second \"item\" text" تم إخفاء بطاقات الرعاية الذاتية يتم عرض بطاقات الرعاية الذاتية إخفاء روابط التسوق - روابط التسوق في وصف الفيديو مخفية + تم إخفاء روابط التسوق في وصف الفيديو يتم عرض روابط التسوق في وصف الفيديو إخفاء لافتة \'عرض المنتجات\' - لافتة عرض المنتجات في تراكب الفيديو مخفية - لافتة عرض المنتجات في تراكب الفيديو معروضة + تم إخفاء لافتة عرض المنتجات في واجهة الفيديو + يتم عرض لافتة عرض المنتجات في واجهة الفيديو إخفاء نتائج بحث الويب تم إخفاء نتائج البحث على الويب يتم عرض نتائج البحث على الويب @@ -511,8 +518,8 @@ Second \"item\" text" تعطيل النافذة المنبثقة لتسجيل الدخول إلى التلفزيون - النافذة المنبثقة لتسجيل الدخول إلى التلفزيون معطلة - النافذة المنبثقة لتسجيل الدخول إلى التلفزيون مفعلة + تم تعطيل نافذة تسجيل الدخول إلى التلفزيون + تم تمكين نافذة تسجيل الدخول إلى التلفزيون تعطيل تخطي الفصل بالنقر المزدوج @@ -526,7 +533,7 @@ Second \"item\" text" يتم عرض زر التنزيل في المشغل لا يتم عرض زر التنزيل في المشغل - تجاوز زر إجراء التنزيل + تجاوز زر إجراء زر التنزيل يفتح زر التنزيل أداة التنزيل الخارجية يفتح زر التنزيل أداة التنزيل الأصلية داخل التطبيق اسم حزمة أداة التنزيل @@ -542,8 +549,8 @@ Second \"item\" text" تعطيل إيماءة التمرير الدقيقة - تم تعطيل الإيماءة - تم تمكين الإيماءة + تم تعطيل إيماءة التمرير الدقيقة + تم تمكين إيماءة التمرير الدقيقة تمكين النقر للتمرير @@ -551,19 +558,19 @@ Second \"item\" text" تم تعطيل النقر للتمرير - التحكم بالسطوع عن طريق ايماءة التمرير - "تم تمكين التمرير السريع لضبط السطوع في وضع ملء الشاشة + تمكين إيماءة السطوع + "تم تمكين إيماءة مستوى السطوع في وضع ملء الشاشة -اضبط السطوع عن طريق التمرير عموديًا على الجانب الأيسر من الشاشة" - تم تعطيل التمرير السريع لضبط السطوع في وضع ملء الشاشة - تمكين التحكم بالصوت عن طريق إيماءة التمرير - "تم تمكين التمرير السريع لضبط مستوى الصوت في وضع ملء الشاشة +اضبط مستوى السطوع بالتمرير عموديًا على يسار الشاشة" + تم تعطيل إيماءة مستوى السطوع في وضع ملء الشاشة + تمكين إيماءة الصوت + "تم تمكين إيماءة مستوى الصوت في وضع ملء الشاشة اضبط مستوى الصوت عن طريق التمرير عموديًا على الجانب الأيمن من الشاشة" - تم تعطيل التمرير السريع لضبط مستوى الصوت في وضع ملء الشاشة - تمكين الضغط على إيماءة التمرير السريع - تم تمكين الضغط للتمرير السريع - تم تعطيل الضغط للتمرير السريع + تم تعطيل إيماءة مستوى الصوت في وضع ملء الشاشة + تمكين الضغط لتمرير الإيماءة + تم تمكين الضغط لتمرير الإيماءة + تم تعطيل الضغط لتمرير الإيماءة الاهتزاز عند الضغط تم تمكين الاهتزاز عند الضغط تم تعطيل الاهتزاز عند الضغط @@ -576,29 +583,29 @@ Second \"item\" text" تلقائي مهلة واجهة التمرير مقدار الوقت الذي تظهر فيه واجهة التمرير بعد التغيير بجزء الثانية - تعتيم خلفية واجهة التمرير السريع - قيمة التعتيم بين 0-100 - يجب أن يكون تعتيم التمرير السريع بين 0-100 - لون سطوع واجهة التمرير - لون شريط التقدم لعناصر التحكم في السطوع - لون مستوى صوت واجهة التمرير - لون شريط التقدم لعناصر التحكم في مستوى الصوت - حجم نص واجهة التمرير - حجم النص لواجهة التمرير بين 1-30 + تعتيم خلفية واجهة التمرير + قيمة الشفافية بين 0-100 + يجب أن تكون شفافية التمرير بين 0-100 + لون نمط إيماءة السطوع + لون شريط عناصر التحكم في مستوى السطوع + لون نمط إيماءة الصوت + لون شريط عناصر التحكم في مستوى الصوت + حجم نص نمط إيماءة التمرير + حجم النص لنمط التمرير بين 1-30 يجب أن يكون حجم النص بين 1-30 مقدار حد التمرير - الحد الأدنى من التمرير قبل اكتشاف الإيماءة - حساسية إيماءة تمرير مستوى الصوت + مقدار الحد الأقصى لحدوث التمرير + حساسية تمرير مستوى الصوت مقدار تغير مستوى الصوت لكل تمريرة نمط واجهة التمرير - واجهة أفقية - واجهة أفقية (الأدنى - الأعلى) - واجهة أفقية (الأدنى - المنتصف) - واجهة دائرية - واجهة دائرية (الأدنى) - واجهة عمودية - واجهة عمودية (الأدنى) - تمكين إيماءة التمرير لتغيير الفيديو + النمط الافقي + النمط الأفقي (الأدنى - الأعلى) + النمط الأفقي (الأدنى - المنتصف) + النمط الدائري + النمط الدائري (الأدنى) + النمط العمودي + النمط العمودي (الأدنى) + تمكين إيماءة التمرير لتغيير الفيديوهات سيؤدي التمرير في وضع ملء الشاشة إلى التغيير للفيديو التالي/السابق لن يؤدي التمرير في وضع ملء الشاشة إلى التغيير للفيديو التالي/السابق @@ -610,9 +617,9 @@ Second \"item\" text" أزرار الإجراء إخفاء أو عرض الأزرار تحت الفيديوهات - إيقاف تفعيل توهج الإعجاب والاشتراك - لن يتوهَّج زرّي أعجبني واشتراك عند ذكرهما - سيتوهَّج زرّي أعجبني واشتراك عند ذكرهما + تعطيل توهج الإعجاب والاشتراك + لن يتوهج زر أعجبني والاشتراك عند الإشارة إليه + سيتوهَّج زر أعجبني والاشتراك عند الإشارة إليه إخفاء أعجبني ولم يعجبني تم إخفاء أزرار أعجبني ولم يعجبني يتم عرض أزرار أعجبني ولم يعجبني @@ -622,12 +629,12 @@ Second \"item\" text" يتم عرض زر مشاركة إخفاء إيقاف الإعلانات - زر إيقاف الإعلانات مخفي - زر إيقاف الإعلانات معروض + تم إخفاء زر إيقاف الإعلانات + يتم عرض زر إيقاف الإعلانات إخفاء التعليقات - زر التعليقات مخفي - زر التعليقات ظاهر + تم إخفاء زر التعليقات + يتم عرض زر التعليقات إخفاء الإبلاغ @@ -638,39 +645,39 @@ Second \"item\" text" تم إخفاء زر ريمكس يتم عرض زر ريمكس - إخفاء التنزيل - تم إخفاء زر التنزيل - يتم عرض زر التنزيل + إخفاء تنزيل + تم إخفاء زر تنزيل + يتم عرض زر تنزيل - إخفاء الضجة - زر الضجة مخفي - يظهر زر الحماس + إخفاء التشجيع + تم إخفاء زر التشجيع + يتم عرض زر التشجيع إخفاء الترويج - زر الترويج مخفي - زر الترويج ظاهر + تم إخفاء زر الترويج + يتم عرض زر الترويج إخفاء شكرًا تم إخفاء زر شكرًا يتم عرض زر شكرًا - إخفاء \"Ask\" - تم إخفاء زر \"Ask\" - يتم عرض زر \"Ask\" + إخفاء طرح سؤال + تم إخفاء زر طرح سؤال + يتم عرض زر طرح سؤال إخفاء المقطع - تم إخفاء زر إنشاء مقطع - يتم عرض زر إنشاء مقطع + تم إخفاء زر المقطع + يتم عرض زر المقطع إخفاء المتجر - زر المتجر مخفي - زر المتجر معروض + تم إخفاء زر المتجر + يتم عرض زر المتجر إخفاء حفظ - زر الحفظ مخفي - زر الحفظ معروض + تم إخفاء زر حفظ + يتم عرض زر حفظ أزرار التنقل @@ -684,7 +691,7 @@ Second \"item\" text" تم إخفاء زر Shorts يتم عرض زر Shorts - إخفاء الإنشاء + إخفاء إنشاء تم إخفاء زر الإنشاء يتم عرض زر الإنشاء @@ -695,7 +702,7 @@ Second \"item\" text" تم إخفاء زر الإشعارات يتم عرض زر الإشعارات - تبديل الإنشاء مع الإشعارات + تبديل الإنشاء بالإشعارات "تم تبديل زر الإنشاء بـزر الإشعارات ملاحظة: يؤدي تمكين هذا أيضًا إلى إخفاء إعلانات الفيديو بالقوة" @@ -1513,13 +1520,6 @@ Second \"item\" text" فتح الروابط في متصفح خارجي فتح الروابط في متصفح داخل التطبيق - - فرض لغة الصوت الأصلية - استخدام لغة الصوت الأصلية - استخدام الصوت الافتراضي - - لاستخدام هذه الميزة، غيّر \"تزوير تدفقات الفيديو\" إلى أي عميل باستثناء 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 97160e13f..5d97c0fd2 100644 --- a/patches/src/main/resources/addresources/values-as-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-as-rIN/strings.xml @@ -35,6 +35,9 @@ Second \"item\" text" + + + @@ -229,9 +232,6 @@ Second \"item\" text" - - - 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 e3cd54cb0..96b4fb149 100644 --- a/patches/src/main/resources/addresources/values-az-rAZ/strings.xml +++ b/patches/src/main/resources/addresources/values-az-rAZ/strings.xml @@ -120,6 +120,13 @@ Oynatma işləməyə bilər" Bu tənzimləməni qapatmaq oynatma problemlərinə səbəb ola bilər. İlkin qəbuledici + + Orijinal səs dilini zorla + Orijinal səs dilini istifadə + İlkin səs istifadəsi + + Bu funksiyanı istifadə etmək üçün \"Video yayımları saxtalaşdırı\" Android Studio savayı istənilən qəbulediciyə dəyiş + Sazlama Sazlama seçimlərini aktiv/qeyri-aktiv et @@ -1512,13 +1519,6 @@ Bunu aktivləşdirmə daha yüksək video keyfiyyətləri əngəlin silə bilər Xarici brauzerdə bağlantıların açılması Tətbiqdaxili brauzerdə bağlantıların açılması - - Orijinal səs dilini zorla - Orijinal səs dilini istifadə - İlkin səs istifadəsi - - Bu funksiyanı istifadə etmək üçün \"Video yayımları saxtalaşdırı\" Android Studio savayı istənilən qəbulediciyə dəyiş - Avtomatik 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 31c20e333..9e18c0242 100644 --- a/patches/src/main/resources/addresources/values-be-rBY/strings.xml +++ b/patches/src/main/resources/addresources/values-be-rBY/strings.xml @@ -120,6 +120,13 @@ Second \"item\" text" Адключэнне гэтай налады можа выклікаць праблемы з прайграваннем. Клиент по умолчанию + + Вымушаная арыгінальная мова аўдыё + Выкарыстоўваць арыгінальную мову аўдыя + Выкарыстанне аўдыё па змаўчанні + + Каб выкарыстаць гэтую функцыю, змяніце \'Падмена відэаструменяў\' на любога кліента, акрамя Android Studio + Адладка Уключыць або выключыць параметры адладкі @@ -1514,13 +1521,6 @@ Second \"item\" text" Адкрыццё спасылак у знешнім браўзеры Адкрыццё спасылак ва ўбудаваным браўзеры - - Вымушаная арыгінальная мова аўдыё - Выкарыстоўваць арыгінальную мову аўдыя - Выкарыстанне аўдыё па змаўчанні - - Каб выкарыстаць гэтую функцыю, змяніце \'Падмена відэаструменяў\' на любога кліента, акрамя 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 9ab0c994e..e20e42b09 100644 --- a/patches/src/main/resources/addresources/values-bg-rBG/strings.xml +++ b/patches/src/main/resources/addresources/values-bg-rBG/strings.xml @@ -120,6 +120,13 @@ Second \"item\" text" Изключването на тази настройка може да причини проблеми с възпроизвеждането. Клиент по подразбиране + + Принудително оригинално аудио език + Използване на оригиналния език на аудиото + Използване на аудио по подразбиране + + За да използвате тази функция, променете \'Фалшифициране на видео потоци\' на всеки клиент, освен Android Studio + Отстраняване на грешки Активиране или деактивиране на отстраняването на грешки @@ -1513,13 +1520,6 @@ Second \"item\" text" Отваряне на връзки във външен браузър Отваряне на връзки във вграден браузър - - Принудително оригинално аудио език - Използване на оригиналния език на аудиото - Използване на аудио по подразбиране - - За да използвате тази функция, променете \'Фалшифициране на видео потоци\' на всеки клиент, освен 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 550fc078a..3e6d1a701 100644 --- a/patches/src/main/resources/addresources/values-bn-rBD/strings.xml +++ b/patches/src/main/resources/addresources/values-bn-rBD/strings.xml @@ -120,6 +120,13 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ এই সেটিং বন্ধ করলে প্লেব্যাক সমস্যা হতে পারে। ডিফল্ট ক্লায়েন্ট + + মূল অডিও ভাষা বলপূর্বক চালু করুন + মূল অডিও ভাষা ব্যবহার করা হচ্ছে + ডিফল্ট অডিও ব্যবহার করছে + + এই বৈশিষ্ট্যটি ব্যবহার করতে, \'ভিডিও স্ট্রিম স্পুফ করুন\' অ্যান্ড্রয়েড স্টুডিও ছাড়া অন্য কোনো ক্লায়েন্টে পরিবর্তন করুন + ডিবাগিং ডিবাগিং অপশন সক্রিয় বা নিষ্ক্রিয় করুন @@ -1509,13 +1516,6 @@ DeArrow সম্পর্কে আরও জানতে এখানে ট বাহ্যিক ব্রাউজারে লিঙ্ক খোলা হচ্ছে ইন-অ্যাপ ব্রাউজারে লিঙ্ক খোলা হচ্ছে - - মূল অডিও ভাষা বলপূর্বক চালু করুন - মূল অডিও ভাষা ব্যবহার করা হচ্ছে - ডিফল্ট অডিও ব্যবহার করছে - - এই বৈশিষ্ট্যটি ব্যবহার করতে, \'ভিডিও স্ট্রিম স্পুফ করুন\' অ্যান্ড্রয়েড স্টুডিও ছাড়া অন্য কোনো ক্লায়েন্টে পরিবর্তন করুন - স্বতস্ফূর্তভাবে 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-bs-rBA/strings.xml +++ b/patches/src/main/resources/addresources/values-bs-rBA/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-ca-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-ca-rES/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 0b681f1d1..10e706ea7 100644 --- a/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml +++ b/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml @@ -120,6 +120,13 @@ Přehrávání nemusí fungovat" Vypnutí tohoto nastavení může způsobit problémy s přehráváním. Výchozí klient + + Vynutit původní jazyk zvuku + Použít původní jazyk zvuku + Používání výchozího zvuku + + Chcete-li použít tuto funkci, změňte \'Zfalšovat video streamy\' na libovolného klienta kromě Android Studia + Debugování Povolit nebo zakázat debugovací možnosti @@ -1513,13 +1520,6 @@ Povolením této funkce lze odemknout vyšší kvality videa" Otevírání odkazů v externím prohlížeči Otevírání odkazů v prohlížeči v aplikaci - - Vynutit původní jazyk zvuku - Použít původní jazyk zvuku - Používání výchozího zvuku - - Chcete-li použít tuto funkci, změňte \'Zfalšovat video streamy\' na libovolného klienta kromě Android Studia - Automaticky 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 b252891b3..7bc6b8c92 100644 --- a/patches/src/main/resources/addresources/values-da-rDK/strings.xml +++ b/patches/src/main/resources/addresources/values-da-rDK/strings.xml @@ -120,6 +120,13 @@ Afspilning fungerer muligvis ikke" Deaktivering af denne indstilling kan forårsage afspilningsproblemer. Standard klient + + Tving originalt lydsprog + Bruger originalt lydsprog + Brug standard lyd + + For at bruge denne funktion skal du ændre \"Forfalsk videostreams\" til en hvilken som helst klient undtagen Android Studio + Fejlfinding Aktivér eller deaktiver fejlfindingsindstillinger @@ -1515,13 +1522,6 @@ Aktivering af dette kan låse op for højere videokvalitet" Åbner links i ekstern browser Åbner links i browser i appen - - Tving originalt lydsprog - Bruger originalt lydsprog - Brug standard lyd - - For at bruge denne funktion skal du ændre \"Forfalsk videostreams\" til en hvilken som helst klient undtagen Android Studio - Automatisk 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 c1a617cc8..edb4d484d 100644 --- a/patches/src/main/resources/addresources/values-de-rDE/strings.xml +++ b/patches/src/main/resources/addresources/values-de-rDE/strings.xml @@ -120,6 +120,13 @@ Die Wiedergabe funktioniert möglicherweise nicht" Das Deaktivieren dieser Einstellung kann Wiedergabeprobleme verursachen. Standard-Client + + Original Audio erzwingen + Original-Audiosprache verwenden + Standardaudio verwenden + + Um diese Funktion zu nutzen, ändere \"Video-Streams fälschen\" auf einen beliebigen Client außer Android Studio + Fehlerbehebung Aktiviert oder deaktiviert Debugging-Optionen @@ -1510,13 +1517,6 @@ Durch Aktivieren dieser Option können höhere Videoqualitäten freigeschaltet w Links im externen Browser öffnen Links im In-App-Browser öffnen - - Original Audio erzwingen - Original-Audiosprache verwenden - Standardaudio verwenden - - Um diese Funktion zu nutzen, ändere \"Video-Streams fälschen\" auf einen beliebigen Client außer Android Studio - Autom 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 6802840f5..52b072bba 100644 --- a/patches/src/main/resources/addresources/values-el-rGR/strings.xml +++ b/patches/src/main/resources/addresources/values-el-rGR/strings.xml @@ -120,6 +120,13 @@ Second \"item\" text" Η απενεργοποίηση αυτής της ρύθμισης ενδέχεται να προκαλέσει προβλήματα αναπαραγωγής. Προεπιλεγμένο πρόγραμμα πελάτη + + Εξαναγκασμός αρχικής γλώσσας ήχου + Χρησιμοποιείται η αρχική γλώσσα ήχου + Χρησιμοποιείται ο προεπιλεγμένος ήχος + + Για να χρησιμοποιήσετε αυτήν τη λειτουργία, αλλάξτε την επιλογή «Παραποίηση ροών βίντεο» σε οποιονδήποτε πελάτη εκτός από το Android Studio + Εντοπισμός σφαλμάτων Ενεργοποίηση ή απενεργοποίηση επιλογών εντοπισμού σφαλμάτων @@ -1512,13 +1519,6 @@ Second \"item\" text" Οι σύνδεσμοι ανοίγουν σε εξωτερικό πρόγραμμα περιήγησης Οι σύνδεσμοι ανοίγουν στο εσωτερικό πρόγραμμα περιήγησης της εφαρμογής - - Εξαναγκασμός αρχικής γλώσσας ήχου - Χρησιμοποιείται η αρχική γλώσσα ήχου - Χρησιμοποιείται ο προεπιλεγμένος ήχος - - Για να χρησιμοποιήσετε αυτήν τη λειτουργία, αλλάξτε την επιλογή «Παραποίηση ροών βίντεο» σε οποιονδήποτε πελάτη εκτός από το 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 bebfd2ef8..8cdcce5c5 100644 --- a/patches/src/main/resources/addresources/values-es-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-es-rES/strings.xml @@ -120,6 +120,13 @@ La reproducción podría no funcionar" Desactivar esta configuración puede causar problemas de reproducción. Cliente por defecto + + Forzar idioma de audio original + Usar el idioma de audio original + Utilizando audio predeterminado + + Para usar esta función, cambia \'Falsificar transmisiones de vídeo\' a cualquier cliente excepto Android Studio + Depuración Activar o desactivar las opciones de depuración @@ -1504,13 +1511,6 @@ Habilitar esto puede desbloquear calidades de vídeo más altas" Abrir enlaces en el navegador externo Abrir enlaces en el navegador integrado en la aplicación - - Forzar idioma de audio original - Usar el idioma de audio original - Utilizando audio predeterminado - - Para usar esta función, cambia \'Falsificar transmisiones de vídeo\' a cualquier cliente excepto Android Studio - Automático 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 16bde5d03..3300b1aa9 100644 --- a/patches/src/main/resources/addresources/values-et-rEE/strings.xml +++ b/patches/src/main/resources/addresources/values-et-rEE/strings.xml @@ -120,6 +120,13 @@ Taasesitus ei pruugi töötada" Selle sätte väljalülitamine võib põhjustada taasesitusprobleeme. Vaikimisi klient + + Sunni originaalheli keel + Algse helikeele kasutamine + Kasutan vaikeheli + + Selle funktsiooni kasutamiseks muutke „Võltsitud videovood” mis tahes muule kliendile peale Android Studio. + Veaotsing Veaotsinguvalikud lubamiseks või keelamiseks @@ -1513,13 +1520,6 @@ Selle lubamine võib avada kõrgema video kvaliteedi" Linkide avamine välises brauseris Linkide avamine rakendusesiseses brauseris - - Sunni originaalheli keel - Algse helikeele kasutamine - Kasutan vaikeheli - - Selle funktsiooni kasutamiseks muutke „Võltsitud videovood” mis tahes muule kliendile peale Android Studio. - Automaatne 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-eu-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-eu-rES/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 9fda43100..6ecd6b63b 100644 --- a/patches/src/main/resources/addresources/values-fa-rIR/strings.xml +++ b/patches/src/main/resources/addresources/values-fa-rIR/strings.xml @@ -69,6 +69,9 @@ Second \"item\" text" + + + عیب‌یابی فعال یا غیرفعال کردن گزینه‌های عیب یابی @@ -277,9 +280,6 @@ Second \"item\" text" - - - 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 0149dce30..995fb9ab8 100644 --- a/patches/src/main/resources/addresources/values-fi-rFI/strings.xml +++ b/patches/src/main/resources/addresources/values-fi-rFI/strings.xml @@ -120,6 +120,13 @@ Toisto ei välttämättä toimi" Tämän asetuksen poistaminen käytöstä voi aiheuttaa toisto-ongelmia. Oletusasiakasohjelma + + Pakota alkuperäinen äänen kieli + Käytetään alkuperäistä ääntä + Käytetään oletusääntä + + Käyttääksesi tätä ominaisuutta, muuta \"Naamioi videovirrat\" mihin tahansa asiakasohjelmaan paitsi Android Studioon + Virheenkorjaus Ota tai poista virheenkorjausasetukset käytöstä @@ -1513,13 +1520,6 @@ Tämä voi avata korkealaatuisemmat videot" Linkit avataan ulkoisessa selaimessa Linkit avataan sovelluksen sisäisessä selaimessa - - Pakota alkuperäinen äänen kieli - Käytetään alkuperäistä ääntä - Käytetään oletusääntä - - Käyttääksesi tätä ominaisuutta, muuta \"Naamioi videovirrat\" mihin tahansa asiakasohjelmaan paitsi Android Studioon - Automaattinen 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 11cd54f7f..4ba8009c2 100644 --- a/patches/src/main/resources/addresources/values-fil-rPH/strings.xml +++ b/patches/src/main/resources/addresources/values-fil-rPH/strings.xml @@ -120,6 +120,13 @@ Maaaring hindi gumana ang pag-playback" Ang pag-off sa setting na ito ay maaaring magdulot ng mga isyu sa pag-playback. Default na kliyente + + Pilitin ang orihinal na wika ng audio + Ginagamit ang orihinal na wika ng audio + Gumagamit ng default audio + + Para magamit ang feature na ito, palitan ang \'Panggagaya ng mga video stream\' sa anumang client maliban sa Android Studio + Pagde-debug Paganahin o huwag paganahin ang mga opsyon sa pag-debug @@ -1511,13 +1518,6 @@ Ang pagpapagana nito ay maaaring magbukas ng mas mataas na kalidad ng video"Binubuksan ang mga link sa panlabas na browser Binubuksan ang mga link sa in-app na browser - - Pilitin ang orihinal na wika ng audio - Ginagamit ang orihinal na wika ng audio - Gumagamit ng default audio - - Para magamit ang feature na ito, palitan ang \'Panggagaya ng mga video stream\' sa anumang client maliban sa Android Studio - Awtomatik 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 7e9dc2759..bf4975277 100644 --- a/patches/src/main/resources/addresources/values-fr-rFR/strings.xml +++ b/patches/src/main/resources/addresources/values-fr-rFR/strings.xml @@ -120,6 +120,13 @@ Il est possible que la lecture ne fonctionne pas" La désactivation de ce paramètre peut entraîner des problèmes de lecture. Client par défaut + + Forcer la langue audio d\'origine + Utilisation de la langue audio d\'origine + Utilisation de l\'audio par défaut + + Pour utiliser cette fonctionnalité, définissez \"Falsifier les flux vidéo\" sur n\'importe quel client, sauf Android Studio + Débogage Activez ou désactivez les options de débogage @@ -1514,13 +1521,6 @@ Activer cette option peut déverrouiller des qualités vidéo supérieures"Les liens sont ouverts dans le navigateur externe Les liens sont ouverts dans le navigateur intégré à l\'application - - Forcer la langue audio d\'origine - Utilisation de la langue audio d\'origine - Utilisation de l\'audio par défaut - - Pour utiliser cette fonctionnalité, définissez \"Falsifier les flux vidéo\" sur n\'importe quel client, sauf Android Studio - Automatique 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 e6b356154..f508ed916 100644 --- a/patches/src/main/resources/addresources/values-ga-rIE/strings.xml +++ b/patches/src/main/resources/addresources/values-ga-rIE/strings.xml @@ -120,6 +120,13 @@ Seans nach n-oibreoidh an t-athsheinm" Má mhúchann tú an socrú seo, d\'fhéadfadh saincheisteanna athsheinm a theacht chun cinn. Cliant réamhshocraithe + + Fórsaigh teanga bhunaidh na fuaime + Ag úsáid teanga bhunaidh na fuaime + Ag úsáid fuaim réamhshocraithe + + Chun an ghné seo a úsáid, athraigh \'Bréag-sruthanna físeáin\' chuig aon chliant seachas Android Studio + Dífhabhtú Cumasaigh nó díchumasaigh roghanna dífhabhtú @@ -1513,13 +1520,6 @@ Is féidir le seo caighdeáin físeáin níos airde a dhíghlasáil" Ag oscailt naisc sa bhrabhsálaí seachtrach Ag oscailt naisc sa bhrabhsálaí in-aip - - Fórsaigh teanga bhunaidh na fuaime - Ag úsáid teanga bhunaidh na fuaime - Ag úsáid fuaim réamhshocraithe - - Chun an ghné seo a úsáid, athraigh \'Bréag-sruthanna físeáin\' chuig aon chliant seachas Android Studio - Uathoibríoch 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-gl-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-gl-rES/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-gu-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-gu-rIN/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 9585fa8ec..c671a9994 100644 --- a/patches/src/main/resources/addresources/values-hi-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-hi-rIN/strings.xml @@ -36,6 +36,9 @@ Second \"item\" text" प्लेबैक समस्याओं को रोकने के लिए क्लाइंट वीडियो स्ट्रीम को स्पूफ करें प्लेबैक समस्याओं को रोकने के लिए क्लाइंट वीडियो स्ट्रीम को स्पूफ करें + + + @@ -229,9 +232,6 @@ Second \"item\" text" - - - 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 76d720df6..0d41d89bd 100644 --- a/patches/src/main/resources/addresources/values-hr-rHR/strings.xml +++ b/patches/src/main/resources/addresources/values-hr-rHR/strings.xml @@ -35,6 +35,9 @@ Second \"item\" text" + + + @@ -228,9 +231,6 @@ Second \"item\" text" - - - 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 60b8f2a0e..f4231656b 100644 --- a/patches/src/main/resources/addresources/values-hu-rHU/strings.xml +++ b/patches/src/main/resources/addresources/values-hu-rHU/strings.xml @@ -120,6 +120,13 @@ A lejátszás nem működhet" Ennek a beállításnak a kikapcsolása lejátszási problémákat okozhat. Alapértelmezett kliens + + Eredeti hang kikényszerítése + Eredeti hang használata a hang nyelvén + Alapértelmezett hang használata + + A funkció használatához módosítsa a \"Videóstreamek hamisítása\" beállítást bármely kliensre, kivéve az Android Studiót + Hibakeresés Hibakeresési beállítások engedélyezése vagy letiltása @@ -1510,13 +1517,6 @@ Ez a beállítás lehetővé teszi a magasabb videóminőségek feloldását"Hivatkozások megnyitása külső böngészőben Hivatkozások megnyitása az alkalmazáson belüli böngészőben - - Eredeti hang kikényszerítése - Eredeti hang használata a hang nyelvén - Alapértelmezett hang használata - - A funkció használatához módosítsa a \"Videóstreamek hamisítása\" beállítást bármely kliensre, kivéve az Android Studiót - Automatikus 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 a8457e3dc..ae7e3ad17 100644 --- a/patches/src/main/resources/addresources/values-hy-rAM/strings.xml +++ b/patches/src/main/resources/addresources/values-hy-rAM/strings.xml @@ -120,6 +120,13 @@ MicroG-ի համար մարտկոցի օպտիմալացումը անջատել Այս կարգավորումն անջատելը կարող է նվագարկման խնդիրներ առաջացնել։ Դեֆոլտ կլիենտ + + Բնօրինակ ձայն օգտագործել լեզուն + Օգտագործելով ձայնային օրիգինալ լեզուն + Վերջնական ձայն օգտագործվում է + + Այս հնարավորությունն օգտագործելու համար «Կեղծել վիդեո հոսքերը» տարբերակը փոխեք ցանկացած հաճախորդի, բացի Android Studio-ից + Debug Միացնել կամ անջատել առաջնորդման ռեժիմի ֆունկցիաները @@ -1514,13 +1521,6 @@ Mini-player-ը կարող է գրավվել էկրանից դուրս՝ դեպի Բացել հղումները արտաքին բրաուզերում Բացել հղումները ներծրագրային բրաուզերում - - Բնօրինակ ձայն օգտագործել լեզուն - Օգտագործելով ձայնային օրիգինալ լեզուն - Վերջնական ձայն օգտագործվում է - - Այս հնարավորությունն օգտագործելու համար «Կեղծել վիդեո հոսքերը» տարբերակը փոխեք ցանկացած հաճախորդի, բացի 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 37f93acc7..88960c8e8 100644 --- a/patches/src/main/resources/addresources/values-in-rID/strings.xml +++ b/patches/src/main/resources/addresources/values-in-rID/strings.xml @@ -120,6 +120,13 @@ Pemutaran mungkin tidak berfungsi" Mematikan pengaturan ini dapat menyebabkan masalah pemutaran. Klien bawaan + + Paksa bahasa audio asli + Menggunakan bahasa audio asli + Menggunakan audio bawaan + + Untuk menggunakan fitur ini, ubah \'Palsukan aliran video\' ke klien apa pun kecuali Android Studio + Debug Mengaktifkan atau menonaktifkan pilihan debugging @@ -1512,13 +1519,6 @@ Mengaktifkan ini dapat membuka kualitas video yang lebih tinggi" Membuka tautan di peramban eksternal Membuka tautan di peramban dalam aplikasi - - Paksa bahasa audio asli - Menggunakan bahasa audio asli - Menggunakan audio bawaan - - Untuk menggunakan fitur ini, ubah \'Palsukan aliran video\' ke klien apa pun kecuali Android Studio - Otomatis 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-is-rIS/strings.xml +++ b/patches/src/main/resources/addresources/values-is-rIS/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 d18e9d218..eede11f60 100644 --- a/patches/src/main/resources/addresources/values-it-rIT/strings.xml +++ b/patches/src/main/resources/addresources/values-it-rIT/strings.xml @@ -120,6 +120,13 @@ La riproduzione potrebbe non funzionare" La disattivazione di questa impostazione potrebbe causare problemi di riproduzione. Client predefinito + + Forza la lingua audio originale + Utilizza la lingua audio originale + Utilizzo audio predefinito + + Per usare questa funzionalità, cambia \"Falsifica i flussi video\" a qualsiasi client eccetto Android Studio + Debug Abilita o disabilita impostazioni di debug @@ -1512,13 +1519,6 @@ Abilitare questa opzione può sbloccare qualità video più elevate" Apertura dei link nel browser esterno Apertura dei link nel browser in-app - - Forza la lingua audio originale - Utilizza la lingua audio originale - Utilizzo audio predefinito - - Per usare questa funzionalità, cambia \"Falsifica i flussi video\" a qualsiasi client eccetto Android Studio - Automatico 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 fe98be636..5132fd24b 100644 --- a/patches/src/main/resources/addresources/values-iw-rIL/strings.xml +++ b/patches/src/main/resources/addresources/values-iw-rIL/strings.xml @@ -120,6 +120,13 @@ Second \"item\" text" כיבוי הגדרה זו עלול לגרום לבעיות השמעה. לקוח ברירת מחדל + + כפה שפת שמע מקורית + שימוש בשפת שמע מקורית + שימוש בשמע ברירת מחדל + + כדי להשתמש בתכונה זו, שנה את \'זיוף זרמי וידאו\' לכל לקוח מלבד Android Studio + איתור באגים הפעל או השבת אפשרויות לאיתור באגים @@ -1515,13 +1522,6 @@ Second \"item\" text" פותח קישורים בדפדפן חיצוני פותח קישורים בדפדפן בתוך היישום - - כפה שפת שמע מקורית - שימוש בשפת שמע מקורית - שימוש בשמע ברירת מחדל - - כדי להשתמש בתכונה זו, שנה את \'זיוף זרמי וידאו\' לכל לקוח מלבד Android Studio - אוטומטי 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 f82b7332c..c8e96f360 100644 --- a/patches/src/main/resources/addresources/values-ja-rJP/strings.xml +++ b/patches/src/main/resources/addresources/values-ja-rJP/strings.xml @@ -120,6 +120,13 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が この設定を無効にすると、動画の再生に失敗するようになる可能性があります。 デフォルトのクライアント + + オリジナルの音声を強制的に使用 + オリジナルの音声トラック (言語) を使用します\n\nオートダビングを含む吹き替えの音声トラックは使用しません + アプリが選択した音声トラック (言語) を使用します\n\nオートダビングを含む吹き替えの音声トラックを使用する場合があります + + この機能を使用するには、「動画ストリームを偽装」のクライアントを Android Studio 以外の任意のクライアントに変更してください + デバッグ デバッグ オプションを有効または無効にします @@ -1287,7 +1294,7 @@ Automotive レイアウト 再び偽装を無効にする場合には、UI のバグを防ぐためにアプリデータを消去することをお勧めします。" アプリバージョンの偽装先 - 20.13.41 - アクション ボタンの文字の常時表示を復元 + 20.13.41 - アクション ボタンの文字表示を復元 20.05.46 - 文字起こし機能を復元 19.35.36 - 古いショート プレーヤーのアイコンを復元 19.01.34 - 古いナビゲーション アイコンを復元 @@ -1515,13 +1522,6 @@ Automotive レイアウト 外部ブラウザでリンクを開きます アプリ内ブラウザでリンクを開きます - - オリジナルの音声を強制的に使用 - オリジナルの音声トラック (言語) を使用します\n\nオートダビングを含む吹き替えの音声トラックは使用しません - アプリが選択した音声トラック (言語) を使用します\n\nオートダビングを含む吹き替えの音声トラックを使用する場合があります - - この機能を使用するには、「動画ストリームを偽装」のクライアントを Android Studio 以外の任意のクライアントに変更してください - 自動 @@ -1720,9 +1720,9 @@ Automotive レイアウト 削除されたメッセージを取り消し線つきで表示する - チャンネルポイントを自動的に獲得する - チャンネルポイントは自動的に請求されます - チャンネルポイントは自動的に請求されません + チャンネルポイントの受け取りを自動化 + チャンネルポイントの受け取りは自動的に行われます + チャンネルポイントの受け取りは自動的には行われません 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-ka-rGE/strings.xml +++ b/patches/src/main/resources/addresources/values-ka-rGE/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml +++ b/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-km-rKH/strings.xml +++ b/patches/src/main/resources/addresources/values-km-rKH/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 dfca2a839..85b96ca44 100644 --- a/patches/src/main/resources/addresources/values-kn-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-kn-rIN/strings.xml @@ -49,6 +49,9 @@ Second \"item\" text" + + + @@ -242,9 +245,6 @@ Second \"item\" text" - - - 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 82f77fae7..576a9e34b 100644 --- a/patches/src/main/resources/addresources/values-ko-rKR/strings.xml +++ b/patches/src/main/resources/addresources/values-ko-rKR/strings.xml @@ -120,6 +120,13 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니 이 설정을 비활성화하면 재생 문제가 발생할 수 있습니다. 기본 클라이언트 + + 원본 오디오 언어 강제로 활성화하기 + 원본 오디오 언어를 사용 중입니다 + 기본 오디오 언어를 사용 중입니다 + + 이 기능을 사용하려면, \'동영상 스트림 변경하기\'에서 기본 클라이언트를 Android Studio를 제외한 다른 클라이언트로 변경하세요 + 디버깅 디버깅 옵션을 활성화하거나 비활성화할 수 있습니다 @@ -1520,13 +1527,6 @@ DeArrow에 대해 자세히 알아보려면 여기를 탭하세요" 앱 내에서 외부 링크를 열 경우에 외부 브라우저를 사용합니다 앱 내에서 외부 링크를 열 경우에 내부 브라우저를 사용합니다 - - 원본 오디오 언어 강제로 활성화하기 - 원본 오디오 언어를 사용 중입니다 - 기본 오디오 언어를 사용 중입니다 - - 이 기능을 사용하려면, \'동영상 스트림 변경하기\'에서 기본 클라이언트를 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-ky-rKG/strings.xml +++ b/patches/src/main/resources/addresources/values-ky-rKG/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-lo-rLA/strings.xml +++ b/patches/src/main/resources/addresources/values-lo-rLA/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 e0b821047..3edfdb89a 100644 --- a/patches/src/main/resources/addresources/values-lt-rLT/strings.xml +++ b/patches/src/main/resources/addresources/values-lt-rLT/strings.xml @@ -120,6 +120,13 @@ Grojimas gali neveikti" Išjungus šį nustatymą, gali kilti atkūrimo problemų. Numatytasis klientas + + Priversti originalią garso kalbą + Naudojama originali garso kalba + Naudojamas numatytasis garsas + + Kad naudotumėte šią funkciją, pakeiskite „Klastoti vaizdo įrašų srautus“ į bet kurį klientą, išskyrus „Android Studio“ + Debugavimas Įgalinti arba išjungti derinimo parinktis @@ -1514,13 +1521,6 @@ Gali būti atrakinta aukštesnės vaizdo įrašų kokybės, bet galite patirti v Nuorodos atidaromos išorinėje naršyklėje Nuorodos atidaromos programėlės naršyklėje - - Priversti originalią garso kalbą - Naudojama originali garso kalba - Naudojamas numatytasis garsas - - Kad naudotumėte šią funkciją, pakeiskite „Klastoti vaizdo įrašų srautus“ į bet kurį klientą, išskyrus „Android Studio“ - Automatinis 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 298413c8a..b63eb6316 100644 --- a/patches/src/main/resources/addresources/values-lv-rLV/strings.xml +++ b/patches/src/main/resources/addresources/values-lv-rLV/strings.xml @@ -120,6 +120,13 @@ Atskaņošana var nedarboties" Šī iestatījuma izslēgšana var izraisīt atskaņošanas problēmas. Noklusētā klients + + Piespiest oriģinālo audio valodu + Izmantot oriģinālo audio valodu + Tiek izmantots noklusējuma audio + + Lai izmantotu šo funkciju, mainiet \"Viltotās video plūsmas\" uz jebkuru klientu, izņemot Android Studio + Atkļūdošana Iespējot vai atspējot atkļūdošanas opcijas @@ -1514,13 +1521,6 @@ Var tikt atbloķētas augstākas video kvalitātes, taču var rasties video atsk Saišu atvēršana ārējā pārlūkprogrammā Saišu atvēršana lietotnes pārlūkprogrammā - - Piespiest oriģinālo audio valodu - Izmantot oriģinālo audio valodu - Tiek izmantots noklusējuma audio - - Lai izmantotu šo funkciju, mainiet \"Viltotās video plūsmas\" uz jebkuru klientu, izņemot Android Studio - Automātiski 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-mk-rMK/strings.xml +++ b/patches/src/main/resources/addresources/values-mk-rMK/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-ml-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ml-rIN/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-mn-rMN/strings.xml +++ b/patches/src/main/resources/addresources/values-mn-rMN/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-mr-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-mr-rIN/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 d2812bbd5..06ddb38c6 100644 --- a/patches/src/main/resources/addresources/values-ms-rMY/strings.xml +++ b/patches/src/main/resources/addresources/values-ms-rMY/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -228,9 +231,6 @@ Second \"item\" text" - - - 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-my-rMM/strings.xml +++ b/patches/src/main/resources/addresources/values-my-rMM/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-nb-rNO/strings.xml +++ b/patches/src/main/resources/addresources/values-nb-rNO/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 66f28ffdf..70b74f6c7 100644 --- a/patches/src/main/resources/addresources/values-ne-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ne-rIN/strings.xml @@ -36,6 +36,9 @@ Second \"item\" text" + + + @@ -229,9 +232,6 @@ Second \"item\" text" - - - 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 d02dfb849..cdeb5a382 100644 --- a/patches/src/main/resources/addresources/values-nl-rNL/strings.xml +++ b/patches/src/main/resources/addresources/values-nl-rNL/strings.xml @@ -120,6 +120,13 @@ Afspeelproblemen kunnen optreden" Het uitschakelen van deze instelling kan afspeelproblemen veroorzaken. Standaard client + + Forceer de originele audiotaal + De oorspronkelijke audiotaal gebruiken + Standaard audio gebruiken + + Om deze functie te gebruiken, wijzig \'Videostreams spoofen\' naar elke client behalve Android Studio + Debuggen Schakel debugopties in of uit @@ -1511,13 +1518,6 @@ Het inschakelen hiervan kan hogere videokwaliteiten ontgrendelen" Koppelingen openen in externe browser Koppelingen openen in in-app browser - - Forceer de originele audiotaal - De oorspronkelijke audiotaal gebruiken - Standaard audio gebruiken - - Om deze functie te gebruiken, wijzig \'Videostreams spoofen\' naar elke client behalve Android Studio - Automatisch 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-or-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-or-rIN/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-pa-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-pa-rIN/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 96e96b07f..01af1a19e 100644 --- a/patches/src/main/resources/addresources/values-pl-rPL/strings.xml +++ b/patches/src/main/resources/addresources/values-pl-rPL/strings.xml @@ -120,6 +120,13 @@ Odtwarzanie może nie działać" Wyłączenie tego ustawienia może spowodować problemy z odtwarzaniem. Domyślny klient + + Wymuś język oryginalnego dźwięku + Używanie oryginalnego języka audio + Używanie domyślnego dźwięku + + Aby użyć tej funkcji, zmień \'Fałszuj strumienie wideo\' na dowolnego klienta z wyjątkiem Android Studio + Debugowanie Włącz lub wyłącz opcje debugowania @@ -1509,13 +1516,6 @@ Włączenie tego może odblokować wyższe jakości wideo" Otwieranie linków w zewnętrznej przeglądarce Otwieranie linków w przeglądarce w aplikacji - - Wymuś język oryginalnego dźwięku - Używanie oryginalnego języka audio - Używanie domyślnego dźwięku - - Aby użyć tej funkcji, zmień \'Fałszuj strumienie wideo\' na dowolnego klienta z wyjątkiem Android Studio - Automatycznie 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 70e27324c..1f2c6062c 100644 --- a/patches/src/main/resources/addresources/values-pt-rBR/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rBR/strings.xml @@ -120,6 +120,13 @@ A reprodução pode não funcionar" Desativar esta configuração pode causar problemas de reprodução. Cliente padrão + + Forçar idioma do áudio original + Usar o idioma original do áudio + Usando áudio padrão + + Para usar este recurso, mude \'Falsificar fluxos de vídeo\' para qualquer cliente, exceto o Android Studio + Depuração Ativar ou desativar opções de depuração @@ -1510,13 +1517,6 @@ Habilitar isso pode desbloquear qualidades de vídeo mais altas" Abrindo links no navegador externo Abrindo links no navegador interno do app - - Forçar idioma do áudio original - Usar o idioma original do áudio - Usando áudio padrão - - Para usar este recurso, mude \'Falsificar fluxos de vídeo\' para qualquer cliente, exceto o Android Studio - Automático 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 6002bdf85..f9f95ef5f 100644 --- a/patches/src/main/resources/addresources/values-pt-rPT/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rPT/strings.xml @@ -120,6 +120,13 @@ A reprodução pode não funcionar" Desativar esta configuração pode causar problemas de reprodução. Cliente predefinido + + Forçar idioma original do áudio + Usando o idioma de áudio original + Usando o áudio predefinido + + Para usar este recurso, altere \'Falsificar streams de vídeo\' para qualquer cliente, exceto o Android Studio + Depuração Ativar ou desativar opções de depuração @@ -1513,13 +1520,6 @@ Bật tính năng này có thể mở khóa chất lượng video cao hơn"Abrindo links no navegador externo Abrindo links no navegador no aplicativo - - Forçar idioma original do áudio - Usando o idioma de áudio original - Usando o áudio predefinido - - Para usar este recurso, altere \'Falsificar streams de vídeo\' para qualquer cliente, exceto o Android Studio - Automático 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 97342ace9..9ff4295c7 100644 --- a/patches/src/main/resources/addresources/values-ro-rRO/strings.xml +++ b/patches/src/main/resources/addresources/values-ro-rRO/strings.xml @@ -120,6 +120,13 @@ Redarea poate să nu funcționeze" Dezactivarea acestei setări poate cauza probleme de redare. Client implicit + + Forțează limba audio originală + Folosind limba audio originală + Utilizează audio implicit + + Pentru a utiliza această funcție, modificați \"Falsificare fluxuri video\" la orice client, cu excepția Android Studio + Depanare Activează sau dezactivează opțiunile de depanare @@ -1510,13 +1517,6 @@ Activarea acestei opțiuni poate debloca calități video mai mari" Deschiderea linkurilor în browserul extern Deschiderea linkurilor în browserul din aplicație - - Forțează limba audio originală - Folosind limba audio originală - Utilizează audio implicit - - Pentru a utiliza această funcție, modificați \"Falsificare fluxuri video\" la orice client, cu excepția Android Studio - Automat 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 01f23ee11..ff1d064dc 100644 --- a/patches/src/main/resources/addresources/values-ru-rRU/strings.xml +++ b/patches/src/main/resources/addresources/values-ru-rRU/strings.xml @@ -120,6 +120,13 @@ Second \"item\" text" Отключение этой настройки может вызвать проблемы с воспроизведением. Клиент по умолчанию + + Принудительно оригинальная звуковая дорожка + Используется оригинальная звуковая дорожка + Используется звуковая дорожка по умолчанию + + Для использования этой функции измените клиент в \"Подмене видеопотоков\" на любой, кроме Android Studio + Отладка Включить или отключить параметры отладки @@ -1520,13 +1527,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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-si-rLK/strings.xml +++ b/patches/src/main/resources/addresources/values-si-rLK/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 4e74e90d6..85b898e23 100644 --- a/patches/src/main/resources/addresources/values-sk-rSK/strings.xml +++ b/patches/src/main/resources/addresources/values-sk-rSK/strings.xml @@ -118,6 +118,13 @@ Prehrávanie nemusí fungovať" Vypnutie tohto nastavenia môže spôsobiť problémy s prehrávaním. Predvolený klient + + Vynútiť pôvodný jazyk zvuku + Používa sa pôvodný jazyk zvuku + Používanie predvoleného zvuku + + Ak chcete použiť túto funkciu, zmeňte \"Podvrhnúť video streamy\" na ľubovoľného klienta okrem Android Studio + Ladenie Povoliť alebo zakázať možnosti ladenia @@ -1506,13 +1513,6 @@ Povolením tejto možnosti môžete odomknúť vyššie kvality videa" Otváranie odkazov v externom prehliadači Otváranie odkazov v prehliadači v aplikácii - - Vynútiť pôvodný jazyk zvuku - Používa sa pôvodný jazyk zvuku - Používanie predvoleného zvuku - - Ak chcete použiť túto funkciu, zmeňte \"Podvrhnúť video streamy\" na ľubovoľného klienta okrem Android Studio - Automaticky 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 703e038ef..8aa37376f 100644 --- a/patches/src/main/resources/addresources/values-sl-rSI/strings.xml +++ b/patches/src/main/resources/addresources/values-sl-rSI/strings.xml @@ -120,6 +120,13 @@ Predvajanje morda ne bo delovalo" Izklop te nastavitve lahko povzroči težave z predvajanjem. Privzeti odjemalec + + Izsili izvirni jezik zvoka + Uporabi izvirni jezik zvoka + Uporaba privzetega zvoka + + Za uporabo te funkcije spremenite \"Ponaredi video tokove\" na katerega koli odjemalca, razen na Android Studio + Razhroščevanje Omogoči ali onemogoči možnosti razhroščevanja @@ -1513,13 +1520,6 @@ Omogočanje tega lahko odklene višje kakovosti videa" Odpiranje povezav v zunanjem brskalniku Odpiranje povezav v brskalniku v aplikaciji - - Izsili izvirni jezik zvoka - Uporabi izvirni jezik zvoka - Uporaba privzetega zvoka - - Za uporabo te funkcije spremenite \"Ponaredi video tokove\" na katerega koli odjemalca, razen na Android Studio - Samodejno 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 350d10008..7662dff53 100644 --- a/patches/src/main/resources/addresources/values-sq-rAL/strings.xml +++ b/patches/src/main/resources/addresources/values-sq-rAL/strings.xml @@ -120,6 +120,13 @@ Riprodhimi mund të mos funksionojë" Fikja e këtij cilësimi mund të shkaktojë probleme riprodhimi. Klient i përdoruesit + + Forco gjuhën origjinale të audios + Duke përdorur gjuhën origjinale audio + Përdorimi i Zërit Parazgjedhur + + Për të përdorur këtë veçori, ndryshoni \'Falsifiko transmetimet e videos\' në çdo klient përveç Android Studio + Depurimi Aktivizo ose çaktivizo opsionet e depurimit @@ -1511,13 +1518,6 @@ Aktivizimi i kësaj mund të zhbllokojë cilësi më të larta video" Hapja e linkeve në shfletuesin e jashtëm Hapja e linkeve në shfletuesin brenda aplikacionit - - Forco gjuhën origjinale të audios - Duke përdorur gjuhën origjinale audio - Përdorimi i Zërit Parazgjedhur - - Për të përdorur këtë veçori, ndryshoni \'Falsifiko transmetimet e videos\' në çdo klient përveç Android Studio - Automatik 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 f3219c982..d6abc928d 100644 --- a/patches/src/main/resources/addresources/values-sr-rCS/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rCS/strings.xml @@ -120,6 +120,13 @@ Reprodukcija možda neće raditi" Isključivanje ovog podešavanja može izazvati probleme sa reprodukcijom. Podrazumevani klijent + + Prisili originalni jezik zvuka + Korišćenje originalnog jezika zvuka + Korišćenje podrazumevanog zvuka + + Da biste koristili ovu funkciju, promenite opciju „Lažirani video strimovi” na bilo koji klijent osim Android Studio + Otklanjanje grešaka Omogućite ili onemogućite opcije za otklanjanje grešaka @@ -1512,13 +1519,6 @@ Ako ovo omogućite, mogu biti otključani viši kvaliteti videa" Otvaranje linkova u spoljnom pregledaču Otvaranje linkova u pregledaču u aplikaciji - - Prisili originalni jezik zvuka - Korišćenje originalnog jezika zvuka - Korišćenje podrazumevanog zvuka - - Da biste koristili ovu funkciju, promenite opciju „Lažirani video strimovi” na bilo koji klijent osim Android Studio - Automatski 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 95a61fb3c..f9ee56b6f 100644 --- a/patches/src/main/resources/addresources/values-sr-rSP/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rSP/strings.xml @@ -120,6 +120,13 @@ Second \"item\" text" Искључивање овог подешавања може изазвати проблеме са репродукцијом. Подразумевани клијент + + Присили оригинални језик звука + Коришћење оригиналног језика звука + Коришћење подразумеваног звука + + Да бисте користили ову функцију, промените опцију „Лажирани видео стримови” на било који клијент осим Android Studio + Отклањање грешака Омогућите или онемогућите опције за отклањање грешака @@ -1515,13 +1522,6 @@ Second \"item\" text" Отварање линкова у спољном прегледачу Отварање линкова у прегледачу у апликацији - - Присили оригинални језик звука - Коришћење оригиналног језика звука - Коришћење подразумеваног звука - - Да бисте користили ову функцију, промените опцију „Лажирани видео стримови” на било који клијент осим 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 9672be5cf..bcda81d7a 100644 --- a/patches/src/main/resources/addresources/values-sv-rSE/strings.xml +++ b/patches/src/main/resources/addresources/values-sv-rSE/strings.xml @@ -120,6 +120,13 @@ Uppspelning kanske inte fungerar" Om du stänger av den här inställningen kan det leda till problem med uppspelning. Standardklient + + Tvinga ursprungligt ljudspråk + Använder ursprungligt ljudspråk + Använder standardljud + + Om du vill använda den här funktionen ändrar du \"Förfalska videoströmmar\" till valfri klient utom Android Studio + Felsökning Aktivera eller inaktivera felsökningsalternativ @@ -1512,13 +1519,6 @@ Om du aktiverar detta kan högre videokvaliteter låsas upp" Öppnar länkar i extern webbläsare Öppnar länkar i webbläsaren i appen - - Tvinga ursprungligt ljudspråk - Använder ursprungligt ljudspråk - Använder standardljud - - Om du vill använda den här funktionen ändrar du \"Förfalska videoströmmar\" till valfri klient utom Android Studio - Automatiskt 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-sw-rKE/strings.xml +++ b/patches/src/main/resources/addresources/values-sw-rKE/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-ta-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ta-rIN/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-te-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-te-rIN/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 d2a17d15f..723f37762 100644 --- a/patches/src/main/resources/addresources/values-th-rTH/strings.xml +++ b/patches/src/main/resources/addresources/values-th-rTH/strings.xml @@ -120,6 +120,13 @@ Second \"item\" text" การปิดการตั้งค่านี้อาจทำให้เกิดปัญหาในการเล่น ไคลเอ็นต์เริ่มต้น + + บังคับใช้ภาษาเสียงต้นฉบับ + กำลังใช้ภาษาเสียงต้นฉบับ + กำลังใช้ออดิโอเริ่มต้น + + หากต้องการใช้คุณสมบัตินี้ ให้เปลี่ยน \'Spoof video streams\' เป็นไคลเอ็นต์อื่น ๆ ยกเว้น Android Studio + ดีบัก เปิดใช้งานหรือปิดใช้งานตัวเลือกการแก้ไขข้อบกพร่อง @@ -1515,13 +1522,6 @@ User id ของคุณเหมือนกับรหัสผ่าน เปิดลิงก์ในเบราว์เซอร์ภายนอก เปิดลิงก์ในเบราว์เซอร์ในแอป - - บังคับใช้ภาษาเสียงต้นฉบับ - กำลังใช้ภาษาเสียงต้นฉบับ - กำลังใช้ออดิโอเริ่มต้น - - หากต้องการใช้คุณสมบัตินี้ ให้เปลี่ยน \'Spoof video streams\' เป็นไคลเอ็นต์อื่น ๆ ยกเว้น 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 3f31fa5e2..49a41930c 100644 --- a/patches/src/main/resources/addresources/values-tr-rTR/strings.xml +++ b/patches/src/main/resources/addresources/values-tr-rTR/strings.xml @@ -120,6 +120,13 @@ Oynatma çalışmayabilir" Bu ayarı devre dışı bırakmak oynatma sorunlarına yol açabilir. Varsayılan istemci + + Orijinal ses dilini zorla + Orijinal ses dili kullanılıyor + Varsayılan ses kullanılıyor + + Bu özelliği kullanmak için \'Video akışlarını taklit et\' ayarını Android Studio dışındaki herhangi bir istemciye değiştirin + Hata ayıklama Hata ayıklama seçeneklerini etkinleştir veya devre dışı bırak @@ -1520,13 +1527,6 @@ Bunu etkinleştirmek daha yüksek video kalitelerini açabilir" Bağlantılar harici tarayıcıda açılıyor Bağlantılar uygulama içi tarayıcıda açılıyor - - Orijinal ses dilini zorla - Orijinal ses dili kullanılıyor - Varsayılan ses kullanılıyor - - Bu özelliği kullanmak için \'Video akışlarını taklit et\' ayarını Android Studio dışındaki herhangi bir istemciye değiştirin - Oto 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 798cafee5..72a911ff2 100644 --- a/patches/src/main/resources/addresources/values-uk-rUA/strings.xml +++ b/patches/src/main/resources/addresources/values-uk-rUA/strings.xml @@ -120,6 +120,13 @@ Second \"item\" text" Вимкнення цієї опції може спричинити проблеми з відтворенням. Клієнт за замовчуванням + + Примусово оригінальна мова звукової доріжки + Використовується оригінальна мова звукової доріжки + Використовується стандартна (регіональна) мова звукової доріжки + + Щоб використовувати цю функцію, змініть клієнт \"Підміни відеопотоків\" на будь-який клієнт, окрім Android Studio + Налагодження Увімкнення або вимкнення параметрів налагодження @@ -1512,13 +1519,6 @@ Second \"item\" text" Посилання відкриваються у зовнішньому браузері Посилання відкриваються у вбудованому браузері - - Примусово оригінальна мова звукової доріжки - Використовується оригінальна мова звукової доріжки - Використовується стандартна (регіональна) мова звукової доріжки - - Щоб використовувати цю функцію, змініть клієнт \"Підміни відеопотоків\" на будь-який клієнт, окрім 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-ur-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ur-rIN/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml +++ b/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - 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 779392f09..52f99d80c 100644 --- a/patches/src/main/resources/addresources/values-vi-rVN/strings.xml +++ b/patches/src/main/resources/addresources/values-vi-rVN/strings.xml @@ -120,6 +120,13 @@ Có thể gặp lỗi khi phát." Tắt cài đặt này có thể gây ra lỗi khi phát. Ứng dụng khách mặc định + + Buộc ngôn ngữ âm thanh gốc + Đang dùng ngôn ngữ âm thanh gốc + Đang dùng âm thanh mặc định + + Để dùng tính năng này, hãy đổi \'Giả mạo luồng video\' thành bất kỳ ứng dụng khách nào ngoại trừ Android Studio + Gỡ lỗi Bật hoặc tắt tùy chọn gỡ lỗi @@ -1519,13 +1526,6 @@ Bật tính năng này có thể mở khóa chất lượng video cao hơn"Đang mở liên kết trong trình duyệt bên ngoài Đang mở liên kết trình duyệt trong ứng dụng - - Buộc ngôn ngữ âm thanh gốc - Đang dùng ngôn ngữ âm thanh gốc - Đang dùng âm thanh mặc định - - Để dùng tính năng này, hãy đổi \'Giả mạo luồng video\' thành bất kỳ ứng dụng khách nào ngoại trừ Android Studio - Tự động 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 3244440e5..02acaa3a2 100644 --- a/patches/src/main/resources/addresources/values-zh-rCN/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rCN/strings.xml @@ -120,6 +120,13 @@ Second \"item\" text" 关闭此设置可能会导致播放问题。 默认客户端 + + 强制使用原始音频语言 + 使用原始音频语言 + 正在使用默认音频 + + 要使用此功能,请将“伪造视频流”更改为除 Android Studio 之外的任何客户端 + 调试 启用或禁用调试选项 @@ -1518,13 +1525,6 @@ Second \"item\" text" 在外部浏览器中打开链接 在应用内浏览器中打开链接 - - 强制使用原始音频语言 - 使用原始音频语言 - 正在使用默认音频 - - 要使用此功能,请将“伪造视频流”更改为除 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 d5ba1abc3..3a72056b8 100644 --- a/patches/src/main/resources/addresources/values-zh-rTW/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rTW/strings.xml @@ -120,6 +120,13 @@ Second \"item\" text" 關閉此設定可能會導致播放問題。 預設用戶端 + + 強制使用原始音訊語言 + 正在使用原始音訊語言 + 使用預設音訊 + + 若要使用此功能,請將「偽造視訊串流」變更為 Android Studio 以外的任何用戶端 + 偵錯 啟用或停用偵錯選項 @@ -1523,13 +1530,6 @@ Second \"item\" text" 在外部瀏覽器中開啟連結 在應用程式內瀏覽器中開啟連結 - - 強制使用原始音訊語言 - 正在使用原始音訊語言 - 使用預設音訊 - - 若要使用此功能,請將「偽造視訊串流」變更為 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 e6bdc7bd4..66fec53e1 100644 --- a/patches/src/main/resources/addresources/values-zu-rZA/strings.xml +++ b/patches/src/main/resources/addresources/values-zu-rZA/strings.xml @@ -34,6 +34,9 @@ Second \"item\" text" + + + @@ -227,9 +230,6 @@ Second \"item\" text" - - - From ae4b9474d3fb62528fc21397c19954d31605e9da Mon Sep 17 00:00:00 2001 From: MarcaD <152095496+MarcaDian@users.noreply.github.com> Date: Wed, 1 Oct 2025 20:29:05 +0300 Subject: [PATCH 28/63] fix(Custom branding): Update ReVanced logo sizing (#6029) --- .../layout/branding/CustomBrandingPatch.kt | 1 + .../branding/BaseCustomBrandingPatch.kt | 51 +++++++++++++----- .../layout/branding/CustomBrandingPatch.kt | 4 ++ .../revanced_header_logo_minimal_dark.png | Bin 2317 -> 3338 bytes .../revanced_header_logo_minimal_light.png | Bin 2246 -> 3123 bytes .../revanced_header_logo_minimal_dark.png | Bin 1520 -> 2111 bytes .../revanced_header_logo_minimal_light.png | Bin 1468 -> 1985 bytes .../revanced_header_logo_minimal_dark.png | Bin 3137 -> 4499 bytes .../revanced_header_logo_minimal_light.png | Bin 3062 -> 4270 bytes .../revanced_header_logo_minimal_dark.png | Bin 4845 -> 7477 bytes .../revanced_header_logo_minimal_light.png | Bin 4819 -> 7082 bytes .../revanced_header_logo_minimal_dark.png | Bin 6479 -> 8583 bytes .../revanced_header_logo_minimal_light.png | Bin 6359 -> 8180 bytes .../ic_app_icons_themed_youtube_music.xml | 17 ++++++ ...ube_music_2024_q4_background_color_108.png | Bin 98 -> 98 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 1425 -> 1467 bytes .../music/mipmap-hdpi/ic_launcher_release.png | Bin 2634 -> 2821 bytes ...ube_music_2024_q4_background_color_108.png | Bin 92 -> 92 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 916 -> 942 bytes .../music/mipmap-mdpi/ic_launcher_release.png | Bin 1613 -> 1797 bytes ...ube_music_2024_q4_background_color_108.png | Bin 100 -> 100 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 1982 -> 2013 bytes .../mipmap-xhdpi/ic_launcher_release.png | Bin 3750 -> 3948 bytes ...ube_music_2024_q4_background_color_108.png | Bin 108 -> 108 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 3146 -> 3217 bytes .../mipmap-xxhdpi/ic_launcher_release.png | Bin 5777 -> 6175 bytes ...ube_music_2024_q4_background_color_108.png | Bin 117 -> 118 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 4611 -> 4447 bytes .../mipmap-xxxhdpi/ic_launcher_release.png | Bin 8196 -> 8589 bytes ...daptive_monochrome_ic_youtube_launcher.xml | 17 ++++++ ...daptive_monochrome_ic_youtube_launcher.xml | 17 ++++++ ...veproduct_youtube_background_color_108.png | Bin 98 -> 98 bytes ...veproduct_youtube_foreground_color_108.png | Bin 1503 -> 1467 bytes .../youtube/mipmap-hdpi/ic_launcher.png | Bin 2685 -> 2821 bytes .../youtube/mipmap-hdpi/ic_launcher_round.png | Bin 2685 -> 2821 bytes ...veproduct_youtube_background_color_108.png | Bin 92 -> 92 bytes ...veproduct_youtube_foreground_color_108.png | Bin 922 -> 942 bytes .../youtube/mipmap-mdpi/ic_launcher.png | Bin 1624 -> 1797 bytes .../youtube/mipmap-mdpi/ic_launcher_round.png | Bin 1624 -> 1797 bytes ...veproduct_youtube_background_color_108.png | Bin 100 -> 100 bytes ...veproduct_youtube_foreground_color_108.png | Bin 2075 -> 2013 bytes .../youtube/mipmap-xhdpi/ic_launcher.png | Bin 3800 -> 3948 bytes .../mipmap-xhdpi/ic_launcher_round.png | Bin 3800 -> 3948 bytes ...veproduct_youtube_background_color_108.png | Bin 108 -> 108 bytes ...veproduct_youtube_foreground_color_108.png | Bin 3361 -> 3217 bytes .../youtube/mipmap-xxhdpi/ic_launcher.png | Bin 5831 -> 6175 bytes .../mipmap-xxhdpi/ic_launcher_round.png | Bin 5831 -> 6175 bytes ...veproduct_youtube_background_color_108.png | Bin 117 -> 118 bytes ...veproduct_youtube_foreground_color_108.png | Bin 4813 -> 4447 bytes .../youtube/mipmap-xxxhdpi/ic_launcher.png | Bin 8371 -> 8589 bytes .../mipmap-xxxhdpi/ic_launcher_round.png | Bin 8371 -> 8589 bytes 51 files changed, 95 insertions(+), 12 deletions(-) create mode 100644 patches/src/main/resources/custom-branding/music/drawable/ic_app_icons_themed_youtube_music.xml create mode 100644 patches/src/main/resources/custom-branding/youtube/drawable/adaptive_monochrome_ic_youtube_launcher.xml create mode 100644 patches/src/main/resources/custom-branding/youtube/drawable/ringo2_adaptive_monochrome_ic_youtube_launcher.xml diff --git a/patches/src/main/kotlin/app/revanced/patches/music/layout/branding/CustomBrandingPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/layout/branding/CustomBrandingPatch.kt index c85b2c0ed..530e98130 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/layout/branding/CustomBrandingPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/layout/branding/CustomBrandingPatch.kt @@ -67,6 +67,7 @@ val customBrandingPatch = baseCustomBrandingPatch( "adaptiveproduct_youtube_music_2024_q4_foreground_color_108", "ic_launcher_release", ), + monochromeIconFileNames = arrayOf("ic_app_icons_themed_youtube_music.xml"), block = { dependsOn(disableSplashAnimationPatch) 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 703d403ec..d865b2081 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 @@ -15,11 +15,12 @@ import java.util.logging.Logger private const val REVANCED_ICON = "ReVanced*Logo" // Can never be a valid path. internal val mipmapDirectories = arrayOf( - "xxxhdpi", - "xxhdpi", - "xhdpi", - "hdpi", + // Target app does not have ldpi icons. "mdpi", + "hdpi", + "xhdpi", + "xxhdpi", + "xxxhdpi", ).map { "mipmap-$it" }.toTypedArray() private fun formatResourceFileList(resourceNames: Array) = resourceNames.joinToString("\n") { "- $it" } @@ -52,6 +53,7 @@ internal fun baseCustomBrandingPatch( appNameValues: Map, resourceFolder: String, iconResourceFileNames: Array, + monochromeIconFileNames: Array, block: ResourcePatchBuilder.() -> Unit = {}, executeBlock: ResourcePatchContext.() -> Unit = {} ): ResourcePatch = resourcePatch( @@ -84,14 +86,17 @@ internal fun baseCustomBrandingPatch( Each of these folders must contain the following files: ${formatResourceFileList(iconResourceFileNamesPng)} + + Optionally, a 'drawable' folder with the monochrome icon files: + + ${formatResourceFileList(monochromeIconFileNames)} """.trimIndentMultiline(), ) block() execute { - // Change the app icon and launch screen. - val iconResourceGroups = mipmapDirectories.map { directory -> + val mipmapIconResourceGroups = mipmapDirectories.map { directory -> ResourceGroup( directory, *iconResourceFileNamesPng, @@ -100,24 +105,46 @@ internal fun baseCustomBrandingPatch( val iconPathTrimmed = iconPath!!.trim() if (iconPathTrimmed == REVANCED_ICON) { - iconResourceGroups.forEach { - copyResources(resourceFolder, it) + // Replace mipmap icons with preset patch icons. + mipmapIconResourceGroups.forEach { groupResources -> + copyResources(resourceFolder, groupResources) + } + + // Replace monochrome icons. + monochromeIconFileNames.forEach { fileName -> + copyResources( + resourceFolder, + ResourceGroup("drawable", fileName) + ) } } else { val filePath = File(iconPathTrimmed) val resourceDirectory = get("res") - iconResourceGroups.forEach { group -> - val fromDirectory = filePath.resolve(group.resourceDirectoryName) - val toDirectory = resourceDirectory.resolve(group.resourceDirectoryName) + // Replace + mipmapIconResourceGroups.forEach { groupResources -> + val groupResourceDirectoryName = groupResources.resourceDirectoryName + val fromDirectory = filePath.resolve(groupResourceDirectoryName) + val toDirectory = resourceDirectory.resolve(groupResourceDirectoryName) - group.resources.forEach { iconFileName -> + groupResources.resources.forEach { iconFileName -> Files.write( toDirectory.resolve(iconFileName).toPath(), fromDirectory.resolve(iconFileName).readBytes(), ) } } + + // Copy all monochrome icons if provided. + monochromeIconFileNames.forEach { fileName -> + val replacementMonochrome = filePath.resolve("drawable").resolve(fileName) + if (replacementMonochrome.exists()) { + Files.write( + resourceDirectory.resolve("drawable").resolve(fileName).toPath(), + replacementMonochrome.readBytes(), + ) + } + } } // Change the app name. diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt index 27273680e..ca028c438 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt @@ -27,6 +27,10 @@ val customBrandingPatch = baseCustomBrandingPatch( "ic_launcher", "ic_launcher_round", ), + monochromeIconFileNames = arrayOf( + "adaptive_monochrome_ic_youtube_launcher.xml", + "ringo2_adaptive_monochrome_ic_youtube_launcher.xml" + ), block = { compatibleWith( 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 index 19581e9d658de0e39d218c6daf479aa3b3b01f76..1e53efb50c315aeb5ce417228edfb7098e902bfc 100644 GIT binary patch delta 3336 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 Sh=2P468CiVb6Mw<&;$Ta30Wfm 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 index 46e1e29428b40b3e75e9cd5d790eddd2cd7fbf40..0a1208b4361b07b73b2fd3d5c9bbc04c6da5fed8 100644 GIT binary patch delta 3119 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 delta 2235 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 IIVCg!07=f>z5oCK 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 index 46370125ddb76f255fe5f3d9cdbf56a938669e28..fa4221c54ca83a93e9a7419dec4f1841f1d3dca7 100644 GIT binary patch delta 1972 zcmdnPeUN{Gay@&8r;B4q1>>88jSLJ73=IqZt`uL%1ZLjc%6-Faoo>(Le9I3~B{OcP za;48)c;?KRGk2ceH8M6f*3X}L+hL~U;#9tx_x9H!tfX!}zOJFIInn;5`0eY=o8Hf~ zE>^$Cq^YChbN2LU?V}apD=%L=XRCU=^7=#2h8B>(_WKB2pY^k%M#huN7BJMW${Mee#5Ldg9FoR^Ox= zkNfs;-FCV0)@jWFtu@D_zW?05Lz3~&Y@g#^dpg&BNV8sZAYQ}C{cLwcN1<=a-8z<^72o6KHVP|VPpBwnZ{fedDr=hWxP$TS3;2-M#ZJ?5?&Ktf}{#{cQh64{kA?fSQ_`8aRD9=Jg}O{tUS*Q|C$;L|f~Af& z%hv|gy96)u5j^cS$Lf>CndKaM4d!1bq@Or_?C=eSomm@gopy2`3cAtL6q8yI)LX8w zSk78;%H0p@a>so$nqt;37BHLqLGH<|mgyIz&6dwxBqC*K?j!iF%U|)j{Ey{#yBn0h z7VMXFOiEfLB_&mIp1FLb!i9Kq*^iBRR)3hEF8|KI?P~q?>)ok~d?ow8Xf|;_JgYA7 z?4ai)O`e_a|FbNVG%eU<-SYK>v&LtInnt}By<#W68qZS9Ibv2&WRSAvXx0f+`B*ObLs!w-V_dbAo=ekX-Pc@h6D?Fa{ZI9fJ1M4}2goH|-Omtthb!%wr(a2l1 zufFaGYgLWh;@K`=SHC0T*me$$E!{O;528dCN$f3L_Hx1A2TznZ>JtT=Dp?MFPHWpB zbV#w_5^L!^{XC9&2eZ>o$Td6_=xd$KtZ=>ggcDy}(}k>S^}>g?Yq%TvwZ&8`F`rHB zs!!jt;AYI0efitW1!4nRkLel;`Fz%9%KN3EtnA#|+dIoRec8X+Q=02@&d#;=uK)kn z|3lJ*NXISJY{oTR3s`4gd}4QNq20aDttJmR=CnL6v~SsecFN02j{d_Z6}C9dV41zp zLLmIH>YC<)ZOb`k**yO)b;6WsWtxZupILPh$D@Khl6&=za9VIKPu#nc&&%*=5mQdy zZ6W1@nRTuQ0@lUtt;)Q%CNgScQhn>COOqz7nW`P0_3O*agWn_6Zg~{6`3r7Ybkf*n ze{;-x*H{tDf}$Qx9`)r;KV&%zHi^o)X{T&)(P$F&aMU=uEWv%D{S&EvkDW4Ik21cr z#Rw-9|C=VkS@unviN(FiuJ#v;KWFv(z1zRtEsr-fH)ns(`yuYi?)Dp3mvgLh7Ti{U zkcmTHaZ26~p+inRhx=~GJvI-LKOPGs2E6TotMVwQU7 zjf8I#xp#hR>YXd;YkXa&I$9N`(-b$Shm=F5o1y8?R%~p{I@7ETxZIhWtKZjZ`X@OD_9e{8Wx)6WGS9$ z?42tmn|y2egXj~F{l2vLTBe+7Kb!D}OLA+(gPrAt9W%|ADNd;uI|G@Tze&38-Kj|u;Xgy~&_oa2m(LeVZ;^ll7ZPs77S^l8Xb>%I-kN2L`J!ka) oCCAVB>H-A@5P0(c7RM?O(AvVbGi7V9?ro5$r>mdKI;Vst0F+&;VE_OC delta 1451 zcmX@ezlVE*ay@Iar;B4q1>>88hKvjfJj@#kA1u;)bzfR*$Fvj%FtD@EegDRB((!e+ z2f{YB6-wC0-rkmbds}YI?QgfX<=!^iy)E~5{d~`~Nt5-XwR6u+{&Owk_g-a{L+mSq zm&dhfSMWY$+xD^AeyR6#y~)~-o@#ne)43S=Wd28nPlvO6>V2l^L>5h7-VwMeWaXp; zVeZuoyH3qpIOBBi4?Wi|5zojon*$VVojJpQoS9sD==iifGhIUjVjti4eEVtVlNr31 zMQXZLI6N#3Z%-3QyJ#r9Igsb!Mxz(v{>&A$ zXcC^$f2kmg{~_a|gD1Je6>6AQYy9AeE)Z)s+J(X2Vg>`L67W|$s}nsc=54Btn^gp0?V-(TL4==}E1&R}_w_bWorigUaQ z{%X%FY2 zSX+)y;GBO@)Bc@PTlov7<&G0L?{#q3FSl0+&fqzycS4<=PbT2*tc{cla5AMFRv)G;cfPl+E7mo0Rr>&0#zAa=iN|I>F?%-Q}R)Fo`O6!)z z8@$>!SG4aB1LXJ;=@YL!}@cJ%(2%l`J6pProjXX)tk{J20x z^7^+{DK&v!PTTY}atB zKD@%WiPzD8^2Yk5^BO*A?`tj)o|qUaldmx6a6-uePWiS6l6Ow?-rTf6Eaf!I{9C*a zEvjbS`FDS#K;MDAGKrN*918jO_UtNqJ8RG0y;paYWRRS%j!K7)*8>b z^tfEaQN`kG+Xmrig`Vci`vuArxz;2-4peAYFumvWL(orj1Ji#6#(Fo$9f@;TwmDj> zG+%u#5T|TA$Ex**z=qp-51ub-`ph6}Ul$`I^ykm!KQr$!$~1LNSj#vk%%P(7MOww7J7^ha6kIdH1FRdvyiA9p(-@xq;W{j=Sp)aZYoE+r~%Qf}`%V z_1JIL?vv)=WSce~?X!~|Y+CQ^;rpn#fuB>}`C!VX)6XA0WRAAkF`Zrh z#-qcUMz0p>w>{=oIrMu~Cw~ra;xxAUM3a9mVIqgvHF#E^`N1&vL7bDk-M1APP4$ct zUH*dnX__BI+ZOX@9pFxT`9a(5aru)2>@OMwbh|!tSaz&i<~!SL>gnJgwbKKfN{ zx}vrG+teds*#VQ({pVf$TEDwYfti7U!Qh0-{a-ToyOgICgNs@QIi?3L?}d~^OUyug MPgg&ebxsLQ0J*7`e*gdg 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 index 75bec79b4f09e61318fe6cbdb165eea34844f349..fe5b3f21c7e6f9a0295a8a00e4ff47fbd0b06157 100644 GIT binary patch literal 4499 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 TUh-m{1xTrg?*zX0?%uuD^;%@--Mxyhxpsa( z7JL2f-PlKms#0PXy_x!ThtnO=Pj&z2HU07{Ju8{UC!=!J|LS@L17n^Eb<1}ze|}+w z-(0KdS5}3-PU|_kr6xK1+M3GlUorp84EJqTR#Q_m&APH8YIoV�t^<4>(%d^h#e} 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 j5>N7NyJ|(nL2OLSG{>6&8#x;s zco+^GzhyRINk_udf5NY%?8=|>CW@m(F8SFL+jm-g)3nIFF*4s472_KwkGT@LSq z3jQSSt&@2ci~l~lE%)}NTibG5vlY$4yTZD3d-s3$4_~`)SMBnAfB(mCe}@0ndb!H_ z*4oc!ch2xM;ocYP<8$V1ME7C=?vp>*^pjI+YHA|GE7FZ-{?L;@-&DuYu4w0R+?{8l z+@9SWGklg6y!=%Dsp#n`+w)3(tv^nh?>T>N-G%chMjI2NT<)sPhw_wbMy`^2sC9_F8lo8>=(~85|H5n(6Z_WC2Taf_lA|z>>|z5>Jd~ z`Z(U@e3ERK*UA#eb!%7Cw38`p2a69%F`Vi=&9AXQ*&Z9$8Zh_;1x6a~EQYKok9F#9R8%9U=Vz-fuBi1mErJ%%8nqxdm&7juX69VpX6bBE~+25$AJ5t zh>D9Z-zf!#z6AzFtKtMw&Gux9xXfgjEXi{2aoJsy<=vap&(AZe`jYYezIAAp!se{f z?-@nCenR2v_L$_|iAXy)N3*lD(~tdNo;_bvnb@ubl{i;6mzm9TwCwd9{xw|vux$I) z+o?)yYQ`KjR=PL%3X|^cDxEZQre^M~Efasw_L&l2z5m6udB+S;PEY2kP7PnG*yr=^)lXz}oTe{f@4?(Fr;*~_0iP`L0m zG{0D?O!X1#ob8r-cks3*T&?IZ5-BTf*SPK^-aGS$WjFU?{zWD>TRGJKHyCQPJ}=-* zO4Q$VaQ3GpySnCx69~3;QX+d;+h+v{zCtZMJwHAf z3k6M0&7j?7xsvw_maLKZFfD_-+U|6w;~bsHO)f2JJ~JM?R=6Q_z;T1bq9>bgI>t0q zJai9fUDtC|^JLPEuQDzx7xrm3nF{F3x|r&h>+(Nx?+{Nrw9e}X-=kKaJDnU6qOI%` zI6ofJ(l3+tEtGiFe50VU;f3LRF|~I)9`gzA`hKrkbz96Dn`^ICBW->xu744-diIr7 zq27}wPfoqRul5kb$5MeM*H(w?hc~btTrIFvp(J<$XW;{eqy@KE^;tLH;mfoBm$mWe zKaocl_)nzUbI6=_aE=gdcNS=W*PwUkIQJ3h3EW{{&EUc|2OEoQ z;|ycnw$m!J*^k~kvN_`6!_Rx9cHOzbys>~udV^rPz_;cH>>calDxZo9KFVwO{q@K@ z{}XGK%}<_HHuLB`)vKzg=-4M``$|sY>Z;Jw*Ax=IU(#e~ULfpplj&|%$ERgS%{FU< zIZyfZYR4;qr-|(0%WuCZuIg_6+^~x;fTQ1e3coB*6aPo~7(FK654=aZxfeLw=zORS z6q~Nykhy~)aN5fCPgPuY-h8yX*0noZP+hmIR@k$DNRlO#<^?@dtkK-&^%t;0yRtae@Bf2m#UieA3mM|DrV zKCz0Uly#5pvPXg4+==@uEIHZ^2Kzfsk$kn%!&b(BF@w!lv$(?<-K^g@T{0Q`pE~cd z`j`19Ff%1;&MJ|XA@wne!ERI>iAfbUnH-2ACh3p^M#{6Rr-}PK9 zJLc!SnCsScbn5$S0#B_<&rB6aRe0ld#AHvm@&p~3PelSp4h1VKoYMWVm`&hm?2lW4 z9iO=CHZ5eoSoJ4Rx#RHh?T`Q0Ugwx{cX#=2f5BNMnUCstzcUC(Srja=vg5eUF~|E@ zNW@pwBm7*EcYayTJL>E-Te03jtLxCJiap&t9gq4QC$P`U;s|_qO#W+|#`nY1KRNt) zVErdBUfynhMoQajg$Txz>$KPJ32K>F`z`YO>t(*Pcd;LyXItIEx~Bho=u!s0CbbV& zZ}#r>Hp+dUT#>u>Z`(ryM}jI7}yuXFnrSfjSb(4tA+Y4JGYwG+D zu5RbKvYc}V)w#2yb6%cXEV3qwE%4U?c~Q5n z_UC+d4H}#mwzg<2HxPDRcw4Z=F@Seb4d3pf!@<85PKkcl`pT}RuJ_Q-lZPaP>Q_W> zU$MexK^h*P2qpA(q;$u-3juMTkkwdoO?;^{FnNt z54MYywuHJCYH~CyNG(_Nl8u-u-u}@x?zoPLD~sNCfkiR={;ChkOq@kZE{chV83)MD z+ogP`{#SwY5&3&{zjGD8JFEy^-glpk(Y`jqzMcJGz2YfJk=A!yD$Y|fFStI8j8MyeL`r z^q^8lugDqaqYnH`p(+eWOfq z0GHpY&i0R@evf$S4!nNx?BV~&#FluSeajUUA80gd9!oW1)%~0=pV!6`XcV>EXW4?Z zHpjv|%{uWT^}Lk}v`vg=o-s%W%;P%bm(ZYHVl>ldsn=Ak6Alp)3lul>&vg)@PNN@7VFZH#*0vcqUD?>Vadwo+L vPXF-eqwnPVzv8P46u=GdC;xA8tilPnSgrc|%}#x;0jc$L^>bP0l+XkKSUi?H 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 index beee21133a8883a1ccb2175342a1c37567e22fd7..26b48fad13a632bc4ab35a129d54a9adaedbd637 100644 GIT binary patch literal 7477 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 literal 4845 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 W;4yE#+Ws|#Ag!LRelF{r5}E+_=t2De literal 4819 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 T=8D&Q8;~iUu6{1-oD!M<5d-h@ 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 index b98c523dba5a897d18549ddc46cf384b0da5b581..acbabeaf970c198fc30e0e1868716e9e3d516d7f 100644 GIT binary patch literal 8583 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 Q90J+l>FVdQ&MBb@0KNHzi2wiq literal 6479 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 I=akR{09fq??*IS* 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 index db2b2aaf62a11cdb48e20a89cdb3068ce27e4145..33dc2d29384eb600d141868125a797c63e7c5458 100644 GIT binary patch literal 8180 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 literal 6359 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 A#{d8T diff --git a/patches/src/main/resources/custom-branding/music/drawable/ic_app_icons_themed_youtube_music.xml b/patches/src/main/resources/custom-branding/music/drawable/ic_app_icons_themed_youtube_music.xml new file mode 100644 index 000000000..084c87662 --- /dev/null +++ b/patches/src/main/resources/custom-branding/music/drawable/ic_app_icons_themed_youtube_music.xml @@ -0,0 +1,17 @@ + + + + + + diff --git a/patches/src/main/resources/custom-branding/music/mipmap-hdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-hdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png index 7bc1c0b699d7e6778b5184314966546c9f503436..80c1e2c2bd57fd855597dde7559ec40e0e317b7d 100644 GIT binary patch delta 15 WcmYdFnxM%pEiFAIs@Qg-fe`>BD+Ff% delta 15 WcmYdFnxM%pBO`q;42M36Ni#68HhH=@hEy=Vxx~oHU?AYS z@c#ZU(LIF<3C!UK%U3(N2nY%~y11|i3JSWo5XX69het7zSsynR^KaPtG*RHd=Uv-! zZ*R-JQg(gYJP_mdw%p(QH)j-mN_|y4drx)xq?^XHiy}MuieYP%Q&-F*L=WE3e#chb>UY^l$@Tq#j&#Ski zKh>>n^tQ`*%9Qz$eQn#U+jY#-Z^n!=ai3p19*Y&&-8OsK{O;TRqR9uIS=?Eu$hQ68flpJmn`QD-@WP*gr}s_6|>|bam$8 z-F)Dg#+?UmzxKcToAm$0ymRulai-=m?CuBB^rl=8aCTiQHN(0Ie5JiFi@PiTS#A){*>-TIR8oc} zyH5O#yxB7vMQ2|x+wen*8zTACD|ep_s+xOQsqDkAXB(Si z8FO=_Z~u?^e8(Vy%dGuj7O$bnR_1Btx!V)(YKHzlS z`GC=#GVf_Rl3~_$PnO*Js2uaJXU@0t@y_!snIhz_3OL`6NZ5J5Y_&>H&7!PBD;_`i z)Nrn2`N_@i8XqSZyXE&>6*%0ul=by=e~H`cY92*QZ=dte__k1l-8BKzBa;&>Z^*Qq z&fTAL=*Ma=HQyWDdhEZw)q3_$vw0q5!CIDs*(SvKk2OhH_PT^pyuTN zCmu?wHa`9Rrms!o`C+*YH(8e7{%8L1@%bNmsjs*Sj=h>B8GKWJiGMS1!e(*3FJ-1K zE17jpuKAyOYD(~=&S!(y2fPnln*GhxrEz-WQt`LW zNyqkB{Xg;a{Y~kJxKnS%cmva(ewlyK;otLnmjqNrBeH(~U|%3|d#j0yC9m1DFRR7m z>r}VQ{NvSeNnq&~{{1!o7$dwU>Md0~wY0!s`SizKA2vNy+_6Yudq&5lT^#uV9PHD= zSobSb=Qn%#b=dA+rX%TC6=rn5>M%|Zt9IeiCx>+UU5^zu)rl)c9=O|I_#Ld8?u z2Q~?aF`njb+~MjxMRLOZGkjO7`Al6r+y1C&29#%X9I_Xib^3UKYJl^UNfW~ValPP` zTJ&K(-^2J&rAE0$TN>tE+Oy-`1%an>H~7tdKa~4hV{%0J%Kf*O7+Dz@7!GXsx0e52 zk_3MNpMjE0f{Vq0j)DfkhYZSx7~NW!dpOu71SykH{Q8G^bz;8bI|c>@22WQ%mvv4F FO#tZ#{N% zTkh>|9ND+G<=)=5G?I6c^xE9pQeSKH*IBK+ayP>B-hc19%stnyIxc-)n*ZLnLZW}c z3?r-h|F0)RfAlchdDbdF@bMmV?e%_Y4|8X<&%MzYr?Ke8mHfkUHh*7V__@4ZdfVm4 zQ;zL26M3_F#{KR4HZ$-`Ox`fN@E+@qV9z*f!FWfeJLevWy1LiN|2*~ZzPns=vel>A zJLg_XKV~Lz`mx6EIKy+*YwVRd>aIB3-1+vH)Aja0ng4gD?LQ`e>(BLyc2zZt zd0)@gH!Zz)-stID-~V#O3Easqi|v-4e<;?^c4GM+tC>Chk0*Rh-z4_Q{ilzXz}M?b zo=vRx?Q0f(x%g#icK!UF_wV?n^ensBvvhsi*0r7W68+jIcVC{oSpQ5?;qFBR^H-Ly z{XSQWTiw{HcDZZyF@wCmMTysf*R|ytNycx_lY8`Fy~dGzw|!IVjBCSwoZq$WQ2w;d zhw{@lJ)Kute7j!ki`kd->6YL0AKM(fcJ+hEy?{w6HhwdERd(nW&VR4_seXQNP2>MN zt)H2nS;?)5zOi1HqaiN-grQ7zx83ox5nP*Re%tKrsrI;k2j6z@A098$*mNq=s~$9U z8#9SpTxJ%x(m81Lru6NhH3wMVOFyn(alB-AU;LC5_5X*O0%r6E@A7o)=Jw}^x>H^A zVUml*8g*&;DSPtr)fb&#vcQ$K=l;U_)JF`&2>c!ne&c++;pjzC+^>o4-cOH zc4N^mZ_EC+EAE}F=$<#8$#13?9Qwr@6_yvYWQy8j<{O;bUA8zgE|m@_3O)Nz)p^pd zsWDGCT#2}To7t=F2*1wGRlB~f*|hcR?_%+H;ghDEO3C5gY`Y`+W!03Z;`IKYY~@|k zqaN3n=x_aI|3hcW`#ZTk<>Fk>2}xt?9YYnpG;A z%=|mV59iFQyd1PVCgh*g)8t(t`tp-Qc-NG#I&GKS!!(0+^G}UMDw@pwMKuMydCxzt zGg=jp__+D0c1}!}XvG1k$F?z>*0tGrO}aGu<8QrdziO{v|5qEn?9sDBPqp&2vSgzf znAhB&X}H7PGe}LXJ~=kqNcQOBmlp2~Wwxpn)~b5WoYT>tV1H)TlE*uy8QgAfpQ@5t zq$K7d|Jw3_+MU^_48OmAKjW*5qpD}*jGp{QGIt&cbku0p+?OxB=6i0o*Q8Ak|8G6h zax+TA?_pvE#~C%{{ijMMP5IRP^7M~q_4~fh{b{@R-_%JTfkOGlI%Sh5y&x0z!!btjDWd<|!4H>;~!cboFyt I=akR{05dPHKL7v# diff --git a/patches/src/main/resources/custom-branding/music/mipmap-hdpi/ic_launcher_release.png b/patches/src/main/resources/custom-branding/music/mipmap-hdpi/ic_launcher_release.png index 145fdb7b508b40e0b9885173a37e53d26bff35ed..4ca060e2499d5b06306f07da96c1970b3d4258bd 100644 GIT binary patch delta 2813 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 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-mdpi/ic_launcher_release.png b/patches/src/main/resources/custom-branding/music/mipmap-mdpi/ic_launcher_release.png index f4fe022daa8d8b89a96564b1697e83b540bf8503..84db2bae4aa97c17248ca1e9c1b694319878af9e 100644 GIT binary patch delta 1781 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 Vhd$MaFfcGMc)I$ztaD0e0sxlkn{NOB literal 1982 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

s`^M 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 Sx>$2i_rcTE&t;ucLK6VBX^0L0 literal 3146 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 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/ic_launcher_release.png b/patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/ic_launcher_release.png index 38c2d58fb3908dd76b3f154855c0c079228312e5..3bbb99d4a186c03f44553edc3df32b77be705fbf 100644 GIT binary patch literal 6175 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 literal 5777 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 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png index f4983a04e187d1d4677cb4677d334c5b3cd07fa4..20ea7bdffa09662133711386ded66d11fc9a1627 100644 GIT binary patch delta 82 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 P0|SGntDnm{r-UW|l!;Ge literal 4611 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 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/ic_launcher_release.png b/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/ic_launcher_release.png index 6666edb3c2a5bac65c021aa553089bf98b25229d..5857ff6fd276e303fec960d77e2215da4d98d939 100644 GIT binary patch literal 8589 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 iak5H@-^;~SOr?(x-DG*6 + + + + + diff --git a/patches/src/main/resources/custom-branding/youtube/drawable/ringo2_adaptive_monochrome_ic_youtube_launcher.xml b/patches/src/main/resources/custom-branding/youtube/drawable/ringo2_adaptive_monochrome_ic_youtube_launcher.xml new file mode 100644 index 000000000..084c87662 --- /dev/null +++ b/patches/src/main/resources/custom-branding/youtube/drawable/ringo2_adaptive_monochrome_ic_youtube_launcher.xml @@ -0,0 +1,17 @@ + + + + + + diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/adaptiveproduct_youtube_background_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/adaptiveproduct_youtube_background_color_108.png index 87c762874da2330f03dc296fd1072f393b413b1c..80c1e2c2bd57fd855597dde7559ec40e0e317b7d 100644 GIT binary patch delta 62 zcmYdFnxJVZEiFAIs@Rr+fkDdC#WAFU@$ErIUIqq+Lkho_Z#&M;!@$rmhne>c17qL> SlM4(C3=E#GelF{r5}E)k9ugY> delta 62 zcmYdFnxJVZBO`q;42M36Ni#68HhH=@hEy=Vxx~oHU?AYS z@c#ZU(LIF<3C!UK%U3(N2nY%~y11|i3JSWo5XX69het7zSsynR^KaPtG*RHd=Uv-! zZ*R-JQg(gYJP_mdw%p(QH)j-mN_|y4drx)xq?^XHiy}MuieYP%Q&-F*L=WE3e#chb>UY^l$@Tq#j&#Ski zKh>>n^tQ`*%9Qz$eQn#U+jY#-Z^n!=ai3p19*Y&&-8OsK{O;TRqR9uIS=?Eu$hQ68flpJmn`QD-@WP*gr}s_6|>|bam$8 z-F)Dg#+?UmzxKcToAm$0ymRulai-=m?CuBB^rl=8aCTiQHN(0Ie5JiFi@PiTS#A){*>-TIR8oc} zyH5O#yxB7vMQ2|x+wen*8zTACD|ep_s+xOQsqDkAXB(Si z8FO=_Z~u?^e8(Vy%dGuj7O$bnR_1Btx!V)(YKHzlS z`GC=#GVf_Rl3~_$PnO*Js2uaJXU@0t@y_!snIhz_3OL`6NZ5J5Y_&>H&7!PBD;_`i z)Nrn2`N_@i8XqSZyXE&>6*%0ul=by=e~H`cY92*QZ=dte__k1l-8BKzBa;&>Z^*Qq z&fTAL=*Ma=HQyWDdhEZw)q3_$vw0q5!CIDs*(SvKk2OhH_PT^pyuTN zCmu?wHa`9Rrms!o`C+*YH(8e7{%8L1@%bNmsjs*Sj=h>B8GKWJiGMS1!e(*3FJ-1K zE17jpuKAyOYD(~=&S!(y2fPnln*GhxrEz-WQt`LW zNyqkB{Xg;a{Y~kJxKnS%cmva(ewlyK;otLnmjqNrBeH(~U|%3|d#j0yC9m1DFRR7m z>r}VQ{NvSeNnq&~{{1!o7$dwU>Md0~wY0!s`SizKA2vNy+_6Yudq&5lT^#uV9PHD= zSobSb=Qn%#b=dA+rX%TC6=rn5>M%|Zt9IeiCx>+UU5^zu)rl)c9=O|I_#Ld8?u z2Q~?aF`njb+~MjxMRLOZGkjO7`Al6r+y1C&29#%X9I_Xib^3UKYJl^UNfW~ValPP` zTJ&K(-^2J&rAE0$TN>tE+Oy-`1%an>H~7tdKa~4hV{%0J%Kf*O7+Dz@7!GXsx0e52 zk_3MNpMjE0f{Vq0j)DfkhYZSx7~NW!dpOu71SykH{Q8G^bz;8bI|c>@22WQ%mvv4F FO#t42M36Ni#68F7tG845?szbC8jdfq~<& z!td$x9QkBsGY|zDUftZve#2*WAJt#{Bk z=*XSd#VStECl&k7)iM0`Sy=VhytY)U$e8na>#Bdryh*h_y7m0R`n%m1JdcQj6lWee z3fE{TRcH&ZCoqj@&uT-aCO| zu5yKRR{6@4^6zwPfBxvZG+DQAM$*mCeL)XatS|QYR`dJ+HJQ67;{x9N*6VXnXY_qA zQR!J;{zHorp+J7Si*=W47JK_=%Z64}*{sp9cR2qp`@-hRc}L`QlW&~XjIIs;=>I@h zLo?~!vx5#ZIu8d22-X?Tzx&8un=j0*<>&dXjo%yoJ=9=J`*ny})m0>ZXI({yyTX-U z4VLq^G8X^6#&T}=UbTdITh$WY*{*(j(}sUe`sL@p?(trm*0yP5yoS(%V!3$dn@c(# zDV}K;x6=L~ab?p1)_xt%m>ngB7o1KXdvmDtxX`=TpO>yleET@yT%2}d+PdF&mx=_6 z9FlzzbA0`;e|HwB-apS5SCs4bK`6WILr}N!jEA$fuKwIK{SOOkb$@(;tW|k{h}R5P zk$xqfG_{w%FFQ@MH&9Kf{C{$x_M`;E`^J_>W+u*2PduN zvwNYkP`GAcj`OK?tF3pusd~R)(`%hRzO?5x9yh;oI-g#*nwRzOx=prwF5K*&zF?BF ztB7pkGlhAVzyF?c`-ji`qS;E-({E>d)!Y8^e}R5a`n={%8=pnWG|c1+(445$#a}38 z)wzOkX{oM!*qY*>8=^Pl%zbcX`|c_CgM_?_d+B9tZ;G{0(?|Ac8 zXh+SC(xWF{Zs56R7IT<6;KF>~!wVlDt+>NKRZ4Tw4_@e7%qR5T+p<==%%3xc-z&pox#HY>dE>oun0 z?QJp5n=H?tYo2+uLO@G*Nyi~(`#WvtME@`>4PCkE?bK7D+twbD+QYN7@V|RZ`#Ieo zj!WA`0&Ti2UQ`%f`1?1ub(OW;ijdOZ&H+-_YYkcAUL1K;x#G(trLMMhMsp8I2du0R zULK>G$1_zh$mOF|-vJ-)6(L(%XCAKL)ly#4@yL$HL8xTgW7ZWZds^NaTo(WCm^wuy zu%`L+g-&+^n}7mt7n_oG52RO|nV`faf2MV&Zw14tr;KabXTJQ0tVe9q7K6>Ah+Mf??btm1qQIfn9f+qrMjde z@@3_l#+h*+EPfq0BWJ@75;-ZJJCS3qbH)8a4lBKKwOCJDP|PRq zz^R#3_8~zh=rqUA91YhqdG?RACY?_G!=k#R=x@Jta`QXm;%`z#_sm^1f(lZnJJq_1o&!4W(J5YanX)+@N14D!3 zziY`i?oV`7Qc~*Z=ul8nYU=3Vz~Eqt;8qKj(ZOPp(;=?c)^cvS{h(sm)78&qol`;+ E06KTLD*ylh diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/ic_launcher.png index c96afea8cb2c1d279e3d9be1350a36a7999e29c4..4ca060e2499d5b06306f07da96c1970b3d4258bd 100644 GIT binary patch delta 2813 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 KxvXQE?$v&5kmMV`b%0&NC~ z9L_TgS`>XG4hg97BytG18MJUhrD2@n#Pv)63o;zoXM4ax%r#M_KKAyu+}m8&theR5 zW*^N4akk~=S3l4Glvng=lH*;K=kx#6FEZY#Khrq)yS@qI)4vUt7vHm;6TOyThlQgZ7(Rap6=YqP?cl8Y5>RlR`@ z-t|v^8+;aRf3Hx@{L{hGGAFb>STCDL!Kd_4sjv9gKYKoKrPwb}(LZBk-1tmCojt~U zjn#`?jx*98dli*2TuA${*yZ$9M%xqXn)s&7jg!`TTX6f6tc%&-I}dj**0TI9bb=>f zzId9fb>p?zbJr^Kq_^Hn-hG1a@%c%{)eO1p_WYac=h->jR!Yx~z4k2r+0NgF9XdAA zuQo4Nuq@WTQ1$uHn%7;=o~>Rt=j=DT2ZqP1_b=G;?AM!e_4KPuwkOs#_lc*)E_9gf z^nCJOe)*YiiX&1Uu+(+wrD$Dn`mt2=^=bb14&Ow(PX2VcuY6Yhm+a-{3m5#q*k7DA zCzxel!y9Ii2dy{jk5w#Cz4+7P|7C8sAM=HzKAWbiFz3qb|B-Di`hfq0oU@*#|F@k% zYN{XZqzkNC|8e2-)2A(;w6rVy=AK%SxNR#_#^Dz>Rxg6II2O-1;H_E0rsoiSE`R-v zIPV3ri;KmlOIJ2Et-sg!+tBd)r%RGD>`~HjGkRxy>i*8T^XkpoM) zyjETRjOBgp)%>Lg88&4vc-(5)u28=~H|S#1kHxpnDeLcP>#5@YS&?`yl_%v&#y_K$ z&zj8p9dFBPoaZj~^LD%~^l#V1&slu?9lmkTa;~Z_(P3av5O34F~G0s4; g2hO~Ll$ClIgkIeeG?(}%@egE>r>mdKI;Vst06Fre>i_@% delta 899 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 a|G%S0Zk*Bme~N*Dfx*+&&t;ucLK6UQBp1;D diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/ic_launcher_round.png b/patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/ic_launcher_round.png index cc5996657ebe145c2c4feed8f937d6e7a6d11795..84db2bae4aa97c17248ca1e9c1b694319878af9e 100644 GIT binary patch delta 1781 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 a|G%S0Zk*Bme~N*Dfx*+&&t;ucLK6UQBp1;D diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/adaptiveproduct_youtube_background_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/adaptiveproduct_youtube_background_color_108.png index 9dc71239ee8d1c12a2c86cb8722d04f01ee085f5..f4e6e1294b311fe7296b4600c5c0c6edc1c32f0e 100644 GIT binary patch delta 64 zcmYdEnV@McEiFAIs@Rr+fkDR8#WAFU@$ErFMg|6kLkho_Z#$}&@Pq*b9*8esV6@)s QQ4ivHy85}Sb4q9e0AXkn^8f$< delta 64 zcmYdEnV@McBO`q;6Aip&yE7srqa#y6K085tOOSQfsI|1~X%&ygjJ(LZc*KfCedI(C7{&)MZC zm#}Np%T_;Uh`BD-`fz3L=bPJd_up{Ky}j+O+REJR!MC^NTA!?XZCU*M&DQh2MStt( zuHW-|UhThg@$>dRW@_7bGUZI}x0hSi?|)&g@c(LjdraENlY46Z-Cj~7_Whel_3R$c zH0Rv8`dn;(J(k7ay8d~&j(ENNwvUJM51*L%r`WfC-PuR?>VHk_nZNe4>%oMwZ!9Z! z9v1VpF20q0ggw1Ze&VS~lV?<2%RX{k?0e{py{=h)n=Ri=G~{BFp6FA1dgkM}#m6>0 zkx}b0+p(NYlplI~IF9p4!h4yI-m5YS?Qh;# zJnR0{?wiKRB0PLszP;D3uHP#h{pPculKZav)+=`&-1}ql8HVcT-AxD6Z;AwMK34QB z;>n6T*0slEl21C$yYuJtggtEEH%+^;WRt#yQnCooIpvw(b<(%}==psAm2scUL$muE z-Trg^FgtmsG-RKK#Gh#?$0X0@evsW?)BK)g)AHAU)z+B(NdIXs>u+@5!YEmUr~aLS zY5xtbX~x-q)b^fJ+nk~v9QM<<>U6@}r#IS{q?yk?I`QYC1cP}gR#Inm`DYlV?EEjX zsr~ey<$Pgl_8Ol&VrdmG!t*Rqf8wmwId-RaR@P1S()l>QtXEaKI(g>(C70MSK@2T0Oz1I{l|4#{B}PYRj)GB@Z2lYl^P^2{d>kD!piyFGu8!?xjA4C5irt zy@x%HU61_idT_zJm0xz}6fV9QIPo+WKYwgZVa180Qwze|e(P$iiii*V*7q}(L4dW` zPI`im@zpmEHY}aW-m15>XXlbh8@4@r_I;zH$QjG4Z+YwvKQpPHHTQ|RX7v6IskbA& zmhX z=3u%>_0eq}pXVM9^Lr_@Z_=8QO=-T;rq%oA6))`xG_aVRVizW+Q&W1BPjL174JntZ z-yRCHQC#yhc+$+LSw9yge5lW!G*jv9_P(gg`%0fg8KoZCRW@s@kLt|zcXaDTc&d+1 zx~V>uwfp{@?Uhe<37=KIKKa#uoOXg2f8n?v*TMb3ows?L)8>{N_x*Wx%WLt3`t_4% zb?3;1pOav1e(SMpnMu5H+39H0WIzHSI@Cd>1jHsGU=!9tp47+p;~%*&wF>=nER!F z`=Z6$r(KP?+?^tHS2bRQXP>9h>5}(?lDk*eXQtfI`*nH6j#yuxm}1M5dmj6N5|`@9 zJ$hm~pCaCM{IGTZ|K~&w+POd4~UK42W!r6#(*LRNo`@tXmePgsIrtG<^8!y6> zmfSyK7JJT1pB;Xl-{e+W9!o1e-V?&JSA z^q!oPtY4h4f&Zk-?GG2%+&gjqE;rl!4G#}*xAySm`YrP5drQ;7nJS;B@@_kR#^K$( zAcG&OC(rmDuRfHZUD{m#jJ z^5!IKGpEX9{WEM6&S*S&{gSnL{e&}8iDh%^xOt4+4n8QFRCzw(nQZZF3q>xrdi9xw zY{tT8WStoT4OUn$cqSOFc=q+_jr?cjmoNt!M9faHT3VSaK51pEO`t)>UB!jrH*0d@ zzHRziy-$IQt$LzQ@wR%_lV641t67*}aMy477h~R^Cl@7rF!r*auVlYh zL*kChwaubCX9}}63#QmUJaKl8hQt}oH=?IoY~ux3o7bMO(VaNGbWy?vmg@d5chbET z^3{9k`fRELyVUU)SZDhd$MaFfcGMc)I$ztaD0e0sw0~YZL$g delta 1920 zcmcc1KU-jeO8p~G7srqa#y1BI85tNjSQLLxx6A&+aL0s!8el=yw|9&dn{v4y|FD{S z?#7O7xwntq;8~Y@ds}XDj=#aY7mD=~x80Wg-cx_qYI)XvQTux(*TTQ9?rpx?`aVf5 zqw6kHui~v+tM6rZ-2Hc2%5lpBfv<<;NE*X?@s z_oT+fu(-1)c39on{fqg#RrcQJcUHf9JcsAmaR;Y4^(<-&RVH-L>u~sYW=+B}-eu0u zZC&aWyl>TtL|%G#n0L3*EQ04YxRo_ zobK8;Y?g9p+AQxFQ*U;Mn?LE_8&>1p$%Z9dcmDHezxZ&}^QY{-n9vIkz3r#057~EI zrt)bl^Kb3Q`7Dk<=C5bH5ZPm^aEvQVTIFHtk%wx1`vgv$>AUap@!FZb_~Q?Z`5V6K zr02UCDBa*+Z@4P^T>YP|bNb@dofYQH?3(e>Sy=kocp zF8n-PV2WoFTswM9AUyH})dsYjw2+jG(_NXAZs{|AZX=?+S z<_f)G=KOo3_Cle3iTs{97unfWM0f(4leY#nc zqtpDaGW)Kp+q(Y|{kNRM-5@+W-R0nN+xGX&oUHH9wVq>=;R30j&~kpkX4bn33;C=2 zzTA6ns`Ykn+~TqW>~75$KibVH)qMTh{!yey$M@2sVlQesHI76a6gt{@gKKVL1_$Tf ztJyxA&8zxlnfK2+wm?wjNcF2^j*@K;>P0#>HmOcJCc!cHtOfI$MoNRf1b43 z2``!;aQ^yX@u~mSS8i-lotJi^^_-9lPoeES^T!vC|4P%TS`**)KV$zHdxP)tuV;7i z$k%_~`P`tRJDvYv(u*exBtdSzs@viC+_U5L!n(+N%zrn_JHPq&@8&<|#ss4R2D(hJs=pVuUmURrme^<2;!=9SC#Zsf7Dydj$OD(RpP zOMfE!ohgqTD<)`F>{#ElKcbFF?nuPJSF8SRV6xho!Mf7P`-xLJYyG!&3GIkjv7@^$ zbS`FJ!c{BS-1qlr(E+YBzvEdid>oQJSZ5_Nm4rR?;Ye7M@J;-@@`BBb&z-ai?5;Vc zvq(8GB(oZaFBY+iSL6zu^ue;k>mpy$ngos+VJDi-WyvrG_8pRXk+P7Lg)tda`W-0S z(fN?o&}JSmXOYCP3i zc0i!0qGv+lwM7=K`Xj3wu6T?q zE$dm`k-)%5JGhh9BrJQzcc3O@%1#RoFlW*Sxknc|A2Yjv)crH9PBiEWd?e9g3+CDe zzG=G4wEMunvtRqay^H|Wm# diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/ic_launcher.png index df88da0c76ca7462cd8fe61798f851c7db5cfea2..31c9d1c36abcb51aa81678bd9b5a9810f2a817f1 100644 GIT binary patch literal 3948 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 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/ic_launcher_round.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/ic_launcher_round.png index df88da0c76ca7462cd8fe61798f851c7db5cfea2..31c9d1c36abcb51aa81678bd9b5a9810f2a817f1 100644 GIT binary patch literal 3948 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 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/adaptiveproduct_youtube_background_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/adaptiveproduct_youtube_background_color_108.png index cbf45f81aea1685a42a1ea046035310beb150e8b..200224bed5fcff82941aff3e04cf96b900ee942f 100644 GIT binary patch delta 72 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 Sx>$2i_rcTE&t;ucLK6VBX^0L0 literal 3361 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 x5F$Y-aRx$F5o0%0DP9*IQ76(P#2AJYC<^h(OFUKX)a(WYpQo#z%Q~loCIG>YrsV(t diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher.png index d9c5832ad592ab73463ad4f62b895ae0434a369a..3bbb99d4a186c03f44553edc3df32b77be705fbf 100644 GIT binary patch literal 6175 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 literal 5831 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 k*uQmdKI;Vst0DJ=;;Q#;t diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher_round.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher_round.png index d9c5832ad592ab73463ad4f62b895ae0434a369a..3bbb99d4a186c03f44553edc3df32b77be705fbf 100644 GIT binary patch literal 6175 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 literal 5831 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 k*uQmdKI;Vst0DJ=;;Q#;t diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/adaptiveproduct_youtube_background_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/adaptiveproduct_youtube_background_color_108.png index f4983a04e187d1d4677cb4677d334c5b3cd07fa4..20ea7bdffa09662133711386ded66d11fc9a1627 100644 GIT binary patch delta 82 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 P0|SGntDnm{r-UW|l!;Ge literal 4813 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 XoBL%AIZKY&AWwO^`njxgN@xNAu^38z diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/ic_launcher.png index af56c5bb929e43fbdf00bffaacb244fef55ed651..5857ff6fd276e303fec960d77e2215da4d98d939 100644 GIT binary patch literal 8589 zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Bd2>3_*8t*cliULp)s^Ln;{G%w=9<5-HGH z{^9odxZB%A*W}(dyngZ4w%ps>a&O<8c`x|n&&juDSIU|Asop=l;rF+dyFyE=tI{Ob zo=h>C>7zCoNuJ_y=eAi&nHJ!r^gia2}KK-5;~V}-`>rY7rl4$=3?2y|F+$JV`rD9SKVhjy-EJer>pY~Q;fv# zI=W`(=g((Zc<$oWt6Rlfb}QG(GcnF@-=ELi-+cYx@(1i6*ndb*agcOba_08GXUTOB zisPPV-$`4ax&G|;h|~8j->YuO)$c1Xo8jmbKdQWS-G2YtC!YZI-^iLQP83}L#;`4X5Jn4eJfSWxc<86V~g4^#m*FLoKU9;o=OryxYmk#H|R|}l_^uXhT$d6)%gS$0klwXK2 zTO67HK=a+>PutFm9(S4c$>jJ<(MbY_9R7lTPKeI&%UtgkJlPPjm6z|{W}&*PG7lr~Y}+dTSmGLc*Dss- z&(=BoQ1&c#Y2CPa<5t6KIRgBj550fn^)_BX>A%O3tBuA^F8`R8-<;8Yd=cZa75&W{ zZGRl#-oH#Rer2GG9mDPG)n)Pb13CA^Gsh62q+)HZ^v}ioizv4bi z9?veDi5@M&e_sFF$GL^)Jg3UPod-6r%*|9x|6)b=X!X2g zdH>m{Z)Kdi#)qU3;|-h7d;B?+&EWd+^8(Yg>KC5gbzQlR`;wgEKgR$Q^&KZW?dQ)c zQ?FP4YI#d{a&~KY%XQPOB`;Lg&omL;Yt8<=)5WP}mVtUkcJ^&`Sy#iO{VQ`b-`weM zo^w_6$bOx!`mEgCSk0Gy0R_|5YWyny2Lx76`Fg-Rc)4G$*DKc@MaB=)D^&kYR8Zg1 zV5Q_~Q1_7K=>FDEb%sn{KCNds%ZzjbgF81c9lg(N7xqP7br!1~DEljGeswrkyYtS{ zP@(-7ejPAf$9Fd$N-6^rz(Bt8adB1U}*{-rsoDlDnrf^!)sb z|CdEAvvXQ0kk+_6jV(r~|H^T@dtrwUg?AXGH?G*awe2ySw5PqZ13QgY7#2?0kuhz%{UdgtG;#e~^3|dT7HVFmFem4MTCRZWQxXH&d^x{^!-q%%-i5eeiz&|8+hwE;Y$n_y0@# zBw6~O^LKP)toiZ5QSA5k_w4HG>S|@_G37hv+O=`NIS?~b_RP(hS;1@U&CRDTceH%P zY8IfZ^WoBzTlOrID-K^?xqk0n+d202anl&y-{0T9XOE5AwoTDCb9`kPuU|eMX`*qQ zYkP&-|3!=OJ;~2h@RraxvZpRpV|W^iF1oTU*4GPUh)0iTpht_ zy3xln5_45~&-7$)PB&JIFj?kqvOH$yz4W79qMJ-F8)x3%XWMV=l+x)ZSdl68w*SfX z2lo39J!bmw{d>E1__`C59v*CFpD=gs*&}Q>b{yV!C9y!Sc#&(8|EYivo6Ax^ojZTN z-MwG#4`9hJJ{Ro17R+CFJ>zd&yPc{VdUFNa=oy1pQ* zK&x12&bc``feYqXv4*7G``7aF@^bBK)-^v0?&)3>JK~#cb~v6>n!uwrKP1yqeQZOeSA`qEVJ9p z70v5KDzeUO-_QT=u)0mZ&Fd1Y8K&9O7OB0vzkmM<{kYre;(SUk`O^J2bG$h}izjri zk?VO|HeRVEH~#p|G-BNnr7L_s()bTgc_YW86@e)eHtbdS8Ld4zUUu4xi;LY4o<7~( zS$fg>K*<&<{*?0@ID9(aYW@1A?(6?=U(j4hNy$6)`X5$GzEj<^qF1#(<5ltGsAqM4 z^K4dn^vyEO?mCvX2=zKXoQy*+<^*0bgde0O_g{`x*x zeefxNY~hKGe-bb3sVuJe{H#~UvFyza#;~w3pEYrdo8vMp^UlxA4J+Z!ciL(2^X9Ev zhvwNzl+(NAo=Uxzisyx?F?NP6S?uHZP^=%9lLk0PIBn`aFX|xSB&a8 zsi=Q7?fL(gW=U7e*;H&;p1L{1 z&*bCJZ*QY-&dR&D$5VJg)*rtI&*saejvt*L>t*@`IKh0X`?C{HaV}}kb+qjS#RqXLTs?+bij|DX6?YJv92ZQuUy|DJSiOYZHmTV-)K zw&g}AZkC)v)e0sXR>-BZ9cc(EJ$y6y@SnO!g zUgRjpa_gDz^=|9$f2U~#Hi_H`sXXEH>hkjb!U)s)%8!MspC-A!=+9@7U+`jWh~49^ zvyRPdfjRTfW-oYlf9>zqhaCS|-7P|1tzTaIJD#f{+3*PGV?K5Nd1q$v$JhTg-J2Qw zey6Ky+VrfyM=$;V_s2~jaOLcWye%nngI*NBxUewK-YsyOm*3P=?-S4SPpF-C>0kVV zmW}FDB&vUX(Om74#+PzUC-Uf?Fzus+9+J->nW`zsvEF_fAi> zz7q3|?N3WN1Q?idN|_h~1U*YX=6rp!$hF(2wvlaVbT_~Ae)0M3YYRE;8a_)0ZJPP8 zQsi9B-YV1RyH?fTa_qjmwCnp|ck5!te1=Pn3ueCA!~7;r@gh6F+=jcsTeGj5mAP$x zE_PUYuf82;{Bt25w@cd9*JRqBUtJyE&s%$MU+ry!p4aR83LG398eQzKtz&+}={QyK z!^+8S^VUahezx^A$0?CDTF(v?*4o$n%}!*S6nE4|CjQW#%Fj2}o2#iE3tW8VA%}gl z@|_7KGZJnxwk>x5Hd&m-GVg9+Nr_1-cYJn}Q<=)~MOnQ<#mZ(Km1d6Tx2?BhIJdQM zGndKNpt>cEV)sor?7I$75S!XRv+08Z1wd0nB!rhr`I<% zlsEBW;lHDaJ0?tWaRPrrFVE0I5)&@^Qek=E9|GE%GxQbyj^?-|YJg&-d)v^J$V^wBmvP-p49f+1Q>nFF5U| z#=!P;Q<}iu&Zh#p!6vR-Up(lm?zxz_eMNjShc^4-s2h`b|J3h3yzb6Q&wsn-&yV-? zWH|IcTCu@=>$FCO?Q?w?EGE23h@29r%{xuEBkQ8y+x?<{t={>H2G002!Q7wo+PCAq zhxvZEX0nK$u$;^AeFE<~mt8s^|4(yTz@a>~aY4IZe2s0v1BYvOZfs8PcUl-37Ra1< zF>da+&UWA@k04YlI( z{={0o(=}su#l^js8&fiF=IlFh%wk{BY3|>pGIljHCO(#6Qc0K?*CESP!MsnSWwF%) z@ji71gW6vupIC47tbQYE;JR~DqLLI}{_}I}@rpv7o042#YtBs0$Vjx_$Hp)Brh@52 zQOEQT$hVZk`M8Zr$_w6o!e`+sNOrPTJj9W=7JKhyN z5zT79;H7LACNC;_lyA3H<)@TOHo>*be;Dnz8NM{CiHr|r`tw?z<%h4ZL+v@ce?61d zFtM)gxUfQZk*=2A=cnrzeBzn?L&;~ZmFY`K--i4D9UJObnjNZOuB+Ig#iE+Qr1F(3 zVF^ceQ-Y#wJ$J$y&x=C6u7N2vg~}W1HWA9B7wo z;t%k&K6sM-+$xo0Y3Js={IvPv%473(Cmd{=Qv7eLaE!muf$K($0&Ke6j{GK!lP)av z7Oy(J**Se<_nD>t*nd^t>=f0wd*Rf48~zU*EGu&7GF)O=bW>}?+`KF%mG}E?>;KtA zx3DeRVZwiKru}U5e7~P-)DFa|99k7+-l)R3V!05@ju~?pq!zpNDlJWJ&(NH$+;g+^ z*O$z)iu_ZqaqA@MoU_=d|1@JXYbzP28QFNj6v(7KvjLX{F6y;Q{-%`HuRa_ z`&V;zzj61&b5&JUVv|@tY;$7Z{~2Iaa_x z;c%U#!yB~CK89{i^JSKt#c(27 zS4EbMX^qf>`xO=w+)gV_F*#D9)5UhJXVdlrI|?7`oIcu=9hO&9Q}gP4_8;BnOunkJ z$L=?KEY}ruh?CBLD8*?m*R!-Sc27?6shP&Cc^}_BAXQM5x!7j*Qdimin|xeKZ{&R5RrdcAhfXY-t|6SUp zH!kxr+B`Y@@}uOe7YP~e7NuMA?#?Xek&_Kmq>fo5#xdWJ)DPrAt_P2>MPXO6`|=iC41Pd?{$ z_iK{Vf*h3>x(dvH8VvUQ{eK}%fPaQ%j9|1;>akC`VLvD41Y5`7{$H=ed?(ti;odW4 zhZ+?P0S|Xi*0<~{9xm>;OA`GxJ-)8;s&32ygLcsxdLt&>*)B{)clwrUAEMD{wviBuTT7&ZuR=K^?^Og zZ*&iP&eW7&5GJwQd6E5}56qhSyLXEh)?fY0Y*WG*lk~@a^B%@MmFzRhTWpt_&%Jp6 z{(iM}Gp&D#J#ftSOx$H~>MZj~)30?*vj1utZf#9lvief_*C(KhF^K5TV`?SB}qf^P78-agyWdGjOI6MDK z4eN@(1sQA#)J&9Y(2k4qQlcV9Tk)%mRd?+5jKHr5l)MUAEM7arO$nrMZu z^O>zOb?SVnN8VF34xYaD!~593=@b3D?(%HN`xjx{e2MvH#&;o(4<7fKY(70df42=hgRz-z~WO_rLtz+b<86*L~~wS1zXOl=S21`h(&}!xGrLt|Z7G>SexXkiYbT ztA14=NBeroKk2u6_2)Y_r`~7`-TOmyDr1T99^Oc)3D&nfN@Q-lm|ScBU6}V!UtV1; zv&&VU^#}E)SkCZ|5R(u*wlDg}FQr?nSFPn=cs4)e><6VcPJKEB>3pl~SLI%6t9_?_ z@jv4tTaQCYCTHI>_)ln539(qgA0cL-ly={@&hF)+dZBBHc^%KnS4@4VdZW=sc;W2H ztZz0q_jo-2$8xKF^Xt!ji!5)nF69WTJO9UyQDd{pU#nmCc>oCiCXN zBa5v1`wUe|TclDLr5;5Gas7R+Gu5drx8gT{wA?$TTTMD^4&4#hTA%Wosqlm&>+yXY z&u20AG+*N1W*r>1-_3-zvZKG~UHvltYjKS#B0C%xo<3NA_8MDHV%onoKkC?Z=f<0` zYDRF@fA}h~x#5=b7RE}A%~9%0FWB=(a7l*!`qM3a_q|F~6I0F#Tl?g`e-Eu)rzo_J^$I&IiQ6_$92PF<4tWAtgabJP5l@6dHy6uwN16lTV2fE zHKA|I$KC~saSdk|h|HQdZ=X)zKTbA@BP?yThi;!=zHHe#om-7IIftB7dh=O$H|n)+ zTfh>!GoL~D&*5K<|C_J={lBDqPk#oR*M_Cu^EssMpYUENtKmF%%eM^A{In(kpFhtx zw0#k|$TcNV{m>=#UqK$et(OAY*wiX^8aL)n73kUbVAehJ4z~q7lBQof_kHQi+B_#p z;j}Yr)Qksz%_Ki<=sbV?g4^x*4_$SeqrWV@priA;u0gg|Jf-pR=NSiPJ(_%WU&s80 zAE73Nf$QJJx7|G9HQ(@!#MQqJy=yN|pBic>-9PWg)O+$9Zj`ECWC;nmYkzI-yuh!_ zuP3xtFg3jixm8bTj#07p^((w&Zy670)OC_pSapJLdB;;rgUM!t+1&yKjEiVsf|S z#pgK&+atMLqeosV1W-Ci&aoEHT%`_|r^nytFqO7Oq%Q>iN6{6k0N zlbEhbEMF)!qhaO2Sc`@Bc2c#CSATyguzx!1ZgA&*uFR_+X8kxUm29fy>&O{($>gF# zY@_h+!1XFp^=1aYc0Ex{u5Vh)8(!9%Cw*!{&|*LHw}v0vXF2FjQ(eg5+c^2wLj4N1 z#h3Q44t)7zQ{zS9JKNg!7w67<{Oa$r#SES|T8=Wh&rM_6nzV;+_k?!01g5Oh(UW=i ziKQ_Ac<-^f@#6GizUMpc&bgn!`@F0ucg_dt3E}+fBW#*o^^6;DS)1@@Z{Uqwv2)T2 z-skF%_DBf-N&Zqk^QLmwlR4gtwaqOGb@g7n`YU!tf&2Cbw$BE&8{YD!HEDJn?8@rv zKF8wJt}C)#Rl3G;Q{yicD`O{@r+sshufM4Cv|Ap(u5s1(?o~Hq8zp>XWB#Nu*(ydg z`GyKz4K=$lx!QB3bNy4@dA#{7i8mxr%D-51pJ!8}$>_5_EU|8(mjKTXT~XDs(E>-y!yX|(D|WP{}FFD}=` zk0eMwn$Ti%Wx?Z3j?+0xrIoI-KMii(S;2mSL+sv|5@)4Tyv$6_g%eZ`Fyt@-@^`x&kDE_ z7~gB*9`@>3UMMljN&Z4&*>mPV6z8!RYpX)qRQJ>zD`2|YXglrzKUU}}l zrFnko=RfO&>eyFJXctjQ5EVNn@%1drza1gIUDpz&F9kHr%4gC0v~|ag^UoI5b1Q!d zsa)c{{zXLd+Pe9ocnoAH5{b2CC2(z?D?p6BYVxw1Nz-& zA@u?hiUy4rY)fBVaWy#n*YoH5DbBN06`$O%;)76h{?VOGs_4<-)Del<2Ug=+-&_A0q2bTC&^!Y?C=~-aZ^h(g{LQ9`n zlLFI1oeF`#Pj5M%@8)>%zOL*8@4^@TI-A-#?wM|`pPoGZ`+@38j`uI6)~&pH=)Hrm z*Q#Up*H28IoIGV})DGd}b(-Jpw!A2v8Qh|yqR9AK?a$-<773k0T1P@FMN(R4 zX-%wgo+IXbV)J>GRi|`kZ}M<4{+rA4!+K}2?~xU!)pG@Mrx<*>zVki*qN;{JefJf= z<)3~(EqOxn!x?$1$JK5-ZF#V8vDchcUEdsM3b%(ww9MfAzeD<<>FKPRRhtj3OKTp+vTt<9$+)*~!g0f{&d$_nmi`vwm_$kEPw&{rjI89q<47{rr#ZZz6xK<%lf! z|5y8axqaEhKdawW-#>l6YV9ANiWz_SG}C{~6%S7mxAOWD8+tFq=HmNT8S9VDT({Gf z^N_jn9CH=zH3!&KLefq+GM)n-)4mbqDJ`}|C6 zDD60Grm|Hrq-}*G^R1>1F~#?q&LwS!{_=b`{@!$-nRmrXj`ghbTXH)N@6xZD@oACm zj2F7v6=@BY5e=#lp=~#sVm%z$iYBxxOcXcN6p8h$hz=?Gk6$1npcts8v<-=Cj=wP+T^nP0}&7XNJ+q zrewnwR>#ih8No{8%bbtA3_*8t*cliUsytmBLn;{G%w?XS<0;VQ ze*WI=x$oAUvAexZ(&F|uNxSxQ+j4Jj%f0>W?YGrE(}e@qC+*#AY$&+l|M75 z&J4X6EwSogf`J4NTQigr)m8P5T*)(GQ_!X4rMD6UDpNNe6_bA0v2EY7=NF4ZX1$a# z=-3;tB);*S#p9mfj*hiw^CAyyN|8CPEp$<iR+(?f6o1P_RS}$%C$0wgI@4v zFWq%s!eEB>b89$lQb{+ntBDnXY&;01RO@C5YZGMVUeiq9t%pW3P0`tCy-r$mmzqVSIuW}nX(_s`2* zmLZpR??MraVC-3+^-=o*8P$0g1)u-9DyBK6JC!;4%$=g%X-(aaj})*)te?2=$^RIa zqi3RpFG@=F*1z$a5~uP%Ucu<{!u_v>|Cj!XIym35rtV7QbDo`PJHNeq$7#&$sh5v+I2lBK?YGCOb{)_?B+g zU!wfW&;D(O;jTT^ALbmiQTnczoS=Edp=!!sljR;RtE2QLIc=J*F+ZgipI7t+)pj*-1qa`gY!B3rzCc6b?PqfpYZC8UG?oF7RzjByiB#f zrLENzbLnZx459Yvk8ixOe7$C~-zE{3C2qPwcXn}yTy8m^Us1VH{Aa^so_jYwNE@}i zYl^n&PK~%(8QgW|;`s-Vb_h&Zqnm(P#8*}E1*Q>>LY0cAn z4Nq5D`z1PiR?eslPy3~NHBi39s_%oe;M-@SCpI{C?00cdS9rCZFK+n@m${4&SeQla zjkibUecNTjnZc?4vTO^F@ zXSCMHzmU_3wctKn;OXt(ot9B7bTRA9m$iKN_Rkb#`VoG4Vg6!`sMAemE5C2h%$&LQ zw9o$ZxIYC=_t!G#tndriB=TAAXZM+lY-hfN+gaJZ5D=WXzvGZ^Ebo)84|JuHubo`} z;~`6+NN&jL|3#X0N>N9nA9xk9&T+W3aOEOk%fr*!N)xBbUMmTQdrIGYk)+E_GR zf4=;C;0G>^p59KoDaS3+YUeIk!@qdep`3ZM4K2G0s$>~>UI(g(;HlQ|>nWJ^P#S)?zVh?w0jF zb1XKl4V6C>y2jBZ-SJPt1iylbuRJmZC)e*=@aVosrM*Ortw5)6j(*gq|IulCSNvvN zJ2mvr8K3z|zxY|tFdb`&XK^&hUVVjmYv!sWIeP6s4hpPX>U7<*)M2COx1TxBzE%h` zusKej%=LD{yGV!N`B__~3@%%D{9AC2_2chtizSxdSwYxDOlY8 z&F}Eit9C}EX4)^=*!d3`Vi#&~{pUDbAUc=TZOPi_`WOFCOZ2H_2vVHM`fep_jH2mE z{^BiyT=51yB`DAeuSySKLKcgV!Fn;hOJB{nNB zs(*YyN8qH+hWTCfDZz{P@15|`<%^P){Q}27>$e_wJz33n)}#Ds&R^Jfu4K)T+OnVR zk)UtqziAiGdJOgty@{kDW=VqvUBH~G}t;_%{s1X8f&KV z-Tc@QmoJ<$3aSfKf3?2lID50BFW_iUT3?y#NA61@JmIU~ws)AdZ5( z@13am?0?n&@3(LNfAH%+-FR`*{RtBiUR_woY+LhVLfpQZm0Y&9zoxYD$*!utCz!NM z^X03HQ}-Nx5w-7OqreR|wuFlhnbQ*fPvPFtsJuhUK(g-Cp#?o30_$5H1O9Lq{|j?l z^Jj_2#5sKOc0TX#@4wC|qwd(mGV8f;^qmsJ`y9Ih6MPg{B^q3tc_SKU9%q#~cr` z!PWLVi=QtO*N-cZeg5_J^^nDGrDs3C3y{`5eX-e3Y?g>XuX!X=6Gn8W9);~A0p%1?f1|0IVGfg{hutK_1cJyPCvfg*;8p8xmN7#ETNB^FYAeQ z%WK*^t>(%(w2h5>!`mAhom=GZ9JqMFmhqZs-22N}6Quqw z53MdVv-7X;nQ3&(S2%0wKgrn_{wZDFxBP%wPWA={X@jB-&B8kx7hjy6WUl1eC2~JK zae~yp4L|nJ;Q3y&E5^^N@)OJT&U<^S-Hp@Fscg0k*{s%V%$l2~cyiq$<9+Q1#B#C> z7=$-4DzjT#G|uKRcNf@gze1|!n)qf%`&C^ct}j(jKZrg(O}C}cz?$^0?i-m%qtJ{uVQlT zyy>&8SzoMs=CiZ2)qS)s<~*7zVtn+Z2Y2`R<*KS;KSLG>@2XsS+qs>ub5dCWgZN6m zQwoANhiqvyZGWP+kr#zh3dOcs(3W0PGIAe z;&`0Br_wn6+?xCqtgL}oOTK1!t$b>-^$XW}7Avh~Ygy-7S#RLwX|iFxk^1+lmenEi zL#^D;gFZ+23qQC&W08r^!{A8%{p!B6o@_pxdU=`ec?#mv$XjT4Br(_GaxL&|C zoj>ax-l-hTaCte^WY-xff0pcp&A-2$pJmD&yQd{n` z`T>6!Q?AbMoA+Hhg}A&I<=@-0a9!-~g6pkqGghiv?=)TW#;PA=%JSXS-}C0{)-r8A zliqrGo!=WK`EMD_3C|N&_2oAF+jRdg^Gu7vMH^JAo}Lmd+8ukRH1kpVayeD8%Lg_| z@AKRx9`CX8aq82TExI>ErrI@zCOyC2a2-~RJc|GX~@|H4F4m%X_@-=RxP*J*qH zeX%pQ_Bb6nId{tu={-5i%&siIb1YwQ&BJ|v6PdRqOm1hDX#D#Bcaum+)3k%_wl7&% zEMD?|hR>;}oBJ8El5^hP+Inb4_2D*N5p}eB{m0Fl&Ks%Hf3tZV}=PhIaGy zc{y+CF>v@tpU7VyvvbnluYX@G?!QrYdrgS?mE|X+zy0VtJ%=NEgV`dUD}U<$d~}~v z_lCE+=7e&7!(Kx}!Ye}OsFq@U;PAY8&n91dIemrx0->Cn!VD{xgyhxrJD6r)+tM#% zd1&6z6@V zlxsQPm#ui(QT&_G%S|8;+y6cCPfI^`*O&P} zLfd#wBz;Zb|Fc7Qr`=0VhCk;;8LkLw+}qUj)Z;=aqr;O48T;#M-)3K5=W24M`1!e; zXJ?!Lzg?xkyh-UrL*AQ4{#q`EJeKBvR;y%`{MZ=^6O4Q}o4jY?etK^1>3iGr<)vp< zem-kHVb3Qm`8^X3y3JW2U0pCm*{^_?m0`Xag9cAj56fI}h7Tr%k6f-f=*R8(QBc!m z*C=ij(crj!G0#cn7!`()k4y~_28r9adY$bR86K<*TH5s{n!%*_nU8+2<^x83ZE>rG zw>{hTFgm649M)J~&l1Go;IEq6#LvMnr(aWl?-!x$717&rws}w0TB$8=^C0!9Q+m;H zZOzsVeZOkaXad&?n#?Wz<(P2u`rWZjyp-c?vhhqN8*Z;X_XgJL@TkQI$4P|d{ZCzvYqUqd| zCmalu%qH_L58WoSmYYF7u*)QKiQ+L{#mLf^msGd8Z%;nXw=OkN_i{6j?1iUJeGCUS z>6jdeI5ll?!fh+%i^Bhy9A0f_VR$E$oPBLgqOw_h&BxZ+w<9;OW#2p@RO0dIbgBOb z@ePSLjO?}MvNt$RaVd6uzLUA(!VJU3HCdY)tR$5Oqa1@kpx~l`wv&zie{RJ2OZlbH?tC8csXvuWJ^4zLmY+s?FsiPxc%ouXXQ!h#ra% zVR9(2%CV5(VN19i#SpN*SK;oi>({O(=qQ#39<{mF@cqrr$ z^2=~ccl^NcU~*#JqAOFlf3P0%+_3s#gpu7+)98bhpP%{e4qqSFA6D?lc;8{;b(=(t zp4P86m9x#{y_v_RWIvy!n9X5}lfT!e74cJE7DRpLvfx|qr1bitmS0Vo#}dbB*XGpE z@rR2&C?pPjjvaKp9*GbK|xTvy1*Uoxcki)d>yN?*! zl^r%;30T80nWcCxw})dr?-FC5elBsnl>A#;E`BVNT*GL2=M$4;#Ny@gG7oNx?0LCj zQbL^?`vWWKoJq!k4J_}48D5n3_|7uvtmSU-n{UUPG{0HgXvt&m+l+QX;^N_K+fJ(- zjA?gz93r8qJ9qWItEDYZbpvM1)Og!=1i7oL!>7-D z{?g+C@^ zU$ncp_sIzEyLoithO{p)0_Qo+FH-I)y=TzFwjuQCZnw{T8|KMRSRgR9GtT&aHFx`| zw??nx;?)mH?RT6+aQPG5fw>BqV4SzXhH1PfA?e6r_1s;ZRdIJjsKVMIgBN|zv|hyq<;MW`Yd}1qo6@g?V;tVfwp(^7Fh{5Cg%Ipb^d)>rE&fL zb)#wav!^&`Hb+H8i7nhEKZAj%I_2Z-^9N6IYyZBy5rY*Q;HCa!pQb4SHQCIg9U z5x?uV7EHRMW4hh`W^Mq>m*l-iLlqk8BSZ{D=KT4`-8xfx!>{1GO@B|u@U9BTOy2S1 z_EWWl_H$9~5}#Uh&PL4G`&i(lvt>6^Tg~;qKh`%_2R}*J(fq`` z*eK@NQFlSscWtw?-h493Y+iVM~q)BArsfJh_8OezQixjoSD6 z>Hl_|Fa9F0z;11%x?eJ_P5VoH@(PZ-T!9D9@fp1-y1Tz>SB&2M)}`m`iVS|A$-h?1 zbihTVHUH+`n~BY5f1P?EU(+yk{=zT2{@-C)Fey=%)oo+pKP`^H`a7zE5;@1O$8UJ} zx9X6o?XPt2y3NyFtQpT2UD@&d;N`^Db649Wn-?k`SR#Jy&y;u-nZ*n?7j7>3GBaB* zfUT-B`SaGOFI$VZx*SUIma};IHMSsorp#;RQ?3>Nw=k5ro=^>B;QW}I(0Xo$sL`Co zo9oUcoIHHj@>l7@8yJo8EjQ#By+UOYoXMS3a%# zo&UUhEAzFq{>0`(LV5qJBcHMHgnj0B{;yo{(&><9f&j;?nvbQ0fevd0yH;H3^jfMC z_F_q-;$gn)zvjPsV^bCWP>5AvrKvq@-@mirU11FpE0}{5CG4W7^sq;5UNs?+JELIv z^oaS>i;ivg^9wav^W%)IqTG|-^R9tEG@me+&6t*`9Wj+tU$1nYdVAX^|C-IJM`9gJ zH#)t2`!?Lc?t`|>>K&qj5^q|z-`}=%Yi#ee^q!bkr%XSdogk2{edX|_t5e=cJ49F~ z{%lATzF#l2^YPzS<0pRo+w6X-@4LA+Kz^#t<2lufTFiwT6PZ6fu9<&obBlJ?@^H4- z!5c(_LKiC9UC?p)5T$l>TgV}W42~IJ_W4>kt>am}%0KX$`tKx5Q%AF7CwqQs6v=Nr zHK8rEW)Hs|bDqu;^*x*P%e3!t$+GS$wQCTq73XyRAKLMtK>cW2sN(+OcefuLQQh)h zJ-zQ)T5VB;;i}J#nL2a#If?v~kF5N1;ry3>Jj<=(LoFD6wC>M8>~;Rn=SBgE1((t{ ztp9A4DDh89X~WdT?H>ZPzx;h)vFdiuy+<=9zdvs;AK<=*f7`Zgr<~7EJN;DJE%1l6 z@WDjo{r{Q!uJ74dzz{Rz>5)vAzAdjOJ$Dpnm?y8n9GajZ$SCz_nUU0ykBS?e)2jb< z*zI4c^nZd^Rpk5gM}Iw;FS6QmlazO?r^*gPrGx83lX9*uYz}>^`19`jNfYH~D6(f| zZPNa~Wcz_r0X#g#A~Pn>VNm)pajFM@+Dc=dzy2?OKELq1SfxIu=IHVtpI&fCr}(XM zzW00mqJtKZX~xHXOJqARzdo?!+<#w76USc?uYW&ZdcJh$<{w@DhEFf@DR{UX*kI8< z>x1juV)?}!InHPQ9a;57Hod~W*KY5QFKZnp+A~=3@&CO1^x_nb5R^Gkl z)f$`FUj|b@9CQ1}>#{)Tv0{RjAmb{wa`)zcMem=pKKs73f6w>*Zu9TDPptQoh zG@HXB@|dt%gJl@M*v5^|Dg#C2!j}ehvmH(JJ&?+K{Gz%3qWkle`!@2gcBt%L>L=Vd z%aE_JE`eu;uM0zde4gMsmH6o+n#xNC-7I>k@=y^&D$L+ zr6Nhd!SdtD>lqE1QHxj~IGroqFSPSur^U9|w4IH)I=OnC>v9U5;$vFs>gUy( z9J2fT=J2<lzTNvj$ESU7z%2grah)|bx%fkP&T$oFR=5i)Zf77?cQ21{C3Cq8i z*iXH`9=b_-!~0uhes#i)>jXj@R&8=I){MJ;^W2QbuU7=d8}RXHpT2x_-zKl~dQVyBu2H=nktnhFeN2i;gj2@8z2E;m-r$;k zp;An+%;1ssqxlCHeDYM;Sw3mo(-r$qn8_#0U%8<^*YZd0W|vhVs}?)X742ws;V_bX zJm)u4OTo4AbwiQT#!JghWcl zJSMS8e;Tg6;QO%g{iOG^lCEmZRX5=~{j0|57Q>SDO#jwr%r4(NZ~u~x{U^4`B;P)k z^LibVd#$kJu9#I?u8Pi|1=5w4Uv_d(j~CxOP5;Zi{|rtM!QVVKR52XAaN%Cuys7`{ zu2z3{_R-n5BV^Zs(%>WU49jk|IpRZ%BUaEdNx%rgwuTb0Er#WAK>DzPn zWWTNrx^l`W#`7tAt(KC{rpePo=51*Cbk8*4eqB%TyTzRn0+L&Nh1R@1$>Dftx$qy8 zmrrkg=;@zav{C7A)0WmxKTdYsU)~X)G<(~->0JFcl~h?|1w;A_&UGDIB-Z4>!4&<0 zL#6pWYhj&?>&3#4C!N&Rx%hG_E%#XH{!OhV-KaX|UFu+VB2us^Rmk$}N7C)6BTdGvkQ;52qI?cW*J8 zruI)-VX#&wC`#b85{Jsg?GpnRoH^%+}$)*fRaUcDM1=o^Pj~U12zG_R{2$e2Jn#WZ2VS zS^Fd6qSFun3(f|7kr~Xp?_h0(Y ze}08e^IK0a{oMRV`u^`!k&_#CveHeDTjS7?7M~v4C}<(h(B_ZXJ%6EefBygpMSseK7tpQ~P9T#o0{L zL)nM;Kg`Q^*unSm_LmHQiI=)sf96YAWe93D1UJ1{I8}nB&2x|80zV_a2{VEZ@SL=o ze`t~0uiDZ{heYhNo94$p-|ANR*72TqztSFNtv%oQe1E;|`}WPqaEqFyvl54>qK&}B z3d0NDMtl=yIIFzu5b|tF)_n2Z?WgtOKRu3hY4+;{KhF|;Fj>$}anGkOYu$eN=nEgN zY6=j1q><~|$+E^^V~I+d$E2`EDM9To0vnxrS9~gWuABBaJ-lMA(E8et-Vd(@?|IDs zo0{aoox~itguLr+-<}Grb7;|Bt+|A1^=9g}3rw1-+aV*r>qO~Qr zA&m9!Zud(r=9_M3ujg`lT;p3%*PCX4`^jhHeQ&3_*8t*cliULp)s^Ln;{G%w=9<5-HGH z{^9odxZB%A*W}(dyngZ4w%ps>a&O<8c`x|n&&juDSIU|Asop=l;rF+dyFyE=tI{Ob zo=h>C>7zCoNuJ_y=eAi&nHJ!r^gia2}KK-5;~V}-`>rY7rl4$=3?2y|F+$JV`rD9SKVhjy-EJer>pY~Q;fv# zI=W`(=g((Zc<$oWt6Rlfb}QG(GcnF@-=ELi-+cYx@(1i6*ndb*agcOba_08GXUTOB zisPPV-$`4ax&G|;h|~8j->YuO)$c1Xo8jmbKdQWS-G2YtC!YZI-^iLQP83}L#;`4X5Jn4eJfSWxc<86V~g4^#m*FLoKU9;o=OryxYmk#H|R|}l_^uXhT$d6)%gS$0klwXK2 zTO67HK=a+>PutFm9(S4c$>jJ<(MbY_9R7lTPKeI&%UtgkJlPPjm6z|{W}&*PG7lr~Y}+dTSmGLc*Dss- z&(=BoQ1&c#Y2CPa<5t6KIRgBj550fn^)_BX>A%O3tBuA^F8`R8-<;8Yd=cZa75&W{ zZGRl#-oH#Rer2GG9mDPG)n)Pb13CA^Gsh62q+)HZ^v}ioizv4bi z9?veDi5@M&e_sFF$GL^)Jg3UPod-6r%*|9x|6)b=X!X2g zdH>m{Z)Kdi#)qU3;|-h7d;B?+&EWd+^8(Yg>KC5gbzQlR`;wgEKgR$Q^&KZW?dQ)c zQ?FP4YI#d{a&~KY%XQPOB`;Lg&omL;Yt8<=)5WP}mVtUkcJ^&`Sy#iO{VQ`b-`weM zo^w_6$bOx!`mEgCSk0Gy0R_|5YWyny2Lx76`Fg-Rc)4G$*DKc@MaB=)D^&kYR8Zg1 zV5Q_~Q1_7K=>FDEb%sn{KCNds%ZzjbgF81c9lg(N7xqP7br!1~DEljGeswrkyYtS{ zP@(-7ejPAf$9Fd$N-6^rz(Bt8adB1U}*{-rsoDlDnrf^!)sb z|CdEAvvXQ0kk+_6jV(r~|H^T@dtrwUg?AXGH?G*awe2ySw5PqZ13QgY7#2?0kuhz%{UdgtG;#e~^3|dT7HVFmFem4MTCRZWQxXH&d^x{^!-q%%-i5eeiz&|8+hwE;Y$n_y0@# zBw6~O^LKP)toiZ5QSA5k_w4HG>S|@_G37hv+O=`NIS?~b_RP(hS;1@U&CRDTceH%P zY8IfZ^WoBzTlOrID-K^?xqk0n+d202anl&y-{0T9XOE5AwoTDCb9`kPuU|eMX`*qQ zYkP&-|3!=OJ;~2h@RraxvZpRpV|W^iF1oTU*4GPUh)0iTpht_ zy3xln5_45~&-7$)PB&JIFj?kqvOH$yz4W79qMJ-F8)x3%XWMV=l+x)ZSdl68w*SfX z2lo39J!bmw{d>E1__`C59v*CFpD=gs*&}Q>b{yV!C9y!Sc#&(8|EYivo6Ax^ojZTN z-MwG#4`9hJJ{Ro17R+CFJ>zd&yPc{VdUFNa=oy1pQ* zK&x12&bc``feYqXv4*7G``7aF@^bBK)-^v0?&)3>JK~#cb~v6>n!uwrKP1yqeQZOeSA`qEVJ9p z70v5KDzeUO-_QT=u)0mZ&Fd1Y8K&9O7OB0vzkmM<{kYre;(SUk`O^J2bG$h}izjri zk?VO|HeRVEH~#p|G-BNnr7L_s()bTgc_YW86@e)eHtbdS8Ld4zUUu4xi;LY4o<7~( zS$fg>K*<&<{*?0@ID9(aYW@1A?(6?=U(j4hNy$6)`X5$GzEj<^qF1#(<5ltGsAqM4 z^K4dn^vyEO?mCvX2=zKXoQy*+<^*0bgde0O_g{`x*x zeefxNY~hKGe-bb3sVuJe{H#~UvFyza#;~w3pEYrdo8vMp^UlxA4J+Z!ciL(2^X9Ev zhvwNzl+(NAo=Uxzisyx?F?NP6S?uHZP^=%9lLk0PIBn`aFX|xSB&a8 zsi=Q7?fL(gW=U7e*;H&;p1L{1 z&*bCJZ*QY-&dR&D$5VJg)*rtI&*saejvt*L>t*@`IKh0X`?C{HaV}}kb+qjS#RqXLTs?+bij|DX6?YJv92ZQuUy|DJSiOYZHmTV-)K zw&g}AZkC)v)e0sXR>-BZ9cc(EJ$y6y@SnO!g zUgRjpa_gDz^=|9$f2U~#Hi_H`sXXEH>hkjb!U)s)%8!MspC-A!=+9@7U+`jWh~49^ zvyRPdfjRTfW-oYlf9>zqhaCS|-7P|1tzTaIJD#f{+3*PGV?K5Nd1q$v$JhTg-J2Qw zey6Ky+VrfyM=$;V_s2~jaOLcWye%nngI*NBxUewK-YsyOm*3P=?-S4SPpF-C>0kVV zmW}FDB&vUX(Om74#+PzUC-Uf?Fzus+9+J->nW`zsvEF_fAi> zz7q3|?N3WN1Q?idN|_h~1U*YX=6rp!$hF(2wvlaVbT_~Ae)0M3YYRE;8a_)0ZJPP8 zQsi9B-YV1RyH?fTa_qjmwCnp|ck5!te1=Pn3ueCA!~7;r@gh6F+=jcsTeGj5mAP$x zE_PUYuf82;{Bt25w@cd9*JRqBUtJyE&s%$MU+ry!p4aR83LG398eQzKtz&+}={QyK z!^+8S^VUahezx^A$0?CDTF(v?*4o$n%}!*S6nE4|CjQW#%Fj2}o2#iE3tW8VA%}gl z@|_7KGZJnxwk>x5Hd&m-GVg9+Nr_1-cYJn}Q<=)~MOnQ<#mZ(Km1d6Tx2?BhIJdQM zGndKNpt>cEV)sor?7I$75S!XRv+08Z1wd0nB!rhr`I<% zlsEBW;lHDaJ0?tWaRPrrFVE0I5)&@^Qek=E9|GE%GxQbyj^?-|YJg&-d)v^J$V^wBmvP-p49f+1Q>nFF5U| z#=!P;Q<}iu&Zh#p!6vR-Up(lm?zxz_eMNjShc^4-s2h`b|J3h3yzb6Q&wsn-&yV-? zWH|IcTCu@=>$FCO?Q?w?EGE23h@29r%{xuEBkQ8y+x?<{t={>H2G002!Q7wo+PCAq zhxvZEX0nK$u$;^AeFE<~mt8s^|4(yTz@a>~aY4IZe2s0v1BYvOZfs8PcUl-37Ra1< zF>da+&UWA@k04YlI( z{={0o(=}su#l^js8&fiF=IlFh%wk{BY3|>pGIljHCO(#6Qc0K?*CESP!MsnSWwF%) z@ji71gW6vupIC47tbQYE;JR~DqLLI}{_}I}@rpv7o042#YtBs0$Vjx_$Hp)Brh@52 zQOEQT$hVZk`M8Zr$_w6o!e`+sNOrPTJj9W=7JKhyN z5zT79;H7LACNC;_lyA3H<)@TOHo>*be;Dnz8NM{CiHr|r`tw?z<%h4ZL+v@ce?61d zFtM)gxUfQZk*=2A=cnrzeBzn?L&;~ZmFY`K--i4D9UJObnjNZOuB+Ig#iE+Qr1F(3 zVF^ceQ-Y#wJ$J$y&x=C6u7N2vg~}W1HWA9B7wo z;t%k&K6sM-+$xo0Y3Js={IvPv%473(Cmd{=Qv7eLaE!muf$K($0&Ke6j{GK!lP)av z7Oy(J**Se<_nD>t*nd^t>=f0wd*Rf48~zU*EGu&7GF)O=bW>}?+`KF%mG}E?>;KtA zx3DeRVZwiKru}U5e7~P-)DFa|99k7+-l)R3V!05@ju~?pq!zpNDlJWJ&(NH$+;g+^ z*O$z)iu_ZqaqA@MoU_=d|1@JXYbzP28QFNj6v(7KvjLX{F6y;Q{-%`HuRa_ z`&V;zzj61&b5&JUVv|@tY;$7Z{~2Iaa_x z;c%U#!yB~CK89{i^JSKt#c(27 zS4EbMX^qf>`xO=w+)gV_F*#D9)5UhJXVdlrI|?7`oIcu=9hO&9Q}gP4_8;BnOunkJ z$L=?KEY}ruh?CBLD8*?m*R!-Sc27?6shP&Cc^}_BAXQM5x!7j*Qdimin|xeKZ{&R5RrdcAhfXY-t|6SUp zH!kxr+B`Y@@}uOe7YP~e7NuMA?#?Xek&_Kmq>fo5#xdWJ)DPrAt_P2>MPXO6`|=iC41Pd?{$ z_iK{Vf*h3>x(dvH8VvUQ{eK}%fPaQ%j9|1;>akC`VLvD41Y5`7{$H=ed?(ti;odW4 zhZ+?P0S|Xi*0<~{9xm>;OA`GxJ-)8;s&32ygLcsxdLt&>*)B{)clwrUAEMD{wviBuTT7&ZuR=K^?^Og zZ*&iP&eW7&5GJwQd6E5}56qhSyLXEh)?fY0Y*WG*lk~@a^B%@MmFzRhTWpt_&%Jp6 z{(iM}Gp&D#J#ftSOx$H~>MZj~)30?*vj1utZf#9lvief_*C(KhF^K5TV`?SB}qf^P78-agyWdGjOI6MDK z4eN@(1sQA#)J&9Y(2k4qQlcV9Tk)%mRd?+5jKHr5l)MUAEM7arO$nrMZu z^O>zOb?SVnN8VF34xYaD!~593=@b3D?(%HN`xjx{e2MvH#&;o(4<7fKY(70df42=hgRz-z~WO_rLtz+b<86*L~~wS1zXOl=S21`h(&}!xGrLt|Z7G>SexXkiYbT ztA14=NBeroKk2u6_2)Y_r`~7`-TOmyDr1T99^Oc)3D&nfN@Q-lm|ScBU6}V!UtV1; zv&&VU^#}E)SkCZ|5R(u*wlDg}FQr?nSFPn=cs4)e><6VcPJKEB>3pl~SLI%6t9_?_ z@jv4tTaQCYCTHI>_)ln539(qgA0cL-ly={@&hF)+dZBBHc^%KnS4@4VdZW=sc;W2H ztZz0q_jo-2$8xKF^Xt!ji!5)nF69WTJO9UyQDd{pU#nmCc>oCiCXN zBa5v1`wUe|TclDLr5;5Gas7R+Gu5drx8gT{wA?$TTTMD^4&4#hTA%Wosqlm&>+yXY z&u20AG+*N1W*r>1-_3-zvZKG~UHvltYjKS#B0C%xo<3NA_8MDHV%onoKkC?Z=f<0` zYDRF@fA}h~x#5=b7RE}A%~9%0FWB=(a7l*!`qM3a_q|F~6I0F#Tl?g`e-Eu)rzo_J^$I&IiQ6_$92PF<4tWAtgabJP5l@6dHy6uwN16lTV2fE zHKA|I$KC~saSdk|h|HQdZ=X)zKTbA@BP?yThi;!=zHHe#om-7IIftB7dh=O$H|n)+ zTfh>!GoL~D&*5K<|C_J={lBDqPk#oR*M_Cu^EssMpYUENtKmF%%eM^A{In(kpFhtx zw0#k|$TcNV{m>=#UqK$et(OAY*wiX^8aL)n73kUbVAehJ4z~q7lBQof_kHQi+B_#p z;j}Yr)Qksz%_Ki<=sbV?g4^x*4_$SeqrWV@priA;u0gg|Jf-pR=NSiPJ(_%WU&s80 zAE73Nf$QJJx7|G9HQ(@!#MQqJy=yN|pBic>-9PWg)O+$9Zj`ECWC;nmYkzI-yuh!_ zuP3xtFg3jixm8bTj#07p^((w&Zy670)OC_pSapJLdB;;rgUM!t+1&yKjEiVsf|S z#pgK&+atMLqeosV1W-Ci&aoEHT%`_|r^nytFqO7Oq%Q>iN6{6k0N zlbEhbEMF)!qhaO2Sc`@Bc2c#CSATyguzx!1ZgA&*uFR_+X8kxUm29fy>&O{($>gF# zY@_h+!1XFp^=1aYc0Ex{u5Vh)8(!9%Cw*!{&|*LHw}v0vXF2FjQ(eg5+c^2wLj4N1 z#h3Q44t)7zQ{zS9JKNg!7w67<{Oa$r#SES|T8=Wh&rM_6nzV;+_k?!01g5Oh(UW=i ziKQ_Ac<-^f@#6GizUMpc&bgn!`@F0ucg_dt3E}+fBW#*o^^6;DS)1@@Z{Uqwv2)T2 z-skF%_DBf-N&Zqk^QLmwlR4gtwaqOGb@g7n`YU!tf&2Cbw$BE&8{YD!HEDJn?8@rv zKF8wJt}C)#Rl3G;Q{yicD`O{@r+sshufM4Cv|Ap(u5s1(?o~Hq8zp>XWB#Nu*(ydg z`GyKz4K=$lx!QB3bNy4@dA#{7i8mxr%D-51pJ!8}$>_5_EU|8(mjKTXT~XDs(E>-y!yX|(D|WP{}FFD}=` zk0eMwn$Ti%Wx?Z3j?+0xrIoI-KMii(S;2mSL+sv|5@)4Tyv$6_g%eZ`Fyt@-@^`x&kDE_ z7~gB*9`@>3UMMljN&Z4&*>mPV6z8!RYpX)qRQJ>zD`2|YXglrzKUU}}l zrFnko=RfO&>eyFJXctjQ5EVNn@%1drza1gIUDpz&F9kHr%4gC0v~|ag^UoI5b1Q!d zsa)c{{zXLd+Pe9ocnoAH5{b2CC2(z?D?p6BYVxw1Nz-& zA@u?hiUy4rY)fBVaWy#n*YoH5DbBN06`$O%;)76h{?VOGs_4<-)Del<2Ug=+-&_A0q2bTC&^!Y?C=~-aZ^h(g{LQ9`n zlLFI1oeF`#Pj5M%@8)>%zOL*8@4^@TI-A-#?wM|`pPoGZ`+@38j`uI6)~&pH=)Hrm z*Q#Up*H28IoIGV})DGd}b(-Jpw!A2v8Qh|yqR9AK?a$-<773k0T1P@FMN(R4 zX-%wgo+IXbV)J>GRi|`kZ}M<4{+rA4!+K}2?~xU!)pG@Mrx<*>zVki*qN;{JefJf= z<)3~(EqOxn!x?$1$JK5-ZF#V8vDchcUEdsM3b%(ww9MfAzeD<<>FKPRRhtj3OKTp+vTt<9$+)*~!g0f{&d$_nmi`vwm_$kEPw&{rjI89q<47{rr#ZZz6xK<%lf! z|5y8axqaEhKdawW-#>l6YV9ANiWz_SG}C{~6%S7mxAOWD8+tFq=HmNT8S9VDT({Gf z^N_jn9CH=zH3!&KLefq+GM)n-)4mbqDJ`}|C6 zDD60Grm|Hrq-}*G^R1>1F~#?q&LwS!{_=b`{@!$-nRmrXj`ghbTXH)N@6xZD@oACm zj2F7v6=@BY5e=#lp=~#sVm%z$iYBxxOcXcN6p8h$hz=?Gk6$1npcts8v<-=Cj=wP+T^nP0}&7XNJ+q zrewnwR>#ih8No{8%bbtA3_*8t*cliUsytmBLn;{G%w?XS<0;VQ ze*WI=x$oAUvAexZ(&F|uNxSxQ+j4Jj%f0>W?YGrE(}e@qC+*#AY$&+l|M75 z&J4X6EwSogf`J4NTQigr)m8P5T*)(GQ_!X4rMD6UDpNNe6_bA0v2EY7=NF4ZX1$a# z=-3;tB);*S#p9mfj*hiw^CAyyN|8CPEp$<iR+(?f6o1P_RS}$%C$0wgI@4v zFWq%s!eEB>b89$lQb{+ntBDnXY&;01RO@C5YZGMVUeiq9t%pW3P0`tCy-r$mmzqVSIuW}nX(_s`2* zmLZpR??MraVC-3+^-=o*8P$0g1)u-9DyBK6JC!;4%$=g%X-(aaj})*)te?2=$^RIa zqi3RpFG@=F*1z$a5~uP%Ucu<{!u_v>|Cj!XIym35rtV7QbDo`PJHNeq$7#&$sh5v+I2lBK?YGCOb{)_?B+g zU!wfW&;D(O;jTT^ALbmiQTnczoS=Edp=!!sljR;RtE2QLIc=J*F+ZgipI7t+)pj*-1qa`gY!B3rzCc6b?PqfpYZC8UG?oF7RzjByiB#f zrLENzbLnZx459Yvk8ixOe7$C~-zE{3C2qPwcXn}yTy8m^Us1VH{Aa^so_jYwNE@}i zYl^n&PK~%(8QgW|;`s-Vb_h&Zqnm(P#8*}E1*Q>>LY0cAn z4Nq5D`z1PiR?eslPy3~NHBi39s_%oe;M-@SCpI{C?00cdS9rCZFK+n@m${4&SeQla zjkibUecNTjnZc?4vTO^F@ zXSCMHzmU_3wctKn;OXt(ot9B7bTRA9m$iKN_Rkb#`VoG4Vg6!`sMAemE5C2h%$&LQ zw9o$ZxIYC=_t!G#tndriB=TAAXZM+lY-hfN+gaJZ5D=WXzvGZ^Ebo)84|JuHubo`} z;~`6+NN&jL|3#X0N>N9nA9xk9&T+W3aOEOk%fr*!N)xBbUMmTQdrIGYk)+E_GR zf4=;C;0G>^p59KoDaS3+YUeIk!@qdep`3ZM4K2G0s$>~>UI(g(;HlQ|>nWJ^P#S)?zVh?w0jF zb1XKl4V6C>y2jBZ-SJPt1iylbuRJmZC)e*=@aVosrM*Ortw5)6j(*gq|IulCSNvvN zJ2mvr8K3z|zxY|tFdb`&XK^&hUVVjmYv!sWIeP6s4hpPX>U7<*)M2COx1TxBzE%h` zusKej%=LD{yGV!N`B__~3@%%D{9AC2_2chtizSxdSwYxDOlY8 z&F}Eit9C}EX4)^=*!d3`Vi#&~{pUDbAUc=TZOPi_`WOFCOZ2H_2vVHM`fep_jH2mE z{^BiyT=51yB`DAeuSySKLKcgV!Fn;hOJB{nNB zs(*YyN8qH+hWTCfDZz{P@15|`<%^P){Q}27>$e_wJz33n)}#Ds&R^Jfu4K)T+OnVR zk)UtqziAiGdJOgty@{kDW=VqvUBH~G}t;_%{s1X8f&KV z-Tc@QmoJ<$3aSfKf3?2lID50BFW_iUT3?y#NA61@JmIU~ws)AdZ5( z@13am?0?n&@3(LNfAH%+-FR`*{RtBiUR_woY+LhVLfpQZm0Y&9zoxYD$*!utCz!NM z^X03HQ}-Nx5w-7OqreR|wuFlhnbQ*fPvPFtsJuhUK(g-Cp#?o30_$5H1O9Lq{|j?l z^Jj_2#5sKOc0TX#@4wC|qwd(mGV8f;^qmsJ`y9Ih6MPg{B^q3tc_SKU9%q#~cr` z!PWLVi=QtO*N-cZeg5_J^^nDGrDs3C3y{`5eX-e3Y?g>XuX!X=6Gn8W9);~A0p%1?f1|0IVGfg{hutK_1cJyPCvfg*;8p8xmN7#ETNB^FYAeQ z%WK*^t>(%(w2h5>!`mAhom=GZ9JqMFmhqZs-22N}6Quqw z53MdVv-7X;nQ3&(S2%0wKgrn_{wZDFxBP%wPWA={X@jB-&B8kx7hjy6WUl1eC2~JK zae~yp4L|nJ;Q3y&E5^^N@)OJT&U<^S-Hp@Fscg0k*{s%V%$l2~cyiq$<9+Q1#B#C> z7=$-4DzjT#G|uKRcNf@gze1|!n)qf%`&C^ct}j(jKZrg(O}C}cz?$^0?i-m%qtJ{uVQlT zyy>&8SzoMs=CiZ2)qS)s<~*7zVtn+Z2Y2`R<*KS;KSLG>@2XsS+qs>ub5dCWgZN6m zQwoANhiqvyZGWP+kr#zh3dOcs(3W0PGIAe z;&`0Br_wn6+?xCqtgL}oOTK1!t$b>-^$XW}7Avh~Ygy-7S#RLwX|iFxk^1+lmenEi zL#^D;gFZ+23qQC&W08r^!{A8%{p!B6o@_pxdU=`ec?#mv$XjT4Br(_GaxL&|C zoj>ax-l-hTaCte^WY-xff0pcp&A-2$pJmD&yQd{n` z`T>6!Q?AbMoA+Hhg}A&I<=@-0a9!-~g6pkqGghiv?=)TW#;PA=%JSXS-}C0{)-r8A zliqrGo!=WK`EMD_3C|N&_2oAF+jRdg^Gu7vMH^JAo}Lmd+8ukRH1kpVayeD8%Lg_| z@AKRx9`CX8aq82TExI>ErrI@zCOyC2a2-~RJc|GX~@|H4F4m%X_@-=RxP*J*qH zeX%pQ_Bb6nId{tu={-5i%&siIb1YwQ&BJ|v6PdRqOm1hDX#D#Bcaum+)3k%_wl7&% zEMD?|hR>;}oBJ8El5^hP+Inb4_2D*N5p}eB{m0Fl&Ks%Hf3tZV}=PhIaGy zc{y+CF>v@tpU7VyvvbnluYX@G?!QrYdrgS?mE|X+zy0VtJ%=NEgV`dUD}U<$d~}~v z_lCE+=7e&7!(Kx}!Ye}OsFq@U;PAY8&n91dIemrx0->Cn!VD{xgyhxrJD6r)+tM#% zd1&6z6@V zlxsQPm#ui(QT&_G%S|8;+y6cCPfI^`*O&P} zLfd#wBz;Zb|Fc7Qr`=0VhCk;;8LkLw+}qUj)Z;=aqr;O48T;#M-)3K5=W24M`1!e; zXJ?!Lzg?xkyh-UrL*AQ4{#q`EJeKBvR;y%`{MZ=^6O4Q}o4jY?etK^1>3iGr<)vp< zem-kHVb3Qm`8^X3y3JW2U0pCm*{^_?m0`Xag9cAj56fI}h7Tr%k6f-f=*R8(QBc!m z*C=ij(crj!G0#cn7!`()k4y~_28r9adY$bR86K<*TH5s{n!%*_nU8+2<^x83ZE>rG zw>{hTFgm649M)J~&l1Go;IEq6#LvMnr(aWl?-!x$717&rws}w0TB$8=^C0!9Q+m;H zZOzsVeZOkaXad&?n#?Wz<(P2u`rWZjyp-c?vhhqN8*Z;X_XgJL@TkQI$4P|d{ZCzvYqUqd| zCmalu%qH_L58WoSmYYF7u*)QKiQ+L{#mLf^msGd8Z%;nXw=OkN_i{6j?1iUJeGCUS z>6jdeI5ll?!fh+%i^Bhy9A0f_VR$E$oPBLgqOw_h&BxZ+w<9;OW#2p@RO0dIbgBOb z@ePSLjO?}MvNt$RaVd6uzLUA(!VJU3HCdY)tR$5Oqa1@kpx~l`wv&zie{RJ2OZlbH?tC8csXvuWJ^4zLmY+s?FsiPxc%ouXXQ!h#ra% zVR9(2%CV5(VN19i#SpN*SK;oi>({O(=qQ#39<{mF@cqrr$ z^2=~ccl^NcU~*#JqAOFlf3P0%+_3s#gpu7+)98bhpP%{e4qqSFA6D?lc;8{;b(=(t zp4P86m9x#{y_v_RWIvy!n9X5}lfT!e74cJE7DRpLvfx|qr1bitmS0Vo#}dbB*XGpE z@rR2&C?pPjjvaKp9*GbK|xTvy1*Uoxcki)d>yN?*! zl^r%;30T80nWcCxw})dr?-FC5elBsnl>A#;E`BVNT*GL2=M$4;#Ny@gG7oNx?0LCj zQbL^?`vWWKoJq!k4J_}48D5n3_|7uvtmSU-n{UUPG{0HgXvt&m+l+QX;^N_K+fJ(- zjA?gz93r8qJ9qWItEDYZbpvM1)Og!=1i7oL!>7-D z{?g+C@^ zU$ncp_sIzEyLoithO{p)0_Qo+FH-I)y=TzFwjuQCZnw{T8|KMRSRgR9GtT&aHFx`| zw??nx;?)mH?RT6+aQPG5fw>BqV4SzXhH1PfA?e6r_1s;ZRdIJjsKVMIgBN|zv|hyq<;MW`Yd}1qo6@g?V;tVfwp(^7Fh{5Cg%Ipb^d)>rE&fL zb)#wav!^&`Hb+H8i7nhEKZAj%I_2Z-^9N6IYyZBy5rY*Q;HCa!pQb4SHQCIg9U z5x?uV7EHRMW4hh`W^Mq>m*l-iLlqk8BSZ{D=KT4`-8xfx!>{1GO@B|u@U9BTOy2S1 z_EWWl_H$9~5}#Uh&PL4G`&i(lvt>6^Tg~;qKh`%_2R}*J(fq`` z*eK@NQFlSscWtw?-h493Y+iVM~q)BArsfJh_8OezQixjoSD6 z>Hl_|Fa9F0z;11%x?eJ_P5VoH@(PZ-T!9D9@fp1-y1Tz>SB&2M)}`m`iVS|A$-h?1 zbihTVHUH+`n~BY5f1P?EU(+yk{=zT2{@-C)Fey=%)oo+pKP`^H`a7zE5;@1O$8UJ} zx9X6o?XPt2y3NyFtQpT2UD@&d;N`^Db649Wn-?k`SR#Jy&y;u-nZ*n?7j7>3GBaB* zfUT-B`SaGOFI$VZx*SUIma};IHMSsorp#;RQ?3>Nw=k5ro=^>B;QW}I(0Xo$sL`Co zo9oUcoIHHj@>l7@8yJo8EjQ#By+UOYoXMS3a%# zo&UUhEAzFq{>0`(LV5qJBcHMHgnj0B{;yo{(&><9f&j;?nvbQ0fevd0yH;H3^jfMC z_F_q-;$gn)zvjPsV^bCWP>5AvrKvq@-@mirU11FpE0}{5CG4W7^sq;5UNs?+JELIv z^oaS>i;ivg^9wav^W%)IqTG|-^R9tEG@me+&6t*`9Wj+tU$1nYdVAX^|C-IJM`9gJ zH#)t2`!?Lc?t`|>>K&qj5^q|z-`}=%Yi#ee^q!bkr%XSdogk2{edX|_t5e=cJ49F~ z{%lATzF#l2^YPzS<0pRo+w6X-@4LA+Kz^#t<2lufTFiwT6PZ6fu9<&obBlJ?@^H4- z!5c(_LKiC9UC?p)5T$l>TgV}W42~IJ_W4>kt>am}%0KX$`tKx5Q%AF7CwqQs6v=Nr zHK8rEW)Hs|bDqu;^*x*P%e3!t$+GS$wQCTq73XyRAKLMtK>cW2sN(+OcefuLQQh)h zJ-zQ)T5VB;;i}J#nL2a#If?v~kF5N1;ry3>Jj<=(LoFD6wC>M8>~;Rn=SBgE1((t{ ztp9A4DDh89X~WdT?H>ZPzx;h)vFdiuy+<=9zdvs;AK<=*f7`Zgr<~7EJN;DJE%1l6 z@WDjo{r{Q!uJ74dzz{Rz>5)vAzAdjOJ$Dpnm?y8n9GajZ$SCz_nUU0ykBS?e)2jb< z*zI4c^nZd^Rpk5gM}Iw;FS6QmlazO?r^*gPrGx83lX9*uYz}>^`19`jNfYH~D6(f| zZPNa~Wcz_r0X#g#A~Pn>VNm)pajFM@+Dc=dzy2?OKELq1SfxIu=IHVtpI&fCr}(XM zzW00mqJtKZX~xHXOJqARzdo?!+<#w76USc?uYW&ZdcJh$<{w@DhEFf@DR{UX*kI8< z>x1juV)?}!InHPQ9a;57Hod~W*KY5QFKZnp+A~=3@&CO1^x_nb5R^Gkl z)f$`FUj|b@9CQ1}>#{)Tv0{RjAmb{wa`)zcMem=pKKs73f6w>*Zu9TDPptQoh zG@HXB@|dt%gJl@M*v5^|Dg#C2!j}ehvmH(JJ&?+K{Gz%3qWkle`!@2gcBt%L>L=Vd z%aE_JE`eu;uM0zde4gMsmH6o+n#xNC-7I>k@=y^&D$L+ zr6Nhd!SdtD>lqE1QHxj~IGroqFSPSur^U9|w4IH)I=OnC>v9U5;$vFs>gUy( z9J2fT=J2<lzTNvj$ESU7z%2grah)|bx%fkP&T$oFR=5i)Zf77?cQ21{C3Cq8i z*iXH`9=b_-!~0uhes#i)>jXj@R&8=I){MJ;^W2QbuU7=d8}RXHpT2x_-zKl~dQVyBu2H=nktnhFeN2i;gj2@8z2E;m-r$;k zp;An+%;1ssqxlCHeDYM;Sw3mo(-r$qn8_#0U%8<^*YZd0W|vhVs}?)X742ws;V_bX zJm)u4OTo4AbwiQT#!JghWcl zJSMS8e;Tg6;QO%g{iOG^lCEmZRX5=~{j0|57Q>SDO#jwr%r4(NZ~u~x{U^4`B;P)k z^LibVd#$kJu9#I?u8Pi|1=5w4Uv_d(j~CxOP5;Zi{|rtM!QVVKR52XAaN%Cuys7`{ zu2z3{_R-n5BV^Zs(%>WU49jk|IpRZ%BUaEdNx%rgwuTb0Er#WAK>DzPn zWWTNrx^l`W#`7tAt(KC{rpePo=51*Cbk8*4eqB%TyTzRn0+L&Nh1R@1$>Dftx$qy8 zmrrkg=;@zav{C7A)0WmxKTdYsU)~X)G<(~->0JFcl~h?|1w;A_&UGDIB-Z4>!4&<0 zL#6pWYhj&?>&3#4C!N&Rx%hG_E%#XH{!OhV-KaX|UFu+VB2us^Rmk$}N7C)6BTdGvkQ;52qI?cW*J8 zruI)-VX#&wC`#b85{Jsg?GpnRoH^%+}$)*fRaUcDM1=o^Pj~U12zG_R{2$e2Jn#WZ2VS zS^Fd6qSFun3(f|7kr~Xp?_h0(Y ze}08e^IK0a{oMRV`u^`!k&_#CveHeDTjS7?7M~v4C}<(h(B_ZXJ%6EefBygpMSseK7tpQ~P9T#o0{L zL)nM;Kg`Q^*unSm_LmHQiI=)sf96YAWe93D1UJ1{I8}nB&2x|80zV_a2{VEZ@SL=o ze`t~0uiDZ{heYhNo94$p-|ANR*72TqztSFNtv%oQe1E;|`}WPqaEqFyvl54>qK&}B z3d0NDMtl=yIIFzu5b|tF)_n2Z?WgtOKRu3hY4+;{KhF|;Fj>$}anGkOYu$eN=nEgN zY6=j1q><~|$+E^^V~I+d$E2`EDM9To0vnxrS9~gWuABBaJ-lMA(E8et-Vd(@?|IDs zo0{aoox~itguLr+-<}Grb7;|Bt+|A1^=9g}3rw1-+aV*r>qO~Qr zA&m9!Zud(r=9_M3ujg`lT;p3%*PCX4`^jhHeQ& Date: Wed, 1 Oct 2025 17:33:14 +0000 Subject: [PATCH 29/63] chore: Release v5.42.0-dev.9 [skip ci] # [5.42.0-dev.9](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.8...v5.42.0-dev.9) (2025-10-01) ### Bug Fixes * **Custom branding:** Update ReVanced logo sizing ([#6029](https://github.com/ReVanced/revanced-patches/issues/6029)) ([ae4b947](https://github.com/ReVanced/revanced-patches/commit/ae4b9474d3fb62528fc21397c19954d31605e9da)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4e3d56b7..4b468419c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.9](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.8...v5.42.0-dev.9) (2025-10-01) + + +### Bug Fixes + +* **Custom branding:** Update ReVanced logo sizing ([#6029](https://github.com/ReVanced/revanced-patches/issues/6029)) ([ae4b947](https://github.com/ReVanced/revanced-patches/commit/ae4b9474d3fb62528fc21397c19954d31605e9da)) + # [5.42.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.7...v5.42.0-dev.8) (2025-10-01) diff --git a/gradle.properties b/gradle.properties index be9ae46ef..5e2632b9a 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.42.0-dev.8 +version = 5.42.0-dev.9 From 9469604fe0db9bfa0dc6918af3acaa16006e8fbb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Oct 2025 22:15:52 +0400 Subject: [PATCH 30/63] chore(deps-dev): Bump semantic-release from 24.2.7 to 24.2.9 (#6040) --- package-lock.json | 42 ++++++++++++++++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0637b7a45..537a7a4fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "@semantic-release/changelog": "^6.0.3", "@semantic-release/git": "^10.0.1", "gradle-semantic-release-plugin": "^1.10.1", - "semantic-release": "^24.2.7" + "semantic-release": "^24.2.9" } }, "node_modules/@babel/code-frame": { @@ -6889,9 +6889,9 @@ "license": "MIT" }, "node_modules/semantic-release": { - "version": "24.2.7", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.2.7.tgz", - "integrity": "sha512-g7RssbTAbir1k/S7uSwSVZFfFXwpomUB9Oas0+xi9KStSCmeDXcA7rNhiskjLqvUe/Evhx8fVCT16OSa34eM5g==", + "version": "24.2.9", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.2.9.tgz", + "integrity": "sha512-phCkJ6pjDi9ANdhuF5ElS10GGdAKY6R1Pvt9lT3SFhOwM4T7QZE7MLpBDbNruUx/Q3gFD92/UOFringGipRqZA==", "dev": true, "license": "MIT", "dependencies": { @@ -6909,7 +6909,7 @@ "find-versions": "^6.0.0", "get-stream": "^6.0.0", "git-log-parser": "^1.2.0", - "hook-std": "^3.0.0", + "hook-std": "^4.0.0", "hosted-git-info": "^8.0.0", "import-from-esm": "^2.0.0", "lodash-es": "^4.17.21", @@ -6921,7 +6921,7 @@ "read-package-up": "^11.0.0", "resolve-from": "^5.0.0", "semver": "^7.3.2", - "semver-diff": "^4.0.0", + "semver-diff": "^5.0.0", "signale": "^1.2.1", "yargs": "^17.5.1" }, @@ -7045,6 +7045,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/semantic-release/node_modules/hook-std": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-4.0.0.tgz", + "integrity": "sha512-IHI4bEVOt3vRUDJ+bFA9VUJlo7SzvFARPNLw75pqSmAOP2HmTWfFJtPvLBrDrlgjEYXY9zs7SFdHPQaJShkSCQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/semantic-release/node_modules/human-signals": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", @@ -7138,6 +7151,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/semantic-release/node_modules/semver-diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-5.0.0.tgz", + "integrity": "sha512-0HbGtOm+S7T6NGQ/pxJSJipJvc4DK3FcRVMRkhsIwJDJ4Jcz5DQC1cPPzB5GhzyHjwttW878HaWQq46CkL3cqg==", + "deprecated": "Deprecated as the semver package now supports this built-in.", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/semantic-release/node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", diff --git a/package.json b/package.json index 4ce37d34e..b38c0f0b8 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,6 @@ "@semantic-release/changelog": "^6.0.3", "@semantic-release/git": "^10.0.1", "gradle-semantic-release-plugin": "^1.10.1", - "semantic-release": "^24.2.7" + "semantic-release": "^24.2.9" } } From e7a1706be4d3eb67ffa905ae4a088dc36f33562d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Oct 2025 22:16:40 +0400 Subject: [PATCH 31/63] chore(deps): Bump actions/setup-node from 4 to 5 (#6038) --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 607ff8293..5a87fdd40 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -35,7 +35,7 @@ jobs: run: ./gradlew :patches:buildAndroid clean - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v5 with: node-version: 'lts/*' cache: 'npm' From aec17b93f7920932ea05f9753d57a64130fc27ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Oct 2025 22:18:24 +0400 Subject: [PATCH 32/63] chore(deps): Bump com.google.guava:guava from 33.4.0-jre to 33.5.0-jre (#6042) --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f55818425..b3d9a0a35 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,7 +10,7 @@ annotation = "1.9.1" appcompat = "1.7.0" okhttp = "5.0.0-alpha.14" retrofit = "2.11.0" -guava = "33.4.0-jre" +guava = "33.5.0-jre" protobuf-javalite = "4.32.0" protoc = "4.32.0" protobuf = "0.9.5" From 6a799110d7c791c6940611bbcab69075ca70f627 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Wed, 1 Oct 2025 22:37:10 +0400 Subject: [PATCH 33/63] refactor(YouTube - Spoof video streams): Add 'supportsMultiAudioTracks' field --- .../music/patches/ForceOriginalAudioPatch.java | 2 +- .../shared/patches/ForceOriginalAudioPatch.java | 6 ++---- .../extension/shared/spoof/ClientType.java | 14 ++++++++++++++ .../youtube/patches/ForceOriginalAudioPatch.java | 2 +- .../shared/misc/audio/ForceOriginalAudioPatch.kt | 2 +- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/extensions/music/src/main/java/app/revanced/extension/music/patches/ForceOriginalAudioPatch.java b/extensions/music/src/main/java/app/revanced/extension/music/patches/ForceOriginalAudioPatch.java index 30a2cb8f2..26589623e 100644 --- a/extensions/music/src/main/java/app/revanced/extension/music/patches/ForceOriginalAudioPatch.java +++ b/extensions/music/src/main/java/app/revanced/extension/music/patches/ForceOriginalAudioPatch.java @@ -8,7 +8,7 @@ public class ForceOriginalAudioPatch { /** * Injection point. */ - public static void setPreferredLanguage() { + public static void setEnabled() { app.revanced.extension.shared.patches.ForceOriginalAudioPatch.setEnabled( Settings.FORCE_ORIGINAL_AUDIO.get(), Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/ForceOriginalAudioPatch.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/ForceOriginalAudioPatch.java index 762a77352..8ae454e69 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/ForceOriginalAudioPatch.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/ForceOriginalAudioPatch.java @@ -10,14 +10,12 @@ public class ForceOriginalAudioPatch { private static final String DEFAULT_AUDIO_TRACKS_SUFFIX = ".4"; - private static volatile boolean enabled = false; + private static volatile boolean enabled; public static void setEnabled(boolean isEnabled, ClientType client) { enabled = isEnabled; - if (isEnabled - && SpoofVideoStreamsPatch.spoofingToClientWithNoMultiAudioStreams() - && !client.useAuth) { + if (isEnabled && !client.useAuth && !client.supportsMultiAudioTracks) { // If client spoofing does not use authentication and lacks multi-audio streams, // then can use any language code for the request and if that requested language is // not available YT uses the original audio language. Authenticated requests ignore 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 96299facc..cfd79b972 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 @@ -31,6 +31,7 @@ public enum ClientType { "132.0.6808.3", "1.61.48", false, + false, "Android VR 1.61" ), /** @@ -50,6 +51,7 @@ public enum ClientType { "107.0.5284.2", "1.43.32", ANDROID_VR_1_61_48.useAuth, + ANDROID_VR_1_61_48.supportsMultiAudioTracks, "Android VR 1.43" ), /** @@ -69,6 +71,7 @@ public enum ClientType { "132.0.6779.0", "23.47.101", true, + false, "Android Studio" ), /** @@ -83,6 +86,7 @@ public enum ClientType { "0.1", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15", false, + false, "visionOS" ), /** @@ -107,6 +111,7 @@ public enum ClientType { "19.22.3", "com.google.ios.youtube/19.22.3 (iPad7,6; U; CPU iPadOS 17_7_10 like Mac OS X; " + Locale.getDefault() + ")", false, + true, "iPadOS" ); @@ -180,6 +185,11 @@ public enum ClientType { */ public final boolean useAuth; + /** + * If the client supports multiple audio tracks. + */ + public final boolean supportsMultiAudioTracks; + /** * Friendly name displayed in stats for nerds. */ @@ -200,6 +210,7 @@ public enum ClientType { @NonNull String cronetVersion, String clientVersion, boolean useAuth, + boolean supportsMultiAudioTracks, String friendlyName) { this.id = id; this.clientName = clientName; @@ -213,6 +224,7 @@ public enum ClientType { this.cronetVersion = cronetVersion; this.clientVersion = clientVersion; this.useAuth = useAuth; + this.supportsMultiAudioTracks = supportsMultiAudioTracks; this.friendlyName = friendlyName; Locale defaultLocale = Locale.getDefault(); @@ -238,6 +250,7 @@ public enum ClientType { String clientVersion, String userAgent, boolean useAuth, + boolean supportsMultiAudioTracks, String friendlyName) { this.id = id; this.clientName = clientName; @@ -248,6 +261,7 @@ public enum ClientType { this.clientVersion = clientVersion; this.userAgent = userAgent; this.useAuth = useAuth; + this.supportsMultiAudioTracks = supportsMultiAudioTracks; this.friendlyName = friendlyName; this.packageName = null; this.androidSdkVersion = null; diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ForceOriginalAudioPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ForceOriginalAudioPatch.java index 5540b670d..ed65e7fba 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ForceOriginalAudioPatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ForceOriginalAudioPatch.java @@ -8,7 +8,7 @@ public class ForceOriginalAudioPatch { /** * Injection point. */ - public static void setPreferredLanguage() { + public static void setEnabled() { app.revanced.extension.shared.patches.ForceOriginalAudioPatch.setEnabled( Settings.FORCE_ORIGINAL_AUDIO.get(), Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/ForceOriginalAudioPatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/ForceOriginalAudioPatch.kt index 0f5d8f1ac..5c0d8c907 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/ForceOriginalAudioPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/ForceOriginalAudioPatch.kt @@ -59,7 +59,7 @@ internal fun forceOriginalAudioPatch( mainActivityOnCreateFingerprint.method.addInstruction( 0, - "invoke-static { }, $subclassExtensionClassDescriptor->setPreferredLanguage()V" + "invoke-static { }, $subclassExtensionClassDescriptor->setEnabled()V" ) // Disable feature flag that ignores the default track flag From a62ee43441b197f5c8352ae373bb8919ad66f0bd Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Fri, 3 Oct 2025 00:05:23 +0400 Subject: [PATCH 34/63] fix(YouTube - Spoof video streams): Resolve playback dropping frames (#6051) --- .../shared/spoof/SpoofVideoStreamsPatch.java | 2 +- .../patches/spoof/SpoofVideoStreamsPatch.java | 22 ++++++------------- .../extension/youtube/settings/Settings.java | 2 +- ...oofStreamingDataSideEffectsPreference.java | 15 ++++++++----- .../resources/addresources/values/arrays.xml | 4 +++- .../resources/addresources/values/strings.xml | 1 + 6 files changed, 23 insertions(+), 23 deletions(-) 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 8275f9c71..a1de3d0be 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 @@ -39,7 +39,7 @@ public class SpoofVideoStreamsPatch { @Nullable private static volatile AppLanguage languageOverride; - private static volatile ClientType preferredClient = ClientType.ANDROID_VR_1_61_48; + private static volatile ClientType preferredClient = ClientType.ANDROID_VR_1_43_32; /** * @return If this patch was included during patching. 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 da200ef67..e9672d1ff 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 @@ -18,28 +18,20 @@ public class SpoofVideoStreamsPatch { * Injection point. */ public static void setClientOrderToUse() { - final boolean forceAVC = Settings.FORCE_AVC_CODEC.get(); - - // VR 1.61 uses VP9/AV1, and cannot force AVC. ClientType client = Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get(); - if (forceAVC && client == ANDROID_VR_1_61_48) { - client = ANDROID_VR_1_43_32; // Use VR 1.43 instead. + + + if (Settings.FORCE_AVC_CODEC.get() && client == ANDROID_VR_1_61_48) { + // VR 1.61 uses VP9/AV1, and cannot force AVC. Use 1.43 instead. + client = ANDROID_VR_1_43_32; } - List availableClients = forceAVC - ? List.of( + List availableClients = List.of( ANDROID_VR_1_43_32, VISIONOS, ANDROID_CREATOR, ANDROID_VR_1_61_48, - IPADOS) - : List.of( - ANDROID_VR_1_61_48, - VISIONOS, - ANDROID_CREATOR, - ANDROID_VR_1_43_32, - IPADOS - ); + IPADOS); app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.setClientsToUse( availableClients, client); 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 cfe87af71..e8c21aca1 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 @@ -356,7 +356,7 @@ public class Settings extends BaseSettings { public static final BooleanSetting EXTERNAL_BROWSER = new BooleanSetting("revanced_external_browser", TRUE, true); public static final BooleanSetting SPOOF_DEVICE_DIMENSIONS = new BooleanSetting("revanced_spoof_device_dimensions", FALSE, true, "revanced_spoof_device_dimensions_user_dialog_message"); - public static final EnumSetting SPOOF_VIDEO_STREAMS_CLIENT_TYPE = new EnumSetting<>("revanced_spoof_video_streams_client_type", ClientType.ANDROID_VR_1_61_48, true, parent(SPOOF_VIDEO_STREAMS)); + public static final EnumSetting SPOOF_VIDEO_STREAMS_CLIENT_TYPE = new EnumSetting<>("revanced_spoof_video_streams_client_type", ClientType.ANDROID_VR_1_43_32, true, parent(SPOOF_VIDEO_STREAMS)); public static final BooleanSetting DEBUG_PROTOBUFFER = new BooleanSetting("revanced_debug_protobuffer", FALSE, false, "revanced_debug_protobuffer_user_dialog_message", parent(BaseSettings.DEBUG)); 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 9dee0b0c5..919aed6c6 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 @@ -83,12 +83,17 @@ public class SpoofStreamingDataSideEffectsPreference extends Preference { String summary = str("revanced_spoof_video_streams_about_no_audio_tracks"); switch (clientType) { - case ANDROID_VR_1_61_48 -> - summary += '\n' + str("revanced_spoof_video_streams_about_no_stable_volume"); case ANDROID_CREATOR -> - summary += '\n' + str("revanced_spoof_video_streams_about_no_av1") - + '\n' + str("revanced_spoof_video_streams_about_no_stable_volume") - + '\n' + str("revanced_spoof_video_streams_about_no_force_original_audio"); + 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"); + case ANDROID_VR_1_43_32 -> + summary += '\n' + str("revanced_spoof_video_streams_about_no_stable_volume") + + '\n' + str("revanced_spoof_video_streams_about_no_av1"); + case ANDROID_VR_1_61_48 -> + summary = str("revanced_spoof_video_streams_about_dropped_frames") + + '\n' + summary + + '\n' + str("revanced_spoof_video_streams_about_no_stable_volume"); case IPADOS -> summary = str("revanced_spoof_video_streams_about_playback_failure") + '\n' + str("revanced_spoof_video_streams_about_no_av1"); diff --git a/patches/src/main/resources/addresources/values/arrays.xml b/patches/src/main/resources/addresources/values/arrays.xml index f89f52c2d..b2fa4a885 100644 --- a/patches/src/main/resources/addresources/values/arrays.xml +++ b/patches/src/main/resources/addresources/values/arrays.xml @@ -137,12 +137,14 @@ - Android VR + Android VR 1.43 + Android VR 1.61 Android Studio visionOS iPadOS + ANDROID_VR_1_43_32 ANDROID_VR_1_61_48 ANDROID_CREATOR VISIONOS diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index a23b530ae..0bdd13f86 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -1687,6 +1687,7 @@ Limitations: • Audio track menu is missing • No AV1 video codec • Stable volume is not available + • Playback may stutter or drop frames • Kids videos may not play when logged out or in incognito mode • Force original audio is not available From 26117e744ce0ef304dfdaad9c3ece053f9d7ba75 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 2 Oct 2025 20:09:02 +0000 Subject: [PATCH 35/63] chore: Release v5.42.0-dev.10 [skip ci] # [5.42.0-dev.10](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.9...v5.42.0-dev.10) (2025-10-02) ### Bug Fixes * **YouTube - Spoof video streams:** Resolve playback dropping frames ([#6051](https://github.com/ReVanced/revanced-patches/issues/6051)) ([a62ee43](https://github.com/ReVanced/revanced-patches/commit/a62ee43441b197f5c8352ae373bb8919ad66f0bd)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b468419c..ed6e0304a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.10](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.9...v5.42.0-dev.10) (2025-10-02) + + +### Bug Fixes + +* **YouTube - Spoof video streams:** Resolve playback dropping frames ([#6051](https://github.com/ReVanced/revanced-patches/issues/6051)) ([a62ee43](https://github.com/ReVanced/revanced-patches/commit/a62ee43441b197f5c8352ae373bb8919ad66f0bd)) + # [5.42.0-dev.9](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.8...v5.42.0-dev.9) (2025-10-01) diff --git a/gradle.properties b/gradle.properties index 5e2632b9a..836249d0a 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.42.0-dev.9 +version = 5.42.0-dev.10 From b1511c732d30c85bb60415eab1a9dd7dee8a9558 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 10:53:07 +0400 Subject: [PATCH 36/63] chore: Sync translations (#6055) --- .../addresources/values-ar-rSA/strings.xml | 27 ++++++++++--------- .../addresources/values-az-rAZ/strings.xml | 1 + .../addresources/values-be-rBY/strings.xml | 1 + .../addresources/values-bg-rBG/strings.xml | 1 + .../addresources/values-bn-rBD/strings.xml | 1 + .../addresources/values-cs-rCZ/strings.xml | 1 + .../addresources/values-da-rDK/strings.xml | 1 + .../addresources/values-de-rDE/strings.xml | 1 + .../addresources/values-el-rGR/strings.xml | 1 + .../addresources/values-es-rES/strings.xml | 1 + .../addresources/values-et-rEE/strings.xml | 1 + .../addresources/values-fi-rFI/strings.xml | 3 ++- .../addresources/values-fil-rPH/strings.xml | 1 + .../addresources/values-fr-rFR/strings.xml | 1 + .../addresources/values-ga-rIE/strings.xml | 1 + .../addresources/values-hu-rHU/strings.xml | 1 + .../addresources/values-hy-rAM/strings.xml | 1 + .../addresources/values-in-rID/strings.xml | 1 + .../addresources/values-it-rIT/strings.xml | 1 + .../addresources/values-iw-rIL/strings.xml | 1 + .../addresources/values-ja-rJP/strings.xml | 1 + .../addresources/values-ko-rKR/strings.xml | 5 ++-- .../addresources/values-lt-rLT/strings.xml | 1 + .../addresources/values-lv-rLV/strings.xml | 1 + .../addresources/values-nl-rNL/strings.xml | 1 + .../addresources/values-pl-rPL/strings.xml | 1 + .../addresources/values-pt-rBR/strings.xml | 1 + .../addresources/values-pt-rPT/strings.xml | 1 + .../addresources/values-ro-rRO/strings.xml | 1 + .../addresources/values-ru-rRU/strings.xml | 1 + .../addresources/values-sk-rSK/strings.xml | 1 + .../addresources/values-sl-rSI/strings.xml | 1 + .../addresources/values-sq-rAL/strings.xml | 1 + .../addresources/values-sr-rCS/strings.xml | 1 + .../addresources/values-sr-rSP/strings.xml | 1 + .../addresources/values-sv-rSE/strings.xml | 1 + .../addresources/values-th-rTH/strings.xml | 1 + .../addresources/values-tr-rTR/strings.xml | 1 + .../addresources/values-uk-rUA/strings.xml | 1 + .../addresources/values-vi-rVN/strings.xml | 1 + .../addresources/values-zh-rCN/strings.xml | 1 + .../addresources/values-zh-rTW/strings.xml | 1 + 42 files changed, 58 insertions(+), 16 deletions(-) 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 f62dfc7b2..a3488d272 100644 --- a/patches/src/main/resources/addresources/values-ar-rSA/strings.xml +++ b/patches/src/main/resources/addresources/values-ar-rSA/strings.xml @@ -125,7 +125,7 @@ Second \"item\" text" استخدام لغة الصوت الأصلية استخدام الصوت الافتراضي - لاستخدام هذه الميزة، غيّر \"تزوير تدفقات الفيديو\" إلى أي عميل باستثناء Android Studio + لاستخدام هذه الميزة، غيّر \'Spoof Video Streams إلى أي عميل باستثناء Android Studio تصحيح الأخطاء @@ -637,9 +637,9 @@ Second \"item\" text" يتم عرض زر التعليقات - إخفاء الإبلاغ - تم إخفاء زر الإبلاغ - يتم عرض زر الإبلاغ + إخفاء إبلاغ + تم إخفاء زر إبلاغ + يتم عرض زر إبلاغ إخفاء ريمكس تم إخفاء زر ريمكس @@ -728,17 +728,17 @@ Second \"item\" text" القائمة المنبثقة إخفاء أو عرض عناصر قائمة المشغل المنبثقة - اخفاء التَرْجَمَة - تم إخفاء قائمة التَرْجَمَة - يتم عرض قائمة التَرْجَمَة + إخفاء الترجمة + تم إخفاء قائمة الترجمة + يتم عرض قائمة الترجمة - إخفاء الإعدادات الإضافية - تم إخفاء قائمة الإعدادات الإضافية - يتم عرض قائمة الإعدادات الإضافية + إخفاء إعدادات إضافية + تم إخفاء قائمة إعدادات إضافية + يتم عرض قائمة إعدادات إضافية - إخفاء مؤقت النوم - تم إخفاء قائمة مؤقت النوم - يتم عرض قائمة مؤقت النوم + إخفاء مؤقِّت إيقاف التشغيل + تم إخفاء قائمة مؤقِّت إيقاف التشغيل + يتم عرض قائمة مؤقِّت إيقاف التشغيل إخفاء تكرار الفيديو تم إخفاء قائمة تكرار الفيديو @@ -1610,6 +1610,7 @@ Second \"item\" text" • قائمة المسارات الصوتية مفقودة • لا يوجد ترميز الفيديو AV1 • مستوى الصوت الثابت غير متاح + • قد يتوقف التشغيل مؤقتًا أو تسقط الإطارات • قد لا يتم تشغيل الفيديوهات المخصصة للأطفال عند تسجيل الخروج أو عند استخدام وضع التصفح المتخفي • فرض الصوت الأصلي غير متاح 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 96b4fb149..ddb61efcc 100644 --- a/patches/src/main/resources/addresources/values-az-rAZ/strings.xml +++ b/patches/src/main/resources/addresources/values-az-rAZ/strings.xml @@ -1609,6 +1609,7 @@ Məhdudiyyətlər: • Səs treki menyusu çatışmır • AV1 video kodlayıcı yoxdur • Sabit səs yoxdur + • Oxutma kəsilə bilər və ya kadrlar düşə bilər • Giriş edilməyəndə və ya gizli rejimdə uşaq videoları oynadıla bilməz • \"Orijinal səsi zorla\" ə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 9e18c0242..935ec76ca 100644 --- a/patches/src/main/resources/addresources/values-be-rBY/strings.xml +++ b/patches/src/main/resources/addresources/values-be-rBY/strings.xml @@ -1611,6 +1611,7 @@ Second \"item\" text" • Меню аўдыядарожкі адсутнічае • Няма відэакідавання AV1 • Стабільная гучнасць недаступная + • Прайграванне можа заікацца або прапускаць кадры • Дзіцячыя відэа могуць не прайгравацца ў стане выхаду з акаўнта або ў рэжыме інкогніта • Прымусовы арыгінальны аўдыё недаступны 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 e20e42b09..3ebb4c453 100644 --- a/patches/src/main/resources/addresources/values-bg-rBG/strings.xml +++ b/patches/src/main/resources/addresources/values-bg-rBG/strings.xml @@ -1610,6 +1610,7 @@ Second \"item\" text" • Менюто за аудиозаписи липсва • Без AV1 видео кодек • Стабилният звук не е наличен + • Възпроизвеждането може да заеква или да пропуска кадри • Детските видеоклипове може да не се възпроизвеждат, когато сте излезли от профила си или в режим \"инкогнито\" • Принудителният оригинален звук не е наличен 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 3e6d1a701..864d56a91 100644 --- a/patches/src/main/resources/addresources/values-bn-rBD/strings.xml +++ b/patches/src/main/resources/addresources/values-bn-rBD/strings.xml @@ -1606,6 +1606,7 @@ DeArrow সম্পর্কে আরও জানতে এখানে ট • অডিও ট্র্যাক মেনু অনুপস্থিত • কোনো AV1 ভিডিও কোডেক নেই • স্থিতিশীল ভলিউম উপলব্ধ নেই + • প্লেব্যাক আটকে যেতে পারে বা ফ্রেম বাদ দিতে পারে • লগআউট করা হলে বা ছদ্মবেশী মোডে বাচ্চাদের ভিডিও চলতে নাও পারে • মূল অডিও জোরপূর্বক উপলব্ধ নেই 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 10e706ea7..c500e47c5 100644 --- a/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml +++ b/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml @@ -1610,6 +1610,7 @@ Omezení: • Chybí nabídka zvukových stop • Žádný video kodek AV1 • Stabilní hlasitost není k dispozici + • Přehrávání se může sekat nebo ztrácet snímky • Dětská videa se nemusí přehrávat, když jste odhlášení nebo v anonymním režimu • Vynutit původní zvuk není k dispozici 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 7bc6b8c92..79182d697 100644 --- a/patches/src/main/resources/addresources/values-da-rDK/strings.xml +++ b/patches/src/main/resources/addresources/values-da-rDK/strings.xml @@ -1612,6 +1612,7 @@ Begrænsninger: • Lydspormenu mangler • Intet AV1-videokodek • Stabil lydstyrke er ikke tilgængelig + • Afspilning kan hakke eller tabe billeder • Videoer til børn afspilles muligvis ikke, når du er logget ud eller i inkognitotilstand • Tving original lyd er ikke tilgængelig 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 edb4d484d..b018f4faf 100644 --- a/patches/src/main/resources/addresources/values-de-rDE/strings.xml +++ b/patches/src/main/resources/addresources/values-de-rDE/strings.xml @@ -1607,6 +1607,7 @@ Einschränkungen: • Audiotrack-Menü fehlt • Kein AV1-Videocodec • Stabile Lautstärke ist nicht verfügbar + • Die Wiedergabe kann stottern oder Bilder überspringen • Kinder-Videos werden möglicherweise nicht abgespielt, wenn du abgemeldet bist oder den Inkognito-Modus verwendest. • Originalton erzwingen ist 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 52b072bba..88f27c5b2 100644 --- a/patches/src/main/resources/addresources/values-el-rGR/strings.xml +++ b/patches/src/main/resources/addresources/values-el-rGR/strings.xml @@ -1609,6 +1609,7 @@ Second \"item\" text" • Το μενού «Κομμάτι ήχου» λείπει • Δεν υπάρχει ο κωδικοποιητής βίντεο AV1 • Η λειτουργία «Σταθερή ένταση» δεν είναι διαθέσιμη + • Η αναπαραγωγή μπορεί να κομπιάζει ή να χάνει καρέ • Τα βίντεο για παιδιά ενδέχεται να μην αναπαράγονται αν είστε αποσυνδεδεμένοι ή σε λειτουργία ανώνυμης περιήγησης • Ο εξαναγκασμός αρχικής γλώσσας ήχου δεν είναι διαθέσιμος 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 8cdcce5c5..05998beab 100644 --- a/patches/src/main/resources/addresources/values-es-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-es-rES/strings.xml @@ -1601,6 +1601,7 @@ Limitaciones: • Falta el menú de la pista de audio • Sin códec de vídeo AV1 • Volumen estable no disponible + • La reproducción podría tartamudear o perder fotogramas • Es posible que los vídeos infantiles no se reproduzcan cuando se cierra la sesión o se está en modo incógnito • Forzar audio original no está disponible 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 3300b1aa9..3ceaec10d 100644 --- a/patches/src/main/resources/addresources/values-et-rEE/strings.xml +++ b/patches/src/main/resources/addresources/values-et-rEE/strings.xml @@ -1610,6 +1610,7 @@ Piirangud: • Heliraja menüü puudub • Puuduv AV1 videokoodek • Stabiilne helitugevus pole saadaval + • Taasesitus võib katkendlik olla või kaadreid vahele jätta • Video lastele ei pruugi taasesitada, kui olete välja logitud või inkognito režiimis • Sunni algne heli pole saadaval 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 995fb9ab8..4f9b72353 100644 --- a/patches/src/main/resources/addresources/values-fi-rFI/strings.xml +++ b/patches/src/main/resources/addresources/values-fi-rFI/strings.xml @@ -109,7 +109,7 @@ Napauta jatka-painiketta ja salli optimoinnin muutokset." Naamioi videovirrat Naamioi asiakasohjelman videovirrat toisto-ongelmien estämiseksi Naamioi videovirrat - Naamioi asiakkaan videovirrat estääksesi toisto-ongelmat + Naamioi asiakasohjelman videovirrat toisto-ongelmien estämiseksi Naamioi videovirrat "Videovirrat on naamioitu @@ -1610,6 +1610,7 @@ Rajoitukset: • Ääniraitavalikko puuttuu • Ei AV1-videokoodekkia • Tasainen äänenvoimakkuus ei ole käytettävissä + • Toisto saattaa pätkiä tai pudottaa kuvia • Lasten videot eivät ehkä toistu, kun olet kirjautunut ulos tai incognito-tilassa • Pakota alkuperäinen ääni ei ole käytettävissä 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 4ba8009c2..cce1c246a 100644 --- a/patches/src/main/resources/addresources/values-fil-rPH/strings.xml +++ b/patches/src/main/resources/addresources/values-fil-rPH/strings.xml @@ -1608,6 +1608,7 @@ Mga Limitasyon: • Nawawala ang menu ng audio track • Walang AV1 video codec • Hindi available ang stable volume + • Maaaring mag-stutter ang pag-playback o bumaba ang mga frame • Mga video ng mga bata ay maaaring hindi ma-play kapag naka-log out o nasa incognito mode • Ang Pilitin ang orihinal na audio ay hindi magagamit 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 bf4975277..d4ea1ff12 100644 --- a/patches/src/main/resources/addresources/values-fr-rFR/strings.xml +++ b/patches/src/main/resources/addresources/values-fr-rFR/strings.xml @@ -1611,6 +1611,7 @@ Limitations : • Le menu Piste audio est absent • Codec vidéo AV1 indisponible • Le volume stable n\'est pas disponible + • La lecture peut saccader ou perdre des images • La lecture des vidéos pour enfants peut ne pas fonctionner lorsque vous êtes déconnecté ou en mode navigation privée • Forcer la langue audio d\'origine n\'est pas disponible 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 f508ed916..fdc8de976 100644 --- a/patches/src/main/resources/addresources/values-ga-rIE/strings.xml +++ b/patches/src/main/resources/addresources/values-ga-rIE/strings.xml @@ -1610,6 +1610,7 @@ Teorainneacha: • Tá an roghchlár rian fuaime in easnamh • Níl aon chóidéir físe AV1 • Níl toirt chobhsaí ar fáil + • D\'fhéadfadh an athsheinm bacadh nó frámaí a chailleadh • Videos faoi phaistí uaireanta nach imreoidh nuair a bhíonn tú logáilte amach nó i mod incognito • Níl Éigean fuaime bunaidh ar fáil 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 f4231656b..058a2f9f8 100644 --- a/patches/src/main/resources/addresources/values-hu-rHU/strings.xml +++ b/patches/src/main/resources/addresources/values-hu-rHU/strings.xml @@ -1607,6 +1607,7 @@ Korlátozások: • Hiányzik az hangsáv menü • Nincs AV1 videokodek • Stabil hangerő nem elérhető + • A lejátszás akadozhat vagy képkockákat dobhat. • A gyermekeknek szóló videók nem játszódnak le, ha a felhasználó kijelentkezett, vagy inkognitómódban van. • Eredeti hang kényszerítése nem érhető el 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 ae7e3ad17..bb723e17c 100644 --- a/patches/src/main/resources/addresources/values-hy-rAM/strings.xml +++ b/patches/src/main/resources/addresources/values-hy-rAM/strings.xml @@ -1611,6 +1611,7 @@ Mini-player-ը կարող է գրավվել էկրանից դուրս՝ դեպի • Ձայնային ուղու մենյուն բացակայում է • Հեռացված բոլոր AV1 վիդեո կոդեկները • Կայուն ձայնի մակարդակը հասանելի չէ + • Նվագարկումը հնարավոր է ընդհատվի կամ բաց թողնի կադրեր Երեխաների տեսանյութերը կարող են չհամապատասխանել հետևյալ պահանջներին՝ եթե արտոնագրման խախտումներ կան։ • Բնօրինակ ձայնի պարտադրումը հասանելի չէ 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 88960c8e8..088a6b07d 100644 --- a/patches/src/main/resources/addresources/values-in-rID/strings.xml +++ b/patches/src/main/resources/addresources/values-in-rID/strings.xml @@ -1609,6 +1609,7 @@ Batasan: • Menu trek audio tidak ada • Tidak ada codec video AV1 • Volume stabil tidak tersedia + • Pemutaran mungkin tersendat atau melewatkan bingkai • Video anak-anak mungkin tidak dapat diputar saat keluar atau dalam mode penyamaran • Paksa audio asli tidak tersedia 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 eede11f60..65f0b0551 100644 --- a/patches/src/main/resources/addresources/values-it-rIT/strings.xml +++ b/patches/src/main/resources/addresources/values-it-rIT/strings.xml @@ -1609,6 +1609,7 @@ Limitazioni: • Manca il menu delle tracce audio • Nessun codec video AV1 • Il volume stabile non è disponibile + • La riproduzione potrebbe scattare o perdere fotogrammi • I video dei bambini potrebbero non essere riprodotti quando si è disconnessi o in modalità di navigazione in incognito • L\'audio originale forzato non è disponibile 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 5132fd24b..14b253e79 100644 --- a/patches/src/main/resources/addresources/values-iw-rIL/strings.xml +++ b/patches/src/main/resources/addresources/values-iw-rIL/strings.xml @@ -1612,6 +1612,7 @@ Second \"item\" text" • תפריט ערוץ השמע חסר • אין קודק וידאו מסוג AV1 • עוצמת קול יציבה אינה זמינה + • ההפעלה עלולה לגמגם או להפיל פריימים • ייתכן שסרטוני Kids לא יופעלו כשאתה מנותק או במצב פרטי • כפיית שמע מקורי אינה זמינה 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 c8e96f360..aac14f5d8 100644 --- a/patches/src/main/resources/addresources/values-ja-rJP/strings.xml +++ b/patches/src/main/resources/addresources/values-ja-rJP/strings.xml @@ -1612,6 +1612,7 @@ Automotive レイアウト •「音声トラック」がフライアウト メニューに表示されない • AV1 コーデックが利用できない •「一定音量」が利用できない + • 再生が途切れたり、フレームがスキップされたりする場合があります。 • ログアウト時またはシークレット モード時に、子ども向け動画が再生されない可能性がある •「オリジナルの音声を強制的に使用」が利用できない 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 576a9e34b..040d5e4cb 100644 --- a/patches/src/main/resources/addresources/values-ko-rKR/strings.xml +++ b/patches/src/main/resources/addresources/values-ko-rKR/strings.xml @@ -321,7 +321,7 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니 팟캐스트 살펴보기 섹션 숨기기 팟캐스트 살펴보기 섹션이 숨겨집니다 팟캐스트 살펴보기 섹션이 표시됩니다 - 정보 카드 숨기기 + 크리에이터 정보 카드 섹션 숨기기 크리에이터 정보 카드 섹션이 숨겨집니다 크리에이터 정보 카드 섹션이 표시됩니다 주요 개념 섹션 숨기기 @@ -615,7 +615,7 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니 동작 버튼 플레이어 하단에서 동작 버튼을 숨기거나 표시할 수 있습니다 - 빛나는 \'좋아요\' / \'구독\' 비활성화하기 + 빛나는 \'좋아요\' / \'구독\' 버튼 비활성화하기 동영상에서 \'Like (좋아요)\' 또는 \'Subscribe (구독)\' 버튼이 언급되었을 경우에 해당 버튼에 빛나는 애니메이션을 적용하지 않습니다 동영상에서 \'Like (좋아요)\' 또는 \'Subscribe (구독)\' 버튼이 언급되었을 경우에 해당 버튼에 빛나는 애니메이션을 적용합니다 좋아요 & 싫어요 버튼 숨기기 @@ -1617,6 +1617,7 @@ DeArrow에 대해 자세히 알아보려면 여기를 탭하세요" • 오디오 트랙 메뉴가 표시되지 않습니다 • AV1 코덱이 지원되지 않습니다 • 안정적인 볼륨을 사용할 수 없습니다 + • 재생이 끊기거나 프레임이 손실될 수 있습니다 • Kids 동영상은 로그인을 하지 않았거나 시크릿 모드에서는 재생되지 않을 수 있습니다 • 원본 오디오를 강제로 활성화할 수 없습니다 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 3edfdb89a..0655defd0 100644 --- a/patches/src/main/resources/addresources/values-lt-rLT/strings.xml +++ b/patches/src/main/resources/addresources/values-lt-rLT/strings.xml @@ -1611,6 +1611,7 @@ Apribojimai: • Trūksta garso takelio meniu • Nėra AV1 vaizdo kodeko • Stabili garso apimtis nepasiekiama + • Atkūrimas gali strigti arba praleisti kadrus • Vaikų vaizdo įrašai gali būti neatkuriami, kai atsijungiama arba naudojamas inkognito režimas • Priverstinai naudoti originalų garsą nepasiekiama 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 b63eb6316..c3d85901e 100644 --- a/patches/src/main/resources/addresources/values-lv-rLV/strings.xml +++ b/patches/src/main/resources/addresources/values-lv-rLV/strings.xml @@ -1611,6 +1611,7 @@ Ierobežojumi: • Trūkst audio celiņa izvēlnes • Nav pieejams AV1 video kodeks • Nav pieejams stabils skaļums + • Atskaņošana var raustīties vai izlaist kadrus • Bērnu videoklipi var netikt atskaņoti, kad esat izrakstījies vai inkognito režīmā. • Piespiest oriģinālo skaņu nav pieejams 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 cdeb5a382..f8310b78a 100644 --- a/patches/src/main/resources/addresources/values-nl-rNL/strings.xml +++ b/patches/src/main/resources/addresources/values-nl-rNL/strings.xml @@ -1608,6 +1608,7 @@ Beperkingen: • Audiotrack-menu ontbreekt • Geen AV1-videocodec • Stabiel volume is niet beschikbaar + • Het afspelen kan haperen of frames overslaan • \"Kinder\"​-Video’s worden mogelijk niet afgespeeld wanneer u bent uitgelogd of de incognitomodus gebruikt • Oorspronkelijke audio forceren is niet beschikbaar 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 01af1a19e..6faa4a545 100644 --- a/patches/src/main/resources/addresources/values-pl-rPL/strings.xml +++ b/patches/src/main/resources/addresources/values-pl-rPL/strings.xml @@ -1606,6 +1606,7 @@ Ograniczenia: • Brakuje menu ścieżek audio • Žádný video kodek AV1 • Stabilna głośność nie jest dostępna + • Odtwarzanie może się zacinać lub gubić klatki • Filmy dla dzieci mogą nie być odtwarzane po wylogowaniu lub w trybie incognito • Wymuś oryginalny dźwięk jest niedostępny 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 1f2c6062c..dab1f26cc 100644 --- a/patches/src/main/resources/addresources/values-pt-rBR/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rBR/strings.xml @@ -1607,6 +1607,7 @@ Limitações: • O menu da faixa de áudio está faltando • Sem codec de vídeo AV1 • Volume estável não está disponível + • A reprodução pode gaguejar ou perder quadros • Vídeos infantis podem não ser reproduzidos quando estiver desconectado ou no modo de navegação anônima • Forçar áudio original não está disponível 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 f9f95ef5f..51259330a 100644 --- a/patches/src/main/resources/addresources/values-pt-rPT/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rPT/strings.xml @@ -1610,6 +1610,7 @@ Limitações: • O menu da faixa de áudio está faltando • Nenhum codec de vídeo AV1 • O volume estável não está disponível + • A reprodução pode gaguejar ou perder quadros • Vídeos infantis podem não ser reproduzidos quando desconectado ou no modo anônimo • Forçar áudio original não está disponível 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 9ff4295c7..4d6570aad 100644 --- a/patches/src/main/resources/addresources/values-ro-rRO/strings.xml +++ b/patches/src/main/resources/addresources/values-ro-rRO/strings.xml @@ -1607,6 +1607,7 @@ Limitări: • Meniul pistei audio lipsește • Fara codec video AV1 • Volumul stabil nu este disponibil + • Redarea poate sacada sau pierde cadre • Copiii nu pot urmări videoclipuri atunci când sunt deconectați sau în modul incognito • Forțarea sunetului original nu este disponibilă 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 ff1d064dc..76362f907 100644 --- a/patches/src/main/resources/addresources/values-ru-rRU/strings.xml +++ b/patches/src/main/resources/addresources/values-ru-rRU/strings.xml @@ -1617,6 +1617,7 @@ Second \"item\" text" • Пункт \"Звуковая дорожка\" отсутствует • Отсутствует видеокодек AV1 • Постоянный уровень громкости недоступен + • Воспроизведение может зависать или пропускать кадры • Видео для детей могут не воспроизводиться при выходе из системы или в режиме инкогнито • Принудительная оригинальная звуковая дорожка недоступна 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 85b898e23..a48be437d 100644 --- a/patches/src/main/resources/addresources/values-sk-rSK/strings.xml +++ b/patches/src/main/resources/addresources/values-sk-rSK/strings.xml @@ -1603,6 +1603,7 @@ Obmedzenia: • Chýba ponuka zvukovej stopy • Žiadny video kodek AV1 • Stabilná hlasitosť nie je dostupná + • Prehrávanie môže sekať alebo vynechávať snímky • Videá pre deti sa nemusia prehrávať, keď ste odhlásení alebo v režime inkognito • Vynútenie pôvodného zvuku nie je k dispozícii 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 8aa37376f..f85bab4b2 100644 --- a/patches/src/main/resources/addresources/values-sl-rSI/strings.xml +++ b/patches/src/main/resources/addresources/values-sl-rSI/strings.xml @@ -1610,6 +1610,7 @@ Omejitve: • Meni z zvočnimi posnetki manjka • Brez kodeka videa AV1 • Stabilna glasnost ni na voljo + • Predvajanje se lahko zatika ali izpušča sličice • Posnetki za otroke se mogoče ne bodo predvajali, ko ste odjavljeni ali v načinu brez beleženja zgodovine • Vsili izvirni zvok ni na voljo 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 7662dff53..a7df4ef55 100644 --- a/patches/src/main/resources/addresources/values-sq-rAL/strings.xml +++ b/patches/src/main/resources/addresources/values-sq-rAL/strings.xml @@ -1608,6 +1608,7 @@ Kufizimet: • Menuja e gjurmës audio mungon • Nuk ka codec video AV1 • Volumi i qëndrueshëm nuk është i disponueshëm + • Riprodhimi mund të ndërpritet ose të humbasë kornizat • Video për fëmijë mund të mos luajnë kur jeni jashtë llogarisë ose në modalitetin incognito • Detyro audio origjinale nuk është i disponueshëm 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 d6abc928d..7f531a775 100644 --- a/patches/src/main/resources/addresources/values-sr-rCS/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rCS/strings.xml @@ -1609,6 +1609,7 @@ Ograničenja: • Meni „Audio snimak” nedostaje • Nema video kodeka AV1 • Opcija „Ujednačena jačina zvuka” nije dostupna + • Reprodukcija može zastajkivati ili ispuštati kadrove • Videi za decu se možda neće puštati kada ste odjavljeni ili u režimu bez arhiviranja • Prisiljavanje originalnog zvuka nije dostupno 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 f9ee56b6f..62bc59052 100644 --- a/patches/src/main/resources/addresources/values-sr-rSP/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rSP/strings.xml @@ -1612,6 +1612,7 @@ Second \"item\" text" • Мени „Аудио снимак” недостаје • Нема видео кодека AV1 • Опција „Уједначена јачина звука” није доступна + • Репродукција може да сецка или да испушта кадрове • Видеи за децу се можда неће пуштати када сте одјављени или у режиму без архивирања • Присиљавање оригиналног звука није доступно 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 bcda81d7a..662f075c1 100644 --- a/patches/src/main/resources/addresources/values-sv-rSE/strings.xml +++ b/patches/src/main/resources/addresources/values-sv-rSE/strings.xml @@ -1609,6 +1609,7 @@ Begränsningar: • Menyn Ljudspår saknas • Ingen AV1-videokodek • Stabil volym är inte tillgängligt + • Uppspelningen kan hacka eller tappa bildrutor • Videor för barn kanske inte spelas upp när du är utloggad eller i inkognitoläge • Tvinga ursprungligt ljud är inte tillgängligt 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 723f37762..9cb06ce49 100644 --- a/patches/src/main/resources/addresources/values-th-rTH/strings.xml +++ b/patches/src/main/resources/addresources/values-th-rTH/strings.xml @@ -1612,6 +1612,7 @@ User id ของคุณเหมือนกับรหัสผ่าน • เมนูแทร็กเสียงหายไป • ไม่มีตัวแปลงสัญญาณวิดีโอ AV1 • ระดับเสียงคงที่ไม่พร้อมใช้งาน + • การเล่นอาจสะดุดหรือเฟรมตก • วิดีโอเด็กอาจไม่เล่นเมื่อลงชื่อออกหรืออยู่ในโหมดไม่ระบุตัวตน • บังคับใช้เสียงต้นฉบับไม่พร้อมใช้งาน 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 49a41930c..54dc3841b 100644 --- a/patches/src/main/resources/addresources/values-tr-rTR/strings.xml +++ b/patches/src/main/resources/addresources/values-tr-rTR/strings.xml @@ -1617,6 +1617,7 @@ Sınırlamalar: • Ses parçası menüsü eksik • AV1 video kodeği yok • Sabit ses mevcut değil + • Oynatma takılabilir veya kare atlayabilir • Çocuk videoları oturum açılmadığında veya gizli modda oynatılamayabilir • Orijinal sesi zorlama mevcut değil 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 72a911ff2..44ecb133f 100644 --- a/patches/src/main/resources/addresources/values-uk-rUA/strings.xml +++ b/patches/src/main/resources/addresources/values-uk-rUA/strings.xml @@ -1609,6 +1609,7 @@ Second \"item\" text" • Пункт меню \"Звукова доріжка\" відсутній • Відеокодек AV1 відсутній • Пункт меню \"Стабілізувати гучність\" недоступний + • Відтворення може заїкатися або пропускати кадри • Відео для дітей можуть не відтворюватися, якщо вийти з облікового запису або перейти в анонімний режим • Примусово оригінальна мова звукової доріжки\" недоступна 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 52f99d80c..ade1fb052 100644 --- a/patches/src/main/resources/addresources/values-vi-rVN/strings.xml +++ b/patches/src/main/resources/addresources/values-vi-rVN/strings.xml @@ -1616,6 +1616,7 @@ Hạn chế: • Trình đơn bản âm thanh bị thiếu • Không có codec video AV1 • Âm lượng ổn định không khả dụng + • Có thể gặp hiện tượng giật lag hoặc tụt fps khi phát video • Video dành cho trẻ em có thể không phát được khi đăng xuất hoặc ở chế độ ẩn danh • Buộc âm thanh gốc không khả dụng 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 02acaa3a2..ca23c4f56 100644 --- a/patches/src/main/resources/addresources/values-zh-rCN/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rCN/strings.xml @@ -1615,6 +1615,7 @@ Second \"item\" text" • 音轨菜单缺失 • 不支持 AV1 视频编解码器 • 稳定音量不可用 + • 播放可能会卡顿或掉帧 • 注销或使用无痕模式时,儿童视频可能无法播放 • 强制原始音频不可用 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 3a72056b8..0622ca189 100644 --- a/patches/src/main/resources/addresources/values-zh-rTW/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rTW/strings.xml @@ -1620,6 +1620,7 @@ Second \"item\" text" • 音軌選單遺失 • 沒有 AV1 影片解碼器 • 穩定音量無法使用 + • 播放可能會卡頓或掉幀 • 在登出或無痕模式下,兒童影片可能無法播放 • 強制原始音訊不可用 From 6b2634691423f5ce25a28b3f2fbc420977b81748 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Fri, 3 Oct 2025 10:54:44 +0400 Subject: [PATCH 37/63] fix(YouTube): Resolve UI components not hiding for some users (#6054) --- .../patches/ReturnYouTubeDislikePatch.java | 8 ++-- .../youtube/patches/components/AdsFilter.java | 8 ++-- .../AdvancedVideoQualityMenuFilter.java | 2 +- .../patches/components/ButtonsFilter.java | 16 +++---- .../patches/components/CommentsFilter.java | 14 +++--- .../DescriptionComponentsFilter.java | 8 ++-- .../components/HideInfoCardsFilter.java | 2 +- .../components/KeywordContentFilter.java | 36 +++++++------- .../components/LayoutComponentsFilter.java | 48 +++++++++---------- .../components/PlaybackSpeedMenuFilter.java | 4 +- .../PlayerFlyoutMenuItemsFilter.java | 2 +- .../ReturnYouTubeDislikeFilter.java | 4 +- .../patches/components/ShortsFilter.java | 42 ++++++++-------- 13 files changed, 97 insertions(+), 97 deletions(-) diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ReturnYouTubeDislikePatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ReturnYouTubeDislikePatch.java index dbd1ad8d4..f7c0bee2d 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ReturnYouTubeDislikePatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ReturnYouTubeDislikePatch.java @@ -131,11 +131,11 @@ public class ReturnYouTubeDislikePatch { String conversionContextString = conversionContext.toString(); - if (isRollingNumber && !conversionContextString.contains("video_action_bar.eml")) { + if (isRollingNumber && !conversionContextString.contains("video_action_bar.e")) { return original; } - if (conversionContextString.contains("segmented_like_dislike_button.eml")) { + if (conversionContextString.contains("segmented_like_dislike_button.e")) { // Regular video. ReturnYouTubeDislike videoData = currentVideoData; if (videoData == null) { @@ -153,12 +153,12 @@ public class ReturnYouTubeDislikePatch { } if (Utils.containsAny(conversionContextString, - "|shorts_dislike_button.eml", "|reel_dislike_button.eml")) { + "|shorts_dislike_button.e", "|reel_dislike_button.e")) { return getShortsSpan(original, true); } if (Utils.containsAny(conversionContextString, - "|shorts_like_button.eml", "|reel_like_button.eml")) { + "|shorts_like_button.e", "|reel_like_button.e")) { if (!Utils.containsNumber(original)) { Logger.printDebug(() -> "Replacing hidden likes count"); return getShortsSpan(original, false); diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdsFilter.java index cb604c57b..01f82f5cf 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdsFilter.java @@ -105,17 +105,17 @@ public final class AdsFilter extends Filter { Settings.HIDE_VIEW_PRODUCTS_BANNER, "product_item", "products_in_video", - "shopping_overlay.eml" // Video player overlay shopping links. + "shopping_overlay.e" // Video player overlay shopping links. ); final var shoppingLinks = new StringFilterGroup( Settings.HIDE_SHOPPING_LINKS, - "shopping_description_shelf.eml" + "shopping_description_shelf.e" ); playerShoppingShelf = new StringFilterGroup( Settings.HIDE_CREATOR_STORE_SHELF, - "horizontal_shelf.eml" + "horizontal_shelf.e" ); playerShoppingShelfBuffer = new ByteArrayFilterGroup( @@ -131,7 +131,7 @@ public final class AdsFilter extends Filter { final var merchandise = new StringFilterGroup( Settings.HIDE_MERCHANDISE_BANNERS, "product_carousel", - "shopping_carousel.eml" // Channel profile shopping shelf. + "shopping_carousel.e" // Channel profile shopping shelf. ); final var selfSponsor = new StringFilterGroup( diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdvancedVideoQualityMenuFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdvancedVideoQualityMenuFilter.java index fb64dd81d..d2bbad012 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdvancedVideoQualityMenuFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdvancedVideoQualityMenuFilter.java @@ -14,7 +14,7 @@ public final class AdvancedVideoQualityMenuFilter extends Filter { public AdvancedVideoQualityMenuFilter() { addPathCallbacks(new StringFilterGroup( Settings.ADVANCED_VIDEO_QUALITY_MENU, - "quick_quality_sheet_content.eml-js" + "quick_quality_sheet_content.e" )); } diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ButtonsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ButtonsFilter.java index 12775ed5f..3ca59ea0b 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ButtonsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ButtonsFilter.java @@ -4,13 +4,13 @@ import app.revanced.extension.youtube.settings.Settings; @SuppressWarnings("unused") final class ButtonsFilter extends Filter { - private static final String COMPACT_CHANNEL_BAR_PATH_PREFIX = "compact_channel_bar.eml"; - private static final String VIDEO_ACTION_BAR_PATH_PREFIX = "video_action_bar.eml"; - private static final String VIDEO_ACTION_BAR_PATH = "video_action_bar.eml"; + private static final String COMPACT_CHANNEL_BAR_PATH_PREFIX = "compact_channel_bar.e"; + private static final String VIDEO_ACTION_BAR_PATH_PREFIX = "video_action_bar.e"; + private static final String VIDEO_ACTION_BAR_PATH = "video_action_bar.e"; /** * Video bar path when the video information is collapsed. Seems to shown only with 20.14+ */ - private static final String COMPACTIFY_VIDEO_ACTION_BAR_PATH = "compactify_video_action_bar.eml"; + private static final String COMPACTIFY_VIDEO_ACTION_BAR_PATH = "compactify_video_action_bar.e"; private static final String ANIMATED_VECTOR_TYPE_PATH = "AnimatedVectorType"; private final StringFilterGroup likeSubscribeGlow; @@ -28,12 +28,12 @@ final class ButtonsFilter extends Filter { likeSubscribeGlow = new StringFilterGroup( Settings.DISABLE_LIKE_SUBSCRIBE_GLOW, - "animated_button_border.eml" + "animated_button_border.e" ); bufferFilterPathGroup = new StringFilterGroup( null, - "|ContainerType|button.eml" + "|ContainerType|button.e" ); addPathCallbacks( @@ -45,7 +45,7 @@ final class ButtonsFilter extends Filter { ), new StringFilterGroup( Settings.HIDE_DOWNLOAD_BUTTON, - "|download_button.eml" + "|download_button.e" ), new StringFilterGroup( Settings.HIDE_SAVE_BUTTON, @@ -53,7 +53,7 @@ final class ButtonsFilter extends Filter { ), new StringFilterGroup( Settings.HIDE_CLIP_BUTTON, - "|clip_button.eml" + "|clip_button.e" ) ); diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/CommentsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/CommentsFilter.java index 6264b2ab2..2af8d1a90 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/CommentsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/CommentsFilter.java @@ -6,7 +6,7 @@ import app.revanced.extension.youtube.shared.PlayerType; @SuppressWarnings("unused") final class CommentsFilter extends Filter { - private static final String COMMENT_COMPOSER_PATH = "comment_composer.eml"; + private static final String COMMENT_COMPOSER_PATH = "comment_composer.e"; private final StringFilterGroup chipBar; private final ByteArrayFilterGroup aiCommentsSummary; @@ -15,12 +15,12 @@ final class CommentsFilter extends Filter { public CommentsFilter() { var chatSummary = new StringFilterGroup( Settings.HIDE_COMMENTS_AI_CHAT_SUMMARY, - "live_chat_summary_banner.eml" + "live_chat_summary_banner.e" ); chipBar = new StringFilterGroup( Settings.HIDE_COMMENTS_AI_SUMMARY, - "chip_bar.eml" + "chip_bar.e" ); aiCommentsSummary = new ByteArrayFilterGroup( @@ -35,8 +35,8 @@ final class CommentsFilter extends Filter { var commentsByMembers = new StringFilterGroup( Settings.HIDE_COMMENTS_BY_MEMBERS_HEADER, - "sponsorships_comments_header.eml", - "sponsorships_comments_footer.eml" + "sponsorships_comments_header.e", + "sponsorships_comments_footer.e" ); var comments = new StringFilterGroup( @@ -52,7 +52,7 @@ final class CommentsFilter extends Filter { var createAShort = new StringFilterGroup( Settings.HIDE_COMMENTS_CREATE_A_SHORT_BUTTON, - "composer_short_creation_button.eml" + "composer_short_creation_button.e" ); emojiAndTimestampButtons = new StringFilterGroup( @@ -69,7 +69,7 @@ final class CommentsFilter extends Filter { var thanksButton = new StringFilterGroup( Settings.HIDE_COMMENTS_THANKS_BUTTON, - "super_thanks_button.eml" + "super_thanks_button.e" ); addPathCallbacks( diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/DescriptionComponentsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/DescriptionComponentsFilter.java index 5c0870cde..0d727bcfd 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/DescriptionComponentsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/DescriptionComponentsFilter.java @@ -29,12 +29,12 @@ final class DescriptionComponentsFilter extends Filter { aiGeneratedVideoSummarySection = new StringFilterGroup( Settings.HIDE_AI_GENERATED_VIDEO_SUMMARY_SECTION, - "cell_expandable_metadata.eml" + "cell_expandable_metadata.e" ); final StringFilterGroup askSection = new StringFilterGroup( Settings.HIDE_ASK_SECTION, - "youchat_entrypoint.eml" + "youchat_entrypoint.e" ); final StringFilterGroup attributesSection = new StringFilterGroup( @@ -65,7 +65,7 @@ final class DescriptionComponentsFilter extends Filter { macroMarkersCarousel = new StringFilterGroup( null, - "macro_markers_carousel.eml" + "macro_markers_carousel.e" ); macroMarkersCarouselGroupList.addAll( @@ -81,7 +81,7 @@ final class DescriptionComponentsFilter extends Filter { horizontalShelf = new StringFilterGroup( Settings.HIDE_ATTRIBUTES_SECTION, - "horizontal_shelf.eml" + "horizontal_shelf.e" ); cellVideoAttribute = new ByteArrayFilterGroup( diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/HideInfoCardsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/HideInfoCardsFilter.java index 3c4c33d16..ca88f834f 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/HideInfoCardsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/HideInfoCardsFilter.java @@ -9,7 +9,7 @@ public final class HideInfoCardsFilter extends Filter { addIdentifierCallbacks( new StringFilterGroup( Settings.HIDE_INFO_CARDS, - "info_card_teaser_overlay.eml" + "info_card_teaser_overlay.e" ) ); } diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/KeywordContentFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/KeywordContentFilter.java index eecf17766..8f9d99b6e 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/KeywordContentFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/KeywordContentFilter.java @@ -79,10 +79,10 @@ final class KeywordContentFilter extends Filter { "search_vwc_description_transition_key", "g-high-recZ", // Text and litho components found in the buffer that belong to path filters. - "expandable_metadata.eml", - "thumbnail.eml", - "avatar.eml", - "overflow_button.eml", + "expandable_metadata.e", + "thumbnail.e", + "avatar.e", + "overflow_button.e", "shorts-lockup-image", "shorts-lockup.overlay-metadata.secondary-text", "YouTubeSans-SemiBold", @@ -94,16 +94,16 @@ final class KeywordContentFilter extends Filter { */ private final StringFilterGroup startsWithFilter = new StringFilterGroup( null, // Multiple settings are used and must be individually checked if active. - "home_video_with_context.eml", - "search_video_with_context.eml", - "video_with_context.eml", // Subscription tab videos. - "related_video_with_context.eml", + "home_video_with_context.e", + "search_video_with_context.e", + "video_with_context.e", // Subscription tab videos. + "related_video_with_context.e", // A/B test for subscribed video, and sometimes when tablet layout is enabled. - "video_lockup_with_attachment.eml", - "compact_video.eml", + "video_lockup_with_attachment.e", + "compact_video.e", "inline_shorts", "shorts_video_cell", - "shorts_pivot_item.eml" + "shorts_pivot_item.e" ); /** @@ -112,9 +112,9 @@ final class KeywordContentFilter extends Filter { @SuppressWarnings("FieldCanBeLocal") private final StringFilterGroup containsFilter = new StringFilterGroup( null, - "modern_type_shelf_header_content.eml", - "shorts_lockup_cell.eml", // Part of 'shorts_shelf_carousel.eml' - "video_card.eml" // Shorts that appear in a horizontal shelf. + "modern_type_shelf_header_content.e", + "shorts_lockup_cell.e", // Part of 'shorts_shelf_carousel.e' + "video_card.e" // Shorts that appear in a horizontal shelf. ); /** @@ -125,10 +125,10 @@ final class KeywordContentFilter extends Filter { * the buffer of the parent component was already searched and passed. */ private final StringTrieSearch exceptions = new StringTrieSearch( - "metadata.eml", - "thumbnail.eml", - "avatar.eml", - "overflow_button.eml" + "metadata.e", + "thumbnail.e", + "avatar.e", + "overflow_button.e" ); /** diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/LayoutComponentsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/LayoutComponentsFilter.java index 852e55f94..9b1aa94dc 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/LayoutComponentsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/LayoutComponentsFilter.java @@ -76,18 +76,18 @@ public final class LayoutComponentsFilter extends Filter { communityPosts = new StringFilterGroup( Settings.HIDE_COMMUNITY_POSTS, "post_base_wrapper", // may be obsolete and no longer needed. - "text_post_root.eml", - "images_post_root.eml", - "images_post_slim.eml", // may be obsolete and no longer needed. - "images_post_root_slim.eml", - "text_post_root_slim.eml", - "post_base_wrapper_slim.eml", - "poll_post_root.eml", - "videos_post_root.eml", - "post_shelf_slim.eml", - "videos_post_responsive_root.eml", - "text_post_responsive_root.eml", - "poll_post_responsive_root.eml" + "text_post_root.e", + "images_post_root.e", + "images_post_slim.e", // may be obsolete and no longer needed. + "images_post_root_slim.e", + "text_post_root_slim.e", + "post_base_wrapper_slim.e", + "poll_post_root.e", + "videos_post_root.e", + "post_shelf_slim.e", + "videos_post_responsive_root.e", + "text_post_responsive_root.e", + "poll_post_responsive_root.e" ); final var subscribersCommunityGuidelines = new StringFilterGroup( @@ -149,7 +149,7 @@ public final class LayoutComponentsFilter extends Filter { final var channelLinksPreview = new StringFilterGroup( Settings.HIDE_LINKS_PREVIEW, - "attribution.eml" + "attribution.e" ); final var emergencyBox = new StringFilterGroup( @@ -190,8 +190,8 @@ public final class LayoutComponentsFilter extends Filter { final var playables = new StringFilterGroup( Settings.HIDE_PLAYABLES, - "horizontal_gaming_shelf.eml", - "mini_game_card.eml" + "horizontal_gaming_shelf.e", + "mini_game_card.e" ); // Playable horizontal shelf header. @@ -228,7 +228,7 @@ public final class LayoutComponentsFilter extends Filter { compactChannelBarInnerButton = new StringFilterGroup( null, - "|button.eml" + "|button.e" ); joinMembershipButton = new ByteArrayFilterGroup( @@ -248,13 +248,13 @@ public final class LayoutComponentsFilter extends Filter { final var videoRecommendationLabels = new StringFilterGroup( Settings.HIDE_VIDEO_RECOMMENDATION_LABELS, - "endorsement_header_footer.eml" + "endorsement_header_footer.e" ); channelProfile = new StringFilterGroup( null, - "channel_profile.eml", - "page_header.eml" + "channel_profile.e", + "page_header.e" ); channelProfileBuffer = new ByteArrayFilterGroupList(); channelProfileBuffer.addAll(new ByteArrayFilterGroup( @@ -269,15 +269,15 @@ public final class LayoutComponentsFilter extends Filter { horizontalShelves = new StringFilterGroup( Settings.HIDE_HORIZONTAL_SHELVES, - "horizontal_video_shelf.eml", - "horizontal_shelf.eml", - "horizontal_shelf_inline.eml", - "horizontal_tile_shelf.eml" + "horizontal_video_shelf.e", + "horizontal_shelf.e", + "horizontal_shelf_inline.e", + "horizontal_tile_shelf.e" ); ticketShelf = new ByteArrayFilterGroup( Settings.HIDE_TICKET_SHELF, - "ticket_item.eml" + "ticket_item.e" ); addPathCallbacks( diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlaybackSpeedMenuFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlaybackSpeedMenuFilter.java index fc2b78ceb..d33dae8f2 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlaybackSpeedMenuFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlaybackSpeedMenuFilter.java @@ -24,13 +24,13 @@ public final class PlaybackSpeedMenuFilter extends Filter { // 0.05x litho speed menu. var playbackRateSelectorGroup = new StringFilterGroup( Settings.CUSTOM_SPEED_MENU, - "playback_rate_selector_menu_sheet.eml-js" + "playback_rate_selector_menu_sheet.e" ); // Old litho based speed menu. oldPlaybackMenuGroup = new StringFilterGroup( Settings.CUSTOM_SPEED_MENU, - "playback_speed_sheet_content.eml-js"); + "playback_speed_sheet_content.e"); addPathCallbacks(playbackRateSelectorGroup, oldPlaybackMenuGroup); } diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlayerFlyoutMenuItemsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlayerFlyoutMenuItemsFilter.java index 0cdf7b873..1323f4057 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlayerFlyoutMenuItemsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlayerFlyoutMenuItemsFilter.java @@ -38,7 +38,7 @@ public class PlayerFlyoutMenuItemsFilter extends Filter { addPathCallbacks( videoQualityMenuFooter, - new StringFilterGroup(null, "overflow_menu_item.eml") + new StringFilterGroup(null, "overflow_menu_item.e") ); flyoutFilterGroupList.addAll( diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ReturnYouTubeDislikeFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ReturnYouTubeDislikeFilter.java index 49a623b84..58e3af5e6 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ReturnYouTubeDislikeFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ReturnYouTubeDislikeFilter.java @@ -72,8 +72,8 @@ public final class ReturnYouTubeDislikeFilter extends Filter { // But if swiping back to a previous video and liking/disliking, then only that single button reloads. // So must check for both buttons. addPathCallbacks( - new StringFilterGroup(null, "|shorts_like_button.eml"), - new StringFilterGroup(null, "|shorts_dislike_button.eml") + new StringFilterGroup(null, "|shorts_like_button.e"), + new StringFilterGroup(null, "|shorts_dislike_button.e") ); // After the button identifiers is binary data and then the video id for that specific short. diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ShortsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ShortsFilter.java index 57e996f14..f41f1e3a3 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ShortsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ShortsFilter.java @@ -18,12 +18,12 @@ import app.revanced.extension.youtube.shared.PlayerType; @SuppressWarnings("unused") public final class ShortsFilter extends Filter { private static final boolean HIDE_SHORTS_NAVIGATION_BAR = Settings.HIDE_SHORTS_NAVIGATION_BAR.get(); - private static final String REEL_CHANNEL_BAR_PATH = "reel_channel_bar.eml"; + private static final String REEL_CHANNEL_BAR_PATH = "reel_channel_bar.e"; /** * For paid promotion label and subscribe button that appears in the channel bar. */ - private static final String REEL_METAPANEL_PATH = "reel_metapanel.eml"; + private static final String REEL_METAPANEL_PATH = "reel_metapanel.e"; /** * Tags that appears when opening the Shorts player. @@ -74,7 +74,7 @@ public final class ShortsFilter extends Filter { // Use a different filter group for this pattern, as it requires an additional check after matching. shelfHeader = new StringFilterGroup( null, - "shelf_header.eml" + "shelf_header.e" ); addIdentifierCallbacks(shortsIdentifiers, shelfHeader); @@ -85,11 +85,11 @@ public final class ShortsFilter extends Filter { shortsCompactFeedVideo = new StringFilterGroup(null, // Shorts that appear in the feed/search when the device is using tablet layout. - "compact_video.eml", - // 'video_lockup_with_attachment.eml' is shown instead of 'compact_video.eml' for some users - "video_lockup_with_attachment.eml", + "compact_video.e", + // 'video_lockup_with_attachment.e' is shown instead of 'compact_video.e' for some users + "video_lockup_with_attachment.e", // Search results that appear in a horizontal shelf. - "video_card.eml"); + "video_card.e"); // Filter out items that use the 'frame0' thumbnail. // This is a valid thumbnail for both regular videos and Shorts, @@ -134,31 +134,31 @@ public final class ShortsFilter extends Filter { StringFilterGroup stickers = new StringFilterGroup( Settings.HIDE_SHORTS_STICKERS, - "stickers_layer.eml" + "stickers_layer.e" ); StringFilterGroup likeFountain = new StringFilterGroup( Settings.HIDE_SHORTS_LIKE_FOUNTAIN, - "like_fountain.eml" + "like_fountain.e" ); StringFilterGroup likeButton = new StringFilterGroup( Settings.HIDE_SHORTS_LIKE_BUTTON, - "shorts_like_button.eml", - "reel_like_button.eml" + "shorts_like_button.e", + "reel_like_button.e" ); StringFilterGroup dislikeButton = new StringFilterGroup( Settings.HIDE_SHORTS_DISLIKE_BUTTON, - "shorts_dislike_button.eml", - "reel_dislike_button.eml" + "shorts_dislike_button.e", + "reel_dislike_button.e" ); StringFilterGroup previewComment = new StringFilterGroup( Settings.HIDE_SHORTS_PREVIEW_COMMENT, // Preview comment that can popup while a Short is playing. // Uses no bundled icons, and instead the users profile photo is shown. - "participation_bar.eml" + "participation_bar.e" ); joinButton = new StringFilterGroup( @@ -173,20 +173,20 @@ public final class ShortsFilter extends Filter { paidPromotionButton = new StringFilterGroup( Settings.HIDE_PAID_PROMOTION_LABEL, - "reel_player_disclosure.eml" + "reel_player_disclosure.e" ); shortsActionBar = new StringFilterGroup( null, - "shorts_action_bar.eml", - "reel_action_bar.eml" + "shorts_action_bar.e", + "reel_action_bar.e" ); useSoundButton = new StringFilterGroup( Settings.HIDE_SHORTS_USE_SOUND_BUTTON, // First filter needed for "Use this sound" that can appear when viewing Shorts // through the "Short remixing this video" section. - "floating_action_button.eml", + "floating_action_button.e", // Second filter needed for "Use this sound" that can appear below the video title. REEL_METAPANEL_PATH ); @@ -209,13 +209,13 @@ public final class ShortsFilter extends Filter { videoActionButton = new StringFilterGroup( null, - // Can be simply 'button.eml', 'shorts_video_action_button.eml' or 'reel_action_button.eml' - "button.eml" + // Can be simply 'button.e', 'shorts_video_action_button.e' or 'reel_action_button.e' + "button.e" ); suggestedAction = new StringFilterGroup( null, - "suggested_action.eml" + "suggested_action.e" ); addPathCallbacks( From 0acba3024535f8e11ed4769da7171dbde553fd52 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Fri, 3 Oct 2025 06:57:20 +0000 Subject: [PATCH 38/63] chore: Release v5.42.0-dev.11 [skip ci] # [5.42.0-dev.11](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.10...v5.42.0-dev.11) (2025-10-03) ### Bug Fixes * **YouTube:** Resolve UI components not hiding for some users ([#6054](https://github.com/ReVanced/revanced-patches/issues/6054)) ([6b26346](https://github.com/ReVanced/revanced-patches/commit/6b2634691423f5ce25a28b3f2fbc420977b81748)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed6e0304a..697e5e87c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.11](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.10...v5.42.0-dev.11) (2025-10-03) + + +### Bug Fixes + +* **YouTube:** Resolve UI components not hiding for some users ([#6054](https://github.com/ReVanced/revanced-patches/issues/6054)) ([6b26346](https://github.com/ReVanced/revanced-patches/commit/6b2634691423f5ce25a28b3f2fbc420977b81748)) + # [5.42.0-dev.10](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.9...v5.42.0-dev.10) (2025-10-02) diff --git a/gradle.properties b/gradle.properties index 836249d0a..657e57e01 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.42.0-dev.10 +version = 5.42.0-dev.11 From 963a4ef43fd513de7a2d7d019992f06b62fdcc10 Mon Sep 17 00:00:00 2001 From: brosssh <44944126+brosssh@users.noreply.github.com> Date: Fri, 3 Oct 2025 09:19:01 +0200 Subject: [PATCH 39/63] feat(Instagram): Add `Sanitize sharing links` patch (#5986) Co-authored-by: oSumAtrIX Co-authored-by: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> --- .../privacy/SanitizeSharingLinksPatch.java | 15 +++++ .../patches/SanitizeSharingLinksPatch.java | 12 ++-- .../shared/privacy/LinkSanitizer.java | 60 +++++++++++++++++++ .../privacy/SanitizeSharingLinksPatch.java | 33 ++-------- patches/api/patches.api | 4 ++ .../instagram/misc/privacy/Fingerprints.kt | 23 +++++++ .../misc/privacy/SanitizeSharingLinksPatch.kt | 48 +++++++++++++++ .../tracking/url/SanitizeUrlQueryPatch.kt | 2 +- .../misc/privacy/SanitizeSharingLinksPatch.kt | 4 +- 9 files changed, 164 insertions(+), 37 deletions(-) create mode 100644 extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/privacy/SanitizeSharingLinksPatch.java create mode 100644 extensions/shared/library/src/main/java/app/revanced/extension/shared/privacy/LinkSanitizer.java create mode 100644 patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/Fingerprints.kt create mode 100644 patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt diff --git a/extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/privacy/SanitizeSharingLinksPatch.java b/extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/privacy/SanitizeSharingLinksPatch.java new file mode 100644 index 000000000..b7a017e77 --- /dev/null +++ b/extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/privacy/SanitizeSharingLinksPatch.java @@ -0,0 +1,15 @@ +package app.revanced.extension.instagram.misc.privacy; + +import app.revanced.extension.shared.privacy.LinkSanitizer; + +@SuppressWarnings("unused") +public final class SanitizeSharingLinksPatch { + private static final LinkSanitizer sanitizer = new LinkSanitizer("igsh"); + + /** + * Injection point. + */ + public static String sanitizeSharingLink(String url) { + return sanitizer.sanitizeUrlString(url); + } +} diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/SanitizeSharingLinksPatch.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/SanitizeSharingLinksPatch.java index 6952bdcd1..d02899727 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/SanitizeSharingLinksPatch.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/SanitizeSharingLinksPatch.java @@ -1,5 +1,6 @@ package app.revanced.extension.shared.patches; +import app.revanced.extension.shared.privacy.LinkSanitizer; import app.revanced.extension.shared.settings.BaseSettings; /** @@ -7,17 +8,18 @@ import app.revanced.extension.shared.settings.BaseSettings; */ @SuppressWarnings("unused") public final class SanitizeSharingLinksPatch { - private static final String NEW_TRACKING_PARAMETER_REGEX = ".si=.+"; - private static final String OLD_TRACKING_PARAMETER_REGEX = ".feature=.+"; + + private static final LinkSanitizer sanitizer = new LinkSanitizer( + "si", + "feature" // Old tracking parameter name, and may be obsolete. + ); /** * Injection point. */ public static String sanitize(String url) { if (BaseSettings.SANITIZE_SHARED_LINKS.get()) { - url = url - .replaceAll(NEW_TRACKING_PARAMETER_REGEX, "") - .replaceAll(OLD_TRACKING_PARAMETER_REGEX, ""); + url = sanitizer.sanitizeUrlString(url); } if (BaseSettings.REPLACE_MUSIC_LINKS_WITH_YOUTUBE.get()) { 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 new file mode 100644 index 000000000..9cfa05c1b --- /dev/null +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/privacy/LinkSanitizer.java @@ -0,0 +1,60 @@ +package app.revanced.extension.shared.privacy; + +import android.net.Uri; + +import java.util.Collection; +import java.util.List; +import java.util.Set; + +import app.revanced.extension.shared.Logger; + +/** + * Strips away specific parameters from URLs. + */ +public class LinkSanitizer { + + private final Collection parametersToRemove; + + 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 + ? Set.of(parametersToRemove) + : List.of(parametersToRemove); + } + + public String sanitizeUrlString(String url) { + try { + return sanitizeUri(Uri.parse(url)).toString(); + } catch (Exception ex) { + Logger.printException(() -> "sanitizeUrlString failure: " + url, ex); + return url; + } + } + + public Uri sanitizeUri(Uri uri) { + 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); + } + } + } + + Uri sanitizedUrl = builder.build(); + Logger.printInfo(() -> "Sanitized url: " + uri + " to: " + sanitizedUrl); + + return sanitizedUrl; + } catch (Exception ex) { + Logger.printException(() -> "sanitizeUri failure: " + uri, ex); + return uri; + } + } +} diff --git a/extensions/spotify/src/main/java/app/revanced/extension/spotify/misc/privacy/SanitizeSharingLinksPatch.java b/extensions/spotify/src/main/java/app/revanced/extension/spotify/misc/privacy/SanitizeSharingLinksPatch.java index 55b78933d..61cb977a2 100644 --- a/extensions/spotify/src/main/java/app/revanced/extension/spotify/misc/privacy/SanitizeSharingLinksPatch.java +++ b/extensions/spotify/src/main/java/app/revanced/extension/spotify/misc/privacy/SanitizeSharingLinksPatch.java @@ -1,18 +1,11 @@ package app.revanced.extension.spotify.misc.privacy; -import android.net.Uri; - -import java.util.List; - -import app.revanced.extension.shared.Logger; +import app.revanced.extension.shared.privacy.LinkSanitizer; @SuppressWarnings("unused") public final class SanitizeSharingLinksPatch { - /** - * Parameters that are considered undesirable and should be stripped away. - */ - private static final List SHARE_PARAMETERS_TO_REMOVE = List.of( + private static final LinkSanitizer sanitizer = new LinkSanitizer( "si", // Share tracking parameter. "utm_source" // Share source, such as "copy-link". ); @@ -20,25 +13,7 @@ public final class SanitizeSharingLinksPatch { /** * Injection point. */ - public static String sanitizeUrl(String url) { - try { - Uri uri = Uri.parse(url); - Uri.Builder builder = uri.buildUpon().clearQuery(); - - for (String paramName : uri.getQueryParameterNames()) { - if (!SHARE_PARAMETERS_TO_REMOVE.contains(paramName)) { - for (String value : uri.getQueryParameters(paramName)) { - builder.appendQueryParameter(paramName, value); - } - } - } - - String sanitizedUrl = builder.build().toString(); - Logger.printInfo(() -> "Sanitized url " + url + " to " + sanitizedUrl); - return sanitizedUrl; - } catch (Exception ex) { - Logger.printException(() -> "sanitizeUrl failure with " + url, ex); - return url; - } + public static String sanitizeSharingLink(String url) { + return sanitizer.sanitizeUrlString(url); } } diff --git a/patches/api/patches.api b/patches/api/patches.api index 01e889e44..806d7a46e 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -288,6 +288,10 @@ public final class app/revanced/patches/instagram/misc/links/OpenLinksExternally public static final fun getOpenLinksExternallyPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } +public final class app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatchKt { + public static final fun getSanitizeSharingLinksPatch ()Lapp/revanced/patcher/patch/BytecodePatch; +} + public final class app/revanced/patches/instagram/misc/signature/SignatureCheckPatchKt { public static final fun getSignatureCheckPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/Fingerprints.kt new file mode 100644 index 000000000..78ac35f85 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/Fingerprints.kt @@ -0,0 +1,23 @@ +package app.revanced.patches.instagram.misc.privacy + +import app.revanced.patcher.fingerprint + +internal val permalinkResponseJsonParserFingerprint = fingerprint { + strings("permalink", "PermalinkResponse") + custom { method, _ -> method.name == "parseFromJson" } +} + +internal val storyUrlResponseJsonParserFingerprint = fingerprint { + strings("story_item_to_share_url", "StoryItemUrlResponse") + custom { method, _ -> method.name == "parseFromJson" } +} + +internal val profileUrlResponseJsonParserFingerprint = fingerprint { + strings("profile_to_share_url", "ProfileUrlResponse") + custom { method, _ -> method.name == "parseFromJson" } +} + +internal val liveUrlResponseJsonParserFingerprint = fingerprint { + strings("live_to_share_url", "LiveItemLinkUrlResponse") + custom { method, _ -> method.name == "parseFromJson" } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt new file mode 100644 index 000000000..c7b4d0f40 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt @@ -0,0 +1,48 @@ +package app.revanced.patches.instagram.misc.privacy + +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patches.instagram.misc.extension.sharedExtensionPatch +import app.revanced.util.indexOfFirstInstructionOrThrow +import com.android.tools.smali.dexlib2.Opcode +import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction + +private const val EXTENSION_CLASS_DESCRIPTOR = + "Lapp/revanced/extension/instagram/misc/privacy/SanitizeSharingLinksPatch;" + +@Suppress("unused") +val sanitizeSharingLinksPatch = bytecodePatch( + name = "Sanitize sharing links", + description = "Removes the tracking query parameters from shared links.", +) { + compatibleWith("com.instagram.android") + + dependsOn(sharedExtensionPatch) + + execute { + arrayOf( + permalinkResponseJsonParserFingerprint, + storyUrlResponseJsonParserFingerprint, + profileUrlResponseJsonParserFingerprint, + liveUrlResponseJsonParserFingerprint + ).forEach { fingerprint -> + fingerprint.method.apply { + val putSharingUrlIndex = indexOfFirstInstructionOrThrow( + fingerprint.stringMatches!!.first().index, + Opcode.IPUT_OBJECT + ) + + val sharingUrlRegister = getInstruction(putSharingUrlIndex).registerA + + addInstructions( + putSharingUrlIndex, + """ + invoke-static { v$sharingUrlRegister }, $EXTENSION_CLASS_DESCRIPTOR->sanitizeSharingLink(Ljava/lang/String;)Ljava/lang/String; + move-result-object v$sharingUrlRegister + """ + ) + } + } + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch.kt b/patches/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch.kt index 26ed42660..cfdb320e1 100644 --- a/patches/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch.kt @@ -6,7 +6,7 @@ import app.revanced.patcher.patch.bytecodePatch @Suppress("unused") val sanitizeUrlQueryPatch = bytecodePatch( name = "Sanitize sharing links", - description = "Removes (tracking) query parameters from the URLs when sharing links.", + description = "Removes the tracking query parameters from shared links.", ) { compatibleWith("com.reddit.frontpage") diff --git a/patches/src/main/kotlin/app/revanced/patches/spotify/misc/privacy/SanitizeSharingLinksPatch.kt b/patches/src/main/kotlin/app/revanced/patches/spotify/misc/privacy/SanitizeSharingLinksPatch.kt index ff74565c6..0954d4ed5 100644 --- a/patches/src/main/kotlin/app/revanced/patches/spotify/misc/privacy/SanitizeSharingLinksPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/spotify/misc/privacy/SanitizeSharingLinksPatch.kt @@ -16,7 +16,7 @@ private const val EXTENSION_CLASS_DESCRIPTOR = @Suppress("unused") val sanitizeSharingLinksPatch = bytecodePatch( name = "Sanitize sharing links", - description = "Removes the tracking query parameters from links before they are shared.", + description = "Removes the tracking query parameters from shared links.", ) { compatibleWith("com.spotify.music") @@ -24,7 +24,7 @@ val sanitizeSharingLinksPatch = bytecodePatch( execute { val extensionMethodDescriptor = "$EXTENSION_CLASS_DESCRIPTOR->" + - "sanitizeUrl(Ljava/lang/String;)Ljava/lang/String;" + "sanitizeSharingLink(Ljava/lang/String;)Ljava/lang/String;" val copyFingerprint = if (shareCopyUrlFingerprint.originalMethodOrNull != null) { shareCopyUrlFingerprint From 9441e7acb4817e12d1443d438ef6c448518bd614 Mon Sep 17 00:00:00 2001 From: MarcaD <152095496+MarcaDian@users.noreply.github.com> Date: Fri, 3 Oct 2025 10:19:27 +0300 Subject: [PATCH 40/63] fix(Custom branding): Update ReVanced logo (#6049) --- .../revanced_header_logo_minimal_dark.png | Bin 3338 -> 3490 bytes .../revanced_header_logo_minimal_light.png | Bin 3123 -> 3101 bytes .../revanced_header_logo_minimal_dark.png | Bin 2111 -> 2240 bytes .../revanced_header_logo_minimal_light.png | Bin 1985 -> 1997 bytes .../revanced_header_logo_minimal_dark.png | Bin 4499 -> 4676 bytes .../revanced_header_logo_minimal_light.png | Bin 4270 -> 4216 bytes .../revanced_header_logo_minimal_dark.png | Bin 7477 -> 7648 bytes .../revanced_header_logo_minimal_light.png | Bin 7082 -> 6882 bytes .../revanced_header_logo_minimal_dark.png | Bin 8583 -> 7966 bytes .../revanced_header_logo_minimal_light.png | Bin 8180 -> 6895 bytes .../ic_app_icons_themed_youtube_music.xml | 4 ++-- ...ube_music_2024_q4_foreground_color_108.png | Bin 1467 -> 1447 bytes .../music/mipmap-hdpi/ic_launcher_release.png | Bin 2821 -> 2876 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 942 -> 943 bytes .../music/mipmap-mdpi/ic_launcher_release.png | Bin 1797 -> 1802 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 2013 -> 2000 bytes .../mipmap-xhdpi/ic_launcher_release.png | Bin 3948 -> 4077 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 3217 -> 3163 bytes .../mipmap-xxhdpi/ic_launcher_release.png | Bin 6175 -> 6256 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 4447 -> 4429 bytes .../mipmap-xxxhdpi/ic_launcher_release.png | Bin 8589 -> 8744 bytes ...daptive_monochrome_ic_youtube_launcher.xml | 4 ++-- ...daptive_monochrome_ic_youtube_launcher.xml | 4 ++-- ...veproduct_youtube_foreground_color_108.png | Bin 1467 -> 1447 bytes .../youtube/mipmap-hdpi/ic_launcher.png | Bin 2821 -> 2876 bytes .../youtube/mipmap-hdpi/ic_launcher_round.png | Bin 2821 -> 2876 bytes ...veproduct_youtube_foreground_color_108.png | Bin 942 -> 943 bytes .../youtube/mipmap-mdpi/ic_launcher.png | Bin 1797 -> 1802 bytes .../youtube/mipmap-mdpi/ic_launcher_round.png | Bin 1797 -> 1802 bytes ...veproduct_youtube_foreground_color_108.png | Bin 2013 -> 2000 bytes .../youtube/mipmap-xhdpi/ic_launcher.png | Bin 3948 -> 4077 bytes .../mipmap-xhdpi/ic_launcher_round.png | Bin 3948 -> 4077 bytes ...veproduct_youtube_foreground_color_108.png | Bin 3217 -> 3163 bytes .../youtube/mipmap-xxhdpi/ic_launcher.png | Bin 6175 -> 6256 bytes .../mipmap-xxhdpi/ic_launcher_round.png | Bin 6175 -> 6256 bytes ...veproduct_youtube_foreground_color_108.png | Bin 4447 -> 4429 bytes .../youtube/mipmap-xxxhdpi/ic_launcher.png | Bin 8589 -> 8744 bytes .../mipmap-xxxhdpi/ic_launcher_round.png | Bin 8589 -> 8744 bytes 38 files changed, 6 insertions(+), 6 deletions(-) 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 index 1e53efb50c315aeb5ce417228edfb7098e902bfc..c2995578d9904564df539bb0c396aecc217b3d07 100644 GIT binary patch delta 3459 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 delta 3306 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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 index 0a1208b4361b07b73b2fd3d5c9bbc04c6da5fed8..9bd381fc75fd7e54e72e939c9487bd8b3de5e1fd 100644 GIT binary patch delta 3068 zcmdliF;`-O3geTBs`B*>H+Qoucy21|eSGz>ncLfqxz$xUw~xI_+On_pLtg-Y7o&982rP=6$T^YOb|pPyO2w~V|U7F6-*(Icj$q@+)7?(Wy0 z-V%%bxuZ5GC&#&NZGnr6%Z#&KQ|ptIl$AFdJlJh`V|kJ7v9E&7aS9(leylI6(fRX7 zxb830^__nz0zyJU%x=Gy(+-okQ20c9o%mG7_fz&+{P?K*rz>gOb%U@qKMX7GA4HXeGQb3(!Pe|=Dw!%W#NX}j0ysvhl{suQ`%#mJyv!}Y_a z?uUF`w}QOZL?qs|`#n{pag)y?@tcz^i=QRTUY~rFt9j$@FqZW)yjucV?%%lM&7tI* z;>HnI!X()1;VZSH%U;R!q6fFOmq(P#t0mvB@&&SSJyZ%`?kype@$vij=^Y<9I(xgP zJ~&a&!FfVRuW{lz7mt#ho|IEFPX2ptlzK`ft=|6naS<2C*{^GQZ>!}!lo4CZAN1ID ziALUoZOimyQbqEz`IKeCrc5Z>vG($TaPLJ6(>61n7SoL0w&u@|$NiU?@6#-pE@vC+pknCnrVpKa1%LDCO_{I*o;ub!XO`_n&tjxqZf1 z=+VND6@ow67VYfKsJHOu?eJ5VIPT@z;U^q_hOP9fQozURH|3v0SBG&<{C3yMYw3+i zo0h-bpIW{8<)*DyO&D$$OkjFBWB;b(1edb_~c*dqrl!n%I$5!k`}|AF7+dKnoR9a*aq z0j1gI`O_LcIQ-mjt03}v;Yyt>W8nj{__|Y^nkNbgNGR0%{`2nG^Z(y(ApwC0@Axj+ z@N+$sn6q^I?D8jXB${U4Xt_G0Ex zWmzG~chSa?(ZY!HQJd+h>tVc)8qc!b-r75nqwpc$m-abzGq?&5N36(P!c!7HYtN_S zni?(Y@A!hY1++ek@|$m$8~^+In$Tu9tC)K^mZAGz76-JI#wZmU?o{>P7gO~4nQ!HX z2aQuSgWY!2AFi&tb?3raCkwvxO!kW}dEC9UnICbnE#}HfR&seRYcVNurt7};Sz86p zhW${qT&iI8{DbPQhxLUli-HfkD$Y4B{v+R~UE`JJ>4l%!jPLz_q&%nL#Tth!_0wl; zU-W&-=sGGecU6H3&vHep;){a5AC!e^qd0hW8O^hcJasqL?oa&(XF;RXQzD+T ?) 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 SZ_zoBm?yidpUXO@geCyjOV1hr diff --git a/patches/src/main/resources/change-header/drawable-mdpi/revanced_header_logo_minimal_dark.png b/patches/src/main/resources/change-header/drawable-mdpi/revanced_header_logo_minimal_dark.png index f0100a34ddcd7d9b7575077172136b7b7e4194d4..834b0690b4a95d21620ea14877a238c6e00638a4 100644 GIT binary patch delta 2228 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 delta 2098 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 delta 1971 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 literal 4499 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�t^<4>(%d^h#e} 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 j5>N7NyJ|(nL2OLSG{y{nFfPbKNgn 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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 index bb7f1f34c95122c8a519f3ad965a917a8435268b..f157928cd21ccd17411eb477546b5e8dee5aeb00 100644 GIT binary patch literal 6882 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¬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 Ndb;|#taD0e0su+py|@4X literal 7082 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 W;4yE#+Ws|#Ag!LRelF{r5}E+_=t2De 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 index acbabeaf970c198fc30e0e1868716e9e3d516d7f..4e65b42c65614abe0b648d43b02281900677c9ea 100644 GIT binary patch literal 7966 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 literal 8583 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 Q90J+l>FVdQ&MBb@0KNHzi2wiq 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 index 33dc2d29384eb600d141868125a797c63e7c5458..566290423ab4c06218fccc12e9913cd89817909b 100644 GIT binary patch literal 6895 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 literal 8180 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 diff --git a/patches/src/main/resources/custom-branding/music/drawable/ic_app_icons_themed_youtube_music.xml b/patches/src/main/resources/custom-branding/music/drawable/ic_app_icons_themed_youtube_music.xml index 084c87662..72cd56f5a 100644 --- a/patches/src/main/resources/custom-branding/music/drawable/ic_app_icons_themed_youtube_music.xml +++ b/patches/src/main/resources/custom-branding/music/drawable/ic_app_icons_themed_youtube_music.xml @@ -9,9 +9,9 @@ android:translateY="89.6"> + android:pathData="M250.09,13.49C251.39,10.51 251.11,7.08 249.33,4.36C247.55,1.64 244.52,0 241.27,0L228.81,0C226.08,0 223.61,1.62 222.51,4.11C211.54,29.1 153.63,160.99 134.29,205.04C133.2,207.54 130.73,209.15 128,209.15C125.27,209.15 122.8,207.54 121.7,205.04C102.36,160.99 44.46,29.1 33.49,4.11C32.39,1.62 29.92,0 27.19,0L14.73,0C11.48,0 8.45,1.64 6.67,4.36C4.89,7.08 4.61,10.51 5.91,13.49C26.64,60.8 95.56,218.1 109.63,250.24C111.17,253.74 114.63,256 118.45,256L137.55,256C141.37,256 144.83,253.74 146.36,250.24C160.44,218.1 229.36,60.8 250.09,13.49Z"/> + android:pathData="M135.14,123.87C133.67,126.43 130.94,128 128,128C125.05,128 122.33,126.43 120.85,123.87C105.89,97.97 71.44,38.28 56.48,12.37C55,9.82 55,6.68 56.48,4.12C57.95,1.57 60.68,-0 63.62,-0L192.37,-0C195.32,-0 198.04,1.57 199.52,4.12C200.99,6.68 200.99,9.82 199.52,12.37C184.56,38.28 150.1,97.97 135.14,123.87Z"/> diff --git a/patches/src/main/resources/custom-branding/music/mipmap-hdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-hdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png index 5c2cb369ce6ef6001f4532ae883ae1171ba752b0..93c925a28dd7233215f51ffdd0169fdad56ba10b 100644 GIT binary patch delta 1400 zcmdnZy_|c3N?@L+i(^Oy`7aeaLXaWP5eAeQs#=YxT80D}U@L)h$deo?yvPpK5XB!6vB`zQdx8 z=XUwu+PDATWwT`_e?IHH-lqM);KZ6|=Q|EQSHJLS_1);7nZFaY?X&auYi1{0HIL60&%9e;*Zx9(s-t(`o3b96u(iQY0)lk{omXp} zKgX&&^~XZ?|2yUSn$JjC9DcXW?@fK+?G=L2w_JMb4P3XZ4Zbp=d+PVS;f-fFcT9Bt zvfOXM)8w1EVzyQbBfn?_i})tH9oIhphhn&^++hqLIyYNupWsn7jk@bU^ zoB!2PPF3DlJr~98b|XNqblSJ3FP0m4Q}_-oEt~GVq-}w!Y=lJT+dd^DDx#?N# zyhTr?X&T$6(~6g33#3xStZF$FZ7cun*z)A(v--&&_OASvAa~-)LEEVL&Py5>JS|-- zKila2yOt}hr-g#V^!`4dzm;zfV-(wp+6MwJeV1RXu+8gqUh>m#e^1rV(|eC71{q~! zK6oVGAoSI)-Gg=il_Czk@2^x9dF$IfL>*3l*W2R}7xz}%!etjOUS7@CisR^i z5(h>G1_r|o^{?5vKg#s6&Jf%g-XOS;LD`AXt%a$FgH=M1%Rosa!A0XhM*#T}k|48~ Z=c%%Ug~*?>WME)m@O1TaS?83{1OOxqn^*t< delta 1384 zcmZ3^y_VYi(^OyYiQT*tyLp+O z*iEdGu6J~CVG$G*ba8PJ__(o{f5X9<^JBkIiu)P z>Z{_}d#ckX#arxt?rq$Cz1u6HnB(1vcRBUzPa5C8ms=teV`#bU?_4+k>byP7e2u=Y zyoMDnjNXUeoZIu^-15AN^)HnQj;6evWS%wu+0KoE8|q!MIu1TgiC{JR{qWJ7d#}o8 z@7?|C@3VCgd#*o{Jzpz+C~iX}_wtO6gHP2HeqOyD{i$wsqqkkgQ>M(1>}%U*-L7Mv zCja$+$HC`JH@MASKe+Pd-W>j@`-blio3$TgJu#8>{now5i?3^LV9WV-&{Zm_U=_cP z;k|oj`fp#K_c5?qoTJ{@J}dn69T9GwuV0owdr+z^!#sQCy?Zlel!^QN+VNPd!0xu$ z%jS3A?iWoy@XX@QLPfUi{|pXSkR@?|=8%&Bp#wO0jo%LZz!S5AWs!&ou5lc>A^g-QW78|0m|1 zledjCHIHF;Kai$3<${2-Guwuct#{{5+*|#n=hfS;W#Q#T&ZY^T*S%{NKIXZ>WVZW3 zO#b$0pZn6*?%%B$)=l6m?R{C?UHQ*)gK*BagEOU)GBnwB;&0^5p3x|J`xs9_tB~~q zrpj;A4+MqfS8>>eA5z>9$){eq`)p8E{oKn+WgmV$+t?h-n42Sg`+v;mI|dP4X6+BN zcnwXqGEXbd-JW=7!;`i`=U7LR4*6*=^M1;0*mCvu0jKNE2aN8Nc~8@k4709#vgFoB z<(PjxbH1IAcb;d-6d`w2!1;DW!p{3;t5tex7G)h;@%X`~hI1XuPi}tK_&CAXEx+fg zz~RRFrL3=~`%BzjSMw-hdi$Jz#5v%OZ=O86E=(MeJQIqby>-*b8^l9)KgnJ^n;dL zuRkB0-m+P534?d;?W+P$#Vpv&ii@g*ox*OdnK(0Z^PT_49xeB*HW1F~JDj^_y`q7n9|MGD(9Ixg+v$PeIPpBBct*V%ardt>UFmxhlU zo(kTZeuvwLD?)B@Z9{uwYD(h!3j$A_6EfX@GrVnl+I;BVLd8>_8`dz$m(=eP;%h$3 zWwBCYdq&46-3?RJ?{XdZ#a>(b~5%gomJv!7BY~}={x9KcW;rRmw!T~>^+8Qa&`9?DxTs#ut`9S@icei4p-+X zk`wNq;k#1JXX@hF_D4-Kpgg1FP`$m_tkcH>R0Eu+Oqvk>kLv}m)S?gT`5wlHDmBV2 z+R`xR(w-gfE(ko8yTNbv`=Q+58j~Z!SMI;P#K_9Pz;Iy0zqS1Lk|g*G_zaX}5?m|} xbQClQK4efn#OT(-+{3{xAxKEV7{3<9uYZ_VC+0i8V_;xl@O1TaS?83{1OUiDqILiP diff --git a/patches/src/main/resources/custom-branding/music/mipmap-hdpi/ic_launcher_release.png b/patches/src/main/resources/custom-branding/music/mipmap-hdpi/ic_launcher_release.png index 4ca060e2499d5b06306f07da96c1970b3d4258bd..c922a45568fb2c03b137fe2cfb01c43c5d408416 100644 GIT binary patch delta 2870 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 Q1_lNOPgg&ebxsLQ0B|a&RR910 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-mdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-mdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png index 54b9cc9d700dcaf7db26373c6ae5ca74b93ab8e6..e9eac76185ef3370d0faac6afbbdcae7c6a7b99a 100644 GIT binary patch delta 848 zcmZ3-zMg%83S-$sRiFCv`)m)C3ArRP*x%kJJ0~~3WL@s;gOML^Zp*#BE%)|}-`j3_ z#w~kScKW;N{#SoDSDmcNI*@$flbqDCKlhVD-(CNkKDYL6{xk!Y%L0enpI>@@mBX%K zntQ-p>1j248`I*>{NK%U{_~3ad!G0IIxpOoAa!fYm&&uuv*PY-cygM#-{Dz3d&q?> zb9TKF_QWH-joo*?{G8JKUg0y#r=r6_YEl_(j(oY{Wr-Iq1uF!-khv+#$39ELu5D?I z=MN?${e=x-)@BuzyB~{b|8MkIw|JVi^~=lW`OiB()1LCIP12Y*V@_)B{HwP_f9qWD zdU7LsXPM>9ZQK`po^Ez|{OVx*gq=K=TkCI`?cN%?Eh_g9lTzot+^u)L&NJvYoUzY1 z!Rsx1yJ6YtHEXxswW;YnD>hN&R{BYk-Hd0$_VF3N7pY&oX6>ek(1ML```8tPK2}UT zeC|-ntl2&mQ=hj9PM>l&yf$)n;{NMt%l^tuoDj)Zz2@YWR~ox-uAVSidfKi%4QZ3s zJk);f(q7Npu4W-4@X?~}{Dn3jHYxvorc-}$9m<~YlSehBcFyC2%O20+`_IbA^6z=g z7S)-4hCeur@)sJIpOHy!Q0uwYZaII3^_8DH0?q_36XY{l{PWrRO09$b6Dk=hQ*7@% zOxnqD{j$8n3p>{8c`G$uPmq4sct(H4AztI_K?@{(UjNH`Ua#z!!4z}e{en~k! zJxTkXITW{CV`j>GUS7Pv#Aoqezw82$jHtrHXT<-vnP14ro3T?TctdtHmx zl^xGhTBWB=Q))=-30i)P$=724<%!?C4m?+hVGwUJKV`f==+1^OhO8NTJbXW~%{uw# zTF9@JtM44y%V_Cos~%GyoF`@epl#`TU5CrFul!;-n^vc9`1dQrthYHzO)i93zYX7?SN8-Mkj#izsE9s27RD46RcOR|1URpDe_7_=z*NE{MS<4OF3Da0Y%X3)avEOCg#Y~syzih{}sAaguj{an^LB{Ts5;nbW2 delta 824 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 X<(h{+)rc@KFfe$!`njxgN@xNAr6p#t diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xhdpi/ic_launcher_release.png b/patches/src/main/resources/custom-branding/music/mipmap-xhdpi/ic_launcher_release.png index 31c9d1c36abcb51aa81678bd9b5a9810f2a817f1..8fb88d36762582d219d994be40074203324784d6 100644 GIT binary patch literal 4077 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 literal 3948 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 Sx>$2i_rcTE&t;ucLK6VBX^0L0 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/ic_launcher_release.png b/patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/ic_launcher_release.png index 3bbb99d4a186c03f44553edc3df32b77be705fbf..4ac235573a533f5aaba090ac7312cd7183bb781c 100644 GIT binary patch literal 6256 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 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png index 37e6ddc39caac76358de4210988a78bd1e151013..df2d7f0a47257593b3aa20d972880a3f3495fa1b 100644 GIT binary patch delta 3814 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 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/ic_launcher_release.png b/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/ic_launcher_release.png index 5857ff6fd276e303fec960d77e2215da4d98d939..8adc8af1db6431ad75cc7e65db98906629b255d3 100644 GIT binary patch literal 8744 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 Gp$Pywr0Qq@ literal 8589 zcmeAS@N?(olHy`uVBq!ia0y~yU^oE69Bd2>3_*8t*cliULp)s^Ln;{G%w=9<5-HGH z{^9odxZB%A*W}(dyngZ4w%ps>a&O<8c`x|n&&juDSIU|Asop=l;rF+dyFyE=tI{Ob zo=h>C>7zCoNuJ_y=eAi&nHJ!r^gia2}KK-5;~V}-`>rY7rl4$=3?2y|F+$JV`rD9SKVhjy-EJer>pY~Q;fv# zI=W`(=g((Zc<$oWt6Rlfb}QG(GcnF@-=ELi-+cYx@(1i6*ndb*agcOba_08GXUTOB zisPPV-$`4ax&G|;h|~8j->YuO)$c1Xo8jmbKdQWS-G2YtC!YZI-^iLQP83}L#;`4X5Jn4eJfSWxc<86V~g4^#m*FLoKU9;o=OryxYmk#H|R|}l_^uXhT$d6)%gS$0klwXK2 zTO67HK=a+>PutFm9(S4c$>jJ<(MbY_9R7lTPKeI&%UtgkJlPPjm6z|{W}&*PG7lr~Y}+dTSmGLc*Dss- z&(=BoQ1&c#Y2CPa<5t6KIRgBj550fn^)_BX>A%O3tBuA^F8`R8-<;8Yd=cZa75&W{ zZGRl#-oH#Rer2GG9mDPG)n)Pb13CA^Gsh62q+)HZ^v}ioizv4bi z9?veDi5@M&e_sFF$GL^)Jg3UPod-6r%*|9x|6)b=X!X2g zdH>m{Z)Kdi#)qU3;|-h7d;B?+&EWd+^8(Yg>KC5gbzQlR`;wgEKgR$Q^&KZW?dQ)c zQ?FP4YI#d{a&~KY%XQPOB`;Lg&omL;Yt8<=)5WP}mVtUkcJ^&`Sy#iO{VQ`b-`weM zo^w_6$bOx!`mEgCSk0Gy0R_|5YWyny2Lx76`Fg-Rc)4G$*DKc@MaB=)D^&kYR8Zg1 zV5Q_~Q1_7K=>FDEb%sn{KCNds%ZzjbgF81c9lg(N7xqP7br!1~DEljGeswrkyYtS{ zP@(-7ejPAf$9Fd$N-6^rz(Bt8adB1U}*{-rsoDlDnrf^!)sb z|CdEAvvXQ0kk+_6jV(r~|H^T@dtrwUg?AXGH?G*awe2ySw5PqZ13QgY7#2?0kuhz%{UdgtG;#e~^3|dT7HVFmFem4MTCRZWQxXH&d^x{^!-q%%-i5eeiz&|8+hwE;Y$n_y0@# zBw6~O^LKP)toiZ5QSA5k_w4HG>S|@_G37hv+O=`NIS?~b_RP(hS;1@U&CRDTceH%P zY8IfZ^WoBzTlOrID-K^?xqk0n+d202anl&y-{0T9XOE5AwoTDCb9`kPuU|eMX`*qQ zYkP&-|3!=OJ;~2h@RraxvZpRpV|W^iF1oTU*4GPUh)0iTpht_ zy3xln5_45~&-7$)PB&JIFj?kqvOH$yz4W79qMJ-F8)x3%XWMV=l+x)ZSdl68w*SfX z2lo39J!bmw{d>E1__`C59v*CFpD=gs*&}Q>b{yV!C9y!Sc#&(8|EYivo6Ax^ojZTN z-MwG#4`9hJJ{Ro17R+CFJ>zd&yPc{VdUFNa=oy1pQ* zK&x12&bc``feYqXv4*7G``7aF@^bBK)-^v0?&)3>JK~#cb~v6>n!uwrKP1yqeQZOeSA`qEVJ9p z70v5KDzeUO-_QT=u)0mZ&Fd1Y8K&9O7OB0vzkmM<{kYre;(SUk`O^J2bG$h}izjri zk?VO|HeRVEH~#p|G-BNnr7L_s()bTgc_YW86@e)eHtbdS8Ld4zUUu4xi;LY4o<7~( zS$fg>K*<&<{*?0@ID9(aYW@1A?(6?=U(j4hNy$6)`X5$GzEj<^qF1#(<5ltGsAqM4 z^K4dn^vyEO?mCvX2=zKXoQy*+<^*0bgde0O_g{`x*x zeefxNY~hKGe-bb3sVuJe{H#~UvFyza#;~w3pEYrdo8vMp^UlxA4J+Z!ciL(2^X9Ev zhvwNzl+(NAo=Uxzisyx?F?NP6S?uHZP^=%9lLk0PIBn`aFX|xSB&a8 zsi=Q7?fL(gW=U7e*;H&;p1L{1 z&*bCJZ*QY-&dR&D$5VJg)*rtI&*saejvt*L>t*@`IKh0X`?C{HaV}}kb+qjS#RqXLTs?+bij|DX6?YJv92ZQuUy|DJSiOYZHmTV-)K zw&g}AZkC)v)e0sXR>-BZ9cc(EJ$y6y@SnO!g zUgRjpa_gDz^=|9$f2U~#Hi_H`sXXEH>hkjb!U)s)%8!MspC-A!=+9@7U+`jWh~49^ zvyRPdfjRTfW-oYlf9>zqhaCS|-7P|1tzTaIJD#f{+3*PGV?K5Nd1q$v$JhTg-J2Qw zey6Ky+VrfyM=$;V_s2~jaOLcWye%nngI*NBxUewK-YsyOm*3P=?-S4SPpF-C>0kVV zmW}FDB&vUX(Om74#+PzUC-Uf?Fzus+9+J->nW`zsvEF_fAi> zz7q3|?N3WN1Q?idN|_h~1U*YX=6rp!$hF(2wvlaVbT_~Ae)0M3YYRE;8a_)0ZJPP8 zQsi9B-YV1RyH?fTa_qjmwCnp|ck5!te1=Pn3ueCA!~7;r@gh6F+=jcsTeGj5mAP$x zE_PUYuf82;{Bt25w@cd9*JRqBUtJyE&s%$MU+ry!p4aR83LG398eQzKtz&+}={QyK z!^+8S^VUahezx^A$0?CDTF(v?*4o$n%}!*S6nE4|CjQW#%Fj2}o2#iE3tW8VA%}gl z@|_7KGZJnxwk>x5Hd&m-GVg9+Nr_1-cYJn}Q<=)~MOnQ<#mZ(Km1d6Tx2?BhIJdQM zGndKNpt>cEV)sor?7I$75S!XRv+08Z1wd0nB!rhr`I<% zlsEBW;lHDaJ0?tWaRPrrFVE0I5)&@^Qek=E9|GE%GxQbyj^?-|YJg&-d)v^J$V^wBmvP-p49f+1Q>nFF5U| z#=!P;Q<}iu&Zh#p!6vR-Up(lm?zxz_eMNjShc^4-s2h`b|J3h3yzb6Q&wsn-&yV-? zWH|IcTCu@=>$FCO?Q?w?EGE23h@29r%{xuEBkQ8y+x?<{t={>H2G002!Q7wo+PCAq zhxvZEX0nK$u$;^AeFE<~mt8s^|4(yTz@a>~aY4IZe2s0v1BYvOZfs8PcUl-37Ra1< zF>da+&UWA@k04YlI( z{={0o(=}su#l^js8&fiF=IlFh%wk{BY3|>pGIljHCO(#6Qc0K?*CESP!MsnSWwF%) z@ji71gW6vupIC47tbQYE;JR~DqLLI}{_}I}@rpv7o042#YtBs0$Vjx_$Hp)Brh@52 zQOEQT$hVZk`M8Zr$_w6o!e`+sNOrPTJj9W=7JKhyN z5zT79;H7LACNC;_lyA3H<)@TOHo>*be;Dnz8NM{CiHr|r`tw?z<%h4ZL+v@ce?61d zFtM)gxUfQZk*=2A=cnrzeBzn?L&;~ZmFY`K--i4D9UJObnjNZOuB+Ig#iE+Qr1F(3 zVF^ceQ-Y#wJ$J$y&x=C6u7N2vg~}W1HWA9B7wo z;t%k&K6sM-+$xo0Y3Js={IvPv%473(Cmd{=Qv7eLaE!muf$K($0&Ke6j{GK!lP)av z7Oy(J**Se<_nD>t*nd^t>=f0wd*Rf48~zU*EGu&7GF)O=bW>}?+`KF%mG}E?>;KtA zx3DeRVZwiKru}U5e7~P-)DFa|99k7+-l)R3V!05@ju~?pq!zpNDlJWJ&(NH$+;g+^ z*O$z)iu_ZqaqA@MoU_=d|1@JXYbzP28QFNj6v(7KvjLX{F6y;Q{-%`HuRa_ z`&V;zzj61&b5&JUVv|@tY;$7Z{~2Iaa_x z;c%U#!yB~CK89{i^JSKt#c(27 zS4EbMX^qf>`xO=w+)gV_F*#D9)5UhJXVdlrI|?7`oIcu=9hO&9Q}gP4_8;BnOunkJ z$L=?KEY}ruh?CBLD8*?m*R!-Sc27?6shP&Cc^}_BAXQM5x!7j*Qdimin|xeKZ{&R5RrdcAhfXY-t|6SUp zH!kxr+B`Y@@}uOe7YP~e7NuMA?#?Xek&_Kmq>fo5#xdWJ)DPrAt_P2>MPXO6`|=iC41Pd?{$ z_iK{Vf*h3>x(dvH8VvUQ{eK}%fPaQ%j9|1;>akC`VLvD41Y5`7{$H=ed?(ti;odW4 zhZ+?P0S|Xi*0<~{9xm>;OA`GxJ-)8;s&32ygLcsxdLt&>*)B{)clwrUAEMD{wviBuTT7&ZuR=K^?^Og zZ*&iP&eW7&5GJwQd6E5}56qhSyLXEh)?fY0Y*WG*lk~@a^B%@MmFzRhTWpt_&%Jp6 z{(iM}Gp&D#J#ftSOx$H~>MZj~)30?*vj1utZf#9lvief_*C(KhF^K5TV`?SB}qf^P78-agyWdGjOI6MDK z4eN@(1sQA#)J&9Y(2k4qQlcV9Tk)%mRd?+5jKHr5l)MUAEM7arO$nrMZu z^O>zOb?SVnN8VF34xYaD!~593=@b3D?(%HN`xjx{e2MvH#&;o(4<7fKY(70df42=hgRz-z~WO_rLtz+b<86*L~~wS1zXOl=S21`h(&}!xGrLt|Z7G>SexXkiYbT ztA14=NBeroKk2u6_2)Y_r`~7`-TOmyDr1T99^Oc)3D&nfN@Q-lm|ScBU6}V!UtV1; zv&&VU^#}E)SkCZ|5R(u*wlDg}FQr?nSFPn=cs4)e><6VcPJKEB>3pl~SLI%6t9_?_ z@jv4tTaQCYCTHI>_)ln539(qgA0cL-ly={@&hF)+dZBBHc^%KnS4@4VdZW=sc;W2H ztZz0q_jo-2$8xKF^Xt!ji!5)nF69WTJO9UyQDd{pU#nmCc>oCiCXN zBa5v1`wUe|TclDLr5;5Gas7R+Gu5drx8gT{wA?$TTTMD^4&4#hTA%Wosqlm&>+yXY z&u20AG+*N1W*r>1-_3-zvZKG~UHvltYjKS#B0C%xo<3NA_8MDHV%onoKkC?Z=f<0` zYDRF@fA}h~x#5=b7RE}A%~9%0FWB=(a7l*!`qM3a_q|F~6I0F#Tl?g`e-Eu)rzo_J^$I&IiQ6_$92PF<4tWAtgabJP5l@6dHy6uwN16lTV2fE zHKA|I$KC~saSdk|h|HQdZ=X)zKTbA@BP?yThi;!=zHHe#om-7IIftB7dh=O$H|n)+ zTfh>!GoL~D&*5K<|C_J={lBDqPk#oR*M_Cu^EssMpYUENtKmF%%eM^A{In(kpFhtx zw0#k|$TcNV{m>=#UqK$et(OAY*wiX^8aL)n73kUbVAehJ4z~q7lBQof_kHQi+B_#p z;j}Yr)Qksz%_Ki<=sbV?g4^x*4_$SeqrWV@priA;u0gg|Jf-pR=NSiPJ(_%WU&s80 zAE73Nf$QJJx7|G9HQ(@!#MQqJy=yN|pBic>-9PWg)O+$9Zj`ECWC;nmYkzI-yuh!_ zuP3xtFg3jixm8bTj#07p^((w&Zy670)OC_pSapJLdB;;rgUM!t+1&yKjEiVsf|S z#pgK&+atMLqeosV1W-Ci&aoEHT%`_|r^nytFqO7Oq%Q>iN6{6k0N zlbEhbEMF)!qhaO2Sc`@Bc2c#CSATyguzx!1ZgA&*uFR_+X8kxUm29fy>&O{($>gF# zY@_h+!1XFp^=1aYc0Ex{u5Vh)8(!9%Cw*!{&|*LHw}v0vXF2FjQ(eg5+c^2wLj4N1 z#h3Q44t)7zQ{zS9JKNg!7w67<{Oa$r#SES|T8=Wh&rM_6nzV;+_k?!01g5Oh(UW=i ziKQ_Ac<-^f@#6GizUMpc&bgn!`@F0ucg_dt3E}+fBW#*o^^6;DS)1@@Z{Uqwv2)T2 z-skF%_DBf-N&Zqk^QLmwlR4gtwaqOGb@g7n`YU!tf&2Cbw$BE&8{YD!HEDJn?8@rv zKF8wJt}C)#Rl3G;Q{yicD`O{@r+sshufM4Cv|Ap(u5s1(?o~Hq8zp>XWB#Nu*(ydg z`GyKz4K=$lx!QB3bNy4@dA#{7i8mxr%D-51pJ!8}$>_5_EU|8(mjKTXT~XDs(E>-y!yX|(D|WP{}FFD}=` zk0eMwn$Ti%Wx?Z3j?+0xrIoI-KMii(S;2mSL+sv|5@)4Tyv$6_g%eZ`Fyt@-@^`x&kDE_ z7~gB*9`@>3UMMljN&Z4&*>mPV6z8!RYpX)qRQJ>zD`2|YXglrzKUU}}l zrFnko=RfO&>eyFJXctjQ5EVNn@%1drza1gIUDpz&F9kHr%4gC0v~|ag^UoI5b1Q!d zsa)c{{zXLd+Pe9ocnoAH5{b2CC2(z?D?p6BYVxw1Nz-& zA@u?hiUy4rY)fBVaWy#n*YoH5DbBN06`$O%;)76h{?VOGs_4<-)Del<2Ug=+-&_A0q2bTC&^!Y?C=~-aZ^h(g{LQ9`n zlLFI1oeF`#Pj5M%@8)>%zOL*8@4^@TI-A-#?wM|`pPoGZ`+@38j`uI6)~&pH=)Hrm z*Q#Up*H28IoIGV})DGd}b(-Jpw!A2v8Qh|yqR9AK?a$-<773k0T1P@FMN(R4 zX-%wgo+IXbV)J>GRi|`kZ}M<4{+rA4!+K}2?~xU!)pG@Mrx<*>zVki*qN;{JefJf= z<)3~(EqOxn!x?$1$JK5-ZF#V8vDchcUEdsM3b%(ww9MfAzeD<<>FKPRRhtj3OKTp+vTt<9$+)*~!g0f{&d$_nmi`vwm_$kEPw&{rjI89q<47{rr#ZZz6xK<%lf! z|5y8axqaEhKdawW-#>l6YV9ANiWz_SG}C{~6%S7mxAOWD8+tFq=HmNT8S9VDT({Gf z^N_jn9CH=zH3!&KLefq+GM)n-)4mbqDJ`}|C6 zDD60Grm|Hrq-}*G^R1>1F~#?q&LwS!{_=b`{@!$-nRmrXj`ghbTXH)N@6xZD@oACm zj2F7v6=@BY5e=#lp=~#sVm%z$iYBxxOcXcN6p8h$hz=?Gk6$1npcts8v<-=Cj=wP+T^nP0}&7XNJ+q zrewnwR>#ih8No{8%bbtA + android:pathData="M250.09,13.49C251.39,10.51 251.11,7.08 249.33,4.36C247.55,1.64 244.52,0 241.27,0L228.81,0C226.08,0 223.61,1.62 222.51,4.11C211.54,29.1 153.63,160.99 134.29,205.04C133.2,207.54 130.73,209.15 128,209.15C125.27,209.15 122.8,207.54 121.7,205.04C102.36,160.99 44.46,29.1 33.49,4.11C32.39,1.62 29.92,0 27.19,0L14.73,0C11.48,0 8.45,1.64 6.67,4.36C4.89,7.08 4.61,10.51 5.91,13.49C26.64,60.8 95.56,218.1 109.63,250.24C111.17,253.74 114.63,256 118.45,256L137.55,256C141.37,256 144.83,253.74 146.36,250.24C160.44,218.1 229.36,60.8 250.09,13.49Z"/> + android:pathData="M135.14,123.87C133.67,126.43 130.94,128 128,128C125.05,128 122.33,126.43 120.85,123.87C105.89,97.97 71.44,38.28 56.48,12.37C55,9.82 55,6.68 56.48,4.12C57.95,1.57 60.68,-0 63.62,-0L192.37,-0C195.32,-0 198.04,1.57 199.52,4.12C200.99,6.68 200.99,9.82 199.52,12.37C184.56,38.28 150.1,97.97 135.14,123.87Z"/> diff --git a/patches/src/main/resources/custom-branding/youtube/drawable/ringo2_adaptive_monochrome_ic_youtube_launcher.xml b/patches/src/main/resources/custom-branding/youtube/drawable/ringo2_adaptive_monochrome_ic_youtube_launcher.xml index 084c87662..72cd56f5a 100644 --- a/patches/src/main/resources/custom-branding/youtube/drawable/ringo2_adaptive_monochrome_ic_youtube_launcher.xml +++ b/patches/src/main/resources/custom-branding/youtube/drawable/ringo2_adaptive_monochrome_ic_youtube_launcher.xml @@ -9,9 +9,9 @@ android:translateY="89.6"> + android:pathData="M250.09,13.49C251.39,10.51 251.11,7.08 249.33,4.36C247.55,1.64 244.52,0 241.27,0L228.81,0C226.08,0 223.61,1.62 222.51,4.11C211.54,29.1 153.63,160.99 134.29,205.04C133.2,207.54 130.73,209.15 128,209.15C125.27,209.15 122.8,207.54 121.7,205.04C102.36,160.99 44.46,29.1 33.49,4.11C32.39,1.62 29.92,0 27.19,0L14.73,0C11.48,0 8.45,1.64 6.67,4.36C4.89,7.08 4.61,10.51 5.91,13.49C26.64,60.8 95.56,218.1 109.63,250.24C111.17,253.74 114.63,256 118.45,256L137.55,256C141.37,256 144.83,253.74 146.36,250.24C160.44,218.1 229.36,60.8 250.09,13.49Z"/> + android:pathData="M135.14,123.87C133.67,126.43 130.94,128 128,128C125.05,128 122.33,126.43 120.85,123.87C105.89,97.97 71.44,38.28 56.48,12.37C55,9.82 55,6.68 56.48,4.12C57.95,1.57 60.68,-0 63.62,-0L192.37,-0C195.32,-0 198.04,1.57 199.52,4.12C200.99,6.68 200.99,9.82 199.52,12.37C184.56,38.28 150.1,97.97 135.14,123.87Z"/> diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/adaptiveproduct_youtube_foreground_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/adaptiveproduct_youtube_foreground_color_108.png index 5c2cb369ce6ef6001f4532ae883ae1171ba752b0..93c925a28dd7233215f51ffdd0169fdad56ba10b 100644 GIT binary patch delta 1400 zcmdnZy_|c3N?@L+i(^Oy`7aeaLXaWP5eAeQs#=YxT80D}U@L)h$deo?yvPpK5XB!6vB`zQdx8 z=XUwu+PDATWwT`_e?IHH-lqM);KZ6|=Q|EQSHJLS_1);7nZFaY?X&auYi1{0HIL60&%9e;*Zx9(s-t(`o3b96u(iQY0)lk{omXp} zKgX&&^~XZ?|2yUSn$JjC9DcXW?@fK+?G=L2w_JMb4P3XZ4Zbp=d+PVS;f-fFcT9Bt zvfOXM)8w1EVzyQbBfn?_i})tH9oIhphhn&^++hqLIyYNupWsn7jk@bU^ zoB!2PPF3DlJr~98b|XNqblSJ3FP0m4Q}_-oEt~GVq-}w!Y=lJT+dd^DDx#?N# zyhTr?X&T$6(~6g33#3xStZF$FZ7cun*z)A(v--&&_OASvAa~-)LEEVL&Py5>JS|-- zKila2yOt}hr-g#V^!`4dzm;zfV-(wp+6MwJeV1RXu+8gqUh>m#e^1rV(|eC71{q~! zK6oVGAoSI)-Gg=il_Czk@2^x9dF$IfL>*3l*W2R}7xz}%!etjOUS7@CisR^i z5(h>G1_r|o^{?5vKg#s6&Jf%g-XOS;LD`AXt%a$FgH=M1%Rosa!A0XhM*#T}k|48~ Z=c%%Ug~*?>WME)m@O1TaS?83{1OOxqn^*t< delta 1384 zcmZ3^y_VYi(^OyYiQT*tyLp+O z*iEdGu6J~CVG$G*ba8PJ__(o{f5X9<^JBkIiu)P z>Z{_}d#ckX#arxt?rq$Cz1u6HnB(1vcRBUzPa5C8ms=teV`#bU?_4+k>byP7e2u=Y zyoMDnjNXUeoZIu^-15AN^)HnQj;6evWS%wu+0KoE8|q!MIu1TgiC{JR{qWJ7d#}o8 z@7?|C@3VCgd#*o{Jzpz+C~iX}_wtO6gHP2HeqOyD{i$wsqqkkgQ>M(1>}%U*-L7Mv zCja$+$HC`JH@MASKe+Pd-W>j@`-blio3$TgJu#8>{now5i?3^LV9WV-&{Zm_U=_cP z;k|oj`fp#K_c5?qoTJ{@J}dn69T9GwuV0owdr+z^!#sQCy?Zlel!^QN+VNPd!0xu$ z%jS3A?iWoy@XX@QLPfUi{|pXSkR@?|=8%&Bp#wO0jo%LZz!S5AWs!&ou5lc>A^g-QW78|0m|1 zledjCHIHF;Kai$3<${2-Guwuct#{{5+*|#n=hfS;W#Q#T&ZY^T*S%{NKIXZ>WVZW3 zO#b$0pZn6*?%%B$)=l6m?R{C?UHQ*)gK*BagEOU)GBnwB;&0^5p3x|J`xs9_tB~~q zrpj;A4+MqfS8>>eA5z>9$){eq`)p8E{oKn+WgmV$+t?h-n42Sg`+v;mI|dP4X6+BN zcnwXqGEXbd-JW=7!;`i`=U7LR4*6*=^M1;0*mCvu0jKNE2aN8Nc~8@k4709#vgFoB z<(PjxbH1IAcb;d-6d`w2!1;DW!p{3;t5tex7G)h;@%X`~hI1XuPi}tK_&CAXEx+fg zz~RRFrL3=~`%BzjSMw-hdi$Jz#5v%OZ=O86E=(MeJQIqby>-*b8^l9)KgnJ^n;dL zuRkB0-m+P534?d;?W+P$#Vpv&ii@g*ox*OdnK(0Z^PT_49xeB*HW1F~JDj^_y`q7n9|MGD(9Ixg+v$PeIPpBBct*V%ardt>UFmxhlU zo(kTZeuvwLD?)B@Z9{uwYD(h!3j$A_6EfX@GrVnl+I;BVLd8>_8`dz$m(=eP;%h$3 zWwBCYdq&46-3?RJ?{XdZ#a>(b~5%gomJv!7BY~}={x9KcW;rRmw!T~>^+8Qa&`9?DxTs#ut`9S@icei4p-+X zk`wNq;k#1JXX@hF_D4-Kpgg1FP`$m_tkcH>R0Eu+Oqvk>kLv}m)S?gT`5wlHDmBV2 z+R`xR(w-gfE(ko8yTNbv`=Q+58j~Z!SMI;P#K_9Pz;Iy0zqS1Lk|g*G_zaX}5?m|} xbQClQK4efn#OT(-+{3{xAxKEV7{3<9uYZ_VC+0i8V_;xl@O1TaS?83{1OUiDqILiP diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/ic_launcher.png index 4ca060e2499d5b06306f07da96c1970b3d4258bd..c922a45568fb2c03b137fe2cfb01c43c5d408416 100644 GIT binary patch delta 2870 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 Q1_lNOPgg&ebxsLQ0B|a&RR910 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/ic_launcher_round.png b/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/ic_launcher_round.png index 4ca060e2499d5b06306f07da96c1970b3d4258bd..c922a45568fb2c03b137fe2cfb01c43c5d408416 100644 GIT binary patch delta 2870 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 Q1_lNOPgg&ebxsLQ0B|a&RR910 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/adaptiveproduct_youtube_foreground_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/adaptiveproduct_youtube_foreground_color_108.png index 54b9cc9d700dcaf7db26373c6ae5ca74b93ab8e6..e9eac76185ef3370d0faac6afbbdcae7c6a7b99a 100644 GIT binary patch delta 848 zcmZ3-zMg%83S-$sRiFCv`)m)C3ArRP*x%kJJ0~~3WL@s;gOML^Zp*#BE%)|}-`j3_ z#w~kScKW;N{#SoDSDmcNI*@$flbqDCKlhVD-(CNkKDYL6{xk!Y%L0enpI>@@mBX%K zntQ-p>1j248`I*>{NK%U{_~3ad!G0IIxpOoAa!fYm&&uuv*PY-cygM#-{Dz3d&q?> zb9TKF_QWH-joo*?{G8JKUg0y#r=r6_YEl_(j(oY{Wr-Iq1uF!-khv+#$39ELu5D?I z=MN?${e=x-)@BuzyB~{b|8MkIw|JVi^~=lW`OiB()1LCIP12Y*V@_)B{HwP_f9qWD zdU7LsXPM>9ZQK`po^Ez|{OVx*gq=K=TkCI`?cN%?Eh_g9lTzot+^u)L&NJvYoUzY1 z!Rsx1yJ6YtHEXxswW;YnD>hN&R{BYk-Hd0$_VF3N7pY&oX6>ek(1ML```8tPK2}UT zeC|-ntl2&mQ=hj9PM>l&yf$)n;{NMt%l^tuoDj)Zz2@YWR~ox-uAVSidfKi%4QZ3s zJk);f(q7Npu4W-4@X?~}{Dn3jHYxvorc-}$9m<~YlSehBcFyC2%O20+`_IbA^6z=g z7S)-4hCeur@)sJIpOHy!Q0uwYZaII3^_8DH0?q_36XY{l{PWrRO09$b6Dk=hQ*7@% zOxnqD{j$8n3p>{8c`G$uPmq4sct(H4AztI_K?@{(UjNH`Ua#z!!4z}e{en~k! zJxTkXITW{CV`j>GUS7Pv#Aoqezw82$jHtrHXT<-vnP14ro3T?TctdtHmx zl^xGhTBWB=Q))=-30i)P$=724<%!?C4m?+hVGwUJKV`f==+1^OhO8NTJbXW~%{uw# zTF9@JtM44y%V_Cos~%GyoF`@epl#`TU5CrFul!;-n^vc9`1dQrthYHzO)i93zYX7?SN8-Mkj#izsE9s27RD46RcOR|1URpDe_7_=z*NE{MS<4OF3Da0Y%X3)avEOCg#Y~syzih{}sAaguj{an^LB{Ts5;nbW2 delta 824 zcmZ3_zK(r@3S;R+RiFCxOaBWp9N1@jz(UM5QKmlj_O{&HT-U6(<+^4c%?5F{<>psE z&;FEG^l6ggU6tqa|12`zsXx;=_`ALdro39yjA<(Lvz}f7|Md7Tl5Cq$1Ix zn#Uh0wIpsi&mX3n#V5{k8~aOLaBEU>>pfLi`J!vH!kLnb6>U|$fezkJe;a%jZGW#& z&HU5B(lRHsJyzeqc%#D+-*LquU`;)AT+21=4cP`el{4I2XCt$vKnyhu>wb*ml zD)Xeb-b>zng75M9NygO-x$O4*o9Ed%+*V4@j=lCQ{@Kpoh8;RK(XTcySFkMBzEJh~ z(3;m>&z`MbH|Oj(y9b8HtM@P1^6b}}a`p79OtvT1HTQ|9#V&N1?eu)|UVizRZ;B)8 zQy#F?b?K#OU2yubRP*&|{`U^wM7vJ@bh)p5R{fXk<>m_){J+>=oHZwyWnaS^W|0T2 zH;+{;P`&umTK{q3 z^V6p-pR}|q{N|ook+^LuQ^w&JHdZf!v^W;eIN)8cS;D605PdFx{f#*91+t5a#ivVG zHZ`rk*ZAAe@cXArk}~X3(s46-XMF1Z&bjmI)e}=(KOf4`emvXka=uq(;f7= zpIU5nbeeKo! zr3V={WiNQ#YT2%^KsV@O(~rfs&ME8fY3r%t{#lWDE|n+cO2$8*AZBQh(9Y#WAFU@oW_H1{F_%*fTY^&CZu+-`ZFYDi zr}zblc#)e+686*|^*V90!9TsvqLfwSyuj}RM#X~M&$K4SSp6*I^oeu0m*4atB`e|e zl!n}8rj?>zTc+%gJo{N;ei&bbjW8#h;FF%7rp1B##a9Nggeo}|9QeH8LC5p+G3-xX zbH43OoxNazLQ=NiEyf;){|vzmJ0qI6PDnJd*36t;Q&S^#I%dCheeJvy^?MtReX2P- z%k<@khlfoP53z7@b1!!LFS4+A=dM{TZuQ~|FI)(avahpobbEVit8bd#7 zJJk~_f|ho9eq_)txEtbK@J}zde$fu2tKaMY|1H0@HCw##z?qrGnhmkZDc{OUHe8t# zpA_=#TMNk9yUX7%v;X(w@Rf)L>D*&4Pu~gFnyD@%x@e_X!+$;rg9f|WUoQM|HVaHL zF9mFy;j?AS4Ut6IKTl2yGfkXlTP@UKa^lK_Y15*AI$t>*F`uc@@BO{KoY@=9Y;5kVDRSm~)>h=@ zyHdm8!+UxXm1O><)W;WubL2X)Hg(@*7s1v z+NiA@#qaOzbY|ri+Y-{aw@9G-_ElAH5e^=nC0nzv3wgY~y}f_Y;>DU81}(Eh<~!Q1 zey7Bc`{n47BNrN(*$u?AH(V296}S*SXYSnC$07yg<=@k}?`+>vq7krwq4v*@iE;aC zJVmua6u#6i{kdAeboHj@29tVmr7s7a*2nKxJ9Bovz5Oqp&1k z62zL6oa|{A`Gu9eHF#pvVonF?T50nhSeJE-oy;uI{+t+}HTQf>l6Z%>mV|PmSYp3Irz{Iqmgjx&QomdH47A z8t!3!Vmd8tp*9~MUtE!H%2}>AVXGPLxIFn0wl?bM*YYBU3616Wcq zd5>)M-FGaK z*7xAo>hoIr*1UYE@-32e(D?7g%?A>T`wyCiCLD-jB(f&jwC0a7bX9e0<&!c1!t~Gk-&kTa#7= zh;0yRYVj1lkn2!qTFk*L?p>#Rfayn!h5P>)4xbhB7E^kfC-*b32gg2N?s%4?QGU~d z?@7k>XGMOxiG6!8{i?&8mDBdT@eAXzU+1XxVfo&}7K)X{f(6ee9GjKjA)NAAZt8~V zo6@~>>(g2t!rgRcZ&%MR3)E0Ln4rWlp(8$p`+L&O{fYchO>0>levd zUMMr@e9lwMG<5@8wj%Q;h0781u3wV6ab()VvmM(uZ`Lk8Qg@qGv){kiK1-~uzq;o* z!>t#GC7vbdUHfoL!j&!MrSR)|wGA65JE^efExZ0YxbWiCv$t+p>4WMHaMkfBZ0Wom zRoyRsyyDo;+EV&PvX9}`CC%uEYD=%~7yiRr4b zmX<#!n!cT4na#w^Z2ur@-P6mGyTy&3Y!X#IKiNFBM&!`VzmM*vCFspm+L5pId;!bP zi%t@2)SMg=YYyG1-}L`@)cTe+QX5LsI9Gcw;Axw{eEy7^Uc@RFznM>urx;awIo`84 zc=FDXFi+0gN7z1jXi zSy3+|=d-mK(nIjxM|8B_1J3IdWdcFSTkB^VPJUq<4Dr&3N)DFW- zJDV22sG7)`$yDogRBEMDE7zBQf2*x3KdIDyK5L%#lzGpA-^-+m&UJbTn}t6+W~XlT z_2uRE1qW_!PWKdExA5YzX(fAZd@-pvJa(gNixlr%>+(K>ZTa{2%{YB0#z7*t${_q;cAWlPQZ@xy2{NEnlv--*my$rPG&mwC%s5 z+FXCnp<7&Et!JiDYS&RtUDe{+O3$;png$1F?TTOKBU$z73FqFrzq9K8|1IyjnT!xcZ?Fi-I+Sgk4`W@8g%ZTOy?D6|q^*p>bvBwjV#*MQ-+m>_FX~T;n zox+y$oL3$>Z<^`yv(#kMAvdPB>G9sK^=rH;%rY<4t2o_1JKKEmuZYzL@+KbnbonZ4 zc6eNf;shrnP@s#5ty<{jsuq0y)NRg;fDD`Mt-@>S|NW`__2Z-RRK3_+x28&R)}Fk3 z_pY%cV}Abogl`98vqd|4dzT(==NCSew7cvrNACUliT$%eZ#nsD=Pi40_rL$bwS~^? zPET)c&zC=Xr2fc_MF(v8`T2dDnCj~4s_H)6h+++3W9OIi+3;p-_H~Z`?X53Y6f{l@ zF}QEAZQnE}XXls4dZk%dtG>KQe0}c)r?hR9oRi=-4Tgl&y>)-B_SXKMCS{V*V5V{K zg7CZ9CYes}@9kZ@I(+@4g9#fV8RI5C783dJdUbVpa7s#w zll7t0%gcOQ(*OScF8+2~%Z1u=jI~Wn9vop0n$~hXIX{2?yZih7^Y86hSpV;*`a;?7 zAI_|e-u~om!`9Fjle)XR=hx_`oacJ8C6uv_+5Pl%ef5Z{x3{(i>9t(!leOl^-JEvT zNl#CtIDv6t!nSQfS|;Wb$@?dJTXz3^SiWpo(T8!tv^(@3C%g6d%*HySkvoQ*XPKb zpYp+Jb=X>t$_C!sr>E<`yt+F4%7#Se==-vrA1dEHd-iQ|huqJyTdmf)VUIL^{(N3P z|MJmpan5P%esir_jaDDID8!ZHeAlx|B!E%It#=BCa>9uTikw^~+1Ge-z1sS@Jj#}o zl$7us-RN7_vso-+&7;SU8K1NYt(Qyu%gx8fH|q-Dw+km4_g;uo)aTGhtCg3ZulIms zUFO~}&Ju2p$3D2x- zdOE{nhl%iEwkP36?6Nx|KKC*(zmcpu_wVKmgUxmY9-{2i%p00_E}WbdWNgymJnzR^ zfn{@)I-fVy^Te(B<-Ba|lcx_;j&nS+^{}klS}q_qiCdgAoinq?(`k-@`RNr5k(18c z@v2KZ+A^<4qAb5$tSoL>N5e@U0R`o{dA4_&pZB%$oH(^&zTyhi?Q917o-NL(_S=%{ z^GNgXBp215gAr#McN(NumBxAIJ9H=?o-g?H$&-+V$J>OxbTKjLBd8}J?_3wJPGPgOaa@6y7yN47O7Is8C rR2-lAkn2HQTB`M&B~yM`9{fMuOuFRgBsn<-1_lOCS3j3^P6*AZBQh(9Y#WAFU@oW_H1{F_%*fTY^&CZu+-`ZFYDi zr}zblc#)e+686*|^*V90!9TsvqLfwSyuj}RM#X~M&$K4SSp6*I^oeu0m*4atB`e|e zl!n}8rj?>zTc+%gJo{N;ei&bbjW8#h;FF%7rp1B##a9Nggeo}|9QeH8LC5p+G3-xX zbH43OoxNazLQ=NiEyf;){|vzmJ0qI6PDnJd*36t;Q&S^#I%dCheeJvy^?MtReX2P- z%k<@khlfoP53z7@b1!!LFS4+A=dM{TZuQ~|FI)(avahpobbEVit8bd#7 zJJk~_f|ho9eq_)txEtbK@J}zde$fu2tKaMY|1H0@HCw##z?qrGnhmkZDc{OUHe8t# zpA_=#TMNk9yUX7%v;X(w@Rf)L>D*&4Pu~gFnyD@%x@e_X!+$;rg9f|WUoQM|HVaHL zF9mFy;j?AS4Ut6IKTl2yGfkXlTP@UKa^lK_Y15*AI$t>*F`uc@@BO{KoY@=9Y;5kVDRSm~)>h=@ zyHdm8!+UxXm1O><)W;WubL2X)Hg(@*7s1v z+NiA@#qaOzbY|ri+Y-{aw@9G-_ElAH5e^=nC0nzv3wgY~y}f_Y;>DU81}(Eh<~!Q1 zey7Bc`{n47BNrN(*$u?AH(V296}S*SXYSnC$07yg<=@k}?`+>vq7krwq4v*@iE;aC zJVmua6u#6i{kdAeboHj@29tVmr7s7a*2nKxJ9Bovz5Oqp&1k z62zL6oa|{A`Gu9eHF#pvVonF?T50nhSeJE-oy;uI{+t+}HTQf>l6Z%>mV|PmSYp3Irz{Iqmgjx&QomdH47A z8t!3!Vmd8tp*9~MUtE!H%2}>AVXGPLxIFn0wl?bM*YYBU3616Wcq zd5>)M-FGaK z*7xAo>hoIr*1UYE@-32e(D?7g%?A>T`wyCiCLD-jB(f&jwC0a7bX9e0<&!c1!t~Gk-&kTa#7= zh;0yRYVj1lkn2!qTFk*L?p>#Rfayn!h5P>)4xbhB7E^kfC-*b32gg2N?s%4?QGU~d z?@7k>XGMOxiG6!8{i?&8mDBdT@eAXzU+1XxVfo&}7K)X{f(6ee9GjKjA)NAAZt8~V zo6@~>>(g2t!rgRcZ&%MR3)E0Ln4rWlp(8$p`+L&O{fYchO>0>levd zUMMr@e9lwMG<5@8wj%Q;h0781u3wV6ab()VvmM(uZ`Lk8Qg@qGv){kiK1-~uzq;o* z!>t#GC7vbdUHfoL!j&!MrSR)|wGA65JE^efExZ0YxbWiCv$t+p>4WMHaMkfBZ0Wom zRoyRsyyDo;+EV&PvX9}`CC%uEYD=%~7yiRr4b zmX<#!n!cT4na#w^Z2ur@-P6mGyTy&3Y!X#IKiNFBM&!`VzmM*vCFspm+L5pId;!bP zi%t@2)SMg=YYyG1-}L`@)cTe+QX5LsI9Gcw;Axw{eEy7^Uc@RFznM>urx;awIo`84 zc=FDXFi+0gN7z1jXi zSy3+|=d-mK(nIjxM|8B_1J3IdWdcFSTkB^VPJUq<4Dr&3N)DFW- zJDV22sG7)`$yDogRBEMDE7zBQf2*x3KdIDyK5L%#lzGpA-^-+m&UJbTn}t6+W~XlT z_2uRE1qW_!PWKdExA5YzX(fAZd@-pvJa(gNixlr%>+(K>ZTa{2%{YB0#z7*t${_q;cAWlPQZ@xy2{NEnlv--*my$rPG&mwC%s5 z+FXCnp<7&Et!JiDYS&RtUDe{+O3$;png$1F?TTOKBU$z73FqFrzq9K8|1IyjnT!xcZ?Fi-I+Sgk4`W@8g%ZTOy?D6|q^*p>bvBwjV#*MQ-+m>_FX~T;n zox+y$oL3$>Z<^`yv(#kMAvdPB>G9sK^=rH;%rY<4t2o_1JKKEmuZYzL@+KbnbonZ4 zc6eNf;shrnP@s#5ty<{jsuq0y)NRg;fDD`Mt-@>S|NW`__2Z-RRK3_+x28&R)}Fk3 z_pY%cV}Abogl`98vqd|4dzT(==NCSew7cvrNACUliT$%eZ#nsD=Pi40_rL$bwS~^? zPET)c&zC=Xr2fc_MF(v8`T2dDnCj~4s_H)6h+++3W9OIi+3;p-_H~Z`?X53Y6f{l@ zF}QEAZQnE}XXls4dZk%dtG>KQe0}c)r?hR9oRi=-4Tgl&y>)-B_SXKMCS{V*V5V{K zg7CZ9CYes}@9kZ@I(+@4g9#fV8RI5C783dJdUbVpa7s#w zll7t0%gcOQ(*OScF8+2~%Z1u=jI~Wn9vop0n$~hXIX{2?yZih7^Y86hSpV;*`a;?7 zAI_|e-u~om!`9Fjle)XR=hx_`oacJ8C6uv_+5Pl%ef5Z{x3{(i>9t(!leOl^-JEvT zNl#CtIDv6t!nSQfS|;Wb$@?dJTXz3^SiWpo(T8!tv^(@3C%g6d%*HySkvoQ*XPKb zpYp+Jb=X>t$_C!sr>E<`yt+F4%7#Se==-vrA1dEHd-iQ|huqJyTdmf)VUIL^{(N3P z|MJmpan5P%esir_jaDDID8!ZHeAlx|B!E%It#=BCa>9uTikw^~+1Ge-z1sS@Jj#}o zl$7us-RN7_vso-+&7;SU8K1NYt(Qyu%gx8fH|q-Dw+km4_g;uo)aTGhtCg3ZulIms zUFO~}&Ju2p$3D2x- zdOE{nhl%iEwkP36?6Nx|KKC*(zmcpu_wVKmgUxmY9-{2i%p00_E}WbdWNgymJnzR^ zfn{@)I-fVy^Te(B<-Ba|lcx_;j&nS+^{}klS}q_qiCdgAoinq?(`k-@`RNr5k(18c z@v2KZ+A^<4qAb5$tSoL>N5e@U0R`o{dA4_&pZB%$oH(^&zTyhi?Q917o-NL(_S=%{ z^GNgXBp215gAr#McN(NumBxAIJ9H=?o-g?H$&-+V$J>OxbTKjLBd8}J?_3wJPGPgOaa@6y7yN47O7Is8C rR2-lAkn2HQTB`M&B~yM`9{fMuOuFRgBsn<-1_lOCS3j3^P6p1<|xm)_&ZkrvZm#m2V@pXEfWc1%F zw-0}E+}ZhuJD+cLTB)z8qHM{`7i<1*O88>x@$*#GvlrIN$C`?SlX=&1ri*=U-Tduz zQ=sk%hFCv`orjEn`z)R%^GSMU;fJ{sPaQSlpXp}4eb>BA1w17uTddCAG30jp>)3U& zsy=P|{T1`S|L6@{x8-{N7k{?vLJUE_EUWkHNZjQ}yO28d>zRow1Vy)Rm#Ai$(k*lU z$FT*c*sgDqD%p5Icijy`Znw{lr<|`D&yMQhzi}sNPf@GxzsEjo*9+`DW3gnWl?o7gXhEMV?<{g(1jF;;bsGpX?M7gHTK7qyt+TXKgNL(fqjXo<6tR z)CWv2iX>M>oIh*syKcKl!Y|PPRUOldCOa1%+^K!o^}Nzm9}yTg-)2`6=7xNl!6Yap%p0$m(?Vvq7p)4*Us! z7H(jXuX%%a*AvI!@>_=7ZjT*KX}c9)ZhE%Q%r>J>i!<2y*`8IFuU9LiuGtNW>)#Hi zl{Baet zpY?2SWG#t&xbAoA!4oV&Y_HSY+w@*Bo>Dv{Rw{nZf@R5%-LLB+4YZis9jD8z$TzW8 z(%Sg!!Uomn?QMF2*I!%;xP0i=tj||lbuK*BnDX_;-^~dJs*l!PIm^cr|LtDGhSXQL zbZWybZu@_`f80%HM)juB^bhr#cR%Z@%~qTKQh44D(GbJ8IX_Dly$fGZRKQenvgOvi z4as6XznZ2P+|9Y(apd@Jca>-d(a`=CN0zr5w>D3)o3|-mtS67b_{ApAS??w08Ep-A z>C#%HX?AXlT*<}*zVo&ui}gHfn4-RgwL9YGp4ca+d;-c&A`R|ohcW!WE~b;1{B-`JYcjtz zv(|2Um~xt5Xf;>*4}FmaJ?o0|;@rqcw_3WdConFD8w0+ef zyPmsdL9-e!6$q4^Y<0T_3N^RpDchI)+_6KJ_tE3+%a0w;4X^j?@4R^@VpijJ$5R^l zH}$#QzBkoRaVeBrbnouhqL4p*&GiSSzpXg0GT~E$`P&(+i$x|B?PtFKT5iImH@ToB z!M~)ZUf2g>hosK~+`1>mm()#n*HGdwzTEf^NxmkN-s)#2c(;$&;^? zTXN>fy-0)jk31eT7tfr0hE>zQ_`S{y{hLg?A|9l%+bv44e*ZJ+V2$qo|QyqnJYxwO22wIovY%sMvBa_ytCn-ivR1j!lA*eSn6 z=XqSD!KU}${(WRK7JgIB!?-aa)@f7ZTkV#oD+`?r@73=9km2^02z)hR1& znUJ6$p&-G*#=+Lqn9wk>Q>LPf>7avwgMk1K3o{Ed4kp7vkOGjBgIJk3H9}105Yb$D T+jxSZGsq>Lu6{1-oD!Mf0uuPiu4js7srqa#y6K085tOOSQfsI|1~X%&ygjJ(SM?SSACOg^>c=p>td}B zSLS}cxh;494Y%Ce+wQ8Z%-tS*dt0vc$*R|u#n0btJ?~rew|?&WJ+J50{yP^xZ|`HK zwv8uK&g6c3xn=$S7v>88ug15>q@6sur{>@7B{gE-znN6e?(s}>&Yi2z#rD@@S^TZ* zpO@>1*UNAFcqsqyiJ56@3&wR|u=;$27ip|^+QIG-fEm-*!}fjCv@1(C>02lzi}0LNp7~uTecO+o&-Y&$_sKjoyT8%xKi3bllV?gp_Gw7` znU-=)@@(!0+5I)m?^!l2fBjc&joFX%pZ2o;M)xg@l11uy-YJ;&-{6{Noc%{_?>V*2 zDeA#tKYgoCC%k=nqkT!5`Rt<;e=bTen3rNDbyk;uhEdAS|00{(PyboY7q(`v@yR2W zR`DV{&l2?~&RU&gcY0@K-DEGFkMqlVRi&$wXWn0OiS6~d({XC1;Wzf2n_$SrW<9|t zb@5Ktf0tjM<)7iWt+YNZ_UNqD6MU-EPl~fPr`}{=@{D2j)uKF)KNDm&H>JIsFKRJ4 z=gGoK`!lCgH{8>C6BqP(g6?}C$;Al;Iw$`mn3$Uuob$iTls;K^j*!i7_oGquDl-kw zP1EOMyRS5pb=6JJgT>E%d1iUfe4~`Ow%g-bZ2B1q*5=io&q5dPEOg|aUoS6h^Iy?> z=99&Rj@)rUYd)%)O}(SI`v=%3ho*yGss$j`0^7ra~f zWp_^D;+ugJPjm6}$JP{9oJcygAiV9juEwf}_`q*{KVumLSc~nXC-@j&ee+<$(y8pN zdP{qDE}67p+p}liH#&-(vAp`0$L{d6dXrgmpO|Y#@86JmJJM_U?&$h`K3}Z^_`Xf~ zIroMDYjND~$vz!f+p2$T>aT8F?~!^ks@hfWcZ}T{_xfoZE(c={rkhkB-RALm?%^=M zmqPm{ttr`*<|}Ply>DLe(w;yAi`gl5VPZNprAPS$SHItoa;f_5p)ec8HBW;l&3u~m zb5TP5hwMo+mCkPOi@Ln8^huOa>XBV#v$p!E&Rl;-w_b#&`sk#a>Qh;}@6Xv@`DB;y zS>@}Kk6m87TJN;}numpEGq1ckG*4gTOlYs_Ou0)nhfnw>_AWA;nzu~1O1 z()(t!a_330kbh4;i2dJnad!Ci?t4CMZn<&apJ%tc7OziOKY3Pnj$HUT3D)Mf9?O=Q z#2c5Ljy6r+wroR6V%FLfXWwV8i=CZvYgg4i4GEpaH?_;AoK@TFe)UFfXK3=a;HcF{ z-*{YzG1sn+*!+C;9P5;xrh_Vze)`Vp@4XwUrI+`-cgKynU;4K%TD*PQ)tJlODMEKu z<3)J(c^aKAc`qoryMA?M${oF5msjkF_4SD#T#R(huPrBUx zaBpuG##9&@_8!nw&Q0U-pva#_@R38jNkF20cf6t}T>WX8KVjDIoXjV0PO>(0syx;|!#3fJ z#*^1CS)12SI3tx=dh|mAT@RR<_y%8f4s6To`_{CMWLOrmxle6u8)`C;AlE zZ(}|A#i>t2Vv2o0Gtal0g$V|C{g!_*=KXncQNjmfFZ=mQ_IouX?zmjrEV^^1Fl)15 zitWP_XXj{0oY8zEdb-6nUVycE?Fk#*iPK9LC2U}+?*DQp-CI%rwd=tL9+!-nEEgsi z)b2YFciG17>mm8KmqC>f1Czr4_18qzn1p92a7b{laj-QVY@V#ot~qh3%0wS?Q4wF) X<(h{+)rc@KFfe$!`njxgN@xNAr6p#t diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/ic_launcher.png index 31c9d1c36abcb51aa81678bd9b5a9810f2a817f1..8fb88d36762582d219d994be40074203324784d6 100644 GIT binary patch literal 4077 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 literal 3948 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 literal 3948 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 Sx>$2i_rcTE&t;ucLK6VBX^0L0 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher.png index 3bbb99d4a186c03f44553edc3df32b77be705fbf..4ac235573a533f5aaba090ac7312cd7183bb781c 100644 GIT binary patch literal 6256 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 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher_round.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher_round.png index 3bbb99d4a186c03f44553edc3df32b77be705fbf..4ac235573a533f5aaba090ac7312cd7183bb781c 100644 GIT binary patch literal 6256 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 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/adaptiveproduct_youtube_foreground_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/adaptiveproduct_youtube_foreground_color_108.png index 37e6ddc39caac76358de4210988a78bd1e151013..df2d7f0a47257593b3aa20d972880a3f3495fa1b 100644 GIT binary patch delta 3814 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 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/ic_launcher.png index 5857ff6fd276e303fec960d77e2215da4d98d939..8adc8af1db6431ad75cc7e65db98906629b255d3 100644 GIT binary patch literal 8744 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 Gp$Pywr0Qq@ literal 8589 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 Gp$Pywr0Qq@ literal 8589 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 Date: Fri, 3 Oct 2025 07:25:03 +0000 Subject: [PATCH 41/63] chore: Release v5.42.0-dev.12 [skip ci] # [5.42.0-dev.12](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.11...v5.42.0-dev.12) (2025-10-03) ### Bug Fixes * **Custom branding:** Update ReVanced logo ([#6049](https://github.com/ReVanced/revanced-patches/issues/6049)) ([9441e7a](https://github.com/ReVanced/revanced-patches/commit/9441e7acb4817e12d1443d438ef6c448518bd614)) ### Features * **Instagram:** Add `Sanitize sharing links` patch ([#5986](https://github.com/ReVanced/revanced-patches/issues/5986)) ([963a4ef](https://github.com/ReVanced/revanced-patches/commit/963a4ef43fd513de7a2d7d019992f06b62fdcc10)) --- CHANGELOG.md | 12 ++++++++++++ gradle.properties | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 697e5e87c..e92508d4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# [5.42.0-dev.12](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.11...v5.42.0-dev.12) (2025-10-03) + + +### Bug Fixes + +* **Custom branding:** Update ReVanced logo ([#6049](https://github.com/ReVanced/revanced-patches/issues/6049)) ([9441e7a](https://github.com/ReVanced/revanced-patches/commit/9441e7acb4817e12d1443d438ef6c448518bd614)) + + +### Features + +* **Instagram:** Add `Sanitize sharing links` patch ([#5986](https://github.com/ReVanced/revanced-patches/issues/5986)) ([963a4ef](https://github.com/ReVanced/revanced-patches/commit/963a4ef43fd513de7a2d7d019992f06b62fdcc10)) + # [5.42.0-dev.11](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.10...v5.42.0-dev.11) (2025-10-03) diff --git a/gradle.properties b/gradle.properties index 657e57e01..5586b7d24 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.42.0-dev.11 +version = 5.42.0-dev.12 From a30a849e6ecd1c2456da79ff5fe06fab5a789de8 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Tue, 7 Oct 2025 01:15:03 +0400 Subject: [PATCH 42/63] refactor: Extract shared patch names/descriptions (#6056) --- .../finanzonline/detection/root/RootDetectionPatch.kt | 6 ++++-- .../idaustria/detection/root/RootDetectionPatch.kt | 6 ++++-- .../misc/privacy/SanitizeSharingLinksPatch.kt | 6 ++++-- .../orfon/detection/root/RemoveRootDetectionPatch.kt | 6 ++++-- .../reddit/misc/tracking/url/SanitizeUrlQueryPatch.kt | 6 ++++-- .../detection/root/RootDetectionPatch.kt | 6 ++++-- .../app/revanced/patches/shared/SharedPatchNames.kt | 11 +++++++++++ .../shared/misc/privacy/SanitizeSharingLinksPatch.kt | 9 +++++++-- .../spotify/misc/privacy/SanitizeSharingLinksPatch.kt | 6 ++++-- .../twitter/misc/links/SanitizeSharingLinksPatch.kt | 6 ++++-- 10 files changed, 50 insertions(+), 18 deletions(-) create mode 100644 patches/src/main/kotlin/app/revanced/patches/shared/SharedPatchNames.kt diff --git a/patches/src/main/kotlin/app/revanced/patches/finanzonline/detection/root/RootDetectionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/finanzonline/detection/root/RootDetectionPatch.kt index e2b7b0616..c5ce1efe1 100644 --- a/patches/src/main/kotlin/app/revanced/patches/finanzonline/detection/root/RootDetectionPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/finanzonline/detection/root/RootDetectionPatch.kt @@ -2,11 +2,13 @@ package app.revanced.patches.finanzonline.detection.root import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patches.shared.PATCH_DESCRIPTION_REMOVE_ROOT_DETECTION +import app.revanced.patches.shared.PATCH_NAME_REMOVE_ROOT_DETECTION @Suppress("unused") val rootDetectionPatch = bytecodePatch( - name = "Remove root detection", - description = "Removes the check for root permissions.", + name = PATCH_NAME_REMOVE_ROOT_DETECTION, + description = PATCH_DESCRIPTION_REMOVE_ROOT_DETECTION, ) { compatibleWith("at.gv.bmf.bmf2go") diff --git a/patches/src/main/kotlin/app/revanced/patches/idaustria/detection/root/RootDetectionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/idaustria/detection/root/RootDetectionPatch.kt index 6c79650d9..07874bac7 100644 --- a/patches/src/main/kotlin/app/revanced/patches/idaustria/detection/root/RootDetectionPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/idaustria/detection/root/RootDetectionPatch.kt @@ -1,12 +1,14 @@ package app.revanced.patches.idaustria.detection.root import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patches.shared.PATCH_DESCRIPTION_REMOVE_ROOT_DETECTION +import app.revanced.patches.shared.PATCH_NAME_REMOVE_ROOT_DETECTION import app.revanced.util.returnEarly @Suppress("unused") val rootDetectionPatch = bytecodePatch( - name = "Remove root detection", - description = "Removes the check for root permissions and unlocked bootloader.", + name = PATCH_NAME_REMOVE_ROOT_DETECTION, + description = PATCH_DESCRIPTION_REMOVE_ROOT_DETECTION ) { compatibleWith("at.gv.oe.app") diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt index c7b4d0f40..54d7e9c03 100644 --- a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt @@ -4,6 +4,8 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.bytecodePatch import app.revanced.patches.instagram.misc.extension.sharedExtensionPatch +import app.revanced.patches.shared.PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS +import app.revanced.patches.shared.PATCH_NAME_SANITIZE_SHARING_LINKS import app.revanced.util.indexOfFirstInstructionOrThrow import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction @@ -13,8 +15,8 @@ private const val EXTENSION_CLASS_DESCRIPTOR = @Suppress("unused") val sanitizeSharingLinksPatch = bytecodePatch( - name = "Sanitize sharing links", - description = "Removes the tracking query parameters from shared links.", + name = PATCH_NAME_SANITIZE_SHARING_LINKS, + description = PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS, ) { compatibleWith("com.instagram.android") diff --git a/patches/src/main/kotlin/app/revanced/patches/orfon/detection/root/RemoveRootDetectionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/orfon/detection/root/RemoveRootDetectionPatch.kt index 594083337..8669f6132 100644 --- a/patches/src/main/kotlin/app/revanced/patches/orfon/detection/root/RemoveRootDetectionPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/orfon/detection/root/RemoveRootDetectionPatch.kt @@ -1,12 +1,14 @@ package app.revanced.patches.orfon.detection.root import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patches.shared.PATCH_DESCRIPTION_REMOVE_ROOT_DETECTION +import app.revanced.patches.shared.PATCH_NAME_REMOVE_ROOT_DETECTION import app.revanced.util.returnEarly @Suppress("unused") val removeRootDetectionPatch = bytecodePatch( - name = "Remove root detection", - description = "Removes the check for root permissions.", + name = PATCH_NAME_REMOVE_ROOT_DETECTION, + description = PATCH_DESCRIPTION_REMOVE_ROOT_DETECTION ) { compatibleWith("com.nousguide.android.orftvthek") diff --git a/patches/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch.kt b/patches/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch.kt index cfdb320e1..11bc79212 100644 --- a/patches/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch.kt @@ -2,11 +2,13 @@ package app.revanced.patches.reddit.misc.tracking.url import app.revanced.patcher.extensions.InstructionExtensions.addInstructions 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 @Suppress("unused") val sanitizeUrlQueryPatch = bytecodePatch( - name = "Sanitize sharing links", - description = "Removes the tracking query parameters from shared links.", + name = PATCH_NAME_SANITIZE_SHARING_LINKS, + description = PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS, ) { compatibleWith("com.reddit.frontpage") diff --git a/patches/src/main/kotlin/app/revanced/patches/serviceportalbund/detection/root/RootDetectionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/serviceportalbund/detection/root/RootDetectionPatch.kt index 43ebaa19f..0c9fd9040 100644 --- a/patches/src/main/kotlin/app/revanced/patches/serviceportalbund/detection/root/RootDetectionPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/serviceportalbund/detection/root/RootDetectionPatch.kt @@ -2,11 +2,13 @@ package app.revanced.patches.serviceportalbund.detection.root import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patches.shared.PATCH_DESCRIPTION_REMOVE_ROOT_DETECTION +import app.revanced.patches.shared.PATCH_NAME_REMOVE_ROOT_DETECTION @Suppress("unused") val rootDetectionPatch = bytecodePatch( - name = "Remove root detection", - description = "Removes the check for root permissions and unlocked bootloader.", + name = PATCH_NAME_REMOVE_ROOT_DETECTION, + description = PATCH_DESCRIPTION_REMOVE_ROOT_DETECTION ) { compatibleWith("at.gv.bka.serviceportal") diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/SharedPatchNames.kt b/patches/src/main/kotlin/app/revanced/patches/shared/SharedPatchNames.kt new file mode 100644 index 000000000..34b91a59c --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/shared/SharedPatchNames.kt @@ -0,0 +1,11 @@ +package app.revanced.patches.shared + +// +// Names and descriptions used by different patches implementing the same feature. +// + +internal const val PATCH_NAME_REMOVE_ROOT_DETECTION = "Remove root detection" +internal const val PATCH_DESCRIPTION_REMOVE_ROOT_DETECTION = "Removes the check for root permissions and unlocked bootloader." + +internal const val PATCH_NAME_SANITIZE_SHARING_LINKS = "Sanitize sharing links" +internal const val PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS = "Removes the tracking query parameters from shared links." diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/misc/privacy/SanitizeSharingLinksPatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/misc/privacy/SanitizeSharingLinksPatch.kt index 7a52c3d81..2fe4d7e81 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/misc/privacy/SanitizeSharingLinksPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/misc/privacy/SanitizeSharingLinksPatch.kt @@ -10,6 +10,8 @@ import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod import app.revanced.patches.all.misc.resources.addResources import app.revanced.patches.all.misc.resources.addResourcesPatch +import app.revanced.patches.shared.PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS +import app.revanced.patches.shared.PATCH_NAME_SANITIZE_SHARING_LINKS import app.revanced.patches.shared.misc.settings.preference.BasePreferenceScreen import app.revanced.patches.shared.misc.settings.preference.PreferenceCategory import app.revanced.patches.shared.misc.settings.preference.PreferenceScreenPreference.Sorting @@ -20,14 +22,17 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/shared/patches/SanitizeSharingLinksPatch;" +/** + * Patch shared by YouTube and YT Music. + */ internal fun sanitizeSharingLinksPatch( block: BytecodePatchBuilder.() -> Unit = {}, executeBlock: BytecodePatchContext.() -> Unit = {}, preferenceScreen: BasePreferenceScreen.Screen, replaceMusicLinksWithYouTube: Boolean = false ) = bytecodePatch( - name = "Sanitize sharing links", - description = "Adds an option to remove the tracking query parameter from shared links.", + name = PATCH_NAME_SANITIZE_SHARING_LINKS, + description = PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS, ) { block() diff --git a/patches/src/main/kotlin/app/revanced/patches/spotify/misc/privacy/SanitizeSharingLinksPatch.kt b/patches/src/main/kotlin/app/revanced/patches/spotify/misc/privacy/SanitizeSharingLinksPatch.kt index 0954d4ed5..4e4ad474c 100644 --- a/patches/src/main/kotlin/app/revanced/patches/spotify/misc/privacy/SanitizeSharingLinksPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/spotify/misc/privacy/SanitizeSharingLinksPatch.kt @@ -3,6 +3,8 @@ package app.revanced.patches.spotify.misc.privacy import app.revanced.patcher.extensions.InstructionExtensions.addInstructions 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.spotify.misc.extension.sharedExtensionPatch import app.revanced.util.getReference import app.revanced.util.indexOfFirstInstructionOrThrow @@ -15,8 +17,8 @@ private const val EXTENSION_CLASS_DESCRIPTOR = @Suppress("unused") val sanitizeSharingLinksPatch = bytecodePatch( - name = "Sanitize sharing links", - description = "Removes the tracking query parameters from shared links.", + name = PATCH_NAME_SANITIZE_SHARING_LINKS, + description = PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS, ) { compatibleWith("com.spotify.music") diff --git a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/SanitizeSharingLinksPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/SanitizeSharingLinksPatch.kt index 24b4e127b..7856bfe96 100644 --- a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/SanitizeSharingLinksPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/SanitizeSharingLinksPatch.kt @@ -2,11 +2,13 @@ package app.revanced.patches.twitter.misc.links import app.revanced.patcher.extensions.InstructionExtensions.addInstructions 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 @Suppress("unused") val sanitizeSharingLinksPatch = bytecodePatch( - name = "Sanitize sharing links", - description = "Removes the tracking query parameters from links before they are shared.", + name = PATCH_NAME_SANITIZE_SHARING_LINKS, + description = PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS, ) { compatibleWith( "com.twitter.android"( From ec0acc0f1339a106b08034df1117977b3d0dfc06 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 7 Oct 2025 11:11:18 +0400 Subject: [PATCH 43/63] chore: Sync translations (#6069) --- .../addresources/values-ar-rSA/strings.xml | 306 +++++++++--------- .../addresources/values-az-rAZ/strings.xml | 24 +- .../addresources/values-fr-rFR/strings.xml | 2 +- .../addresources/values-ga-rIE/strings.xml | 158 ++++----- .../addresources/values-in-rID/strings.xml | 32 +- .../addresources/values-ja-rJP/strings.xml | 10 +- .../addresources/values-sr-rCS/strings.xml | 2 +- .../addresources/values-sr-rSP/strings.xml | 2 +- .../addresources/values-vi-rVN/strings.xml | 22 +- 9 files changed, 279 insertions(+), 279 deletions(-) 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 a3488d272..763ba3234 100644 --- a/patches/src/main/resources/addresources/values-ar-rSA/strings.xml +++ b/patches/src/main/resources/addresources/values-ar-rSA/strings.xml @@ -765,23 +765,23 @@ Second \"item\" text" يتم عرض قائمة المزيد من المعلومات إخفاء شاشة القفل - تم إخفاء قائمة قفل الشاشة - يتم عرض قائمة قفل الشاشة + تم إخفاء قائمة شاشة القفل + يتم عرض قائمة شاشة القفل إخفاء المقطع الصوتي تم إخفاء قائمة المقطع الصوتي يتم عرض قائمة المقطع الصوتي - "قائمة المسارات الصوتية مخفية + "تم إخفاء قائمة المقطع الصوتي -لعرض قائمة المسارات الصوتية، غيّر 'تزييف تدفقات الفيديو' إلى iPadOS" +لعرض قائمة المقطع الصوتي، غيّر 'Spoof video streams' إلى iPadOS" إخفاء المشاهدة في VR تم إخفاء قائمة المشاهدة في الوضع الافتراضي يتم عرض قائمة المشاهدة في الوضع الافتراضي إخفاء قائمة جودة الفيديو - قائمة جودة الفيديو مخفية - قائمة جودة الفيديو معروضة + تم إخفاء قائمة جودة الفيديو + يتم عرض قائمة جودة الفيديو إخفاء تذييل قائمة جودة الفيديو تم إخفاء تذييل قائمة جودة الفيديو يتم عرض تذييل قائمة جودة الفيديو @@ -791,18 +791,18 @@ Second \"item\" text" تم إخفاء زر التشغيل التلقائي يتم عرض زر التشغيل التلقائي - إخفاء زر التَرْجَمَة - تم إخفاء زر التَرْجَمَة - يتم عرض زر التَرْجَمَة + إخفاء زر الترجمة + تم إخفاء زر الترجمة + يتم عرض زر الترجمة إخفاء زر البث تم إخفاء زر البث يتم عرض زر البث إخفاء خلفية عناصر التحكم بالمشغل - خلفية عناصر تحكم المشغل مخفية - يتم عرض خلفية عناصر التحكم بالمشغل - إخفاء زري \"السابق\" و \"التالي\" - تم إخفاء الأزرار - يتم عرض الأزرار + تم إخفاء خلفية عناصر تحكم المشغل + يتم عرض خلفية عناصر تحكم المشغل + إخفاء أزرار السابق & التالي + تم إخفاء أزرار السابق & التالي + يتم عرض أزرار السابق & التالي إخفاء بطاقات شاشة النهاية @@ -829,37 +829,37 @@ Second \"item\" text" تم إخفاء شريط تقدم الفيديو يتم عرض شريط تقدم الفيديو - إخفاء شريط تقدم صور مصغرة للفيديو - شريط تقدم صور مصغرة للفيديو مخفي - شريط تقدم صور مصغرة للفيديو معروض + إخفاء شريط تقدم مصغرات الفيديو + تم إخفاء شريط تقدم مصغرات الفيديو + يتم عرض شريط تقدم مصغرات الفيديو مشغل Shorts - إخفاء أو إظهار مكونات مشغل Shorts + إخفاء أو عرض مكونات مشغل Shorts إخفاء Shorts في الصفحة الرئيسية - مخفية في الصفحة الرئيسية ومقاطع الفيديو ذات الصلة - معروضة في الصفحة الرئيسية ومقاطع الفيديو ذات الصلة + مخفي في موجز الصفحة الرئيسية والفيديوهات ذات الصلة + يُعرض في موجز الصفحة الرئيسية والفيديوهات ذات الصلة إخفاء Shorts في نتائج البحث - مخفية في نتائج البحث - تُعرض في نتائج البحث + مخفي في نتائج البحث + يُعرض في نتائج البحث - إخفاء Shorts في خلاصة الاشتراكات - مخفية في خلاصة الاشتراكات - معروضة في خلاصة الاشتراكات - إخفاء Shorts في سجل المشاهدة - مخفية في سجل المشاهدة - تُعرض في سجل المشاهدة - إخفاء زر Super Thanks - زر شراء Super Thanks مخفي - زر شراء Super Thanks معروض + إخفاء Shorts في موجز الاشتراكات + مخفي في موجز الاشتراكات + يُعرض في موجز الاشتراكات + إخفاء Shorts في السجلّ + مخفي في السجلّ + يُعرض في السجلّ + إخفاء زر شراء Super Thanks + تم إخفاء زر شراء Super Thanks + يتم عرض زر شراء Super Thanks إخفاء زر التأثير - زر التأثير مخفي - زر التأثير معروض + تم إخفاء زر التأثير + يتم عرض زر التأثير إخفاء زر الشاشة الخضراء تم إخفاء زر الشاشة الخضراء يتم عرض زر الشاشة الخضراء - إخفاء زر الهاشتاج + إخفاء زر هاشتاج تم إخفاء زر الهاشتاج يتم عرض زر الهاشتاج @@ -869,9 +869,9 @@ Second \"item\" text" إخفاء تسمية الموقع تم إخفاء تسمية الموقع يتم عرض تسمية الموقع - إخفاء زر \"مشاركات جديدة\" - تم إخفاء زر \"مشاركات جديدة\" - يتم عرض زر \"مشاركات جديدة\" + إخفاء زر المنشورات الجديدة + تم إخفاء زر المنشورات الجديدة + يتم عرض زر المنشورات الجديدة إخفاء أزرار واجهة التوقف تم إخفاء أزرار واجهة التوقف يتم عرض أزرار واجهة التوقف @@ -900,11 +900,11 @@ Second \"item\" text" تم إخفاء زر القادم يتم عرض زر القادم إخفاء زر استخدام هذا الصوت - زر استخدام هذا الصوت مخفي - زر استخدام هذا الصوت معروض - إخفاء زر استخدام هذا القالب - زر استخدام هذا القالب مخفي - زر استخدام هذا القالب ظاهر + تم إخفاء زر استخدام هذا الصوت + يتم عرض زر استخدام هذا الصوت + إخفاء زر استخدام النموذج + تم إخفاء زر استخدم هذا النموذج + يتم عرض زر استخدم هذا النموذج إخفاء التأثير الفوّار لـزر أعجبني تم إخفاء التأثير الفوّار لـزر أعجبني يتم عرض التأثير الفوّار لـزر أعجبني @@ -935,11 +935,11 @@ Second \"item\" text" تم إخفاء شريط القناة يتم عرض شريط القناة إخفاء عنوان الفيديو - عنوان الفيديو مخفي - عنوان الفيديو معروض + تم إخفاء عنوان الفيديو + يتم عرض عنوان الفيديو إخفاء تسمية بيانات التعريف الصوتية - تسمية بيانات تعريف الصوت مخفية - تسمية بيانات تعريف الصوت معروضة + تم إخفاء تسمية بيانات التعريف الصوتية + يتم عرض تسمية بيانات التعريف الصوتية إخفاء تسمية رابط الفيديو تم إخفاء تسمية رابط الفيديو يتم عرض تسمية رابط الفيديو @@ -956,9 +956,9 @@ Second \"item\" text" يتم عرض الفيديو المقترح في شاشة النهاية - إخفاء تراكب مقاطع الفيديو ذات الصلة - تراكب مقاطع الفيديو ذات الصلة في وضع ملء الشاشة مخفي - تراكب مقاطع الفيديو ذات الصلة في وضع ملء الشاشة معروض + إخفاء واجهة الفيديوهات ذات الصلة + تم إخفاء واجهة الفيديوهات ذات الصلة في ملء الشاشة + يتم عرض واجهة الفيديوهات ذات الصلة في ملء الشاشة إخفاء الطابع الزمني للفيديو @@ -991,7 +991,7 @@ Second \"item\" text" لم يعجبني غير متاح مؤقتًا (انتهت مهلة API) لم يعجبني غير متاح (الحالة %d) - مرات عدم الإعجاب غير متوفرة (حد واجهة برمجة تطبيقات العميل) + عدد مرات لم يعجبني غير متوفر (حد API للعميل) لم يعجبني غير متاح (%s) أعد تحميل الفيديو للتصويت بـ Return YouTube Dislike @@ -1000,31 +1000,31 @@ Second \"item\" text" يتم عرض لم يعجبني لا يتم عرض لم يعجبني عرض لم يعجني في فيديوهات Shorts - "يتم عرض مرات عدم الإعجاب في فيديوهات Shorts + "يتم عرض عدد مرات لم يعجبني في فيديوهات Shorts -التقييد: قد لا تظهر مرات عدم الإعجاب في وضع التصفح المتخفي" - لا يتم عرض مرات عدم الإعجاب في فيديوهات Shorts +التقييد: قد لا تظهر مرات لم يعجبني في وضع التصفح المتخفي" + لا يتم عرض مرات لم يعجبني على فيديوهات Shorts لم يعجبني كــ نسبة مئوية - يتم عرض مرات عدم الإعجاب كنسبة مئوية - يتم عرض مرات عدم الإعجاب كرقم + يعرض عدد لم يعجبني كـ نسبة مئوية + يتم عرض عدد لم يعجبني كـ رَقَم مقاس زر أعجبني زر أعجبني مصمم لأدنى عرض زر أعجبني مصمم لأفضل مظهر عرض الإعجابات المقدرة - يتم عرض عدد تقديري للإعجابات في مقاطع الفيديو التي تم تعطيل الإعجابات فيها + يتم عرض عدد تقديري للإعجابات في الفيديوهات التي تم تعطيل الإعجابات فيها لا يتم عرض عدد الإعجابات المقدرة عرض ملاحظة إذا كان API غير متاح يتم عرض الملاحظة في حالة عدم توفر Return YouTube Dislike لا يتم عرض الملاحظة في حالة عدم توفر Return YouTube Dislike يتم توفير البيانات بواسطة the Return YouTube Dislike API. اضغط هنا لمعرفة المزيد - ReturnYouTubeDislike API إحصائيات هذا الجهاز + إحصائيات واجهة برمجيات ReturnYouTubeDislike لهذا الجهاز وقت استجابة API، متوسط وقت استجابة API، الحد الأدنى وقت استجابة API، الحد الأقصى - وقت استجابة API، الفيديو الأخير - غير متوفر مؤقتًا - حد معدل API للعميل ساري المفعول + وقت استجابة API، آخر فيديو + لم يعجبني غير متوفر مؤقتًا - حد معدل API للعميل ساري المفعول API جلب الأصوات وعدد الاتصالات لم يتم إجراء اتصالات الشبكة %d اتصالات شبكية أجريت @@ -1056,7 +1056,7 @@ Second \"item\" text" تمكين SponsorBlock - SponsorBlock مانِع الرُعَاة هو نظام جماعي لتخطي الأجزاء المُمِلَّة في مقاطع YouTube + مانع الرُعَاة هو نظام جماعي لتخطي الأجزاء المزعجة من فيديوهات YouTube المظهر عرض زر التصويت يتم عرض زر التصويت على المقطع @@ -1072,12 +1072,12 @@ Second \"item\" text" إخفاء زر التخطي بعد بضع ثوانٍ يتم عرض زر التخطي للمقطع بأكمله مدة زر التخطي - كم المدة لعرض أزرار التخطي والتخطي إلى التمييز قبل الإخفاء التلقائي - إظهار إشعار التراجع عن التخطي - يظهر إشعار عند تخطي مقطع تلقائيًا. انقر على الإشعار للتراجع عن التخطي - لا يتم عرض التوست - مدة توست التخطي - كم المدة لعرض رسالة التراجع عن التخطي المنبثقة + كم من الوقت يجب إظهار أزرار التخطي والتخطي للأبرز قبل إخفائها تلقائيًا + عرض التراجع عن التخطي + تظهر ملاحظة عند تخطي مقطع تلقائيًا. انقر على الملاحظة للتراجع عن التخطي + لا يتم عرض الملاحظة + مدة ملاحظة التخطي + المدة اللازمة لإظهار التراجع عن التخطي ثانية واحدة ثانيتان 3 ثوانٍ @@ -1089,19 +1089,19 @@ Second \"item\" text" 9 ثوانٍ 10 ثوانٍ عرض مدة الفيديو بدون المقاطع - يتم عرض طول الفيديو مطروحًا منه جميع المقاطع على شريط التقدم + يعرض مدة الفيديو ناقصًا منه جميع المقاطع على شريط التقدم يتم عرض مدة الفيديو كاملةً إنشاء مقاطع جديدة عرض زر إنشاء مقطع جديد يتم عرض زر إنشاء مقطع جديد لا يتم عرض زر إنشاء مقطع جديد تعديل تقديم او تأخير المقطع الجديد - أجزاء الثانية التي تتحرك فيها أزرار ضبط الوقت عند إنشاء مقاطع جديدة + أجزاء الثانية في الوقت الذي تتحرك فيها أزرار ضبط الوقت عند إنشاء مقاطع جديدة يجب أن تكون القيمة رقمًا موجبًا عرض الإرشادات - الإرشادات تحتوي على نصائح حول تقديم المقاطع - توجد إرشادات - من المستحسن قراءة الإرشادات لمانع الرعاة قبل تقديم أي مقطع + الإرشادات تتضمن قواعد ونصائح لإنشاء مقاطع جديدة + اتبع الإرشادات + من المستحسن قراءة الإرشادات لـ SponsorBlock قبل تقديم أي مقطع تمت قراءتها اعرضها لي عام @@ -1110,11 +1110,11 @@ Second \"item\" text" لا يتم عرض ملاحظة في حالة عدم توفر SponsorBlock تمكين تتبع مرات التخطي يُتيح لـ SponsorBlock Leaderboard معرفة مقدار الوقت الذي وفره المشاهدين، يتم إعلام الخادم في كل مرة تتخطى فيها مقطعًا - تم تعطيل تتبع مرات التخطي + تتبع عدد مرات التخطي غير مفعل الحد الأدنى لمدة المقطع لن يتم عرض المقاطع الأقصر من هذه القيمة (بالثواني) أو تخطيها المدة الزمنية غير صالحة - معرف المستخدم الفريد الخاص بك + معرف المستخدم User ID الفريد الخاص بك يجب أن يبقى هذا خاصًا. انه مثل كلمة المرور ولا ينبغي مشاركته مع أي شخص. إذا كان شخص ما يملك هذا، فيمكنه انتحال شخصيتك يجب أن يكون معرف المستخدم الخاص 30 حرفًا على الأقل تغيير عنوان API @@ -1147,11 +1147,11 @@ Second \"item\" text" فاصل زمني بدون محتوى فعلي. قد يكون توقفًا مؤقتًا، أو إطارًا ثابتًا، أو رسومًا متحركة متكررة. لا يتضمن انتقالات تحتوي على معلومات الخاتمة / تترات النهاية تتر النهاية أو عندما تظهر بطاقات نهاية YouTube، نهايات غير منطوقة. ليس للاستنتاجات مع المعلومات - مقدمة / تحيات + تحية / وداع مقاطع دعائية مروية للفيديو القادم، تحيات ووداعات. لا تشمل الأقسام التي تضيف محتوى إضافيًا معاينة / ملخص مجموعة من المقاطع التي توضح ما هو قادم أو ما حدث في الفيديو أو في مقاطع فيديو أخرى من السلسلة، حيث تتكرر جميع المعلومات في مكان آخر - استطراد / نكات + خارج الموضوع / نكات مشاهد أو نكات جانبية غير ضرورية لفهم المحتوى الرئيسي للفيديو. لا تشمل الأقسام التي توفر سياقًا أو تفاصيل خلفية الموسيقى: مقطع غير موسيقي فقط للاستخدام في المقاطع الموسيقية. أقسام المقاطع الموسيقية بدون موسيقى، والتي لم يتم تغطيتها بالفعل من قبل فئة أخرى @@ -1169,7 +1169,7 @@ Second \"item\" text" تخطي النظرة العامة تخطي النظرة العامة تخطي الملخص - تخطي الجزء الجانبي + تخطي مقطع غير ذي صلة تخطي غير الموسيقى تخطي المقطع تم تخطي الراعي @@ -1184,13 +1184,13 @@ Second \"item\" text" تم تخطي النظرة العامة تم تخطي النظرة العامة تم تخطي الملخص - تم تخطي الجزء الجانبي + تم تخطي مقطع غير ذي صلة تم تخطي جزء غير موسيقي تم تخطي المقطع الغير المرسل تم تخطي عدة مقاطع التخطي تلقائيًا التخطي تلقائيًا مرة واحدة - عرض زر \"التخطي\" + عرض زر التخطي عرض في شريط تقدم الفيديو تعطيل غير قادر على إرسال المقطع: الحالة: %s @@ -1241,14 +1241,14 @@ Second \"item\" text" الوقت المحدد غير صحيح إحصائيات - الإحصائيات غير متوفرة مؤقتًا (الواجهة غير متوفرة) + الإحصائيات غير متوفرة مؤقتًا (API معطل) جارٍ التحميل... تم تعطيل SponsorBlock اسم المستخدم الخاص بك: <b>%s</b> اضغط هنا لتغيير اسم المستخدم الخاص بك غير قادر على تغيير اسم المستخدم: الحالة: %1$d %2$s تم تغيير اسم المستخدم بنجاح - سمعتك هي <b>%.2f</b> + سمعتك <b>%.2f</b> لقد أنشأت <b>%s</b> مقطع اضغط هنا لعرض المقاطع الخاصة بك متصدرين SponsorBlock @@ -1264,14 +1264,14 @@ Second \"item\" text" الشفافية: اللون: لمحة - يتم توفير البيانات بواسطة SponsorBlock API. انقر هنا لمعرفة المزيد ومشاهدة التنزيلات لمنصات أخرى + يتم توفير البيانات بواسطة SponsorBlock API. انقر هنا لمعرفة المزيد والتنزيل لمنصات أخرى شكل نموذج التخطيط الافتراضي الجوّال الجهاز اللوحي - السيارات + Automotive "التغييرات تشمل: تصميم الجهاز اللوحي @@ -1282,7 +1282,7 @@ Second \"item\" text" • يتم تنظيم الموجز حسب المواضيع والقنوات" - خِداع إصدار التطبيق + إصدار تطبيق وهمي تم تغيير اصدار التطبيق لم يتم تغيير اصدار التطبيق "سيتم تغيير إصدار التطبيق إلى إصدار قديم من YouTube. @@ -1305,7 +1305,7 @@ Second \"item\" text" استكشف الموضة & التجميل ألعاب - السّجل + السجلّ المكتبة الفيديوهات التي أعجبتني مباشر @@ -1325,7 +1325,7 @@ Second \"item\" text" تغيير صفحة البداية دائمًا "يتم تغيير صفحة البداية دائمًا -القيد: قد لا يعمل استخدام زر الرجوع على شريط الأدوات" +التقييد: قد لا يعمل استخدام زر الرجوع على شريط الأدوات" يتم تغيير صفحة البداية فقط عند بدء تشغيل التطبيق @@ -1387,8 +1387,8 @@ Second \"item\" text" إخفاء أزرار التخطي للأمام والخلف تم إخفاء تخطي للأمام والخلف يتم عرض تخطي للأمام والخلف - الحجم الأولي - الحجم الأولي على الشاشة، بالبكسل + تهيئة الحجم + تهيئة الحجم على الشاشة، بالبكسل حجم البكسل يجب أن يكون بين %1$s و %2$s شفافية الواجهة قيمة الشفافية بين 0-100، حيث يكون 0 شفاف @@ -1406,16 +1406,16 @@ Second \"item\" text" يتم عرض لون شريط تقدم الفيديو الاصلي لون شريط تقدم الفيديو المخصص لون شريط التقدم - لون مميز لشريط التقدم المخصص - اللون المميز لشريط التقدم + لون تمييز شريط التقدم المخصص + لون تمييز شريط التقدم لون شريط التقدم غير صالح - شعار الرأس - افتراضي - عادي + علامة الشعار + الافتراضي + القياسي - ريـفانسد بسيط + ReVanced minimal مخصص @@ -1434,8 +1434,8 @@ Second \"item\" text" علامة التبويب أنت قوائم تشغيل المشغل والتوصيات نتائج البحث - المصّغرات الأصلية - DeArrow & المصّغرات الأصلية + المصغرات الأصلية + DeArrow & المصغرات الأصلية DeArrow & اللقطات الثابتة اللقطات الثابتة "يوفر DeArrow مصغرات فيديو من مصادر جماعية لفيديوهات YouTube. هذه المصغرات غالبًا ما تكون أكثر صلة من تلك المقدمة من YouTube @@ -1444,14 +1444,14 @@ Second \"item\" text" اضغط هنا لمعرفة المزيد عن DeArrow" عرض ملاحظة إذا كان API غير متاح - يتم عرض ملاحظة إذا كان DeArrow غير متوفر - لا يتم عرض ملاحظة إذا كان DeArrow غير متوفر - نقطة نهاية واجهة برمجة تطبيقات DeArrow - عنوان URL لنقطة نهاية ذاكرة التخزين المؤقت للصور المصغرة لـ DeArrow + يتم عرض ملاحظة إذا كان DeArrow غير متاح + لا يتم عرض ملاحظة إذا كان DeArrow غير متاح + DeArrow API Endpoint + عنوان URL لنقطة نهاية ذاكرة التخزين المؤقت لمصغرات DeArrow لقطات الفيديو الثابتة يتم التقاط اللقطات الثابتة من بداية/وسط/نهاية كل فيديو. هذه الصور مدمجة في YouTube ولا يتم استخدام أي واجهة برمجة تطبيقات خارجية - استخدم اللقطات الثابتة السريعة - استخدام اللقطات متوسطة الجودة. سيتم تحميل المُصغَّرات بشكل أسرع، ولكن البث المباشر و الفيديوهات التي لم يتم إصدارها أو القديمة جدًا قد تعرض مُصغَّرات فارغة + استخدام اللقطات الثابتة السريعة + استخدام اللقطات متوسطة الجودة. سيتم تحميل المصغرات بشكل أسرع، ولكن البث المباشر و الفيديوهات التي لم يتم إصدارها أو القديمة جدًا قد تعرض مصغرات فارغة استخدام لقطات الفيديو الثابتة بجودة عالية وقت الفيديو لأخذ اللقطات الثابتة منه بداية الفيديو @@ -1470,25 +1470,25 @@ Second \"item\" text" تجاهل - تفعيل تكرار الفيديو + تمكين تكرار الفيديو سيتم تكرار الفيديو لن يتم تكرار الفيديو - إظهار زر تكرار الفيديو - الزر ظاهر - الزر غير ظاهر + عرض زر تكرار الفيديو + يتم عرض الزر + لا يتم عرض الزر تكرار الفيديو قيد التشغيل تكرار الفيديو متوقف - محاكاة أبعاد الجهاز - "تم محاكاة أبعاد الجهاز + تزوير أبعاد الجهاز + "تم تزييف أبعاد الجهاز قد يتم فتح قفل جودة الفيديو العالية ولكن قد تواجه تقطعًا في تشغيل الفيديو وعمر بطارية أسوأ وتأثيرات جانبية غير معروفة" - "أبعاد الجهاز غير محاكاة + "أبعاد الجهاز غير مزيفة -يمكن أن يؤدي تفعيل هذا إلى فتح جودة أعلى للفيديو" +تفعيل هذا يمكن أن يفتح جودات فيديو أعلى" قد يؤدي تمكين هذا إلى تباطؤ تشغيل الفيديو وتدهور عمر البطارية وآثار جانبية غير معروفة. @@ -1496,19 +1496,19 @@ Second \"item\" text" تغيير الاهتزاز عند الضغط تعطيل الاهتزاز للفصول تم تعطيل الاهتزاز للفصول - تم تفعيل الاهتزاز للفصول + تم تمكين الاهتزاز للفصول تعطيل الاهتزاز عند التمرير الدقيق - تم تعطيل الاهتزاز الدقيق عند البحث - تم تفعيل الاهتزاز عند التمرير الدقيق - تعطيل الاهتزاز عند التراجع عن البحث - تم تعطيل الاهتزاز عند التراجع عن البحث - تم تمكين الاهتزاز عند التراجع عن البحث + تم تعطيل الاهتزاز الدقيق عند التمرير + تم تمكين الاهتزاز عند التمرير الدقيق + تعطيل اهتزاز التراجع عن التمرير + تم تعطيل اهتزاز التراجع عن التمرير + تم تمكين اهتزاز التراجع عن التمرير تعطيل الاهتزاز عند التكبير تم تعطيل الاهتزاز عند التكبير تم تمكين الاهتزاز عند التكبير - إذا قمت مؤخرًا بتغيير تفاصيل تسجيل الدخول إلى حسابك، فأزل تثبيت MicroG ثم أعد تثبيته. + إذا قمت مؤخرًا بتغيير تفاصيل تسجيل الدخول إلى حسابك، فقم بإلغاء تثبيت MicroG وإعادة تثبيته. تجاوز إعادة توجيه URL @@ -1526,9 +1526,9 @@ Second \"item\" text" تذكر تغييرات جودة الفيديو تنطبق تغييرات الجودة على جميع الفيديوهات تنطبق تغييرات الجودة على الفيديو الحالي فقط - إظهار إشعار عند تغيير جودة الفيديو - يتم إظهار إشعار عند تغيير جودة الفيديو الافتراضية - لا يتم إظهار إشعار عند تغيير جودة الفيديو الافتراضية + عرض ملاحظة عند تغيير جودة الفيديو + يتم عرض ملاحظة عند تغيير جودة الفيديو الافتراضية + لا يتم عرض ملاحظة عند تغيير جودة الفيديو الافتراضية جودة الفيديو الافتراضية على شبكة Wi-Fi جودة الفيديو الافتراضية على شبكة الجوَّال تذكر تغييرات جودة Shorts @@ -1543,36 +1543,36 @@ Second \"item\" text" عرض زر مربع حوار السرعة - الزر معروض. انقر مع الاستمرار لإعادة ضبط سرعة التشغيل إلى الوضع الافتراضي + يتم عرض الزر. انقر مع الاستمرار لإعادة ضبط سرعة التشغيل إلى الوضع الافتراضي لا يتم عرض الزر عرض زر جودة الفيديو - الزر معروض. انقر مع الاستمرار لإعادة تعيين الجودة إلى الافتراضي - الزر غير معروض + يتم عرض الزر. انقر مع الاستمرار لإعادة تعيين الجودة إلى الوضع الافتراضي + لا يتم عرض الزر قائمة سرعة التشغيل المخصصة يتم عرض قائمة سرعة التشغيل المخصصة لا يتم عرض قائمة سرعة التشغيل المخصصة استعادة قائمة سرعة التشغيل القديمة - قائمة السرعة القديمة معروضة - قائمة السرعة الحديثة معروضة + يتم عرض قائمة سرعة التشغيل القديمة + يتم عرض قائمة سرعة التشغيل الحديثة سرعة التشغيل المخصصة - إضافة أو تغيير سرعة التشغيل المخصصة + إضافة أو تغيير سرعات التشغيل المخصصة يجب أن تكون سرعات التشغيل المخصصة أقل من %s - سرعة التشغيل المخصصة غير صالحة + سرعات التشغيل المخصصة غير صالحة تلقائي سرعة النقر مع الاستمرار المخصصة سرعة التشغيل بين 0-8 - تذكر التغيرات في سرعة التشغيل + تذكر تغييرات سرعة التشغيل تطبيق تغييرات سرعة التشغيل على جميع الفيديوهات تطبيق تغييرات سرعة التشغيل فقط على الفيديو الحالي - إظهار إشعار عند تغيير سرعة التشغيل - يتم إظهار إشعار عند تغيير سرعة التشغيل الافتراضية - لا يتم عرض إشعار عند تغيير سرعة التشغيل الافتراضية. + عرض ملاحظة عند تغيير سرعة التشغيل + يتم عرض ملاحظة عند تغيير سرعة التشغيل الافتراضية + لا يتم عرض ملاحظة عند تغيير سرعة التشغيل الافتراضية سرعة التشغيل الافتراضية تغيير السرعة الافتراضية إلى: %s @@ -1604,10 +1604,10 @@ Second \"item\" text" تم تعطيل التمرير للتقديم أو الترجيع - الآثار الجانبية للتزوير + التأثيرات الجانبية للتزييف • عميل تجريبي وقد يتوقف عن العمل في أي وقت • قد يتوقف الفيديو عند 1:00، أو قد لا يكون متاحًا في بعض المناطق - • قائمة المسارات الصوتية مفقودة + • قائمة المقطع الصوتي مفقودة • لا يوجد ترميز الفيديو AV1 • مستوى الصوت الثابت غير متاح • قد يتوقف التشغيل مؤقتًا أو تسقط الإطارات @@ -1619,14 +1619,14 @@ Second \"item\" text" تم إخفاء نوع العميل في إحصاءات تقنية لغة بث الصوت - لتحديد لغة صوتية معينة، قم بإيقاف تشغيل \"فرض لغة الصوت الأصلية\" + لتحديد لغة صوتية معينة، قم بإيقاف تشغيل \'فرض لغة الصوت الأصلية\' اختيار لغة البث غير متاح مع Android Studio - حول - إعلانات + لمحة + الإعلانات عام المشغل متنوعة @@ -1634,7 +1634,7 @@ Second \"item\" text" إخفاء إعلانات الفيديو تم إخفاء إعلانات الفيديو - تم عرض إعلانات الفيديو + يتم عرض إعلانات الفيديو تمكين التكرار الدائم @@ -1642,22 +1642,22 @@ Second \"item\" text" تم تعطيل التكرار الدائم - إخفاء زر الإرسال - زر الإرسال مخفي - زر الإرسال ظاهر + إخفاء زر البث + تم إخفاء زر البث + يتم عرض زر البث إخفاء شريط الفئات - شريط الفئات مخفي - شريط الفئات معروض + تم إخفاء شريط الفئات + يتم عرض شريط الفئات شريط التنقل إخفاء أزرار شريط التنقل أو تغييرها - إخفاء الرئيسية - زر \"الرئيسية\" مخفي - زر \"الرئيسية\" ظاهر + إخفاء الصفحة الرئيسية + تم إخفاء زر الصفحة الرئيسية + يتم عرض زر الصفحة الرئيسية إخفاء المقاطع زر \"المقتطفات\" مخفي @@ -1694,22 +1694,22 @@ Second \"item\" text" - منع الإعلانات الصوتية - تم منع الإعلانات الصوتية - تم إلغاء منع الإعلانات الصوتية + حظر الإعلانات الصوتية + تم حظر الإعلانات الصوتية + تم إلغاء حظر الإعلانات الصوتية - %s غير متوفر. قد تظهر الإعلانات. حاول التبديل إلى خدمة منع إعلانات أخرى في الإعدادات. - قام خادم %s بإرجاع خطأ. قد تظهر الإعلانات. حاول التبديل إلى خدمة منع إعلانات أخرى في الإعدادات. - منع إعلانات الفيديو المضمنة + %s غير متوفر، قد تظهر الإعلانات. حاول التبديل إلى خدمة منع إعلانات أخرى في الإعدادات. + قام خادم %s بإرجاع خطأ، قد تظهر الإعلانات. حاول التبديل إلى خدمة منع إعلانات أخرى في الإعدادات. + حظر إعلانات الفيديو المضمنة معطّل Luminous Proxy PurpleAdBlock Proxy - منع إعلانات الفيديو - تم منع إعلانات الفيديو - تم إلغاء منع إعلانات الفيديو + حظر إعلانات الفيديو + تم حظر إعلانات الفيديو + يتم إلغاء حظر إعلانات الفيديو تم حذف الرسالة 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 ddb61efcc..457b64433 100644 --- a/patches/src/main/resources/addresources/values-az-rAZ/strings.xml +++ b/patches/src/main/resources/addresources/values-az-rAZ/strings.xml @@ -368,7 +368,7 @@ Hər halda, bunu aktivləşdirmə IP ünvanınız kimi bəzi istifadəçi məlum Sİ söhbət xülasəsini gizlət Sİ söhbət xülasəsi gizlidir Sİ söhbət xülasəsi görünür - AI Ṣərhlər Xülasəsini Gizlət + AI şərhlər xülasəsini gizlət Sİ şərhlər xülasəsi gizlidir Sİ şərhlər xülasəsi görünür Kanal təlimatlarını gizlət @@ -405,19 +405,19 @@ Hər halda, bunu aktivləşdirmə IP ünvanınız kimi bəzi istifadəçi məlum Yeni sətirlə ayrılmış filtr üçün element yol qurucusu sətirlərinin siyahısı Etibarsız fərdi filtr: %s Baxış sayını gizlət - Baxış sayı lentdə və axtarış nəticələrində gizlədilib - Baxış sayı lentdə və axtarış nəticələrində göstərilib + Baxış sayı axın və axtarış nəticələrində gizlidir + Baxış sayı axın və axtarış nəticələrində görünür "Məhdudiyyətlər: -• Shorts rəfləri, kanal səhifələri və axtarış nəticələri hələ də baxış saylarını göstərə bilər -• Bu funksiya avtomobil form faktoru ilə işləmir" - Yükləmə vaxtını gizlət - Yükləmə vaxtı lentdə və axtarış nəticələrində gizlədilib - Yükləmə vaxtı lentdə və axtarış nəticələrində göstərilir +• Shorts bölmələri, kanal səhifələri və axtarış nəticələri yenə də baxış sayını göstərə bilər +• Bu xüsusiyyət avtomobil forma göstərici ilə işləmir" + Yüklənilmə vaxtını gizlət + Yüklənilmə vaxtı axın və axtarış nəticələrində gizlidir + Yüklənilmə vaxtı axın və axtarış nəticələrində göstərilir "Məhdudiyyətlər: -• Shorts rəflərində, kanal səhifələrində və axtarış nəticələrində yükləmə vaxtları hələ də göstərilə bilər -• Bu funksiya avtomobil form faktoru ilə işləmir" +• Shorts bölmələri, kanal səhifələri və axtarış nəticələri yüklənilən vaxtı yenə də göstərə bilər +• Bu xüsusiyyət avtomobil forma göstərici ilə işləmir" Açar söz məzmununu gizlət Açar söz filtrləri ilə axtarış və axın videolarını gizlət Ev videolarını açar sözlərə görə gizlət @@ -869,7 +869,7 @@ Səs treki menyusunu göstərmək üçün \"Video yayımları saxtalaşdır\"ı Məkan etiketini gizlət Məkan etiketi gizlidir Məkan etiketi göstərilir - Yeni elanları gizlət düyməsi + Yeni elanlar düyməsini gizlət Yeni elanlar düyməsi gizlidir Yeni elanlar düyməsi göstərilir Dayandırma örtük düymələrini gizlət @@ -1609,7 +1609,7 @@ Məhdudiyyətlər: • Səs treki menyusu çatışmır • AV1 video kodlayıcı yoxdur • Sabit səs yoxdur - • Oxutma kəsilə bilər və ya kadrlar düşə bilər + • Oynatma qarışa bilər və ya kadrlar ötürülə bilər • Giriş edilməyəndə və ya gizli rejimdə uşaq videoları oynadıla bilməz • \"Orijinal səsi zorla\" əlçatmazdır 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 d4ea1ff12..ae8e618fa 100644 --- a/patches/src/main/resources/addresources/values-fr-rFR/strings.xml +++ b/patches/src/main/resources/addresources/values-fr-rFR/strings.xml @@ -1611,7 +1611,7 @@ Limitations : • Le menu Piste audio est absent • Codec vidéo AV1 indisponible • Le volume stable n\'est pas disponible - • La lecture peut saccader ou perdre des images + • Il est possible que la lecture soit saccadée ou que des images soient perdues • La lecture des vidéos pour enfants peut ne pas fonctionner lorsque vous êtes déconnecté ou en mode navigation privée • Forcer la langue audio d\'origine n\'est pas disponible 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 fdc8de976..7854cfb81 100644 --- a/patches/src/main/resources/addresources/values-ga-rIE/strings.xml +++ b/patches/src/main/resources/addresources/values-ga-rIE/strings.xml @@ -55,7 +55,7 @@ Second \"item\" text" Bain triail as eochairfhocal eile Cuardaigh le déanaí Bain as stair an chuardaigh? - Glan stair an chuardaigh + Glan stair chuardaigh An bhfuil tú cinnte gur mhaith leat stair chuardaigh go léir a ghlanadh? Leideanna Cuardaigh "• Tapáil cosán chun dul chuige @@ -106,14 +106,14 @@ Brúigh an cnaipe leanúnaí agus ligean athruithe optúimíochta." Lean ar aghaidh - Sruthanna físeán spoof - Spoof na sruthanna físeáin cliant chun saincheisteanna athsheinm a chosc - Sruthanna físeáin bréige - Déan bréagú ar shruthanna físeáin an chliaint chun saincheisteanna athsheinm a chosc - Sruthanna físeán spoof - "Tá sruthanna físeáin bréagaithe + Sruthanna físe bréige + Déan sruthanna físe an chliaint a fhalsú chun fadhbanna athsheinm a chosc + Sruthanna físe bréige + Déan sruthanna físe an chliaint a fhalsú chun fadhbanna athsheinm a chosc + Sruthanna físe bréige + "Déantar sruthanna físe a bhréagnú -Má tá tú i do úsáideoir YouTube Premium, seans nach mbeidh an socrú seo ag teastáil" +Mura bhfuil tú i d’úsáideoir YouTube Premium, b’fhéidir nach mbeidh an socrú seo ag teastáil" "Ní dhéantar sruthanna físeáin a bhréagnú Seans nach n-oibreoidh an t-athsheinm" @@ -230,8 +230,8 @@ Mar sin féin, logálfaidh sé seo roinnt sonraí úsáideora freisin, mar shamp Tá seilf íomhá i dtorthaí cuardaigh i bhfolach Taispeántar seilf íomhánna i dtorthaí cuardaigh Folaigh na poist is déanaí - Tá postanna is déanaí i bhfolach - Taispeántar na postálacha is déanaí + Tá na poist is déanaí i bhfolach + Taispeántar na poist is déanaí Folaigh seinmliostaí meascán Tá seinmliostaí measctha i bhfolach Taispeántar seinmliostaí measctha @@ -248,9 +248,9 @@ Mar sin féin, logálfaidh sé seo roinnt sonraí úsáideora freisin, mar shamp Taispeántar na heilimintí inseinnte - Folaigh cnaipe \'Taispeáin tuilleadh\' + Folaigh an cnaipe \'Taispeáin níos mó\' Cnaipe \'Taispeáin níos mó\' sna torthaí cuardaigh i bhfolach - Cnaipe \'Taispeáin níos mó\' sna torthaí cuardaigh taispeánta + Cnaipe \'Taispeáin níos mó\' sna torthaí cuardaigh thaispeánta Folaigh suirbhéanna Tá suirbhéanna i bhfolach Tá suirbhéanna taispeánta @@ -1467,7 +1467,7 @@ Brúigh anseo chun tuilleadh eolais a fháil faoi DeArrow" Ní thaispeántar fógraí ar thosú Taispeáin fógraí ar thosú Theip ar nascadh le soláthraí fógraí - Díbhunaigh + Díbhe Cumasaigh físeán lúbtha @@ -1476,44 +1476,44 @@ Brúigh anseo chun tuilleadh eolais a fháil faoi DeArrow" Taispeáin an cnaipe físeáin lúbtha - Tá an cnaipe ar taispeáint + Taispeántar an cnaipe Níl an cnaipe ar taispeáint Tá físeán lúbtha ar siúl Tá físeán lúbtha as siúl - Toisí feiste spoof - "Toisí gléise spoofed + Toisí gléas a fhalsú + "Toisí na ngléasanna falsaithe -D'fhéadfadh go gcuirfí caighdeáin físeáin níos airde ar fáil ach d'fhéadfá stuttering athsheinm físeáin, saol ceallraí níos measa, agus fo-iarsmaí anaithnid a fháil" - "Níl toisí gléise spoofed +D’fhéadfadh cáilíochtaí físe níos airde a bheith díghlasáilte ach d’fhéadfadh go mbeadh stad ar athsheinm físe, saol ceallraí níos measa, agus fo-iarsmaí anaithnide agat" + "Toisí na ngléasanna gan falsaithe -Is féidir le seo caighdeáin físeáin níos airde a dhíghlasáil" - D\'fhéadfadh sé seo a bheith ina chúis le stuttering athsheinm físe, saol ceallraí níos measa, agus fo-iarmhairtí anaithnid. +D’fhéadfadh cáilíochtaí físe níos airde a bheith díghlasáilte ach d’fhéadfadh go mbeadh stad ar athsheinm físe, saol ceallraí níos measa, agus fo-iarsmaí anaithnide agat" + Is féidir go mbeidh stad ar athsheinm físe, saolré na ceallraí níos measa, agus fo-iarsmaí anaithnide mar thoradh air seo. - Aiseolas haptach - Athraigh aiseolas haptach - Díchumasaigh haptics caibidlí - Tá haptics caibidlí díchumasaithe - Tá haptics caibidlí cumasaithe - Díchumasaigh haptics beacht cuardaigh - Tá haptics beachtais díchumasaithe - Tá haptics beacht cuardaigh cumasaithe - Díchumasaigh haptics díthurais - Tá haptics díthurais díchumasaithe - Tá haptics díthurais cumasaithe - Díchumasaigh súmáil haptics - Tá súmáil haptics díchumasaithe - Tá súmáil haptics cumasaithe + Aiseolas haiptice + Athraigh aiseolas haiptice + Díchumasaigh haiptice caibidlí + Tá haiptice caibidlí díchumasaithe + Tá haiptice caibidlí cumasaithe + Díchumasaigh haiptice beacht cuardaigh + Tá haiptice cuardaigh chruinne díchumasaithe + Tá haiptice cuardaigh chruinn cumasaithe + Díchumasaigh haiptice cuardaigh agus cealaithe + Tá haiptice cuardaigh cealaithe díchumasaithe + Tá haiptice cuardaigh cealaithe cumasaithe + Díchumasaigh haiptice súmála + Tá haiptice súmála díchumasaithe + Tá haiptice súmála cumasaithe Má d’athraigh tú sonraí logála isteach do chuntais le déanaí, ansin díshuiteáil agus athshuiteáil MicroG. - Atreoracha seachbhóthar URL - Seachnaítear atreoruithe URL - Ní chuirtear athsheoltaí URL + Seachain atreoruithe URL + Déantar atreoruithe URL a sheachaint + Ní dhéantar seachaint ar atreoruithe URL Oscail naisc sa bhrabhsála @@ -1523,14 +1523,14 @@ Is féidir le seo caighdeáin físeáin níos airde a dhíghlasáil" Uathoibríoch - Cuimhnigh athruithe ar cháilíocht + Cuimhnigh athruithe ar cháilíocht físe Baineann athruithe cáilíochta le gach físeán Ní bhaineann athruithe cáilíochta ach leis an bhfíseán reatha - Taispeáin fógra beag ar athruithe cáilíochta físe + Taispeáin tósta ar athruithe cáilíochta físe Taispeántar fógra beag nuair a athraítear cáilíocht réamhshocraithe an fhíseáin Ní thaispeántar fógra beag nuair a athraítear cáilíocht réamhshocraithe an fhíseáin - Cáilíocht físe réamhshocraithe ar líonra - Cáilíocht físe réamhshocraithe ar líonra + Cáilíocht físe réamhshocraithe ar líonra Wi-Fi + Cáilíocht físe réamhshocraithe ar líonra soghluaiste Cuimhnigh ar athruithe cáilíochta Shorts Baineann athruithe ar an gcáilíocht le gach Shorts Ní bhaineann athruithe ar an gcáilíocht ach leis an Short reatha @@ -1538,7 +1538,7 @@ Is féidir le seo caighdeáin físeáin níos airde a dhíghlasáil" Cáilíocht réamhshocraithe Shorts ar líonra soghluaiste soghluaiste Wi-Fi - Athraigh cáilíocht réamhshocraithe %1$s go dtí: %2$s + Athraíodh cáilíocht réamhshocraithe %1$s go: %2$s Athraíodh cáilíocht Shorts %1$s go: %2$s @@ -1548,22 +1548,22 @@ Is féidir le seo caighdeáin físeáin níos airde a dhíghlasáil" Taispeáin cnaipe cáilíochta físeáin - Tá cnaipe le feiceáil. Tapáil agus coinnigh chun cáilíocht a athshocrú mar réamhshocrú - Níl cnaipe le feiceáil + Taispeántar an cnaipe. Tapáil agus coinnigh síos chun an caighdeán a athshocrú go dtí an caighdeán réamhshocraithe + Ní thaispeántar an cnaipe Roghchlár luas athsheinm saincheaptha Taispeántar roghchlár luais saincheaptha Ní thaispeántar roghchlár luais saincheaptha - Athchóirigh an seanchalafort luais athsheinm - Tá an seanchalafort luais taispeánta - Tá an calafort luais nua-aimseartha taispeánta + Athchóirigh an sean-roghchlár luas athsheinm + Taispeántar an sean-roghchlár luais + Taispeántar roghchlár luais nua-aimseartha Luas athsheinm saincheaptha Cuir leis nó athraigh na luasanna athsheinm saincheaptha Ní mór luas saincheaptha a bheith níos lú ná %s Luasanna athsheinm saincheaptha neamhbhailí Uathoibríoch - Luas tap is agus greim + Luas saincheaptha tapála agus coinnigh Luas athsheinm eatarthu 0-8 @@ -1577,12 +1577,12 @@ Is féidir le seo caighdeáin físeáin níos airde a dhíghlasáil" Athraigh luas réamhshocraithe go: %s -

Díchumasú físeán HDR

-

Tá físeán HDR díchumasaithe

-

Tá físeán HDR arna chumhachtú

+ Díchumasaigh físeán HDR + Tá físeán HDR díchumasaithe + Tá físeán HDR cumasaithe Fórsa AVC (H.264) Éigeantar an códóir físeáin go AVC (H.264) - Cinntear an códóir físeáin go huathoibríoch + Cinntear an cóideac físe go huathoibríoch "Sochair: • Féadfaidh sé saolré na ceallraí a fheabhsú • Féadfaidh sé réitigh físeáin atá in easnamh a chur ar ais ar ghléasanna níos sine @@ -1604,22 +1604,22 @@ Teorainneacha: Níl sleamhnán le lorg cumasaithe
- Fo-iarsmaí bréagaíochta + Fo-éifeachtaí a fhalsúa • Cliant turgnamhach é seo agus féadfaidh sé stop a chur ag obair ag am ar bith • Is féidir go stopfaidh an físeán ag 1:00, nó b\'fhéidir nach mbeidh sé ar fáil i réigiúin áirithe • Tá an roghchlár rian fuaime in easnamh - • Níl aon chóidéir físe AV1 + • Níl aon cóideac físe AV1 • Níl toirt chobhsaí ar fáil • D\'fhéadfadh an athsheinm bacadh nó frámaí a chailleadh - • Videos faoi phaistí uaireanta nach imreoidh nuair a bhíonn tú logáilte amach nó i mod incognito + • Seans nach seinnfear físeáin do pháistí nuair a bhíonn siad logáilte amach nó i mód go hanaithnid - • Níl Éigean fuaime bunaidh ar fáil + • Níl an fuaim bhunaidh iallach ar fáil Taispeáin i Staitisticí do nerds Taispeántar cineál an chliaint i Staitisticí do nerds Tá an cliant curtha i bhfolach i Staitisticí do nerds Teanga an tsrutha fuaime - Chun teanga fuaime shonrach a roghnú, múch \'Cuir iallach ar bhunteanga fuaime\' + 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 @@ -1638,13 +1638,13 @@ Teorainneacha:
Cumasaigh athdhéanamh buan - Tá athdhéanamh buan cumasaithe - Tá athdhéanamh buan díchumasaithe + Tá athrá buan cumasaithe + Tá athrá buan díchumasaithe Folaigh an cnaipe teilgthe Tá an cnaipe teilgthe i bhfolach - Tá an cnaipe teilgthe ar taispeáint + Taispeántar an cnaipe teilgthe Folaigh an barra catagóirí @@ -1657,29 +1657,29 @@ Teorainneacha: Folaigh Baile Tá cnaipe Baile folaithe - Tá cnaipe Baile taispeánta + Taispeántar an cnaipe baile Folaigh Samplaí - Tá cnaipe Samplaí folaithe - Tá cnaipe Samplaí taispeánta + Tá cnaipe na samplaí i bhfolach + Taispeántar cnaipe na samplaí - Folaigh Scrúdaigh - Tá cnaipe Fionnachtana folaithe - Tá cnaipe Fionnachtana taispeánta + Folaigh Iniúchadh + Tá an cnaipe iniúchadh i bhfolach + Taispeántar an cnaipe iniúchadh Folaigh Leabharlann - Tá cnaipe Leabharlann folaithe - Tá cnaipe Leabharlann taispeánta + Tá cnaipe na leabharlainne i bhfolach + Taispeántar cnaipe na leabharlainne - Folaigh Uasghrádaigh - Tá cnaipe Uasghrádú folaithe - Tá cnaipe Uasghrádú taispeánta + Folaigh an tUasghrádú + Tá an cnaipe uasghrádaithe i bhfolach + Taispeántar an cnaipe uasghrádaithe Folaigh barra nascleanúna - Tá barra nascleanúna folaithe - Tá barra nascleanúna taispeánta + Tá an barra nascleanúna i bhfolach + Taispeántar barra nascleanúna Folaigh lipéid cnaipí nascleanúna - Tá lipéid folaithe - Tá lipéid taispeánta + Tá lipéid i bhfolach + Taispeántar lipéid Folaigh an lipéad \'Faigh Music Premium\' @@ -1696,7 +1696,7 @@ Teorainneacha: Cuir bac ar fógraí fuaime Cuirtear bac ar fhógraí fuaime - Déantar fógraí fuaime díbhocáilte + Tá fógraí fuaime díbhlocáilte %s neamh-infheidhme, d\'fhéadfadh go dtaispeánfadh fógraí. Bain triail as seirbhís blocála fógraí a athrú sna socruithe. @@ -1715,11 +1715,11 @@ Teorainneacha: Teachtaireacht scriosta Taispeáin teachtaireachtaí scriosta Ná taispeáin teachtaireachtaí scriosta - Folaigh teachtaireachtaí scriosta taobh thiar de spoiler - Taispeáin teachtaireachtaí scriosta mar théacs trasnaithe + Folaigh teachtaireachtaí scriosta taobh thiar a fhalsúa + Taispeáin teachtaireachtaí scriosta mar théacs trasnaithe amach - Tóg Pointí Cainte go huathoibríoch + Éiligh Pointí Cainéil go huathoibríoch Éilítear Pointí Cainéal go huathoibríoch Ní éilítear Pointí Cainéal go huathoibríoch 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 088a6b07d..54a548f0e 100644 --- a/patches/src/main/resources/addresources/values-in-rID/strings.xml +++ b/patches/src/main/resources/addresources/values-in-rID/strings.xml @@ -22,18 +22,18 @@ Second \"item\" text" Pemeriksaan gagal - Buka situs resminya + Buka situs resmi Abaikan - <h5>Aplikasi ini tampaknya tidak dipatch oleh Anda.</h5><br>Aplikasi ini mungkin tidak berfungsi dengan baik, <b>bisa berbahaya atau bahkan membahayakan untuk digunakan</b>.<br><br>Pemeriksaan ini berarti bahwa aplikasi ini telah dipatch sebelumnya atau diperoleh dari orang lain:<br><br><small>%1$s</small><br>Sangat disarankan untuk <b>mencopot pemasangan aplikasi ini dan mempatchnya sendiri</b> guna memastikan Anda menggunakan aplikasi yang tervalidasi dan aman.<p><br>Jika diabaikan, peringatan ini hanya akan ditampilkan dua kali. - Dipatch pada perangkat yang berbeda - Tidak dipasang oleh ReVanced Manager - Dipatch lebih dari 10 menit yang lalu - Dipatch %s hari yang lalu + <h5>Aplikasi ini tampaknya tidak ditambal oleh Anda.</h5><br>Aplikasi ini mungkin tidak bisa berfungsi dengan baik, <b>bisa berbahaya atau bahkan membahayakan untuk digunakan</b>.<br><br>Pemeriksaan ini berarti bahwa aplikasi ini telah ditambal sebelumnya atau diperoleh dari orang lain:<br><br><small>%1$s</small><br>Sangat disarankan untuk <b>mencopot pemasangan aplikasi ini dan menambalnya sendiri</b> guna memastikan Anda menggunakan aplikasi yang tervalidasi dan aman.<p><br>Jika diabaikan, peringatan ini hanya akan ditampilkan dua kali. + Ditambal pada perangkat yang berbeda + Tidak terpasang oleh ReVanced Manager + Ditambal lebih dari 10 menit yang lalu + Ditambal %s hari yang lalu Tanggal pembuatan APK rusak Peringatan - Riwayat tontonan Anda tidak disimpan.<br><br>Hal ini kemungkinan besar disebabkan oleh pemblokir iklan DNS atau proksi jaringan.<br><br>Untuk memperbaikinya, masukkan daftar putih <b>s.youtube.com</b> atau matikan semua pemblokir DNS dan proksi. + Riwayat tontonan Anda tidak sedanh disimpan.<br><br>Hal ini kemungkinan besar disebabkan oleh pemblokir iklan DNS atau proksi jaringan.<br><br>Untuk memperbaikinya, masukkan ke daftar putih <b>s.youtube.com</b> atau matikan semua pemblokir iklan DNS dan proksi. Jangan tampilkan lagi @@ -48,7 +48,7 @@ Second \"item\" text" Impor Salin Pengaturan ReVanced diatur ke bawaan - Mengimpor setelan %d + Setelan %d terimpor Impor gagal: %s Pengaturan pencarian Tidak ada hasil yang ditemukan untuk \'%s\' @@ -62,12 +62,12 @@ Second \"item\" text" • Tekan lama pada pengaturan untuk menelusuri ke jalur tersebut • Tekan Enter untuk menyimpan kueri pencarian ke riwayat • Pencarian mengabaikan huruf besar/kecil dan tanda baca -• Pengaturan orang tua muncul di atas pengaturan anak yang dinonaktifkan" +• Pengaturan utama muncul di atas pengaturan sampingan yang dinonaktifkan" Riwayat pencarian kosong Untuk menyimpan riwayat pencarian, ketik kueri pencarian dan tekan Enter - Tampilkan pengaturan riwayat pencarian - Pengaturan riwayat pencarian ditampilkan - Pengaturan riwayat pencarian tidak ditampilkan + Tampilkan riwayat pencarian setelan + Riwayat pencarian setelan ditampilkan + Riwayat pencarian setelan tidak ditampilkan Tampilkan ikon pengaturan ReVanced Ikon pengaturan ditampilkan Ikon pengaturan tidak ditampilkan @@ -1609,7 +1609,7 @@ Batasan: • Menu trek audio tidak ada • Tidak ada codec video AV1 • Volume stabil tidak tersedia - • Pemutaran mungkin tersendat atau melewatkan bingkai + • Pemutaran mungkin tersendat-sendat atau terjadi penurunan kualitas gambar • Video anak-anak mungkin tidak dapat diputar saat keluar atau dalam mode penyamaran • Paksa audio asli tidak tersedia @@ -1658,9 +1658,9 @@ Batasan: Tombol Beranda disembunyikan Tombol Beranda ditampilkan - Sembunyikan Cuplikan - Tombol Cuplikan disembunyikan - Tombol Cuplikan ditampilkan + Sembunyikan Sampel + Tombol Sampel disembunyikan + Tombol Sampel ditampilkan Sembunyikan Jelajahi Tombol Jelajahi disembunyikan 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 aac14f5d8..c4084ad6e 100644 --- a/patches/src/main/resources/addresources/values-ja-rJP/strings.xml +++ b/patches/src/main/resources/addresources/values-ja-rJP/strings.xml @@ -508,7 +508,7 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が 「動画の URL をコピー」ボタンを表示 ボタンがプレーヤー オーバーレイに表示されます。タップすると動画の URL が、長押しするとタイムスタンプ付きの URL がそれぞれコピーされます ボタンはプレーヤー オーバーレイに表示されません - 「動画のタイムスタンプ付き URL をコピー」ボタンを表示 + 「タイムスタンプ付き URL をコピー」ボタンを表示 ボタンがプレーヤー オーバーレイに表示されます。タップするとタイムスタンプ付きの URL が、長押しするとタイムスタンプなしの URL がそれぞれコピーされます ボタンはプレーヤー オーバーレイに表示されません @@ -1483,7 +1483,7 @@ Automotive レイアウト 動画のループ再生がオフになっています - デバイスの画面サイズを偽装する + デバイスの画面サイズを偽装 "デバイスの画面サイズは偽装されています より高画質な映像がアンロックされる可能性がありますが、動画のカクつき、バッテリー寿命の悪化、予期せぬ副作用が @@ -1586,8 +1586,8 @@ Automotive レイアウト ビデオ コーデックは強制的に AVC (H.264) になります ビデオ コーデックは自動的に決定されます "利点: -• バッテリー寿命を延ばすことができる -• 古いデバイスで失われた動画解像度を復元できる +• バッテリー寿命が延びる可能性がある +• 古いデバイスで失われた動画解像度を復元できる可能性がある 制限事項: • 最大解像度が 1080p @@ -1612,7 +1612,7 @@ Automotive レイアウト •「音声トラック」がフライアウト メニューに表示されない • AV1 コーデックが利用できない •「一定音量」が利用できない - • 再生が途切れたり、フレームがスキップされたりする場合があります。 + • 再生がカクつく、またはコマ落ちが発生する場合がある • ログアウト時またはシークレット モード時に、子ども向け動画が再生されない可能性がある •「オリジナルの音声を強制的に使用」が利用できない 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 7f531a775..9f4a490a1 100644 --- a/patches/src/main/resources/addresources/values-sr-rCS/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rCS/strings.xml @@ -1609,7 +1609,7 @@ Ograničenja: • Meni „Audio snimak” nedostaje • Nema video kodeka AV1 • Opcija „Ujednačena jačina zvuka” nije dostupna - • Reprodukcija može zastajkivati ili ispuštati kadrove + • Reprodukcija može zastajkivati ili preskakati kadrove • Videi za decu se možda neće puštati kada ste odjavljeni ili u režimu bez arhiviranja • Prisiljavanje originalnog zvuka nije dostupno 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 62bc59052..b1198cc43 100644 --- a/patches/src/main/resources/addresources/values-sr-rSP/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rSP/strings.xml @@ -1612,7 +1612,7 @@ Second \"item\" text" • Мени „Аудио снимак” недостаје • Нема видео кодека AV1 • Опција „Уједначена јачина звука” није доступна - • Репродукција може да сецка или да испушта кадрове + • Репродукција може застајкивати или прескакати кадрове • Видеи за децу се можда неће пуштати када сте одјављени или у режиму без архивирања • Присиљавање оригиналног звука није доступно 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 ade1fb052..5ff8a7823 100644 --- a/patches/src/main/resources/addresources/values-vi-rVN/strings.xml +++ b/patches/src/main/resources/addresources/values-vi-rVN/strings.xml @@ -58,13 +58,13 @@ Second \"item\" text" Xóa lịch sử tìm kiếm Bạn có chắc chắn muốn xóa tất cả lịch sử tìm kiếm không? Mẹo tìm kiếm - "• Nhấn vào một đường dẫn để điều hướng đến đó -• Nhấn giữ một cài đặt để điều hướng đến đó -• Nhấn Enter để lưu truy vấn tìm kiếm vào lịch sử + "• Nhấn vào một đường dẫn để đi đến đó +• Nhấn giữ một cài đặt để đi đến đó +• Nhấn Enter để lưu từ khoá tìm kiếm vào lịch sử • Tìm kiếm bỏ qua chữ hoa/thường và dấu câu -• Cài đặt cha xuất hiện phía trên cài đặt con bị vô hiệu hóa" - Lịch sử tìm kiếm trống - Để lưu lịch sử tìm kiếm, nhập truy vấn tìm kiếm và nhấn Enter +• Cài đặt lớn nằm phía trên cài đặt nhỏ bị vô hiệu hóa" + Lịch sử tìm kiếm đang trống + Để lưu lịch sử tìm kiếm, nhập từ khoá tìm kiếm và nhấn Enter Hiện lịch sử tìm kiếm cài đặt Lịch sử tìm kiếm cài đặt đã được hiển thị Lịch sử tìm kiếm cài đặt không được hiển thị @@ -157,8 +157,8 @@ Bạn sẽ không được thông báo khi xẩy ra lỗi bất ngờ." Tham số truy vấn theo dõi bị loại bỏ khỏi các liên kết được chia sẻ Tham số truy vấn theo dõi không bị loại bỏ khỏi các liên kết được chia sẻ Thay đổi liên kết chia sẻ thành youtube.com - Liên kết được chia sẻ sử dụng youtube.com - Liên kết được chia sẻ sử dụng music.youtube.com + Liên kết chia sẻ bắt đầu bằng youtube.com + Liên kết chia sẻ bắt đầu bằng music.youtube.com @@ -1481,11 +1481,11 @@ Nhấn vào đây để tìm hiểu thêm về DeArrow" Video sẽ không lặp lại
- Hiện nút video lặp lại + Hiện nút lặp lại video Nút được hiển thị Nút không được hiển thị - Video lặp lại đang bật - Video lặp lại đang tắt + Lặp lại video đang bật + Lặp lại video đang tắt Giả mạo kích thước thiết bị From 19949e1695cc252ff0f94a33b6e3fb62e967d7fd Mon Sep 17 00:00:00 2001 From: Dawid Krajcarz <80264606+drobotk@users.noreply.github.com> Date: Tue, 7 Oct 2025 09:11:41 +0200 Subject: [PATCH 44/63] fix(Spotify): Change `Hide Create button` patch to default off (#6067) --- .../spotify/layout/hide/createbutton/HideCreateButtonPatch.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/patches/src/main/kotlin/app/revanced/patches/spotify/layout/hide/createbutton/HideCreateButtonPatch.kt b/patches/src/main/kotlin/app/revanced/patches/spotify/layout/hide/createbutton/HideCreateButtonPatch.kt index 514951479..4bb03fa06 100644 --- a/patches/src/main/kotlin/app/revanced/patches/spotify/layout/hide/createbutton/HideCreateButtonPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/spotify/layout/hide/createbutton/HideCreateButtonPatch.kt @@ -17,7 +17,8 @@ private const val EXTENSION_CLASS_DESCRIPTOR = @Suppress("unused") val hideCreateButtonPatch = bytecodePatch( name = "Hide Create button", - description = "Hides the \"Create\" button in the navigation bar." + description = "Hides the \"Create\" button in the navigation bar. The latest app targets do not need this patch.", + use = false ) { compatibleWith("com.spotify.music") From 5ed092bb7dfbfd868b528fe5f49cdf6585552572 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 7 Oct 2025 07:14:51 +0000 Subject: [PATCH 45/63] chore: Release v5.42.0-dev.13 [skip ci] # [5.42.0-dev.13](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.12...v5.42.0-dev.13) (2025-10-07) ### Bug Fixes * **Spotify:** Change `Hide Create button` patch to default off ([#6067](https://github.com/ReVanced/revanced-patches/issues/6067)) ([19949e1](https://github.com/ReVanced/revanced-patches/commit/19949e1695cc252ff0f94a33b6e3fb62e967d7fd)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e92508d4b..a48f5721e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.13](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.12...v5.42.0-dev.13) (2025-10-07) + + +### Bug Fixes + +* **Spotify:** Change `Hide Create button` patch to default off ([#6067](https://github.com/ReVanced/revanced-patches/issues/6067)) ([19949e1](https://github.com/ReVanced/revanced-patches/commit/19949e1695cc252ff0f94a33b6e3fb62e967d7fd)) + # [5.42.0-dev.12](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.11...v5.42.0-dev.12) (2025-10-03) diff --git a/gradle.properties b/gradle.properties index 5586b7d24..6293cff5f 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.42.0-dev.12 +version = 5.42.0-dev.13 From 20c413120bad97af6121718e76b22a1b5540aa44 Mon Sep 17 00:00:00 2001 From: brosssh <44944126+brosssh@users.noreply.github.com> Date: Tue, 7 Oct 2025 13:40:37 +0200 Subject: [PATCH 46/63] feat(Instagram): Add `Custom share domain` patch (#5998) --- .../domain/ChangeLinkSharingDomainPatch.java | 33 ++++++++++++ .../privacy/SanitizeSharingLinksPatch.java | 15 ++++++ patches/api/patches.api | 8 +++ .../misc/privacy/SanitizeSharingLinksPatch.kt | 50 +++---------------- .../misc/share/EditShareLinksPatch.kt | 31 ++++++++++++ ...PermalinkResponseJsonParserFingerprint.kt} | 2 +- .../domain/ChangeLinkSharingDomainPatch.kt | 42 ++++++++++++++++ .../misc/share/domain/Fingerprint.kt | 16 ++++++ .../privacy/SanitizeSharingLinksPatch.kt | 33 ++++++++++++ .../patches/shared/SharedPatchNames.kt | 3 ++ .../links/ChangeLinkSharingDomainPatch.kt | 6 ++- 11 files changed, 192 insertions(+), 47 deletions(-) create mode 100644 extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/share/domain/ChangeLinkSharingDomainPatch.java create mode 100644 extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/share/privacy/SanitizeSharingLinksPatch.java create mode 100644 patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/EditShareLinksPatch.kt rename patches/src/main/kotlin/app/revanced/patches/instagram/misc/{privacy/Fingerprints.kt => share/PermalinkResponseJsonParserFingerprint.kt} (93%) create mode 100644 patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/domain/ChangeLinkSharingDomainPatch.kt create mode 100644 patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/domain/Fingerprint.kt create mode 100644 patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/privacy/SanitizeSharingLinksPatch.kt diff --git a/extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/share/domain/ChangeLinkSharingDomainPatch.java b/extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/share/domain/ChangeLinkSharingDomainPatch.java new file mode 100644 index 000000000..77eea7e84 --- /dev/null +++ b/extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/share/domain/ChangeLinkSharingDomainPatch.java @@ -0,0 +1,33 @@ +package app.revanced.extension.instagram.misc.share.domain; + +import android.net.Uri; +import app.revanced.extension.shared.Logger; + +@SuppressWarnings("unused") +public final class ChangeLinkSharingDomainPatch { + + private static String getCustomShareDomain() { + // Method is modified during patching. + throw new IllegalStateException(); + } + + /** + * Injection point. + */ + public static String setCustomShareDomain(String url) { + try { + Uri uri = Uri.parse(url); + Uri.Builder builder = uri + .buildUpon() + .authority(getCustomShareDomain()) + .clearQuery(); + + String patchedUrl = builder.build().toString(); + Logger.printInfo(() -> "Domain change from : " + url + " to: " + patchedUrl); + return patchedUrl; + } catch (Exception ex) { + Logger.printException(() -> "setCustomShareDomain failure with " + url, ex); + return url; + } + } +} diff --git a/extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/share/privacy/SanitizeSharingLinksPatch.java b/extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/share/privacy/SanitizeSharingLinksPatch.java new file mode 100644 index 000000000..9b3aa6347 --- /dev/null +++ b/extensions/instagram/src/main/java/app/revanced/extension/instagram/misc/share/privacy/SanitizeSharingLinksPatch.java @@ -0,0 +1,15 @@ +package app.revanced.extension.instagram.misc.share.privacy; + +import app.revanced.extension.shared.privacy.LinkSanitizer; + +@SuppressWarnings("unused") +public final class SanitizeSharingLinksPatch { + private static final LinkSanitizer sanitizer = new LinkSanitizer("igsh"); + + /** + * Injection point. + */ + public static String sanitizeSharingLink(String url) { + return sanitizer.sanitizeUrlString(url); + } +} diff --git a/patches/api/patches.api b/patches/api/patches.api index 806d7a46e..c12b7a9bd 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -292,6 +292,14 @@ public final class app/revanced/patches/instagram/misc/privacy/SanitizeSharingLi public static final fun getSanitizeSharingLinksPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } +public final class app/revanced/patches/instagram/misc/share/domain/ChangeLinkSharingDomainPatchKt { + public static final fun getChangeLinkSharingDomainPatch ()Lapp/revanced/patcher/patch/BytecodePatch; +} + +public final class app/revanced/patches/instagram/misc/share/privacy/SanitizeSharingLinksPatchKt { + public static final fun getSanitizeSharingLinksPatch ()Lapp/revanced/patcher/patch/BytecodePatch; +} + public final class app/revanced/patches/instagram/misc/signature/SignatureCheckPatchKt { public static final fun getSignatureCheckPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt index 54d7e9c03..9e5930af8 100644 --- a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt @@ -1,50 +1,12 @@ package app.revanced.patches.instagram.misc.privacy -import app.revanced.patcher.extensions.InstructionExtensions.addInstructions -import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.bytecodePatch -import app.revanced.patches.instagram.misc.extension.sharedExtensionPatch -import app.revanced.patches.shared.PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS -import app.revanced.patches.shared.PATCH_NAME_SANITIZE_SHARING_LINKS -import app.revanced.util.indexOfFirstInstructionOrThrow -import com.android.tools.smali.dexlib2.Opcode -import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction - -private const val EXTENSION_CLASS_DESCRIPTOR = - "Lapp/revanced/extension/instagram/misc/privacy/SanitizeSharingLinksPatch;" +@Deprecated( + "Patch was moved to a different package", + ReplaceWith("app.revanced.patches.instagram.misc.share.privacy.sanitizeSharingLinksPatch") +) @Suppress("unused") -val sanitizeSharingLinksPatch = bytecodePatch( - name = PATCH_NAME_SANITIZE_SHARING_LINKS, - description = PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS, -) { - compatibleWith("com.instagram.android") - - dependsOn(sharedExtensionPatch) - - execute { - arrayOf( - permalinkResponseJsonParserFingerprint, - storyUrlResponseJsonParserFingerprint, - profileUrlResponseJsonParserFingerprint, - liveUrlResponseJsonParserFingerprint - ).forEach { fingerprint -> - fingerprint.method.apply { - val putSharingUrlIndex = indexOfFirstInstructionOrThrow( - fingerprint.stringMatches!!.first().index, - Opcode.IPUT_OBJECT - ) - - val sharingUrlRegister = getInstruction(putSharingUrlIndex).registerA - - addInstructions( - putSharingUrlIndex, - """ - invoke-static { v$sharingUrlRegister }, $EXTENSION_CLASS_DESCRIPTOR->sanitizeSharingLink(Ljava/lang/String;)Ljava/lang/String; - move-result-object v$sharingUrlRegister - """ - ) - } - } - } +val sanitizeSharingLinksPatch = bytecodePatch { + dependsOn(app.revanced.patches.instagram.misc.share.privacy.sanitizeSharingLinksPatch) } diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/EditShareLinksPatch.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/EditShareLinksPatch.kt new file mode 100644 index 000000000..b6d968c65 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/EditShareLinksPatch.kt @@ -0,0 +1,31 @@ +package app.revanced.patches.instagram.misc.share + +import app.revanced.patcher.extensions.InstructionExtensions.getInstruction +import app.revanced.patcher.patch.BytecodePatchContext +import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod +import app.revanced.util.indexOfFirstInstruction +import com.android.tools.smali.dexlib2.Opcode +import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction + +context(BytecodePatchContext) +internal fun editShareLinksPatch(block: MutableMethod.(index: Int, register: Int) -> Unit) { + val fingerprintsToPatch = arrayOf( + permalinkResponseJsonParserFingerprint, + storyUrlResponseJsonParserFingerprint, + profileUrlResponseJsonParserFingerprint, + liveUrlResponseJsonParserFingerprint + ) + + for (fingerprint in fingerprintsToPatch) { + fingerprint.method.apply { + val putSharingUrlIndex = indexOfFirstInstruction( + permalinkResponseJsonParserFingerprint.stringMatches!!.first().index, + Opcode.IPUT_OBJECT + ) + + val sharingUrlRegister = getInstruction(putSharingUrlIndex).registerA + + block(putSharingUrlIndex, sharingUrlRegister) + } + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/PermalinkResponseJsonParserFingerprint.kt similarity index 93% rename from patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/Fingerprints.kt rename to patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/PermalinkResponseJsonParserFingerprint.kt index 78ac35f85..9e0d8e64d 100644 --- a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/PermalinkResponseJsonParserFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.instagram.misc.privacy +package app.revanced.patches.instagram.misc.share import app.revanced.patcher.fingerprint diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/domain/ChangeLinkSharingDomainPatch.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/domain/ChangeLinkSharingDomainPatch.kt new file mode 100644 index 000000000..1e476b73b --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/domain/ChangeLinkSharingDomainPatch.kt @@ -0,0 +1,42 @@ +package app.revanced.patches.instagram.misc.share.domain + +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patcher.patch.stringOption +import app.revanced.patches.instagram.misc.extension.sharedExtensionPatch +import app.revanced.patches.instagram.misc.share.editShareLinksPatch +import app.revanced.patches.shared.PATCH_DESCRIPTION_CHANGE_LINK_SHARING_DOMAIN +import app.revanced.patches.shared.PATCH_NAME_CHANGE_LINK_SHARING_DOMAIN +import app.revanced.util.returnEarly + +@Suppress("unused") +val changeLinkSharingDomainPatch = bytecodePatch( + name = PATCH_NAME_CHANGE_LINK_SHARING_DOMAIN, + description = PATCH_DESCRIPTION_CHANGE_LINK_SHARING_DOMAIN, + use = false +) { + compatibleWith("com.instagram.android") + + dependsOn(sharedExtensionPatch) + + execute { + val customDomainHost by stringOption( + key = "domainName", + default = "imginn.com", + title = "Domain name", + description = "The domain name to use when sharing links." + ) + + getCustomShareDomainFingerprint.method.returnEarly(customDomainHost!!) + + editShareLinksPatch { index, register -> + addInstructions( + index, + """ + invoke-static { v$register }, $EXTENSION_CLASS_DESCRIPTOR->setCustomShareDomain(Ljava/lang/String;)Ljava/lang/String; + move-result-object v$register + """ + ) + } + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/domain/Fingerprint.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/domain/Fingerprint.kt new file mode 100644 index 000000000..133752000 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/domain/Fingerprint.kt @@ -0,0 +1,16 @@ +package app.revanced.patches.instagram.misc.share.domain + +import app.revanced.patcher.fingerprint +import com.android.tools.smali.dexlib2.AccessFlags + +internal const val EXTENSION_CLASS_DESCRIPTOR = + "Lapp/revanced/extension/instagram/misc/share/domain/ChangeLinkSharingDomainPatch;" + +internal val getCustomShareDomainFingerprint = fingerprint { + accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC) + returns("Ljava/lang/String;") + parameters() + custom { method, classDef -> + method.name == "getCustomShareDomain" && classDef.type == EXTENSION_CLASS_DESCRIPTOR + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/privacy/SanitizeSharingLinksPatch.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/privacy/SanitizeSharingLinksPatch.kt new file mode 100644 index 000000000..a73099a22 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/share/privacy/SanitizeSharingLinksPatch.kt @@ -0,0 +1,33 @@ +package app.revanced.patches.instagram.misc.share.privacy + +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patches.instagram.misc.extension.sharedExtensionPatch +import app.revanced.patches.instagram.misc.share.editShareLinksPatch +import app.revanced.patches.shared.PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS +import app.revanced.patches.shared.PATCH_NAME_SANITIZE_SHARING_LINKS + +private const val EXTENSION_CLASS_DESCRIPTOR = + "Lapp/revanced/extension/instagram/misc/share/privacy/SanitizeSharingLinksPatch;" + +@Suppress("unused") +val sanitizeSharingLinksPatch = bytecodePatch( + name = PATCH_NAME_SANITIZE_SHARING_LINKS, + description = PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS, +) { + compatibleWith("com.instagram.android") + + dependsOn(sharedExtensionPatch) + + execute { + editShareLinksPatch { index, register -> + addInstructions( + index, + """ + invoke-static { v$register }, $EXTENSION_CLASS_DESCRIPTOR->sanitizeSharingLink(Ljava/lang/String;)Ljava/lang/String; + move-result-object v$register + """ + ) + } + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/SharedPatchNames.kt b/patches/src/main/kotlin/app/revanced/patches/shared/SharedPatchNames.kt index 34b91a59c..39e3e8cf5 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/SharedPatchNames.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/SharedPatchNames.kt @@ -9,3 +9,6 @@ internal const val PATCH_DESCRIPTION_REMOVE_ROOT_DETECTION = "Removes the check internal const val PATCH_NAME_SANITIZE_SHARING_LINKS = "Sanitize sharing links" internal const val PATCH_DESCRIPTION_SANITIZE_SHARING_LINKS = "Removes the tracking query parameters from shared links." + +internal const val PATCH_NAME_CHANGE_LINK_SHARING_DOMAIN = "Change link sharing domain" +internal const val PATCH_DESCRIPTION_CHANGE_LINK_SHARING_DOMAIN = "Replaces the domain name of shared links." diff --git a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/ChangeLinkSharingDomainPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/ChangeLinkSharingDomainPatch.kt index 982fdb5a4..db33e715b 100644 --- a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/ChangeLinkSharingDomainPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/links/ChangeLinkSharingDomainPatch.kt @@ -6,6 +6,8 @@ import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.patch.resourcePatch import app.revanced.patcher.patch.stringOption +import app.revanced.patches.shared.PATCH_DESCRIPTION_CHANGE_LINK_SHARING_DOMAIN +import app.revanced.patches.shared.PATCH_NAME_CHANGE_LINK_SHARING_DOMAIN import app.revanced.patches.shared.misc.mapping.get import app.revanced.patches.shared.misc.mapping.resourceMappingPatch import app.revanced.patches.shared.misc.mapping.resourceMappings @@ -29,8 +31,8 @@ private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/twitter/patches/li @Suppress("unused") val changeLinkSharingDomainPatch = bytecodePatch( - name = "Change link sharing domain", - description = "Replaces the domain name of Twitter links when sharing them.", + name = PATCH_NAME_CHANGE_LINK_SHARING_DOMAIN, + description = PATCH_DESCRIPTION_CHANGE_LINK_SHARING_DOMAIN ) { dependsOn( changeLinkSharingDomainResourcePatch, From 277a8b6b4752b0691d9455e1308450be9be46485 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 7 Oct 2025 11:45:19 +0000 Subject: [PATCH 47/63] chore: Release v5.42.0-dev.14 [skip ci] # [5.42.0-dev.14](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.13...v5.42.0-dev.14) (2025-10-07) ### Features * **Instagram:** Add `Custom share domain` patch ([#5998](https://github.com/ReVanced/revanced-patches/issues/5998)) ([20c4131](https://github.com/ReVanced/revanced-patches/commit/20c413120bad97af6121718e76b22a1b5540aa44)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a48f5721e..e7f0d5693 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.14](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.13...v5.42.0-dev.14) (2025-10-07) + + +### Features + +* **Instagram:** Add `Custom share domain` patch ([#5998](https://github.com/ReVanced/revanced-patches/issues/5998)) ([20c4131](https://github.com/ReVanced/revanced-patches/commit/20c413120bad97af6121718e76b22a1b5540aa44)) + # [5.42.0-dev.13](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.12...v5.42.0-dev.13) (2025-10-07) diff --git a/gradle.properties b/gradle.properties index 6293cff5f..01b1b9f2e 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.42.0-dev.13 +version = 5.42.0-dev.14 From 2154d89242fd8d7f7460145d5d35a4f1986944a3 Mon Sep 17 00:00:00 2001 From: brosssh <44944126+brosssh@users.noreply.github.com> Date: Tue, 7 Oct 2025 14:37:20 +0200 Subject: [PATCH 48/63] feat(Instagram): Add `Enable developer menu` patch (#6043) --- patches/api/patches.api | 4 ++ .../misc/devmenu/EnableDeveloperMenuPatch.kt | 37 +++++++++++++++++++ .../instagram/misc/devmenu/Fingerprints.kt | 12 ++++++ 3 files changed, 53 insertions(+) create mode 100644 patches/src/main/kotlin/app/revanced/patches/instagram/misc/devmenu/EnableDeveloperMenuPatch.kt create mode 100644 patches/src/main/kotlin/app/revanced/patches/instagram/misc/devmenu/Fingerprints.kt diff --git a/patches/api/patches.api b/patches/api/patches.api index c12b7a9bd..79abfd5ab 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -280,6 +280,10 @@ public final class app/revanced/patches/instagram/hide/stories/HideStoriesKt { public static final fun getHideStoriesPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } +public final class app/revanced/patches/instagram/misc/devmenu/EnableDeveloperMenuPatchKt { + public static final fun getEnableDeveloperMenuPatch ()Lapp/revanced/patcher/patch/BytecodePatch; +} + public final class app/revanced/patches/instagram/misc/extension/SharedExtensionPatchKt { public static final fun getSharedExtensionPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } 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 new file mode 100644 index 000000000..4f594478d --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/devmenu/EnableDeveloperMenuPatch.kt @@ -0,0 +1,37 @@ +package app.revanced.patches.instagram.misc.devmenu + +import app.revanced.patcher.patch.bytecodePatch +import app.revanced.util.Utils.trimIndentMultiline +import app.revanced.util.getReference +import app.revanced.util.indexOfFirstInstructionReversedOrThrow +import app.revanced.util.returnEarly +import com.android.tools.smali.dexlib2.Opcode +import com.android.tools.smali.dexlib2.iface.reference.MethodReference + +@Suppress("unused") +val enableDeveloperMenuPatch = bytecodePatch( + name = "Enable developer menu", + description = """ + Enables the developer menu, which can be found at the bottom of settings menu with name 'Internal Settings'. + + It is recommended to use this patch with an alpha/beta Instagram release. Patching a stable release works, but the developer menu shows the developer flags as numbers and does not show a human readable description. + """.trimIndentMultiline(), + use = false +) { + compatibleWith("com.instagram.android") + + execute { + with(clearNotificationReceiverFingerprint.method) { + indexOfFirstInstructionReversedOrThrow(clearNotificationReceiverFingerprint.stringMatches!!.first().index) { + val reference = getReference() + Opcode.INVOKE_STATIC == opcode && + reference?.parameterTypes?.size == 1 && + reference.parameterTypes.first() == "Lcom/instagram/common/session/UserSession;" && + reference.returnType == "Z" + }.let { index -> + navigate(this).to(index).stop().returnEarly(true) + } + } + } +} + diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/devmenu/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/devmenu/Fingerprints.kt new file mode 100644 index 000000000..8b84606f0 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/devmenu/Fingerprints.kt @@ -0,0 +1,12 @@ + +package app.revanced.patches.instagram.misc.devmenu + +import app.revanced.patcher.fingerprint + +internal val clearNotificationReceiverFingerprint = fingerprint { + custom { method, classDef -> + method.name == "onReceive" && + classDef.type == "Lcom/instagram/notifications/push/ClearNotificationReceiver;" + } + strings("NOTIFICATION_DISMISSED") +} From fe16433f20991129f98485eb6aa04f8f6c584686 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 7 Oct 2025 12:42:11 +0000 Subject: [PATCH 49/63] chore: Release v5.42.0-dev.15 [skip ci] # [5.42.0-dev.15](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.14...v5.42.0-dev.15) (2025-10-07) ### Features * **Instagram:** Add `Enable developer menu` patch ([#6043](https://github.com/ReVanced/revanced-patches/issues/6043)) ([2154d89](https://github.com/ReVanced/revanced-patches/commit/2154d89242fd8d7f7460145d5d35a4f1986944a3)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e7f0d5693..0f23c7e46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.15](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.14...v5.42.0-dev.15) (2025-10-07) + + +### Features + +* **Instagram:** Add `Enable developer menu` patch ([#6043](https://github.com/ReVanced/revanced-patches/issues/6043)) ([2154d89](https://github.com/ReVanced/revanced-patches/commit/2154d89242fd8d7f7460145d5d35a4f1986944a3)) + # [5.42.0-dev.14](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.13...v5.42.0-dev.14) (2025-10-07) diff --git a/gradle.properties b/gradle.properties index 01b1b9f2e..adf346b95 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.42.0-dev.14 +version = 5.42.0-dev.15 From f03256c471e1ee6a12267c1b56b531ca8f89278c Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Tue, 7 Oct 2025 19:15:37 +0400 Subject: [PATCH 50/63] fix(YouTube - Spoof video streams): Add "Allow Android VR AV1" setting (#6071) --- .../shared/spoof/SpoofVideoStreamsPatch.java | 15 +++++---- .../patches/spoof/SpoofVideoStreamsPatch.java | 18 ++++++---- .../extension/youtube/settings/Settings.java | 8 +++++ ...oofStreamingDataSideEffectsPreference.java | 10 ++---- patches/api/patches.api | 5 --- .../misc/spoof/SpoofVideoStreamsPatch.kt | 18 ++++------ .../misc/spoof/SpoofVideoStreamsPatch.kt | 20 +++++++---- .../misc/spoof/SpoofVideoStreamsPatch.kt | 33 +++++++++---------- .../resources/addresources/values/arrays.xml | 4 +-- .../resources/addresources/values/strings.xml | 9 ++++- 10 files changed, 76 insertions(+), 64 deletions(-) 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 a1de3d0be..53664881b 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 @@ -19,6 +19,14 @@ 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. @@ -321,11 +329,4 @@ public class SpoofVideoStreamsPatch { return videoFormat; } - - public static final class AudioStreamLanguageOverrideAvailability implements Setting.Availability { - @Override - public boolean isAvailable() { - return BaseSettings.SPOOF_VIDEO_STREAMS.get() && !preferredClient.useAuth; - } - } } 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 e9672d1ff..eaf2f3e14 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 @@ -8,29 +8,35 @@ import static app.revanced.extension.shared.spoof.ClientType.VISIONOS; import java.util.List; +import app.revanced.extension.shared.settings.Setting; import app.revanced.extension.shared.spoof.ClientType; import app.revanced.extension.youtube.settings.Settings; @SuppressWarnings("unused") public class SpoofVideoStreamsPatch { + public static final class SpoofClientAv1Availability implements Setting.Availability { + @Override + public boolean isAvailable() { + return Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.isAvailable() + && Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() == ANDROID_VR_1_43_32; + } + } + /** * Injection point. */ public static void setClientOrderToUse() { ClientType client = Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get(); - - if (Settings.FORCE_AVC_CODEC.get() && client == ANDROID_VR_1_61_48) { - // VR 1.61 uses VP9/AV1, and cannot force AVC. Use 1.43 instead. - client = ANDROID_VR_1_43_32; + if (client == ANDROID_VR_1_43_32 && Settings.SPOOF_VIDEO_STREAMS_AV1.get()) { + client = ANDROID_VR_1_61_48; } List availableClients = List.of( + ANDROID_CREATOR, ANDROID_VR_1_43_32, VISIONOS, - ANDROID_CREATOR, - ANDROID_VR_1_61_48, IPADOS); app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch.setClientsToUse( 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 e8c21aca1..d131cfee2 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 @@ -21,6 +21,7 @@ import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerT 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; +import static app.revanced.extension.youtube.patches.spoof.SpoofVideoStreamsPatch.SpoofClientAv1Availability; import static app.revanced.extension.youtube.patches.theme.ThemePatch.SplashScreenAnimationStyle; import static app.revanced.extension.youtube.sponsorblock.SegmentPlaybackController.SponsorBlockDuration; import static app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour.IGNORE; @@ -357,6 +358,8 @@ public class Settings extends BaseSettings { public static final BooleanSetting SPOOF_DEVICE_DIMENSIONS = new BooleanSetting("revanced_spoof_device_dimensions", FALSE, true, "revanced_spoof_device_dimensions_user_dialog_message"); public static final EnumSetting SPOOF_VIDEO_STREAMS_CLIENT_TYPE = new EnumSetting<>("revanced_spoof_video_streams_client_type", ClientType.ANDROID_VR_1_43_32, true, parent(SPOOF_VIDEO_STREAMS)); + public static final BooleanSetting SPOOF_VIDEO_STREAMS_AV1 = new BooleanSetting("revanced_spoof_video_streams_av1", FALSE, true, + "revanced_spoof_video_streams_av1_user_dialog_message", new SpoofClientAv1Availability()); public static final BooleanSetting DEBUG_PROTOBUFFER = new BooleanSetting("revanced_debug_protobuffer", FALSE, false, "revanced_debug_protobuffer_user_dialog_message", parent(BaseSettings.DEBUG)); @@ -524,6 +527,11 @@ public class Settings extends BaseSettings { SPOOF_APP_VERSION.resetToDefault(); } + // VR 1.61 is not selectable in the settings, and it's selected by spoof stream patch if needed. + if (SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get() == ClientType.ANDROID_VR_1_61_48) { + SPOOF_VIDEO_STREAMS_CLIENT_TYPE.resetToDefault(); + } + // 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; 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 919aed6c6..bf66edbd4 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 @@ -87,13 +87,9 @@ public class SpoofStreamingDataSideEffectsPreference extends Preference { 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"); - case ANDROID_VR_1_43_32 -> - summary += '\n' + str("revanced_spoof_video_streams_about_no_stable_volume") - + '\n' + str("revanced_spoof_video_streams_about_no_av1"); - case ANDROID_VR_1_61_48 -> - summary = str("revanced_spoof_video_streams_about_dropped_frames") - + '\n' + summary - + '\n' + str("revanced_spoof_video_streams_about_no_stable_volume"); + // 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"); case IPADOS -> summary = str("revanced_spoof_video_streams_about_playback_failure") + '\n' + str("revanced_spoof_video_streams_about_no_av1"); diff --git a/patches/api/patches.api b/patches/api/patches.api index 79abfd5ab..d45ee2c76 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -1026,11 +1026,6 @@ public final class app/revanced/patches/shared/misc/settings/preference/TextPref public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element; } -public final class app/revanced/patches/shared/misc/spoof/SpoofVideoStreamsPatchKt { - public static final fun spoofVideoStreamsPatch (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lapp/revanced/patcher/patch/BytecodePatch; - public static synthetic fun spoofVideoStreamsPatch$default (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lapp/revanced/patcher/patch/BytecodePatch; -} - public final class app/revanced/patches/shared/misc/spoof/UserAgentClientSpoofPatchKt { public static final fun userAgentClientSpoofPatch (Ljava/lang/String;)Lapp/revanced/patcher/patch/BytecodePatch; } diff --git a/patches/src/main/kotlin/app/revanced/patches/music/misc/spoof/SpoofVideoStreamsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/misc/spoof/SpoofVideoStreamsPatch.kt index b01f74cca..93c294480 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/misc/spoof/SpoofVideoStreamsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/misc/spoof/SpoofVideoStreamsPatch.kt @@ -1,6 +1,5 @@ package app.revanced.patches.music.misc.spoof -import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patches.all.misc.resources.addResources import app.revanced.patches.all.misc.resources.addResourcesPatch import app.revanced.patches.music.misc.extension.sharedExtensionPatch @@ -16,12 +15,13 @@ import app.revanced.patches.shared.misc.settings.preference.PreferenceScreenPref import app.revanced.patches.shared.misc.settings.preference.SwitchPreference import app.revanced.patches.shared.misc.spoof.spoofVideoStreamsPatch -private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/music/patches/spoof/SpoofVideoStreamsPatch;" - val spoofVideoStreamsPatch = spoofVideoStreamsPatch( - fixMediaFetchHotConfigChanges = { true }, - fixMediaFetchHotConfigAlternativeChanges = { is_8_11_or_greater && !is_8_15_or_greater }, + extensionClassDescriptor = "Lapp/revanced/extension/music/patches/spoof/SpoofVideoStreamsPatch;", + mainActivityOnCreateFingerprint = musicActivityOnCreateFingerprint, + fixMediaFetchHotConfig = { true }, + fixMediaFetchHotConfigAlternative = { is_8_11_or_greater && !is_8_15_or_greater }, fixParsePlaybackResponseFeatureFlag = { is_7_33_or_greater }, + block = { dependsOn( sharedExtensionPatch, @@ -38,6 +38,7 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch( ) ) }, + executeBlock = { addResources("music", "misc.fix.playback.spoofVideoStreamsPatch") @@ -51,10 +52,5 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch( ) ) ) - - musicActivityOnCreateFingerprint.method.addInstruction( - 0, - "invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->setClientOrderToUse()V" - ) } -) \ No newline at end of file +) diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/misc/spoof/SpoofVideoStreamsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/misc/spoof/SpoofVideoStreamsPatch.kt index c03e8022c..7c1c58410 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/misc/spoof/SpoofVideoStreamsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/misc/spoof/SpoofVideoStreamsPatch.kt @@ -1,5 +1,6 @@ package app.revanced.patches.shared.misc.spoof +import app.revanced.patcher.Fingerprint import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels @@ -36,11 +37,13 @@ internal const val EXTENSION_CLASS_DESCRIPTOR = private lateinit var buildRequestMethod: MutableMethod private var buildRequestMethodUrlRegister = -1 -fun spoofVideoStreamsPatch( - block: BytecodePatchBuilder.() -> Unit = {}, - fixMediaFetchHotConfigChanges: BytecodePatchBuilder.() -> Boolean = { false }, - fixMediaFetchHotConfigAlternativeChanges: BytecodePatchBuilder.() -> Boolean = { false }, +internal fun spoofVideoStreamsPatch( + extensionClassDescriptor: String, + mainActivityOnCreateFingerprint: Fingerprint, + fixMediaFetchHotConfig: BytecodePatchBuilder.() -> Boolean = { false }, + fixMediaFetchHotConfigAlternative: BytecodePatchBuilder.() -> Boolean = { false }, fixParsePlaybackResponseFeatureFlag: BytecodePatchBuilder.() -> Boolean = { false }, + block: BytecodePatchBuilder.() -> Unit = {}, executeBlock: BytecodePatchContext.() -> Unit = {}, ) = bytecodePatch( name = "Spoof video streams", @@ -53,6 +56,11 @@ fun spoofVideoStreamsPatch( execute { addResources("shared", "misc.fix.playback.spoofVideoStreamsPatch") + mainActivityOnCreateFingerprint.method.addInstruction( + 0, + "invoke-static { }, $extensionClassDescriptor->setClientOrderToUse()V" + ) + // region Enable extension helper method used by other patches patchIncludedExtensionMethodFingerprint.method.returnEarly(true) @@ -308,14 +316,14 @@ fun spoofVideoStreamsPatch( // region turn off stream config replacement feature flag. - if (fixMediaFetchHotConfigChanges()) { + if (fixMediaFetchHotConfig()) { mediaFetchHotConfigFingerprint.method.insertLiteralOverride( MEDIA_FETCH_HOT_CONFIG_FEATURE_FLAG, "$EXTENSION_CLASS_DESCRIPTOR->useMediaFetchHotConfigReplacement(Z)Z" ) } - if (fixMediaFetchHotConfigAlternativeChanges()) { + if (fixMediaFetchHotConfigAlternative()) { mediaFetchHotConfigAlternativeFingerprint.method.insertLiteralOverride( MEDIA_FETCH_HOT_CONFIG_ALTERNATIVE_FEATURE_FLAG, "$EXTENSION_CLASS_DESCRIPTOR->useMediaFetchHotConfigReplacement(Z)Z" 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 0131c9e59..2192f8016 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 @@ -1,6 +1,5 @@ package app.revanced.patches.youtube.misc.spoof -import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patches.all.misc.resources.addResources import app.revanced.patches.shared.misc.settings.preference.ListPreference import app.revanced.patches.shared.misc.settings.preference.NonInteractivePreference @@ -16,9 +15,20 @@ import app.revanced.patches.youtube.misc.settings.PreferenceScreen import app.revanced.patches.youtube.misc.settings.settingsPatch import app.revanced.patches.youtube.shared.mainActivityOnCreateFingerprint -private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch;" - val spoofVideoStreamsPatch = spoofVideoStreamsPatch( + extensionClassDescriptor = "Lapp/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch;", + mainActivityOnCreateFingerprint = mainActivityOnCreateFingerprint, + fixMediaFetchHotConfig = { + is_19_34_or_greater + }, + fixMediaFetchHotConfigAlternative = { + // In 20.14 the flag was merged with 20.03 start playback flag. + is_20_10_or_greater && !is_20_14_or_greater + }, + fixParsePlaybackResponseFeatureFlag = { + is_20_03_or_greater + }, + block = { compatibleWith( "com.google.android.youtube"( @@ -35,16 +45,7 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch( versionCheckPatch ) }, - fixMediaFetchHotConfigChanges = { - is_19_34_or_greater - }, - fixMediaFetchHotConfigAlternativeChanges = { - // In 20.14 the flag was merged with 20.03 start playback flag. - is_20_10_or_greater && !is_20_14_or_greater - }, - fixParsePlaybackResponseFeatureFlag = { - is_20_03_or_greater - }, + executeBlock = { addResources("youtube", "misc.fix.playback.spoofVideoStreamsPatch") @@ -61,6 +62,7 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch( summaryKey = null, 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. @@ -72,10 +74,5 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch( ) ) ) - - mainActivityOnCreateFingerprint.method.addInstruction( - 0, - "invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->setClientOrderToUse()V" - ) } ) diff --git a/patches/src/main/resources/addresources/values/arrays.xml b/patches/src/main/resources/addresources/values/arrays.xml index b2fa4a885..3faa7cdbe 100644 --- a/patches/src/main/resources/addresources/values/arrays.xml +++ b/patches/src/main/resources/addresources/values/arrays.xml @@ -137,15 +137,13 @@ - Android VR 1.43 - Android VR 1.61 + Android VR Android Studio visionOS iPadOS ANDROID_VR_1_43_32 - ANDROID_VR_1_61_48 ANDROID_CREATOR VISIONOS IPADOS diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index 0bdd13f86..2461191bb 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -1681,13 +1681,20 @@ Limitations: Slide to seek is not enabled + Allow Android VR AV1 + "Video codec is AVC (H.264), VP9, or AV1 + +Playback may stutter or drop frames" + Video codec is AVC (H.264) or VP9 + "Enabling this setting may use software AV1 decoding. + +Video playback with AV1 may stutter or drop frames." Spoofing side effects • Experimental client and may stop working anytime • Video may stop at 1:00, or may not be available in some regions • Audio track menu is missing • No AV1 video codec • Stable volume is not available - • Playback may stutter or drop frames • Kids videos may not play when logged out or in incognito mode • Force original audio is not available From bb222d7a26fb0641c47bda5af016fe908ca89a2a Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 7 Oct 2025 15:19:06 +0000 Subject: [PATCH 51/63] chore: Release v5.42.0-dev.16 [skip ci] # [5.42.0-dev.16](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.15...v5.42.0-dev.16) (2025-10-07) ### Bug Fixes * **YouTube - Spoof video streams:** Add "Allow Android VR AV1" setting ([#6071](https://github.com/ReVanced/revanced-patches/issues/6071)) ([f03256c](https://github.com/ReVanced/revanced-patches/commit/f03256c471e1ee6a12267c1b56b531ca8f89278c)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f23c7e46..4942f73a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.16](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.15...v5.42.0-dev.16) (2025-10-07) + + +### Bug Fixes + +* **YouTube - Spoof video streams:** Add "Allow Android VR AV1" setting ([#6071](https://github.com/ReVanced/revanced-patches/issues/6071)) ([f03256c](https://github.com/ReVanced/revanced-patches/commit/f03256c471e1ee6a12267c1b56b531ca8f89278c)) + # [5.42.0-dev.15](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.14...v5.42.0-dev.15) (2025-10-07) diff --git a/gradle.properties b/gradle.properties index adf346b95..577bf84ab 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.42.0-dev.15 +version = 5.42.0-dev.16 From 63be54dd0921ffff588334cbd2b0174772816d55 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Tue, 7 Oct 2025 19:39:54 +0400 Subject: [PATCH 52/63] chore: Remove unneeded binary compatibility for code that was never released to main --- patches/api/patches.api | 4 ---- .../misc/privacy/SanitizeSharingLinksPatch.kt | 12 ------------ 2 files changed, 16 deletions(-) delete mode 100644 patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt diff --git a/patches/api/patches.api b/patches/api/patches.api index d45ee2c76..c85acef50 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -292,10 +292,6 @@ public final class app/revanced/patches/instagram/misc/links/OpenLinksExternally public static final fun getOpenLinksExternallyPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } -public final class app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatchKt { - public static final fun getSanitizeSharingLinksPatch ()Lapp/revanced/patcher/patch/BytecodePatch; -} - public final class app/revanced/patches/instagram/misc/share/domain/ChangeLinkSharingDomainPatchKt { public static final fun getChangeLinkSharingDomainPatch ()Lapp/revanced/patcher/patch/BytecodePatch; } diff --git a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt b/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt deleted file mode 100644 index 9e5930af8..000000000 --- a/patches/src/main/kotlin/app/revanced/patches/instagram/misc/privacy/SanitizeSharingLinksPatch.kt +++ /dev/null @@ -1,12 +0,0 @@ -package app.revanced.patches.instagram.misc.privacy - -import app.revanced.patcher.patch.bytecodePatch - -@Deprecated( - "Patch was moved to a different package", - ReplaceWith("app.revanced.patches.instagram.misc.share.privacy.sanitizeSharingLinksPatch") -) -@Suppress("unused") -val sanitizeSharingLinksPatch = bytecodePatch { - dependsOn(app.revanced.patches.instagram.misc.share.privacy.sanitizeSharingLinksPatch) -} From f51b260d1d7d365e4dad047a39445279c4f8d907 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 7 Oct 2025 19:40:18 +0400 Subject: [PATCH 53/63] chore: Sync translations (#6073) --- .../resources/addresources/values-ar-rSA/strings.xml | 9 ++++++++- .../resources/addresources/values-az-rAZ/strings.xml | 9 ++++++++- .../resources/addresources/values-be-rBY/strings.xml | 9 ++++++++- .../resources/addresources/values-bg-rBG/strings.xml | 9 ++++++++- .../resources/addresources/values-bn-rBD/strings.xml | 9 ++++++++- .../resources/addresources/values-cs-rCZ/strings.xml | 9 ++++++++- .../resources/addresources/values-da-rDK/strings.xml | 9 ++++++++- .../resources/addresources/values-de-rDE/strings.xml | 9 ++++++++- .../resources/addresources/values-el-rGR/strings.xml | 9 ++++++++- .../resources/addresources/values-es-rES/strings.xml | 7 ++++++- .../resources/addresources/values-et-rEE/strings.xml | 9 ++++++++- .../resources/addresources/values-fi-rFI/strings.xml | 9 ++++++++- .../resources/addresources/values-fil-rPH/strings.xml | 9 ++++++++- .../resources/addresources/values-fr-rFR/strings.xml | 9 ++++++++- .../resources/addresources/values-ga-rIE/strings.xml | 9 ++++++++- .../resources/addresources/values-hu-rHU/strings.xml | 9 ++++++++- .../resources/addresources/values-hy-rAM/strings.xml | 9 ++++++++- .../resources/addresources/values-in-rID/strings.xml | 9 ++++++++- .../resources/addresources/values-it-rIT/strings.xml | 9 ++++++++- .../resources/addresources/values-iw-rIL/strings.xml | 9 ++++++++- .../resources/addresources/values-ja-rJP/strings.xml | 9 ++++++++- .../resources/addresources/values-ko-rKR/strings.xml | 9 ++++++++- .../resources/addresources/values-lt-rLT/strings.xml | 9 ++++++++- .../resources/addresources/values-lv-rLV/strings.xml | 9 ++++++++- .../resources/addresources/values-nl-rNL/strings.xml | 9 ++++++++- .../resources/addresources/values-pl-rPL/strings.xml | 9 ++++++++- .../resources/addresources/values-pt-rBR/strings.xml | 9 ++++++++- .../resources/addresources/values-pt-rPT/strings.xml | 9 ++++++++- .../resources/addresources/values-ro-rRO/strings.xml | 9 ++++++++- .../resources/addresources/values-ru-rRU/strings.xml | 9 ++++++++- .../resources/addresources/values-sk-rSK/strings.xml | 9 ++++++++- .../resources/addresources/values-sl-rSI/strings.xml | 9 ++++++++- .../resources/addresources/values-sq-rAL/strings.xml | 9 ++++++++- .../resources/addresources/values-sr-rCS/strings.xml | 9 ++++++++- .../resources/addresources/values-sr-rSP/strings.xml | 9 ++++++++- .../resources/addresources/values-sv-rSE/strings.xml | 9 ++++++++- .../resources/addresources/values-th-rTH/strings.xml | 9 ++++++++- .../resources/addresources/values-tr-rTR/strings.xml | 9 ++++++++- .../resources/addresources/values-uk-rUA/strings.xml | 9 ++++++++- .../resources/addresources/values-vi-rVN/strings.xml | 9 ++++++++- .../resources/addresources/values-zh-rCN/strings.xml | 9 ++++++++- .../resources/addresources/values-zh-rTW/strings.xml | 9 ++++++++- 42 files changed, 334 insertions(+), 42 deletions(-) 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 763ba3234..e05f29d23 100644 --- a/patches/src/main/resources/addresources/values-ar-rSA/strings.xml +++ b/patches/src/main/resources/addresources/values-ar-rSA/strings.xml @@ -1604,13 +1604,20 @@ Second \"item\" text" تم تعطيل التمرير للتقديم أو الترجيع + السماح لـ Android VR AV1 + "برنامج ترميز الفيديو هو AVC (H.264) أو VP9 أو AV1 + +قد يحدث تقطيع أو فقدان للإطارات أثناء التشغيل" + برنامج ترميز الفيديو هو AVC (H.264) أو VP9 + "قد يؤدي تمكين هذا الإعداد إلى استخدام فك ترميز AV1 برمجيًا. + +قد يتلعثم تشغيل الفيديو بتقنية AV1 أو يفقد بعض الإطارات." التأثيرات الجانبية للتزييف • عميل تجريبي وقد يتوقف عن العمل في أي وقت • قد يتوقف الفيديو عند 1:00، أو قد لا يكون متاحًا في بعض المناطق • قائمة المقطع الصوتي مفقودة • لا يوجد ترميز الفيديو AV1 • مستوى الصوت الثابت غير متاح - • قد يتوقف التشغيل مؤقتًا أو تسقط الإطارات • قد لا يتم تشغيل الفيديوهات المخصصة للأطفال عند تسجيل الخروج أو عند استخدام وضع التصفح المتخفي • فرض الصوت الأصلي غير متاح 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 457b64433..f5362e7e3 100644 --- a/patches/src/main/resources/addresources/values-az-rAZ/strings.xml +++ b/patches/src/main/resources/addresources/values-az-rAZ/strings.xml @@ -1603,13 +1603,20 @@ Məhdudiyyətlər: Axtarmaq üçün sürüşdürmə aktiv deyil + Android VR AV1-ə icazə ver + "Video kodek AVC (H.264), VP9 və ya AV1-dir + +Oxutma kəsilə bilər və ya kadrlar atıla bilər" + Video kodek AVC (H.264) və ya VP9-dur + "Bu ayarı aktivləşdirmək proqram təminatı AV1 dekodlaşdırmasından istifadə edə bilər. + +AV1 ilə video oxutma kəsilə bilər və ya kadrlar atıla bilər." Saxtakarlıq yan təsirləri • Təcrübi qəbuledici və hər vaxt işləməyi dayandıra bilər • Video 01:00-da dayana bilər və ya bəzi bölgələrdə mövcud olmaya bilər • Səs treki menyusu çatışmır • AV1 video kodlayıcı yoxdur • Sabit səs yoxdur - • Oynatma qarışa bilər və ya kadrlar ötürülə bilər • Giriş edilməyəndə və ya gizli rejimdə uşaq videoları oynadıla bilməz • \"Orijinal səsi zorla\" ə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 935ec76ca..96a3e1206 100644 --- a/patches/src/main/resources/addresources/values-be-rBY/strings.xml +++ b/patches/src/main/resources/addresources/values-be-rBY/strings.xml @@ -1605,13 +1605,20 @@ Second \"item\" text" Слайд для пошуку не ўключаны + Дазволіць Android VR AV1 + "Відэакодэк — AVC (H.264), VP9 або AV1 + +Праграмаванне можа заікацца або прапускаць кадры" + Відэакодэк — AVC (H.264) або VP9 + "Уключэнне гэтай налады можа выкарыстоўваць праграмнае дэкадаванне AV1. + +Прайграванне відэа з AV1 можа заікацца або прапускаць кадры." Пабочныя эфекты падробкі • Эксперыментальны кліент і можа спыніць працу ў любы час • Відэа можа спыніцца на 1:00, ці можа быць недаступным у некаторых рэгіёнах • Меню аўдыядарожкі адсутнічае • Няма відэакідавання AV1 • Стабільная гучнасць недаступная - • Прайграванне можа заікацца або прапускаць кадры • Дзіцячыя відэа могуць не прайгравацца ў стане выхаду з акаўнта або ў рэжыме інкогніта • Прымусовы арыгінальны аўдыё недаступны 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 3ebb4c453..074bc17b6 100644 --- a/patches/src/main/resources/addresources/values-bg-rBG/strings.xml +++ b/patches/src/main/resources/addresources/values-bg-rBG/strings.xml @@ -1604,13 +1604,20 @@ Second \"item\" text" Слайд за превъртане е деактивиран + Разрешаване на Android VR AV1 + "Видеокодекът е AVC (H.264), VP9 или AV1 + +Възпроизвеждането може да заеква или да пропуска кадри" + Видеокодекът е AVC (H.264) или VP9 + "Разрешаването на тази настройка може да използва софтуерно AV1 декодиране. + +Възпроизвеждането на видео с AV1 може да заеква или да пропуска кадри." Странични ефекти от подменянето • Експериментален клиент и може да спре да работи по всяко време • Видеото може да спре на 1:00 или може да не е налично в някои региони • Менюто за аудиозаписи липсва • Без AV1 видео кодек • Стабилният звук не е наличен - • Възпроизвеждането може да заеква или да пропуска кадри • Детските видеоклипове може да не се възпроизвеждат, когато сте излезли от профила си или в режим \"инкогнито\" • Принудителният оригинален звук не е наличен 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 864d56a91..ed6a3d48e 100644 --- a/patches/src/main/resources/addresources/values-bn-rBD/strings.xml +++ b/patches/src/main/resources/addresources/values-bn-rBD/strings.xml @@ -1600,13 +1600,20 @@ DeArrow সম্পর্কে আরও জানতে এখানে ট ভিডিওর নির্দিষ্ট অংশে যেতে টানুন সক্রিয় করা হয়নি + অ্যান্ড্রয়েড VR AV1 অনুমতি দিন + "ভিডিও কোডেক হল AVC (H.264), VP9, অথবা AV1 + +প্লেব্যাক আটকে যেতে পারে বা ফ্রেম বাদ দিতে পারে" + ভিডিও কোডেক হল AVC (H.264) অথবা VP9 + "এই সেটিংটি চালু করলে সফটওয়্যার AV1 ডিকোডিং ব্যবহার হতে পারে। + +AV1 সহ ভিডিও প্লেব্যাক আটকে যেতে পারে বা ফ্রেম বাদ দিতে পারে।" স্পুফিংয়ের পার্শ্বপ্রতিক্রিয়া • পরীক্ষামূলক ক্লায়েন্ট এবং যেকোনো সময় কাজ করা বন্ধ করতে পারে • ভিডিও ১:০০ মিনিটে বন্ধ হতে পারে, অথবা কিছু অঞ্চলে উপলব্ধ নাও হতে পারে • অডিও ট্র্যাক মেনু অনুপস্থিত • কোনো AV1 ভিডিও কোডেক নেই • স্থিতিশীল ভলিউম উপলব্ধ নেই - • প্লেব্যাক আটকে যেতে পারে বা ফ্রেম বাদ দিতে পারে • লগআউট করা হলে বা ছদ্মবেশী মোডে বাচ্চাদের ভিডিও চলতে নাও পারে • মূল অডিও জোরপূর্বক উপলব্ধ নেই 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 c500e47c5..c061911e4 100644 --- a/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml +++ b/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml @@ -1604,13 +1604,20 @@ Omezení: Posun pro hledání není povolen + Povolit Android VR AV1 + "Video kodek je AVC (H.264), VP9 nebo AV1 + +Přehrávání se může zasekávat nebo přeskakovat snímky" + Video kodek je AVC (H.264) nebo VP9 + "Povolení tohoto nastavení může využívat softwarové dekódování AV1. + +Přehrávání videa s AV1 se může sekat nebo vypadávat snímky." Vedlejší účinky maskování • Experimentální klient a může kdykoli přestat fungovat • Video se může zastavit v 1:00 nebo nemusí být dostupné v některých oblastech • Chybí nabídka zvukových stop • Žádný video kodek AV1 • Stabilní hlasitost není k dispozici - • Přehrávání se může sekat nebo ztrácet snímky • Dětská videa se nemusí přehrávat, když jste odhlášení nebo v anonymním režimu • Vynutit původní zvuk není k dispozici 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 79182d697..9ceec5b9c 100644 --- a/patches/src/main/resources/addresources/values-da-rDK/strings.xml +++ b/patches/src/main/resources/addresources/values-da-rDK/strings.xml @@ -1606,13 +1606,20 @@ Begrænsninger: Dias til søgning er ikke aktiveret + Tillad Android VR AV1 + "Videocodec er AVC (H.264), VP9 eller AV1 + +Afspilning kan hakke eller miste billeder" + Videocodec er AVC (H.264) eller VP9 + "Aktivering af denne indstilling kan bruge software AV1-afkodning. + +Videoafspilning med AV1 kan hakke eller tabe billeder." Bivirkninger ved spoofing • Eksperimentel klient og kan stoppe med at fungere når som helst • Videoen kan stoppe ved 1:00, eller er muligvis ikke tilgængelig i visse regioner • Lydspormenu mangler • Intet AV1-videokodek • Stabil lydstyrke er ikke tilgængelig - • Afspilning kan hakke eller tabe billeder • Videoer til børn afspilles muligvis ikke, når du er logget ud eller i inkognitotilstand • Tving original lyd er ikke tilgængelig 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 b018f4faf..a4e4f4dc1 100644 --- a/patches/src/main/resources/addresources/values-de-rDE/strings.xml +++ b/patches/src/main/resources/addresources/values-de-rDE/strings.xml @@ -1601,13 +1601,20 @@ Einschränkungen: Slide zum Suchen ist nicht aktiviert + Android VR AV1 zulassen + "Video-Codec ist AVC (H.264), VP9 oder AV1 + +Die Wiedergabe kann stottern oder Frames verlieren" + Video-Codec ist AVC (H.264) oder VP9 + "Durch Aktivierung dieser Einstellung kann Software-AV1-Decodierung verwendet werden. + +Die Videowiedergabe mit AV1 kann stottern oder Bilder überspringen." Nebenwirkungen des Spoofings • Experimenteller Client und kann jederzeit aufhören zu funktionieren • Video kann um 1:00 Uhr stoppen oder ist möglicherweise in einigen Regionen nicht verfügbar • Audiotrack-Menü fehlt • Kein AV1-Videocodec • Stabile Lautstärke ist nicht verfügbar - • Die Wiedergabe kann stottern oder Bilder überspringen • Kinder-Videos werden möglicherweise nicht abgespielt, wenn du abgemeldet bist oder den Inkognito-Modus verwendest. • Originalton erzwingen ist 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 88f27c5b2..8c1f81647 100644 --- a/patches/src/main/resources/addresources/values-el-rGR/strings.xml +++ b/patches/src/main/resources/addresources/values-el-rGR/strings.xml @@ -1603,13 +1603,20 @@ Second \"item\" text" Η χειρονομία συρσίματος για αναζήτηση στη γραμμή προόδου είναι απενεργοποιημένη + Να επιτρέπεται το Android VR AV1 + "Ο κωδικοποιητής βίντεο είναι AVC (H.264), VP9 ή AV1 + +Η αναπαραγωγή ενδέχεται να κολλήσει ή να χάσει καρέ" + Ο κωδικοποιητής βίντεο είναι AVC (H.264) ή VP9 + "Η ενεργοποίηση αυτής της ρύθμισης ενδέχεται να χρησιμοποιήσει αποκωδικοποίηση AV1 λογισμικού. + +Η αναπαραγωγή βίντεο με AV1 ενδέχεται να έχει διακοπές ή να χάνει καρέ." Παρενέργειες παραποίησης • Πειραματικός πελάτης και μπορεί να σταματήσει να λειτουργεί ανά πάσα στιγμή • Το βίντεο μπορεί να σταματήσει στο 1:00 ή να μην είναι διαθέσιμο σε ορισμένες περιοχές • Το μενού «Κομμάτι ήχου» λείπει • Δεν υπάρχει ο κωδικοποιητής βίντεο AV1 • Η λειτουργία «Σταθερή ένταση» δεν είναι διαθέσιμη - • Η αναπαραγωγή μπορεί να κομπιάζει ή να χάνει καρέ • Τα βίντεο για παιδιά ενδέχεται να μην αναπαράγονται αν είστε αποσυνδεδεμένοι ή σε λειτουργία ανώνυμης περιήγησης • Ο εξαναγκασμός αρχικής γλώσσας ήχου δεν είναι διαθέσιμος 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 05998beab..e2808ffe4 100644 --- a/patches/src/main/resources/addresources/values-es-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-es-rES/strings.xml @@ -1595,13 +1595,18 @@ Limitaciones: Slide to seek no está activado + Permitir Android VR AV1 + "El códec de video es AVC (H.264), VP9 o AV1 + +La reproducción puede tartamudear o perder fotogramas" + El códec de video es AVC (H.264) o VP9 + "Habilitar esta configuración puede usar la decodificación de software AV1.\n\nLa reproducción de video con AV1 puede tartamudear o perder fotogramas." Efectos secundarios de la falsificación • El cliente es experimental y puede dejar de funcionar en cualquier momento • El video puede detenerse en 1:00, o puede no estar disponible en algunas regiones • Falta el menú de la pista de audio • Sin códec de vídeo AV1 • Volumen estable no disponible - • La reproducción podría tartamudear o perder fotogramas • Es posible que los vídeos infantiles no se reproduzcan cuando se cierra la sesión o se está en modo incógnito • Forzar audio original no está disponible 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 3ceaec10d..707252763 100644 --- a/patches/src/main/resources/addresources/values-et-rEE/strings.xml +++ b/patches/src/main/resources/addresources/values-et-rEE/strings.xml @@ -1604,13 +1604,20 @@ Piirangud: Libistamine otsimiseks on keelatud + Luba Android VR AV1 + "Videokodek on AVC (H.264), VP9 või AV1 + +Taasesitus võib hakata kokutama või kaotada kaadreid" + Videokodek on AVC (H.264) või VP9 + "Selle seade lubamine võib kasutada tarkvara AV1 dekodeerimist. + +AV1-ga videotaasesitus võib hakitud olla või kaadreid vahele jätta." Võltsimise kõrvalmõjud • Eksperimentaalne klient ja võib igal ajal töötamast lakata • Video võib peatuda kell 1:00 või ei pruugi olla teatud piirkondades saadaval • Heliraja menüü puudub • Puuduv AV1 videokoodek • Stabiilne helitugevus pole saadaval - • Taasesitus võib katkendlik olla või kaadreid vahele jätta • Video lastele ei pruugi taasesitada, kui olete välja logitud või inkognito režiimis • Sunni algne heli pole saadaval 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 4f9b72353..04220491f 100644 --- a/patches/src/main/resources/addresources/values-fi-rFI/strings.xml +++ b/patches/src/main/resources/addresources/values-fi-rFI/strings.xml @@ -1604,13 +1604,20 @@ Rajoitukset: Kelaus liu\'uttamalla ei ole käytössä + Salli Android VR AV1 + "Videokoodekki on AVC (H.264), VP9 tai AV1 + +Toisto voi nykiä tai pudottaa kehyksiä" + Videokoodekki on AVC (H.264) tai VP9 + "Tämän asetuksen ottaminen käyttöön saattaa käyttää ohjelmistopohjaista AV1-dekoodausta. + +AV1-videon toisto saattaa pätkiä tai pudottaa kuvia." Naamioimisen sivuvaikutukset • Kokeellinen asiakasohjelma, joka saattaa lakata toimimasta milloin tahansa • Video saattaa pysähtyä aikaan 1:00, tai ei välttämättä ole saatavilla joillakin alueilla • Ääniraitavalikko puuttuu • Ei AV1-videokoodekkia • Tasainen äänenvoimakkuus ei ole käytettävissä - • Toisto saattaa pätkiä tai pudottaa kuvia • Lasten videot eivät ehkä toistu, kun olet kirjautunut ulos tai incognito-tilassa • Pakota alkuperäinen ääni ei ole käytettävissä 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 cce1c246a..13a99b5af 100644 --- a/patches/src/main/resources/addresources/values-fil-rPH/strings.xml +++ b/patches/src/main/resources/addresources/values-fil-rPH/strings.xml @@ -1602,13 +1602,20 @@ Mga Limitasyon: Hindi pinagana ang slide to seek + Payagan ang Android VR AV1 + "Ang video codec ay AVC (H.264), VP9, o AV1 + +Maaaring mag-stutter o mag-drop ng frames ang playback" + Ang video codec ay AVC (H.264) o VP9 + "Ang pagpapagana sa setting na ito ay maaaring gumamit ng software AV1 decoding. + +Maaaring mag-stutter o mag-drop ng frames ang pag-playback ng video na may AV1." Mga epekto ng pagpapanggap • Pang-eksperimentong kliyente at maaaring huminto sa paggana anumang oras • Maaaring huminto ang video sa 1:00, o maaaring hindi available sa ilang rehiyon • Nawawala ang menu ng audio track • Walang AV1 video codec • Hindi available ang stable volume - • Maaaring mag-stutter ang pag-playback o bumaba ang mga frame • Mga video ng mga bata ay maaaring hindi ma-play kapag naka-log out o nasa incognito mode • Ang Pilitin ang orihinal na audio ay hindi magagamit 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 ae8e618fa..88b85b626 100644 --- a/patches/src/main/resources/addresources/values-fr-rFR/strings.xml +++ b/patches/src/main/resources/addresources/values-fr-rFR/strings.xml @@ -1605,13 +1605,20 @@ Limitations : Glisser pour rechercher est désactivé + Autoriser Android VR AV1 + "Le codec vidéo est AVC (H.264), VP9 ou AV1 + +La lecture peut saccader ou perdre des images" + Le codec vidéo est AVC (H.264) ou VP9 + "L'activation de ce paramètre peut utiliser le décodage AV1 logiciel. + +La lecture vidéo avec AV1 peut saccader ou perdre des images." Effets secondaires de la falsification • Client expérimental, peut cesser de fonctionner à tout moment • Les vidéos sont susceptibles de s\'arrêter à 1:00, ou de ne pas être disponibles dans certaines régions • Le menu Piste audio est absent • Codec vidéo AV1 indisponible • Le volume stable n\'est pas disponible - • Il est possible que la lecture soit saccadée ou que des images soient perdues • La lecture des vidéos pour enfants peut ne pas fonctionner lorsque vous êtes déconnecté ou en mode navigation privée • Forcer la langue audio d\'origine n\'est pas disponible 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 7854cfb81..6141389a0 100644 --- a/patches/src/main/resources/addresources/values-ga-rIE/strings.xml +++ b/patches/src/main/resources/addresources/values-ga-rIE/strings.xml @@ -1604,13 +1604,20 @@ Teorainneacha: Níl sleamhnán le lorg cumasaithe + Ceadaigh Android VR AV1 + "Is é an códac físeáin AVC (H.264), VP9, nó AV1 + +D'fhéadfadh go mbeadh fadhbanna le hathsheinm nó go gcaillfí frámaí" + Is é an códac físeáin AVC (H.264) nó VP9 + "Má chumasaítear an socrú seo, d'fhéadfadh sé díchódú bogearraí AV1 a úsáid. + +D'fhéadfadh athsheinm físe AV1 leacadh nó frámaí a scaoileadh." Fo-éifeachtaí a fhalsúa • Cliant turgnamhach é seo agus féadfaidh sé stop a chur ag obair ag am ar bith • Is féidir go stopfaidh an físeán ag 1:00, nó b\'fhéidir nach mbeidh sé ar fáil i réigiúin áirithe • Tá an roghchlár rian fuaime in easnamh • Níl aon cóideac físe AV1 • Níl toirt chobhsaí ar fáil - • D\'fhéadfadh an athsheinm bacadh nó frámaí a chailleadh • Seans nach seinnfear físeáin do pháistí nuair a bhíonn siad logáilte amach nó i mód go hanaithnid • Níl an fuaim bhunaidh iallach ar fáil 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 058a2f9f8..bc71281b5 100644 --- a/patches/src/main/resources/addresources/values-hu-rHU/strings.xml +++ b/patches/src/main/resources/addresources/values-hu-rHU/strings.xml @@ -1601,13 +1601,20 @@ Korlátozások: A csúsztatás a kereséshez nincs engedélyezve + Android VR AV1 engedélyezése + "A videó kodek AVC (H.264), VP9 vagy AV1 + +A lejátszás akadozhat vagy képkockákat ejthet" + A videokodek AVC (H.264) vagy VP9 + "Ennek a beállításnak az engedélyezése szoftveres AV1 dekódolást használhat. + +Az AV1-es videólejátszás akadozhat vagy képkockákat ejthet." Hamisítás mellékhatásai • Kísérleti kliens, és bármikor leállhat • A videó megállhat 1:00-nál, vagy előfordulhat, hogy egyes régiókban nem elérhető • Hiányzik az hangsáv menü • Nincs AV1 videokodek • Stabil hangerő nem elérhető - • A lejátszás akadozhat vagy képkockákat dobhat. • A gyermekeknek szóló videók nem játszódnak le, ha a felhasználó kijelentkezett, vagy inkognitómódban van. • Eredeti hang kényszerítése nem érhető el 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 bb723e17c..d4e4b4c86 100644 --- a/patches/src/main/resources/addresources/values-hy-rAM/strings.xml +++ b/patches/src/main/resources/addresources/values-hy-rAM/strings.xml @@ -1605,13 +1605,20 @@ Mini-player-ը կարող է գրավվել էկրանից դուրս՝ դեպի Սահելը համար ընտրելը անջատված է + Թույլատրել Android VR AV1 + "Տեսակոդեկը AVC (H.264), VP9 կամ AV1 է + +Նվագարկումը կարող է կանգ առնել կամ կորցնել կադրեր" + Տեսակոդեկը AVC (H.264) կամ VP9 է + "Այս կարգավորումը միացնելը կարող է օգտագործել AV1 ծրագրային ապակոդավորում: + +AV1-ով տեսանյութի նվագարկումը կարող է ընդհատվել կամ կորցնել կադրեր:" Կեղծելու կողմնակի ազդեցություններ • Փորձնական հաճախորդ է և կարող է ցանկացած պահի դադարել աշխատել • Տեսանյութը կարող է դադարել 1:00-ին կամ հասանելի չլինել որոշ տարածաշրջաններում • Ձայնային ուղու մենյուն բացակայում է • Հեռացված բոլոր AV1 վիդեո կոդեկները • Կայուն ձայնի մակարդակը հասանելի չէ - • Նվագարկումը հնարավոր է ընդհատվի կամ բաց թողնի կադրեր Երեխաների տեսանյութերը կարող են չհամապատասխանել հետևյալ պահանջներին՝ եթե արտոնագրման խախտումներ կան։ • Բնօրինակ ձայնի պարտադրումը հասանելի չէ 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 54a548f0e..db621a673 100644 --- a/patches/src/main/resources/addresources/values-in-rID/strings.xml +++ b/patches/src/main/resources/addresources/values-in-rID/strings.xml @@ -1603,13 +1603,20 @@ Batasan: Geser untuk mencari tidak diaktifkan + Izinkan Android VR AV1 + "Codec video adalah AVC (H.264), VP9, atau AV1 + +Pemutaran mungkin tersendat atau kehilangan bingkai" + Codec video adalah AVC (H.264) atau VP9 + "Mengaktifkan pengaturan ini mungkin menggunakan decoding AV1 perangkat lunak. + +Pemutaran video dengan AV1 mungkin tersendat atau kehilangan bingkai." Efek samping pemalsuan • Klien eksperimental dan dapat berhenti berfungsi kapan saja • Video mungkin berhenti pada 1:00, atau mungkin tidak tersedia di beberapa wilayah • Menu trek audio tidak ada • Tidak ada codec video AV1 • Volume stabil tidak tersedia - • Pemutaran mungkin tersendat-sendat atau terjadi penurunan kualitas gambar • Video anak-anak mungkin tidak dapat diputar saat keluar atau dalam mode penyamaran • Paksa audio asli tidak tersedia 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 65f0b0551..509208cec 100644 --- a/patches/src/main/resources/addresources/values-it-rIT/strings.xml +++ b/patches/src/main/resources/addresources/values-it-rIT/strings.xml @@ -1603,13 +1603,20 @@ Limitazioni: Scorri per avanzare non è abilitato + Consenti Android VR AV1 + "Il codec video è AVC (H.264), VP9 o AV1 + +La riproduzione potrebbe subire interruzioni o perdere fotogrammi" + Il codec video è AVC (H.264) o VP9 + "Abilitando questa impostazione potrebbe essere utilizzata la decodifica AV1 via software. + +La riproduzione video con AV1 potrebbe rallentare o perdere fotogrammi." Effetti collaterali della falsificazione • Client sperimentale e potrebbe smettere di funzionare in qualsiasi momento • Il video potrebbe interrompersi all\'1:00, o potrebbe non essere disponibile in alcune regioni • Manca il menu delle tracce audio • Nessun codec video AV1 • Il volume stabile non è disponibile - • La riproduzione potrebbe scattare o perdere fotogrammi • I video dei bambini potrebbero non essere riprodotti quando si è disconnessi o in modalità di navigazione in incognito • L\'audio originale forzato non è disponibile 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 14b253e79..5bc713abb 100644 --- a/patches/src/main/resources/addresources/values-iw-rIL/strings.xml +++ b/patches/src/main/resources/addresources/values-iw-rIL/strings.xml @@ -1606,13 +1606,20 @@ Second \"item\" text" החלק כדי לדלג אינו מופעל + אפשר Android VR AV1 + "מקודד וידאו הוא AVC (H.264), VP9, או AV1 + +ההפעלה עשויה לגמגם או לדלג על פריימים" + מקודד וידאו הוא AVC (H.264) או VP9 + "הפעלת הגדרה זו עשויה להשתמש בפענוח תוכנה של AV1. + +הפעלת וידאו עם AV1 עלולה לגרום לגמגום או לדלוג על פריימים." תופעות לוואי של התחזות • לקוח ניסיוני ועשוי להפסיק לפעול בכל עת • הווידאו עשוי להיעצר בדקה 1:00, או ייתכן שלא יהיה זמין באזורים מסוימים • תפריט ערוץ השמע חסר • אין קודק וידאו מסוג AV1 • עוצמת קול יציבה אינה זמינה - • ההפעלה עלולה לגמגם או להפיל פריימים • ייתכן שסרטוני Kids לא יופעלו כשאתה מנותק או במצב פרטי • כפיית שמע מקורי אינה זמינה 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 c4084ad6e..6bfffc2bc 100644 --- a/patches/src/main/resources/addresources/values-ja-rJP/strings.xml +++ b/patches/src/main/resources/addresources/values-ja-rJP/strings.xml @@ -1606,13 +1606,20 @@ Automotive レイアウト スライドによるシークは無効です。プレーヤー画面を左右にスライドしても、前後にシークしません + Android VR AV1 を許可する + "ビデオコーデックはAVC (H.264)、VP9、またはAV1です + +再生中に途切れたり、フレームがドロップすることがあります" + ビデオコーデックはAVC (H.264) またはVP9です + "この設定を有効にすると、ソフトウェアAV1デコードが使用される可能性があります。 + +AV1での動画再生は、途切れたりフレームが落ちたりする場合があります。" 偽装による副作用 • 実験的なクライアントであり、いつでも動作しなくなる可能性がある • 動画が 01:00 で停止する、または一部の地域で利用できない可能性がある •「音声トラック」がフライアウト メニューに表示されない • AV1 コーデックが利用できない •「一定音量」が利用できない - • 再生がカクつく、またはコマ落ちが発生する場合がある • ログアウト時またはシークレット モード時に、子ども向け動画が再生されない可能性がある •「オリジナルの音声を強制的に使用」が利用できない 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 040d5e4cb..cc83dbb36 100644 --- a/patches/src/main/resources/addresources/values-ko-rKR/strings.xml +++ b/patches/src/main/resources/addresources/values-ko-rKR/strings.xml @@ -1611,13 +1611,20 @@ DeArrow에 대해 자세히 알아보려면 여기를 탭하세요" 슬라이드하여 탐색을 비활성화합니다 + Android VR AV1 허용 + "비디오 코덱은 AVC (H.264), VP9 또는 AV1입니다 + +재생이 끊기거나 프레임이 떨어질 수 있습니다" + 비디오 코덱은 AVC (H.264) 또는 VP9입니다 + "이 설정을 활성화하면 소프트웨어 AV1 디코딩을 사용할 수 있습니다. + +AV1을 사용한 비디오 재생 시 끊김 또는 프레임 드롭이 발생할 수 있습니다." 변경에 따른 부작용 • 실험용 클라이언트이며 언제든지 작동이 중단될 수 있습니다 • 동영상이 1:00에 멈출 수 있으며, 일부 지역에서는 이용이 불가능할 수 있습니다 • 오디오 트랙 메뉴가 표시되지 않습니다 • AV1 코덱이 지원되지 않습니다 • 안정적인 볼륨을 사용할 수 없습니다 - • 재생이 끊기거나 프레임이 손실될 수 있습니다 • Kids 동영상은 로그인을 하지 않았거나 시크릿 모드에서는 재생되지 않을 수 있습니다 • 원본 오디오를 강제로 활성화할 수 없습니다 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 0655defd0..f9ec6a032 100644 --- a/patches/src/main/resources/addresources/values-lt-rLT/strings.xml +++ b/patches/src/main/resources/addresources/values-lt-rLT/strings.xml @@ -1605,13 +1605,20 @@ Apribojimai: Slinkimas, kad ieškotumėte, neišjungtas + Leisti Android VR AV1 + "Vaizdo kodekas yra AVC (H.264), VP9 arba AV1 + +Gali strigti arba praleisti kadrus" + Vaizdo kodekas yra AVC (H.264) arba VP9 + "Įjungus šį nustatymą, gali būti naudojamas programinės įrangos AV1 dekodavimas. + +Vaizdo įrašo atkūrimas su AV1 gali strigti arba praleisti kadrus." Klastojimo šalutiniai efektai • Eksperimentinis klientas ir bet kada gali nustoti veikti • Vaizdo įrašas gali sustoti ties 1:00 arba gali būti nepasiekiamas kai kuriuose regionuose • Trūksta garso takelio meniu • Nėra AV1 vaizdo kodeko • Stabili garso apimtis nepasiekiama - • Atkūrimas gali strigti arba praleisti kadrus • Vaikų vaizdo įrašai gali būti neatkuriami, kai atsijungiama arba naudojamas inkognito režimas • Priverstinai naudoti originalų garsą nepasiekiama 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 c3d85901e..3c7c46ff6 100644 --- a/patches/src/main/resources/addresources/values-lv-rLV/strings.xml +++ b/patches/src/main/resources/addresources/values-lv-rLV/strings.xml @@ -1605,13 +1605,20 @@ Ierobežojumi: Slīdēšana, lai meklētu, nav iespējota + Atļaut Android VR AV1 + "Video kodeks ir AVC (H.264), VP9 vai AV1 + +Atskaņošana var raustīties vai izlaist kadrus" + Video kodeks ir AVC (H.264) vai VP9 + "Šī iestatījuma iespējošana var izmantot programmatūras AV1 dekodēšanu. + +AV1 video atskaņošana var raustīties vai izlaist kadrus." Viltotu straumju blakusparādības • Eksperimentāls klients un jebkurā brīdī var pārtraukt darbu • Video var apstāties pulksten 1:00 vai nebūt pieejams dažos reģionos • Trūkst audio celiņa izvēlnes • Nav pieejams AV1 video kodeks • Nav pieejams stabils skaļums - • Atskaņošana var raustīties vai izlaist kadrus • Bērnu videoklipi var netikt atskaņoti, kad esat izrakstījies vai inkognito režīmā. • Piespiest oriģinālo skaņu nav pieejams 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 f8310b78a..e04887aff 100644 --- a/patches/src/main/resources/addresources/values-nl-rNL/strings.xml +++ b/patches/src/main/resources/addresources/values-nl-rNL/strings.xml @@ -1602,13 +1602,20 @@ Beperkingen: Schuiven om te zoeken is niet ingeschakeld + Sta Android VR AV1 toe + "Videocodec is AVC (H.264), VP9 of AV1 + +Afspelen kan haperen of frames overslaan" + Videocodec is AVC (H.264) of VP9 + "Het inschakelen van deze instelling kan gebruikmaken van softwarematige AV1-decodering. + +Het afspelen van video met AV1 kan haperen of frames overslaan." Spoofing-neveneffecten • Experimentele client en kan elk moment stoppen met werken • Video kan stoppen om 1:00, of is mogelijk niet beschikbaar in sommige regio\'s • Audiotrack-menu ontbreekt • Geen AV1-videocodec • Stabiel volume is niet beschikbaar - • Het afspelen kan haperen of frames overslaan • \"Kinder\"​-Video’s worden mogelijk niet afgespeeld wanneer u bent uitgelogd of de incognitomodus gebruikt • Oorspronkelijke audio forceren is niet beschikbaar 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 6faa4a545..9a08c81d0 100644 --- a/patches/src/main/resources/addresources/values-pl-rPL/strings.xml +++ b/patches/src/main/resources/addresources/values-pl-rPL/strings.xml @@ -1600,13 +1600,20 @@ Ograniczenia: Przesuń, aby przeszukiwać nie jest włączony + Zezwól na Android VR AV1 + "Kodek wideo to AVC (H.264), VP9 lub AV1 + +Odtwarzanie może się zacinać lub gubić klatki" + Kodek wideo to AVC (H.264) lub VP9 + "Włączenie tego ustawienia może używać programowego dekodowania AV1. + +Odtwarzanie wideo z AV1 może powodować zacinanie się lub gubienie klatek." Skutki uboczne fałszowania • Eksperymentalny klient i może przestać działać w każdej chwili • Wideo może zatrzymać się o 1:00 lub może być niedostępne w niektórych regionach • Brakuje menu ścieżek audio • Žádný video kodek AV1 • Stabilna głośność nie jest dostępna - • Odtwarzanie może się zacinać lub gubić klatki • Filmy dla dzieci mogą nie być odtwarzane po wylogowaniu lub w trybie incognito • Wymuś oryginalny dźwięk jest niedostępny 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 dab1f26cc..3b07fe700 100644 --- a/patches/src/main/resources/addresources/values-pt-rBR/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rBR/strings.xml @@ -1601,13 +1601,20 @@ Limitações: Gesto na barra de busca está desativado + Permitir Android VR AV1 + "O codec de vídeo é AVC (H.264), VP9 ou AV1 + +A reprodução pode engasgar ou perder quadros" + O codec de vídeo é AVC (H.264) ou VP9 + "Ativar esta configuração pode usar decodificação de software AV1. + +A reprodução de vídeo com AV1 pode gaguejar ou perder quadros." Efeitos colaterais da falsificação • Cliente experimental e pode parar de funcionar a qualquer momento • O vídeo pode parar em 1:00, ou pode não estar disponível em algumas regiões • O menu da faixa de áudio está faltando • Sem codec de vídeo AV1 • Volume estável não está disponível - • A reprodução pode gaguejar ou perder quadros • Vídeos infantis podem não ser reproduzidos quando estiver desconectado ou no modo de navegação anônima • Forçar áudio original não está disponível 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 51259330a..f974231f3 100644 --- a/patches/src/main/resources/addresources/values-pt-rPT/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rPT/strings.xml @@ -1604,13 +1604,20 @@ Limitações: Deslize para procurar não está habilitado + Permitir Android VR AV1 + "O codec de vídeo é AVC (H.264), VP9 ou AV1 + +A reprodução pode gaguejar ou perder quadros" + O codec de vídeo é AVC (H.264) ou VP9 + "Ativar esta configuração pode usar descodificação AV1 por software. + +A reprodução de vídeo com AV1 pode apresentar soluços ou perder quadros." Efeitos colaterais da falsificação • Cliente experimental e pode parar de funcionar a qualquer momento • O vídeo pode parar em 1:00, ou pode não estar disponível em algumas regiões • O menu da faixa de áudio está faltando • Nenhum codec de vídeo AV1 • O volume estável não está disponível - • A reprodução pode gaguejar ou perder quadros • Vídeos infantis podem não ser reproduzidos quando desconectado ou no modo anônimo • Forçar áudio original não está disponível 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 4d6570aad..48bfb037e 100644 --- a/patches/src/main/resources/addresources/values-ro-rRO/strings.xml +++ b/patches/src/main/resources/addresources/values-ro-rRO/strings.xml @@ -1601,13 +1601,20 @@ Limitări: Slide pentru a căuta nu este activat + Permite Android VR AV1 + "Codecul video este AVC (H.264), VP9 sau AV1 + +Redarea poate sacada sau pierde cadre" + Codecul video este AVC (H.264) sau VP9 + "Activarea acestei setări poate folosi decodarea software AV1. + +Redarea video cu AV1 poate sacada sau pierde cadre." Efecte secundare ale simulării • Client experimental și se poate opri din funcționare oricând • Videoclipul se poate opri la 1:00, sau poate să nu fie disponibil în unele regiuni • Meniul pistei audio lipsește • Fara codec video AV1 • Volumul stabil nu este disponibil - • Redarea poate sacada sau pierde cadre • Copiii nu pot urmări videoclipuri atunci când sunt deconectați sau în modul incognito • Forțarea sunetului original nu este disponibilă 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 76362f907..7f2ba6f8c 100644 --- a/patches/src/main/resources/addresources/values-ru-rRU/strings.xml +++ b/patches/src/main/resources/addresources/values-ru-rRU/strings.xml @@ -1611,13 +1611,20 @@ Second \"item\" text" Перемотка видео слайдом отключена (ускорение видео \"2x\" при нажатии и удержании включено) + Разрешить Android VR AV1 + "Видеокодек: AVC (H.264), VP9 или AV1 + +Воспроизведение может зависать или пропускать кадры" + Видеокодек: AVC (H.264) или VP9 + "Включение этой настройки может использовать программное декодирование AV1. + +Воспроизведение видео с AV1 может прерываться или пропускать кадры." Побочные эффекты подмены • Клиент экспериментальный и может перестать работать в любое время • Видео может остановиться на 1:00 или может быть недоступно в некоторых регионах • Пункт \"Звуковая дорожка\" отсутствует • Отсутствует видеокодек AV1 • Постоянный уровень громкости недоступен - • Воспроизведение может зависать или пропускать кадры • Видео для детей могут не воспроизводиться при выходе из системы или в режиме инкогнито • Принудительная оригинальная звуковая дорожка недоступна 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 a48be437d..15dd6f3a8 100644 --- a/patches/src/main/resources/addresources/values-sk-rSK/strings.xml +++ b/patches/src/main/resources/addresources/values-sk-rSK/strings.xml @@ -1597,13 +1597,20 @@ Obmedzenia: Nie je povolené posúvanie + Povoliť Android VR AV1 + "Videokodek je AVC (H.264), VP9 alebo AV1 + +Prehrávanie sa môže sekať alebo môžu vypadávať snímky" + Videokodek je AVC (H.264) alebo VP9 + "Povolenie tohto nastavenia môže použiť softvérové AV1 dekódovanie. + +Prehrávanie videa s AV1 môže sekať alebo vynechávať snímky." Vedľajšie účinky podvrhnutia • Experimentálny klient a môže kedykoľvek prestať fungovať • Video sa môže zastaviť o 1:00, alebo nemusí byť dostupné v niektorých regiónoch • Chýba ponuka zvukovej stopy • Žiadny video kodek AV1 • Stabilná hlasitosť nie je dostupná - • Prehrávanie môže sekať alebo vynechávať snímky • Videá pre deti sa nemusia prehrávať, keď ste odhlásení alebo v režime inkognito • Vynútenie pôvodného zvuku nie je k dispozícii 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 f85bab4b2..c0b902a88 100644 --- a/patches/src/main/resources/addresources/values-sl-rSI/strings.xml +++ b/patches/src/main/resources/addresources/values-sl-rSI/strings.xml @@ -1604,13 +1604,20 @@ Omejitve: Drsno iskanje ni omogočeno + Dovoli Android VR AV1 + "Video kodek je AVC (H.264), VP9 ali AV1 + +Predvajanje se lahko zatika ali izpušča sličice" + Video kodek je AVC (H.264) ali VP9 + "Omogočanje te nastavitve lahko uporablja programsko dekodiranje AV1. + +Predvajanje videa z AV1 se lahko zatika ali izpušča sličice." Stranski učinki ponarejanja • Eksperimentalni odjemalec in lahko kadar koli preneha delovati • Video se lahko ustavi ob 1:00, ali pa morda ne bo na voljo v nekaterih regijah • Meni z zvočnimi posnetki manjka • Brez kodeka videa AV1 • Stabilna glasnost ni na voljo - • Predvajanje se lahko zatika ali izpušča sličice • Posnetki za otroke se mogoče ne bodo predvajali, ko ste odjavljeni ali v načinu brez beleženja zgodovine • Vsili izvirni zvok ni na voljo 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 a7df4ef55..541bd7c65 100644 --- a/patches/src/main/resources/addresources/values-sq-rAL/strings.xml +++ b/patches/src/main/resources/addresources/values-sq-rAL/strings.xml @@ -1602,13 +1602,20 @@ Kufizimet: Rrëshqitja për kërkim nuk është e aktivizuar + Lejo Android VR AV1 + "Kodeku i videos është AVC (H.264), VP9, ose AV1 + +Luajtja mund të bllokojë ose të humbasë korniza" + Kodeku i videos është AVC (H.264) ose VP9 + "Aktivizimi i këtij cilësimi mund të përdorë dekodimin softuerik AV1. + +Luajtja e videos me AV1 mund të ngecë ose të humbasë korniza." Efektet anësore të falsifikimit • Klient eksperimental dhe mund të ndalojë së funksionuari në çdo kohë • Videoja mund të ndalojë në 1:00, ose mund të mos jetë e disponueshme në disa rajone • Menuja e gjurmës audio mungon • Nuk ka codec video AV1 • Volumi i qëndrueshëm nuk është i disponueshëm - • Riprodhimi mund të ndërpritet ose të humbasë kornizat • Video për fëmijë mund të mos luajnë kur jeni jashtë llogarisë ose në modalitetin incognito • Detyro audio origjinale nuk është i disponueshëm 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 9f4a490a1..2a67499e8 100644 --- a/patches/src/main/resources/addresources/values-sr-rCS/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rCS/strings.xml @@ -1603,13 +1603,20 @@ Ograničenja: Prevlaćenje za premotavanje nije omogućeno + Dozvoli Android VR AV1 + "Video kodek je AVC (H.264), VP9 ili AV1 + +Reprodukcija može da secka ili gubi okvire" + Video kodek je AVC (H.264) ili VP9 + "Omogućavanje ovog podešavanja može koristiti softversko AV1 dekodiranje. + +Reprodukcija video zapisa sa AV1 može seckati ili ispuštati frejmove." Neželjeni efekti lažiranja • Eksperimentalni klijent i može prestati da radi bilo kada • Video se može zaustaviti u 1:00 ili možda neće biti dostupan u nekim regionima • Meni „Audio snimak” nedostaje • Nema video kodeka AV1 • Opcija „Ujednačena jačina zvuka” nije dostupna - • Reprodukcija može zastajkivati ili preskakati kadrove • Videi za decu se možda neće puštati kada ste odjavljeni ili u režimu bez arhiviranja • Prisiljavanje originalnog zvuka nije dostupno 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 b1198cc43..76d8678fe 100644 --- a/patches/src/main/resources/addresources/values-sr-rSP/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rSP/strings.xml @@ -1606,13 +1606,20 @@ Second \"item\" text" Превлачење за премотавање није омогућено + Дозволи Андроид VR AV1 + "Видео кодек је AVC (H.264), VP9 или AV1 + +Репродукција може сецкати или испуштати кадрове" + Видео кодек је AVC (H.264) или VP9 + "Омогућавање ове поставке може користити софтверско AV1 декодирање. + +Репродукција видеа са AV1 може успорити или испуштати кадрове." Нежељени ефекти лажирања • Експериментални клијент и може престати да ради било када • Видео се може зауставити на 1:00 или можда неће бити доступан у неким регионима • Мени „Аудио снимак” недостаје • Нема видео кодека AV1 • Опција „Уједначена јачина звука” није доступна - • Репродукција може застајкивати или прескакати кадрове • Видеи за децу се можда неће пуштати када сте одјављени или у режиму без архивирања • Присиљавање оригиналног звука није доступно 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 662f075c1..e5dbeb671 100644 --- a/patches/src/main/resources/addresources/values-sv-rSE/strings.xml +++ b/patches/src/main/resources/addresources/values-sv-rSE/strings.xml @@ -1603,13 +1603,20 @@ Begränsningar: Dra för att söka är inaktiverat + Tillåt Android VR AV1 + "Videokodeken är AVC (H.264), VP9 eller AV1 + +Uppspelningen kan hacka eller tappa bildrutor" + Videokodeken är AVC (H.264) eller VP9 + "Aktivering av denna inställning kan använda programvarubaserad AV1-avkodning. + +Videouppspelning med AV1 kan hacka eller tappa bildrutor." Bieffekter av förfalskning • Experimentell klient och kan sluta fungera när som helst • Videor kan stanna vid 1:00 eller kanske inte är tillgängliga i vissa regioner • Menyn Ljudspår saknas • Ingen AV1-videokodek • Stabil volym är inte tillgängligt - • Uppspelningen kan hacka eller tappa bildrutor • Videor för barn kanske inte spelas upp när du är utloggad eller i inkognitoläge • Tvinga ursprungligt ljud är inte tillgängligt 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 9cb06ce49..e67f747f5 100644 --- a/patches/src/main/resources/addresources/values-th-rTH/strings.xml +++ b/patches/src/main/resources/addresources/values-th-rTH/strings.xml @@ -1606,13 +1606,20 @@ User id ของคุณเหมือนกับรหัสผ่าน เลื่อนเพื่อค้นหาไม่ได้เปิดใช้งาน + อนุญาต Android VR AV1 + "ตัวแปลงสัญญาณวิดีโอคือ AVC (H.264), VP9 หรือ AV1 + +การเล่นอาจกระตุกหรือเฟรมตก" + ตัวแปลงสัญญาณวิดีโอคือ AVC (H.264) หรือ VP9 + "การเปิดใช้งานการตั้งค่านี้อาจใช้ซอฟต์แวร์ถอดรหัส AV1 + +การเล่นวิดีโอด้วย AV1 อาจกระตุกหรือเฟรมตก" ผลข้างเคียงของการปลอมแปลง • ไคลเอนต์ทดลองและอาจหยุดทำงานได้ตลอดเวลา • วิดีโออาจหยุดที่ 1:00 หรืออาจไม่สามารถรับชมได้ในบางภูมิภาค • เมนูแทร็กเสียงหายไป • ไม่มีตัวแปลงสัญญาณวิดีโอ AV1 • ระดับเสียงคงที่ไม่พร้อมใช้งาน - • การเล่นอาจสะดุดหรือเฟรมตก • วิดีโอเด็กอาจไม่เล่นเมื่อลงชื่อออกหรืออยู่ในโหมดไม่ระบุตัวตน • บังคับใช้เสียงต้นฉบับไม่พร้อมใช้งาน 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 54dc3841b..c5c12c3c0 100644 --- a/patches/src/main/resources/addresources/values-tr-rTR/strings.xml +++ b/patches/src/main/resources/addresources/values-tr-rTR/strings.xml @@ -1611,13 +1611,20 @@ Sınırlamalar: Kaydırarak sardırma etkin değil + Android VR AV1\'e İzin Ver + "Video kodeği AVC (H.264), VP9 veya AV1'dir + +Oynatma takılabilir veya kare atlayabilir" + Video kodeği AVC (H.264) veya VP9\'dur + "Bu ayarı etkinleştirmek yazılım tabanlı AV1 kod çözmeyi kullanabilir. + +AV1 ile video oynatma takılabilir veya kare atlayabilir." Taklit yan etkileri • Deneysel istemci ve her an çalışmayı durdurabilir • Video 1:00\'da durabilir veya bazı bölgelerde kullanılamayabilir • Ses parçası menüsü eksik • AV1 video kodeği yok • Sabit ses mevcut değil - • Oynatma takılabilir veya kare atlayabilir • Çocuk videoları oturum açılmadığında veya gizli modda oynatılamayabilir • Orijinal sesi zorlama mevcut değil 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 44ecb133f..1c7e08121 100644 --- a/patches/src/main/resources/addresources/values-uk-rUA/strings.xml +++ b/patches/src/main/resources/addresources/values-uk-rUA/strings.xml @@ -1603,13 +1603,20 @@ Second \"item\" text" Перемотку пересуванням вимкнено\n\nУвімкнено поведінку нового інтерфейсу прискорення \"2х >>\" при утриманні на екрані + Дозволити Android VR AV1 + "Відеокодек: AVC (H.264), VP9 або AV1 + +Відтворення може затинатися або пропускати кадри" + Відеокодек: AVC (H.264) або VP9 + "Увімкнення цього параметра може використовувати програмне декодування AV1. + +Відтворення відео з AV1 може заїкатися або пропускати кадри." Побічні ефекти підміни • Експериментальний клієнт, який може припинити працювати будь-якої миті • Відео може зупинитися на 1:00, або може бути недоступним у деяких регіонах • Пункт меню \"Звукова доріжка\" відсутній • Відеокодек AV1 відсутній • Пункт меню \"Стабілізувати гучність\" недоступний - • Відтворення може заїкатися або пропускати кадри • Відео для дітей можуть не відтворюватися, якщо вийти з облікового запису або перейти в анонімний режим • Примусово оригінальна мова звукової доріжки\" недоступна 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 5ff8a7823..419cf7102 100644 --- a/patches/src/main/resources/addresources/values-vi-rVN/strings.xml +++ b/patches/src/main/resources/addresources/values-vi-rVN/strings.xml @@ -1610,13 +1610,20 @@ Hạn chế: Vuốt để tua không được bật + Cho phép Android VR AV1 + "Bộ giải mã video là AVC (H.264), VP9 hoặc AV1 + +Quá trình phát có thể bị giật hoặc bỏ khung hình" + Bộ giải mã video là AVC (H.264) hoặc VP9 + "Bật cài đặt này có thể sử dụng giải mã AV1 bằng phần mềm. + +Phát lại video bằng AV1 có thể bị giật hoặc bỏ khung hình." Hạn chế khi giả mạo • Ứng dụng khách đang trong giai đoạn thử nghiệm và có thể ngừng hoạt động bất cứ lúc nào • Video có thể dừng ở 1:00, hoặc có thể không khả dụng ở một số khu vực • Trình đơn bản âm thanh bị thiếu • Không có codec video AV1 • Âm lượng ổn định không khả dụng - • Có thể gặp hiện tượng giật lag hoặc tụt fps khi phát video • Video dành cho trẻ em có thể không phát được khi đăng xuất hoặc ở chế độ ẩn danh • Buộc âm thanh gốc không khả dụng 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 ca23c4f56..1f3c17fd6 100644 --- a/patches/src/main/resources/addresources/values-zh-rCN/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rCN/strings.xml @@ -1609,13 +1609,20 @@ Second \"item\" text" 滑动拖动进度条未启用 + 允许 Android VR AV1 + "视频编解码器为 AVC (H.264)、VP9 或 AV1 + +播放可能会卡顿或掉帧" + 视频编解码器为 AVC (H.264) 或 VP9 + "启用此设置可能会使用软件 AV1 解码。 + +使用 AV1 播放视频可能会卡顿或丢帧。" 欺骗的副作用 • 实验性客户端,可能随时停止工作 • 视频可能会在 1:00 停止,或者在某些地区可能无法播放 • 音轨菜单缺失 • 不支持 AV1 视频编解码器 • 稳定音量不可用 - • 播放可能会卡顿或掉帧 • 注销或使用无痕模式时,儿童视频可能无法播放 • 强制原始音频不可用 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 0622ca189..ac8c7ea91 100644 --- a/patches/src/main/resources/addresources/values-zh-rTW/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rTW/strings.xml @@ -1614,13 +1614,20 @@ Second \"item\" text" 未啟用滑動預覽 + 允許 Android VR AV1 + "視訊轉碼器為 AVC (H.264)、VP9 或 AV1 + +播放可能會卡頓或掉幀" + 視訊轉碼器為 AVC (H.264) 或 VP9 + "啟用此設定可能會使用軟體 AV1 解碼。 + +AV1 視訊播放可能會卡頓或掉幀。" 欺騙的副作用 • 實驗性用戶端,隨時可能停止運作 • 影片可能會在 1:00 停止,或在某些地區無法播放 • 音軌選單遺失 • 沒有 AV1 影片解碼器 • 穩定音量無法使用 - • 播放可能會卡頓或掉幀 • 在登出或無痕模式下,兒童影片可能無法播放 • 強制原始音訊不可用 From bd4ba2dae85ee6fd8d7e6078c3de775ca336e0b6 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Tue, 7 Oct 2025 19:41:32 +0400 Subject: [PATCH 54/63] fix(YouTube - Force original audio): Change patch to default on (#6070) --- .../java/app/revanced/extension/youtube/settings/Settings.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 d131cfee2..747a4f048 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 @@ -56,7 +56,7 @@ public class Settings extends BaseSettings { public static final BooleanSetting ADVANCED_VIDEO_QUALITY_MENU = new BooleanSetting("revanced_advanced_video_quality_menu", TRUE); public static final BooleanSetting DISABLE_HDR_VIDEO = new BooleanSetting("revanced_disable_hdr_video", FALSE); public static final BooleanSetting FORCE_AVC_CODEC = new BooleanSetting("revanced_force_avc_codec", FALSE, true, "revanced_force_avc_codec_user_dialog_message"); - public static final BooleanSetting FORCE_ORIGINAL_AUDIO = new BooleanSetting("revanced_force_original_audio", FALSE, true); + public static final BooleanSetting FORCE_ORIGINAL_AUDIO = new BooleanSetting("revanced_force_original_audio", TRUE, true); public static final IntegerSetting VIDEO_QUALITY_DEFAULT_WIFI = new IntegerSetting("revanced_video_quality_default_wifi", -2); public static final IntegerSetting VIDEO_QUALITY_DEFAULT_MOBILE = new IntegerSetting("revanced_video_quality_default_mobile", -2); public static final BooleanSetting REMEMBER_VIDEO_QUALITY_LAST_SELECTED = new BooleanSetting("revanced_remember_video_quality_last_selected", FALSE); From 64d22a9c31639e8df1be966269e448f8fb95b60f Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 7 Oct 2025 15:46:50 +0000 Subject: [PATCH 55/63] chore: Release v5.42.0-dev.17 [skip ci] # [5.42.0-dev.17](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.16...v5.42.0-dev.17) (2025-10-07) ### Bug Fixes * **YouTube - Force original audio:** Change patch to default on ([#6070](https://github.com/ReVanced/revanced-patches/issues/6070)) ([bd4ba2d](https://github.com/ReVanced/revanced-patches/commit/bd4ba2dae85ee6fd8d7e6078c3de775ca336e0b6)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4942f73a7..c0a4a5742 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.17](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.16...v5.42.0-dev.17) (2025-10-07) + + +### Bug Fixes + +* **YouTube - Force original audio:** Change patch to default on ([#6070](https://github.com/ReVanced/revanced-patches/issues/6070)) ([bd4ba2d](https://github.com/ReVanced/revanced-patches/commit/bd4ba2dae85ee6fd8d7e6078c3de775ca336e0b6)) + # [5.42.0-dev.16](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.15...v5.42.0-dev.16) (2025-10-07) diff --git a/gradle.properties b/gradle.properties index 577bf84ab..f85091c92 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.42.0-dev.16 +version = 5.42.0-dev.17 From a50f3b5177808f07d84041c946caccb5a08ad387 Mon Sep 17 00:00:00 2001 From: MarcaD <152095496+MarcaDian@users.noreply.github.com> Date: Tue, 7 Oct 2025 22:21:12 +0300 Subject: [PATCH 56/63] feat(Custom branding): Add in-app settings to change icon and name (#6059) Co-authored-by: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> --- .../extension/shared/GmsCoreSupport.java | 28 +- .../shared/patches/CustomBrandingPatch.java | 136 ++++++ .../shared/settings/BaseSettings.java | 4 + .../preference/ReVancedAboutPreference.java | 22 +- patches/api/patches.api | 1 + .../layout/branding/CustomBrandingPatch.kt | 30 +- .../patches/music/misc/gms/Constants.kt | 2 + .../branding/BaseCustomBrandingPatch.kt | 434 +++++++++++++----- .../shared/layout/branding/Fingerprints.kt | 13 + .../shared/layout/theme/BaseThemePatch.kt | 2 +- .../patches/shared/misc/gms/Fingerprints.kt | 25 +- .../shared/misc/gms/GmsCoreSupportPatch.kt | 36 +- .../misc/spoof/SpoofVideoStreamsPatch.kt | 2 +- .../layout/branding/CustomBrandingPatch.kt | 59 +-- .../branding/header/ChangeHeaderPatch.kt | 20 +- .../hide/shorts/HideShortsComponentsPatch.kt | 5 +- .../patches/youtube/misc/gms/Constants.kt | 2 + .../kotlin/app/revanced/util/ResourceUtils.kt | 14 +- .../resources/addresources/values/arrays.xml | 88 ++++ .../resources/addresources/values/strings.xml | 25 +- .../revanced_header_logo_minimal_dark.png | Bin 3490 -> 3354 bytes .../revanced_header_logo_minimal_light.png | Bin 3101 -> 2986 bytes .../revanced_header_logo_minimal_dark.png | Bin 2240 -> 2126 bytes .../revanced_header_logo_minimal_light.png | Bin 1997 -> 1924 bytes .../revanced_header_logo_minimal_dark.png | Bin 4676 -> 4506 bytes .../revanced_header_logo_minimal_light.png | Bin 4216 -> 4048 bytes .../revanced_header_logo_minimal_dark.png | Bin 7648 -> 7384 bytes .../revanced_header_logo_minimal_light.png | Bin 6882 -> 6540 bytes .../revanced_header_logo_minimal_dark.png | Bin 7966 -> 7457 bytes .../revanced_header_logo_minimal_light.png | Bin 6895 -> 6735 bytes .../revanced_adaptive_background_minimal.xml | 2 + .../revanced_adaptive_background_rounded.xml | 2 + .../revanced_adaptive_background_scaled.xml | 2 + .../revanced_adaptive_foreground_minimal.xml | 36 ++ .../revanced_adaptive_foreground_rounded.xml | 50 ++ .../revanced_adaptive_foreground_scaled.xml | 36 ++ .../revanced_adaptive_monochrome_custom.xml} | 8 +- .../revanced_adaptive_monochrome_minimal.xml} | 8 +- .../revanced_adaptive_monochrome_rounded.xml | 22 + .../revanced_adaptive_monochrome_scaled.xml} | 0 .../revanced_launcher_custom.xml | 7 + .../revanced_launcher_minimal.xml | 7 + .../revanced_launcher_rounded.xml | 7 + .../revanced_launcher_scaled.xml | 7 + .../revanced_adaptive_background_custom.png | Bin 0 -> 94 bytes .../revanced_adaptive_foreground_custom.png | Bin 0 -> 1276 bytes .../revanced_adaptive_background_custom.png | Bin 0 -> 92 bytes .../revanced_adaptive_foreground_custom.png | Bin 0 -> 858 bytes .../revanced_adaptive_background_custom.png | Bin 0 -> 98 bytes .../revanced_adaptive_foreground_custom.png | Bin 0 -> 1747 bytes .../revanced_adaptive_background_custom.png | Bin 0 -> 108 bytes .../revanced_adaptive_foreground_custom.png | Bin 0 -> 2771 bytes .../revanced_adaptive_background_custom.png | Bin 0 -> 118 bytes .../revanced_adaptive_foreground_custom.png | Bin 0 -> 3930 bytes ...ube_music_2024_q4_background_color_108.png | Bin 98 -> 0 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 1447 -> 0 bytes .../music/mipmap-hdpi/ic_launcher_release.png | Bin 2876 -> 0 bytes ...ube_music_2024_q4_background_color_108.png | Bin 92 -> 0 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 943 -> 0 bytes .../music/mipmap-mdpi/ic_launcher_release.png | Bin 1802 -> 0 bytes ...ube_music_2024_q4_background_color_108.png | Bin 100 -> 0 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 2000 -> 0 bytes .../mipmap-xhdpi/ic_launcher_release.png | Bin 4077 -> 0 bytes ...ube_music_2024_q4_background_color_108.png | Bin 108 -> 0 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 3163 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_release.png | Bin 6256 -> 0 bytes ...ube_music_2024_q4_background_color_108.png | Bin 118 -> 0 bytes ...ube_music_2024_q4_foreground_color_108.png | Bin 4429 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher_release.png | Bin 8744 -> 0 bytes ...veproduct_youtube_background_color_108.png | Bin 98 -> 0 bytes ...veproduct_youtube_foreground_color_108.png | Bin 1447 -> 0 bytes .../youtube/mipmap-hdpi/ic_launcher.png | Bin 2876 -> 0 bytes .../youtube/mipmap-hdpi/ic_launcher_round.png | Bin 2876 -> 0 bytes ...veproduct_youtube_background_color_108.png | Bin 92 -> 0 bytes ...veproduct_youtube_foreground_color_108.png | Bin 943 -> 0 bytes .../youtube/mipmap-mdpi/ic_launcher.png | Bin 1802 -> 0 bytes .../youtube/mipmap-mdpi/ic_launcher_round.png | Bin 1802 -> 0 bytes ...veproduct_youtube_background_color_108.png | Bin 100 -> 0 bytes ...veproduct_youtube_foreground_color_108.png | Bin 2000 -> 0 bytes .../youtube/mipmap-xhdpi/ic_launcher.png | Bin 4077 -> 0 bytes .../mipmap-xhdpi/ic_launcher_round.png | Bin 4077 -> 0 bytes ...veproduct_youtube_background_color_108.png | Bin 108 -> 0 bytes ...veproduct_youtube_foreground_color_108.png | Bin 3163 -> 0 bytes .../youtube/mipmap-xxhdpi/ic_launcher.png | Bin 6256 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_round.png | Bin 6256 -> 0 bytes ...veproduct_youtube_background_color_108.png | Bin 118 -> 0 bytes ...veproduct_youtube_foreground_color_108.png | Bin 4429 -> 0 bytes .../youtube/mipmap-xxxhdpi/ic_launcher.png | Bin 8744 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher_round.png | Bin 8744 -> 0 bytes 89 files changed, 925 insertions(+), 217 deletions(-) create mode 100644 extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/CustomBrandingPatch.java create mode 100644 patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/Fingerprints.kt create mode 100644 patches/src/main/resources/custom-branding/drawable/revanced_adaptive_background_minimal.xml create mode 100644 patches/src/main/resources/custom-branding/drawable/revanced_adaptive_background_rounded.xml create mode 100644 patches/src/main/resources/custom-branding/drawable/revanced_adaptive_background_scaled.xml create mode 100644 patches/src/main/resources/custom-branding/drawable/revanced_adaptive_foreground_minimal.xml create mode 100644 patches/src/main/resources/custom-branding/drawable/revanced_adaptive_foreground_rounded.xml create mode 100644 patches/src/main/resources/custom-branding/drawable/revanced_adaptive_foreground_scaled.xml rename patches/src/main/resources/custom-branding/{youtube/drawable/adaptive_monochrome_ic_youtube_launcher.xml => drawable/revanced_adaptive_monochrome_custom.xml} (90%) rename patches/src/main/resources/custom-branding/{youtube/drawable/ringo2_adaptive_monochrome_ic_youtube_launcher.xml => drawable/revanced_adaptive_monochrome_minimal.xml} (90%) create mode 100644 patches/src/main/resources/custom-branding/drawable/revanced_adaptive_monochrome_rounded.xml rename patches/src/main/resources/custom-branding/{music/drawable/ic_app_icons_themed_youtube_music.xml => drawable/revanced_adaptive_monochrome_scaled.xml} (100%) create mode 100644 patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_custom.xml create mode 100644 patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_minimal.xml create mode 100644 patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_rounded.xml create mode 100644 patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_scaled.xml create mode 100644 patches/src/main/resources/custom-branding/mipmap-hdpi/revanced_adaptive_background_custom.png create mode 100644 patches/src/main/resources/custom-branding/mipmap-hdpi/revanced_adaptive_foreground_custom.png create mode 100644 patches/src/main/resources/custom-branding/mipmap-mdpi/revanced_adaptive_background_custom.png create mode 100644 patches/src/main/resources/custom-branding/mipmap-mdpi/revanced_adaptive_foreground_custom.png create mode 100644 patches/src/main/resources/custom-branding/mipmap-xhdpi/revanced_adaptive_background_custom.png create mode 100644 patches/src/main/resources/custom-branding/mipmap-xhdpi/revanced_adaptive_foreground_custom.png create mode 100644 patches/src/main/resources/custom-branding/mipmap-xxhdpi/revanced_adaptive_background_custom.png create mode 100644 patches/src/main/resources/custom-branding/mipmap-xxhdpi/revanced_adaptive_foreground_custom.png create mode 100644 patches/src/main/resources/custom-branding/mipmap-xxxhdpi/revanced_adaptive_background_custom.png create mode 100644 patches/src/main/resources/custom-branding/mipmap-xxxhdpi/revanced_adaptive_foreground_custom.png delete mode 100644 patches/src/main/resources/custom-branding/music/mipmap-hdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/music/mipmap-hdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/music/mipmap-hdpi/ic_launcher_release.png delete mode 100644 patches/src/main/resources/custom-branding/music/mipmap-mdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/music/mipmap-mdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/music/mipmap-mdpi/ic_launcher_release.png delete mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xhdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xhdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xhdpi/ic_launcher_release.png delete mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/ic_launcher_release.png delete mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/ic_launcher_release.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/adaptiveproduct_youtube_background_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/adaptiveproduct_youtube_foreground_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/ic_launcher.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/ic_launcher_round.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/adaptiveproduct_youtube_background_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/adaptiveproduct_youtube_foreground_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/ic_launcher.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/ic_launcher_round.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/adaptiveproduct_youtube_background_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/adaptiveproduct_youtube_foreground_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/ic_launcher.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/adaptiveproduct_youtube_background_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/adaptiveproduct_youtube_foreground_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/adaptiveproduct_youtube_background_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/adaptiveproduct_youtube_foreground_color_108.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/GmsCoreSupport.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/GmsCoreSupport.java index 978ee7131..993634eab 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/GmsCoreSupport.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/GmsCoreSupport.java @@ -31,9 +31,6 @@ import app.revanced.extension.shared.ui.CustomDialog; @SuppressWarnings("unused") public class GmsCoreSupport { - private static final String PACKAGE_NAME_YOUTUBE = "com.google.android.youtube"; - private static final String PACKAGE_NAME_YOUTUBE_MUSIC = "com.google.android.apps.youtube.music"; - private static final String GMS_CORE_PACKAGE_NAME = getGmsCoreVendorGroupId() + ".android.gms"; private static final Uri GMS_CORE_PROVIDER @@ -53,6 +50,20 @@ public class GmsCoreSupport { @Nullable private static volatile Boolean DONT_KILL_MY_APP_MANUFACTURER_SUPPORTED; + private static String getOriginalPackageName() { + return null; // Modified during patching. + } + + /** + * @return If the current package name is the same as the original unpatched app. + * If `GmsCore support` was not included during patching, this returns true; + */ + public static boolean isPackageNameOriginal() { + String originalPackageName = getOriginalPackageName(); + return originalPackageName == null + || originalPackageName.equals(Utils.getContext().getPackageName()); + } + private static void open(String queryOrLink) { Logger.printInfo(() -> "Opening link: " + queryOrLink); @@ -113,11 +124,10 @@ public class GmsCoreSupport { // Verify the user has not included GmsCore for a root installation. // GmsCore Support changes the package name, but with a mounted installation // all manifest changes are ignored and the original package name is used. - String packageName = context.getPackageName(); - if (packageName.equals(PACKAGE_NAME_YOUTUBE) || packageName.equals(PACKAGE_NAME_YOUTUBE_MUSIC)) { + if (isPackageNameOriginal()) { Logger.printInfo(() -> "App is mounted with root, but GmsCore patch was included"); - // Cannot use localize text here, since the app will load - // resources from the unpatched app and all patch strings are missing. + // Cannot use localize text here, since the app will load resources + // from the unpatched app and all patch strings are missing. Utils.showToastLong("The 'GmsCore support' patch breaks mount installations"); // Do not exit. If the app exits before launch completes (and without @@ -250,8 +260,8 @@ public class GmsCoreSupport { }; } - // Modified by a patch. Do not touch. private static String getGmsCoreVendorGroupId() { - return "app.revanced"; + // Modified during patching. + throw new IllegalStateException(); } } 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 new file mode 100644 index 000000000..79a4d5484 --- /dev/null +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/CustomBrandingPatch.java @@ -0,0 +1,136 @@ +package app.revanced.extension.shared.patches; + +import android.content.ComponentName; +import android.content.Context; +import android.content.pm.PackageManager; + +import java.util.ArrayList; +import java.util.List; + +import app.revanced.extension.shared.GmsCoreSupport; +import app.revanced.extension.shared.Logger; +import app.revanced.extension.shared.Utils; +import app.revanced.extension.shared.settings.BaseSettings; + +/** + * Patch shared by YouTube and YT Music. + */ +@SuppressWarnings("unused") +public class CustomBrandingPatch { + + // Important: In the future, additional branding themes can be added but all existing and prior + // themes cannot be removed or renamed. + // + // This is because if a user has a branding theme selected, then only that launch alias is enabled. + // If a future update removes or renames that alias, then after updating the app is effectively + // broken and it cannot be opened and not even clearing the app data will fix it. + // In that situation the only fix is to completely uninstall and reinstall again. + // + // The most that can be done is to hide a theme from the UI and keep the alias with dummy data. + public enum BrandingTheme { + /** + * Original unpatched icon. Must be first enum. + */ + ORIGINAL("revanced_original"), + ROUNDED("revanced_rounded"), + MINIMAL("revanced_minimal"), + SCALED("revanced_scaled"), + /** + * User provided custom icon. Must be the last enum. + */ + CUSTOM("revanced_custom"); + + public final String themeAlias; + + BrandingTheme(String themeAlias) { + this.themeAlias = themeAlias; + } + + private String packageAndNameIndexToClassAlias(String packageName, int appIndex) { + if (appIndex <= 0) { + throw new IllegalArgumentException("App index starts at index 1"); + } + return packageName + '.' + themeAlias + '_' + appIndex; + } + } + + /** + * Injection point. + * + * The total number of app name aliases, including dummy aliases. + */ + private static int numberOfPresetAppNames() { + // Modified during patching. + throw new IllegalStateException(); + } + + /** + * Injection point. + */ + @SuppressWarnings("ConstantConditions") + public static void setBranding() { + try { + if (GmsCoreSupport.isPackageNameOriginal()) { + Logger.printInfo(() -> "App is root mounted. Cannot dynamically change app icon"); + return; + } + + Context context = Utils.getContext(); + PackageManager pm = context.getPackageManager(); + String packageName = context.getPackageName(); + + BrandingTheme selectedBranding = BaseSettings.CUSTOM_BRANDING_ICON.get(); + final int selectedNameIndex = BaseSettings.CUSTOM_BRANDING_NAME.get(); + ComponentName componentToEnable = null; + ComponentName defaultComponent = null; + List componentsToDisable = new ArrayList<>(); + + for (BrandingTheme theme : BrandingTheme.values()) { + // Must always update all aliases including custom alias (last index). + final int numberOfPresetAppNames = numberOfPresetAppNames(); + + // App name indices starts at 1. + for (int index = 1; index <= numberOfPresetAppNames; index++) { + String aliasClass = theme.packageAndNameIndexToClassAlias(packageName, index); + ComponentName component = new ComponentName(packageName, aliasClass); + if (defaultComponent == null) { + // Default is always the first alias. + defaultComponent = component; + } + + if (index == selectedNameIndex && theme == selectedBranding) { + componentToEnable = component; + } else { + componentsToDisable.add(component); + } + } + } + + if (componentToEnable == null) { + // User imported a bad app name index value. Either the imported data + // was corrupted, or they previously had custom name enabled and the app + // no longer has a custom name specified. + Utils.showToastLong("Custom branding reset"); + BaseSettings.CUSTOM_BRANDING_ICON.resetToDefault(); + BaseSettings.CUSTOM_BRANDING_NAME.resetToDefault(); + + componentToEnable = defaultComponent; + componentsToDisable.remove(defaultComponent); + } + + 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); + } + + ComponentName componentToEnableFinal = componentToEnable; + Logger.printInfo(() -> "Enabling: " + componentToEnableFinal.getClassName()); + pm.setComponentEnabledSetting(componentToEnable, + PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 0); + } catch (Exception ex) { + Logger.printException(() -> "setBranding failure", ex); + } + } +} 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 1eff30361..3bc16e313 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 @@ -2,6 +2,7 @@ package app.revanced.extension.shared.settings; 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; @@ -40,4 +41,7 @@ public class BaseSettings { public static final BooleanSetting REPLACE_MUSIC_LINKS_WITH_YOUTUBE = new BooleanSetting("revanced_replace_music_with_youtube", FALSE); public static final BooleanSetting CHECK_WATCH_HISTORY_DOMAIN_NAME = new BooleanSetting("revanced_check_watch_history_domain_name", TRUE, false, false); + + public static final EnumSetting CUSTOM_BRANDING_ICON = new EnumSetting<>("revanced_custom_branding_icon", BrandingTheme.ORIGINAL, true); + public static final IntegerSetting CUSTOM_BRANDING_NAME = new IntegerSetting("revanced_custom_branding_name", 1, true); } diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/ReVancedAboutPreference.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/ReVancedAboutPreference.java index be14e4a63..4f4d3ef92 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/ReVancedAboutPreference.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/settings/preference/ReVancedAboutPreference.java @@ -5,6 +5,7 @@ import static app.revanced.extension.shared.Utils.dipToPixels; import static app.revanced.extension.shared.requests.Route.Method.GET; import android.annotation.SuppressLint; +import android.app.Activity; import android.app.Dialog; import android.app.ProgressDialog; import android.content.Context; @@ -125,6 +126,8 @@ public class ReVancedAboutPreference extends Preference { { setOnPreferenceClickListener(pref -> { + Context context = pref.getContext(); + // Show a progress spinner if the social links are not fetched yet. if (!AboutLinksRoutes.hasFetchedLinks() && Utils.isNetworkConnected()) { // Show a progress spinner, but only if the api fetch takes more than a half a second. @@ -137,17 +140,18 @@ public class ReVancedAboutPreference extends Preference { handler.postDelayed(showDialogRunnable, delayToShowProgressSpinner); Utils.runOnBackgroundThread(() -> - fetchLinksAndShowDialog(handler, showDialogRunnable, progress)); + fetchLinksAndShowDialog(context, handler, showDialogRunnable, progress)); } else { // No network call required and can run now. - fetchLinksAndShowDialog(null, null, null); + fetchLinksAndShowDialog(context, null, null, null); } return false; }); } - private void fetchLinksAndShowDialog(@Nullable Handler handler, + private void fetchLinksAndShowDialog(Context context, + @Nullable Handler handler, Runnable showDialogRunnable, @Nullable ProgressDialog progress) { WebLink[] links = AboutLinksRoutes.fetchAboutLinks(); @@ -164,7 +168,17 @@ public class ReVancedAboutPreference extends Preference { if (handler != null) { handler.removeCallbacks(showDialogRunnable); } - if (progress != null) { + + // Don't continue if the activity is done. To test this tap the + // about dialog and immediately press back before the dialog can show. + if (context instanceof Activity activity) { + if (activity.isFinishing() || activity.isDestroyed()) { + Logger.printDebug(() -> "Not showing about dialog, activity is closed"); + return; + } + } + + if (progress != null && progress.isShowing()) { progress.dismiss(); } new WebViewDialog(getContext(), htmlDialog).show(); diff --git a/patches/api/patches.api b/patches/api/patches.api index c85acef50..15b955acb 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -1919,6 +1919,7 @@ public final class app/revanced/util/ResourceUtilsKt { public static final fun forEachChildElement (Lorg/w3c/dom/Node;Lkotlin/jvm/functions/Function1;)V public static final fun insertFirst (Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)V public static final fun iterateXmlNodeChildren (Lapp/revanced/patcher/patch/ResourcePatchContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V + public static final fun removeFromParent (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; } public final class app/revanced/util/resource/ArrayResource : app/revanced/util/resource/BaseResource { diff --git a/patches/src/main/kotlin/app/revanced/patches/music/layout/branding/CustomBrandingPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/layout/branding/CustomBrandingPatch.kt index 530e98130..6f0f46026 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/layout/branding/CustomBrandingPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/layout/branding/CustomBrandingPatch.kt @@ -4,6 +4,10 @@ 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.music.misc.gms.Constants.MUSIC_MAIN_ACTIVITY_NAME +import app.revanced.patches.music.misc.gms.Constants.MUSIC_PACKAGE_NAME +import app.revanced.patches.music.misc.gms.musicActivityOnCreateFingerprint +import app.revanced.patches.music.misc.settings.PreferenceScreen import app.revanced.patches.shared.layout.branding.baseCustomBrandingPatch import app.revanced.patches.shared.misc.mapping.get import app.revanced.patches.shared.misc.mapping.resourceMappingPatch @@ -50,24 +54,18 @@ private val disableSplashAnimationPatch = bytecodePatch { } } -private const val APP_NAME = "YT Music ReVanced" - @Suppress("unused") val customBrandingPatch = baseCustomBrandingPatch( - defaultAppName = APP_NAME, - appNameValues = mapOf( - "YT Music ReVanced" to APP_NAME, - "Music ReVanced" to "Music ReVanced", - "Music" to "Music", - "YT Music" to "YT Music", - ), - resourceFolder = "custom-branding/music", - iconResourceFileNames = arrayOf( - "adaptiveproduct_youtube_music_2024_q4_background_color_108", - "adaptiveproduct_youtube_music_2024_q4_foreground_color_108", - "ic_launcher_release", - ), - monochromeIconFileNames = arrayOf("ic_app_icons_themed_youtube_music.xml"), + addResourcePatchName = "music", + originalLauncherIconName = "ic_launcher_release", + originalAppName = "@string/app_launcher_name", + originalAppPackageName = MUSIC_PACKAGE_NAME, + copyExistingIntentsToAliases = false, + numberOfPresetAppNames = 5, + mainActivityOnCreateFingerprint = musicActivityOnCreateFingerprint, + mainActivityName = MUSIC_MAIN_ACTIVITY_NAME, + activityAliasNameWithIntents = MUSIC_MAIN_ACTIVITY_NAME, + preferenceScreen = PreferenceScreen.GENERAL, block = { dependsOn(disableSplashAnimationPatch) diff --git a/patches/src/main/kotlin/app/revanced/patches/music/misc/gms/Constants.kt b/patches/src/main/kotlin/app/revanced/patches/music/misc/gms/Constants.kt index f4114a00b..39dda22aa 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/misc/gms/Constants.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/misc/gms/Constants.kt @@ -1,6 +1,8 @@ package app.revanced.patches.music.misc.gms object Constants { + internal const val MUSIC_MAIN_ACTIVITY_NAME = "com.google.android.apps.youtube.music.activities.MusicActivity" + internal const val REVANCED_MUSIC_PACKAGE_NAME = "app.revanced.android.apps.youtube.music" internal const val MUSIC_PACKAGE_NAME = "com.google.android.apps.youtube.music" } 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 d865b2081..d8356aee0 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 @@ -1,173 +1,387 @@ package app.revanced.patches.shared.layout.branding +import app.revanced.patcher.Fingerprint +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.patch.PatchException import app.revanced.patcher.patch.ResourcePatch import app.revanced.patcher.patch.ResourcePatchBuilder import app.revanced.patcher.patch.ResourcePatchContext +import app.revanced.patcher.patch.bytecodePatch import app.revanced.patcher.patch.resourcePatch import app.revanced.patcher.patch.stringOption +import app.revanced.patches.all.misc.packagename.setOrGetFallbackPackageName +import app.revanced.patches.all.misc.resources.addResources +import app.revanced.patches.all.misc.resources.addResourcesPatch +import app.revanced.patches.shared.misc.settings.preference.BasePreferenceScreen +import app.revanced.patches.shared.misc.settings.preference.ListPreference import app.revanced.util.ResourceGroup import app.revanced.util.Utils.trimIndentMultiline import app.revanced.util.copyResources +import app.revanced.util.findElementByAttributeValueOrThrow +import app.revanced.util.removeFromParent +import app.revanced.util.returnEarly +import org.w3c.dom.Element +import org.w3c.dom.Node +import org.w3c.dom.NodeList import java.io.File -import java.nio.file.Files import java.util.logging.Logger -private const val REVANCED_ICON = "ReVanced*Logo" // Can never be a valid path. - -internal val mipmapDirectories = arrayOf( +private val mipmapDirectories = arrayOf( // Target app does not have ldpi icons. - "mdpi", - "hdpi", - "xhdpi", - "xxhdpi", - "xxxhdpi", -).map { "mipmap-$it" }.toTypedArray() + "mipmap-mdpi", + "mipmap-hdpi", + "mipmap-xhdpi", + "mipmap-xxhdpi", + "mipmap-xxxhdpi" +) -private fun formatResourceFileList(resourceNames: Array) = resourceNames.joinToString("\n") { "- $it" } +private val iconStyleNames = arrayOf( + "rounded", + "minimal", + "scaled" +) -/** - * Attempts to fix unescaped and invalid characters not allowed for an Android app name. - */ -private fun escapeAppName(name: String): String? { - // Remove ASCII control characters. - val cleanedName = name.filter { it.code >= 32 } +private const val ORIGINAL_USER_ICON_STYLE_NAME = "original" +private const val CUSTOM_USER_ICON_STYLE_NAME = "custom" - // Replace invalid XML characters with escaped equivalents. - val escapedName = cleanedName - .replace("&", "&") // Must be first to avoid double-escaping. - .replace("<", "<") - .replace(">", ">") - .replace(Regex("(?, - resourceFolder: String, - iconResourceFileNames: Array, - monochromeIconFileNames: Array, - block: ResourcePatchBuilder.() -> Unit = {}, + addResourcePatchName: String, + originalLauncherIconName: String, + originalAppName: String, + originalAppPackageName: String, + copyExistingIntentsToAliases: Boolean, + numberOfPresetAppNames: Int, + mainActivityOnCreateFingerprint: Fingerprint, + mainActivityName: String, + activityAliasNameWithIntents: String, + preferenceScreen: BasePreferenceScreen.Screen, + block: ResourcePatchBuilder.() -> Unit, executeBlock: ResourcePatchContext.() -> Unit = {} ): ResourcePatch = resourcePatch( name = "Custom branding", - description = "Applies a custom app name and icon. Defaults to \"$defaultAppName\" and the ReVanced logo.", - use = false, + description = "Adds options to change the app icon and app name. " + + "Branding cannot be changed for mounted (root) installations." ) { - val iconResourceFileNamesPng = iconResourceFileNames.map { "$it.png" }.toTypedArray() - - val appName by stringOption( - key = "appName", - default = defaultAppName, - values = appNameValues, + val customName by stringOption( + key = "customName", title = "App name", - description = "The name of the app.", + description = "Custom app name." ) - val iconPath by stringOption( - key = "iconPath", - default = REVANCED_ICON, - values = mapOf("ReVanced Logo" to REVANCED_ICON), - title = "App icon", + val customIcon by stringOption( + key = "customIcon", + title = "Custom icon", description = """ - The icon to apply to the app. + Folder with images to use as a custom icon. - If a path to a folder is provided, the folder must contain the following folders: - - ${formatResourceFileList(mipmapDirectories)} - - Each of these folders must contain the following files: - - ${formatResourceFileList(iconResourceFileNamesPng)} + The folder must contain one or more of the following folders, depending on the DPI of the device: + ${mipmapDirectories.joinToString("\n") { "- $it" }} - Optionally, a 'drawable' folder with the monochrome icon files: - - ${formatResourceFileList(monochromeIconFileNames)} - """.trimIndentMultiline(), + Each of the folders must contain all of the following files: + ${USER_CUSTOM_ADAPTIVE_FILE_NAMES.joinToString("\n")} + + Optionally, the path can contain a 'drawable' folder with the monochrome icon file: + $USER_CUSTOM_MONOCHROME_NAME + """.trimIndentMultiline() ) block() + dependsOn( + addResourcesPatch, + bytecodePatch { + execute { + mainActivityOnCreateFingerprint.method.addInstruction( + 0, + "invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->setBranding()V" + ) + + numberOfPresetAppNamesExtensionFingerprint.method.returnEarly(numberOfPresetAppNames) + } + } + ) + + finalize { + val useCustomName = customName != null + val useCustomIcon = customIcon != null + + if (setOrGetFallbackPackageName(originalAppPackageName) == originalAppPackageName) { + if (useCustomName || useCustomIcon) { + Logger.getLogger(this::class.java.name).warning( + "Custom branding does not work with root installation. No changes applied." + ) + } + return@finalize + } + + preferenceScreen.addPreferences( + if (useCustomName) { + ListPreference( + key = "revanced_custom_branding_name", + entriesKey = "revanced_custom_branding_name_custom_entries", + entryValuesKey = "revanced_custom_branding_name_custom_entry_values" + ) + } else { + ListPreference("revanced_custom_branding_name") + }, + if (useCustomIcon) { + ListPreference( + key = "revanced_custom_branding_icon", + entriesKey = "revanced_custom_branding_icon_custom_entries", + entryValuesKey = "revanced_custom_branding_icon_custom_entry_values" + ) + } else { + ListPreference("revanced_custom_branding_icon") + } + ) + } + execute { - val mipmapIconResourceGroups = mipmapDirectories.map { directory -> - ResourceGroup( - directory, - *iconResourceFileNamesPng, + addResources("shared", "layout.branding.baseCustomBrandingPatch") + addResources(addResourcePatchName, "layout.branding.customBrandingPatch") + + val useCustomName = customName != null + val useCustomIcon = customIcon != null + + iconStyleNames.forEach { style -> + copyResources( + "custom-branding", + ResourceGroup( + "drawable", + "$LAUNCHER_ADAPTIVE_BACKGROUND_PREFIX$style.xml", + "$LAUNCHER_ADAPTIVE_FOREGROUND_PREFIX$style.xml", + "$LAUNCHER_ADAPTIVE_MONOCHROME_PREFIX$style.xml" + ), + ResourceGroup( + "mipmap-anydpi", + "$LAUNCHER_RESOURCE_NAME_PREFIX$style.xml" + ) ) } - val iconPathTrimmed = iconPath!!.trim() - if (iconPathTrimmed == REVANCED_ICON) { - // Replace mipmap icons with preset patch icons. - mipmapIconResourceGroups.forEach { groupResources -> - copyResources(resourceFolder, groupResources) - } + // Copy template user icon, because the aliases must be added even if no user icon is provided. + copyResources( + "custom-branding", + ResourceGroup( + "mipmap-anydpi", + "$LAUNCHER_RESOURCE_NAME_PREFIX$CUSTOM_USER_ICON_STYLE_NAME.xml", + ), + ResourceGroup( + "drawable", + "$LAUNCHER_ADAPTIVE_MONOCHROME_PREFIX$CUSTOM_USER_ICON_STYLE_NAME.xml", + ) + ) - // Replace monochrome icons. - monochromeIconFileNames.forEach { fileName -> - copyResources( - resourceFolder, - ResourceGroup("drawable", fileName) + // Copy template icon png files. + mipmapDirectories.forEach { dpi -> + copyResources( + "custom-branding", + ResourceGroup( + dpi, + "$LAUNCHER_ADAPTIVE_BACKGROUND_PREFIX$CUSTOM_USER_ICON_STYLE_NAME.png", + "$LAUNCHER_ADAPTIVE_FOREGROUND_PREFIX$CUSTOM_USER_ICON_STYLE_NAME.png", + ) + ) + } + + if (useCustomIcon) { + // Copy user provided files + val iconPathFile = File(customIcon!!.trim()) + + if (!iconPathFile.exists()) { + throw PatchException( + "The custom icon path cannot be found: " + iconPathFile.absolutePath ) } - } else { - val filePath = File(iconPathTrimmed) + + if (!iconPathFile.isDirectory) { + throw PatchException( + "The custom icon path must be a folder: " + iconPathFile.absolutePath + ) + } + + 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 - // Replace - mipmapIconResourceGroups.forEach { groupResources -> - val groupResourceDirectoryName = groupResources.resourceDirectoryName - val fromDirectory = filePath.resolve(groupResourceDirectoryName) - val toDirectory = resourceDirectory.resolve(groupResourceDirectoryName) + // For each source folder, copy the files to the target resource directories. + sourceFolders.forEach { dpiSourceFolder -> + val targetDpiFolder = resourceDirectory.resolve(dpiSourceFolder.name) + if (!targetDpiFolder.exists()) return@forEach - groupResources.resources.forEach { iconFileName -> - Files.write( - toDirectory.resolve(iconFileName).toPath(), - fromDirectory.resolve(iconFileName).readBytes(), - ) + 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) { + throw PatchException("Must include all required icon files " + + "but only found " + customFiles.map { it.name }) + } + + customFiles.forEach { imgSourceFile -> + val imgTargetFile = targetDpiFolder.resolve(imgSourceFile.name) + imgSourceFile.copyTo(target = imgTargetFile, overwrite = true) + + copiedFiles = true } } - // Copy all monochrome icons if provided. - monochromeIconFileNames.forEach { fileName -> - val replacementMonochrome = filePath.resolve("drawable").resolve(fileName) - if (replacementMonochrome.exists()) { - Files.write( - resourceDirectory.resolve("drawable").resolve(fileName).toPath(), - replacementMonochrome.readBytes(), - ) - } + // Copy monochrome if it provided. + val monochromeRelativePath = "drawable/$USER_CUSTOM_MONOCHROME_NAME" + val monochromeFile = iconPathFile.resolve(monochromeRelativePath) + if (monochromeFile.exists()) { + monochromeFile.copyTo( + target = resourceDirectory.resolve(monochromeRelativePath), + overwrite = true + ) + copiedFiles = true + } + + if (!copiedFiles) { + throw PatchException("Could not find any replacement images in " + + "patch option path: " + iconPathFile.absolutePath) } } - // Change the app name. - escapeAppName(appName!!)?.let { escapedAppName -> - val newValue = "android:label=\"$escapedAppName\"" + document("AndroidManifest.xml").use { document -> + // Create launch aliases that can be programmatically selected in app. + fun createAlias( + aliasName: String, + iconMipmapName: String, + appNameIndex: Int, + useCustomName: Boolean, + enabled: Boolean, + intents: NodeList + ): Element { + val label = if (useCustomName) { + if (customName == null) { + "Custom" // Dummy text, and normally cannot be seen. + } else { + customName!! + } + } else if (appNameIndex == 1) { + // Indexing starts at 1. + originalAppName + } else { + "@string/revanced_custom_branding_name_entry_$appNameIndex" + } + val alias = document.createElement("activity-alias") + alias.setAttribute("android:name", aliasName) + alias.setAttribute("android:enabled", enabled.toString()) + alias.setAttribute("android:exported", "true") + alias.setAttribute("android:icon", "@mipmap/$iconMipmapName") + alias.setAttribute("android:label", label) + alias.setAttribute("android:targetActivity", mainActivityName) - val manifest = get("AndroidManifest.xml") - val original = manifest.readText() - val replacement = original - // YouTube - .replace("android:label=\"@string/application_name\"", newValue) - // YT Music - .replace("android:label=\"@string/app_launcher_name\"", newValue) + // Copy all intents from the original alias so long press actions still work. + if (copyExistingIntentsToAliases) { + for (i in 0 until intents.length) { + alias.appendChild( + intents.item(i).cloneNode(true) + ) + } + } else { + val intentFilter = document.createElement("intent-filter").apply { + val action = document.createElement("action") + action.setAttribute("android:name", "android.intent.action.MAIN") + appendChild(action) - if (original == replacement) { - Logger.getLogger(this::class.java.name).warning( - "Could not replace manifest app name" + val category = document.createElement("category") + category.setAttribute("android:name", "android.intent.category.LAUNCHER") + appendChild(category) + } + alias.appendChild(intentFilter) + } + + return alias + } + + val intentFilters = document.childNodes.findElementByAttributeValueOrThrow( + "android:name", + activityAliasNameWithIntents + ).childNodes + + val application = document.getElementsByTagName("application").item(0) as Element + + for (appNameIndex in 1 .. numberOfPresetAppNames) { + fun aliasName(name: String): String = ".revanced_" + name + '_' + appNameIndex + + val useCustomNameLabel = (useCustomName && appNameIndex == numberOfPresetAppNames) + + // Original icon. + application.appendChild( + createAlias( + aliasName = aliasName(ORIGINAL_USER_ICON_STYLE_NAME), + iconMipmapName = originalLauncherIconName, + appNameIndex = appNameIndex, + useCustomName = useCustomNameLabel, + enabled = (appNameIndex == 1), + intentFilters + ) + ) + + // Bundled icons. + iconStyleNames.forEachIndexed { index, style -> + application.appendChild( + createAlias( + aliasName = aliasName(style), + iconMipmapName = LAUNCHER_RESOURCE_NAME_PREFIX + style, + appNameIndex = appNameIndex, + useCustomName = useCustomNameLabel, + enabled = false, + intentFilters + ) + ) + } + + // User provided custom icon. + // + // Must add all aliases even if the user did not provide a custom icon of their own. + // This is because if the user installs with an option, then repatches without the option, + // the alias must still exist because if it was previously enabled and then it's removed + // the app will become broken and cannot launch. Even if the app data is cleared + // it still cannot be launched and the only fix is to uninstall the app. + // To prevent this, always include all aliases and use dummy data if needed. + application.appendChild( + createAlias( + aliasName = aliasName(CUSTOM_USER_ICON_STYLE_NAME), + iconMipmapName = LAUNCHER_RESOURCE_NAME_PREFIX + CUSTOM_USER_ICON_STYLE_NAME, + appNameIndex = appNameIndex, + useCustomName = useCustomNameLabel, + enabled = false, + intentFilters + ) ) } - manifest.writeText(replacement) + // Remove the main action from the original alias, otherwise two apps icons + // can be shown in the launcher. Can only be done after adding the new aliases. + intentFilters.findElementByAttributeValueOrThrow( + "android:name", + "android.intent.action.MAIN" + ).removeFromParent() } - executeBlock() // Must be after the main code to rename the new icons for YouTube 19.34+. + executeBlock() } } diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/Fingerprints.kt new file mode 100644 index 000000000..c46cb1a88 --- /dev/null +++ b/patches/src/main/kotlin/app/revanced/patches/shared/layout/branding/Fingerprints.kt @@ -0,0 +1,13 @@ +package app.revanced.patches.shared.layout.branding + +import app.revanced.patcher.fingerprint +import com.android.tools.smali.dexlib2.AccessFlags + +internal val numberOfPresetAppNamesExtensionFingerprint = fingerprint { + accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC) + returns("I") + parameters() + custom { method, classDef -> + method.name == "numberOfPresetAppNames" && classDef.type == EXTENSION_CLASS_DESCRIPTOR + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/layout/theme/BaseThemePatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/layout/theme/BaseThemePatch.kt index de070fb89..40fb77980 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/layout/theme/BaseThemePatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/layout/theme/BaseThemePatch.kt @@ -79,7 +79,7 @@ internal val darkThemeBackgroundColorOption = stringOption( */ internal fun baseThemePatch( extensionClassDescriptor: String, - block: BytecodePatchBuilder.() -> Unit = {}, + block: BytecodePatchBuilder.() -> Unit, executeBlock: BytecodePatchContext.() -> Unit = {} ) = bytecodePatch( name = "Theme", diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/misc/gms/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/shared/misc/gms/Fingerprints.kt index b5f613d54..27eebb8ab 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/misc/gms/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/misc/gms/Fingerprints.kt @@ -1,16 +1,11 @@ package app.revanced.patches.shared.misc.gms import app.revanced.patcher.fingerprint +import app.revanced.patches.shared.misc.gms.EXTENSION_CLASS_DESCRIPTOR import com.android.tools.smali.dexlib2.AccessFlags const val GET_GMS_CORE_VENDOR_GROUP_ID_METHOD_NAME = "getGmsCoreVendorGroupId" -internal val gmsCoreSupportFingerprint = fingerprint { - custom { _, classDef -> - classDef.endsWith("GmsCoreSupport;") - } -} - internal val googlePlayUtilityFingerprint = fingerprint { accessFlags(AccessFlags.PUBLIC, AccessFlags.STATIC) returns("I") @@ -28,3 +23,21 @@ internal val serviceCheckFingerprint = fingerprint { parameters("L", "I") strings("Google Play Services not available") } + +internal val gmsCoreSupportFingerprint = fingerprint { + accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC) + returns("Ljava/lang/String;") + parameters() + custom { method, classDef -> + method.name == "getGmsCoreVendorGroupId" && classDef.type == EXTENSION_CLASS_DESCRIPTOR + } +} + +internal val originalPackageNameExtensionFingerprint = fingerprint { + accessFlags(AccessFlags.PRIVATE, AccessFlags.STATIC) + returns("Ljava/lang/String;") + parameters() + custom { methodDef, classDef -> + methodDef.name == "getOriginalPackageName" && classDef.type == EXTENSION_CLASS_DESCRIPTOR + } +} diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/misc/gms/GmsCoreSupportPatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/misc/gms/GmsCoreSupportPatch.kt index ef8743fda..fb773457f 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/misc/gms/GmsCoreSupportPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/misc/gms/GmsCoreSupportPatch.kt @@ -1,10 +1,18 @@ package app.revanced.patches.shared.misc.gms import app.revanced.patcher.Fingerprint -import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.extensions.InstructionExtensions.instructions import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction -import app.revanced.patcher.patch.* +import app.revanced.patcher.patch.BytecodePatchBuilder +import app.revanced.patcher.patch.BytecodePatchContext +import app.revanced.patcher.patch.Option +import app.revanced.patcher.patch.Patch +import app.revanced.patcher.patch.ResourcePatchBuilder +import app.revanced.patcher.patch.ResourcePatchContext +import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patcher.patch.resourcePatch +import app.revanced.patcher.patch.stringOption import app.revanced.patches.all.misc.packagename.changePackageNamePatch import app.revanced.patches.all.misc.packagename.setOrGetFallbackPackageName import app.revanced.patches.all.misc.resources.addResources @@ -12,7 +20,8 @@ import app.revanced.patches.all.misc.resources.addResourcesPatch import app.revanced.patches.shared.misc.gms.Constants.ACTIONS import app.revanced.patches.shared.misc.gms.Constants.AUTHORITIES import app.revanced.patches.shared.misc.gms.Constants.PERMISSIONS -import app.revanced.util.* +import app.revanced.util.getReference +import app.revanced.util.returnEarly import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction21c import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction @@ -23,6 +32,8 @@ import com.android.tools.smali.dexlib2.util.MethodUtil import org.w3c.dom.Element import org.w3c.dom.Node +internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/shared/GmsCoreSupport;" + private const val PACKAGE_NAME_REGEX_PATTERN = "^[a-z]\\w*(\\.[a-z]\\w*)+\$" /** @@ -201,19 +212,18 @@ fun gmsCoreSupportPatch( googlePlayUtilityFingerprint.method.returnEarly(0) } + // Set original and patched package names for extension to use. + originalPackageNameExtensionFingerprint.method.returnEarly(fromPackageName) + // Verify GmsCore is installed and whitelisted for power optimizations and background usage. - mainActivityOnCreateFingerprint.method.apply { - addInstructions( - 0, - "invoke-static/range { p0 .. p0 }, Lapp/revanced/extension/shared/GmsCoreSupport;->" + - "checkGmsCore(Landroid/app/Activity;)V", - ) - } + mainActivityOnCreateFingerprint.method.addInstruction( + 0, + "invoke-static/range { p0 .. p0 }, $EXTENSION_CLASS_DESCRIPTOR->" + + "checkGmsCore(Landroid/app/Activity;)V" + ) // Change the vendor of GmsCore in the extension. - gmsCoreSupportFingerprint.classDef.methods - .single { it.name == GET_GMS_CORE_VENDOR_GROUP_ID_METHOD_NAME } - .replaceInstruction(0, "const-string v0, \"$gmsCoreVendorGroupId\"") + gmsCoreSupportFingerprint.method.returnEarly(gmsCoreVendorGroupId!!) executeBlock() } diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/misc/spoof/SpoofVideoStreamsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/misc/spoof/SpoofVideoStreamsPatch.kt index 7c1c58410..7395c3983 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/misc/spoof/SpoofVideoStreamsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/misc/spoof/SpoofVideoStreamsPatch.kt @@ -43,7 +43,7 @@ internal fun spoofVideoStreamsPatch( fixMediaFetchHotConfig: BytecodePatchBuilder.() -> Boolean = { false }, fixMediaFetchHotConfigAlternative: BytecodePatchBuilder.() -> Boolean = { false }, fixParsePlaybackResponseFeatureFlag: BytecodePatchBuilder.() -> Boolean = { false }, - block: BytecodePatchBuilder.() -> Unit = {}, + block: BytecodePatchBuilder.() -> Unit, executeBlock: BytecodePatchContext.() -> Unit = {}, ) = bytecodePatch( name = "Spoof video streams", diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt index ca028c438..2294ef9b2 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt @@ -1,38 +1,28 @@ package app.revanced.patches.youtube.layout.branding import app.revanced.patches.shared.layout.branding.baseCustomBrandingPatch -import app.revanced.patches.shared.layout.branding.mipmapDirectories -import java.nio.file.Files - -private const val APP_NAME = "YouTube ReVanced" - -private val youtubeIconResourceFileNames_19_34 = mapOf( - "adaptiveproduct_youtube_foreground_color_108" to "adaptiveproduct_youtube_2024_q4_foreground_color_108", - "adaptiveproduct_youtube_background_color_108" to "adaptiveproduct_youtube_2024_q4_background_color_108", -) +import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch +import app.revanced.patches.youtube.misc.gms.Constants.YOUTUBE_MAIN_ACTIVITY_NAME +import app.revanced.patches.youtube.misc.gms.Constants.YOUTUBE_PACKAGE_NAME +import app.revanced.patches.youtube.misc.settings.PreferenceScreen +import app.revanced.patches.youtube.shared.mainActivityOnCreateFingerprint @Suppress("unused") val customBrandingPatch = baseCustomBrandingPatch( - defaultAppName = APP_NAME, - appNameValues = mapOf( - "YouTube ReVanced" to APP_NAME, - "YT ReVanced" to "YT ReVanced", - "YT" to "YT", - "YouTube" to "YouTube", - ), - resourceFolder = "custom-branding/youtube", - iconResourceFileNames = arrayOf( - "adaptiveproduct_youtube_background_color_108", - "adaptiveproduct_youtube_foreground_color_108", - "ic_launcher", - "ic_launcher_round", - ), - monochromeIconFileNames = arrayOf( - "adaptive_monochrome_ic_youtube_launcher.xml", - "ringo2_adaptive_monochrome_ic_youtube_launcher.xml" - ), + addResourcePatchName = "youtube", + originalLauncherIconName = "ic_launcher", + originalAppName = "@string/application_name", + originalAppPackageName = YOUTUBE_PACKAGE_NAME, + copyExistingIntentsToAliases = true, + numberOfPresetAppNames = 5, + mainActivityOnCreateFingerprint = mainActivityOnCreateFingerprint, + mainActivityName = YOUTUBE_MAIN_ACTIVITY_NAME, + activityAliasNameWithIntents = "com.google.android.youtube.app.honeycomb.Shell\$HomeActivity", + preferenceScreen = PreferenceScreen.GENERAL_LAYOUT, block = { + dependsOn(sharedExtensionPatch) + compatibleWith( "com.google.android.youtube"( "19.34.42", @@ -41,20 +31,5 @@ val customBrandingPatch = baseCustomBrandingPatch( "20.14.43", ) ) - }, - - executeBlock = { - val resourceDirectory = get("res") - - mipmapDirectories.forEach { directory -> - val targetDirectory = resourceDirectory.resolve(directory) - - youtubeIconResourceFileNames_19_34.forEach { (old, new) -> - val oldFile = targetDirectory.resolve("$old.png") - val newFile = targetDirectory.resolve("$new.png") - - Files.write(newFile.toPath(), oldFile.readBytes()) - } - } } ) 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 fa02fcc29..26a10aacf 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 @@ -136,8 +136,21 @@ val changeHeaderPatch = resourcePatch( ) if (custom != null) { - val sourceFolders = File(custom!!).listFiles { file -> file.isDirectory } - ?: throw PatchException("The provided path is not a directory: $custom") + val customFile = File(custom!!) + if (!customFile.exists()) { + throw PatchException("The custom icon path cannot be found: " + + customFile.absolutePath + ) + } + + if (!customFile.isDirectory) { + throw PatchException("The custom icon path must be a folder: " + + customFile.absolutePath) + } + + 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) @@ -166,7 +179,8 @@ val changeHeaderPatch = resourcePatch( } if (!copiedFiles) { - throw PatchException("No custom header images found in the provided path: $custom") + throw PatchException("No custom header images found in " + + "the provided path: " + customFile.absolutePath) } } diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt index f94b27099..de715d06c 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt @@ -27,6 +27,7 @@ import app.revanced.util.forEachLiteralValueInstruction import app.revanced.util.getReference import app.revanced.util.indexOfFirstInstructionOrThrow import app.revanced.util.indexOfFirstLiteralInstruction +import app.revanced.util.removeFromParent import app.revanced.util.returnLate import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction import com.android.tools.smali.dexlib2.iface.reference.MethodReference @@ -127,7 +128,7 @@ private val hideShortsComponentsResourcePatch = resourcePatch { ) if (hideShortsAppShortcut == true) { - shortsItem.parentNode.removeChild(shortsItem) + shortsItem.removeFromParent() } } @@ -138,7 +139,7 @@ private val hideShortsComponentsResourcePatch = resourcePatch { ) if (hideShortsWidget == true) { - shortsItem.parentNode.removeChild(shortsItem) + shortsItem.removeFromParent() } } diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/gms/Constants.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/gms/Constants.kt index c532c57d4..19f0454ba 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/gms/Constants.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/gms/Constants.kt @@ -1,6 +1,8 @@ package app.revanced.patches.youtube.misc.gms internal object Constants { + internal const val YOUTUBE_MAIN_ACTIVITY_NAME = "com.google.android.apps.youtube.app.watchwhile.MainActivity" + const val YOUTUBE_PACKAGE_NAME = "com.google.android.youtube" const val REVANCED_YOUTUBE_PACKAGE_NAME = "app.revanced.android.youtube" } \ No newline at end of file diff --git a/patches/src/main/kotlin/app/revanced/util/ResourceUtils.kt b/patches/src/main/kotlin/app/revanced/util/ResourceUtils.kt index 61d7be350..b2d8ba287 100644 --- a/patches/src/main/kotlin/app/revanced/util/ResourceUtils.kt +++ b/patches/src/main/kotlin/app/revanced/util/ResourceUtils.kt @@ -14,6 +14,13 @@ import java.nio.file.StandardCopyOption private val classLoader = object {}.javaClass.classLoader +/** + * Removes a node from its parent. + * + * @return The node that was removed (object this method was called on). + */ +fun Node.removeFromParent() : Node = parentNode.removeChild(this) + /** * Returns a sequence for all child nodes. */ @@ -70,8 +77,13 @@ fun ResourcePatchContext.copyResources( for (resourceGroup in resources) { resourceGroup.resources.forEach { resource -> val resourceFile = "${resourceGroup.resourceDirectoryName}/$resource" + val stream = inputStreamFromBundledResource(sourceResourceDirectory, resourceFile) + if (stream == null) { + throw IllegalArgumentException("Could not find resource: $resourceFile " + + "in directory: $sourceResourceDirectory") + } Files.copy( - inputStreamFromBundledResource(sourceResourceDirectory, resourceFile)!!, + stream, targetResourceDirectory.resolve(resourceFile).toPath(), StandardCopyOption.REPLACE_EXISTING, ) diff --git a/patches/src/main/resources/addresources/values/arrays.xml b/patches/src/main/resources/addresources/values/arrays.xml index 3faa7cdbe..980f0c20c 100644 --- a/patches/src/main/resources/addresources/values/arrays.xml +++ b/patches/src/main/resources/addresources/values/arrays.xml @@ -1,5 +1,33 @@ + + + @string/revanced_custom_branding_icon_entry_1 + @string/revanced_custom_branding_icon_entry_2 + @string/revanced_custom_branding_icon_entry_3 + @string/revanced_custom_branding_icon_entry_4 + + + ORIGINAL + ROUNDED + MINIMAL + SCALED + + + @string/revanced_custom_branding_icon_entry_1 + @string/revanced_custom_branding_icon_entry_2 + @string/revanced_custom_branding_icon_entry_3 + @string/revanced_custom_branding_icon_entry_4 + @string/revanced_custom_branding_icon_entry_5 + + + ORIGINAL + ROUNDED + MINIMAL + SCALED + CUSTOM + + @string/revanced_language_DEFAULT @@ -123,6 +151,36 @@ + + + + @string/app_launcher_name + @string/revanced_custom_branding_name_entry_2 + @string/revanced_custom_branding_name_entry_3 + @string/revanced_custom_branding_name_entry_4 + + + 1 + 2 + 3 + 4 + + + + @string/app_launcher_name + @string/revanced_custom_branding_name_entry_2 + @string/revanced_custom_branding_name_entry_3 + @string/revanced_custom_branding_name_entry_4 + @string/revanced_custom_branding_name_entry_5 + + + 1 + 2 + 3 + 4 + 5 + + Android VR @@ -135,6 +193,36 @@ + + + + @string/application_name + @string/revanced_custom_branding_name_entry_2 + @string/revanced_custom_branding_name_entry_3 + @string/revanced_custom_branding_name_entry_4 + + + 1 + 2 + 3 + 4 + + + + @string/application_name + @string/revanced_custom_branding_name_entry_2 + @string/revanced_custom_branding_name_entry_3 + @string/revanced_custom_branding_name_entry_4 + @string/revanced_custom_branding_name_entry_5 + + + 1 + 2 + 3 + 4 + 5 + + Android VR diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index 2461191bb..1b464b382 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -19,6 +19,19 @@ Second \"item\" text" --> + + App name + + Custom + App icon + Original + ReVanced + + ReVanced minimal + ReVanced scaled + + Custom + Checks failed Open official website @@ -1484,13 +1497,18 @@ Swipe to expand or close" The accent color of the seekbar Invalid seekbar color value + + YouTube ReVanced + YT ReVanced + YT + Header logo Default Regular Premium ReVanced - + ReVanced minimal Custom @@ -1708,6 +1726,11 @@ Video playback with AV1 may stutter or drop frames." + + YT Music ReVanced + Music ReVanced + Music + About Ads 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 index c2995578d9904564df539bb0c396aecc217b3d07..bf0c300aabcf468b11a15ffa63cc768ef2f01e45 100644 GIT binary patch delta 3352 zcmZ1^JxgkWay`#OPZ!6K3dT1FEg2aU1Q-;;mG2newqImg)4<4p1Z39jPET9capO%a z^Mn*z@!H+i+qTTuntOX22qoJkUjs1=_x<<0I(vWK(qEV=*B2~UAad$FA2VCRg_8}P9P>Tc)_dyl{rM{v!}lzp&Pl>x0>iP} z%r$8Tf0TAIou6+Q?DOU8*V1qvi65Rd4NDAe_5NaA;4g4;vby-g%pbx#MVZ+i?bM&Z z+E!ifEPHgn<<+A2!{sYh9C4R0V0e6nN4Yj-FUObje5*FcI(GUSBq%5-C9ELEHyJ(;-BoD%B}}AWimPnHYG8-Okw!a z-Py@$;(Y)0_4U?T_azqHxnXs0Z}s!l>imM0$Dawltq*?O`*A*OUR~4IPuZg`Zsw?3% zLO+K^Kq}_VF=MH!5cYmJk(mE-1VbjsB3nwNj zYbGD-Y0-_e-F!%Wi|UOgfp>v-0)u{f2}~4zweRe{4feV<_NMW!a6J}PvhbstRm^vJs~CQl ziiH=|q~@*H7S)NH!Q$lP2YIAxgA zu5P@uaz$V{r)F&NN*VK-Yhs6fG23u-Rhc&lA8?XNoyPQg)fq3BvcSN=w;yG?{?w~? zzEGL>pH2FO!Ja)H_JR+?zRoRg+H5#u%2osITgtJu1(G}DZJ5?ERV(UwxbIaxu=7FQ z2aQ{Mr4qG2T>qiavbbt)N={)=8;|6RzrVki{J4?$>HF8^N3Tx5Fiq`tX71tAEh|5! zaUJCmd^35@v^E{p#!0H)lcrCfp0_;mPSn?rAL~C}&}{jbX0?~wTby&*)bhp;u78q` z?f=n|uwV{*&B;q=F3qr1+iW6#Amz-APaN&{efBb4_K`^B@D}EJr^LIWEmeK`#`N=Y z)`4aciE8iTm$C8I%;U95QM;eav2t5mgG>v`Yii;JI*N@ z;XPc-wcYpEZ?kamp8al#eU$7{tIFF!vwT)+=-Bj>y}#!xCntAkN9lBax5c(M_caPw zopPGs_T;dY?7MkEJ6A{ENj3EHim!62sq0&M^W-PCX8zJ^w>?*t+r4Z*asRN(e4Xnv z%Y~aQ_FPc+_t%qm@AA%uWr@ypl1O#qc&(a#b@owTHMW|->JO31 z8yIc~*qr@T#}>SCPwvv#m3z3HD=I4dGFx7s{p6?2R%&@o)_YFat4WG;j>bAYNbuu$ zHEEf=g~a=UgDsAh8~^auFa2@;fz6e>?y;|2JU^~YYUO=5^-&%3>c-Xs=T`jY?6&5& z+EkV8S-D@~uge*^L({Xl-fi0{kWlh-$xVmvVz1hGrCS&S`{vBl^j*btW&7XMQ`0vy zvZ{SsmhM0Q;?>pRoZ)6kb8~E;@D(f1b&6w|H(w9?i>2H}V)8RFfiS-y$1weApAyO*z{{ascx{5WIYz7pP%>S(W9idQ@h2i zS_OF98U?iun=ZRuw5G=`=uSbX%g&_EKwIv3tA~}lO|HIAFJxb8_Aa?_`O%K7V?TX# zW%4$N?+|z@_gGndhMy2qeA5%7i}rUp64)Z!b#oW#yiIcCIV^Bp^vs%bYL8;my|RB+ zanu)o_}A6Zp`r29@9~wY$xZSzI?A%YI9Jc+VvJs1xyF*y&2FR1BIERP7iOF1YxvGG zdGhk5)4qLnCI9}gR(*XXy3}uO)ESOzTnqngw{UleYD^50OkQFlxN3pLBGtn?&-DLo z6+Zju(7`QdHtauP*JD%E{U@oVEwM(4GiaxzNy`VB`o`sbcUPsodLFvu{O)6k*~QZD z{kK>O^-L5{UG!tywprUZe2G#veWj5Sta#wVrGqc*yf-(!TYH61)@p*oe7jnY8;)zE zwt6Jo+LC!_<+fkDSX;vUp7#i_)&=&e^)PVi`dZ`_d)WW@wpv!$$?s+N`xSjFWS7<) zRr&AuW>1W9`k$)$mWJ|*1J@tcxO-`>Z=JP$-4#j4-H0*h_NyfJFQ%k|gUKtsgjK9CWvLr9qQ~5cm?8DY?=K@(~_$?O@Ykql9 zCxNYC!7c5U(GnSrYJvKwYDRt$&cZC9n^rpR6zQO)RqyjN=*mKF9DDCgeV z(pOd9`{ZwygxG$zk4#^tUpshqseb+Pt=DpcxtE^_j*#p(xRvhuV@7v~mj3FLCEkJ+ z-nr60raGO-_2P)%SL1p5Jl~IJjUn~rrQda!U*tXd<*YK}W=P!5`K(uNFUh~@v&~;Q zfBTPu1!iZW6gvX#qqpUJ`KEg>)U}mM^nrdw-PwHMy6e@O)@)>ZuV;NYs3s`$`U}Mw z^}b%g+<$oDn5Q?S`n;Xu;k{++rJ|K>VO6Gfb8|c%oPDpz^6>rv4t~$KxhhX{b#k4~ zgnXVhwXFBZnrG^q89Q#>yZoTUP-8=p`RA&}wo4D5s&4Db)ns{RaJ+#f>Z!I)#D)fz zvNtyr^OkWX|C=SbuyLx>gG{*(#w`DSGw$;}d1+65Ab+jes&KYNos98u>cU@leA?!5 zOesxCURZsz&Dl>IHf$*Qp(7bFSN>3Kw&IE3KXvLvZy9nvluu|83HN1m>yc38x7Nd_qQ`-p8ebPKB05& zk{jv9P8ADOS#Cy7%ddP@^Sm`^U&4o7=k~<<>L{mA_T!j%(~Bc1EQ3WcBKLq3&klc; zcS@c6*T#u0lvUP^`Sr!ZENousxQ;WbiG0Ppk;#S1@;^UGv?JB%Qv5_UlTB; z_t~}|jP=^8b_W_5C7wn|JmvrY(C$$E)Cv}6Hlc$W*PVFmi_|RI=Ql{%C-=k~FtlIi zb=&p1y4z9rzt*&rlT#~rn2*&n39X9j{HJ$XabqesoAyUpHl70k?OnU=?`M?-w5sm7 z@niWz-ak2fC5{El4HC4|IsVDF&1u@Ps$P?=E=i(k1(Wi<7K5Ju>n*i@&TLRH|Cdo< z|7lxW@S7!n#1jrM%(>lT@T%{@{G=B4`Hy~XHmGPx>88jSLJ7 z3=IqZt`uL%1Y*K)+I5)*<)6DW_T4+vBCKwF@z%D`t=n>M!_ecJ=S#)b?=rHT`|D8s z*R{W{zCDwicmMOQ_;UBc%@I0m@$vUn?Ck7XUusXjWwS2JYzvajZmBX^y!fTq^Yp#~grS|f$ zfpFugs}H}Y?Jk(Y)sVNVvZ|`e&~Uw{QU{0O9_7qMJ_03|d%wTUR`z1~lq>XI>A8)K zjf|2l!>*UdQr2j9DmV#BXLJ?JSZm4D;d!V2@2{szn{IE-zW%7aw8mwB{jrMQ-`38a zX2#%Cf2*VNb!3|9w!We{9%oKeIX&@Gv{|;jiu*9H$(uKC5{e8D<`^D6c$%eoId@Oo zHG_l4-*A_ke}7Q+?%lh9*Yp2rvrcq!KA<;YyVf41>2?49Shm}xM;z_=`!%)xeO>>@ zh8dTd&i@L#+qDvu~THa(1Jjf%+#7sov81NnweCi{Ibh zFCOwG_HdiPDUDatw?;*Z9}>~@D}UJ|XxG`$z+nAxXUnbKOzG+AQ*_+KoCti#qCg%HQ2_Oh{1p5pwF;v6;o0 zD?>SK;v9;Kx1LjfP$(DFr4zR1SoYx;-#q-@xv!7gTeQu{pLwV5)!0?HHtMxpoT$gL z?!e+LIg?~%WCGSknQ~ZHebM02bNh1cHZS|C{NvNSR{!6${+5`JrkNPqV#d$n=h`>S zv#maqV31MUv_(BZWh^7fGToO3r%ow`rp^zq4apK#pt_%%61DzCgNLehHuqBvbw zd%izw8C$nbkWomw!<%AoGH>bmKT8hh2QhYhetf*&%_i>LH+6C_XwPo0>z5d`PDeDa@ZmH?4+$ZXto#TFNL5{~jjjmc2Ve-dlSv(I|i18L?{9{vRIKU2nGSneeJ- zYtd5)wX2o>IzdLMBGPqJ3tM}66gi)JlunyGcSF*CVeP(6{dael9~Z2hoUfHD-o7Q{ z!}lvs7I^J;7YVY|X6jOBS#ar_`x353|4g4O|L!Rgy>44FE;1e3mV3L+;#h>nKM7fYt;+p$bEi=wsx>2Sao3k=D=#z`{?)NJ7 z9NdRxZfx)nZTc~%$?3;3Q_rKyA$jWxzrTw$Occ?WF<&}Ue2dn8iNjK{Zr5MkPWb5C za>P^k(bw14e|&i-=3Q*Dk$^H$vbvsUY**QyD@ zLAU)?JhE;(d<@Z=Z1e8=`uNM5VLQr#Zcpr*yl?WBN4kEozc`<)4k??cH*c0e%Lxzn zOTGUO{}d29<(C!j8u+i%=gEz?_4i->37B&IuX4^N_dv7xQ&etx8u$H;(6V-a89$u-_}82e@mNour~EZNp60d8>`O010{!vXYJ&7uZk4e$2kI=HafAxes2MXYll1yi)t`=kqxR=2c%Z!WX;sPMFgD z)Ua^^??3T5ihtr;cFC^(6_Ig@PfXzJndCLE=4M*0wE8X``hSO3^`)MVhM{g}gS1*d z-|XTupX>W!=Zo)_dyATGODSXsFIk>mw{24l=aZb&TPZ&mMX>R(FU;ZIF*!r{-s_de zrp@oZ{;q1Dk&zLb#Qm2VJM)r%d2qS#yPr9{tBHlldHLRC?v)=!{p|mixLZB$F#CMe3innz$8`rU}bdv@5`NG zss9^qYaIM{{Fg!5)3oY!7X*6t&r!Ub|C>Xh#=qUnZA;e58vC0y`&D}{Jgcp;GkoS# z(6>-W?B#}STVzx6USH_Q=FtgIaQJY`>BT?4aP14vma8prTadP(?Lgw+J0~v9&foXa zV{`iXve4CGyr(=^9gZKn!VxKABRH$x_S2R_k9W*{cuA#D|QHGs>KM z{~tJUx_V`cJ)b}Ue|&~@jQbLw`qN9_+I;@|$fV&z$bp)>sb{rbADEq8q8*@c;OAN% zg&L_MrrvG#wJbulO#k@2r|Xq2c|N~>o|*`&m5Q!)Gea+D%jbh{56pG_`#xW-E}vhZ z&$QH!Wj%Yo*`7&S(f9O?n8Kz0?pgP1N9eKg*}vW;&oy>dxY%QK{U6WY7*2-Vi4wo> z8JZq?eoHW{w5qAt#$iUvy4||G3N}k_{pDO%y!Yant8O>>Z!p|*`hR%cmrMUTI4);+ zG%`7EImE0Ox!h;BgmK!LZ*!Bgn%m{7PE5SECUSD$j(H zb2+cCL;QyWG4;~58j&HZZhc|@=)0$LV%a>;Nxr{UUrOnB-Eucd!t4qk7b8<{ebd8z zzuy%v36HOxYW`{h(_HZ^UfbCdvg6y{DHm+rd~Snge$FDd_@>>ntc+Fn{E+*>^dTdD z$&ncu+og&#t3qlu^Rrnyoi=DUIQ(bZe>OO654Z1aS2d2pRa<0}7r9-@D&=Y5oAz-Z zkKN4frdQwdYGW@jZLYYQuwuu7Mg_iNzmCg3@(JhWSo&SI`~7CI`2{DFLw^JmW?03) zuw|*Pb7<0t#s?ola0-ir|Vmu9((rB(|yAyCC{4qOdRnpj0dewo1Hd(W;;LomMQCg z`OR;|`XwuOb$hZzIx;p!B__UjX~I?8FK2t_&d%by2O60rfr%G+;@g@IO zsl62m&AIxPKkMt?>Dudm7M|X`m#;i)lCwqo)6M(_*S87tZc<~ic>8wQ^s;q3Z!T%% z>%DmLnbgU@f5aGD_ANWVb)HqbaD!m-1Dm-X7jBg;+L`C2cwm0hbho)WE|RAHX)d?R zOEPBM+UCL-D7ogCeoI56wq@)5G@-EKI=-uH_Zc`!lTz&c+85|P&0>EyFKMe>L)Dti z9D9P89Vh3^dwbF+;MV2`*(!%O$GTiM>n>4Tw^?FO$NCf|!}*i5qg8{y$a#j}n3P_A z*=Lcn{z|#4TPB?Tt8>upCXe=-RqtCL91Yr@dgM-t$mS&tHE`i9bd-6Jp6BhvDQe@W z(Z3|%-LvN3HGA!5{%zqBp4t|0&&%MAo9_oHqo~QrJ)EL?kN$HzddT0onlRzt{Z`Lw zIy1i>@;T}3kT+q;^G9F3c_!wL9H{9OTJ>os*gsmUao8{eahyLMTnxfXtty(W~ zhtX*-V~uHe#fR-SmmM09zusT*SMZP3k1~d&{2$CGnH`0+zJ*NUmtficK-f(2i>_d4 zmO;&r4@UpDv$LBpFfed5znOna=6(Ys0|Gc4VN_~~@!k90@Hj}&)78&qol`;+0AsO| AdjJ3c 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 index 9bd381fc75fd7e54e72e939c9487bd8b3de5e1fd..7434d79a54dde9383a4efb3b4dc22dce8e72beff 100644 GIT binary patch delta 2952 zcmbO$u}XY`3S;3!Rrz{`wD)oeDv{R>`o7=zc57Si?Mt@Xa&Lo>WqRK=v*YLg`UlMo z*%wlN{mY_s|5u)ME9G9-zIG0Mf9<15#s!6yaeJ%Qc6D{R70>DY|FI(P@2{`NKX2oU zjEt1D(~tYtt*N1LV)+C91vliM{}4YO)D;(SxQ&L~b z`;T{vbM0c>+4NXz@dM^f=Ir|U$7)}^xy}FhsJF<`YMW~Q**p2414#>!^Ir=SQzPNsUspik0KUqc6Ixn(R@0Q%QX!7~)>AQrUz14p= zSRaRe|5Er+Y`{k9_72?{Kf_`--@Z{V=n~=xX4}FuzYfll1N07pjM~G z1`$QRxSk0XA~#fAvf4FfyG0x|RO(Hry=x@3Xs&+Ax+BvR%#tnd9ZBpsIL|{p=ZM(p zhxHs&XKy(AiQVYoQI40rx@M1+OjWH8pUrUCtYK;zddF_zp6P>zZ})6(S~W5ZPqI{=DKP|4pBR`+OfC z>lN1gu-{2k>!{AX@br0=%hY^kt|@EvEsg8HX|?-yJIv7!0>(uMjJc`aEl%ieUxutsiMz|m+VvMG|`dBscin?7AfG7N5= zozjsTT6pEw*6gqEKdHXDyJfMMf1N{gy6x((#`9S=6kfZ0%jk1tZ`O_2^?UzMbFnIa zx8}~Bm~ig&ebbZcvoCUJ8_F~rvNRhAr6*~pXgUkO$!l{kD;CfQcb=BJ0^}8$k8Tfm zYUbW{HM%TgsN|9I?9k0$@v~R{s=T-QSI)7?zjD+p{@HvFoqPSW#8=5H{!08d9~yq_ zxb;S1Z&0_}5AMdI6{n4hgy-}<|Hx{0Bz6Xuv1bHNq+C;Q(nsO?luF?=w})bTn)N@} zy*m`6a=?dqPQ&C}UJH@(N5VDz+Y9+V3F=r{2>CxSu4!^F5C{^~u`Oi1cR;*C`g$^h z(^5OX!`(la-akr`Xn|{A5nys?yijZtW^vZTI_=@zbYIUas>jfBp4m{>xTN z{a05j*T2kk>u9^#TXLTHd%Z`>i3y6Q&YUUPoAK;-V^<8nU|NlGW zyH16Bzub@3W#27a&fYc)&5T@mull|1(&fv$*FXIAd2!eK<&WhuT9|S;FL5k))~o4q z`C%-(Ns`ex-EmscmR9?6N4=VqKRL|{qkae#Zb(;JwLoCoBH=%shaOMh-hSu|ONg_c z@2%(Cg9Da4UDqu#XYJMH{_>&W;jd?=&kL(}3Yyb5r(kxT)t-pu#!^d`EqT4DTYtid zHIbXAOq(WlF6>ps^xhBVOsRY+n+5)TG2lwl^*ij)b7by>vz;H*&r7(jYn|Dzc=~#W zlkYBPv(tr^d48FAm5+D7Jvi@M-RLO71xNN5VLx(R1 zQ}%G)`+4TeS zg`MW?eEnGeL{O8?kwp@lM3h<6>e_Vp56^d2nC+hM>`aFllj~jcIo%mPq#$^dfMi7qCozS=W(qQpG0ph zTJ5VoM>wUbc*jTEl4g7NdIz(=0veJp+W$X{vgr;wQRFtkZO5&nyIxfONVd<;cVj%$ zbC^}4r^IF9^q;#+e$??aJi&IlnwAIz4?f-t+Y?gClLE70_oq~#Y+-7WLU$0!#CG+F*$&6|BTp}uluJjcboYo2xlv<0=Z-u&#rQzv?PE2m@qHAeZH=W=E%oR;07&d2Ydw)n&ylS3jF zPnA!663d#@we(nM;dVv;nl(2{FRcn)9TF6@ z=*N$WyNa{s#dv zxfUnB{c4`rGOH$YjsBwtQ{#Rp=?L_+@fpORj0=&P2Bx{U$m&GXw|Qm%jfDZ z*tx&&LwdKEu25O>^%q(vo;lo@+`4tbQ)dfRwv!xF-W|JHUC)+hP_}4O!g=;%Nn6?v zH*GEPH*cC6u6Vl4q;aO81>@eF;Mw~YUQ-LZ^l*xM&#`=dW7iu(FS)axx83HL^Y!Y+ zWcS>Adm{h!$l1>N>U8X#jd^3d4Cj9Q1=Dt?sk#)|Y(-wT58`Q=2 zODKDDrc`pJbt#?}H7Kq(-ZEY4piJ*PlREv@V_#nSFHt@g5&!0Z#*NFu*&9Uqlf?ea zWN-bkH|D9uB)5cvF}#XvwjO%B{l4DB?f2`V@66Qdsw{VFx%tqfY2s|ASmzCwu0G^? zd3y)fcB?nl^?epIcJgsOXb^Dy#m=^fA+|t$i@3Dn<%eCL%y)>HKhQt%jI;js*Z%*G zW}+2b;SUsZnsf3R>`!X6<=orqYd^n5=^lql*Q4JycLE!?HqAJdaj1p!)rE!4zvnLc zkhk7I`r&rOxSx=ZSr+jd{R5celdnsw0Oq zw>z7)A3jqu#es28n;6HGkTvZ*^6Zi2cUUb~9GkgAbW=>yz3dd@%SX+gq#GDB?RR9X zX)r4|l^MZqx#GxNkH+9*5AshO6iN=6+1H^mZS%+L6RTD&GnHDiNU*4O;bqzXhn;+! zMCQ~_>TjLV{y#Bbg6qAQJ6+R1Dy=&bu;ZkF&LNxA|1U@$G!onX(A1{C`=Yez%Z~q% zx1{aQ*PK=|X$W>pn3yUtXHwJ79lYxwxW+VZzh&#O4 zf{#_A!!@FVZDP%%e+?eCp_ijne4_KCl@XRN%nOSNjfPkYw3oQoI2 zuRlJ@-CD)h8oh718+(27L%sL&+wR|gq`Tnv1KFf23PnYuUSMHgdEP6bs z@AXIFxJ8P7$+j2HewXhT*AKiCH?d#M#8JCzpXP4A)@FA8zQ6U=1rE#%3=IY+{;fRw ekynBN3Ao5eYs7PlUsGHQ67+QSb6Mw<&;$U7>ZLmX delta 3068 zcmZ1_K38Ib3geTBs`B*>H+Qoucy21|eSGz>ncLfqxz$xUw~xI_+On_pLtg-Y7o&982rP=6$T^YOb|pPyO2w~V|U7F6-*(Icj$q@+)7?(Wy0 z-V%%bxuZ5GC&#&NZGnr6%Z#&KQ|ptIl$AFdJlJh`V|kJ7v9E&7aS9(leylI6(fRX7 zxb830^__nz0zyJU%x=Gy(+-okQ20c9o%mG7_fz&+{P?K*rz>gOb%U@qKMX7GA4HXeGQb3(!Pe|=Dw!%W#NX}j0ysvhl{suQ`%#mJyv!}Y_a z?uUF`w}QOZL?qs|`#n{pag)y?@tcz^i=QRTUY~rFt9j$@FqZW)yjucV?%%lM&7tI* z;>HnI!X()1;VZSH%U;R!q6fFOmq(P#t0mvB@&&SSJyZ%`?kype@$vij=^Y<9I(xgP zJ~&a&!FfVRuW{lz7mt#ho|IEFPX2ptlzK`ft=|6naS<2C*{^GQZ>!}!lo4CZAN1ID ziALUoZOimyQbqEz`IKeCrc5Z>vG($TaPLJ6(>61n7SoL0w&u@|$NiU?@6#-pE@vC+pknCnrVpKa1%LDCO_{I*o;ub!XO`_n&tjxqZf1 z=+VND6@ow67VYfKsJHOu?eJ5VIPT@z;U^q_hOP9fQozURH|3v0SBG&<{C3yMYw3+i zo0h-bpIW{8<)*DyO&D$$OkjFBWB;b(1edb_~c*dqrl!n%I$5!k`}|AF7+dKnoR9a*aq z0j1gI`O_LcIQ-mjt03}v;Yyt>W8nj{__|Y^nkNbgNGR0%{`2nG^Z(y(ApwC0@Axj+ z@N+$sn6q^I?D8jXB${U4Xt_G0Ex zWmzG~chSa?(ZY!HQJd+h>tVc)8qc!b-r75nqwpc$m-abzGq?&5N36(P!c!7HYtN_S zni?(Y@A!hY1++ek@|$m$8~^+In$Tu9tC)K^mZAGz76-JI#wZmU?o{>P7gO~4nQ!HX z2aQuSgWY!2AFi&tb?3raCkwvxO!kW}dEC9UnICbnE#}HfR&seRYcVNurt7};Sz86p zhW${qT&iI8{DbPQhxLUli-HfkD$Y4B{v+R~UE`JJ>4l%!jPLz_q&%nL#Tth!_0wl; zU-W&-=sGGecU6H3&vHep;){a5AC!e^qd0hW8O^hcJasqL?oa&(XF;RXQzD+T ?) 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 delta 2228 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 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 index e147d3f6bf33b0b41f9e806af3e6be67d73453fa..0e52e1a247f51a80de5b98cb0ee651eb5fb27fa0 100644 GIT binary patch delta 1909 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 Gp$PzckbejO delta 4628 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 diff --git a/patches/src/main/resources/change-header/drawable-xhdpi/revanced_header_logo_minimal_light.png b/patches/src/main/resources/change-header/drawable-xhdpi/revanced_header_logo_minimal_light.png index f9f9db247b2baa1c50048c8c56f9623d5c5a0df5..d1d98ed2dde3fd73a9fa5edaacef028525fba4a2 100644 GIT binary patch literal 4048 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 literal 4216 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 Hr-UW|P=fZ% literal 6882 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¬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 Ndb;|#taD0e0su+py|@4X 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 index 4e65b42c65614abe0b648d43b02281900677c9ea..beecb30b539e572c1dccf09c953c99a63050657f 100644 GIT binary patch literal 7457 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 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 index 566290423ab4c06218fccc12e9913cd89817909b..590b0b63e5c5078be53d9f20a0f9c626cc03b6db 100644 GIT binary patch literal 6735 zcmeAS@N?(olHy`uVBq!ia0y~yU}9llU^u|R#=yW({iIr!fk8^l)5S5Qg7M8==AP7a ziQ^B~Z#(wfewA*EXwsE!BHK3hMs=AvJvIuv!kpZsM_H zNT{r=T*vqK@uW4Y{@aJY{xe^-a_ztR;J1Hv?%es5iGiohYDT$Nk>}f$Wd+|isZWl% zVsf@`>2`*OWtq!f8SFDSDg5>SIfW@tHnz65a);S%yA;Zh;FzF!vb2<;KI%13lIOk^ zYgg$``_Io{U~RoSbkggr`RjS^CTg4v-zuGLJ>@?OgAPZ|m3gusO4k}Msh#^|S7&FZ z?`eBx1{KRS-#!`e{@-8NcIf5ODW+TuAGVkA-?__oDe%oXd&^WohKyOyI#k|oZ7xpn z{^a=g|Bg?>3<>jVzeO&$4STRVD&6Oo-pNwy_j^9?O1;B);L@d_&zHZl99yr_f9}kg zGhz%9uOGAC(&p)_Jb!hY_G2~%F)^_+?@zD#odfe#ZmwoHAfd}66T<$WeZOSauML^A zm`|->Zm{}N=Kty6d_FgB*6QhjtPI`V-M3XL|LV6dy63g2ma#$5rlH{3dwGWyD(Cg| z_0LZYWMsIVxBG3?|36opR4YqT)&(;#c&__@y*V&^Y9c#>C*NQHaD^-7zL#Yp+e8^m zd^b;da`(TPz|<#ur*>ORRb*kv{Tn;pr)o~RvP)} z|9+MA`Fp=!n?3bi^zLo0;!(SM`hEW$yPiDxQmypA-u~pzOplX$C;q5@x`s)0=dP0b zid+4r|628}=xyUI-mUL%?&f~5<7_G8;nD?nGFK$F&zw0^HZ9FcLTAaDg+-SQj6on+ z@{(1~qWAkA@BEr0bNp9pob2nlm3$$etU8xp+QBby%RslpVnPU)!`@V+F@vO+vOl4(ms9q(n{vW@|6k#5AQkN{?@3V zRQ&9W2@_Z`sCzY)L`hiv|K= z*Etp~;L|yK`m{91p3Th6ihkOWo0hP!vU={V`l{mIC)1yIIy68^L?fLu?)Aj$&#F1^ z8-J^wt`VrTvaRX=j#`C)4RU#T_AZCTBJQ$uv{`%b>g&J$#KyFKNyV(h%gcOKZERxx zVJkV{S z(d*OIoOrN__36F6)sJpZkFS&5UhDIoT?}bjSExDc# zAFD`lB%L`kp@M&*0IMNKOZ4tHA9jCzcy9jG51<&)Pg2-1M}^(lXSSJd&F<3I(>CnM zf3q!VC)deFvEZjAvv)3&$+7h9`W&@q*^_f~qyPPQ%>Oa>)s>Zpwk;{Tm&)9jKed2; z(S!X3+3}V&w*Pfp4yRRAM$R%9sNgp|FGj`w(+mH;LEo?Hse(N z>GIy{y^79l9r+h8UJP35C7KvL>0$bWvs0NF1NA$aTsLg0dC{i7LCU&N#C-!R_XjyC zW!*C&+=~{NotY-SD1o783fI$%^1>UrtP8&Ue|y-f=Xmyt#^)2Kur6R~OEUZRSZCee z{lO94=P&Z;A6OZ*NQ*6j%Pe93`T0+y&Kz95;@OA!PcN_NT{xrB*P>zZjpnU0TIv_@ zFg+-#yeNA=N%z|Wjc>`eYK!=}tc(RJ%Ee3CRhIhBHtWn6*NYM0o3!zEQQCRM?%BQ5 z@4lTTv1!Xsmy@D1jNetywXF`TxxJ$>`OY>K8ID~$Dik;ln0B;j8$?U-9QN$sON{7S zW)S4{hx6hG(KBXOmTl$ldX)W#?V_ek_JyNQA}4IKnAO4h;jQbQ?$-jc?;db3X^s^= z&hm%vq9V)Y9J`3nLq2!fUK9u)o_M&?@#%aEj*AZkekpX__b*EzudA+NWE8cC^jd!tI(6x^x3$QV@sR z1J#Jw=$Q5y1t+CB-bi!oYgf^1Eq}LIs&C3w+3=U2Di@y*Iq#yf^|hWnN0g&TO3OX3 z2P#LL0)GfF2CS8JaSW8uwN+A-vTO1>`qB0XTkwQiZH)@1YEC*r&E^TNcMHXn7IN(A zW{}VoZBvvoBRo`TKn(BD` z>ZTo+tyHa^ZiAm1bQ;K0Egwjk&H^U1bH)V>F>r+IZN z3*;+&c;C2SRlSUW@V_tiIStK?g-+Il2ld;=XvUsL*e|p~a+v=gI zP~`gq_8&ICc=)Jsfuf6})rt`Li306^*tPz$FH)46xp4dQ4+okU)lAPh$Otv<(Uag{ zS-o(3xgwtw)6}2@)+37hmG(9!W@#Rg=D73mXX8bI`iU2~n&fN0TvYyTvi^qmv69;p zSERjp{M%H%{?En>%HE>WwL(wbXKNDFljFD-U=y&cC9IL7&EiGlqnq719gP_;c=wt% zYj8Lv?PV*xp%Tu+;=sEiO#Y$(yXyjtEmi!FHdJ1?%+O&jup?a|g7Kqzx46F8{klIN z-A~RmPQUZbAcRCN>kK2tK^X~2v5*Ak8_x1Jl_Y-TiMDkVS zzu%a?pzEl#{igi?|Ng4h@k*HpZ2LKTubwQ2mZONy#y1o9A5dj+Ty6Ek^W*u&7F&J= zeAIvNd|?#V(dakRqBePmY!F=gQATJL!!rkwty?k`esI56)UWYwoHU~&V=nUr?h9En z8cz#;{m4^ux|6?z&)}le{CD?R0!<`mPKeNd;N8*c|4oKHP^5FBlyhp{n$K)Z)$C2i zb>#_1{{8)Zbh~pqpY1mP?aPv%zKv^_ySVn`jpN^}Ykq9_u`U0;-Tk-!O4=Sw;bw0t zvEUEhF<a1J&gzE8MD;?e0(yU$(L{MvfIGUs=f zsP++aJ8y-WWe4Kfo1#4p1h!mWsqZGeqc_8R%P+A-2^u|LY@Dv#x1D7t`-_`t!6nzF zp>KPp%KkqZ7USmiB3H!aa8WmVli!8gbsbHn9&307ST`@&Zp1a+;#?w6(82BEBJ&NT zdP)o~33Rk^i~W^(cF@CgZ{vY^jS6@4`TKr6Xy!k%{lp0m&G2=1lz%@t6X|ekTeM*J z|Gy`;8Ks``aB*q*@$KL5_uRMte4XSt<1lmMWGjc&tGnc_yqFiSZOiy^=g@5(ZHLuP z0<7x~=B!+>e9MZCjRL&0b!9l#Ny@~`auAtwRYE3|Z`Z{W+{(IbKYmDVz91XQDsbf`b#p$y;`ep+{?nHWE-kuz z=Xql2`UR|Z$HV@xZ9Krq&E8aIaLcWu?S)I*m4gDT@`qoRz1ZQh{bBDM zGDi`UmYJWbnHzuSTVKgN+{XLp_SMzl!nIC{x1U^E>iy{UudlCbzkkfL-V$%p=CGAh zzRDHl7%e zt-!@~&?j?GCxe^1xD_V&uk;77OnWUc4zczE~4TtlwU;QTCpD)QjAy-t0{ayS#5M zW0c(0nj`h)i_A6$hU>g66AgmXCo>;(>}Z-&u*pWieiIjGDaRrO(KBV&Z#5pUb~ZT0 z%YNFinXNNlCs$`{*43(<{Zgh`NAf=BJ~+^rC&|&ayH>%$eZp(@CLgi;i>}Ij%wD@s zWkZqX29`&U8Wot*vNDSlZg2*EP@1Eof29A6yVKhy4G(T()`OW>fO`+w6{P_zl+jeItWF!_TL@)iLCqgSc(~j9KnE z1RND*_pbSPRQyr2hewBqc9>3H^~FW5Pahs`e{}o#{Cd5d;_j}xJtc*FE)F7Fn(pmu z*7#xm$wGl)Rc}CzL;ritOH+0%-M467(D{ey9e&#l_?ZJ(&nwrhS6|$iuN0z;|F-$hEz1uA$$_GpSKH^M z7z*rR4E&%q=iRJ#_h*0J%Nuy0Zduk_UY2+9-3O+ya*K83@Bj0u`^lM^#$x}YYm(!? zUN8GE#p1`q@>75{@WPR0TTk*IxF1wo@^Si)-Rni_?QSl(#naK$%jQ?E@8!nqXxz~x zYY-K+hhgv93wuL$eBRokaf8da_8l+FHy##ag}i|EakicJudR(vKH6U!Yb;RkGOg=A zKZ^^uA{U>NzrNy`#^2MqAG$`|4e4lG{bToOvp01)<5j4Vs5l$b}a9Resgzs_?BCn z)B889pRFfeQg+fIK;)tT>(>R#w+gU&CoVDh!Tj(>*YyCFuq!f)7I1Vqi|k>xy?gEd z2Gymj94DQ1aM;4XC_(SbG)aC%PL6|iHO+b+ORG!m6xgmNF8S~D!Fbss-nh1TeYa{j zH>~mXxBl`d@Nneak`HfgZeE^ob+J3YIWLQ$%_PfiZ8oMwQw3OmFIfIgz_p5fg-8UK z=K)_IhvGd9%HV$b;SYK)j)p6yaT)%a{yMbkZtcke1&KwE58OVp%sNX?VWHoPAHTM+ zvHkl!p+ae+@Zo?%ht3PONJ*RuPG~n5xKTar!J_VazQ^_A|14P-zh95XGEa)*oUN;# z6vrurV{QII_RaE&TuK*twQT!$3a})ovIP=GaDkmKsUh8xxb72D|aES^iU)w>kJTD_Z5a*xK~|Sn6mW)2z|u#3-?n-^F>$BZIHJ zU%t)0Du=R=DSo@ZTZefG_(+CRVN!cXyYo)_s3>cd}C}*Ul`32j}-K;AU?+ zB_J(#X0nvJqSf8Qo;ioaVjPzIWZ$-8`M)Pls--znmy|9FGj`6&%;@+$A;nH0#lgU3 zd3+(m><#Suol9ml9m(pD=;^|(~WUE;{j z#skt^e7j#dSk?R}=#>BObK{xX@A*pNd@NP-&h8Vd((2{tI9%scH6zph$dcP0ynA^s zReq3bw0qH)DA7M(K_Fit;NRCMU6z{*u9|oVNibfuYrAn?n&VBxl8lDce9KmZtenKc z%6jxs{qAfD2Im|5V{8PjG;3(F+kSQ6IieW2f_?K|R>RD7oyH=H0-yIZI{dw|{pl~K zrO!9WKU#3us{Lxnjn{`74`_Q&(~-1rXtgMF_+sTJE``Saj2|lSK*&RgAY4%w~07xey(d zQ~uzMf0~4@d|lCfhX;4-X3S*{-BEsETdf4gVhQpoyH=Li#ffLK`Qu|u0#k6&bXwUS?Np@8tY1ycV$u`&G)*E@5XQCsNIMmgqi zmt{UPi|kYLuL`Vrs2>r?CF8cC>3zboEfvQflwOwp!7?);ePsdjLAEC?p-V69I{jnDP^96cdTeP`W z@JKre)a@aWFyta1LqwJjHk$*Z8?i}FEIh3)*&CTMf zaYjq|MhW*q-ug%8bB@dPIEJS*PPT0iljzO0XpjG(zV4AgTCzabb#9EBBNNGN{~K-1TPmNzsKW zKiB1{+}T|!%AjJIeRJO5uG&LC*DrIJce{$0!C&@7Y_15yfragIyJ{yrpZa^p=QD-J zWw*yli!yA;xVY$NXhFWl&yA`lt+~Z?B5t_xGQ8ROeBN)hpE;*nGwvNYmD#eGlOZd3 zp7Nxc^*_vK%1@TLT*bi9-DEuZ&w@YKeJ9Dk>TJ3k-OrE^Sg_;cvFu4tKA*a{HlHEk zX6Yxb!{)kdpYn7ke9Nz8WjOtA$@`zmo#%C`nHDoLOU8OT$=4mYV7CX0_!RSWmz04?2E&0fUPTF_pUzIbo|dTi zA?xX}ou!cs40p0OEI9S^k&3t0d%xq`j(q+5@KmU5Wr+YoMA@%>r+zbVNUZ$>JdnasX(#>>G!0tA~J9R>g>8$%sn;X zGOQ1xqhD9MZN0mqFZ8zCjbmj&yLrw14qLg2PJigOHFx*ieZFzI|Jd(OpR@7M=O42_ z&1aw~P&k=0iFwkT*-yIsmKTRlVxPQ5rPAu8wWnSFXTRS!ynfHJo*Z*=-}eTU&8c4) z8JZ6!tknD~JW0p=`gs${f3rP5c@@`YPv)LJZ5msu2?K+#;rmHXKB@R`Ir_K$*+-S> z*P_bx{_8U=xMp>I%EzOga=Gi;7f(>(FW-H)JFGtX=X(Z*t=H-%NzZ2bx8r1i$mA!R zRZe?WJ-yG&prfakH~GmimHFF_T7UBVh8N#|o4&Pa%=DSmE+!@> z#?9dK^&`{UmV=t-jeW~BF0(Q0y8BMfGw$C$k*8Z#ev2^7Sk&6+Je#TJzxYy(_t&HN z^(ON%%(`^j_~h>W(LG{Z-*hK)F;wlnSLPY__i)e@^GR<=#f1-osz_EmynTUgl>wbLVgGx{Eh&zD>Qp;Z=60tR%-fmwvgwx4+MM zuUzw<;ahF`FRA;|3B8YN6Cc^^JG^_6*VnoQf9jXog)V4oI{4l)-mJs9sgT*)fJyWN zGt=5m0p{|LjB|37j~uYuqrEa@zk|;Sj;T|3WE^$UI3nnE;{N`R7q2!Rs5}@UnDC#0 z+u6s1dHF9sM*(Kp1wl9GNpW0pFyLHd@k{664+klZl4%die^k$ZEPBMj-y)Q?gR?Us zTWhKm#}#kZi2_f4xCZjF9Nho+TlAC$8IFeE9?bRml1B~{T3oH^Xk5L)cB&UI%d4A> z69v@2zPRWdx35N1B{4B^Q^7;0{`uZQZ;S92OFO1*g(Y||_u!8P^NzAFw39tplaAG0LRx>m8~*O!$q zw1bv(eEY1`S#1}*qTE}yvkzq%>N8LYpe~BXw$v0x- zIyi4G47xc>isQ;==3Yg=+q+6vzlh$P*8ANN7#1UD@dH^x9pX)6@0!e;qn}ST+0F znp?BDIzOMh`RKB2pj}|xTZ@@SslTp!v(B5U9e!@>Zbh~~4h&Bk_g~{nQjoZRaNWJ* zyd8~^0V{KSd0AdPZK}xIxANVQPT@uQ&(6%0%T{~-M(4QKnN3%>%(-jRXPA9W=VJM< zFPRUcrS8@=C(6k4u{_>mBHu2^^zl&Ik8Dl_wJEK!OUwSx07X{F5!aRdvzZ+iyY;%n z2Lwz|@tqYCJ=w@j=w@irvN!sc*Tr^Aa$Gv%weIbF6;Gkc&(C^aWZ&4ZaN9A}yR{|) zEzvU-FLLH9sP&6-{<~E4xBZO{+Pd?cd@?xdb2pq`|9pOnL?q22<&T# zuI=E-XyJ@#j=l9>^?9pgMq`iO|G2uQoQyurh<00x4%vv#!WGR=D&+ITnWq}^Xm4a@ z-zdG>P|Q@ootNcZ&8`JTM{)}v9hsPZeqQIkK3VIkHQIBQOjx6}`3l!JjTal!m;23i zx&Qh3dDXl-JN8L&X#M!;@WD>ckte3%>ON;_nbwMjx?+nLwEq7h@5IB?c6FBZm%Hqo z1}x=@aa@PELN@%+@$i)SWB;sS%RVRfn6`?Cnrx5QEkc!g4%&8z$0g4?EWUcnj4pKn z{TNq$m$JlwmEC&<^xru1{&{!DVF6o{ra-)eY1Wh%yX*e$`j=V#a^~{&I(oa6oPIrd z`+j5ilM@r4zPh@4QGfBpYd;RS{FmX_QZ>8g>~Ck6CFd_l`YVXNb;+u@&C}87z2TNw zN8@6H+utQR13Gy17V{_t**5R(e|UfDQP~bw{s56OG11L}Y#TGAA01vdDT(*UqU$f- zUbt)H{mAG@Q}H=omMn!GY#&>noSf`kP_W^}>iGTpj_*=2oP4sU=ya;z&#Q4WBlB8S zx~E=BUeCrW)v<5F1Od;PLDA2-r~j={&|ousC|(hrB-46BLnQX2-I*}1Bqt`9E%Jg) zh8K9#yjrpa*nJKh=i_0KPu4l2_ArCjdR0%lfHdo3<$K#Jc7HbGXu9#jM(9>W{)9vU z^_7hWoc90!_xt{h-P{_Q=Sq4XpJC~o$I|)RN956t-Mifjx*y4zzd80)PvGF)yLa!_ zZsgz-J}8-X@9+GtZ!?$OTfb`cN~_rOmiw>1dT_;f{<9sop8x8XvyF1vT>JZ*N%a3& zV!6uAakFxlcuu^Qxo@v-^fr$Sw_YjHUolrcK0f>GvD1X>OB3H!?cgXpY0wg1uvi=LJ!+b^VfGGxg%I-hYe?E(>gvb zN0ZnC%4Vkz^iR-`=(WfwR-Wb@^G*HJ0l&OsRUO~C9XH(FFjGA5fAofg#+I~)hgvh| zX@AY}{kiL*)6}5zR{~^b+tmN7S%0VD#*O2x3v65zrA;)uQ#_{Z;q#4akMKAsYt|le z-etjoltW=2Q|34?dd|&gz`CqbTFCY7LQfktr$tXVHr>_;eys3MgXQ3_M!N~C*XG^b zC8YQC)Ku@!Z(dK`Kh0lC*Ymn`=p{V?o!DI^HzsyimATW zsdSywaMyq5rgg;0c*ZgUYA#WC?vs3P*w$1EkU5_v1+}jiR z95Z z<^@vP23*btoWB*=&OMr@A<{JYM%!IJvG2T%YLOqpXX}5dz0q@6K>C={UYjoNw*7X( zAEj0;Qs`Q2x9_N;N6YzJJI)?^fAsT=HvWrjxfhwaCkTl!eP7NKR`s;?$E(%r+hYID z*N@+4az0G^UgW*ZO-3^R_WNbdJ3rUD{Kj3L^?N>@zs$Wiai%}FBV)&*h__Ssd+iPs z4AX3lpK34fe@N@S_J5{*a<`6XZ@^uC{L*M*?u?I{3w?FkAK}J=P zQ%dPQ0j zc0ba-(RSfka)*<@IM+d|r?L`P3pp2sI2u|N97)*tsC&by+8YdkuNn(ZCU3aAN!I5Q z_o5GLlEM#0Hox3e#CG)O?*#%o%u@>l9`Qc(7qF@QwZ-P&kH?ww&VG-P&AguT_y39S zId4tQ7yepMz_svcXNTN|`{}I<6uwFPdHTiRl6PIlA^9D`%U-Vdlb+rd%J=H|)zFuV zZLAgB9T{J>T}`}ZQ_|pRq*cGiSviKI?wG8e%)+&n#}{rq`2O{-Htl!iP9obBV%%Q2 zv-M1t{H+x5&&pv+)r z`0dj#XRGth=R=Qh_(FjzrdOD1b8?iUn7UVduPkqv8`EEWZhut>f4iKUjLFTVR#(r( zy*ns9qutibzxxgEMgzq|tq)jdq_MgrYF#?*({U(a#xu*KBFD>WdV3Z+|2`${Hd#jI z_8qyT#O2SfA3Q4U)Xm;{V6IcaMP_}c)6pFLGL}mGHXj^jrOVe@Y`;>S`0M`1`G@bV zs(5ih@pQDPtx;;h!B(dSqF)oI?mgw|zWqSnG6$U+p@X^8ekM#kuD~_-fr(_|q%|k{ z^Lz8+OX4`b-PF;Ws>pR)r|WU$Q=59FHz__dHmkBN7JPSTY7p5TDtmR5zTFpYgd zeiz=e6inH!AeNTh7B;o}h+Wr%M_b(=gcU6iiCSzw?IFvN1D`m=n${<%M;5r5nwC7B z5_rEe(SE5R=h}}JTYj=F3SjapI&{z@O0?rpmBq<$N5v2Sr!=1W@bIvzN%glkoVMpI zVr{f{m%W{Ifk)a*=gZ9-GmSd-byxW9)bJ7EOIpW#d#dx_Sv`eyoD-`mO4*gBMhD8y zPmt?#Qc6f>;dYFDkz6+`#mh={tE|gIXBTU3-eoVISrtenE$n`4?AdUyVAAuy@f=OA zty-?#VpFF~5#jW0X5+o`zo(5?y3Kak4wp_L#q-BrEOPq3bP=P;OTLdCAx|$<9p<=m zzd$-@(TC~JV_!6ddbI9H2xj3vxOiRNQ;wMaf|vY(8oe3MC63hcxfOmnZZo}ovdx?S zP69dBA+t@hr?sU0{PgtI`SlSSot%t|pPjkzJgNBh!rws`Q$jcJe(^Y!=W9R^;kG=$ZGiUXg=O zEogP*=4CD3Q?){M?4vg(xpGdIGQD&sU!a;@c<1|c>EaoO733x{_=;tT-?sd5`tyul z*0REk)%Rz=-{~}gwd^w2q6y3oH#x*hEuIyvC}+g^aMOuI#mj1P(?Mahxcln0wbAMe zXBwq;J$=5+Z?4wDn>z}Vccdr3ev$NjZ}%F5vnlh%n)psF&dF!oxV80-`-~@6XIdHd zX|tRxm?SPM))Xqxnk{fv#la@U=uoPui=y(JXZ|g}u|puH zY4VkV2#ziB5AStks0lt&R2I#F<5`U%KN?F<8JP+-`|pUpn);` z&zS>_%!lQI&s;n)Pmd+z$;0N(W6mPml=zlOa($dId%@YV*~@?MhQ;aDFmI`peH37{ zEx}^fVyUVhD+EHyBRIAcKPW%`W6D8(j_EH0qnZngpIjGUXt?J_iG3X2|fAo@v+b>f4iS5XE)EU`?a#=*^`r#C(W4g;-}Mr^{!_9 z_fri{B-mHY@&3N7o@4#e1^+fkJYF0gJ?q?D?YT#{Ypj{W{a(_z)nR}CKIKJoYoFO~ zTk+htgXz4bmu|dR(*qr*=XSr}7;~QO6jpB$-1oWImw04)6 z{q(BP{{_y@!J3n22o|j=9Q2%!0$Aa%KB(zvU6}h+*%_9q$eT*;u41Bn5Ih#wO z+?*%EG0+J}NLs<7)h;^H0Qv!CJB*CFdA_Mr*q0ezRK_yCpZw_NkC63&(#hHMaby;_^^;#uM|asou{tnL1}WIh-i!IAk#68Q&b= zbitQJHJ#HZT>MdDry%N@sGjdoz+u0@EYGYqa<>iZjN40Z^EGdn^k2_@kIBufAK!J` z7v9{SKi^@a?ZwSOHyI0;hjTS5O};Yy?u?~^E+@A*98Hd~`mX%N)%4DT2O>K+3vkDN zG;?{#nK4;#<*&z8S5J04HH_f6CB3I&^{y?8)6@^8EOyvp*>4*Q$cr{TpYZCC*CU-DM-#GRoHL5{ z9`x)Gzi{yAW|3)$x2e8c)oE3dR=(mE`blDi=J295;*JuXEA2M;@sxRqk^w`>?M~vxjScHNo z^91RKpLpD)|JnKYq+fZqUSO&HM>C;IKlgn-uG+p_q%DoZ<)y$Xtz}VePIvTK92F~$ zi0k{WiQ4M5=8*9}4dw^W{{_m6H8lx{>peT!;w#`>pCp`?tXHOV^JlB>su%fsSG1o7 zd3w7EA6aUADL~Fz!7z@aNP#oy1xHwt*|b}G7GB7jSXeoGdzjpjqBF;YWZEUX0^>64 z?9Vy#Jh-PD4grskB6+cmUs$p^m=@(_iqqKSc-z34vSj(X8&f- zc}G<}ru^-CQ!q(XpuNsnZN{>-4^Qt_pS4(U*CYKOqD-7zjgNl6?khf(yU^ZgUDLb^ z&zw7cH#t2xrs%r1c9T+k+53CC;ivBHt!{0dR3|B0arJoX0v;DlexFMcD<^2|>@g~s z^-iF@%~E2a1$&{A220n%{PL{^5hr#r3AtwToX&F7`JAZ8QS^Ln`LhSCrRVtdFZs>2 zIyv>y#$@;XJ$!SXKDXXo&&_!8f8u!g#z3Emm}g%=fO z2fIdYRNz`{Uw$A@?$G*w+AIgZ9j>kjj4k<|D)Hd?52j%G^56RfBxIe8xXOZD{!cR9 zBwi`-vW9PCCf}TAjU4r^*Z5}!*rjnZDqeq-y=0d`>{q=98buwo8H`9Z+C3IK>N7|%6C}IgP4*oOLw@u zI}+5v?3uyk)a3MGeaI0r50*79c`jP#T?@7(FrRXiuPwCXFHF$xdJq!8amRkA!9?*e zqa&gRUmRF^JAeP*gFNq+aZJ*gNK}&XY@Gqzg1F6uXRa@PGjgS#gm5&Ej(RSG*ild6#o_yyLlsPR?o>5Z52BvHc2$v z=k$b~agjZ8aP6J`x*xJh3CdB5%0?4vJ-pl*Svn7B927rz`nKu(ln$3Bo2Kv&;yTCp z{&cClIbPM{rY_{XGjQ9y}5qXzCWj#1LO5{bYyNYBrGbIeQ}75 z;c-H@?zRZild|-k*vPEPsF#vr^w(Gmq9Hf zaKqK_$ECGTde`3G>dDM-`1#4zuLQdrZ7!DHb;}K6Jn&)a7vX)XAFn;+>$%3zFm?5- zFZ=Y>Ua}lg3FkSVk#V1yVbYuX-;b&6so1cJFPGuKdbxxxd7*bL&V}pxY+Ay|Q2*v) z)2gbn9y!s9g{%59>-iWABzUg*6lI3injPY9^k4nz(af1MuSzp~*uG7D-Sj72`}*B7 z6hC<0-?Zx14n~ImKg5oHUj3^1X@%m4!uyw2y}GrZox#KCYWb^AC3TLIZvXasxhwC& zzi0-BNxrLIt=Y%^zrFPUb8UJ>6a&Mw_1C4&gk62;IqjS6$NZRSJ65fGWu54+SDvJiH$f6BDz% eSBr)-LqDWaU0*i-h>V;8vc%KX&t;ucLK6TMo0c2^ diff --git a/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_background_minimal.xml b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_background_minimal.xml new file mode 100644 index 000000000..ab5fb737e --- /dev/null +++ b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_background_minimal.xml @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_background_rounded.xml b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_background_rounded.xml new file mode 100644 index 000000000..ab5fb737e --- /dev/null +++ b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_background_rounded.xml @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_background_scaled.xml b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_background_scaled.xml new file mode 100644 index 000000000..6098eed22 --- /dev/null +++ b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_background_scaled.xml @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_foreground_minimal.xml b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_foreground_minimal.xml new file mode 100644 index 000000000..41345de3a --- /dev/null +++ b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_foreground_minimal.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + diff --git a/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_foreground_rounded.xml b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_foreground_rounded.xml new file mode 100644 index 000000000..2864f3769 --- /dev/null +++ b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_foreground_rounded.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_foreground_scaled.xml b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_foreground_scaled.xml new file mode 100644 index 000000000..0e81a1d35 --- /dev/null +++ b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_foreground_scaled.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + diff --git a/patches/src/main/resources/custom-branding/youtube/drawable/adaptive_monochrome_ic_youtube_launcher.xml b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_monochrome_custom.xml similarity index 90% rename from patches/src/main/resources/custom-branding/youtube/drawable/adaptive_monochrome_ic_youtube_launcher.xml rename to patches/src/main/resources/custom-branding/drawable/revanced_adaptive_monochrome_custom.xml index 72cd56f5a..7a6540144 100644 --- a/patches/src/main/resources/custom-branding/youtube/drawable/adaptive_monochrome_ic_youtube_launcher.xml +++ b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_monochrome_custom.xml @@ -3,10 +3,10 @@ android:height="108dp" android:viewportWidth="256" android:viewportHeight="256"> - + diff --git a/patches/src/main/resources/custom-branding/youtube/drawable/ringo2_adaptive_monochrome_ic_youtube_launcher.xml b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_monochrome_minimal.xml similarity index 90% rename from patches/src/main/resources/custom-branding/youtube/drawable/ringo2_adaptive_monochrome_ic_youtube_launcher.xml rename to patches/src/main/resources/custom-branding/drawable/revanced_adaptive_monochrome_minimal.xml index 72cd56f5a..7a6540144 100644 --- a/patches/src/main/resources/custom-branding/youtube/drawable/ringo2_adaptive_monochrome_ic_youtube_launcher.xml +++ b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_monochrome_minimal.xml @@ -3,10 +3,10 @@ android:height="108dp" android:viewportWidth="256" android:viewportHeight="256"> - + diff --git a/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_monochrome_rounded.xml b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_monochrome_rounded.xml new file mode 100644 index 000000000..bcb70d260 --- /dev/null +++ b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_monochrome_rounded.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/patches/src/main/resources/custom-branding/music/drawable/ic_app_icons_themed_youtube_music.xml b/patches/src/main/resources/custom-branding/drawable/revanced_adaptive_monochrome_scaled.xml similarity index 100% rename from patches/src/main/resources/custom-branding/music/drawable/ic_app_icons_themed_youtube_music.xml rename to patches/src/main/resources/custom-branding/drawable/revanced_adaptive_monochrome_scaled.xml diff --git a/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_custom.xml b/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_custom.xml new file mode 100644 index 000000000..3746c061d --- /dev/null +++ b/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_custom.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_minimal.xml b/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_minimal.xml new file mode 100644 index 000000000..f21fbb1f3 --- /dev/null +++ b/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_minimal.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_rounded.xml b/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_rounded.xml new file mode 100644 index 000000000..a5b8aef86 --- /dev/null +++ b/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_rounded.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_scaled.xml b/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_scaled.xml new file mode 100644 index 000000000..f5126df71 --- /dev/null +++ b/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_scaled.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/patches/src/main/resources/custom-branding/mipmap-hdpi/revanced_adaptive_background_custom.png b/patches/src/main/resources/custom-branding/mipmap-hdpi/revanced_adaptive_background_custom.png new file mode 100644 index 0000000000000000000000000000000000000000..1bc5dbe712d02c114b792ac94582307628a3cbd6 GIT binary patch literal 94 zcmeAS@N?(olHy`uVBq!ia0y~yU|0mgj0_A646i!1w=pmFVdQ&MBb@06AzHhX4Qo literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/mipmap-hdpi/revanced_adaptive_foreground_custom.png b/patches/src/main/resources/custom-branding/mipmap-hdpi/revanced_adaptive_foreground_custom.png new file mode 100644 index 0000000000000000000000000000000000000000..c639a3d56111e6ec2c368d780e97281270889f67 GIT binary patch literal 1276 zcmeAS@N?(olHy`uVBq!ia0y~yU|0mg9Bd2>42M36Ni#689QJf^45?szbFh(tfq|i6 z!QYkQE15t{0(i#UYKAiFw@e2Au6;YcHTQN{?(Nv$8mzVzjBzOPq4Thar_Ff0O770Dl zIC7b-u`D(7enR-OZ=aU`SmRv#-f&xEMV}Jm8jURGBgITJ3wEBJXcjDSx9Tlf@Yfs(z8(6+q<%Zbt^`%o%x3*|}Qois=#&)*ese8dniG|IZ8}W|}i!8EPTs|5x`JTMG z|Id{`_4oZ5z z@k_hLJy)I--NuS@kM&rjW|qH*RxakB_CeyyJR`>6GDkMca0)O-E>-CIbuPQ$-NI(J z=aO3HX(t@q<9HRiCUs0)BXWcNql{w|i`0btAF;Kc`z%;FFV6h;v+eHdyY*5sZ54b9 zs!1BF*<1oIR+gSN-&OX#X0eLOPxq@uPeM5tt>}|Dy^AwlVP3CCi-T+zujggW|2O8! ze(s;D@b=xj`jn{Dec!7(p6lc}@}!lvYuFXXt>yO7xV7s*1*hBUCgCoNPp5bSOPqVs zYD#0+&zUFPw_RgiLEKj^-@1);3pK?R z3m+Iwjw_7&qM_$xb2;H?g{5MbpWn)~hcE9c7QT4*#mZU4GT~@N=LW$?mc9Qi*S~5_ zyBD+b#G1zf8Gd1UCV$PIyZ%3@*^zE6bU5}yMn)wAt$w5gtWr?Pftaaz~CBATbwp@qmX)~wgD+yvHsXc* zH|s1-6gV2~w=&@5(eI+VTXRY;PC6YHYxU;Ky*7=uLz}MLYt(3S`*S!qGS2(aKWX0o z_xGm$oZ6rv1`qSH50sAcm>W!-r?FmyHM=W%@&spYbN~WTC{?5f0V${=^NHaYw`9u*sxFJ zy6)BaSKxf$lIGOA1-=ShMmxeHI~EBZnv{CCnOoqz)e<+UHO&=z5As@cPfIZczBydi zkz{aaR_b0>&P&o9)zh|02>E+YWJo-}smtlnN&_8jCDp@v9x~q)EOoS#Lfei!ERP6t zxoj@GD1X(FO-fPe942!UBI~`jCn+A;{Gh+=T?DAyNtm$zt4W!N$F=LaAT9x{P^uA? T{a}G?5lEew u5l7(;&d9c5r(VDNPHb6Mw<&;$VC%@@i5 literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/mipmap-mdpi/revanced_adaptive_foreground_custom.png b/patches/src/main/resources/custom-branding/mipmap-mdpi/revanced_adaptive_foreground_custom.png new file mode 100644 index 0000000000000000000000000000000000000000..9e0ebb944a1e91c0ea8c3e8c03e0ae441d952374 GIT binary patch literal 858 zcmeAS@N?(olHy`uVBq!ia0y~yV8{Vs4mJh`hW@nhvkVN(ik>cxAr*{o4mL6{FfcSM z_`6bkB@>8=glEK7H%xrj@JORBd~2@tid^$m_P5QNZ*9xH4MMkne$Oc~-+8p?+gqPW z)sybu`1~jCp>8|BLQV74#8+jNcg1(l`*%fr_ndW`K1kgvzaOO>#eCnXLjJT;cDl9G z!J8ZAv&#kk|EHH;|LNbl^wm0hj`1h=tu$Y>d0_(kmd$JA-aEew*I}#9{r1jpj z_s{JT7nOdn7RfJSl+~Ec$@=@iKZ_R&Zl!<5 zU3hGg9B)(8oy?sN zUV9dM@poJ8`ZuMEZ!P+`@!3VQfC6DIE%A@*jo*LDn|{8|@qP6D)~JsMfBwyzec5K$ zz8kJT-&CHMx?xr2@^5=rU(c+4AL8xzzC7LkbB5|4)}7M>n*DU78Cj3dRu4W~`1jr3 z|2OKsuae|HE%JYY@PY&jtDQMzHH)VzKHx$qNv@a-Zo1l0G6ARn5DMv~~ zrsbKH1lO`f-KU=&=Fg2_oW~sR^iEx;fosZK4p!w4@7Zl zo|w8pN-LsFS>#Q}va+To>41lu-Y$3`W>TsxlGDvK{pthO6H_;cU2}W6zg;Zl>V*J} zA2&56y4HBj5}ogK_J_=7<<*P$8fI;@-=vjY_=nB)hpe~K>O*=BN^|(}z?0tIk-fAaqp$0}5y#a#4aQRxvmu)L?MpUXO@geCy&rJU6O literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/mipmap-xhdpi/revanced_adaptive_background_custom.png b/patches/src/main/resources/custom-branding/mipmap-xhdpi/revanced_adaptive_background_custom.png new file mode 100644 index 0000000000000000000000000000000000000000..82c15e2b9dcb9b229421fd415f70fa49040be5af GIT binary patch literal 98 zcmeAS@N?(olHy`uVBq!ia0y~yV7LLoj0_A63=5+L92giFG(BA$Ln;{Go>XLHVBlfe r@Lj)FNTG1{-P-4KiqBcXiJfOzjV^C$p7)S59;DgR)z4*}Q$iB}06!nh literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/mipmap-xhdpi/revanced_adaptive_foreground_custom.png b/patches/src/main/resources/custom-branding/mipmap-xhdpi/revanced_adaptive_foreground_custom.png new file mode 100644 index 0000000000000000000000000000000000000000..2119d70cf3923efec77d0e8071cfaf99c9c83f2c GIT binary patch literal 1747 zcmeAS@N?(olHy`uVBq!ia0y~yV7LLo9Bd2>44n$PZy6ZaW_h|ehEy=VIoQa+z`)S3 z;O|QDl}sQe1$f5ZYKEfR=tljh~yxr~jd~ z$zSw%!}Al;7YJ>b^#2yu7p8C9b98p^4w{)-9zI97Un%d~rfRKed@bPv^S?zp*8zAU=J|7qz*4YjrZfBT3r{&BmZt`;QGFs)@R+qbR%H-6b> zRegT%_E*m;L?)Z*@7w(g=r2?j_R8Au0HiEeyv+9x5C&~&h^R~#q!WQ zca<9IT5_5FHXl-B+H$zO)0L-oLENHY zTFq0lfwA>wLqxNk#O+9y0Qvi8!$MpdCbs0V^=<0dx6$qSvD-rZPFdOSBNlV(Fj+9& zaJeCoV6CmCbU^sWzAZUlG%hYl>R+QK;&ylQtbd|2{%Y6sM+XWqmNAP7Z{xXfSn1YL zDcLKkt8ad)5Gl~!eOyX5OYp$E144(UG3|~H6lSzL{(Va7V&|~W;kTz}I3B$AY3hM9 z{*Qm3>0%aqP>`UUDBSo~chMtZ(ekX&RZm;ORHK6&eDlhqcgN~5-QbgOzoGWPLtD?K zVb_nm%{eBzH=p&TsYVA2m}=hr_3gl#?T=R{AMNBQVBFUyc40-y?J{2Pt*Y~1KRI)Y z^Zrq_pgRn;ALi!XToJzN@yb%~?e|6cYqE;>2Fae|I8(v4p?AYQwICTr!Wx5&N7s35mB?!{K}2&6O%N5PCi)d{99M*sMOmJ z**o7UKbm;@SWQXpcUk7*w=8GWa&$NB?-VINkpJUU)PeG+yW@X4|D1RG(ZtJjH7kB^ zJ?HcE!{4lx4lEX&H@t2H6xW2V3!l9H^mnCpQ!{phjt#j7G^c5~G+g_!Zd1ehQ{OFr zedemYc1-!?wfd-a&kN7#gg?$sUFpKILoi;rxaLd2{quHJE95;x7ye)VjA7QJ-3KrA zyjXKX>_G+hj~AVayZ3(&_&@W#tw{sR*`F_FzN@w}mf_A(%-M3TW~mCJ+~MzgE$>xi z6znvYmvd=4HH-NN;+7ynP-#$$EmzI;xcp&Zo z*C8>+-I1$=80`*zUt}3qk@JF8-^MB@+eRt3`r|{z=`)xsIPV{ycFLupxskWUm$}T~ zxN$%4`k!YOEC0AZueKzGx0vBJb1=tk4w(nt44 z{XL<4n9rQOK!4w?X?!jXpFfsvXOXKadb5__)~@Q5eV2VMCxh*W*p!z}EH7H$JDpZP zQ2C=O%1V&&-SP0lpEv`A@7GRib4fqCOlX^+g~|N7m7C^mczJ+tTAoWo_=nmUj(V|* zo0leXY!KftX@l#5b*|srb0>bP0l+XkK$$0}2 literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/mipmap-xxhdpi/revanced_adaptive_background_custom.png b/patches/src/main/resources/custom-branding/mipmap-xxhdpi/revanced_adaptive_background_custom.png new file mode 100644 index 0000000000000000000000000000000000000000..be663ad72749e1e0f5bfe1dc198ad5aa48676266 GIT binary patch literal 108 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 A+5i9m literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/mipmap-xxxhdpi/revanced_adaptive_foreground_custom.png b/patches/src/main/resources/custom-branding/mipmap-xxxhdpi/revanced_adaptive_foreground_custom.png new file mode 100644 index 0000000000000000000000000000000000000000..88f8ebc40bb5c344f5e5df39d23d8f168370b0a5 GIT binary patch literal 3930 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 JWt~$(699j7aZ&&P literal 0 HcmV?d00001 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-hdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-hdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png deleted file mode 100644 index 80c1e2c2bd57fd855597dde7559ec40e0e317b7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98 zcmeAS@N?(olHy`uVBq!ia0y~yU|0mgjLZxS3_omIA{ZDLm;-!5T&1O@r$iOoGB7Ym zdAc};R4~3h$jHmUz;H<6_wsGW*?AZk8s;$bzF}YtoM3W+fq{X+)78&qol`;+00GJu A(f|Me diff --git a/patches/src/main/resources/custom-branding/music/mipmap-hdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-hdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png deleted file mode 100644 index 93c925a28dd7233215f51ffdd0169fdad56ba10b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1447 zcmeAS@N?(olHy`uVBq!ia0y~yU|0mg9Bd2>42M36Ni#68=6Sj}hEy=Vxx~oHpuoVg z@qPTS9>o_8rZ=>96;^HD8h@I0Cs-W~o z?Bj-FeuGI%14SB)H*d?my)Ac3?)O_#x53QYY5%LmrvBNvbN$aa^_As*pLEYZx$ARo z#i~myH%K!@vTnaIcdxuzb;@`3v)AAL+p+WGja&8eRNw7p4Rco5tuWP@M=$ju!wHk^ z)zS93q1CU|*ZQpdv7=PCFu8bwB}1ykkq4WkQuq#wHlEw%e{0|Vf0xacnf&>z^Lm^1 z1A`N5o}KSF_+0(Mr`30(e`fwp)V9yg-?Qb>=5LFSv_7ZukQ z2AgDLp0PJ&U%&gI$%!+Ys)d!U9(?kmU3!ec8g#BsZ|elvUbVspit z)yd~Ywtr#L%`fcuXCR;AckpdlzQ>V<>+LOHjo-caz3mgzH_r)?EU6YQ^&YIcTT`~j z-)PwP_YnJxNiXla?_6k>;rTGS=3k-Q8Cf0O32$9t97@2SqK z7ktA!^KOA%`wRW4j^2H5%6eqN)&@Tb2-XR7UafWh9INis9}C(4@09CnJ|ksu_}wts~Ua{jX2bHUTV zn`HxG;q-JF zrS=N8HH*S1(;Gv7HDzKa+57c8A~?Z0Z` zt@-=ae9TuJk*v3{S!|Q>Q}4nXz0zsln!Z?W z;7#E>w6tux^OCj&s*bOptDWOJ>p3eq=cZ?|^A?3o)!uc)BF2;{#L#{j8SYW zY99!^^j&_j!ZxqddC5<|{XJDbPwzdV7-W=@`QVX!gV0yIb`RG5SBg0FzQ0mcD!V5-` zFTH{tPES4xlI2|RRI=SJA*bq?=yyK8iTfCI=cZo2#JZ&>?2fgCixqQN^BK+^o-gk+ zs5_+T&Iz0pZQ=4uY)eSsu29F*=Bj&}otJbc*q?aQ$i3#?&kfuud ztgTe~DWM4fUuT^+ diff --git a/patches/src/main/resources/custom-branding/music/mipmap-hdpi/ic_launcher_release.png b/patches/src/main/resources/custom-branding/music/mipmap-hdpi/ic_launcher_release.png deleted file mode 100644 index c922a45568fb2c03b137fe2cfb01c43c5d408416..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2876 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 Bvk(9P diff --git a/patches/src/main/resources/custom-branding/music/mipmap-mdpi/ic_launcher_release.png b/patches/src/main/resources/custom-branding/music/mipmap-mdpi/ic_launcher_release.png deleted file mode 100644 index 827bd124b1c75ebc815c52162695359ea3f62579..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1802 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 diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/adaptiveproduct_youtube_music_2024_q4_background_color_108.png deleted file mode 100644 index 200224bed5fcff82941aff3e04cf96b900ee942f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108 zcmeAS@N?(olHy`uVBq!ia0y~yU~~atMrH;EhE$cStqcqd%mF?juF}%dQ=*D(85kH; xJY5_^Dj44$WaMRFU^t}kd%4+h^MpbMWWa8!!N8~}P}Bhu^mO%eS?83{1OPst6#M`H diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png b/patches/src/main/resources/custom-branding/music/mipmap-xxhdpi/adaptiveproduct_youtube_music_2024_q4_foreground_color_108.png deleted file mode 100644 index 9f75c02d024f9a852a1728b0cc4e6a9cfadec31f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3163 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 XRg>uUm7hMafa1;5)z4*}Q$iB}EFCw( diff --git a/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/ic_launcher_release.png b/patches/src/main/resources/custom-branding/music/mipmap-xxxhdpi/ic_launcher_release.png deleted file mode 100644 index 8adc8af1db6431ad75cc7e65db98906629b255d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8744 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 Gp$Pywr0Qq@ diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/adaptiveproduct_youtube_background_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/adaptiveproduct_youtube_background_color_108.png deleted file mode 100644 index 80c1e2c2bd57fd855597dde7559ec40e0e317b7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98 zcmeAS@N?(olHy`uVBq!ia0y~yU|0mgjLZxS3_omIA{ZDLm;-!5T&1O@r$iOoGB7Ym zdAc};R4~3h$jHmUz;H<6_wsGW*?AZk8s;$bzF}YtoM3W+fq{X+)78&qol`;+00GJu A(f|Me diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/adaptiveproduct_youtube_foreground_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/adaptiveproduct_youtube_foreground_color_108.png deleted file mode 100644 index 93c925a28dd7233215f51ffdd0169fdad56ba10b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1447 zcmeAS@N?(olHy`uVBq!ia0y~yU|0mg9Bd2>42M36Ni#68=6Sj}hEy=Vxx~oHpuoVg z@qPTS9>o_8rZ=>96;^HD8h@I0Cs-W~o z?Bj-FeuGI%14SB)H*d?my)Ac3?)O_#x53QYY5%LmrvBNvbN$aa^_As*pLEYZx$ARo z#i~myH%K!@vTnaIcdxuzb;@`3v)AAL+p+WGja&8eRNw7p4Rco5tuWP@M=$ju!wHk^ z)zS93q1CU|*ZQpdv7=PCFu8bwB}1ykkq4WkQuq#wHlEw%e{0|Vf0xacnf&>z^Lm^1 z1A`N5o}KSF_+0(Mr`30(e`fwp)V9yg-?Qb>=5LFSv_7ZukQ z2AgDLp0PJ&U%&gI$%!+Ys)d!U9(?kmU3!ec8g#BsZ|elvUbVspit z)yd~Ywtr#L%`fcuXCR;AckpdlzQ>V<>+LOHjo-caz3mgzH_r)?EU6YQ^&YIcTT`~j z-)PwP_YnJxNiXla?_6k>;rTGS=3k-Q8Cf0O32$9t97@2SqK z7ktA!^KOA%`wRW4j^2H5%6eqN)&@Tb2-XR7UafWh9INis9}C(4@09CnJ|ksu_}wts~Ua{jX2bHUTV zn`HxG;q-JF zrS=N8HH*S1(;Gv7HDzKa+57c8A~?Z0Z` zt@-=ae9TuJk*v3{S!|Q>Q}4nXz0zsln!Z?W z;7#E>w6tux^OCj&s*bOptDWOJ>p3eq=cZ?|^A?3o)!uc)BF2;{#L#{j8SYW zY99!^^j&_j!ZxqddC5<|{XJDbPwzdV7-W=@`QVX!gV0yIb`RG5SBg0FzQ0mcD!V5-` zFTH{tPES4xlI2|RRI=SJA*bq?=yyK8iTfCI=cZo2#JZ&>?2fgCixqQN^BK+^o-gk+ zs5_+T&Iz0pZQ=4uY)eSsu29F*=Bj&}otJbc*q?aQ$i3#?&kfuud ztgTe~DWM4fUuT^+ diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/youtube/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index c922a45568fb2c03b137fe2cfb01c43c5d408416..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2876 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 Bvk(9P diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/youtube/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 827bd124b1c75ebc815c52162695359ea3f62579..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1802 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F4ZLn;{0Mlo+t@f3(X zQ*+zwe0lcmZMkrC=GoKk7rz2eJAMy8(!EY2W$zl7^sj$Xr2eR;FY%eGHC4|4@#UpE zBW8EhYf9{r=dGx!vSMLp|6NsG-OiM;_`P~j$%LsZj{N=mck!P;f3iLl+ay~*7JAJ1 zShB(FmqDB5jBZoTbsRqW^Nl92IFw@c;j?J-nIqb%xuV-9?cLM<>`3eUZnONT`GpUq zo#G|fgd2CNFm8I~ZMg8Vp52lIJRBSz$EDv+H#7V3>sQ^O%U33wZz{9@HsSlV9vklb zb3b&<(m!`^%W{~ugyYuPRKBPQ^4eyHS8|G9kcbz#xg=rFQLhs>8~oGzEJ|5L&I|lL zU{ox~{Y-0OjMdLVPMx4uT zYt78rH8nL-r(^b8*Un2(zqjGor<${~OkaL@c-SQI5DOPK_hPsIA`5$W?wZx&RxiHr z!i4}S`#Kv(x3{;p`d0cssJwXg>{-u(fA7BB^a=I(`uo&W?a2od7Nnn_7kF`z>&hqj zH($C;^T8#TyTtnQ5%q5SyIxt*m6jl{xWAA>Y2WfE>NM{QWZfe?JaiiD;0{J@)eSonWn* z>O!K6R*E(J=aVpKu&e#$!Y^mDz$Eihz_uAaTejQ~xfPUlk-yRKjOT1KUE7);6E>86 zcyMq+s-IicQLjIGad}F*55Hu4Iyx_7sQdHeq%hOOdA8L;9VREPOqez;`ls`i(-HHT zD*fKy+sm1~!OX_y&YB`;&Sz~!UcM_e3{Fnk)9=ut9kaWv_us$Y`CVL{%Mw-7E^gs^ z?Ro5ikg?{Z;|9-veSO_x`uJGy<|lg@SeKnvwfi?|Gt+LJzy$#dol3sHySpQyrGEN} zfcCb~TQ164`Kk#KM}0$dYJCqytc}{rQT+bSPG?qbu`MBudy53RZ(mjQ7UAIGS+X_z zx{$})+uQpWEncjtVbC&5WWJ;A>UT;ExnGVRIdY+qncYA7;69gm>9RO##2-)MB&TQpQ{B-S8r-=FsT<;`f|`|ef)m4GiT@9 z+yBxDebCt5?d>s#DK0MVq0NUYL99v1$)0wRUs%~&gC{mE=5&y*l{U{4nbu@_<%-++ z9~Y8S#JfTkGhA5Y%3bySo$SLFAJ=^F>Xp=y zx%^i&1Vlw$Pq@stuU~d?vHRqh#|wIUnm4WvUmxV+!t(3tjtkCxjUOyn1q9X{P~G~} zI4-9^aKe$(USF2`&!3lfe_yZR9_A;e)6y1d^YQV;73rp&<$4pgn&FPilOJJgqmF(p ze{*Bvh4Pn|R8P$^T`k7-CjDGl(;mJD=Q6WIANY4{$+)P*bW_>APv8!h>E)Hd%QNn(|=JFMamo+*`vOYPXcW4m;GjIEL*)-2OV-V^?adh2DL>bn>L;-Vbs+ z=afD0jNZD#OUZX%?eA$0G8JE6iC$e9?B2avRpdtFp3iSX9oRQWn_fKBTi|S6{LE(# zQ%B>32?Dxz-Pvo(mu}g*mG{V2-+jj-IeyqPNgntb-0k0Q@z>kT%uLaK_YG%d>1|H# zylWbEGy2IoL{Gl_{lkYBY<&-Ytv;`{Z_UexD&HbmSAN#e>pNy=>|~sM&f{q0V}7X} zlhoER>&56!VKi^MH^skO?~PY&g4xlUHW!6_fpv$cK4&OkGB2*{{g}M@Y~U0FhXkg{ z$LAekx0H`L^EcGEHEC6V*ao4d7Ej>|xej%v#T?Ay-gU|cn0~}qxc`sg@L3^mF{P(@ zaz6umaP0Htj%PU<%gxSXnGs z@NB}dS@|8pDWB!0ZkWC)-AlJVt<@piO=tFY_589x4W)w#N*oh9;#0W4C*9ni$p1z( z{(swo@H4Lt|Cqjhk*wu~GK0?NJjF~?H?U4ZLn;{0Mlo+t@f3(X zQ*+zwe0lcmZMkrC=GoKk7rz2eJAMy8(!EY2W$zl7^sj$Xr2eR;FY%eGHC4|4@#UpE zBW8EhYf9{r=dGx!vSMLp|6NsG-OiM;_`P~j$%LsZj{N=mck!P;f3iLl+ay~*7JAJ1 zShB(FmqDB5jBZoTbsRqW^Nl92IFw@c;j?J-nIqb%xuV-9?cLM<>`3eUZnONT`GpUq zo#G|fgd2CNFm8I~ZMg8Vp52lIJRBSz$EDv+H#7V3>sQ^O%U33wZz{9@HsSlV9vklb zb3b&<(m!`^%W{~ugyYuPRKBPQ^4eyHS8|G9kcbz#xg=rFQLhs>8~oGzEJ|5L&I|lL zU{ox~{Y-0OjMdLVPMx4uT zYt78rH8nL-r(^b8*Un2(zqjGor<${~OkaL@c-SQI5DOPK_hPsIA`5$W?wZx&RxiHr z!i4}S`#Kv(x3{;p`d0cssJwXg>{-u(fA7BB^a=I(`uo&W?a2od7Nnn_7kF`z>&hqj zH($C;^T8#TyTtnQ5%q5SyIxt*m6jl{xWAA>Y2WfE>NM{QWZfe?JaiiD;0{J@)eSonWn* z>O!K6R*E(J=aVpKu&e#$!Y^mDz$Eihz_uAaTejQ~xfPUlk-yRKjOT1KUE7);6E>86 zcyMq+s-IicQLjIGad}F*55Hu4Iyx_7sQdHeq%hOOdA8L;9VREPOqez;`ls`i(-HHT zD*fKy+sm1~!OX_y&YB`;&Sz~!UcM_e3{Fnk)9=ut9kaWv_us$Y`CVL{%Mw-7E^gs^ z?Ro5ikg?{Z;|9-veSO_x`uJGy<|lg@SeKnvwfi?|Gt+LJzy$#dol3sHySpQyrGEN} zfcCb~TQ164`Kk#KM}0$dYJCqytc}{rQT+bSPG?qbu`MBudy53RZ(mjQ7UAIGS+X_z zx{$})+uQpWEncjtVbC&5WWJ;A>UT;ExnGVRIdY+qncYA7;69gm>9RO##2-)MB&TQpQ{B-S8r-=FsT<;`f|`|ef)m4GiT@9 z+yBxDebCt5?d>s#DK0MVq0NUYL99v1$)0wRUs%~&gC{mE=5&y*l{U{4nbu@_<%-++ z9~Y8S#JfTkGhA5Y%3bySo$SLFAJ=^F>Xp=y zx%^i&1Vlw$Pq@stuU~d?vHRqh#|wIUnm4WvUmxV+!t(3tjtkCxjUOyn1q9X{P~G~} zI4-9^aKe$(USF2`&!3lfe_yZR9_A;e)6y1d^YQV;73rp&<$4pgn&FPilOJJgqmF(p ze{*Bvh4Pn|R8P$^T`k7-CjDGl(;mJD=Q6WIANY4{$+)P*bW_>APv8!h>E)Hd%QNn(|=JFMamo+*`vOYPXcW4m;GjIEL*)-2OV-V^?adh2DL>bn>L;-Vbs+ z=afD0jNZD#OUZX%?eA$0G8JE6iC$e9?B2avRpdtFp3iSX9oRQWn_fKBTi|S6{LE(# zQ%B>32?Dxz-Pvo(mu}g*mG{V2-+jj-IeyqPNgntb-0k0Q@z>kT%uLaK_YG%d>1|H# zylWbEGy2IoL{Gl_{lkYBY<&-Ytv;`{Z_UexD&HbmSAN#e>pNy=>|~sM&f{q0V}7X} zlhoER>&56!VKi^MH^skO?~PY&g4xlUHW!6_fpv$cK4&OkGB2*{{g}M@Y~U0FhXkg{ z$LAekx0H`L^EcGEHEC6V*ao4d7Ej>|xej%v#T?Ay-gU|cn0~}qxc`sg@L3^mF{P(@ zaz6umaP0Htj%PU<%gxSXnGs z@NB}dS@|8pDWB!0ZkWC)-AlJVt<@piO=tFY_589x4W)w#N*oh9;#0W4C*9ni$p1z( z{(swo@H4Lt|Cqjhk*wu~GK0?NJjF~?H?U44n$PZy6Zar+d0MhEy=Vxva>@z`(<@ z@O}KRX-RyJEMXs6!Wf$x6B-f}BskbO*l;jGN)#kON}8}TacYE^j9VkvIGE+f@7Xe( z+*%sQu_O@JW$s^lxlh3^SeC>0{b=%$5YPM&$uG+Vu{OeBZ zt&ggYJ9D``O*B}tsy?|*WJRt?@z1jd7f!z~QzA5_d+v@u*A@tzExp<%Vz9ctSd`7V zGX3pz*2V7~rtiD9-aheF+{-)B&YK)|cD}iPKBXYG)^Yl^bGP)l-8MT+FIf@!_gVZXf>SxU=&QcRt_hv{GMFMcI;>FV_6sl<>vW8`>uJL3V2FRwpg9JW616H z*RktlRoeFZE9QUy(HpjI%k}&({%qHU7=nITR`1u5xXY1tA$984GZR+`if-R7QOz=? zTju_cV+&5PUEd^CvhjfKx*LYvZl4`bIbSoL9o55s<4)3^qE_91kA2v#7ub8ue7*|g zQXvn?e3R|x>YXlG{qH^YUr$QlR?XsH_uJA3{lWwxz zAmP|_Zl?5AlT2T8pPhN1T{HJ?>V6#w)3%rksq#~{&6A#Du;R{}2a(n3>}P{ipB(rT z{w&nQx%^2E#CR@V0WIJ_$CGZDa}v%`Qs{P zKkM1v$XXKlaNY0JgC|&m*j}f(x9PoNJf(O@tW^A*1RfoLG3D!xznc>dR3ELoa+Z%L{@cBV4XLkg z>C}c>-1h%=|G1mZjOtCL=^r%je%4i+tv3Co@Vp(OA%<^rewHkH7rvmVfT`qU%dL4E zlEr#{HBB+Nn{&P6$no9oD$x$2q5Uh4EN?Y#ZJuH`Z&SQjPacEui%p)h-b>6g+8XTA zrL{=Y?A#W)l8py^=WR(A>v`5NMSTlvcf`#-u}@C<1eBf16Q1|S{-KV4)0CU@w#AF} z%wyLKUix#|#nrdA^+c_GBeZi_Z|`OwX3g`JxBo>N+|v$Y_}U znC7s?URuzWCueW9bYI8K9iL9m=sgwi<(O$j@0Zp7raQQH&1v_VwY{!VLl(Vh8XXT-O%XvTMcX1L!lW!fEM?q{oW{%&6;9N;%YpZmDObeW73 zwwn|7<*;~g3ZyYRo+@}Zo%M5Rc>`-nr0SVWWxJZLd z@4x-~$Yw13rkaOwV?xSnM$?}c)?9c!+hN{c{!5BtJ$9^`$y|HOd@jndy6Z@Uwuek8 z5^(U*3VCi9X)sByIQCD;W4TC!Np=Cwh065~oJj{cmN^$1_x_%|G2x4dh`E1Jy^h4q zZE`Iq)NV`&G5M+>oukSw zRS>TuA$nI~!_>w@dm17PR&icdbpNb<-NcUT_x5iuBN!MM7!oGz|Eg0~+A<*lQjrm^ zvdWkaIv6+@2=K5lvoPaeG8_ac04X_$m5Ea$#AFT;&6T%}Cm1?|TM`Oq%E5Jz3$+GJE2#9%zxQ+B6ZgpfoDuQ zhZw8R>%4m7Gu`q~P=l+|#r*E#^e=rX;`7=wTQ+crN-Nj?`qFt}0pq%L>q28=Vty%$Df20;Q=F%0r(~zR zkL!odoocN;#STA~*{%3&DK`DHP4|y2D;^ZMOt9Em;1(cXe{`kSghGpxXI=_TUlf<| zHR5%Iv}n}kx(}F`SZogbe{Epvv3!St)S1Y4Tefd6cTf#8ZsobebEIg)7Z#?l z$$D$djy&U>yDuYAPgncPYlno1qU{RPermov@>T{}3hDHts0G4XJo zw(;x_F^wldYC7laB3X`>c9cfCSsmw64@gWB*6QiA)oJHy_`w{ff2B14)|Sj*W9cIq zPqMe(GSRq_$+F^p*fF2mT7PQUUN@Ec^s;!1{nR+2`8C*Yji=}G%MX@r6V|zr-_v$C z>9M+r`h)j-Gq|<4?ouvp&P(t7m8o8~Ou6JxQS-YKF&|$nFD(n3A++M-QSRCYFJ4&8 zxao1RkDc2;GccWjQ)Z2^Qb@=u<4qwQI48CUk;KG|>Y@AF4* z%V~Ucw7cEv_)*cc=h>XnC9#Q%*Ui>Zh;o^nVQhC~a>ZmG74PGHvZ?Z{5_>k^+*dJ$ zOJ7V_SEyRQ{LB9O|8oES{9Jte++6Fg=Ra4ZwLBMnuGw_QWA?|Jd#laWnNO+wzQYjw zon40YUz6`zrMbT|i(NZ8uixEWZuyj%nOV_$nvTQyE$iMDY_xudjbCi=VY*Utd?~wxj;P-Cc3FMz&?Is}8lUI-PpZB$odI*TwnT;d&K+ei$DA z{p#xK3Ciw#N1w4;aJ_QdA~u85;5h$uZOhklZ7Pj4&o8Y0{_fXvtNnWlBo=>9**f*& zp@pZqCx*${-u?IYxAaF@^Sn7po0Au+#vZ?9rKt4sxFDxZc+tULB|{aJ7ULs7KR@5O zZAqDHNYnzCFUEfaFJ17yv;Cr%-?{9Q|kAD0U)bmxZU$J#U!BU>#WEaoiD zSnfCX!R_t&Rdq+IkM&4~h>OI}JCL_R@a8mYHT{c!1Afh1c&w;+Yu44CT@zz>mleLh zayn3a+m$;U(b>6uB4&@xw-#S{lp$+bbY#WvRS_E(Md&TvwXpTggQ$w#v0*>5N({ z7PdC(=*I;iR~9%jo0{h|ZQx50?AkDO3G;@c@WA5Z+S%9E6ui4*dCtOro=syDD|egJ zg|p07qVimyU%l%TxF!0w|Kj?q_3=9j5-YyG5sG$Gz9I3j(1}Mmwy)Q07P=+VefH}& zZ~KyYyC2`@-0^eK_6?Kzyh9?d$3DOGxBlPH3IBNg@n5)eBym5BB)z_;^8b`mREOIrs)!+Z8D0r*0$N{e> z*R%JqOgJJk>m9Rwv%XkvM>fyHIptyMb^cdg zUXLm6eV1y?dAMT2$wzCyN=i!lF8XwrsiEZ6g^a}~S8abjuln3lv$)EqqUCnmx7^$* zcJ8L>^}me_ag$&F5Rb2Uxa-_ue)}`YYT*aep0M58EyBR)zxLi1hK#ueZi|Jsm%I#G zzG>5?@20nI-<~^FJ6tU$`Qf3~qB}bntXlH7GX#W%=en?FR(w1vJ~wuE+0m1a_Z_gX zYkhor$s=$#ydH=Gt`V^7M@FJ)2>zVR<$oOKm8OBFI%%} z?B2Pmo)dCU30^MzcvSqd^tIFBGfsT8Y44l<&O7Jcp2(HfMr>CFwXc{bew~~1QlV}G zFVljZE3UsQNZ$LXOWWrB&bQlc&j|Ilcz#^IzQoVsAxkuifs@TcmB!a=)eLnepU+vz zoVv1OAJ@KLue8s9+jU@D-d(T!8`G)+-JJKcAJ2@-PxNF}`p{-Q)j;dv45r5pbG}xw zN@rVs-F8Mk;O>gt^s}>;M*6WS*aR_bFp5_>9>*#9Pr}LVjoWNF$Et^|;xQM`gvZxT zJ+f-qa_xiXlUBRS*IvoEztzZ5;$=v?{A|o(*vGx+vubxCnoAVO1jpwIo9@Alm5B7 zY!-!|5Asi}Ex7Ylp6y7pp_t&!FE$e9$+IT!sy%<>Ujrj^MwQwd!TEK+G!I|AW@GO5 zx8LEp@)NPYT&3YNMEi~=g-*ETG&_tjv@gQ)-h`yp-uip5Xnkew-J~MaX)-a|o^_X_ zg8aXR(EcSxn#Or|cI2@d)ch!TylnZmIve(BPv6(v^4{_Gn?6H|6Yt%$+sP~aZNE-Q z%F3Fs;^o}(dndPrt(0$BAg{E%j&*|0IVZ!g#(xcMfh8p+8)A+IGw5tvwRY{+XPKT2 z_ulgqL~73YRTtLN`+4E+e`&Y9E#s=+n))-^{QYt{Z10ig&GNIJ_!eo-`Sp*R;U$Ov z_J>NxJ~LNs>o$~|Tl4SOoK2~--=7N5D3RLvWoezsave6APTnWAvsn)CP7Cy}JTvt{ z{bzHz%_qMtfBBQuQf2zT`_c<7QzKZ_6Ghi-@Z@N*dEuLJ&@wyizt)+5#z%j0y?q}Y zbg5zSL%01*oxcPe>_zVW*W0PwF1Pvq_qYkN94uJ{7hm4}#rpS#ZsGjMl`B{JJ~`L^ z?)z4*z9zeBk1)soUN3IF>{7oc>tZ{9+JWd_2P@J8x;!>XO#18E^57fyuZ_`r?lC^` zvhcQy$UoD?&>9i8cEX1{b)icfb_iTGwpUes>Qb~c%8vc9zGvCz$KEO- zbjG2C9S_Belq|Br2M-)fmgiV_7-zGnKKh5X5K|$d12wTtge|Il#l4sz( zQ2YN?veS*#5jOvyO3Rt-t-oRCJC$ALJf8!{|FA297iX9LlT)l$Id)G?=85b(|G2-d zH>dbBNL^fbaBod=n0d^qxnh#mmIj|%Rqq)ntlXxwKyGTh{if!kPonA~_?f7!@o{w4cEF!NO9g~TDdqb&(=jIfxiS8DxyFQic-TuLLSNPr@?b;sp zYb)OWpRy)wX^-w@txsRqCou;;kXRtH!uiD`%`*#L-eU88v-RxCAoD1-%Nr-n7nI%~ za!lkcXZ&M7CZ|n~qRgQjk4h8N_VU{9n$vvw%}d*5rF){B4%r#aJY=`|y-^#J!jtWtmnxE^AlZlgdH>Ff7sZ}-+a~n&dGfn{9oLDz9M0FfZ45}m({b@ zY8_wi#ibb*WEsHjIETIa5id_w*BilId)FqtcMQ~Ja(%(~{;ZwC%`a-dN*Y(pE;@RO z^XB@ZKh@^~7cfXiP2|}mc6twQXmWq@v%hUi_dAHUsZF`NXcNn(NTyr)OlSXyUUEHq z=DBTU{+ETZX*D~)tYzqs6FYzHz`Y4l;w=#(OC3x-R;05s237hWT>MW;;_xaaj+TpV zLhf(6^ZF_nK*`E5EpQd|z?@eQQ%khi$EiK)k4_3R_02-o7cu zBCB4B3VdfakePPUVuGb~Rx;~YSEAP zF12@5K05nW(9!e$)04}>bvk>w6j$>dF=aUGV4YiJ^QK16^Jvb#IiTz*V?8x@NiOsG zso5bXOuL`TRTiCJz$lx)RAG|Kb2eAr6wji^5`p}#PH`*G+~aaw+QelUrj^_MbP0l+XkKocrHE diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/ic_launcher_round.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index 8fb88d36762582d219d994be40074203324784d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4077 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 diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/adaptiveproduct_youtube_background_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/adaptiveproduct_youtube_background_color_108.png deleted file mode 100644 index 200224bed5fcff82941aff3e04cf96b900ee942f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108 zcmeAS@N?(olHy`uVBq!ia0y~yU~~atMrH;EhE$cStqcqd%mF?juF}%dQ=*D(85kH; xJY5_^Dj44$WaMRFU^t}kd%4+h^MpbMWWa8!!N8~}P}Bhu^mO%eS?83{1OPst6#M`H diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/adaptiveproduct_youtube_foreground_color_108.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxhdpi/adaptiveproduct_youtube_foreground_color_108.png deleted file mode 100644 index 9f75c02d024f9a852a1728b0cc4e6a9cfadec31f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3163 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 XRg>uUm7hMafa1;5)z4*}Q$iB}EFCw( diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/ic_launcher.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 8adc8af1db6431ad75cc7e65db98906629b255d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8744 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 Gp$Pywr0Qq@ diff --git a/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/ic_launcher_round.png b/patches/src/main/resources/custom-branding/youtube/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index 8adc8af1db6431ad75cc7e65db98906629b255d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8744 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 Gp$Pywr0Qq@ From 19dcbd8efb4d759776430374b4e43c05506e1dda Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 7 Oct 2025 19:25:25 +0000 Subject: [PATCH 57/63] chore: Release v5.42.0-dev.18 [skip ci] # [5.42.0-dev.18](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.17...v5.42.0-dev.18) (2025-10-07) ### Features * **Custom branding:** Add in-app settings to change icon and name ([#6059](https://github.com/ReVanced/revanced-patches/issues/6059)) ([a50f3b5](https://github.com/ReVanced/revanced-patches/commit/a50f3b5177808f07d84041c946caccb5a08ad387)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0a4a5742..47b669372 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.18](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.17...v5.42.0-dev.18) (2025-10-07) + + +### Features + +* **Custom branding:** Add in-app settings to change icon and name ([#6059](https://github.com/ReVanced/revanced-patches/issues/6059)) ([a50f3b5](https://github.com/ReVanced/revanced-patches/commit/a50f3b5177808f07d84041c946caccb5a08ad387)) + # [5.42.0-dev.17](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.16...v5.42.0-dev.17) (2025-10-07) diff --git a/gradle.properties b/gradle.properties index f85091c92..7608a7717 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.42.0-dev.17 +version = 5.42.0-dev.18 From 104d096ada75096c2d1635831e6adec128190187 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Tue, 7 Oct 2025 23:53:51 +0400 Subject: [PATCH 58/63] chore: Change brand name to untranslatable --- patches/src/main/resources/addresources/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index 1b464b382..b7b5e82b3 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -25,7 +25,7 @@ Second \"item\" text" Custom App icon Original - ReVanced + ReVanced ReVanced minimal ReVanced scaled From 60a581a6324ceeb5a105442ac26ea4bfaab69834 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 8 Oct 2025 00:30:56 +0400 Subject: [PATCH 59/63] chore: Sync translations (#6077) --- .../addresources/values-af-rZA/strings.xml | 11 ++++++- .../addresources/values-am-rET/strings.xml | 11 ++++++- .../addresources/values-ar-rSA/strings.xml | 18 ++++++++++- .../addresources/values-as-rIN/strings.xml | 11 ++++++- .../addresources/values-az-rAZ/strings.xml | 18 ++++++++++- .../addresources/values-be-rBY/strings.xml | 18 ++++++++++- .../addresources/values-bg-rBG/strings.xml | 18 ++++++++++- .../addresources/values-bn-rBD/strings.xml | 18 ++++++++++- .../addresources/values-bs-rBA/strings.xml | 11 ++++++- .../addresources/values-ca-rES/strings.xml | 11 ++++++- .../addresources/values-cs-rCZ/strings.xml | 18 ++++++++++- .../addresources/values-da-rDK/strings.xml | 18 ++++++++++- .../addresources/values-de-rDE/strings.xml | 18 ++++++++++- .../addresources/values-el-rGR/strings.xml | 30 ++++++++++++++----- .../addresources/values-es-rES/strings.xml | 18 ++++++++++- .../addresources/values-et-rEE/strings.xml | 18 ++++++++++- .../addresources/values-eu-rES/strings.xml | 11 ++++++- .../addresources/values-fa-rIR/strings.xml | 11 ++++++- .../addresources/values-fi-rFI/strings.xml | 18 ++++++++++- .../addresources/values-fil-rPH/strings.xml | 18 ++++++++++- .../addresources/values-fr-rFR/strings.xml | 18 ++++++++++- .../addresources/values-ga-rIE/strings.xml | 18 ++++++++++- .../addresources/values-gl-rES/strings.xml | 11 ++++++- .../addresources/values-gu-rIN/strings.xml | 11 ++++++- .../addresources/values-hi-rIN/strings.xml | 11 ++++++- .../addresources/values-hr-rHR/strings.xml | 11 ++++++- .../addresources/values-hu-rHU/strings.xml | 18 ++++++++++- .../addresources/values-hy-rAM/strings.xml | 18 ++++++++++- .../addresources/values-in-rID/strings.xml | 18 ++++++++++- .../addresources/values-is-rIS/strings.xml | 11 ++++++- .../addresources/values-it-rIT/strings.xml | 18 ++++++++++- .../addresources/values-iw-rIL/strings.xml | 18 ++++++++++- .../addresources/values-ja-rJP/strings.xml | 18 ++++++++++- .../addresources/values-ka-rGE/strings.xml | 11 ++++++- .../addresources/values-kk-rKZ/strings.xml | 11 ++++++- .../addresources/values-km-rKH/strings.xml | 11 ++++++- .../addresources/values-kn-rIN/strings.xml | 11 ++++++- .../addresources/values-ko-rKR/strings.xml | 30 ++++++++++++++----- .../addresources/values-ky-rKG/strings.xml | 11 ++++++- .../addresources/values-lo-rLA/strings.xml | 11 ++++++- .../addresources/values-lt-rLT/strings.xml | 18 ++++++++++- .../addresources/values-lv-rLV/strings.xml | 18 ++++++++++- .../addresources/values-mk-rMK/strings.xml | 11 ++++++- .../addresources/values-ml-rIN/strings.xml | 11 ++++++- .../addresources/values-mn-rMN/strings.xml | 11 ++++++- .../addresources/values-mr-rIN/strings.xml | 11 ++++++- .../addresources/values-ms-rMY/strings.xml | 11 ++++++- .../addresources/values-my-rMM/strings.xml | 11 ++++++- .../addresources/values-nb-rNO/strings.xml | 11 ++++++- .../addresources/values-ne-rIN/strings.xml | 11 ++++++- .../addresources/values-nl-rNL/strings.xml | 18 ++++++++++- .../addresources/values-or-rIN/strings.xml | 11 ++++++- .../addresources/values-pa-rIN/strings.xml | 11 ++++++- .../addresources/values-pl-rPL/strings.xml | 18 ++++++++++- .../addresources/values-pt-rBR/strings.xml | 18 ++++++++++- .../addresources/values-pt-rPT/strings.xml | 18 ++++++++++- .../addresources/values-ro-rRO/strings.xml | 18 ++++++++++- .../addresources/values-ru-rRU/strings.xml | 18 ++++++++++- .../addresources/values-si-rLK/strings.xml | 11 ++++++- .../addresources/values-sk-rSK/strings.xml | 18 ++++++++++- .../addresources/values-sl-rSI/strings.xml | 18 ++++++++++- .../addresources/values-sq-rAL/strings.xml | 18 ++++++++++- .../addresources/values-sr-rCS/strings.xml | 18 ++++++++++- .../addresources/values-sr-rSP/strings.xml | 18 ++++++++++- .../addresources/values-sv-rSE/strings.xml | 18 ++++++++++- .../addresources/values-sw-rKE/strings.xml | 11 ++++++- .../addresources/values-ta-rIN/strings.xml | 11 ++++++- .../addresources/values-te-rIN/strings.xml | 11 ++++++- .../addresources/values-th-rTH/strings.xml | 18 ++++++++++- .../addresources/values-tr-rTR/strings.xml | 18 ++++++++++- .../addresources/values-uk-rUA/strings.xml | 28 +++++++++++++---- .../addresources/values-ur-rIN/strings.xml | 11 ++++++- .../addresources/values-uz-rUZ/strings.xml | 11 ++++++- .../addresources/values-vi-rVN/strings.xml | 18 ++++++++++- .../addresources/values-zh-rCN/strings.xml | 18 ++++++++++- .../addresources/values-zh-rTW/strings.xml | 18 ++++++++++- .../addresources/values-zu-rZA/strings.xml | 11 ++++++- 77 files changed, 1081 insertions(+), 94 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-af-rZA/strings.xml +++ b/patches/src/main/resources/addresources/values-af-rZA/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text"
+ + 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-am-rET/strings.xml +++ b/patches/src/main/resources/addresources/values-am-rET/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 e05f29d23..0c3f90536 100644 --- a/patches/src/main/resources/addresources/values-ar-rSA/strings.xml +++ b/patches/src/main/resources/addresources/values-ar-rSA/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + اسم التطبيق + + مخصص + أيقونة التطبيق + أصلي + + ReVanced minimal + ReVanced مصغر + + مخصص + فشلت عمليات التحقق فتح الموقع الرسمي @@ -1410,11 +1422,13 @@ Second \"item\" text" لون تمييز شريط التقدم لون شريط التقدم غير صالح + + علامة الشعار الافتراضي القياسي - + ReVanced minimal مخصص @@ -1631,6 +1645,8 @@ Second \"item\" text" + + لمحة الإعلانات 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 5d97c0fd2..4d907660b 100644 --- a/patches/src/main/resources/addresources/values-as-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-as-rIN/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -204,8 +209,10 @@ Second \"item\" text" + + - + @@ -255,6 +262,8 @@ Second \"item\" text" + + 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 f5362e7e3..e6623adce 100644 --- a/patches/src/main/resources/addresources/values-az-rAZ/strings.xml +++ b/patches/src/main/resources/addresources/values-az-rAZ/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Tətbiq adı + + Fərdi + Tətbiq ikonu + Orijinal + + Ən kiçik ReVanced + ReVanced ölçüləndirilmiş + + Fərdi + Yoxlamalar uğursuz oldu Xidməti veb saytı aç @@ -1409,11 +1421,13 @@ Kiçik oynadıcı ekrandan sola və ya sağa sürüklənə bilər" İrəliləyiş cizgisi vurğu rəngi Etibarsız irəliləmə cizgisi rəng dəyəri + + Başlıq simvolu İlkin Müntəzəm - + Ən kiçik ReVanced Fərdi @@ -1630,6 +1644,8 @@ AV1 ilə video oxutma kəsilə bilər və ya kadrlar atıla bilər." + + Haqqında Reklamlar 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 96a3e1206..3c18a13ec 100644 --- a/patches/src/main/resources/addresources/values-be-rBY/strings.xml +++ b/patches/src/main/resources/addresources/values-be-rBY/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Назва праграмы + + Карыстальніцкая + Значок праграмы + Арыгінал + + ReVanced мінімальны + ReVanced маштабаваны + + Карыстальніцкі + Праверкі не пройдзены Адкрыць афіцыйны вэб-сайт @@ -1411,11 +1423,13 @@ Second \"item\" text" Акцэнтны колер пошуку Неверное значение цвета ползунка прогресса + + Лагатып загалоўка Па змаўчанні Звычайны - + ReVanced мінімальны Карыстальніцкі @@ -1632,6 +1646,8 @@ Second \"item\" text" + + Пра Рэклама 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 074bc17b6..e93854e0e 100644 --- a/patches/src/main/resources/addresources/values-bg-rBG/strings.xml +++ b/patches/src/main/resources/addresources/values-bg-rBG/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Име на приложението + + Персонализиран + Икона на приложението + Оригинален + + ReVanced минимален + ReVanced мащабиран + + Персонализиран + Проверката е неуспешна Отворете официалния уебсайт @@ -1410,11 +1422,13 @@ Second \"item\" text" Цветът на лентата за търсене Невалидна стойност за цвят на лентата на прогреса + + Лого в заглавката По подразбиране Обикновено - + ReVanced минимално По избор @@ -1631,6 +1645,8 @@ Second \"item\" text" + + Относно Реклами 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 ed6a3d48e..8388c408f 100644 --- a/patches/src/main/resources/addresources/values-bn-rBD/strings.xml +++ b/patches/src/main/resources/addresources/values-bn-rBD/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + অ্যাপের নাম + + কাস্টম + অ্যাপ আইকন + মূল + + রিভ্যান্সড মিনিমাল + রিভ্যান্সড স্কেলড + + কাস্টম + চেক ফেইল করেছে অফিশ্যাল ওয়েবসাইট খুলুন @@ -1406,11 +1418,13 @@ Miniplayer স্ক্রিন থেকে বামে বা ডানে সিকবারের এক্সেন্ট রঙ অবৈধ সিকবার রঙ মান + + হেডার লোগো ডিফল্ট সাধারণ - + রিভ্যান্সড মিনিমাল কাস্টম @@ -1627,6 +1641,8 @@ AV1 সহ ভিডিও প্লেব্যাক আটকে যেতে + + সম্পর্কে বিজ্ঞাপন 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-bs-rBA/strings.xml +++ b/patches/src/main/resources/addresources/values-bs-rBA/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-ca-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-ca-rES/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 c061911e4..eb98900c3 100644 --- a/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml +++ b/patches/src/main/resources/addresources/values-cs-rCZ/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Název aplikace + + Vlastní + Ikona aplikace + Původní + + ReVanced minimální + ReVanced škálované + + Vlastní + Kontrola proběhla neúspěšně Otevřít oficiální webovou stránku @@ -1410,11 +1422,13 @@ Omezení: Použití tlačítka zpět na panelu nástrojů nemusí fungovat"Zvýrazněná barva posuvníku Neplatná hodnota barvy posuvníku + + Logo záhlaví Výchozí Běžné - + ReVanced minimální Vlastní @@ -1631,6 +1645,8 @@ Přehrávání videa s AV1 se může sekat nebo vypadávat snímky." + + O aplikaci Reklamy 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 9ceec5b9c..6cbe85c6f 100644 --- a/patches/src/main/resources/addresources/values-da-rDK/strings.xml +++ b/patches/src/main/resources/addresources/values-da-rDK/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Appnavn + + Tilpasset + Appikon + Original + + ReVanced minimal + ReVanced skaleret + + Tilpasset + Kontrol mislykkedes Åbn officiel hjemmeside @@ -1412,11 +1424,13 @@ Miniafspiller kan trækkes ud over skærmen til venstre eller højre" Søgelinjens accentfarve Ugyldig søgelinje farveværdi + + Sidehovedlogo Standard Normal - + ReVanced minimal Brugerdefineret @@ -1633,6 +1647,8 @@ Videoafspilning med AV1 kan hakke eller tabe billeder." + + Om Annoncer 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 a4e4f4dc1..25b86aad2 100644 --- a/patches/src/main/resources/addresources/values-de-rDE/strings.xml +++ b/patches/src/main/resources/addresources/values-de-rDE/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + App-Name + + Benutzerdefiniert + App-Symbol + Original + + ReVanced minimal + ReVanced skaliert + + Benutzerdefiniert + Prüfungen fehlgeschlagen Offizielle Website öffnen @@ -1407,11 +1419,13 @@ Der Mini-Player kann mit einer Wischgeste vom Bildschirm nach links oder rechts Die Akzentfarbe der Fortschrittsanzeige Ungültiger Suchleisten-Farbwert + + Header-Logo Standard Regulär - + ReVanced Minimal Benutzerdefiniert @@ -1628,6 +1642,8 @@ Die Videowiedergabe mit AV1 kann stottern oder Bilder überspringen." + + Über Werbung 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 8c1f81647..10e7cd744 100644 --- a/patches/src/main/resources/addresources/values-el-rGR/strings.xml +++ b/patches/src/main/resources/addresources/values-el-rGR/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Όνομα εφαρμογής + + Προσαρμοσμένο + Εικονίδιο εφαρμογής + Πρωτότυπο + + ReVanced απλό + ReVanced κλιμακωμένο + + Προσαρμοσμένο + Αποτυχία ελέγχων Άνοιγμα επίσημης ιστοσελίδας @@ -1411,11 +1423,13 @@ Second \"item\" text" Το χρώμα έμφασης της γραμμής προόδου Μη έγκυρη τιμή χρώματος γραμμής προόδου + + Λογότυπο επικεφαλίδας Προεπιλογή Κανονικό - + ReVanced απλό Προσαρμοσμένο @@ -1603,14 +1617,14 @@ Second \"item\" text" Η χειρονομία συρσίματος για αναζήτηση στη γραμμή προόδου είναι απενεργοποιημένη - Να επιτρέπεται το Android VR AV1 - "Ο κωδικοποιητής βίντεο είναι AVC (H.264), VP9 ή AV1 + Να επιτρέπεται ο κωδικοποιητής Android VR AV1 + "Ο κωδικοποιητής βίντεο είναι ο AVC (H.264), ο VP9 ή ο AV1 -Η αναπαραγωγή ενδέχεται να κολλήσει ή να χάσει καρέ" - Ο κωδικοποιητής βίντεο είναι AVC (H.264) ή VP9 - "Η ενεργοποίηση αυτής της ρύθμισης ενδέχεται να χρησιμοποιήσει αποκωδικοποίηση AV1 λογισμικού. +Η αναπαραγωγή μπορεί να κομπιάζει ή να χάνει καρέ" + Ο κωδικοποιητής βίντεο είναι ο AVC (H.264) ή ο VP9 + "Η ενεργοποίηση αυτής της ρύθμισης ενδέχεται να χρησιμοποιήσει αποκωδικοποίηση λογισμικού AV1. -Η αναπαραγωγή βίντεο με AV1 ενδέχεται να έχει διακοπές ή να χάνει καρέ." +Η αναπαραγωγή βίντεο μπορεί να κομπιάζει ή να χάνει καρέ." Παρενέργειες παραποίησης • Πειραματικός πελάτης και μπορεί να σταματήσει να λειτουργεί ανά πάσα στιγμή • Το βίντεο μπορεί να σταματήσει στο 1:00 ή να μην είναι διαθέσιμο σε ορισμένες περιοχές @@ -1630,6 +1644,8 @@ Second \"item\" text" + + Σχετικά με Διαφημίσεις 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 e2808ffe4..b937384e3 100644 --- a/patches/src/main/resources/addresources/values-es-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-es-rES/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Nombre de la aplicación + + Personalizado + Icono de la aplicación + Original + + ReVanced mínimo + ReVanced escalado + + Personalizado + Comprobaciones fallidas Ir al sitio web oficial @@ -1401,11 +1413,13 @@ El minireproductor se puede arrastrar fuera de la pantalla hacia la izquierda o El color de acento de la barra de búsqueda Valor de color de la barra de búsqueda inválido + + Logotipo del encabezado Predeterminado Normal - + ReVanced mínimo Personalizado @@ -1620,6 +1634,8 @@ La reproducción puede tartamudear o perder fotogramas" + + Acerca de Anuncios 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 707252763..ed59e7025 100644 --- a/patches/src/main/resources/addresources/values-et-rEE/strings.xml +++ b/patches/src/main/resources/addresources/values-et-rEE/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Rakenduse nimi + + Kohandatud + Rakenduse ikoon + Algne + + ReVanced minimaalne + ReVanced skaleeritud + + Kohandatud + Kontrollid ebaõnnestusid Ava oficial veebileht @@ -1410,11 +1422,13 @@ Minimaalset mängijat saab lohistada ekraanilt vasakule või paremale" Otsinguriba esiletõiduv värv Vigane edastusriba värvi väärtus + + Päise logo Vaikimisi Tavaline - + ReVanced minimaalne Kohandatud @@ -1631,6 +1645,8 @@ AV1-ga videotaasesitus võib hakitud olla või kaadreid vahele jätta." + + Teave Reklaamid 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-eu-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-eu-rES/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 6ecd6b63b..293ff3b37 100644 --- a/patches/src/main/resources/addresources/values-fa-rIR/strings.xml +++ b/patches/src/main/resources/addresources/values-fa-rIR/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + بررسی ناموفق بود رفتن به وبسایت رسمی @@ -253,8 +258,10 @@ Second \"item\" text" + + - + @@ -303,6 +310,8 @@ Second \"item\" text" + + 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 04220491f..91654d374 100644 --- a/patches/src/main/resources/addresources/values-fi-rFI/strings.xml +++ b/patches/src/main/resources/addresources/values-fi-rFI/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Sovelluksen nimi + + Mukautettu + Sovelluksen kuvake + Alkuperäinen + + ReVanced-minimaalinen + ReVanced skaalattu + + Mukautettu + Tarkastuksia epäonnistui Avaa virallinen sivusto @@ -1410,11 +1422,13 @@ Minisoitin voidaan vetää pois näytöltä vasemmalle tai oikealle" Etenemispalkin korostusväri Virheellinen etenemispalkin väriarvo + + Ylätunnisteen logo Oletus Tavallinen - + ReVanced-minimaalinen Mukautettu @@ -1631,6 +1645,8 @@ AV1-videon toisto saattaa pätkiä tai pudottaa kuvia." + + Tietoja Mainokset 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 13a99b5af..d44a49969 100644 --- a/patches/src/main/resources/addresources/values-fil-rPH/strings.xml +++ b/patches/src/main/resources/addresources/values-fil-rPH/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Pangalan ng app + + Pasadyang + Icon ng app + Orihinal + + ReVanced minimal + ReVanced naka-scale + + Pasadyang + Nabigo ang mga pagsusuri Buksan ang Opisyal na Website @@ -1408,11 +1420,13 @@ Ang \"miniplayer\" ay maaaring i-drag palabas ng screen sa kaliwa o kanan"Ang accent na kulay ng seekbar Hindi wastong halaga ng kulay ng seekbar + + Logo ng Header Default Regular - + ReVanced minimal Pasadyang @@ -1629,6 +1643,8 @@ Maaaring mag-stutter o mag-drop ng frames ang pag-playback ng video na may AV1." + + Tungkol Mga Ad 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 88b85b626..7fba4df4a 100644 --- a/patches/src/main/resources/addresources/values-fr-rFR/strings.xml +++ b/patches/src/main/resources/addresources/values-fr-rFR/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Nom de l\'application + + Personnalisé + Icône de l\'application + Original + + ReVanced minimaliste + ReVanced mis à l\'échelle + + Personnalisé + Les vérifications ont échoué Ouvrir le site officiel @@ -1411,11 +1423,13 @@ Le lecteur réduit peut être glissé hors de l'écran, à gauche comme à droit La couleur d\'accentuation de la barre de progression Valeur invalide pour la couleur de la barre de progression + + Logo d\'en-tête Par défaut Standard - + ReVanced minimaliste Personnalisé @@ -1632,6 +1646,8 @@ La lecture vidéo avec AV1 peut saccader ou perdre des images." + + À propos Annonces 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 6141389a0..e4d594c6f 100644 --- a/patches/src/main/resources/addresources/values-ga-rIE/strings.xml +++ b/patches/src/main/resources/addresources/values-ga-rIE/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Ainm an fheidhmchláir + + Saincheaptha + Deilbhín an fheidhmchláir + Bunaidh + + ReVanced Íosmhéid + ReVanced Scálaithe + + Saincheaptha + Theip ar sheiceálacha Oscailt láithreán gréasáin oifigiúil @@ -1410,11 +1422,13 @@ Is féidir an mhion-imreoir a tharraingt as an scáileán ar chlé nó ar dheis" Dath accent an bhar taispillte Luach datha barra cuardaigh neamhbhailí + + Lógó Ceanntáisc Réamhshocrú Rialta - + ReVanced íosta Saincheaptha @@ -1631,6 +1645,8 @@ D'fhéadfadh athsheinm físe AV1 leacadh nó frámaí a scaoileadh." + + Maidir Fógraí 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-gl-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-gl-rES/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-gu-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-gu-rIN/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 c671a9994..97d7c365e 100644 --- a/patches/src/main/resources/addresources/values-hi-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-hi-rIN/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -205,8 +210,10 @@ Second \"item\" text" + + - + @@ -255,6 +262,8 @@ Second \"item\" text" + + 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 0d41d89bd..7eb567fd0 100644 --- a/patches/src/main/resources/addresources/values-hr-rHR/strings.xml +++ b/patches/src/main/resources/addresources/values-hr-rHR/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + Provjere nisu uspjele @@ -204,8 +209,10 @@ Second \"item\" text" + + - + @@ -254,6 +261,8 @@ Second \"item\" text"
+ + 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 bc71281b5..09f5d7426 100644 --- a/patches/src/main/resources/addresources/values-hu-rHU/strings.xml +++ b/patches/src/main/resources/addresources/values-hu-rHU/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Alkalmazás neve + + Egyéni + Alkalmazás ikonja + Eredeti + + ReVanced minimális + ReVanced méretezett + + Egyéni + Az ellenőrzések sikertelenek Hivatalos weboldal megnyitása @@ -1407,11 +1419,13 @@ A miniatűr képernyőt a képernyő bal vagy jobb szélére húzhatja" A keresősáv kiemelõ színe Érvénytelen keresősáv színértéke + + Fejléc logó Alapértelmezett Normál - + ReVanced minimál Egyéni @@ -1628,6 +1642,8 @@ Az AV1-es videólejátszás akadozhat vagy képkockákat ejthet." + + Névjegy Hirdetések 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 d4e4b4c86..e43c4f86b 100644 --- a/patches/src/main/resources/addresources/values-hy-rAM/strings.xml +++ b/patches/src/main/resources/addresources/values-hy-rAM/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Հավելվածի անվանումը + + Մաքսային + Հավելվածի պատկերակը + Բնօրինակ + + ReVanced մինիմալ + ReVanced սանդղակավորված + + Անհատականացված + Վերահսկումները ձախողվել են Բացել պաշտոնական կայքը @@ -1411,11 +1423,13 @@ Mini-player-ը կարող է գրավվել էկրանից դուրս՝ դեպի Մարզումից դուրս ողորկության նշման գույնը Սխալ seekbar-ի գույնի արժեք + + Գլխագրի լոգո Լռակյաց Սովորական - + ReVanced մինիմալ Անհատական @@ -1632,6 +1646,8 @@ AV1-ով տեսանյութի նվագարկումը կարող է ընդհատ + + Մասին Գովազդներ 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 db621a673..35614bb70 100644 --- a/patches/src/main/resources/addresources/values-in-rID/strings.xml +++ b/patches/src/main/resources/addresources/values-in-rID/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Nama aplikasi + + Khusus + Ikon aplikasi + Asli + + ReVanced minimal + ReVanced berskala + + Khusus + Pemeriksaan gagal Buka situs resmi @@ -1409,11 +1421,13 @@ Miniplayer dapat diseret keluar layar ke kiri atau kanan" Warna aksen seekbar Nilai warna seekbar tidak sah + + Logo Header Bawaan Reguler - + ReVanced minimal Khusus @@ -1630,6 +1644,8 @@ Pemutaran video dengan AV1 mungkin tersendat atau kehilangan bingkai." + + Tentang Iklan 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-is-rIS/strings.xml +++ b/patches/src/main/resources/addresources/values-is-rIS/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 509208cec..6e9864246 100644 --- a/patches/src/main/resources/addresources/values-it-rIT/strings.xml +++ b/patches/src/main/resources/addresources/values-it-rIT/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Nome dell\'app + + Personalizzato + Icona dell\'app + Originale + + ReVanced minimale + ReVanced ridimensionato + + Personalizzato + Controlli non riusciti Apri sito ufficiale @@ -1409,11 +1421,13 @@ Il riproduttore minimizzato può essere trascinato fuori dallo schermo a sinistr Il colore primario della barra di avanzamento Valore colore barra di avanzamento non valido + + Logo dell\'intestazione Predefinito Regolare - + ReVanced minimale Personalizzato @@ -1630,6 +1644,8 @@ La riproduzione video con AV1 potrebbe rallentare o perdere fotogrammi." + + Informazioni Annunci 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 5bc713abb..fda882691 100644 --- a/patches/src/main/resources/addresources/values-iw-rIL/strings.xml +++ b/patches/src/main/resources/addresources/values-iw-rIL/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + שם האפליקציה + + מותאם אישית + אייקון האפליקציה + מקורי + + ReVanced מינימלי + ReVanced מותאם גודל + + מותאם אישית + בדיקות נכשלו פתח אתר רשמי @@ -1412,11 +1424,13 @@ Second \"item\" text" צבע ההדגשה של סרגל הדילוג ערך צבע סרגל דילוג לא חוקי + + לוגו כותרת ברירת מחדל רגיל - + ReVanced מינימלי מותאם אישית @@ -1633,6 +1647,8 @@ Second \"item\" text" + + אודות מודעות 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 6bfffc2bc..6bb818532 100644 --- a/patches/src/main/resources/addresources/values-ja-rJP/strings.xml +++ b/patches/src/main/resources/addresources/values-ja-rJP/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + アプリ名 + + カスタム + アプリアイコン + + + ReVanced minimal + ReVanced スケール + + カスタム + チェックに失敗しました 公式サイトを開く @@ -1413,11 +1425,13 @@ Automotive レイアウト シークバーのアクセントカラーを編集します シークバーの色の値が無効です + + ヘッダーロゴ デフォルト 標準 - + ReVanced minimal カスタム @@ -1633,6 +1647,8 @@ AV1での動画再生は、途切れたりフレームが落ちたりする場 + + ReVanced について 広告 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-ka-rGE/strings.xml +++ b/patches/src/main/resources/addresources/values-ka-rGE/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml +++ b/patches/src/main/resources/addresources/values-kk-rKZ/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-km-rKH/strings.xml +++ b/patches/src/main/resources/addresources/values-km-rKH/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 85b96ca44..429afac07 100644 --- a/patches/src/main/resources/addresources/values-kn-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-kn-rIN/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + ಪರಿಶೀಲನೆ ವಿಫಲವಾಗಿದೆ ಅಧಿಕೃತ ಜಾಲತಾಣ ತೆರೆಯಿರಿ @@ -218,8 +223,10 @@ Second \"item\" text" + + - + @@ -268,6 +275,8 @@ Second \"item\" text" + + 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 cc83dbb36..66f4eead3 100644 --- a/patches/src/main/resources/addresources/values-ko-rKR/strings.xml +++ b/patches/src/main/resources/addresources/values-ko-rKR/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + 앱 이름 + + 사용자 정의 + 앱 아이콘 + 원본 + + ReVanced 최소화 + ReVanced 크기 조정 + + 사용자 정의 + 환경 검사에 실패하였습니다 공식 홈페이지 열기 @@ -1417,11 +1429,13 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니 재생바 보조 색상을 지정할 수 있습니다 잘못된 재생바 색상입니다 + + 헤더 로고 기본값 일반 - + ReVanced 최소화 사용자 정의 @@ -1611,14 +1625,14 @@ DeArrow에 대해 자세히 알아보려면 여기를 탭하세요" 슬라이드하여 탐색을 비활성화합니다 - Android VR AV1 허용 - "비디오 코덱은 AVC (H.264), VP9 또는 AV1입니다 + Android VR AV1 허용하기 + "동영상 코덱이 AVC (H.264), VP9 또는 AV1으로 결정됩니다 -재생이 끊기거나 프레임이 떨어질 수 있습니다" - 비디오 코덱은 AVC (H.264) 또는 VP9입니다 - "이 설정을 활성화하면 소프트웨어 AV1 디코딩을 사용할 수 있습니다. +동영상 재생이 끊기거나 프레임이 손실될 수 있습니다" + 동영상 코덱이 AVC (H.264) 또는 VP9으로 결정됩니다 + "이 설정을 활성화하면, 소프트웨어 AV1 디코딩이 사용될 수 있습니다. -AV1을 사용한 비디오 재생 시 끊김 또는 프레임 드롭이 발생할 수 있습니다." +AV1이 사용된 동영상 재생이 끊기거나 프레임이 손실될 수 있습니다." 변경에 따른 부작용 • 실험용 클라이언트이며 언제든지 작동이 중단될 수 있습니다 • 동영상이 1:00에 멈출 수 있으며, 일부 지역에서는 이용이 불가능할 수 있습니다 @@ -1638,6 +1652,8 @@ AV1을 사용한 비디오 재생 시 끊김 또는 프레임 드롭이 발생 + + 정보 광고 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-ky-rKG/strings.xml +++ b/patches/src/main/resources/addresources/values-ky-rKG/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-lo-rLA/strings.xml +++ b/patches/src/main/resources/addresources/values-lo-rLA/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 f9ec6a032..067bb630e 100644 --- a/patches/src/main/resources/addresources/values-lt-rLT/strings.xml +++ b/patches/src/main/resources/addresources/values-lt-rLT/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Programos pavadinimas + + Pasirinktinis + Programos piktograma + Originalus + + ReVanced minimalus + ReVanced masteliu + + Pasirinktinis + Patikrinimai nepavyko Atidaryti oficialią svetainę @@ -1411,11 +1423,13 @@ Ribojimas: įrankių juostoje esantis atgal mygtukas gali neveikti." Ieškojimo juostos akcento spalva Netinkama slankiklio spalvos vertė + + Antraštės logotipas Numatytasis Įprastas - + ReVanced minimalus Pasirinktinis @@ -1632,6 +1646,8 @@ Vaizdo įrašo atkūrimas su AV1 gali strigti arba praleisti kadrus." + + Apie Skelbimai 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 3c7c46ff6..f2ff7b93e 100644 --- a/patches/src/main/resources/addresources/values-lv-rLV/strings.xml +++ b/patches/src/main/resources/addresources/values-lv-rLV/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Lietotnes nosaukums + + Pielāgots + Lietotnes ikona + Oriģināls + + ReVanced minimāls + ReVanced mērogots + + Pielāgots + Pārbaudes neizdevās Atvērt oficiālo vietni @@ -1411,11 +1423,13 @@ Miniatskaņotāju var pārvilkt no ekrāna uz kreiso vai labo pusi" Meklētājjoslas akcenta krāsa Nederīga meklētāja joslas krāsas vērtība + + Galvenes logotips Noklusējums Parasts - + ReVanced minimāls Pielāgots @@ -1632,6 +1646,8 @@ AV1 video atskaņošana var raustīties vai izlaist kadrus." + + Par Reklāmas 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-mk-rMK/strings.xml +++ b/patches/src/main/resources/addresources/values-mk-rMK/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-ml-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ml-rIN/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-mn-rMN/strings.xml +++ b/patches/src/main/resources/addresources/values-mn-rMN/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-mr-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-mr-rIN/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 06ddb38c6..835c470a3 100644 --- a/patches/src/main/resources/addresources/values-ms-rMY/strings.xml +++ b/patches/src/main/resources/addresources/values-ms-rMY/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -254,6 +261,8 @@ Second \"item\" text" + + 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-my-rMM/strings.xml +++ b/patches/src/main/resources/addresources/values-my-rMM/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-nb-rNO/strings.xml +++ b/patches/src/main/resources/addresources/values-nb-rNO/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 70b74f6c7..43d70b9b6 100644 --- a/patches/src/main/resources/addresources/values-ne-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ne-rIN/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + ReVanced Manager द्वारा स्थापित छैन APK निर्माण मिति खराब भएको छ @@ -205,8 +210,10 @@ Second \"item\" text" + + - + @@ -255,6 +262,8 @@ Second \"item\" text" + + 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 e04887aff..6b6af1a2f 100644 --- a/patches/src/main/resources/addresources/values-nl-rNL/strings.xml +++ b/patches/src/main/resources/addresources/values-nl-rNL/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Appnaam + + Aangepast + App-pictogram + Origineel + + ReVanced minimaal + ReVanced geschaald + + Aangepast + Controle mislukt Open officiële website @@ -1408,11 +1420,13 @@ De miniplayer kan naar links of rechts van het scherm worden gesleept" De accentkleur van de zoekbalk Ongeldige waarde voor de kleur van de schuifregelaar + + Headerlogo Standaard Normaal - + ReVanced minimaal Aangepast @@ -1629,6 +1643,8 @@ Het afspelen van video met AV1 kan haperen of frames overslaan." + + Over Advertenties 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-or-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-or-rIN/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-pa-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-pa-rIN/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 9a08c81d0..1fd32b614 100644 --- a/patches/src/main/resources/addresources/values-pl-rPL/strings.xml +++ b/patches/src/main/resources/addresources/values-pl-rPL/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Nazwa aplikacji + + Własna + Ikona aplikacji + Oryginalna + + ReVanced minimalna + ReVanced skalowana + + Niestandardowa + Sprawdzanie nie powiodło się Otwórz oficjalną stronę internetową @@ -1406,11 +1418,13 @@ Odtwarzacz można przeciągnąć poza ekran w lewo lub w prawo" Kolor akcentu paska postępu Nieprawidłowa wartość koloru paska postępu + + Logo nagłówka Domyślne Zwykłe - + ReVanced minimalistyczne Niestandardowe @@ -1627,6 +1641,8 @@ Odtwarzanie wideo z AV1 może powodować zacinanie się lub gubienie klatek." + + O programie Reklamy 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 3b07fe700..4127dd942 100644 --- a/patches/src/main/resources/addresources/values-pt-rBR/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rBR/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Nome do aplicativo + + Personalizado + Ícone do aplicativo + Original + + ReVanced mínimo + ReVanced escalado + + Personalizado + Verificação falhou Abrir o site oficial @@ -1407,11 +1419,13 @@ O miniplayer pode ser arrastado para fora da tela para a esquerda ou direita"A cor de destaque da barra de progresso Valor de cor da barra de busca inválido
+ + Logotipo do cabeçalho Padrão Regular - + ReVanced mínimo Personalizado @@ -1628,6 +1642,8 @@ A reprodução de vídeo com AV1 pode gaguejar ou perder quadros."
+ + Sobre Anúncios 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 f974231f3..5dd0f3af7 100644 --- a/patches/src/main/resources/addresources/values-pt-rPT/strings.xml +++ b/patches/src/main/resources/addresources/values-pt-rPT/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Nome da aplicação + + Personalizado + Ícone da aplicação + Original + + ReVanced mínimo + ReVanced dimensionado + + Personalizado + Falha na verificação Abrir site oficial @@ -1410,11 +1422,13 @@ Miniplayer có thể được kéo ra khỏi màn hình sang trái hoặc phải A cor de destaque da barra de progresso Valor de cor de seekbar inválido + + Logotipo do cabeçalho Padrão Regular - + ReVanced mínimo Personalizado @@ -1631,6 +1645,8 @@ A reprodução de vídeo com AV1 pode apresentar soluços ou perder quadros." + + Sobre Anúncios 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 48bfb037e..57eea5d4b 100644 --- a/patches/src/main/resources/addresources/values-ro-rRO/strings.xml +++ b/patches/src/main/resources/addresources/values-ro-rRO/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Numele aplicației + + Personalizat + Pictograma aplicației + Original + + ReVanced minimal + ReVanced scalat + + Personalizat + Verificările au eșuat Deschidere site oficial @@ -1407,11 +1419,13 @@ Miniplayerul poate fi tras pe ecran spre stânga sau spre dreapta" Culoarea de accent a barei de căutare Valoare culoare bară căutare nevalidă + + Siglă antet Implicit Normal - + ReVanced minimalist Personalizat @@ -1628,6 +1642,8 @@ Redarea video cu AV1 poate sacada sau pierde cadre." + + Despre Anunțuri 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 7f2ba6f8c..68e963193 100644 --- a/patches/src/main/resources/addresources/values-ru-rRU/strings.xml +++ b/patches/src/main/resources/addresources/values-ru-rRU/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Название приложения + + Кастомный + Значок приложения + Оригинал + + ReVanced минимальный + ReVanced масштабированный + + Кастомный + Проверки не удались Открыть официальный веб-сайт @@ -1417,11 +1429,13 @@ Second \"item\" text" Вторичный цвет полосы прогресса Неверное значение цвета полосы прогресса + + Логотип заголовка По умолчанию Обычный - + ReVanced минимальный Кастомный @@ -1638,6 +1652,8 @@ Second \"item\" text" + + Информация Настройки рекламы 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-si-rLK/strings.xml +++ b/patches/src/main/resources/addresources/values-si-rLK/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 15dd6f3a8..ad7b8c92e 100644 --- a/patches/src/main/resources/addresources/values-sk-rSK/strings.xml +++ b/patches/src/main/resources/addresources/values-sk-rSK/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Názov aplikácie + + Vlastné + Ikona aplikácie + Pôvodné + + ReVanced minimálne + ReVanced škálované + + Vlastné + Kontrola zlyhala Otvoriť oficiálnu webovú stránku @@ -1403,11 +1415,13 @@ Miniprehrávač sa dá potiahnuť mimo obrazovky doľava alebo doprava" Farba zvýraznenia posuvníka Neplatná farba vyhľadávania panela + + Logo záhlavia Predvolené Bežné - + ReVanced minimálne Vlastné @@ -1624,6 +1638,8 @@ Prehrávanie videa s AV1 môže sekať alebo vynechávať snímky." + + O aplikácii Reklamy 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 c0b902a88..4b8a4ae85 100644 --- a/patches/src/main/resources/addresources/values-sl-rSI/strings.xml +++ b/patches/src/main/resources/addresources/values-sl-rSI/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Ime aplikacije + + Po meri + Ikona aplikacije + Izvirno + + ReVanced minimalno + ReVanced prilagojeno + + Po meri + Preverjanja so spodletela Obiščite uradno spletno mesto @@ -1410,11 +1422,13 @@ Minipredvajalnik lahko povlečete z zaslona na levo ali desno" Barva poudarka iskalnika Neveljavna vrednost barve drsnika + + Logotip glave Privzeto Navadno - + ReVanced minimalno Po meri @@ -1631,6 +1645,8 @@ Predvajanje videa z AV1 se lahko zatika ali izpušča sličice." + + O Oglasi 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 541bd7c65..05a519c1e 100644 --- a/patches/src/main/resources/addresources/values-sq-rAL/strings.xml +++ b/patches/src/main/resources/addresources/values-sq-rAL/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Emri i aplikacionit + + Personalizuar + Ikona e aplikacionit + Origjinal + + ReVanced minimal + ReVanced i shkallëzuar + + Personalizuar + Kontrollat ​​dështu Hap faqen zyrtare @@ -1408,11 +1420,13 @@ Miniplayer mund të tërhiqet jashtë ekranit në të majtë ose në të djatht Ngjyra e theksuar e shiritit të kërkimit Vlerë e pavlefshme e ngjyrës së shkallës së kërkimit + + Logoja e sipërme Parazgjedhur Normale - + ReVanced minimaliste Personalizuar @@ -1629,6 +1643,8 @@ Luajtja e videos me AV1 mund të ngecë ose të humbasë korniza." + + Rreth Reklama 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 2a67499e8..df0b08332 100644 --- a/patches/src/main/resources/addresources/values-sr-rCS/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rCS/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Naziv aplikacije + + Prilagođeni + Ikona aplikacije + Original + + ReVanced minimalna + ReVanced skalirana + + Prilagođeni + Provere nisu uspele Otvori zvanični veb-sajt @@ -1409,11 +1421,13 @@ Mini-plejer se može prevući sa ekrana ulevo ili udesno" Boja naglašavanja trake za premotavanje Nevažeća vrednost boje trake za premotavanje + + Logotip u zaglavlju Podrazumevani Obični - + ReVanced minimalistički Prilagođeni @@ -1630,6 +1644,8 @@ Reprodukcija video zapisa sa AV1 može seckati ili ispuštati frejmove." + + O programu Oglasi 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 76d8678fe..99a4c86e6 100644 --- a/patches/src/main/resources/addresources/values-sr-rSP/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rSP/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Назив апликације + + Прилагођени + Икона апликације + Оригинал + + ReVanced минималистички + ReVanced скалирано + + Прилагођени + Провере нису успеле Отвори званични веб-сајт @@ -1412,11 +1424,13 @@ Second \"item\" text" Боја наглашавања траке за премотавање Неважећа вредност боје траке за премотавање + + Логотип у заглављу Подразумевани Обични - + ReVanced минималистички Прилагођени @@ -1633,6 +1647,8 @@ Second \"item\" text" + + О програму Огласи 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 e5dbeb671..a4c4dfdf3 100644 --- a/patches/src/main/resources/addresources/values-sv-rSE/strings.xml +++ b/patches/src/main/resources/addresources/values-sv-rSE/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Appnamn + + Anpassad + Appikon + Original + + ReVanced minimalistisk + ReVanced skalad + + Anpassad + Kontroller misslyckades Öppna officiell hemsida @@ -1409,11 +1421,13 @@ Minispelaren kan dras utanför skärmen till vänster eller höger" Accentfärgen på sökreglaget Ogiltigt färgvärde för sökreglaget + + Logotyp i sidhuvudet Standard Vanlig - + ReVanced minimalistisk Anpassad @@ -1630,6 +1644,8 @@ Videouppspelning med AV1 kan hacka eller tappa bildrutor." + + Om Annonser 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-sw-rKE/strings.xml +++ b/patches/src/main/resources/addresources/values-sw-rKE/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-ta-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ta-rIN/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-te-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-te-rIN/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 e67f747f5..ceac7d84e 100644 --- a/patches/src/main/resources/addresources/values-th-rTH/strings.xml +++ b/patches/src/main/resources/addresources/values-th-rTH/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + ชื่อแอป + + กำหนดเอง + ไอคอนแอป + ต้นฉบับ + + ReVanced เรียบง่าย + ReVanced ปรับขนาด + + กำหนดเอง + การตรวจสอบล้มเหลว เปิดเว็บไซต์อย่างเป็นทางการ @@ -1412,11 +1424,13 @@ User id ของคุณเหมือนกับรหัสผ่าน สีเน้นของ seekbar ค่าสีแถบเลื่อนไม่ถูกต้อง + + โลโก้ส่วนหัว ค่าเริ่มต้น ปกติ - + ReVanced แบบย่อ กำหนดเอง @@ -1633,6 +1647,8 @@ User id ของคุณเหมือนกับรหัสผ่าน + + เกี่ยวกับ โฆษณา 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 c5c12c3c0..0a91d04dc 100644 --- a/patches/src/main/resources/addresources/values-tr-rTR/strings.xml +++ b/patches/src/main/resources/addresources/values-tr-rTR/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Uygulama adı + + Özel + Uygulama simgesi + Orijinal + + ReVanced minimal + ReVanced ölçeklendirilmiş + + Özel + Denetimler başarısız Resmî web sitesini aç @@ -1417,11 +1429,13 @@ Genişletmek veya kapatmak için kaydırın" Zaman çubuğunun vurgu rengi Geçersiz zaman çubuğu renk değeri + + Başlık logosu Varsayılan Normal - + ReVanced minimal Özel @@ -1638,6 +1652,8 @@ AV1 ile video oynatma takılabilir veya kare atlayabilir." + + Hakkında Reklamlar 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 1c7e08121..2c28dad46 100644 --- a/patches/src/main/resources/addresources/values-uk-rUA/strings.xml +++ b/patches/src/main/resources/addresources/values-uk-rUA/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Назва додатку + + Користувацька + Іконка додатку + Оригінальна + + ReVanced мінімальна + ReVanced масштабована + + Користувацька + Перевірки не вдалися Відкрити офіційний вебсайт @@ -1409,11 +1421,13 @@ Second \"item\" text" Значення вторинного кольору смуги прогресу Недійсне значення кольору смуги прогресу + + Логотип заголовка Стандартний Звичайний - + ReVanced мінімальний Користувацький @@ -1604,13 +1618,13 @@ Second \"item\" text" Дозволити Android VR AV1 - "Відеокодек: AVC (H.264), VP9 або AV1 + "Відеокодек AVC (H.264), VP9 або AV1 -Відтворення може затинатися або пропускати кадри" - Відеокодек: AVC (H.264) або VP9 - "Увімкнення цього параметра може використовувати програмне декодування AV1. +Відтворення може заїкатися або пропускати кадри" + Відеокодек AVC (H.264) або VP9 + "Увімкнення цього налаштування може призвести до використання програмного декодування AV1. -Відтворення відео з AV1 може заїкатися або пропускати кадри." +Відтворення відео з AV1 може заїкатися або мати пропуски кадрів." Побічні ефекти підміни • Експериментальний клієнт, який може припинити працювати будь-якої миті • Відео може зупинитися на 1:00, або може бути недоступним у деяких регіонах @@ -1630,6 +1644,8 @@ Second \"item\" text" + + Інформація Реклама 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-ur-rIN/strings.xml +++ b/patches/src/main/resources/addresources/values-ur-rIN/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml +++ b/patches/src/main/resources/addresources/values-uz-rUZ/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + 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 419cf7102..24884e335 100644 --- a/patches/src/main/resources/addresources/values-vi-rVN/strings.xml +++ b/patches/src/main/resources/addresources/values-vi-rVN/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + Tên ứng dụng + + Tùy chỉnh + Biểu tượng ứng dụng + Gốc + + ReVanced tối giản + ReVanced tỉ lệ + + Tùy chỉnh + Kiểm tra thất bại Mở trang web chính thức @@ -1416,11 +1428,13 @@ Vuốt để mở rộng hoặc đóng" Màu sắc nổi bật của thanh tiến trình Giá trị màu của thanh tiến trình không hợp lệ + + Logo đầu trang Mặc định Thông thường - + ReVanced tối giản Tùy chỉnh @@ -1637,6 +1651,8 @@ Phát lại video bằng AV1 có thể bị giật hoặc bỏ khung hình." + + Giới thiệu Quảng cáo 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 1f3c17fd6..c91c10d5e 100644 --- a/patches/src/main/resources/addresources/values-zh-rCN/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rCN/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + 应用名称 + + 自定义 + 应用图标 + 原始 + + ReVanced 极简 + ReVanced 缩放 + + 自定义 + 检测失败 打开官方网站 @@ -1415,11 +1427,13 @@ Second \"item\" text" 进度条的强调色 无效的进度条颜色值 + + 标题徽标 默认 常规 - + ReVanced 极简 自定义 @@ -1636,6 +1650,8 @@ Second \"item\" text" + + 关于 广告 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 ac8c7ea91..98cc3e96e 100644 --- a/patches/src/main/resources/addresources/values-zh-rTW/strings.xml +++ b/patches/src/main/resources/addresources/values-zh-rTW/strings.xml @@ -20,6 +20,18 @@ Second \"item\" text" --> + + 應用程式名稱 + + 自訂 + 應用程式圖示 + 原始 + + ReVanced 精簡版 + ReVanced 縮放 + + 自訂 + 檢查失敗 開啟官方網站 @@ -1416,11 +1428,13 @@ Second \"item\" text" 跳轉列強調色彩 跳轉列色彩值無效 + + 標題標誌 預設 一般 - + ReVanced 精簡版 自訂 @@ -1641,6 +1655,8 @@ AV1 視訊播放可能會卡頓或掉幀。" + + 關於 廣告 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 66fec53e1..7a87b6c25 100644 --- a/patches/src/main/resources/addresources/values-zu-rZA/strings.xml +++ b/patches/src/main/resources/addresources/values-zu-rZA/strings.xml @@ -20,6 +20,11 @@ Second \"item\" text" --> + + + + + @@ -203,8 +208,10 @@ Second \"item\" text" + + - + @@ -253,6 +260,8 @@ Second \"item\" text" + + From 7afeaebb5cc22eb4f4512d8aa0cf4e835e7a2daf Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Wed, 8 Oct 2025 00:34:45 +0400 Subject: [PATCH 60/63] fix(YouTube - Spoof video streams): Do not allow VR AV1 if "Force AVC" is enabled --- .../youtube/patches/spoof/SpoofVideoStreamsPatch.java | 6 +++++- 1 file changed, 5 insertions(+), 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 eaf2f3e14..ef8069e85 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 @@ -29,7 +29,11 @@ public class SpoofVideoStreamsPatch { public static void setClientOrderToUse() { ClientType client = Settings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get(); - if (client == ANDROID_VR_1_43_32 && Settings.SPOOF_VIDEO_STREAMS_AV1.get()) { + // Use VR 1.61 client that has AV1 if user settings allow it. + // AVC cannot be forced with VR 1.61 because it uses VP9 and AV1. + // If both settings are on, then force AVC takes priority and VR 1.43 is used. + if (client == ANDROID_VR_1_43_32 && Settings.SPOOF_VIDEO_STREAMS_AV1.get() + && !Settings.FORCE_AVC_CODEC.get()) { client = ANDROID_VR_1_61_48; } From feca17be68055978a6c7b05029d4d5ab3f620566 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 7 Oct 2025 20:37:44 +0000 Subject: [PATCH 61/63] chore: Release v5.42.0-dev.19 [skip ci] # [5.42.0-dev.19](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.18...v5.42.0-dev.19) (2025-10-07) ### Bug Fixes * **YouTube - Spoof video streams:** Do not allow VR AV1 if "Force AVC" is enabled ([7afeaeb](https://github.com/ReVanced/revanced-patches/commit/7afeaebb5cc22eb4f4512d8aa0cf4e835e7a2daf)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 47b669372..b1298164a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [5.42.0-dev.19](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.18...v5.42.0-dev.19) (2025-10-07) + + +### Bug Fixes + +* **YouTube - Spoof video streams:** Do not allow VR AV1 if "Force AVC" is enabled ([7afeaeb](https://github.com/ReVanced/revanced-patches/commit/7afeaebb5cc22eb4f4512d8aa0cf4e835e7a2daf)) + # [5.42.0-dev.18](https://github.com/ReVanced/revanced-patches/compare/v5.42.0-dev.17...v5.42.0-dev.18) (2025-10-07) diff --git a/gradle.properties b/gradle.properties index 7608a7717..d5e85d1ad 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.42.0-dev.18 +version = 5.42.0-dev.19 From 0fe545cad6129824e231df87e074aec7f47a693d Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Wed, 8 Oct 2025 09:47:27 +0400 Subject: [PATCH 62/63] chore: Add links to the ReVanced brand guidelines --- .../resources/addresources/values/strings.xml | 1 + .../revanced_header_logo_dark.png | Bin 3344 -> 3479 bytes .../revanced_header_logo_light.png | Bin 3330 -> 3465 bytes .../revanced_header_logo_minimal_dark.png | Bin 3354 -> 3489 bytes .../revanced_header_logo_minimal_light.png | Bin 2986 -> 3121 bytes .../revanced_header_logo_dark.png | Bin 2041 -> 2176 bytes .../revanced_header_logo_light.png | Bin 2030 -> 2165 bytes .../revanced_header_logo_minimal_dark.png | Bin 2126 -> 2261 bytes .../revanced_header_logo_minimal_light.png | Bin 1924 -> 2059 bytes .../revanced_header_logo_dark.png | Bin 4630 -> 4765 bytes .../revanced_header_logo_light.png | Bin 4602 -> 4737 bytes .../revanced_header_logo_minimal_dark.png | Bin 4506 -> 4641 bytes .../revanced_header_logo_minimal_light.png | Bin 4048 -> 4183 bytes .../revanced_header_logo_dark.png | Bin 7163 -> 7298 bytes .../revanced_header_logo_light.png | Bin 7045 -> 7180 bytes .../revanced_header_logo_minimal_dark.png | Bin 7384 -> 7519 bytes .../revanced_header_logo_minimal_light.png | Bin 6540 -> 6675 bytes .../revanced_header_logo_dark.png | Bin 9506 -> 9641 bytes .../revanced_header_logo_light.png | Bin 9367 -> 9502 bytes .../revanced_header_logo_minimal_dark.png | Bin 7457 -> 7592 bytes .../revanced_header_logo_minimal_light.png | Bin 6735 -> 6870 bytes .../revanced_adaptive_foreground_minimal.xml | 1 + .../revanced_adaptive_foreground_rounded.xml | 1 + .../revanced_adaptive_foreground_scaled.xml | 1 + .../revanced_adaptive_monochrome_custom.xml | 1 + .../revanced_adaptive_monochrome_minimal.xml | 1 + .../revanced_adaptive_monochrome_rounded.xml | 1 + .../revanced_adaptive_monochrome_scaled.xml | 1 + .../revanced_launcher_custom.xml | 1 + .../revanced_launcher_minimal.xml | 1 + .../revanced_launcher_rounded.xml | 1 + .../revanced_launcher_scaled.xml | 1 + .../revanced_adaptive_foreground_custom.png | Bin 1276 -> 1411 bytes .../revanced_adaptive_foreground_custom.png | Bin 858 -> 993 bytes .../revanced_adaptive_foreground_custom.png | Bin 1747 -> 1882 bytes .../revanced_adaptive_foreground_custom.png | Bin 2771 -> 2906 bytes .../revanced_adaptive_foreground_custom.png | Bin 3930 -> 4065 bytes .../drawable/revanced_settings_icon.xml | 7 +------ 38 files changed, 13 insertions(+), 6 deletions(-) diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml index b7b5e82b3..4b7a00125 100644 --- a/patches/src/main/resources/addresources/values/strings.xml +++ b/patches/src/main/resources/addresources/values/strings.xml @@ -1,3 +1,4 @@ + + diff --git a/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_minimal.xml b/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_minimal.xml index f21fbb1f3..2e484170c 100644 --- a/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_minimal.xml +++ b/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_minimal.xml @@ -1,4 +1,5 @@ + diff --git a/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_rounded.xml b/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_rounded.xml index a5b8aef86..4bb8e855a 100644 --- a/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_rounded.xml +++ b/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_rounded.xml @@ -1,4 +1,5 @@ + diff --git a/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_scaled.xml b/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_scaled.xml index f5126df71..2e2590863 100644 --- a/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_scaled.xml +++ b/patches/src/main/resources/custom-branding/mipmap-anydpi/revanced_launcher_scaled.xml @@ -1,4 +1,5 @@ + diff --git a/patches/src/main/resources/custom-branding/mipmap-hdpi/revanced_adaptive_foreground_custom.png b/patches/src/main/resources/custom-branding/mipmap-hdpi/revanced_adaptive_foreground_custom.png index c639a3d56111e6ec2c368d780e97281270889f67..315b280fb5c40221d607386d76e1f7abc804fcba 100644 GIT binary patch delta 145 zcmeyv*~~pbxt<}g#5JPCIX^cyHLrxhFTX?~Co?%UuQ)YDp)@ZgwMfA|z(-FZI5kxv zqokyu*h*hNJ+maEG)XTxKUY5}H7qeNIW&}iEBiObAE1aYF-J0Uw(-~PG)jyUU6!QLTO$~YLS9_fRCO+aB8YT zMoCFQv6a4ldS*#RX_8)Yey)B{YFJ`ka%zfxQEC~Op_^2cn3s~7m!5xHbrJ&ugIs0^ l$nb*7qRjM+5(W@Bv{J#yz{o@aqL(c-<=2w_&l?pjnE{{tGV=fc delta 10 RcmaFJev55_^2Sx>%m5ir1Q7rL diff --git a/patches/src/main/resources/custom-branding/mipmap-xhdpi/revanced_adaptive_foreground_custom.png b/patches/src/main/resources/custom-branding/mipmap-xhdpi/revanced_adaptive_foreground_custom.png index 2119d70cf3923efec77d0e8071cfaf99c9c83f2c..bb90b61d5d7b079a963219bedc7bad4f29d36e66 100644 GIT binary patch delta 145 zcmcc2dy8*^ay>&}iEBiObAE1aYF-J0Uw(-~PG)jyUU6!QLTO$~YLS9_fRCO+aB8YT zMoCFQv6a4ldS*#RX_8)Yey)B{YFJ`ka%zfxQEC~Op_^2cn3s~7m!5xHbrJ&ugIs0^ m$nb*7qRjM+5(W@Bv{J#yz{o@aqL(c-<=2w_&l?ptu>k;}<1=pn delta 10 Rcmcb`cbRvB^2Svg*Z>+f1dRXy diff --git a/patches/src/main/resources/custom-branding/mipmap-xxhdpi/revanced_adaptive_foreground_custom.png b/patches/src/main/resources/custom-branding/mipmap-xxhdpi/revanced_adaptive_foreground_custom.png index b0254084a56155696c51a3b8cf110964ca39d922..296309358afd97c0e4de3600ccdb60cf0e7009d9 100644 GIT binary patch delta 145 zcmcaCdP{7Aay>&}iEBiObAE1aYF-J0Uw(-~PG)jyUU6!QLTO$~YLS9_fRCO+aB8YT zMoCFQv6a4ldS*#RX_8)Yey)B{YFJ`ka%zfxQEC~Op_^2cn3s~7m!5xHbrJ&ugIs0^ m$nb*7qRjM+5(W@Bv{J#yz{o@aqL(c-<=2w_&l?ptaRC6S*E53v delta 10 Rcmca5c3E_S^2SvgxBwcu1fc)` diff --git a/patches/src/main/resources/custom-branding/mipmap-xxxhdpi/revanced_adaptive_foreground_custom.png b/patches/src/main/resources/custom-branding/mipmap-xxxhdpi/revanced_adaptive_foreground_custom.png index 88f8ebc40bb5c344f5e5df39d23d8f168370b0a5..917ea24cc6948c761bcf66995542b7fcf0086c1b 100644 GIT binary patch delta 145 zcmca5_fUR&}iEBiObAE1aYF-J0Uw(-~PG)jyUU6!QLTO$~YLS9_fRCO+aB8YT zMoCFQv6a4ldS*#RX_8)Yey)B{YFJ`ka%zfxQEC~Op_^2cn3s~7m!5xHbrJ&ugIs0^ l$nb*7qRjM+5(W@Bv{J#yz{o@aqL(c-<=2w_&l?pj`2o7vGcN!D delta 10 RcmaDTe@kwH^2Sx>`~Vu;1Wf<{ diff --git a/patches/src/main/resources/settings/drawable/revanced_settings_icon.xml b/patches/src/main/resources/settings/drawable/revanced_settings_icon.xml index 3c2cbe1c3..e561ea075 100644 --- a/patches/src/main/resources/settings/drawable/revanced_settings_icon.xml +++ b/patches/src/main/resources/settings/drawable/revanced_settings_icon.xml @@ -1,9 +1,4 @@ - - + Date: Wed, 8 Oct 2025 09:54:53 +0400 Subject: [PATCH 63/63] chore: Sync translations (#6078) --- .../addresources/values-af-rZA/strings.xml | 1 + .../addresources/values-am-rET/strings.xml | 1 + .../addresources/values-ar-rSA/strings.xml | 1 + .../addresources/values-as-rIN/strings.xml | 1 + .../addresources/values-az-rAZ/strings.xml | 1 + .../addresources/values-be-rBY/strings.xml | 1 + .../addresources/values-bg-rBG/strings.xml | 1 + .../addresources/values-bn-rBD/strings.xml | 1 + .../addresources/values-bs-rBA/strings.xml | 1 + .../addresources/values-ca-rES/strings.xml | 1 + .../addresources/values-cs-rCZ/strings.xml | 1 + .../addresources/values-da-rDK/strings.xml | 1 + .../addresources/values-de-rDE/strings.xml | 1 + .../addresources/values-el-rGR/strings.xml | 7 +++-- .../addresources/values-es-rES/strings.xml | 1 + .../addresources/values-et-rEE/strings.xml | 1 + .../addresources/values-eu-rES/strings.xml | 1 + .../addresources/values-fa-rIR/strings.xml | 1 + .../addresources/values-fi-rFI/strings.xml | 1 + .../addresources/values-fil-rPH/strings.xml | 1 + .../addresources/values-fr-rFR/strings.xml | 1 + .../addresources/values-ga-rIE/strings.xml | 1 + .../addresources/values-gl-rES/strings.xml | 1 + .../addresources/values-gu-rIN/strings.xml | 1 + .../addresources/values-hi-rIN/strings.xml | 1 + .../addresources/values-hr-rHR/strings.xml | 1 + .../addresources/values-hu-rHU/strings.xml | 1 + .../addresources/values-hy-rAM/strings.xml | 1 + .../addresources/values-in-rID/strings.xml | 7 +++-- .../addresources/values-is-rIS/strings.xml | 1 + .../addresources/values-it-rIT/strings.xml | 1 + .../addresources/values-iw-rIL/strings.xml | 1 + .../addresources/values-ja-rJP/strings.xml | 29 ++++++++++--------- .../addresources/values-ka-rGE/strings.xml | 1 + .../addresources/values-kk-rKZ/strings.xml | 1 + .../addresources/values-km-rKH/strings.xml | 1 + .../addresources/values-kn-rIN/strings.xml | 1 + .../addresources/values-ko-rKR/strings.xml | 1 + .../addresources/values-ky-rKG/strings.xml | 1 + .../addresources/values-lo-rLA/strings.xml | 1 + .../addresources/values-lt-rLT/strings.xml | 1 + .../addresources/values-lv-rLV/strings.xml | 1 + .../addresources/values-mk-rMK/strings.xml | 1 + .../addresources/values-ml-rIN/strings.xml | 1 + .../addresources/values-mn-rMN/strings.xml | 1 + .../addresources/values-mr-rIN/strings.xml | 1 + .../addresources/values-ms-rMY/strings.xml | 1 + .../addresources/values-my-rMM/strings.xml | 1 + .../addresources/values-nb-rNO/strings.xml | 1 + .../addresources/values-ne-rIN/strings.xml | 1 + .../addresources/values-nl-rNL/strings.xml | 1 + .../addresources/values-or-rIN/strings.xml | 1 + .../addresources/values-pa-rIN/strings.xml | 1 + .../addresources/values-pl-rPL/strings.xml | 1 + .../addresources/values-pt-rBR/strings.xml | 1 + .../addresources/values-pt-rPT/strings.xml | 1 + .../addresources/values-ro-rRO/strings.xml | 1 + .../addresources/values-ru-rRU/strings.xml | 1 + .../addresources/values-si-rLK/strings.xml | 1 + .../addresources/values-sk-rSK/strings.xml | 1 + .../addresources/values-sl-rSI/strings.xml | 1 + .../addresources/values-sq-rAL/strings.xml | 1 + .../addresources/values-sr-rCS/strings.xml | 15 +++++----- .../addresources/values-sr-rSP/strings.xml | 21 +++++++------- .../addresources/values-sv-rSE/strings.xml | 1 + .../addresources/values-sw-rKE/strings.xml | 1 + .../addresources/values-ta-rIN/strings.xml | 1 + .../addresources/values-te-rIN/strings.xml | 1 + .../addresources/values-th-rTH/strings.xml | 1 + .../addresources/values-tr-rTR/strings.xml | 1 + .../addresources/values-uk-rUA/strings.xml | 1 + .../addresources/values-ur-rIN/strings.xml | 1 + .../addresources/values-uz-rUZ/strings.xml | 1 + .../addresources/values-vi-rVN/strings.xml | 7 +++-- .../addresources/values-zh-rCN/strings.xml | 1 + .../addresources/values-zh-rTW/strings.xml | 1 + .../addresources/values-zu-rZA/strings.xml | 1 + 77 files changed, 117 insertions(+), 40 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 7a87b6c25..6b81af5f3 100644 --- a/patches/src/main/resources/addresources/values-af-rZA/strings.xml +++ b/patches/src/main/resources/addresources/values-af-rZA/strings.xml @@ -1,4 +1,5 @@ + Προσαρμοσμένο Εικονίδιο εφαρμογής - Πρωτότυπο + Αρχικό ReVanced απλό ReVanced κλιμακωμένο @@ -971,8 +972,8 @@ Second \"item\" text" Σχετικά βίντεο στην πλήρη οθόνη - Κρυμμένα\n\nΑφορά τα σχετικά βίντεο της τελικής οθόνης στη λειτουργία πλήρους οθόνης - Εμφανίζονται\n\nΑφορά τα σχετικά βίντεο της τελικής οθόνης στη λειτουργία πλήρους οθόνης + Κρυμμένα + Εμφανίζονται Χρονική πρόοδος βίντεο 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 b937384e3..535ae0622 100644 --- a/patches/src/main/resources/addresources/values-es-rES/strings.xml +++ b/patches/src/main/resources/addresources/values-es-rES/strings.xml @@ -1,4 +1,5 @@ + カスタム アプリアイコン - + オリジナル - ReVanced minimal - ReVanced スケール + ReVanced (シンプル) + ReVanced (シンボル大) カスタム @@ -613,12 +614,12 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が スワイプによる音量の変化量 オーバーレイのスタイル 横型 - 横型 (最小限 - 画面上部) - 横型 (最小限 - 画面中央) + 横型 (シンプル - 画面上部) + 横型 (シンプル - 画面中央) 円形 - 円形 (最小限) + 円形 (シンプル) 縦型 - 縦型 (最小限) + 縦型 (シンプル) スワイプによる動画の切り替えを有効化 全画面表示中に左 / 右にスワイプすると、前 / 次の動画に切り替わります 全画面表示中に左 / 右にスワイプしても、前 / 次の動画に切り替わりません @@ -1432,7 +1433,7 @@ Automotive レイアウト デフォルト 標準 - ReVanced minimal + ReVanced (シンプル) カスタム @@ -1620,14 +1621,14 @@ Automotive レイアウト スライドによるシークは無効です。プレーヤー画面を左右にスライドしても、前後にシークしません - Android VR AV1 を許可する - "ビデオコーデックはAVC (H.264)、VP9、またはAV1です + Android VR で AV1 を許可 + "ビデオ コーデックは AVC (H.264)、VP9、AV1 のいずれかになります -再生中に途切れたり、フレームがドロップすることがあります" - ビデオコーデックはAVC (H.264) またはVP9です - "この設定を有効にすると、ソフトウェアAV1デコードが使用される可能性があります。 +再生がカクつくまたはコマ落ちが発生する場合があります" + ビデオ コーデックは AVC (H.264)、VP9 のいずれかになります + "この設定を有効にすると、AV1 のソフトウェア デコードが使用される場合があります。 -AV1での動画再生は、途切れたりフレームが落ちたりする場合があります。" +AV1 での動画再生は、カクつくまたはコマ落ちが発生する場合があります。" 偽装による副作用 • 実験的なクライアントであり、いつでも動作しなくなる可能性がある • 動画が 01:00 で停止する、または一部の地域で利用できない可能性がある 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 7a87b6c25..6b81af5f3 100644 --- a/patches/src/main/resources/addresources/values-ka-rGE/strings.xml +++ b/patches/src/main/resources/addresources/values-ka-rGE/strings.xml @@ -1,4 +1,5 @@ + - Prilagođeni - Ikona aplikacije - Original + Prilagođeno + Ikonica aplikacije + Originalna ReVanced minimalna ReVanced skalirana - Prilagođeni + Prilagođeno Provere nisu uspele @@ -1620,11 +1621,11 @@ Ograničenja: Dozvoli Android VR AV1 "Video kodek je AVC (H.264), VP9 ili AV1 -Reprodukcija može da secka ili gubi okvire" +Reprodukcija može zastajkivati ili preskakati kadrove" Video kodek je AVC (H.264) ili VP9 - "Omogućavanje ovog podešavanja može koristiti softversko AV1 dekodiranje. + "Omogućavanje ove opcije može koristiti softversko dekodiranje AV1. -Reprodukcija video zapisa sa AV1 može seckati ili ispuštati frejmove." +Reprodukcija videa s AV1 može zastajkivati ili preskakati kadrove." Neželjeni efekti lažiranja • Eksperimentalni klijent i može prestati da radi bilo kada • Video se može zaustaviti u 1:00 ili možda neće biti dostupan u nekim regionima 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 99a4c86e6..8a9e2315f 100644 --- a/patches/src/main/resources/addresources/values-sr-rSP/strings.xml +++ b/patches/src/main/resources/addresources/values-sr-rSP/strings.xml @@ -1,4 +1,5 @@ + - Прилагођени - Икона апликације - Оригинал + Прилагођено + Иконица апликације + Оригинална - ReVanced минималистички - ReVanced скалирано + ReVanced минимална + ReVanced скалирана - Прилагођени + Прилагођено Провере нису успеле @@ -1620,14 +1621,14 @@ Second \"item\" text" Превлачење за премотавање није омогућено - Дозволи Андроид VR AV1 + Дозволи Android VR AV1 "Видео кодек је AVC (H.264), VP9 или AV1 -Репродукција може сецкати или испуштати кадрове" +Репродукција може застајкивати или прескакати кадрове" Видео кодек је AVC (H.264) или VP9 - "Омогућавање ове поставке може користити софтверско AV1 декодирање. + "Омогућавање ове опцијеможе користити софтверско декодирање AV1. -Репродукција видеа са AV1 може успорити или испуштати кадрове." +Репродукција видеа с AV1 може застајкивати или прескакати кадрове." Нежељени ефекти лажирања • Експериментални клијент и може престати да ради било када • Видео се може зауставити на 1:00 или можда неће бити доступан у неким регионима 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 a4c4dfdf3..a5b569f03 100644 --- a/patches/src/main/resources/addresources/values-sv-rSE/strings.xml +++ b/patches/src/main/resources/addresources/values-sv-rSE/strings.xml @@ -1,4 +1,5 @@ +