From 8074032fad3eff1c03296a882d2e2820da99b592 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sun, 22 Sep 2024 01:17:53 +0200 Subject: [PATCH] fix(TikTok - Settings): Prevent crash by fixing invalid patch --- .../tiktok/misc/settings/SettingsPatch.kt | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt b/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt index f3d5a2b0a..9dfdd86d2 100644 --- a/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt @@ -25,8 +25,8 @@ import com.android.tools.smali.dexlib2.iface.reference.FieldReference dependencies = [IntegrationsPatch::class], compatiblePackages = [ CompatiblePackage("com.ss.android.ugc.trill", ["32.5.3"]), - CompatiblePackage("com.zhiliaoapp.musically", ["32.5.3"]) - ] + CompatiblePackage("com.zhiliaoapp.musically", ["32.5.3"]), + ], ) object SettingsPatch : BytecodePatch( setOf( @@ -34,21 +34,21 @@ object SettingsPatch : BytecodePatch( AddSettingsEntryFingerprint, SettingsEntryFingerprint, SettingsEntryInfoFingerprint, - ) + ), ) { private const val INTEGRATIONS_CLASS_DESCRIPTOR = "Lapp/revanced/integrations/tiktok/settings/AdPersonalizationActivityHook;" private const val INITIALIZE_SETTINGS_METHOD_DESCRIPTOR = "$INTEGRATIONS_CLASS_DESCRIPTOR->initialize(" + - "Lcom/bytedance/ies/ugc/aweme/commercialize/compliance/personalization/AdPersonalizationActivity;" + - ")Z" + "Lcom/bytedance/ies/ugc/aweme/commercialize/compliance/personalization/AdPersonalizationActivity;" + + ")Z" private const val CREATE_SETTINGS_ENTRY_METHOD_DESCRIPTOR = "$INTEGRATIONS_CLASS_DESCRIPTOR->createSettingsEntry(" + - "Ljava/lang/String;" + - "Ljava/lang/String;" + - ")Ljava/lang/Object;" + "Ljava/lang/String;" + + "Ljava/lang/String;" + + ")Ljava/lang/Object;" override fun execute(context: BytecodeContext) { // Find the class name of classes which construct a settings entry @@ -70,8 +70,8 @@ object SettingsPatch : BytecodePatch( markIndex + 2, listOf( getUnitManager, - addEntry - ) + addEntry, + ), ) addInstructions( @@ -81,7 +81,8 @@ object SettingsPatch : BytecodePatch( const-string v1, "$settingsButtonInfoClass" invoke-static {v0, v1}, $CREATE_SETTINGS_ENTRY_METHOD_DESCRIPTOR move-result-object v0 - """ + check-cast v0, ${SettingsEntryFingerprint.result!!.classDef} + """, ) } ?: throw AddSettingsEntryFingerprint.exception @@ -102,12 +103,10 @@ object SettingsPatch : BytecodePatch( if-eqz v$usableRegister, :do_not_open return-void """, - ExternalLabel("do_not_open", getInstruction(initializeSettingsIndex)) + ExternalLabel("do_not_open", getInstruction(initializeSettingsIndex)), ) } ?: throw AdPersonalizationActivityOnCreateFingerprint.exception } - private fun String.toClassName(): String { - return substring(1, this.length - 1).replace("/", ".") - } -} \ No newline at end of file + private fun String.toClassName(): String = substring(1, this.length - 1).replace("/", ".") +}