修复一个 Hook 异常疑似系统界面崩溃问题

This commit is contained in:
2022-02-07 21:31:25 +08:00
parent e05d65e7e5
commit 51e3eb8784

View File

@@ -675,11 +675,13 @@ class HookMain : IXposedHookLoadPackage {
override fun afterHookedMethod(param: MethodHookParam) { override fun afterHookedMethod(param: MethodHookParam) {
/** 对于之前没有通知图标色彩判断功能的版本判断是 MIUI 样式就停止 Hook */ /** 对于之前没有通知图标色彩判断功能的版本判断是 MIUI 样式就停止 Hook */
if (!lpparam.hasIgnoreStatusBarIconColor() && lpparam.isShowMiuiStyle()) return if (!lpparam.hasIgnoreStatusBarIconColor() && lpparam.isShowMiuiStyle()) return
runWithoutError(error = "GetSmallIconDoing") {
lpparam.hookSmallIconOnSet( lpparam.hookSmallIconOnSet(
context = lpparam.globalContext ?: param.args[0] as Context, context = lpparam.globalContext ?: param.args[0] as Context,
param.args?.get(if (isTooOld) 1 else 0) as? StatusBarNotification?, param param.args?.get(if (isTooOld) 1 else 0) as? StatusBarNotification?, param
) )
} }
}
}) })
} }
} }
@@ -708,6 +710,7 @@ class HookMain : IXposedHookLoadPackage {
}.also { }.also {
XposedBridge.hookMethod(it, object : XC_MethodReplacement() { XposedBridge.hookMethod(it, object : XC_MethodReplacement() {
override fun replaceHookedMethod(param: MethodHookParam): Any? { override fun replaceHookedMethod(param: MethodHookParam): Any? {
runWithoutError(error = "AutoSetAppIconDoing") {
if (isNewWay) if (isNewWay)
lpparam.hookNotifyIconOnSet( lpparam.hookNotifyIconOnSet(
context = param.args?.get(0) as? Context ?: lpparam.globalContext context = param.args?.get(0) as? Context ?: lpparam.globalContext
@@ -721,6 +724,7 @@ class HookMain : IXposedHookLoadPackage {
param.args?.get(1) as? StatusBarNotification?, param.args?.get(1) as? StatusBarNotification?,
param.args?.get(0) as ImageView param.args?.get(0) as ImageView
) )
}
return null return null
} }
}) })