Support Android 11

This commit is contained in:
2022-05-10 03:28:08 +08:00
parent 1e38e57347
commit 6597cd9bfe

View File

@@ -45,6 +45,7 @@ import com.fankes.apperrorstracking.utils.factory.*
import com.highcapable.yukihookapi.hook.bean.VariousClass import com.highcapable.yukihookapi.hook.bean.VariousClass
import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker import com.highcapable.yukihookapi.hook.entity.YukiBaseHooker
import com.highcapable.yukihookapi.hook.factory.field import com.highcapable.yukihookapi.hook.factory.field
import com.highcapable.yukihookapi.hook.factory.hasMethod
import com.highcapable.yukihookapi.hook.factory.method import com.highcapable.yukihookapi.hook.factory.method
import com.highcapable.yukihookapi.hook.log.loggerE import com.highcapable.yukihookapi.hook.log.loggerE
import com.highcapable.yukihookapi.hook.type.android.MessageClass import com.highcapable.yukihookapi.hook.type.android.MessageClass
@@ -59,7 +60,10 @@ object FrameworkHooker : YukiBaseHooker() {
private const val ProcessRecordClass = "com.android.server.am.ProcessRecord" private const val ProcessRecordClass = "com.android.server.am.ProcessRecord"
private const val PackageListClass = "com.android.server.am.PackageList" private val PackageListClass = VariousClass(
"com.android.server.am.ProcessRecord\$PackageList",
"com.android.server.am.PackageList"
)
private val ErrorDialogControllerClass = VariousClass( private val ErrorDialogControllerClass = VariousClass(
"com.android.server.am.ProcessRecord\$ErrorDialogController", "com.android.server.am.ProcessRecord\$ErrorDialogController",
@@ -205,10 +209,15 @@ object FrameworkHooker : YukiBaseHooker() {
val isApp = (PackageListClass.clazz.method { val isApp = (PackageListClass.clazz.method {
name = "size" name = "size"
emptyParam() emptyParam()
}.get(ProcessRecordClass.clazz.method { }.get(if (ProcessRecordClass.clazz.hasMethod {
name = "getPkgList"
emptyParam()
}) ProcessRecordClass.clazz.method {
name = "getPkgList" name = "getPkgList"
emptyParam() emptyParam()
}.get(proc).call()).int() == 1) && appInfo != null }.get(proc).call() else ProcessRecordClass.clazz.field {
name = "pkgList"
}.get(proc).self).int() == 1 && appInfo != null)
/** 是否短时内重复错误 */ /** 是否短时内重复错误 */
val isRepeating = AppErrorDialog_DataClass.clazz.field { name = "repeating" }.get(errData).boolean() val isRepeating = AppErrorDialog_DataClass.clazz.field { name = "repeating" }.get(errData).boolean()