From 82b0ada66265f053571b51e953b70ecb9c587c62 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Wed, 18 Oct 2023 12:11:21 +0900 Subject: [PATCH] fix(YouTube/Hide account menu): improve patch method --- .../general/accountmenu/AccountMenuPatch.kt | 28 ++++++++----------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/accountmenu/AccountMenuPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/accountmenu/AccountMenuPatch.kt index 00302aa9f..d0ec9e4a5 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/accountmenu/AccountMenuPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/accountmenu/AccountMenuPatch.kt @@ -13,7 +13,7 @@ import app.revanced.patches.youtube.general.accountmenu.fingerprints.AccountMenu import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch import app.revanced.patches.youtube.utils.settings.SettingsPatch import app.revanced.util.integrations.Constants.GENERAL -import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction +import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction @Patch( name = "Hide account menu", @@ -49,27 +49,23 @@ object AccountMenuPatch : BytecodePatch( override fun execute(context: BytecodeContext) { AccountMenuParentFingerprint.result?.let { parentResult -> - AccountMenuFingerprint.also { it.resolve(context, parentResult.classDef) }.result?.let { + AccountMenuFingerprint.also { + it.resolve( + context, + parentResult.classDef + ) + }.result?.let { it.mutableMethod.apply { - val targetIndex = it.scanResult.patternScanResult!!.startIndex + 1 - val register = getInstruction(targetIndex).registerA + val targetIndex = it.scanResult.patternScanResult!!.startIndex + 2 + val targetInstruction = getInstruction(targetIndex) addInstruction( - targetIndex + 1, - "invoke-static {v$register}, $GENERAL->hideAccountMenu(Landroid/text/Spanned;)V" + targetIndex, + "invoke-static {v${targetInstruction.registerC}, v${targetInstruction.registerD}}, " + + "$GENERAL->hideAccountMenu(Landroid/view/View;Ljava/lang/CharSequence;)V" ) } } ?: throw AccountMenuFingerprint.exception - - parentResult.mutableMethod.apply { - val endIndex = parentResult.scanResult.patternScanResult!!.endIndex - val register = getInstruction(endIndex).registerA - - addInstruction( - endIndex + 1, - "sput-object v$register, $GENERAL->compactLink:Landroid/view/View;" - ) - } } ?: throw AccountMenuParentFingerprint.exception /**