0x01 作用

将 java层的byte[] 转成 jni层的jbyte*

0x02 代码

  1. //JAVA层 调用jni函数
  2. TextView tv = findViewById(R.id.sample_text);
  3. byte[] a = {'H','E','L','L','O'};
  4. setJNI(a);
  1. //C层 jni通过GetByteArrayElements将java层传过来的jbyteArray转成jni层的jbyte*
  2. extern "C"
  3. JNIEXPORT void JNICALL
  4. Java_co_c0c_myapplication_MainActivity_setJNI(JNIEnv *env,jobject thiz,jbyteArray arr){
  5. jbyte *bArray = env->GetByteArrayElements(arr,NULL);
  6. int len = env->GetArrayLength(arr);//(2)获取数组长度
  7. __android_log_print(ANDROID_LOG_INFO, "arr" ,"%s", bArray);
  8. }

0x03 输出

HELLO

0x04 HOOK:

https://www.yuque.com/u2507195/hxfbws/dchhmu