XposedSmsCode

Star History Chart

Get it on Google Play Get it on GitHub

Module Downloads Commits Last Commit Contributors CI Latest Release Release Date Downloads License

Kotlin Jetpack Compose Gradle AGP Min SDK Target SDK Xposed API Telegram

识别短信验证码的Xposed模块,并将验证码拷贝到剪切板,亦可以自动输入验证码。

如果你还需要将验证码、短信内容或应用通知进一步转发到 Telegram、Webhook、邮箱等通道,可以了解一下新项目 信驿 Relay。它更偏向消息转发与验证码联动场景;若主要需求是验证码识别与自动输入,继续使用本项目会更合适。

English Version

应用截图

交流与反馈

使用

  1. Root你的设备,安装Xposed框架;
  2. 安装本模块,激活并重启;
  3. Enjoy it!

欢迎反馈,欢迎提出意见或建议。

注意

  • 此模块适用于偏原生的系统,其他第三方定制Rom可能不适用。
  • 兼容性:最低 Android 7.0(API 24),目标 Android 16(API 36)。
  • 支持 LSPosed / Xposed API 82+(具体取决于系统与框架实现)。
  • 代码库:100% Kotlin + Jetpack Compose + Room + Coroutines
  • 遇到问题请先阅读模块中的"常见问题"

功能

  • 收到验证码短信后将验证码复制到系统剪贴板
  • 收到验证码时显示Toast
  • 收到验证码时显示通知
  • 将验证码短信标记为已读(实验性)
  • 验证码提取成功后,删除验证码短信(实验性)
  • 拦截验证码短信
  • 自定义验证码短信关键字(正则表达式)
  • 自定义验证码匹配规则,并支持规则导入导出
  • 自动输入验证码

文档

源码

协议

所有源码遵循 GPLv3 协议。

Releases

v3.2.8

Stable

4/24/2026, 2:55:10 AM

[v3.2.8] - 2026-04-24

  • 版本:versionCode 113 / versionName 3.2.8
  • [runtime/db] 将 Room DAO 接口重构为 suspend 函数,并在 DBManager 中通过 runBlocking 安全调用,优化主线程性能并确保数据库操作符合 Room 并发规范。
  • [deps] 升级核心依赖库:Kotlin 2.3.21、Navigation 2.9.8、Compose BOM 2026.04.01
  • [ci] 优化 CI 工作流,移除对外部相邻仓库的冗余检查逻辑,提升构建流水线运行效率。
  • [submodules] 同步 smscode-core 子模块指针,解决 mokkery 引用冲突,保持 API 抽象层与实现层的一致性。

Full Changelog: magisk317/XposedSmsCode@v3.2.7...v3.2.8

v3.2.7

Stable

4/13/2026, 6:34:31 AM

[v3.2.7] - 2026-04-11

  • 版本:versionCode 112 / versionName 3.2.7
  • 发布说明:Play 渠道继续提供 api101;GitHub 渠道同时提供 api101legacy。下载前请先确认框架类型,避免安装错误变体。
  • [core/runtime] 新增 RuntimeBackupFacadeRuntimeStoreFacade,备份恢复、发布导入导出入口与应用配置持久化改经 facade 暴露,继续减少 core 对 runtime 内部 feature 实现的直接感知。
  • [quality] 修复应用列表按使用时长排序时的权限门控问题,避免 UsageStats 访问在未授权场景下触发 lint blocker;core/runtime/app 三个模块的 check 现已重新保持通过。
  • [records] 验证码记录补齐 processedTime 贯穿链路,记录插入、数据库迁移与记录页展示进一步对齐,便于后续导出、恢复与排序保持一致。
  • [build/ci] CI、tag 发版工作流与 release_tag.sh 对齐到新的质量门:发包前会先跑 :core:check:runtime:check:app:check,同时同步 release guard 与 Fastlane 元数据流程。

Full Changelog: magisk317/XposedSmsCode@v3.2.6...v3.2.7

v3.2.6

Stable

4/2/2026, 7:46:45 AM

