🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

壳浏览器通行密钥 cmyfqwq/webauthn-for-webview-shells

DeepSeek Harness
cmyfqwq58 天前有提交已提供中文文档扫描:无法判定

让轻量壳浏览器调用系统通行密钥登录网站

29.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/cmyfqwq/webauthn-for-webview-shells.git
按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么[目录]—
dsh 原生插件 · browser
暂无时间戳·判据 →
装得上吗[实装验证]!
作者未把包发布到 npm,只能用源码安装
插件本身没问题,是分发方式不同
数据截至 2026/09/25·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 58 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包webauthn-for-webview-shells(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 22:17:46

安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 包内无可扫 JS
  • · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/4(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 调用系统通行密钥登录
  • 启用WebAuthn支持
  • LSPosed模块可逆

用官方 androidx.webkit 开关在 Via、夸克等 WebView 套壳浏览器里启用通行密钥——LSPosed 模块,针对 WebAuthn 尚未默认开启的旧版 WebView(约 124-13x),完全可逆

README

由 DeepSeek 最新模型翻译生成
🔑 WebAuthn for WebView Shells 让轻量 WebView 壳浏览器用上通行密钥——拨的只是官方本来就有的那个开关。 License: MIT Requires LSPosed Android 7.0+ System WebView 124+ English · 简体中文 🧠 这到底是什么 通行密钥的能力本来就在 Android 系统 WebView 里(v124+)。官方规范要求:每个内嵌 WebView 的宿主 app 都必须自己声明这一行: WebSettingsCompat.setWebAuthenticationSupport(settings, WEB_AUTHENTICATION_SUPPORT_FOR_APP); Via、夸克这类轻量"壳"浏览器全部走系统 WebView 渲染页面——但没有一家调用这行,于是 navigator.credentials() 根本到不了系统凭据栈:不是系统不支持,是壳没伸手喵。 本模块就是替它拨这根官方开关,不碰宿主代码。 一个很小的 LSPosed 模块,hook 目标浏览器进程里的 WebView 构造,替宿主完成官方集成,自带一份 androidx.webkit 库。 不碰系统密码本 · 不发任何网络请求 · 不注入任何 UI。 回滚 = LSPosed 里关掉开关。就这么简单。
展开完整文档(README 剩余 1 节)
🔑 WebAuthn for WebView Shells

让轻量 WebView 壳浏览器用上通行密钥——拨的只是官方本来就有的那个开关。

License: MIT
Requires LSPosed
Android 7.0+
System WebView 124+

English · 简体中文

🧠 这到底是什么

通行密钥的能力本来就在 Android 系统 WebView 里(v124+)。官方规范要求:每个内嵌 WebView 的宿主 app 都必须自己声明这一行:

WebSettingsCompat.setWebAuthenticationSupport(settings, WEB_AUTHENTICATION_SUPPORT_FOR_APP);

Via、夸克这类轻量"壳"浏览器全部走系统 WebView 渲染页面——但没有一家调用这行,于是 navigator.credentials() 根本到不了系统凭据栈:不是系统不支持,是壳没伸手喵。

本模块就是替它拨这根官方开关,不碰宿主代码。 一个很小的 LSPosed 模块,hook 目标浏览器进程里的 WebView 构造,替宿主完成官方集成,自带一份 androidx.webkit 库。

不碰系统密码本 · 不发任何网络请求 · 不注入任何 UI。
回滚 = LSPosed 里关掉开关。就这么简单。

✅ 效果

graph LR
A[navigator.credentials] --> B{host 开关}
B -- 关 --> X[❌ passkey 弹不出来]
B -- 模块接管 --> C[WAShell hook]
C --> D[系统 WebView ≥ 124]
D --> E[系统凭据弹窗原生密码本接管]

- 网站立刻能识别"这台手机有平台认证器"喵
- 创建/验证通行密钥全走原生密码本(ColorOS 密码本、谷歌密码管理工具等)
- 宿主重新改设置时模块会自动把开关粘回去

📦 壳浏览器支持

| 浏览器 | 状态 |
| Via GP(mark.via.gp 7.3.3) | ✅ 已实测——创建 + 验证全程正常 |
| Via 国行(mark.via) | 默认接线,等实测反馈喵 |
| 其他所有壳 | ⚠️ 机制适用(WebView ≥ 124),但默认未接线——把包名加进 MainHook.java 的 TARGETS,重新构建即可 |

🧱 技术堆栈

| 层 | 用什么 | 为什么 |
| Hook 运行时 | Xposed API 93 / LSPosed | 注入进浏览器自身进程;关模块 = 原生行为 |
| 桥接 | androidx.webkit 1.17(WebSettingsCompat.setWebAuthenticationSupport) | 官方 WebView ↔ Credential Manager 集成,随模块 dex 自带 |
| 目标底线 | Android 7.0+(API 24)/ 系统 WebView 124+ | 启用现成能力,不回填 |
| 构建 | javac → d8 → aapt2 → apksigner(纯 PowerShell,无 Gradle) | 约 350 行总量,一条脚本可复现 |
| 依赖广度 | 无网络、无 UI、无系统写入 | 可逆性就是设计约束喵 |

为什么要自带 androidx.webkit?因为壳们从来不带它——hook 必须供得起自己要应用的桥喵。

🚀 安装

1. 前提:root + LSPosed,Android 7.0+,系统 WebView 124+
2. 从 Releases 下载 APK 安装
3. LSPosed 管理器里启用模块(作用域已按 manifest 预填),重启浏览器
4. 打开任意支持 passkey 的网站,等系统凭据弹窗冒出来喵

完全可逆:关掉开关或 pm uninstall io.github.cmyfqwq.webauthnshell,一切恢复原生,零残留。

🔨 自己构建

不需要 Gradle——一条 PowerShell 脚本驱动 javac → d8 → aapt2 → apksigner:

pwsh build.ps1 # → build/WebAuthn-Shell-1.0.0.apk

想加浏览器?改 MainHook.java 里的 TARGETS 加包名,重建喵。

🕓 兼容性:你的设备还需要它吗?

先自查再报"没效果"喵。 本模块存在的前提是"WebView 默认关闭 WebAuthn、宿主必须自己 opt in"——而新的 WebView/系统版本已经开始自己翻这个默认开关了:

| 设备情况 | 实际表现 |
| Android ≤ 16,WebView 约 124–13x(历史上需要壳主动 opt in) | ✅ 本模块的目标区间——不装的话壳浏览器报"没有平台验证器" |
| Android 16/17 + 新版 WebView(实测:HyperOS 4.0.0.24 / Android 17) | ⚠️ WebView 可能已默认对壳放行 navigator.credentials,模块在这些设备上变成冗余空转;那边的 passkey 成功是凭据提供方侧的功劳,与本 hook 无关 |
| 壳自己就调用 androidx 开关 | ✅ 任何版本——模块按设计变得多余(这正是理想结局) |

快速自查:在 LSPosed 里停用本模块 → 强杀浏览器 → 重试 passkey。还能用,说明你的设备已经不需要它了,不是坏了喵。

另外注意提供方一侧:小米 HyperOS 4 的默认凭据提供方可能仍拒绝 WebView 发起的请求(NotReadableError),见下方 FAQ。

🧭 FAQ

这算漏洞利用吗?
不算喵。它只是在目标 app 自己的进程里设置一个公开的(androidx)配置——壳浏览器自己本来就该调这行。没有加任何 WebView 做不到的事,系统侧的守门逻辑原封不动。

为什么不直接找浏览器官方?
请务必去提喵——每个浏览器加 3 行原生就好了,那是本模块最理想的下场。这个模块的存在就是为了在官方补齐之前先把洞堵上。

小米 HyperOS 4.0 / Android 17 机型会怎样?
实测:hook 正常接通,但系统默认 provider(小米密码本 com.miui.passwords)对第三方 WebView 的 WebAuthn 请求会抛 NotReadableError: unknown error talking to the credential manager,密码本内查无写入记录喵 —— 这是小米侧 provider 未完整实现/未放行的问题(同机 Chrome 走 Google 密码管理工具可正常创建喵)。等小米在设置里放出 passkey 提供方切换或修复后,HyperOS 4 上即可恢复喵;欢迎把此结论反馈给小米喵。

☕ Credits

- 基于 androidx.webkit 的 WebView–Credential Manager 官方桥接
- 问题情报来自 caniuse passkey 支持矩阵(QQ 14.9 / 百度 13.52 不支持)和上游壳浏览器翻车报告(如 openai/codex #31204)

MIT · 无追踪 · 无联网 · 一个开关

cmyfqwq 出品
预览分享卡片长什么样 ↓cmyfqwq/webauthn-for-webview-shells
分享 · DeepSeek Harness Hub
cmyfqwq/webauthn-for-webview-shells

让轻量壳浏览器调用系统通行密钥登录网站

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部