夸克Cookie一键获取失败,常见原因有哪些?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
玛勒隔壁的老王 2026-01-28 00:50关注```html一、现象层:无障碍服务与基础权限失效(表象诊断)
多数用户首次失败源于「无障碍服务未启用」或「电池优化强制限制后台运行」。华为EMUI 13+、小米HyperOS默认关闭
com.quark.browser的无障碍权限,且在「设置→电池→应用启动管理」中将夸克设为“手动管理→禁止后台活动”。此阶段无需逆向,仅需ADB命令验证:adb shell settings get secure enabled_accessibility_services若返回空或不含
com.quark.browser,即为根因。建议同步执行:adb shell dumpsys battery unplug && adb shell settings put global hidden_api_policy 1(需root)。二、系统层:Android权限演进与Cookie隔离机制(深度适配)
Android 14(API 34)引入
CookieManager.setCookie()废弃警告,并强制启用SameSite=Lax策略;Android 12+则禁止startActivityFromRecents()后台启动Activity——这直接导致基于UiDevice.pressRecentApps()的自动化切屏取Cookie流程崩溃。下表对比关键系统版本对Cookie获取的影响:Android版本 Cookie存储变更 无障碍API限制 推荐适配方案 12+ WebView CookieStore API弃用 禁止后台启动Activity 改用 uiautomator2的device.app_start()前台拉起14+ 强制 CookiePartitioning隔离域限制 AccessibilityService监听非前台包注入 android.webkit.WebView#evaluateJavascript绕过隔离三、应用层:WebView接口漂移与JSBridge动态化(逆向锚点)
夸克v14.0+将JSBridge从静态
window.QuarkJSBridge迁移至动态注册机制:通过WebViewClient.onPageFinished()触发addJavascriptInterface("quark_bridge_v2", ...),且接口名含时间戳哈希(如quark_bridge_v2_8a3f)。传统脚本因硬编码接口名失效。需HookWebView.addJavascriptInterface并监听QuarkBridge类加载时机。以下为Frida Hook核心逻辑:Java.perform(() => { const WebView = Java.use('android.webkit.WebView'); WebView.addJavascriptInterface.implementation = function(obj, name) { if (name.includes('quark_bridge')) { console.log('[+] JSBridge registered:', name); // 后续注入cookie读取逻辑 } return this.addJavascriptInterface(obj, name); }; });四、安全层:反调试、加密存储与QUIC/TLS 1.3全链路防护(攻防对抗)
夸克采用三重防御:①
Ptrace检测+frida-trace符号扫描阻断Frida;② Cookie存入SQLCipher加密数据库/data/data/com.quark.browser/databases/quark_cookie.db,密钥由SharedPreferences中crypto_key_seed与设备IMEI拼接SHA256生成;③ QUIC协议使传统HTTP代理失效,TLS 1.3的Encrypted Client Hello (ECH)让证书固定校验无法绕过。此时必须转向内存dump方案:- 使用
adb shell run-as com.quark.browser cat /data/data/com.quark.browser/shared_prefs/cookie_prefs.xml尝试提取明文key(v13.5-仍存在) - 若失败,则通过
frida -U -f com.quark.browser -l quark_cookie_dump.js --no-pause劫持CookieManager.getCookie()内存返回值
五、生态层:厂商ROM定制与隐私空间干扰(跨平台治理)
华为鸿蒙OS 4.2启用「应用行为记录」强制审计
AccessibilityService调用栈,小米澎湃OS则在「隐私空间」中隔离SharedPreferences路径。实测发现:同一台Redmi K70开启隐私空间后,uiautomator2的device.info返回的currentPackageName恒为com.android.systemui,导致UI定位失效。解决方案需分场景:graph TD A[检测是否在隐私空间] -->|adb shell getprop ro.miui.ui.version.name| B{返回值包含“Privacy”} B -->|是| C[切换至主空间:adb shell am start -n com.android.settings/.privacy.PrivacySettings] B -->|否| D[启用无障碍:adb shell settings put secure enabled_accessibility_services com.quark.browser/com.quark.accessibility.QuarkAccessibilityService]```本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报- 使用