[v3.2.6] - 2026-04-02

  • 版本:versionCode 111 / versionName 3.2.6
  • 发布说明:Play 渠道继续提供 api101;GitHub 渠道同时提供 api101legacy。下载前请先确认框架类型,避免安装错误变体。
  • [ui] 首页、记录、菜单、对话框与主要设置入口继续做统一化整理,整体视觉语言更一致。
  • [ui] 主导航、概览卡片、记录列表和设置页的交互细节继续打磨,减少不同页面之间观感割裂的问题。
  • [activation] 修复激活状态刷新不及时的问题,减少模块已经恢复工作但首页状态卡仍停留在旧状态的情况。
  • [auto-input] 对齐观察侧调度与共享去重逻辑,降低重复识别、重复通知与重复自动输入验证码的概率。
  • [logs] 导出日志包文件名增加命名空间整理,连续多次导出时更容易区分不同来源,减少覆盖和反馈混淆。
  • [api101/legacy] 同步共享子模块和构建逻辑,继续收敛两条发版链路的实现差异,减少后续维护和发版漂移。

Full Changelog: magisk317/XposedSmsCode@v3.2.5...v3.2.6

v3.2.5

Stable

3/29/2026, 2:18:52 AM

[v3.2.5] - 2026-03-28

  • 版本:versionCode 110 / versionName 3.2.5
  • sdk 升级到37(android 17)
  • 发布说明:Play 渠道继续提供 api101;GitHub 渠道同时提供 api101legacy,请按框架类型选择安装包。
  • [api101/legacy] 继续重构验证码主链路:共享 smscode-core verification pipeline,并将 runtimestorage 中拆出,统一 dispatch、observer、通知、自动输入与记录能力,减少 flavor 之间的实现漂移。
  • [api101/legacy] 修复验证码解析结果在 app 侧 Bundle 解包时丢失的问题,恢复部分场景下通知、记录与自动输入不触发的链路。
  • [api101/legacy] 改进无障碍自动输入重试、输入节流与前台包名判定,降低部分机型上的自动输入失败概率。
  • [ui] 设置页数值输入继续做规范化处理,并同步简化无障碍服务说明文案与设置项文案复制逻辑。
  • [build/ci] 对齐共享子模块基础设施、发布产物工作流与依赖强制维护脚本,降低后续发版维护成本。

Full Changelog: magisk317/XposedSmsCode@v3.2.4...v3.2.5

v3.2.4

Stable

3/26/2026, 4:06:30 AM

[v3.2.4] - 2026-03-26

  • 版本:versionCode 109 / versionName 3.2.4
  • 发布说明:Play 渠道继续提供 api101;GitHub 渠道同时提供 api101legacy。下载前请先确认框架类型,避免下错包。
  • [github/fdroid] 自动输入新增无障碍输入框路径,优先查找当前验证码输入框直接填入,失败后再回退到模拟按键输入,并在设置页补充“输入框辅助”入口。
  • [play api101] 移除无障碍服务声明,保留现有自动输入链路,避免 Play 渠道继续携带对应服务入口。
  • [legacy] 继续强化验证码自动输入稳定性:观察器改为优先查询触发短信、跳过已读短信,并增加观察侧短窗口去重,降低部分机型重复自动输入、多次处理同一短信的问题。
  • [api101/legacy] 增加仅详细日志模式下启用的敏感日志开关,并补充短信投递诊断,便于分析验证码未触发、投递失败或链路重复问题。
  • [api101/legacy] 新增验证码短信规则管理入口与交互优化,设置页恢复可关闭 Snackbar,单选对话框改为点击即应用。
  • [api101/legacy] 验证码通知支持更细粒度的 owner 配置与权限引导,应用自持有通知路径的兜底行为进一步加固。
  • [api101/legacy] 修复 Android 16 上的短信拦截兼容性问题,并修正 Rule 表迁移中 check 列的 SQLite 关键字转义。
  • [build] 更新 Compose、Kover、androidx.browser 与 CI 依赖,保持构建链路与发布环境同步。

Full Changelog: magisk317/XposedSmsCode@v3.2.3...v3.2.4

v3.2.3

Stable

3/23/2026, 6:05:06 AM

