优化代码,适配 Play 版本

This commit is contained in:
2022-01-25 05:45:23 +08:00
parent 60aecc67bf
commit beb8da210d
3 changed files with 17 additions and 6 deletions

View File

@@ -46,6 +46,10 @@ class HookMain : IXposedHookLoadPackage {
companion object {
/** 旧版类名 */
private const val BASE_CHAT_PIE_LEGACY = "activity.BaseChatPie"
/** 新版类名 */
private const val BASE_CHAT_PIE = "activity.aio.core.BaseChatPie"
}
@@ -106,6 +110,10 @@ class HookMain : IXposedHookLoadPackage {
*/
private fun XC_LoadPackage.LoadPackageParam.hookQQBaseChatPie(version: String) {
when (version) {
"8.2.11" -> {
replaceToNull(BASE_CHAT_PIE_LEGACY, "bE")
replaceToNull(BASE_CHAT_PIE_LEGACY, "aV")
}
"8.8.17" -> {
replaceToNull(BASE_CHAT_PIE, "bd")
replaceToNull(BASE_CHAT_PIE, "be")
@@ -460,6 +468,7 @@ class HookMain : IXposedHookLoadPackage {
* 带给用户的却是 shit 一样的体验
* 里面有各种使用 Handler 和 Timer 的各种耗时常驻后台耗电办法持续接收消息
* 直接循环全部方法全部干掉
* 👮🏻 经过排查 Play 版本没这个类...... Emmmm 不想说啥了
*/
lpparam.classLoader.loadClass("com.tencent.qapmsdk.qqbattery.monitor.WakeLockMonitor")
.apply {

View File

@@ -59,7 +59,7 @@ class MainActivity : AppCompatActivity() {
private const val moduleVersion = BuildConfig.VERSION_NAME
private const val qqSupportVersion =
"8.8.17、8.8.23、8.8.35、8.8.38、8.8.50、8.8.55、8.8.68 (8.5.5~8.8.68)"
"8.2.11(Play)、8.8.17、8.8.23、8.8.35、8.8.38、8.8.50、8.8.55、8.8.68 (8.2.11、8.5.5~8.8.68)"
private const val timSupportVersion = "2+、3+ (并未完全测试每个版本)"
private const val wechatSupportVersion = "全版本仅支持基础省电,更多功能依然画饼"

View File

@@ -84,11 +84,13 @@ fun Number.dp(context: Context) = toFloat() * context.resources.displayMetrics.d
*/
fun Context.openSelfSetting(packageName: String) {
try {
startActivity(Intent().apply {
flags = Intent.FLAG_ACTIVITY_NEW_TASK
action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS
data = Uri.fromParts("package", packageName, null)
})
if (packageName.isInstall)
startActivity(Intent().apply {
flags = Intent.FLAG_ACTIVITY_NEW_TASK
action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS
data = Uri.fromParts("package", packageName, null)
})
else Toast.makeText(this, "你没有安装此应用", Toast.LENGTH_SHORT).show()
} catch (_: Exception) {
Toast.makeText(this, "启动 $packageName 应用信息失败", Toast.LENGTH_SHORT).show()
}