Remove special case for logFields, simplify logs

- Run logFields only when spoofProvider, spoofBuild, or spoofSignature is on
- Simplify log outputs; PS -> Play Store, DG -> DroidGuard
This commit is contained in:
Nicholas Bissell
2025-02-07 19:16:29 +00:00
committed by Chris Renshaw
parent 8805c3736d
commit 11e2629a26
2 changed files with 10 additions and 10 deletions

View File

@@ -169,9 +169,7 @@ public:
else spoofVendingSdk = 0; else spoofVendingSdk = 0;
if (spoofProps > 0) doHook(); if (spoofProps > 0) doHook();
if (spoofBuild + spoofProvider + spoofSignature + spoofVendingSdk > 0 || if (spoofBuild + spoofProvider + spoofSignature + spoofVendingSdk > 0) inject();
pkgName == DROIDGUARD_PACKAGE && verboseLogs > 99)
inject();
dexVector.clear(); dexVector.clear();
json.clear(); json.clear();
@@ -278,18 +276,20 @@ private:
} }
void inject() { void inject() {
LOGD("JNI %s: Getting system classloader", pkgName.c_str()); const char* niceName = pkgName == VENDING_PACKAGE ? "PS" : "DG";
LOGD("JNI %s: Getting system classloader", niceName);
auto clClass = env->FindClass("java/lang/ClassLoader"); auto clClass = env->FindClass("java/lang/ClassLoader");
auto getSystemClassLoader = env->GetStaticMethodID(clClass, "getSystemClassLoader", "()Ljava/lang/ClassLoader;"); auto getSystemClassLoader = env->GetStaticMethodID(clClass, "getSystemClassLoader", "()Ljava/lang/ClassLoader;");
auto systemClassLoader = env->CallStaticObjectMethod(clClass, getSystemClassLoader); auto systemClassLoader = env->CallStaticObjectMethod(clClass, getSystemClassLoader);
LOGD("JNI %s: Creating module classloader", pkgName.c_str()); LOGD("JNI %s: Creating module classloader", niceName);
auto dexClClass = env->FindClass("dalvik/system/InMemoryDexClassLoader"); auto dexClClass = env->FindClass("dalvik/system/InMemoryDexClassLoader");
auto dexClInit = env->GetMethodID(dexClClass, "<init>", "(Ljava/nio/ByteBuffer;Ljava/lang/ClassLoader;)V"); 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 buffer = env->NewDirectByteBuffer(dexVector.data(), static_cast<jlong>(dexVector.size()));
auto dexCl = env->NewObject(dexClClass, dexClInit, buffer, systemClassLoader); auto dexCl = env->NewObject(dexClClass, dexClInit, buffer, systemClassLoader);
LOGD("JNI %s: Loading module class", pkgName.c_str()); LOGD("JNI %s: Loading module class", niceName);
auto loadClass = env->GetMethodID(clClass, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;"); auto loadClass = env->GetMethodID(clClass, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
const char* className = pkgName == VENDING_PACKAGE ? "es.chiteroman.playintegrityfix.EntryPointVending" : "es.chiteroman.playintegrityfix.EntryPoint"; const char* className = pkgName == VENDING_PACKAGE ? "es.chiteroman.playintegrityfix.EntryPointVending" : "es.chiteroman.playintegrityfix.EntryPoint";
auto entryClassName = env->NewStringUTF(className); auto entryClassName = env->NewStringUTF(className);
@@ -298,16 +298,16 @@ private:
auto entryClass = (jclass) entryClassObj; auto entryClass = (jclass) entryClassObj;
if (pkgName == VENDING_PACKAGE) { if (pkgName == VENDING_PACKAGE) {
LOGD("JNI %s: Calling EntryPointVending.init", pkgName.c_str()); LOGD("JNI %s: Calling EntryPointVending.init", niceName);
auto entryInit = env->GetStaticMethodID(entryClass, "init", "(II)V"); auto entryInit = env->GetStaticMethodID(entryClass, "init", "(II)V");
env->CallStaticVoidMethod(entryClass, entryInit, verboseLogs, spoofVendingSdk); env->CallStaticVoidMethod(entryClass, entryInit, verboseLogs, spoofVendingSdk);
} else { } else {
LOGD("JNI %s: Sending JSON", pkgName.c_str()); LOGD("JNI %s: Sending JSON", niceName);
auto receiveJson = env->GetStaticMethodID(entryClass, "receiveJson", "(Ljava/lang/String;)V"); auto receiveJson = env->GetStaticMethodID(entryClass, "receiveJson", "(Ljava/lang/String;)V");
auto javaStr = env->NewStringUTF(json.dump().c_str()); auto javaStr = env->NewStringUTF(json.dump().c_str());
env->CallStaticVoidMethod(entryClass, receiveJson, javaStr); env->CallStaticVoidMethod(entryClass, receiveJson, javaStr);
LOGD("JNI %s: Calling EntryPoint.init", pkgName.c_str()); LOGD("JNI %s: Calling EntryPoint.init", niceName);
auto entryInit = env->GetStaticMethodID(entryClass, "init", "(IIII)V"); auto entryInit = env->GetStaticMethodID(entryClass, "init", "(IIII)V");
env->CallStaticVoidMethod(entryClass, entryInit, verboseLogs, spoofBuild, spoofProvider, spoofSignature); env->CallStaticVoidMethod(entryClass, entryInit, verboseLogs, spoofBuild, spoofProvider, spoofSignature);
} }

View File

@@ -8,7 +8,7 @@ import android.util.Log;
public final class EntryPointVending { public final class EntryPointVending {
private static void LOG(String msg) { private static void LOG(String msg) {
Log.d("PIF/Java:vending", msg); Log.d("PIF/Java:PS", msg);
} }
@SuppressLint("DefaultLocale") @SuppressLint("DefaultLocale")