Closed CuteRem closed 5 years ago
Database中onExecuteHooker的"beforeHookedMethod"用“notifyForBypassFlags”, 只要实现了IDatabaseHook,其中的“onDatabaseExecuting”的默认值是false, "notifyForBypassFlags"方法中“notifyForResults”得到的就是一个{false,……}的list, any方法执行得到的值就会是true, 那么微信数据库的“executeSql”方法就一定会被绕过,无法执行原生方法
我的测试是微信【设置-聊天-清空聊天记录】的操作,一定会被拦截无法成功执行
我觉得如果要根据返回值来判断的话,“notifyForBypassFlags”的第一行是不是应该改为 val shouldBypass = notifyForResults(event, action).any{it}
Database中onExecuteHooker的"beforeHookedMethod"用“notifyForBypassFlags”, 只要实现了IDatabaseHook,其中的“onDatabaseExecuting”的默认值是false, "notifyForBypassFlags"方法中“notifyForResults”得到的就是一个{false,……}的list, any方法执行得到的值就会是true, 那么微信数据库的“executeSql”方法就一定会被绕过,无法执行原生方法
我的测试是微信【设置-聊天-清空聊天记录】的操作,一定会被拦截无法成功执行