diff --git a/app/src/main/java/com/wmods/wppenhacer/xposed/core/devkit/Unobfuscator.java b/app/src/main/java/com/wmods/wppenhacer/xposed/core/devkit/Unobfuscator.java index 7e3652a9..055723af 100644 --- a/app/src/main/java/com/wmods/wppenhacer/xposed/core/devkit/Unobfuscator.java +++ b/app/src/main/java/com/wmods/wppenhacer/xposed/core/devkit/Unobfuscator.java @@ -209,7 +209,8 @@ public synchronized static Method loadForwardTagMethod(ClassLoader classLoader) for (var invoke : invokes) { var method = invoke.getMethodInstance(classLoader); if (method.getParameterCount() == 1 - && method.getParameterTypes()[0] == int.class + && (method.getParameterTypes()[0] == int.class + || method.getParameterTypes()[0] == long.class) && method.getDeclaringClass() == messageInfoClass && method.getReturnType() == void.class) { return method; @@ -278,7 +279,7 @@ public synchronized static Method loadTabListMethod(ClassLoader classLoader) thr public synchronized static Method loadGetTabMethod(ClassLoader classLoader) throws Exception { return UnobfuscatorCache.getInstance().getMethod(classLoader, () -> { - Method result = findFirstMethodUsingStringsFilter(classLoader, "X.", StringMatchType.Contains, "Invalid tab id: 600"); + Method result = findFirstMethodUsingStringsFilter(classLoader, "X.", StringMatchType.Contains, "No HomeFragment mapping for community tab id:"); if (result == null) throw new Exception("GetTab method not found"); return result; }); @@ -498,7 +499,7 @@ public synchronized static Method loadStatusActivePage(ClassLoader classLoader) public synchronized static Class loadStatusDownloadMediaClass(ClassLoader classLoader) throws Exception { return UnobfuscatorCache.getInstance().getClass(classLoader, () -> { - var clazz = findFirstClassUsingStrings(classLoader, StringMatchType.Contains, "FMessageVideo/Cloned"); + var clazz = findFirstClassUsingStrings(classLoader, StringMatchType.Contains, "static.whatsapp.net/downloadable?category=PSA"); if (clazz == null) throw new Exception("StatusDownloadMedia class not found"); return clazz; }); @@ -1428,8 +1429,15 @@ public synchronized static Field loadOriginFMessageField(ClassLoader classLoader public synchronized static Method loadForwardAudioTypeMethod(ClassLoader classLoader) throws Exception { return UnobfuscatorCache.getInstance().getMethod(classLoader, () -> { - var result = findFirstMethodUsingStrings(classLoader, StringMatchType.Contains, "forwardable", "FMessageFactory/newFMessageForForward/thumbnail"); - if (result == null) throw new RuntimeException("ForwardAudioType method not found"); + var results = findAllMethodUsingStrings(classLoader, StringMatchType.Contains, "FMessageFactory/newFMessageForForward/thumbnail"); + if (results == null || results.length < 1) throw new RuntimeException("ForwardAudioType method not found"); + Method result; + if (results.length > 1) { + result = findFirstMethodUsingStrings(classLoader, StringMatchType.Contains, "forwardable", "FMessageFactory/newFMessageForForward/thumbnail"); + } else { + // 2.24.18.xx returns one method + result = results[0]; + } return result; }); } diff --git a/app/src/main/java/com/wmods/wppenhacer/xposed/features/privacy/HideTagForward.java b/app/src/main/java/com/wmods/wppenhacer/xposed/features/privacy/HideTagForward.java index 5dd56c8b..05805602 100644 --- a/app/src/main/java/com/wmods/wppenhacer/xposed/features/privacy/HideTagForward.java +++ b/app/src/main/java/com/wmods/wppenhacer/xposed/features/privacy/HideTagForward.java @@ -28,7 +28,7 @@ public void doHook() throws Exception { @Override protected void beforeHookedMethod(MethodHookParam param) throws Throwable { if (!prefs.getBoolean("hidetag", false)) return; - var arg = (int) param.args[0]; + var arg = (long) param.args[0]; if (arg == 1) { if (ReflectionUtils.isCalledFromClass(forwardClass)) { param.args[0] = 0; diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 3fa5567a..026c99f2 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -120,6 +120,7 @@ 2.24.15.xx 2.24.16.xx 2.24.17.xx + 2.24.18.xx 2.24.12.xx