From 79bfd1e3ef35383283aca439010c372bb659eabb Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Fri, 27 Sep 2024 19:03:18 +0900 Subject: [PATCH] fix(YouTube/Integrations): skip patches even in versions where fingerprints are still used --- .../integrations/BaseIntegrationsPatch.kt | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/shared/integrations/BaseIntegrationsPatch.kt b/src/main/kotlin/app/revanced/patches/shared/integrations/BaseIntegrationsPatch.kt index 6d6b9c9ba..4821a5108 100644 --- a/src/main/kotlin/app/revanced/patches/shared/integrations/BaseIntegrationsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/shared/integrations/BaseIntegrationsPatch.kt @@ -6,9 +6,9 @@ import app.revanced.patcher.fingerprint.MethodFingerprint import app.revanced.patcher.patch.BytecodePatch import app.revanced.patches.shared.integrations.BaseIntegrationsPatch.IntegrationsFingerprint.IRegisterResolver import app.revanced.patches.shared.integrations.Constants.INTEGRATIONS_UTILS_CLASS_DESCRIPTOR +import app.revanced.util.exception import app.revanced.util.findMethodOrThrow import app.revanced.util.isDeprecated -import app.revanced.util.resultOrThrow import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.iface.ClassDef import com.android.tools.smali.dexlib2.iface.Method @@ -50,18 +50,21 @@ abstract class BaseIntegrationsPatch( ) { fun invoke(integrationsDescriptor: String) { - if (isDeprecated()) return + val method = result?.mutableMethod + ?: if (!isDeprecated()) { + throw exception + } else { + return + } - resultOrThrow().mutableMethod.let { method -> - val insertIndex = insertIndexResolver(method) - val contextRegister = contextRegisterResolver(method) + val insertIndex = insertIndexResolver(method) + val contextRegister = contextRegisterResolver(method) - method.addInstruction( - insertIndex, - "invoke-static/range { $contextRegister .. $contextRegister }, " + - "$integrationsDescriptor->setContext(Landroid/content/Context;)V", - ) - } + method.addInstruction( + insertIndex, + "invoke-static/range { $contextRegister .. $contextRegister }, " + + "$integrationsDescriptor->setContext(Landroid/content/Context;)V", + ) } interface IHookInsertIndexResolver : (Method) -> Int {