Skip to content

Commit e291d11

Browse files
committed
Add Initial support to beta 2.24.24.XX
1 parent 04d6e3d commit e291d11

File tree

4 files changed

+25
-14
lines changed

4 files changed

+25
-14
lines changed

app/src/main/java/com/wmods/wppenhacer/xposed/core/components/FMessageWpp.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class FMessageWpp {
1717
private static Method userJidMethod;
1818
private static Field keyMessage;
1919
private static Field getFieldIdMessage;
20-
private static Method deviceJidMethod;
20+
private static Field deviceJidField;
2121
private static Method messageMethod;
2222
private static Method messageWithMediaMethod;
2323
private static Field mediaTypeField;
@@ -46,7 +46,8 @@ public static void init(ClassLoader classLoader) throws Exception {
4646
messageMethod = Unobfuscator.loadNewMessageMethod(classLoader);
4747
messageWithMediaMethod = Unobfuscator.loadNewMessageWithMediaMethod(classLoader);
4848
getFieldIdMessage = Unobfuscator.loadSetEditMessageField(classLoader);
49-
deviceJidMethod = ReflectionUtils.findMethodUsingFilter(TYPE, method -> method.getReturnType().equals(XposedHelpers.findClass("com.whatsapp.jid.DeviceJid", classLoader)));
49+
var deviceJidClass = XposedHelpers.findClass("com.whatsapp.jid.DeviceJid", classLoader);
50+
deviceJidField = ReflectionUtils.findFieldUsingFilter(TYPE, field -> field.getType() == deviceJidClass);
5051
mediaTypeField = Unobfuscator.loadMediaTypeField(classLoader);
5152
getOriginalMessageKey = Unobfuscator.loadOriginalMessageKey(classLoader);
5253
abstractMediaMessageClass = Unobfuscator.loadAbstractMediaMessageClass(classLoader);
@@ -63,7 +64,7 @@ public Object getUserJid() {
6364

6465
public Object getDeviceJid() {
6566
try {
66-
return deviceJidMethod.invoke(fmessage);
67+
return deviceJidField.get(fmessage);
6768
} catch (Exception e) {
6869
XposedBridge.log(e);
6970
}

app/src/main/java/com/wmods/wppenhacer/xposed/core/devkit/Unobfuscator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1726,6 +1726,10 @@ public static synchronized Class loadUnkTranscript(ClassLoader classLoader) thro
17261726
});
17271727
}
17281728

1729+
public static synchronized Class loadTranscriptSegment(ClassLoader classLoader) throws Exception {
1730+
return UnobfuscatorCache.getInstance().getClass(classLoader, () -> findFirstClassUsingStrings(classLoader, StringMatchType.Contains, "TranscriptionSegment("));
1731+
}
1732+
17291733
public static synchronized Method loadStateChangeMethod(ClassLoader classLoader) throws Exception {
17301734
return UnobfuscatorCache.getInstance().getMethod(classLoader, () -> findFirstMethodUsingStrings(classLoader, StringMatchType.Contains, "presencestatemanager/startTransitionToUnavailable/new-state"));
17311735
}

app/src/main/java/com/wmods/wppenhacer/xposed/features/others/AudioTranscript.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.wmods.wppenhacer.xposed.core.Feature;
1212
import com.wmods.wppenhacer.xposed.core.components.FMessageWpp;
1313
import com.wmods.wppenhacer.xposed.core.devkit.Unobfuscator;
14+
import com.wmods.wppenhacer.xposed.utils.DebugUtils;
1415
import com.wmods.wppenhacer.xposed.utils.ReflectionUtils;
1516

1617
import java.io.File;
@@ -19,6 +20,7 @@
1920
import de.robv.android.xposed.XC_MethodHook;
2021
import de.robv.android.xposed.XSharedPreferences;
2122
import de.robv.android.xposed.XposedBridge;
23+
import de.robv.android.xposed.XposedHelpers;
2224

2325
public class AudioTranscript extends Feature {
2426

@@ -30,26 +32,38 @@ public AudioTranscript(@NonNull ClassLoader classLoader, @NonNull XSharedPrefere
3032
@Override
3133
public void doHook() throws Throwable {
3234

35+
XposedHelpers.findAndHookMethod("X.Agd", classLoader, "C8L", classLoader.loadClass("X.9zA"), classLoader.loadClass("X.22R"), classLoader.loadClass("java.lang.String"), classLoader.loadClass("java.util.List"),
36+
DebugUtils.getDebugMethodHook(false, false, true, false));
37+
3338
if (!prefs.getBoolean("assemblyai", false) || TextUtils.isEmpty(prefs.getString("assemblyai_key", "")))
3439
return;
3540

3641

3742
var transcribeMethod = Unobfuscator.loadTranscribeMethod(classLoader);
38-
var unkTranscript = Unobfuscator.loadUnkTranscript(classLoader);
43+
var unkTranscriptClass = Unobfuscator.loadUnkTranscript(classLoader);
44+
Class<?> TranscriptionSegmentClass = Unobfuscator.loadTranscriptSegment(classLoader);
3945

4046
XposedBridge.hookMethod(transcribeMethod, new XC_MethodHook() {
4147
@Override
4248
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
49+
DebugUtils.debugArgs(param.args);
4350
var pttTranscriptionRequest = param.args[0];
4451
var fieldFMessage = ReflectionUtils.getFieldByExtendType(pttTranscriptionRequest.getClass(), FMessageWpp.TYPE);
4552
var fmessageObj = fieldFMessage.get(pttTranscriptionRequest);
4653
var fmessage = new FMessageWpp(fmessageObj);
4754
File file = fmessage.getMediaFile();
4855
var callback = param.args[1];
56+
var mEnglishInstance = ReflectionUtils.getFieldByExtendType(unkTranscriptClass, unkTranscriptClass).get(null);
4957
var onComplete = ReflectionUtils.findMethodUsingFilter(callback.getClass(), method -> method.getParameterCount() == 4);
5058
String transcript = runTranscript(file);
51-
var unkTranscriptInstance = unkTranscript.getField("A00").get(null);
52-
ReflectionUtils.callMethod(onComplete, callback, unkTranscriptInstance, fmessageObj, transcript, new ArrayList<>());
59+
var segments = new ArrayList<>();
60+
var words = transcript.split(" ");
61+
var totalLength = 0;
62+
for (var word : words) {
63+
segments.add(XposedHelpers.newInstance(TranscriptionSegmentClass, totalLength, word.length(), 100, -1, -1));
64+
totalLength += word.length() + 1;
65+
}
66+
ReflectionUtils.callMethod(onComplete, callback, mEnglishInstance, fmessageObj, transcript, segments);
5367
param.setResult(null);
5468
}
5569
});

app/src/main/res/values/arrays.xml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -115,20 +115,12 @@
115115
<item>2</item>
116116
</string-array>
117117
<string-array name="supported_versions_wpp">
118-
<item>2.24.16.xx</item>
119-
<item>2.24.17.xx</item>
120-
<item>2.24.18.xx</item>
121-
<item>2.24.19.xx</item>
122118
<item>2.24.20.xx</item>
123119
<item>2.24.21.xx</item>
124120
<item>2.24.22.xx</item>
125121
<item>2.24.23.xx</item>
126122
</string-array>
127123
<string-array name="supported_versions_business">
128-
<item>2.24.16.xx</item>
129-
<item>2.24.17.xx</item>
130-
<item>2.24.18.xx</item>
131-
<item>2.24.19.xx</item>
132124
<item>2.24.20.xx</item>
133125
<item>2.24.21.xx</item>
134126
<item>2.24.22.xx</item>

0 commit comments

Comments
 (0)