package mobi.acpm.inspeckage.hooks;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
/**
* Created by acpm on 14/01/16.
*/
public class ProcessHook extends XC_MethodHook {
public static final String TAG = "Inspeckage_Process:";
public static void initAllHooks(final XC_LoadPackage.LoadPackageParam loadPackageParam) {
/**
final Class<?> build = XposedHelpers.findClass("android.os.Process", loadPackageParam.classLoader);
hookMethod(XposedHelpers.findMethodBestMatch(build, "start", String.class, String.class, int.class,
int.class, int[].class, int.class, int.class, int.class,
String.class, String.class, String.class, String.class, String[].class), new XC_MethodHook() {
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
int uid = (Integer) param.args[2];
if (uid == 10118) {
int debugFlags = (Integer) param.args[5];
param.args[5] = (debugFlags | 0x1);
XposedBridge.log(TAG + "debugFlags: " + String.valueOf(param.args[5]));
}
}
});**/
try {
findAndHookMethod("android.os.Process", loadPackageParam.classLoader, "start",
String.class, String.class, int.class, int.class, int[].class, int.class, int.class, int.class,
String.class, String.class, String.class, String.class, String[].class, new XC_MethodHook() {
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
int uid = (Integer) param.args[2];
if (uid == 10066) {
int debugFlags = (Integer) param.args[5];
param.args[5] = (debugFlags | 0x1);
XposedBridge.log(TAG + "debugFlags: " + String.valueOf(param.args[5]));
}
}
}
);
}catch (Error e){
XposedBridge.log("ERROR_PROCESS: "+e.getMessage());
}
}
}