I'm trying to get packageInfo and hence the Signature of the app from Cpp code. Im facing JNI Error and Fatal Signal 6.
My code is:
__android_log_write(ANDROID_LOG_ERROR, "Tag", "Step 1");
jclass android_content_Context =env->GetObjectClass(activity);
jmethodID midGetPackageName = env->GetMethodID(android_content_Context, "getPackageName", "()Ljava/lang/String;");
jstring packageName = (jstring)env->CallObjectMethod(activity, midGetPackageName);
jboolean copy = false;
const char *nativeString = env->GetStringUTFChars(packageName, ©);
__android_log_write(ANDROID_LOG_ERROR, "Tag", nativeString);
__android_log_write(ANDROID_LOG_ERROR, "Tag", "Step 2");
jmethodID midGetPackageManager = env->GetMethodID(android_content_Context, "getPackageManager", "()Landroid/content/pm/PackageManager;");
__android_log_write(ANDROID_LOG_ERROR, "Tag", "Step 3");
jobject packageManager = env->CallObjectMethod(activity, midGetPackageManager);
__android_log_write(ANDROID_LOG_ERROR, "Tag", "Step 4");
jclass android_content_pm_packageManager = env->GetObjectClass(packageManager);
__android_log_write(ANDROID_LOG_ERROR, "Tag", "Step 5");
jmethodID midGetPackageInfo = env->GetMethodID(android_content_pm_packageManager, "getPackageInfo", "(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;");
__android_log_write(ANDROID_LOG_ERROR, "Tag", "Step 6");
packageManager = env->CallObjectMethod(activity, midGetPackageManager);
__android_log_write(ANDROID_LOG_ERROR, "Tag", "Step 6a");
jobject packageInfo = env->CallObjectMethod(packageManager, midGetPackageInfo);
__android_log_write(ANDROID_LOG_ERROR, "Tag", "Step 7");
jclass android_content_pm_packageInfo = env->GetObjectClass(packageInfo);
__android_log_write(ANDROID_LOG_ERROR, "Tag", "Step 8");
jfieldID midSignatureField = env->GetFieldID(android_content_pm_packageInfo, "signatures", "[Landroid/content/pm/Signature");
__android_log_write(ANDROID_LOG_ERROR, "Tag", "Step 9");
Im getting following error:
05-07 17:01:05.827: E/Tag(2357): Step 1
05-07 17:01:05.827: E/Tag(2357): in.verificationapp
05-07 17:01:05.827: E/Tag(2357): Step 2
05-07 17:01:05.827: E/Tag(2357): Step 3
05-07 17:01:05.827: E/Tag(2357): Step 4
05-07 17:01:05.827: E/Tag(2357): Step 5
05-07 17:01:05.827: E/Tag(2357): Step 6
05-07 17:01:05.827: E/Tag(2357): Step 6a
05-07 17:01:05.827: E/dalvikvm(2357): JNI ERROR (app bug): accessed stale local reference 0x4002d0b1 (index 46124 in a table of size 13)
05-07 17:01:05.827: E/dalvikvm(2357): VM aborting
05-07 17:01:05.827: A/libc(2357): Fatal signal 6 (SIGABRT) at 0x00000935 (code=-6), thread 2357 (ertverification)
Any idea wht is going twong?