From 6d10477faae9b16a34ad061f3f263e9f3c969bbf Mon Sep 17 00:00:00 2001 From: areteruhiro <108941410+areteruhiro@users.noreply.github.com> Date: Tue, 14 Jan 2025 12:22:56 +0900 Subject: [PATCH] =?UTF-8?q?=E5=B8=B8=E3=81=AB=E3=83=9F=E3=83=A5=E3=83=BC?= =?UTF-8?q?=E3=83=88=E3=83=A1=E3=83=83=E3=82=BB=E3=83=BC=E3=82=B8=E3=80=80?= =?UTF-8?q?=E6=A9=9F=E8=83=BD=E3=81=AB=E4=BC=B4=E3=81=86=E3=83=90=E3=82=B0?= =?UTF-8?q?=E3=81=AE=E4=BF=AE=E6=AD=A3(=E3=83=A9=E3=83=99=E3=83=AB?= =?UTF-8?q?=E3=83=AA=E3=82=BD=E3=83=BC=E3=82=B9=E3=81=AE=E7=BD=AE=E6=8F=9B?= =?UTF-8?q?)=20(#231)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lime/hooks/SendMuteMessage.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/app/src/main/java/io/github/chipppppppppp/lime/hooks/SendMuteMessage.java b/app/src/main/java/io/github/chipppppppppp/lime/hooks/SendMuteMessage.java index 41b7780b..588e9752 100644 --- a/app/src/main/java/io/github/chipppppppppp/lime/hooks/SendMuteMessage.java +++ b/app/src/main/java/io/github/chipppppppppp/lime/hooks/SendMuteMessage.java @@ -1,7 +1,9 @@ package io.github.chipppppppppp.lime.hooks; +import android.annotation.SuppressLint; import android.content.Context; import android.content.ContextWrapper; +import android.content.res.Resources; import android.view.ViewGroup; import android.widget.ListView; import android.widget.TextView; @@ -10,10 +12,13 @@ import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XposedBridge; +import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPackage; import io.github.chipppppppppp.lime.LimeOptions; public class SendMuteMessage implements IHook { + private static boolean isHandlingHook = false; + @Override public void hook(LimeOptions limeOptions, XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable { if (!limeOptions.sendMuteMessage.checked) return; @@ -33,6 +38,42 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { } } ); + XposedHelpers.findAndHookMethod( + "android.content.res.Resources", + loadPackageParam.classLoader, + "getString", + int.class, + new XC_MethodHook() { + + + @Override + protected void afterHookedMethod(MethodHookParam param) throws Throwable { + if (isHandlingHook) { + return; + } + + int resourceId = (int) param.args[0]; + Resources resources = (Resources) param.thisObject; + + try { + isHandlingHook = true; + + if (resourceId == 2132085513) { + @SuppressLint("ResourceType") String replacement = resources.getString(2132085514); + param.setResult(replacement); + } else if (resourceId == 2132085514) { + @SuppressLint("ResourceType") String replacement = resources.getString(2132085513); + param.setResult(replacement); + } + } finally { + isHandlingHook = false; + } + } + + + } + ); + XposedBridge.hookAllMethods( ListView.class,