From 69600d08a487a88ae33ba314e2109de962a9365e Mon Sep 17 00:00:00 2001 From: brosssh <44944126+brosssh@users.noreply.github.com> Date: Fri, 27 Jun 2025 16:03:07 +0200 Subject: [PATCH] fix(Spotify - Spoof client patch): Block sending bad integrity verdicts to potentially fix account suspensions (#5274) Co-authored-by: oSumAtrIX --- .../app/revanced/patches/spotify/misc/fix/Fingerprints.kt | 8 ++++++++ .../revanced/patches/spotify/misc/fix/SpoofClientPatch.kt | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/patches/src/main/kotlin/app/revanced/patches/spotify/misc/fix/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/spotify/misc/fix/Fingerprints.kt index f1600861a..dff859cfb 100644 --- a/patches/src/main/kotlin/app/revanced/patches/spotify/misc/fix/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/spotify/misc/fix/Fingerprints.kt @@ -19,3 +19,11 @@ internal val startupPageLayoutInflateFingerprint = fingerprint { parameters("Landroid/view/LayoutInflater;", "Landroid/view/ViewGroup;", "Landroid/os/Bundle;") strings("blueprintContainer", "gradient", "valuePropositionTextView") } + +internal val standardIntegrityTokenProviderBuilderFingerprint = fingerprint { + strings( + "standard_pi_init", + "outcome", + "success" + ) +} diff --git a/patches/src/main/kotlin/app/revanced/patches/spotify/misc/fix/SpoofClientPatch.kt b/patches/src/main/kotlin/app/revanced/patches/spotify/misc/fix/SpoofClientPatch.kt index 70339813d..e34bcebaa 100644 --- a/patches/src/main/kotlin/app/revanced/patches/spotify/misc/fix/SpoofClientPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/spotify/misc/fix/SpoofClientPatch.kt @@ -12,6 +12,7 @@ import app.revanced.patches.spotify.misc.extension.sharedExtensionPatch import app.revanced.util.findInstructionIndicesReversedOrThrow 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.instruction.OneRegisterInstruction import com.android.tools.smali.dexlib2.iface.reference.MethodReference @@ -118,5 +119,8 @@ val spoofClientPatch = bytecodePatch( """ ) } + + // Early return to block sending bad verdicts to the API. + standardIntegrityTokenProviderBuilderFingerprint.method.returnEarly() } }