Android openGL hook

hook头文件

#ifndef _GL_INTERFACETEST_H_#define _GL_INTERFACETEST_H_namespace android {void hook_eglSwapBuffers();}#endif

hook实现

#include #include "egl_hook.h"namespace android {void hook_eglSwapBuffers() {ALOGD("hook successfully! eglSwapBuffer...");return;}}

hook调用点

在eglApi.cpp内增加hook点

EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface surface){hook_eglSwapBuffers();    return eglSwapBuffersWithDamageKHR(dpy, surface, NULL, 0);}

makefile

Android.bp

cc_library_shared {    name: "libEGL",    defaults: ["egl_libs_defaults"],    srcs: ["EGL/egl_hook.cpp",        "EGL/egl_tls.cpp",        "EGL/egl_cache.cpp",        "EGL/egl_display.cpp",        "EGL/egl_object.cpp",        "EGL/egl.cpp",        "EGL/eglApi.cpp",        "EGL/Loader.cpp",    ],    shared_libs: [        "libvndksupport",        "android.hardware.configstore@1.0",        "android.hardware.configstore-utils",        "libhidlbase",        "libhidltransport",        "libutils",    ],    static_libs: [        "libEGL_getProcAddress",        "libEGL_blobCache",    ],    ldflags: ["-Wl,--exclude-libs=ALL"],    export_include_dirs: ["EGL/include"],}

其他

可以将hook封装成库调用
可以在hook库中新建线程实现某些吓死人的技术

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. python list.sort()根据多个关键字排序的方法实现
  3. Android(安卓)实现MD5加密
  4. [Android(安卓)GMS 认证] CTS 问题列表之 CtsAutoFillServiceTes
  5. Android(安卓)调用.NET webservice
  6. android java 网络检测
  7. Android(安卓)实现MD5加密
  8. android 调用摄像头
  9. Qt for Android(安卓)拉起微信登录、分享等功能

随机推荐

  1. android比赛
  2. Android开发注意点
  3. Android中ListView使用总结
  4. 基于Android浮动组件 可用于应用中新功能
  5. 学习Android怎么在未来站稳脚跟
  6. Android训练课程(Android Training) - 测
  7. Android里实现基站和WIFI定位
  8. Android——Json和Gson分别是什么,以及Jso
  9. Android实训案例(八)——单机五子棋游戏,自
  10. Android热更新之so库的热更新