全部位置增加findClassIfExists

This commit is contained in:
LittleTurtle2333
2022-02-17 22:27:54 +08:00
parent c96ba29c20
commit a6166fa70a
4 changed files with 123 additions and 57 deletions

View File

@@ -11,19 +11,22 @@ class Android : IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
//允许截图 //允许截图
try { try {
XposedHelpers.findAndHookMethod("com.android.server.wm.WindowState", val classIfExists = XposedHelpers.findClassIfExists(
lpparam.classLoader, "com.android.server.wm.WindowState",
"isSecureLocked", lpparam.classLoader
object : XC_MethodHook() { )
override fun beforeHookedMethod(param: MethodHookParam) { XposedHelpers.findAndHookMethod(classIfExists,
if (prefs.hasFileChanged()) { "isSecureLocked",
prefs.reload() object : XC_MethodHook() {
} override fun beforeHookedMethod(param: MethodHookParam) {
if (prefs.getBoolean("disable_flag_secure", false)) { if (prefs.hasFileChanged()) {
param.result = false prefs.reload()
}
} }
}) if (prefs.getBoolean("disable_flag_secure", false)) {
param.result = false
}
}
})
} catch (e: Exception) { } catch (e: Exception) {
XposedBridge.log(e) XposedBridge.log(e)
} }
@@ -31,19 +34,22 @@ class Android : IXposedHookLoadPackage {
//上层显示 //上层显示
try { try {
XposedHelpers.findAndHookMethod("com.android.server.wm.AlertWindowNotification", val classIfExists = XposedHelpers.findClassIfExists(
lpparam.classLoader, "com.android.server.wm.AlertWindowNotification",
"onPostNotification", lpparam.classLoader
object : XC_MethodHook() { )
override fun beforeHookedMethod(param: MethodHookParam) { XposedHelpers.findAndHookMethod(classIfExists,
if (prefs.hasFileChanged()) { "onPostNotification",
prefs.reload() object : XC_MethodHook() {
} override fun beforeHookedMethod(param: MethodHookParam) {
if (prefs.getBoolean("delete_on_post_notification", false)) { if (prefs.hasFileChanged()) {
param.result = null prefs.reload()
}
} }
}) if (prefs.getBoolean("delete_on_post_notification", false)) {
param.result = null
}
}
})
} catch (e: Exception) { } catch (e: Exception) {

View File

@@ -1,9 +1,7 @@
package com.lt2333.simplicitytools.hook.app package com.lt2333.simplicitytools.hook.app
import com.lt2333.simplicitytools.BuildConfig import com.lt2333.simplicitytools.BuildConfig
import com.lt2333.simplicitytools.hook.MainHook
import de.robv.android.xposed.* import de.robv.android.xposed.*
import de.robv.android.xposed.XC_MethodHook.MethodHookParam
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam
class MiuiHome : IXposedHookLoadPackage { class MiuiHome : IXposedHookLoadPackage {
@@ -13,8 +11,12 @@ class MiuiHome : IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: LoadPackageParam) { override fun handleLoadPackage(lpparam: LoadPackageParam) {
//始终显示时钟 //始终显示时钟
try { try {
val classIfExists = XposedHelpers.findClassIfExists(
"com.miui.home.launcher.Workspace",
lpparam.classLoader
)
XposedHelpers.findAndHookMethod( XposedHelpers.findAndHookMethod(
"com.miui.home.launcher.Workspace", lpparam.classLoader, classIfExists,
"isScreenHasClockGadget", Long::class.javaPrimitiveType, "isScreenHasClockGadget", Long::class.javaPrimitiveType,
object : XC_MethodHook() { object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam) { override fun beforeHookedMethod(param: MethodHookParam) {

View File

@@ -1,7 +1,10 @@
package com.lt2333.simplicitytools.hook.app package com.lt2333.simplicitytools.hook.app
import com.lt2333.simplicitytools.BuildConfig import com.lt2333.simplicitytools.BuildConfig
import de.robv.android.xposed.* import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.XC_MethodHook
import de.robv.android.xposed.XSharedPreferences
import de.robv.android.xposed.XposedHelpers
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam
class PowerKeeper : IXposedHookLoadPackage { class PowerKeeper : IXposedHookLoadPackage {
@@ -10,8 +13,12 @@ class PowerKeeper : IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: LoadPackageParam) { override fun handleLoadPackage(lpparam: LoadPackageParam) {
//锁定最高刷新率 //锁定最高刷新率
val classIfExists = XposedHelpers.findClassIfExists(
"com.miui.powerkeeper.statemachine.DisplayFrameSetting",
lpparam.classLoader
)
XposedHelpers.findAndHookMethod( XposedHelpers.findAndHookMethod(
"com.miui.powerkeeper.statemachine.DisplayFrameSetting", lpparam.classLoader, classIfExists,
"setScreenEffect", "setScreenEffect",
String::class.java, Int::class.javaPrimitiveType, Int::class.javaPrimitiveType, String::class.java, Int::class.javaPrimitiveType, Int::class.javaPrimitiveType,
object : XC_MethodHook() { object : XC_MethodHook() {

View File

@@ -6,12 +6,9 @@ import android.content.Intent
import android.os.Handler import android.os.Handler
import android.provider.Settings import android.provider.Settings
import android.util.AttributeSet import android.util.AttributeSet
import android.util.Log
import android.widget.TextView import android.widget.TextView
import com.lt2333.simplicitytools.BuildConfig import com.lt2333.simplicitytools.BuildConfig
import com.lt2333.simplicitytools.hook.MainHook
import de.robv.android.xposed.* import de.robv.android.xposed.*
import de.robv.android.xposed.XC_MethodHook.MethodHookParam
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam
import java.lang.reflect.Method import java.lang.reflect.Method
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
@@ -24,9 +21,12 @@ class SystemUI : IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: LoadPackageParam) { override fun handleLoadPackage(lpparam: LoadPackageParam) {
//隐藏无SIM卡图标 //隐藏无SIM卡图标
try { try {
XposedHelpers.findAndHookMethod( val classIfExists = XposedHelpers.findClassIfExists(
"com.android.systemui.statusbar.phone.MiuiStatusBarSignalPolicy", "com.android.systemui.statusbar.phone.MiuiStatusBarSignalPolicy",
lpparam.classLoader, lpparam.classLoader
)
XposedHelpers.findAndHookMethod(
classIfExists,
"setNoSims", "setNoSims",
Boolean::class.javaPrimitiveType, Boolean::class.javaPrimitiveType,
Boolean::class.javaPrimitiveType, Boolean::class.javaPrimitiveType,
@@ -45,8 +45,12 @@ class SystemUI : IXposedHookLoadPackage {
} }
//隐藏VPN图标 //隐藏VPN图标
try { try {
val classIfExists = XposedHelpers.findClassIfExists(
"com.android.systemui.statusbar.phone.StatusBarSignalPolicy",
lpparam.classLoader
)
XposedHelpers.findAndHookMethod( XposedHelpers.findAndHookMethod(
"com.android.systemui.statusbar.phone.StatusBarSignalPolicy", lpparam.classLoader, classIfExists,
"updateVpn", "updateVpn",
object : XC_MethodHook() { object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam) { override fun beforeHookedMethod(param: MethodHookParam) {
@@ -63,9 +67,12 @@ class SystemUI : IXposedHookLoadPackage {
} }
//隐藏飞行模式图标 //隐藏飞行模式图标
try { try {
XposedHelpers.findAndHookMethod( val classIfExists = XposedHelpers.findClassIfExists(
"com.android.systemui.statusbar.phone.StatusBarSignalPolicy", "com.android.systemui.statusbar.phone.StatusBarSignalPolicy",
lpparam.classLoader, lpparam.classLoader
)
XposedHelpers.findAndHookMethod(
classIfExists,
"setIsAirplaneMode", "setIsAirplaneMode",
XposedHelpers.findClass( XposedHelpers.findClass(
"com.android.systemui.statusbar.policy.NetworkController\$IconState", "com.android.systemui.statusbar.policy.NetworkController\$IconState",
@@ -86,9 +93,12 @@ class SystemUI : IXposedHookLoadPackage {
} }
//隐藏WIFI图标 //隐藏WIFI图标
try { try {
XposedHelpers.findAndHookMethod( val classIfExists = XposedHelpers.findClassIfExists(
"com.android.systemui.statusbar.phone.MiuiStatusBarSignalPolicy", "com.android.systemui.statusbar.phone.MiuiStatusBarSignalPolicy",
lpparam.classLoader, lpparam.classLoader
)
XposedHelpers.findAndHookMethod(
classIfExists,
"updateWifiIconWithState", "updateWifiIconWithState",
XposedHelpers.findClass( XposedHelpers.findClass(
"com.android.systemui.statusbar.phone.StatusBarSignalPolicy\$WifiIconState", "com.android.systemui.statusbar.phone.StatusBarSignalPolicy\$WifiIconState",
@@ -109,9 +119,12 @@ class SystemUI : IXposedHookLoadPackage {
} }
//隐藏蓝牙图标 //隐藏蓝牙图标
try { try {
XposedHelpers.findAndHookMethod( val classIfExists = XposedHelpers.findClassIfExists(
"com.android.systemui.statusbar.phone.MiuiPhoneStatusBarPolicy", "com.android.systemui.statusbar.phone.MiuiPhoneStatusBarPolicy",
lpparam.classLoader, lpparam.classLoader
)
XposedHelpers.findAndHookMethod(
classIfExists,
"updateBluetooth", "updateBluetooth",
String::class.java, String::class.java,
object : XC_MethodHook() { object : XC_MethodHook() {
@@ -129,9 +142,12 @@ class SystemUI : IXposedHookLoadPackage {
} }
//隐藏 声音、勿扰 图标 //隐藏 声音、勿扰 图标
try { try {
XposedHelpers.findAndHookMethod( val classIfExists = XposedHelpers.findClassIfExists(
"com.android.systemui.statusbar.phone.MiuiPhoneStatusBarPolicy", "com.android.systemui.statusbar.phone.MiuiPhoneStatusBarPolicy",
lpparam.classLoader, lpparam.classLoader
)
XposedHelpers.findAndHookMethod(
classIfExists,
"updateVolumeZen", "updateVolumeZen",
object : XC_MethodHook() { object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam) { override fun beforeHookedMethod(param: MethodHookParam) {
@@ -148,9 +164,12 @@ class SystemUI : IXposedHookLoadPackage {
} }
//隐藏 闹钟 图标 //隐藏 闹钟 图标
try { try {
XposedHelpers.findAndHookMethod( val classIfExists = XposedHelpers.findClassIfExists(
"com.android.systemui.statusbar.phone.MiuiPhoneStatusBarPolicy", "com.android.systemui.statusbar.phone.MiuiPhoneStatusBarPolicy",
lpparam.classLoader, lpparam.classLoader
)
XposedHelpers.findAndHookMethod(
classIfExists,
"onMiuiAlarmChanged", "onMiuiAlarmChanged",
object : XC_MethodHook() { object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam) { override fun beforeHookedMethod(param: MethodHookParam) {
@@ -167,9 +186,12 @@ class SystemUI : IXposedHookLoadPackage {
} }
//隐藏 耳机 图标 //隐藏 耳机 图标
try { try {
XposedHelpers.findAndHookMethod( val classIfExists = XposedHelpers.findClassIfExists(
"com.android.systemui.statusbar.phone.MiuiPhoneStatusBarPolicy", "com.android.systemui.statusbar.phone.MiuiPhoneStatusBarPolicy",
lpparam.classLoader, lpparam.classLoader
)
XposedHelpers.findAndHookMethod(
classIfExists,
"updateHeadsetPlug", "updateHeadsetPlug",
Intent::class.java, Intent::class.java,
object : XC_MethodHook() { object : XC_MethodHook() {
@@ -187,9 +209,12 @@ class SystemUI : IXposedHookLoadPackage {
} }
//隐藏 蓝牙电量 图标 //隐藏 蓝牙电量 图标
try { try {
XposedHelpers.findAndHookMethod( val classIfExists = XposedHelpers.findClassIfExists(
"com.android.systemui.statusbar.phone.MiuiPhoneStatusBarPolicy", "com.android.systemui.statusbar.phone.MiuiPhoneStatusBarPolicy",
lpparam.classLoader, lpparam.classLoader
)
XposedHelpers.findAndHookMethod(
classIfExists,
"updateBluetoothHandsfreeBattery", "updateBluetoothHandsfreeBattery",
Intent::class.java, Intent::class.java,
object : XC_MethodHook() { object : XC_MethodHook() {
@@ -207,8 +232,12 @@ class SystemUI : IXposedHookLoadPackage {
} }
//隐藏卡一卡二 //隐藏卡一卡二
try { try {
val classIfExists = XposedHelpers.findClassIfExists(
"com.android.systemui.statusbar.phone.StatusBarSignalPolicy",
lpparam.classLoader
)
XposedHelpers.findAndHookMethod( XposedHelpers.findAndHookMethod(
"com.android.systemui.statusbar.phone.StatusBarSignalPolicy", lpparam.classLoader, classIfExists,
"hasCorrectSubs", MutableList::class.java, "hasCorrectSubs", MutableList::class.java,
object : XC_MethodHook() { object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam) { override fun beforeHookedMethod(param: MethodHookParam) {
@@ -231,8 +260,12 @@ class SystemUI : IXposedHookLoadPackage {
} }
//隐藏HD //隐藏HD
try { try {
val classIfExists = XposedHelpers.findClassIfExists(
"com.android.systemui.statusbar.policy.MobileSignalController",
lpparam.classLoader
)
XposedHelpers.findAndHookMethod( XposedHelpers.findAndHookMethod(
"com.android.systemui.statusbar.policy.MobileSignalController", lpparam.classLoader, classIfExists,
"setVolte", Boolean::class.java, "setVolte", Boolean::class.java,
object : XC_MethodHook() { object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam) { override fun beforeHookedMethod(param: MethodHookParam) {
@@ -245,9 +278,8 @@ class SystemUI : IXposedHookLoadPackage {
} }
}) })
XposedHelpers.findAndHookMethod( XposedHelpers.findAndHookMethod(
"com.android.systemui.statusbar.policy.MobileSignalController", lpparam.classLoader, classIfExists,
"updateVoiceIcon", "updateVoiceIcon",
object : XC_MethodHook() { object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam) { override fun beforeHookedMethod(param: MethodHookParam) {
@@ -262,12 +294,14 @@ class SystemUI : IXposedHookLoadPackage {
} catch (e: Exception) { } catch (e: Exception) {
XposedBridge.log(e) XposedBridge.log(e)
} }
//网速秒刷
//隐藏 网速秒刷 图标
try { try {
XposedHelpers.findAndHookMethod( val classIfExists = XposedHelpers.findClassIfExists(
"com.android.systemui.statusbar.policy.NetworkSpeedController", "com.android.systemui.statusbar.policy.NetworkSpeedController",
lpparam.classLoader, lpparam.classLoader
)
XposedHelpers.findAndHookMethod(
classIfExists,
"postUpdateNetworkSpeedDelay", "postUpdateNetworkSpeedDelay",
Long::class.java, Long::class.java,
object : XC_MethodHook() { object : XC_MethodHook() {
@@ -342,7 +376,24 @@ class SystemUI : IXposedHookLoadPackage {
}) })
} }
//通知图标上限
try {
val classIfExists = XposedHelpers.findClassIfExists(
"com.android.systemui.statusbar.phone.NotificationIconContainer",
lpparam.classLoader
)
XposedHelpers.findAndHookMethod(
classIfExists,
"miuiShowNotificationIcons",
Boolean::class.java,
object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam) {
}
})
} catch (e: Exception) {
XposedBridge.log(e)
}
} }