fix(YouTube/Integrations): skip patches even in versions where fingerprints are still used

This commit is contained in:
inotia00
2024-09-27 19:03:18 +09:00
parent 96dc5cff5d
commit 79bfd1e3ef

View File

@ -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 {