添加jni接口实现对底层节点的访问

添加jni接口实现对底层节点的访问

由于新建文件比较繁琐,因此直接在现有的java文件中新增接口,再修改native的code实现对proc下节点写入内容的操作,基于11。

1.vim frameworks/base/core/java/android/os/Process.java
+++  public static final native int writeProc(String eventName);

2.添加java与c的映射数组
static const JNINativeMethod methods[];中添加
+++{"writeProc", "(Ljava/lang/String;)I", (void*)android_os_Process_writeProc},

3.实现功能
jint android_os_Process_writeProc(JNIEnv* env, jobject clazz, jstring fileStr)
{
    const char* eventName = env->GetStringUTFChars(fileStr, NULL);
    int fd = open("/proc/testnode",O_WRONLY);

    if(eventName != NULL){
        write(fd, eventName, strlen(eventName));
        env->ReleaseStringUTFChars(fileStr, eventName);//不释放内存的话,系统启动后会出错
    }
    close(fd);


    return -1;
}

  • 发表于 2021-01-01 17:45
  • 阅读 ( 228 )
  • 分类:职场人生

你可能感兴趣的文章

相关问题

0 条评论&回复

请先 登录 后评论
kindaki
kindaki

编程爱好者

1 篇文章

作家榜 »

  1. 百问网-周老师 18 文章
  2. st_ashang 14 文章
  3. 渐进 12 文章
  4. zxq 11 文章
  5. helloworld 8 文章
  6. 星星之火 6 文章
  7. 谢工 5 文章
  8. Litchi_Zheng 5 文章