- ndk编译 cmake编译
- 签名校验
- so反调试
- native动态加载
暂且没研究
- /Users/yuanlang/Library/Android/sdk/ndk-bundle/ndk-build
- build.gradle defaultConfig添加如下配置。as编译过程需要,指定so名称和路径
ndk{
moduleName "JniLib"
// abiFilters "armeabi", "armeabi-v7a", "x86" //输出指定的三种abi体系下的so库
}
sourceSets.main{
//屏蔽srcDirs
jni.srcDirs = []
//指定libs
jniLibs.srcDir "src/main/libs"
}
- java端签名校验 判断packageInfo.signatures 中的值是否等于 app_sign
- so端签名校验 反射获取getSignature 中的值是否等于 app_sign
- 获取当前pid
- 读取 /proc/%d/status 当前文件
- 读取 第6行数据TracerPid 如果 TracerPid > 0 代表处于被调试状态
- cd app/src/main/java
- javah com.jni.jnitest.JNITest
- 移动 com_jni_jnitest_JNITest.h 到jni文件下