[v3.2.3] - 2026-03-23

  • 版本:versionCode 107 / versionName 3.2.3
  • 发布说明:Play 渠道继续提供 api101;GitHub 渠道同时提供 api101legacy。下载前请先确认框架类型,避免下错包。
  • [api101/legacy] 重构为 split shared layers,并同步更新 smscode-core 子模块,统一共享 hook、日志与输入基础能力,减少 flavor 之间的实现漂移。
  • [legacy] 首页激活状态改为接受 sms_handler heartbeat,修复旧框架下“已激活但状态卡误判未激活”的问题。
  • [api101/legacy] 强化验证码 Toast 去重与短信分发防重,降低重复提示、重复处理与重复自动输入概率。
  • [legacy] 进一步避免 InboundSmsHandler 重复初始化与重复分发,兼容旧框架重复加载场景并提升稳定性。

Full Changelog: magisk317/XposedSmsCode@v3.2.2...v3.2.3

v3.2.2

Stable

3/22/2026, 3:21:29 PM

[v3.2.2] - 2026-03-22

  • 版本:versionCode 106 / versionName 3.2.2
  • 发布说明:Play 渠道继续提供 api101;GitHub 渠道同时提供 api101legacy。下载前请先确认框架类型,避免下错包。
  • [api101] Play 版继续面向 libxposed API 101,新框架用户请选择 api101 包。
  • [legacy] 恢复 legacy 风味构建与旧 Xposed 入口;legacy 框架(API < 100)现在可升级到 3.2.2,但必须安装 legacy 包。
  • [api101/legacy] 更新检查按 Xposed API flavor 匹配发布资产,减少 api101 / legacy 安装包选错概率。
  • [api101/legacy] 状态卡新增激活诊断展示,并记录短信/Provider 链路的激活线索,便于排查未激活或注入失败。

Full Changelog: magisk317/XposedSmsCode@v3.2.1...v3.2.2

v3.2.1

Stable

3/19/2026, 5:04:44 PM

[v3.2.1] - 2026-03-19

  • 版本:versionCode 104 / versionName 3.2.1
  • 仅支持 libxposed API 101;legacy 框架(API < 100)请停留在 3.2.0 或更低版本。
  • 升级到 3.2.1 需要框架版本 >= 7607。
  • 设置读取链路调整:RemotePreferences 优先、Provider 兜底,降低前台读取失败概率。
  • 自动输入增加“近期去重缓存”,减少重复输入。
  • 移除 legacy 入口、旧配置迁移与兼容依赖。

Full Changelog: magisk317/XposedSmsCode@v3.2.0...v3.2.1

v3.2.0

Stable

3/18/2026, 4:52:59 PM

[v3.2.0] - 2026-03-19

  • 兼容 libxposed 新框架 API 101,与 legacy 同包共存(新增 libxposed 入口与 metadata)。
  • 抽取 smscode-core 共享模块,统一 hook/权限/系统注入与日志能力。
  • 激活判定改为 service/binder 状态兜底,首页激活显示修正。
  • 短信链路增强:observer 兜底自动输入、dispatch/provider 诊断日志完善、去重修复。
  • 删除/广播回调兼容性增强,权限授予与 sendingUid 获取路径改进并补充诊断。
  • 自杀链路日志增强,便于确认是否被系统重启。
  • 日志包新增 logcat 抓取;恢复流程修复 SAF 持久权限。
  • 依赖/构建更新(Kotlin/Koin/Gradle),CI 支持 submodule 拉取。

Full Changelog: magisk317/XposedSmsCode@v3.1.9...v3.2.0

v3.1.9

Stable

3/16/2026, 5:38:08 AM

  • 升级至 3.1.9(102)正式版,移除 beta 标识。
  • 冲突提示、默认作用域(含 system)与繁中缺失文案已汇总修复。
  • Android 16 权限授予链路适配并增强 hook 诊断输出。
  • HyperOS 3 改用 Provider 自杀路径,提升 kill 稳定性。
  • 设置页支持一键导出分享日志包,签名输出启用 v1/v2/v3。
  • 详情与下载:https://github.com/magisk317/XposedSmsCode/releases

v3.1.9-beta

Pre-release

3/9/2026, 8:04:13 AM

  • 升级到 3.1.9-beta(101)。

  • 冲突检测弹窗收敛为“仅退出”,明确需先卸载另一模块后再使用。

  • 默认作用域补充 system,降低 system_server 场景漏注入风险。

  • 补齐繁中(zh-TW)设置分组与备份项文案缺失。

    Source: https://github.com/magisk317/XposedSmsCode/releases/tag/v3.1.9-beta

