Tidy JNI JSON sending/receiving code and logging

This commit is contained in:
osm0sis
2024-01-15 17:05:26 -04:00
parent 22e3a14a6f
commit 9a24cd6f23
2 changed files with 8 additions and 8 deletions

View File

@@ -212,30 +212,30 @@ private:
}
void inject() {
LOGD("get system classloader");
LOGD("JNI: Get system classloader");
auto clClass = env->FindClass("java/lang/ClassLoader");
auto getSystemClassLoader = env->GetStaticMethodID(clClass, "getSystemClassLoader", "()Ljava/lang/ClassLoader;");
auto systemClassLoader = env->CallStaticObjectMethod(clClass, getSystemClassLoader);
LOGD("create class loader");
LOGD("JNI: Create class loader");
auto dexClClass = env->FindClass("dalvik/system/InMemoryDexClassLoader");
auto dexClInit = env->GetMethodID(dexClClass, "<init>", "(Ljava/nio/ByteBuffer;Ljava/lang/ClassLoader;)V");
auto buffer = env->NewDirectByteBuffer(dexVector.data(), static_cast<jlong>(dexVector.size()));
auto dexCl = env->NewObject(dexClClass, dexClInit, buffer, systemClassLoader);
LOGD("load class");
LOGD("JNI: Load class");
auto loadClass = env->GetMethodID(clClass, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
auto entryClassName = env->NewStringUTF("es.chiteroman.playintegrityfix.EntryPoint");
auto entryClassObj = env->CallObjectMethod(dexCl, loadClass, entryClassName);
auto entryClass = (jclass) entryClassObj;
LOGD("read json");
auto readProps = env->GetStaticMethodID(entryClass, "readJson", "(Ljava/lang/String;)V");
LOGD("JNI: Send JSON");
auto receiveJson = env->GetStaticMethodID(entryClass, "receiveJson", "(Ljava/lang/String;)V");
auto javaStr = env->NewStringUTF(json.dump().c_str());
env->CallStaticVoidMethod(entryClass, readProps, javaStr);
env->CallStaticVoidMethod(entryClass, receiveJson, javaStr);
LOGD("call init");
LOGD("JNI: Call init");
auto entryInit = env->GetStaticMethodID(entryClass, "init", "(I)V");
env->CallStaticVoidMethod(entryClass, entryInit, VERBOSE_LOGS);
}

View File

@@ -27,7 +27,7 @@ public final class EntryPoint {
spoofDevice();
}
public static void readJson(String data) {
public static void receiveJson(String data) {
try (JsonReader reader = new JsonReader(new StringReader(data))) {
reader.beginObject();
while (reader.hasNext()) {