Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import android.content.ComponentName;
import android.content.Context;
import android.database.ContentObserver;
import android.graphics.Canvas;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
Expand All @@ -38,6 +39,7 @@
import com.sevtinge.hyperceiler.hook.module.base.BaseHook;
import com.sevtinge.hyperceiler.hook.utils.ToastHelper;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import de.robv.android.xposed.XposedHelpers;
Expand All @@ -63,6 +65,10 @@

boolean isObserver = false;

Handler wmshellHandler;

boolean isObserver2 = false;

@Override
public void init() throws NoSuchMethodException {
hookAllConstructors("com.android.systemui.statusbar.phone.AutoHideController",
Expand Down Expand Up @@ -218,7 +224,7 @@
}
);

safeFindAndHookMethod("com.android.wm.shell.miuimultiwinswitch.miuiwindowdecor.MiuiBaseWindowDecoration",
safeFindAndHookMethod("com.android.wm.shell.multitasking.miuimultiwinswitch.miuiwindowdecor.MiuiBaseWindowDecoration",
"shouldHideCaption",
new MethodHook() {
@Override
Expand All @@ -231,6 +237,91 @@
}
);

findAndHookMethod("com.android.wm.shell.multitasking.miuimultiwinswitch.miuiwindowdecor.MiuiDotView","onDraw", Canvas.class,
new MethodHook() {
@Override
protected void after(MethodHookParam param) {
if(wmshellHandler != null) return;
try {
Context context = (Context) XposedHelpers.getObjectField(param.thisObject, "mContext");
if (context == null) return;
View view = (View)param.thisObject ;
wmshellHandler = view.getHandler();
logE(TAG,"wmshellHandler :" + wmshellHandler.toString());
} catch (Throwable e) {
logE(TAG, "E: " + e);
}
}
});

// hookAllConstructors("com.android.wm.shell.multitasking.miuimultiwinswitch.miuiwindowdecor.MiuiTopDecoration",
// new MethodHook() {
// @Override
// protected void after(MethodHookParam param) {
// try {
// Context context = (Context) XposedHelpers.getObjectField(param.thisObject, "mContext");
// if (context == null) return;
// ContentObserver contentObserver = new ContentObserver(new Handler(context.getMainLooper())) {
// @Override
// public void onChange(boolean selfChange) {
// wmshellHandler.post(new Runnable() {
// @Override
// public void run() {
// isLock = getLockApp(context) != -1;; // Update your member variable on the main thread if needed elsewhere
// if(isLock){
// XposedHelpers.callMethod(param.thisObject, "releaseViews");
// }
// logE(TAG, "hide SUCCESS");
// }
// });
// }
// };
// context.getContentResolver().registerContentObserver(
// Settings.Global.getUriFor("key_lock_app"),
// false, contentObserver);
// } catch (Throwable e) {
// logE(TAG, "E: " + e);
// }
// }
// });

hookAllMethods("com.android.wm.shell.multitasking.miuimultiwinswitch.miuiwindowdecor.MiuiTopDecoration",
"updateRootView",
new MethodHook(){
@Override
protected void before(MethodHookParam param){
if(isObserver2) return;
try {
Context context = (Context) XposedHelpers.getObjectField(param.thisObject, "mContext");
if (context == null) return;
ContentObserver contentObserver = new ContentObserver(new Handler(context.getMainLooper())) {
@Override
public void onChange(boolean selfChange) {
wmshellHandler.post(new Runnable() {
@Override
public void run() {
try {
((Method)param.method).invoke(param.thisObject,param.args);
} catch (IllegalAccessException |
InvocationTargetException e) {
throw new RuntimeException(e);

Check warning on line 307 in library/hook/src/main/java/com/sevtinge/hyperceiler/hook/module/hook/systemui/UiLockApp.java

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

library/hook/src/main/java/com/sevtinge/hyperceiler/hook/module/hook/systemui/UiLockApp.java#L307

Avoid throwing raw exception types.
}
logE(TAG, "updateRootView SUCCESS");
}
});
}
};
context.getContentResolver().registerContentObserver(
Settings.Global.getUriFor("key_lock_app"),
false, contentObserver);
isObserver2 = true;
} catch (Throwable e) {
logE(TAG, "E: " + e);
}
}
}
);

safeFindAndHookMethod("com.android.systemui.shared.system.ActivityManagerWrapper",
"isLockTaskKioskModeActive", new MethodHook() {
@Override
Expand Down