LockAgent: Add option to synthesize Java crash logging
Add the ability to dump a "crash" to logcat.
Test: m
Test: manual
Change-Id: I0692a91df995883e526a718fe95f0d3568ac9328
diff --git a/tools/lock_agent/agent.cpp b/tools/lock_agent/agent.cpp
index 5b1d52e..c639427 100644
--- a/tools/lock_agent/agent.cpp
+++ b/tools/lock_agent/agent.cpp
@@ -68,6 +68,7 @@
JavaVM* gJavaVM = nullptr;
bool gForkCrash = false;
+bool gJavaCrash = false;
// Converts a class name to a type descriptor
// (ex. "java.lang.String" to "Ljava/lang/String;")
@@ -394,6 +395,8 @@
for (const std::string& c : config) {
if (c == "native_crash") {
gForkCrash = true;
+ } else if (c == "java_crash") {
+ gJavaCrash = true;
}
}
@@ -405,6 +408,11 @@
return gForkCrash ? JNI_TRUE : JNI_FALSE;
}
+extern "C" JNIEXPORT jboolean JNICALL
+Java_com_android_lock_1checker_LockHook_getSimulateCrashConfig(JNIEnv*, jclass) {
+ return gJavaCrash ? JNI_TRUE : JNI_FALSE;
+}
+
extern "C" JNIEXPORT void JNICALL Java_com_android_lock_1checker_LockHook_nWtf(JNIEnv* env, jclass,
jstring msg) {
if (!gForkCrash || msg == nullptr) {