开源项目
pppscn/SmsForwarder avatar
pppscn/SmsForwarder

SmsForwarder 评测:把备用安卓机变成短信与通知的中转站

Android APP bark webhook Telegram Server PushPlus V3.0 PS. APK BUG 问题 PR 。

27,980 个 Star3,415 个 ForkKotlinBSD-2-Clause
GitHub

秒懂

它是什么?
SmsForwarder 是一款 Kotlin 编写的安卓应用,能把短信、来电和 APP 通知按规则转发到钉钉、Telegram、bark 等十余个渠道,并支持远程控制。本文基于仓库文档和发布记录,分析它的工作机制、上手成本和适用边界。
适合谁用?
SmsForwarder 适合有闲置安卓手机、需要把短信或通知集中到 IM 工具或自建 webhook 的人,尤其是那些需要远程查短信、查电量、发短信的场景。不适合对隐私极度敏感的用户,因为 APP 会向友盟统计发送版本信息,且 README 明确声明不对隐私泄露负责。
能商用吗?
可以。BSD-2-Clause 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库最近一次提交在 2 天前。
用什么语言写的?
主要是 Kotlin(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月14日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决什么问题,谁需要它

SmsForwarder 面向的是手里有多余安卓手机的人。这类手机通常不再插卡使用,或者只作为备用机放在家里,但可能收到验证码短信、银行通知或 APP 推送。把 SIM 卡留在备用机里,再让它把消息转发到常用的聊天工具,是很多人的刚需。项目 README 自称“备用机必备神器”,虽然有点夸张,但定位很明确。它监控三类事件:短信、来电、APP 通知,然后按用户定义的规则转发到钉钉、企业微信、飞书、邮箱、bark、webhook、Telegram、Server酱、PushPlus,甚至直接转发到另一部手机的短信。V3.0 还加入了主动控制功能,可以远程发短信、查短信、查通话、查话簿、查电量。V3.3 又加入了自动任务和快捷指令。所以它不只是个转发器,还是一个远程管理备用机的入口。

转发机制与规则引擎

工作流程在 README 里只有一张图,没有文字说明,但从功能描述和项目依赖可以推断出大致机制。APP 通过监听系统广播或使用通知读取服务捕获事件,然后经过规则匹配,决定是否转发以及转发到哪个渠道。规则应该包含发送者号码、关键词、SIM 卡槽等条件,因为 README 提到“根据指定规则转发”。转发动作是异步的,每个渠道有对应的适配器,例如 bark 走 HTTP POST,Telegram 走 Bot API,webhook 则允许用户自定义 JSON 格式。主动控制功能依赖内置的 HTTP 服务器(AndServer)和 socket 通信(kmnkt),让客户端能向服务端发送指令。值得注意的是,规则引擎和转发逻辑都写死在 APP 里,用户只能通过界面配置,不能写脚本。这意味着复杂场景,比如根据短信内容动态决定转发目标,可能做不到,除非用 webhook 配合外部服务。

安装与配置:从 APK 到第一条转发

安装方式很直接,从 GitHub Releases 或 Gitee 镜像下载 APK 即可。当前最新版是 v3.5.0,发布于 2026 年 2 月 14 日,名为“免费开源5周年新春纪念版”。v3.x 适配 Android 4.4 到 13.0,覆盖了绝大多数旧设备。首次启动需要授予通知读取权限,这是读取 APP 通知的前提。短信和来电的监控需要授予短信权限和电话权限。配置转发规则在界面里完成,具体路径 README 没有细说,但 Wiki 有完整文档。一个关键点是,Android 8.0 以上对后台运行有限制,APP 内置了保活措施(依赖 Cactus 库),但保活并不能保证 100% 不被系统杀掉,特别是国内 ROM 的省电策略。如果你打算长期运行,需要手动在系统设置里允许自启动、忽略电池优化。这些步骤 README 没有展开,但 Wiki 里应该有。

远程控制:把备用机变成一台小服务器

V3.0 引入的主动控制是 SmsForwarder 区别于普通转发工具的核心。它让用户可以从另一台设备发送指令,查询备用机的短信、通话记录、联系人列表和电量,甚至远程发送短信。实现方式是在备用机上运行一个 HTTP 服务(AndServer)和 socket 服务(kmnkt),客户端通过局域网或内网穿透(frpc)连接。内网穿透的支持意味着即使备用机在家庭网络里,也能从外网访问。这解决了备用机没有公网 IP 的问题。但这也带来了安全风险:任何能访问该服务的人都能查看短信和联系人。README 特别强调“不能保证其合法性,准确性,完整性和有效性”,并声明不对隐私泄露负责。所以如果你要启用远程控制,必须自行配置访问认证和加密通道,否则相当于把隐私暴露在公网上。

自动任务与快捷指令:有限但够用的自动化

v3.3 新增了自动任务和快捷指令功能。README 没有给出具体示例,但从命名推测,自动任务允许用户设置触发条件,比如定时转发、电量低于某个阈值时通知,或者收到特定短信时执行动作。快捷指令可能是一系列操作的组合,比如一键查询所有状态。这个功能让 SmsForwarder 从被动转发变成主动执行,但它的脚本能力很弱,没有编程接口。相比 Tasker 这类自动化工具,SmsForwarder 的自动化是预设好的,不能自定义逻辑。如果你需要复杂的条件分支,比如根据短信内容调用不同 API,那它做不到。但对于大多数备用机场景,比如每天定时上报电量,或者收到验证码后自动转发到 Telegram,这个功能应该够用。

隐私与法律风险:文档里的红色警告

README 里有大段的特别声明,语气相当严肃。它明确说项目代码和 APK 仅用于测试和学习研究,禁止商业用途,并且不保证合法性、准确性、完整性和有效性。更关键的是,任何使用或传播导致的后果,包括隐私泄露,贡献者都不负责。隐私声明部分说 APP 启动时会向友盟统计发送版本信息,手动检查更新时会发送版本号,除此之外没有其他数据。但友盟统计本身是第三方 SDK,它收集的数据是否仅限于版本信息,文档没有详细说明。另外,短信和通话记录属于敏感数据,如果转发到外部服务,这些数据就会离开设备。使用前必须评估目标渠道的信任度,比如自建 webhook 比第三方机器人更可控。法律层面,不同地区对短信转发的监管不同,README 提醒用户自行判断是否符合当地法律。这不是一个可以无脑使用的工具。

维护状态与升级成本

项目维护活跃,最近一次提交是 2026 年 2 月 14 日,与 v3.5.0 发布同日。版本节奏稳定,v3.3.2 到 v3.3.3 间隔一年,v3.3.3 到 v3.5.0 又是一年,每年一个纪念版。升级方式有两种:加入预览体验计划后在线更新,或者手动从 GitHub Actions 的 Weekly_Build.yml 下载每周构建版。在线更新功能依赖 XUpdate 框架,需要在“关于软件”页面开启。升级成本不高,因为 APK 是整体替换,规则配置应该会保留,但跨大版本升级前最好备份配置。许可证是 BSD-2-Clause,属于宽松许可证,允许商用和修改,但 README 又声明禁止商业用途,这两者存在矛盾。如果打算集成到商业产品里,需要谨慎,最好咨询法律专业人士。

替代方案与比较

最直接的替代品是项目原型 TranspondSms,它只做短信转发,没有通知监听和远程控制。SmsForwarder 在功能上完全覆盖它,但原型可能更轻量。另一个方向是 Tasker 加 HTTP 请求,Tasker 可以监听短信和通知,然后用 HTTP Post 发送到任意服务。Tasker 的优点是灵活,可以写条件逻辑,但缺点是配置复杂,而且 Tasker 本身是付费应用,不是开源。如果只需要转发到 Telegram,Telegram Bot API 可以配合 IFTTT 或 Zapier,但这些服务依赖云端,不如 SmsForwarder 本地处理隐私。SmsForwarder 的优势是开箱即用,支持渠道多,且包含远程控制。劣势是自动化能力弱,规则引擎不可编程。选择哪个取决于你对灵活性的需求,以及是否愿意为 Tasker 付费。

编辑结论

SmsForwarder 适合有闲置安卓手机、需要把短信或通知集中到 IM 工具或自建 webhook 的人,尤其是那些需要远程查短信、查电量、发短信的场景。不适合对隐私极度敏感的用户,因为 APP 会向友盟统计发送版本信息,且 README 明确声明不对隐私泄露负责。不适合完全不懂 Android 权限管理的新手,因为通知读取权限和后台保活需要手动配置。采用前先确认三件事:目标安卓版本在 4.4 到 13.0 之间;你能接受每次启动时向友盟发送版本信息;你愿意阅读 GitHub Wiki 里的详细配置。若只是偶尔转发一条短信,用 Tasker 加 HTTP 请求可能更轻量,但若需要多规则、多通道和远程控制,SmsForwarder 是目前少有的免费开源方案。

官方来源

  1. Official README
  2. Project repository
  3. Release notes
社区笔记

社区笔记