Без повторной компиляции приложения пользователь может отключить приложение, используя xposed для отладки /heapdump приложения
Есть ли какой-либо метод (root или non root) для обнаружения приложения в настоящее время:
- Работа в режиме отладки
или
- Приложение запускается с использованием флага debuggable в zygote
или
- Приложение сбрасывается кучей
Используя
BuildConfig.DEBUG
иApplicationInfo
, и проверьте флаги поле дляFLAG_DEBUGGABLE
не работает, так как приложение запускается zygote с флагом отладки напрямую
Ниже приведен код, который перехватывает класс процесса
try {
Method start = Process.class.getMethod(
"start", String.class, String.class, Integer.TYPE, Integer.TYPE, int[].class,
Integer.TYPE, Integer.TYPE, Integer.TYPE, String.class, String[].class);
XposedBridge.log("start hook, appInfo: " + loadPackageParam.appInfo);
XposedBridge.hookMethod(start, new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam methodHookParam) throws Throwable {
int id = 5;
int flags = (Integer) methodHookParam.args[id];
if ((flags & 0x1) == 0) {
flags |= 0x1;
}
methodHookParam.args[id] = flags;
}
}
});
} catch (NoSuchMethodException e) {
e.printStackTrace();
}