v3.1.8

Stable

3/8/2026, 11:46:43 AM

  • 升级到 3.1.8(100),聚焦验证码主链路能力演进。

  • 清理历史转发/通知转发/WebUI 遗留代码与配置入口。

  • 修复 Xposed 自动输入注入兼容性问题(#165),并新增中继冲突仲裁与启动风险确认。

  • 精简应用黑名单与记录页面,增加自杀 Kill Action。

    Source: https://github.com/magisk317/XposedSmsCode/releases/tag/v3.1.8

v3.1.7

Stable

3/7/2026, 4:58:11 AM

  • ⚠️⚠️⚠️此为中转过渡版本⚠️⚠️⚠️
  • 从此版本开始,功能开始分离:
    • 验证码+转发功能单拆一个包,移至信驿Relay
    • 本应用仅保留验证码相关功能(重构UI)
  • 本应用数据可以直接备份,从新应用导入
  • 下个版本开始:
    • 将去除通知转发等相关功能
    • 相关数据在前端不可读不可写,可以导入新应用使用,或自行处理

新应用:

3/5/2026, 6:50:24 AM

[v3.1.7-beta] - 2026-03-05

核心能力升级 (Core Features)

  • 数据与转发链路升级到新阶段:新增 DB v15/v16 迁移,补齐通话通知记录字段,并引入应用通知双向路由(应用->通道通道->应用 交集判定)。
  • 通话通知能力完整落地:新增通话通知独立类型、Sender 独立开关、App/WebUI 第 4 个记录分组,并打通导出与备份恢复兼容。
  • Root 补偿链路增强:支持 token 空窗口与后台周期补偿,覆盖短信与通话状态补采,提升强停/保活薄弱场景下的转发连续性。

WebUI 与安全 (WebUI & Security)

  • WebUI 升级为 HTTPS + Basic Auth,并新增端口/用户名/密码配置页(支持复制、密码显隐)。
  • 新增证书信任辅助:支持指纹展示、.cer 导出、.p12 导出(含私钥)与安装页入口,降低“连接不安全/证书不受信任”排查成本。

体验与配置 (UX & Config)

  • 应用配置页简化为“配置入口”模式,路由配置入口与通道编辑页形成统一组合。
  • 发送通道顶部卡片重构:设备名称改为“通用配置”,并整合 SIM 备注编辑入口(设置页移除重复项)。
  • 多处页面视觉与交互细节优化(记录 Tab 展示、通道配置布局、应用列表交互)。

Full Changelog: magisk317/XposedSmsCode@v3.1.6...v3.1.7-beta

v3.1.6

Stable

3/3/2026, 4:04:19 PM

[v3.1.6] - 2026-03-03

核心能力升级 (Core Features)

  • 转发体系重构:引入发送通道(Webhook/Telegram 等)与公共模板配置,支持按通道独立启停、独立配置与状态反馈。
  • 普通短信转发策略升级:新增“按通道控制普通短信转发”,并统一短信/应用通知的转发结果记录语义。
  • 应用通知能力上线:新增应用通知转发链路(系统 Hook + 监听兜底)、应用控制页与应用详情页,支持按应用粒度控制与诊断。
  • 新增内置 WebUI:支持发送通道增删改查、记录查看与更多设置映射,并补充局域网访问开关。

记录与设置演进 (Records & Settings)

  • 记录中心增强:支持验证码/普通短信/应用通知分类型开关、保留条数与导出范围。
  • 模板与配置体验优化:变量体系补齐(卡槽/来源等)、模板编辑与预览增强、通道详情返回自动保存。
  • 自动输入与拦截链路持续优化:补充字符间隔设置、黑名单规则与行为链路稳定性改进。
  • 更新与保活增强:新增非 Play 应用内升级流程(含 APK 摘要与签名一致性校验)及后台保活选项。

稳定性与诊断增强 (Stability & Diagnostics)

  • 修复“应用控制”大位图崩溃风险:主题截图与图标解码增加尺寸保护,应用列表支持分段渲染。
  • 短信链路可观测性升级:新增 event_id 全链路追踪,阻断路径补充明确原因(blacklist_block / pref_block_sms)。
  • 跨进程与跨 UID 场景加固:清理误导性 EACCES 回退噪声,补强 token 读取与系统进程兼容逻辑。
  • 发送通道体验优化:新增删除后 5 秒撤销(Undo)能力,降低误删成本。

工程与发布 (Engineering & Release)

  • 版本升级到 versionCode 97 / versionName 3.1.6
  • 构建链路与静态检查持续清理(Gradle nightly / Detekt),并将 Renovate 基线分支调整为 beta 以对齐自动化流程。

Full Changelog: magisk317/XposedSmsCode@v3.1.5...v3.1.6
Incremental since beta.5: magisk317/XposedSmsCode@v3.1.6-beta.5...v3.1.6

3/3/2026, 4:23:03 AM

[v3.1.6-beta.5] - 2026-03-03

功能与体验 (Features & UX)

  • 新增“后台保活”分组:支持“强停后自恢复”与“恢复失败时前台拉起一次”两项能力(默认关闭)。
  • 新增 SIM 卡槽备注:可自定义模板变量 {{CARD_SLOT}} 文案,便于多卡场景区分。
  • 新增自动输入“字符间隔(ms)”配置,优化部分机型输入稳定性。

记录与转发 (Records & Forwarding)

  • 记录页能力增强:支持按验证码/普通短信/应用通知分别设置开关、条数上限与导出范围。
  • 记录详情与列表展示优化:转发结果更易读,普通短信无验证码时补充发件人/号码展示。
  • 转发链路健壮性增强:补充异常兜底与执行调度保护,修复普通短信记录与状态异常场景。

设置与 WebUI (Settings & WebUI)

  • 通道配置页优化:返回即自动保存,移除退出弹窗;模板与状态相关体验持续收敛。
  • WebUI 设置增强:补齐实验项控制与更多配置项映射。
  • 通知设置联动:关闭“显示状态栏通知”时,自动隐藏“自动取消通知/通知保留时间”选项。

修复与工程 (Fixed & Engineering)

  • 修复日志目录清理失败场景,增加 su 回退路径。
  • 修复多处记录状态判定与展示问题,降低“已转发却显示未转发”概率。
  • 持续升级构建工具链并清理静态检查告警(Gradle nightly / Detekt)。
  • 升级到 versionCode 96 / versionName 3.1.6-beta.5

提交明细 (Commit Details)

  • 6fc5455 fix(ci): allow nightly gradle wrapper in detekt workflows
  • 4953208 build(wrapper): update gradle wrapper to nightly 20260302000223
  • 7f9290f fix(detekt): clean warnings and harden exception handling
  • 6eca9fa fix: decouple interception from forwarding and refine status/settings
  • 0fbdf5d fix: implement a complete KillMeAction self-termination flow
  • 0b9a461 feat(settings): add launcher icon visibility toggle
  • 062ffef feat(sender): auto-save on back and remove exit dialog
  • e2e484b fix(log): cleanup temp log directories with su fallback
  • d42f083 fix(record): decouple forwarding status from interception and refine status rendering
  • 1f9905c fix(forward): restore plain SMS record insertion for status tracking
  • bb001a8 feat(ui): improve template preview and forwarding-result readability
  • 43b491f fix(sender-list): prevent FAB from overlapping bottom action buttons
  • 383d4c2 feat(webui): align settings groups and improve app/record operations
  • 0860439 feat(record): split tab settings and support scoped export
  • 7692d17 fix(record): apply per-type switches and retention limits
  • aba41d7 refactor(sender-form): group forwarding toggles in shared section
  • f26f017 feat(sender-list): compact cards and hide rules entry
  • 81cf556 feat(auto-input): add configurable character input interval
  • d0d384f feat(update): add non-Play in-app upgrade flow and recovery settings
  • be52786 fix(settings): link notification options visibility to status bar toggle

Full Changelog: magisk317/XposedSmsCode@v3.1.6-beta.4...v3.1.6-beta.5

3/1/2026, 4:12:38 PM

[v3.1.6-beta.4] - 2026-03-01

功能与体验 (Features & UX)

  • 新增内置 WebUI:支持发送通道增删改查与记录查看,并在高级设置增加 WebUI 局域网访问开关。
  • 增强应用通知转发诊断:补充 trace/event_id 贯穿日志、投递回执与更细粒度链路追踪。
  • Webhook 测试日志增强:补充请求上下文,便于定位 4xx/5xx 与配置差异问题。

日志与运维 (Log & Ops)

  • 日志导出升级:支持打包分享应用日志 + LSPosed 日志,并完善日志目录清理能力。
  • 日志打包链路加固:修复导出路径与存储细节,降低导出失败概率并统一私有目录策略。

修复与稳定性 (Fixed & Stability)

  • 修复应用列表切换/搜索后的视图与过滤状态异常。
  • 修复系统通知转发配置读取不稳定问题(system_server 侧容错增强)。
  • 修复邮件通道 SMTP 传输回退与 provider 兼容问题。
  • 修复备份还原后转发状态不一致问题,补齐恢复一致性。
  • 修复短信记录指纹与 msg_type 对齐问题,避免短信/应用通知状态串写。
  • 修复 DataStore/SharedPreferences 类型不一致导致的读取异常。
  • 优化短信自动删除流程:提升触发时机与重试可靠性。

工程与测试 (Engineering & Test)

  • 升级 Gradle Wrapper 夜版工具链。
  • 补齐 JUnit Platform Launcher 运行时依赖,修复单测运行环境。
  • 记录页 Haze 分层细节修复,减少视觉错位。

提交明细 (Commit Details)

  • 99a284a` build(wrapper): update gradle wrapper to nightly 20260301003351
  • f06809d fix(test): add junit platform launcher runtime for unit tests
  • bfaf804 fix(records-ui): align haze layering with fixed header tabs
  • 8ee8638 feat(webui): add Ktor web ui with sender CRUD and responsive records
  • 6bf187c feat(settings): add WebUI LAN toggle in advanced settings
  • d520969 fix(app-config): keep viewport stable and sync search filter state
  • a4433e9 fix(notification): harden app forwarding lookup in system_server
  • 57d0e84 feat(auto-input): read blocked state from provider with file fallback
  • a731ae9 fix(webui): preserve app list scroll position after toggle refresh
  • 73beb27 fix(email): add smtp transport fallback and keep mail provider classes
  • 7dde188 docs(donations): add 2026-03-01 wechat sponsorship record
  • 8046638 feat(log): support bundled log share and full log cleanup
  • dc8ec7d feat(forward): add trace logs across forwarding flow
  • cbe8435 feat(webhook): enhance header config and test log context
  • 91f8e27 docs(donations): update donor entry
  • b409f24 fix(backup): support database restore option and preserve forward state
  • 2319201 fix(db): align sms fingerprint with msg_type
  • 492d586 feat(log): harden log bundle export and private storage
  • 25237e4 fix(prefs): tolerate datastore/sharedprefs type mismatch
  • 02e644c feat(sms): improve auto-delete reliability with observer flow

Full Changelog: magisk317/XposedSmsCode@v3.1.6-beta.3...v3.1.6-beta.4

Source: https://github.com/magisk317/XposedSmsCode/releases/tag/v3.1.6-beta.4

2/28/2026, 3:11:53 PM

  • ⚠️重要提醒⚠️:重构过程中可能会丢失部分数据,请自行保存配置数据
  • 应用控制重构:新增“应用控制”与每应用详情页,支持双开关联动和近期转发日志查看
  • 应用通知转发升级:新增通道级“转发应用通知”开关,需与应用侧开关同时开启才转发
  • 转发结果统一:目标显示具体通道名

Source: https://github.com/magisk317/XposedSmsCode/releases/tag/v3.1.6-beta.3

2/27/2026, 3:13:45 AM

⚠️重要提醒⚠️:本版本重构了转发体系,升级后会清除旧转发数据,请先备份

2/25/2026, 2:30:43 PM

  • 新增:支持 Webhook + Telegram 双通道验证码转发,并记录转发结果(#119)

  • 新增:每个通道独立“转发非验证码短信”开关,普通短信仅转发正文(#120)

  • 修复:验证码解析优先返回数字验证码,避免识别成品牌词(如 Wise/PayPal)(#117)

  • 修复:记录详情中的“转发目标”仅显示通道名,隐藏具体配置(#118)

  • 修复:从后台返回时 License 页面灰屏问题(#116)

    Source: https://github.com/magisk317/XposedSmsCode/releases/tag/v3.1.6-beta