/*callQihooSo.c*/
/*这里我直接使用javah的方式编写native代码*/
JNIEXPORT Java_com_qihoo_crack_StubApplication_MainActivity_packageNameCheck( JNIEnv*
env
, jobject obj){
void* filehandle =dlopen(
"/data/data/com.qihoo.crack.StubApplication/lib/libqihooTest.so"
, RTLD_LAZY );
//
获取libqihooTest.so的句柄
if
(filehandle){
void (*packageNameCheck)(JNIEnv *,jobject);
packageNameCheck = (void (*)(JNIEnv *,jobject)) dlsym(filehandle,
"packageNameCheck"
);
//
找到.so文件中的函数
if
(packageNameCheck){
packageNameCheck(
env
, obj);
//
传递参数 }
else
{
LOGI(
"get packageNameCheck func failed!"
);
}
LOGI(
"success!"
);
}
else
{
LOGI(
"get file handle failed!"
);
}
return
;
}
JNIEXPORT Java_com_qihoo_crack_StubApplication_MainActivity_applicatioNameCheck( JNIEnv*
env
,
jobject obj){
void* filehandle = dlopen(
"/data/data/com.qihoo.crack.StubApplication/lib/libqihooTest.so"
, RTLD_LAZY );
if
(filehandle){
void (*applicatioNameCheck)(JNIEnv *,jobject);
applicatioNameCheck = (void (*)(JNIEnv *,jobject)) dlsym(filehandle,
"applicatioNameCheck"
);
//
找到.so文件中的函数
if
(applicatioNameCheck){
applicatioNameCheck(
env
, obj);
//
传递参数
return
;
}
else
{
LOGI(
"get applicatioNameCheck func failed! "
);
}
LOGI(
"success!"
);
}
else
{
LOGI(
"get file handle failed!"
);
}
return
;
}