package com.android.reverse.apimonitor; import java.lang.reflect.Method; import android.hardware.Camera.PictureCallback; import android.hardware.Camera.PreviewCallback; import android.hardware.Camera.ShutterCallback; import com.android.reverse.hook.HookParam; import com.android.reverse.util.Logger; import com.android.reverse.util.RefInvoke; public class CameraHook extends ApiMonitorHook { @Override public void startHook() { // TODO Auto-generated method stub Method takePictureMethod = RefInvoke.findMethodExact( "android.hardware.Camera", ClassLoader.getSystemClassLoader(), "takePicture",ShutterCallback.class,PictureCallback.class,PictureCallback.class,PictureCallback.class); hookhelper.hookMethod(takePictureMethod, new AbstractBahaviorHookCallBack() { @Override public void descParam(HookParam param) { // TODO Auto-generated method stub Logger.log_behavior("Camera take a picture->"); } }); Method setPreviewCallbackMethod = RefInvoke.findMethodExact( "android.hardware.Camera", ClassLoader.getSystemClassLoader(), "setPreviewCallback",PreviewCallback.class); hookhelper.hookMethod(setPreviewCallbackMethod, new AbstractBahaviorHookCallBack() { @Override public void descParam(HookParam param) { // TODO Auto-generated method stub Logger.log_behavior("Camera setPreview ->"); } }); Method setPreviewCallbackWithBufferMethod = RefInvoke.findMethodExact( "android.hardware.Camera", ClassLoader.getSystemClassLoader(), "setPreviewCallbackWithBuffer",PreviewCallback.class); hookhelper.hookMethod(setPreviewCallbackWithBufferMethod, new AbstractBahaviorHookCallBack() { @Override public void descParam(HookParam param) { // TODO Auto-generated method stub Logger.log_behavior("Camera setPreview ->"); } }); Method setOneShotPreviewCallbackMethod = RefInvoke.findMethodExact( "android.hardware.Camera", ClassLoader.getSystemClassLoader(), "setOneShotPreviewCallback",PreviewCallback.class); hookhelper.hookMethod(setOneShotPreviewCallbackMethod, new AbstractBahaviorHookCallBack() { @Override public void descParam(HookParam param) { // TODO Auto-generated method stub Logger.log_behavior("Camera setPreview ->"); } }); } }