diff --git a/extensions/shared/src/main/java/app/revanced/extension/music/settings/Settings.java b/extensions/shared/src/main/java/app/revanced/extension/music/settings/Settings.java
index 175960cca..541234ec6 100644
--- a/extensions/shared/src/main/java/app/revanced/extension/music/settings/Settings.java
+++ b/extensions/shared/src/main/java/app/revanced/extension/music/settings/Settings.java
@@ -19,6 +19,7 @@ import app.revanced.extension.shared.settings.IntegerSetting;
import app.revanced.extension.shared.settings.LongSetting;
import app.revanced.extension.shared.settings.Setting;
import app.revanced.extension.shared.settings.StringSetting;
+import app.revanced.extension.shared.utils.Logger;
import app.revanced.extension.shared.utils.Utils;
@@ -230,6 +231,16 @@ public class Settings extends BaseSettings {
public static final LongSetting SB_LAST_VIP_CHECK = new LongSetting("sb_last_vip_check", 0L, false, false);
static {
+ // region Migration
+
+ // Old spoof versions that no longer work reliably.
+ if (SPOOF_APP_VERSION_TARGET.get().compareTo(SPOOF_APP_VERSION_TARGET.defaultValue) < 0) {
+ Logger.printInfo(() -> "Resetting spoof app version target");
+ SPOOF_APP_VERSION_TARGET.resetToDefault();
+ }
+
+ // endregion
+
// region SB import/export callbacks
Setting.addImportExportCallback(SponsorBlockSettings.SB_IMPORT_EXPORT_CALLBACK);
diff --git a/patches/src/main/kotlin/app/revanced/patches/music/general/spoofappversion/SpoofAppVersionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/general/spoofappversion/SpoofAppVersionPatch.kt
index 1cfc4789a..f910e84d1 100644
--- a/patches/src/main/kotlin/app/revanced/patches/music/general/spoofappversion/SpoofAppVersionPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/music/general/spoofappversion/SpoofAppVersionPatch.kt
@@ -3,11 +3,11 @@ package app.revanced.patches.music.general.spoofappversion
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.patch.resourcePatch
-import app.revanced.patches.music.general.oldstylelibraryshelf.oldStyleLibraryShelfPatch
import app.revanced.patches.music.utils.compatibility.Constants.YOUTUBE_MUSIC_PACKAGE_NAME
import app.revanced.patches.music.utils.extension.Constants.GENERAL_CLASS_DESCRIPTOR
import app.revanced.patches.music.utils.extension.Constants.PATCH_STATUS_CLASS_DESCRIPTOR
import app.revanced.patches.music.utils.patch.PatchList.SPOOF_APP_VERSION
+import app.revanced.patches.music.utils.playservice.is_6_43_or_greater
import app.revanced.patches.music.utils.playservice.is_7_17_or_greater
import app.revanced.patches.music.utils.playservice.is_7_25_or_greater
import app.revanced.patches.music.utils.playservice.versionCheckPatch
@@ -32,7 +32,7 @@ private val spoofAppVersionBytecodePatch = bytecodePatch(
)
execute {
- if (is_7_25_or_greater) {
+ if (!is_6_43_or_greater || is_7_25_or_greater) {
return@execute
}
if (is_7_17_or_greater) {
@@ -61,9 +61,6 @@ val spoofAppVersionPatch = resourcePatch(
) {
compatibleWith(
YOUTUBE_MUSIC_PACKAGE_NAME(
- "6.20.51",
- "6.29.59",
- "6.42.55",
"6.51.53",
"7.16.53",
),
@@ -71,14 +68,13 @@ val spoofAppVersionPatch = resourcePatch(
dependsOn(
spoofAppVersionBytecodePatch,
- oldStyleLibraryShelfPatch,
settingsPatch,
versionCheckPatch,
)
execute {
- if (is_7_25_or_greater) {
- printWarn("\"${SPOOF_APP_VERSION.title}\" is not supported in this version. Use YouTube Music 7.24.51 or earlier.")
+ if (!is_6_43_or_greater || is_7_25_or_greater) {
+ printWarn("\"${SPOOF_APP_VERSION.title}\" is not supported in this version. Use YouTube Music 6.43.53 ~ 7.24.51.")
return@execute
}
if (is_7_17_or_greater) {
diff --git a/patches/src/main/kotlin/app/revanced/patches/music/utils/playservice/VersionCheckPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/utils/playservice/VersionCheckPatch.kt
index 9e4c07482..f9fcceafd 100644
--- a/patches/src/main/kotlin/app/revanced/patches/music/utils/playservice/VersionCheckPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/music/utils/playservice/VersionCheckPatch.kt
@@ -11,6 +11,8 @@ var is_6_36_or_greater = false
private set
var is_6_42_or_greater = false
private set
+var is_6_43_or_greater = false
+ private set
var is_7_03_or_greater = false
private set
var is_7_06_or_greater = false
@@ -49,6 +51,7 @@ val versionCheckPatch = resourcePatch(
is_6_27_or_greater = 234412000 <= playStoreServicesVersion
is_6_36_or_greater = 240399000 <= playStoreServicesVersion
is_6_42_or_greater = 240999000 <= playStoreServicesVersion
+ is_6_43_or_greater = 241099000 <= playStoreServicesVersion
is_7_03_or_greater = 242199000 <= playStoreServicesVersion
is_7_06_or_greater = 242499000 <= playStoreServicesVersion
is_7_13_or_greater = 243199000 <= playStoreServicesVersion
diff --git a/patches/src/main/resources/music/settings/host/values/arrays.xml b/patches/src/main/resources/music/settings/host/values/arrays.xml
index ad61d6c32..4d7f253d5 100644
--- a/patches/src/main/resources/music/settings/host/values/arrays.xml
+++ b/patches/src/main/resources/music/settings/host/values/arrays.xml
@@ -70,12 +70,10 @@
- HANDLE_USERNAME
- - @string/revanced_spoof_app_version_target_entry_6_11_52
- - @string/revanced_spoof_app_version_target_entry_4_27_53
+ - @string/revanced_spoof_app_version_target_entry_6_42_55
- - 6.11.52
- - 4.27.53
+ - 6.42.55
- @string/revanced_spoof_client_type_entry_ios_music_6_21
diff --git a/patches/src/main/resources/music/settings/host/values/strings.xml b/patches/src/main/resources/music/settings/host/values/strings.xml
index 002e56489..2c400f9e3 100644
--- a/patches/src/main/resources/music/settings/host/values/strings.xml
+++ b/patches/src/main/resources/music/settings/host/values/strings.xml
@@ -197,8 +197,7 @@ This does not bypass the age restriction. It just accepts it automatically."
Spoof app version target
Select the spoof app version target.
- 4.27.53 - Disable Radio mode in Canadian regions
- 6.11.52 - Disable real-time lyrics
+ 6.42.55 - Disable real-time lyrics
7.16.53 - Restore old action bar