阿猫的博客

阿猫的博客

利用快捷指令实现短信转发

267
2024-10-17

概述

目前已知的方案有以下几种:

  • 利用旧安卓手机转发
  • 随身 WIFI
  • ESP32 + Air780,硬件转发
  • 商业方案(专门的硬件软件)
  • 快捷指令(需要 iPhone)

我最终使用的是 Shortcuts 的方式实现,没有任何成本,够稳定,也能满足我的需求。其他的方案我也会把收集到的流程和我踩到的坑简单说明,虽然我总共只花了一天去探索,再投入一点时间精力说不定有办法能解决,但是我觉得折腾的成本已经超过了预期,因此没有细究。

安卓手机转发

比较值得一看的是 SMSForwarder 这个项目,基本上所有安卓手机转发都使用这个方案(更古早有使用 Tasker 之类的)。配置好通知渠道基本就可以用了,这个方案我很早之前也有使用过,总体可靠性和体验还行。

但是这个方案需要把一个手机长时间放在家里充电,不是很想把「收藏」的手机用来干这个,也不想专门再买旧手机了,另外在比较新的安卓系统上还有保活的问题,不是长久之计。

随身 WIFI

主要是利用 22 年左右有一批高通 410 的随身 Wi-Fi,通过刷成安卓系统魔改然后装 SMSForwarder,或者刷成 debian 再配合脚本命令去做转发。

我遇到的坑是,虽然翻箱倒柜从家里找出一个当时囤的电子垃圾,但是当时就刷好了 debian,也没有备份基带,导致插卡没反应,网上也没怎么找到相关的资料(对,都是教人备份的,我玩的时候还没这些资料呢,上来就刷了)。

ESP32 + Air780 硬件转发

这也是个比较火的方案,当时有个 Air780E 开发板卖得很便宜(大概是吧),配合上 9.9 的 ESP32-C3 就可以做一套硬件短信转发。

缺点是需要自己去焊接,我虽然有焊接的工具,但是练习的时候不小心烫到了自己大腿,顿时丧失了买针座焊板子的兴致了,也不想去折腾陌生的技术栈了。

我的方案 —— 快捷指令 + Heimdallr

苹果的快捷指令有一个自动化的功能,相当于是可以接受一些条件触发,然后运行一些简单的东西。触发的条件有很多,其中就包含收到包含某关键字的短信,执行某些操作,这就是我们想要的转发。

触发之后,我们还需要把短信通过某种渠道转发出去,这里就跟安卓的操作大同小异了。如果你使用 Bark,可以通过接口把短信内容发出去。这里我使用自己开发的通知聚合服务 Heimdallr 来实现通知。

整体的操作其实比较简单,第一步是新建一个自动化,条件选「短信」,当包含「code」关键词时,立即执行。(这里我的关键词选的是「code」,因为主要转发一张境外手机卡绑定境外服务的验证码,所以基本能覆盖全部场景,如果是国内的手机号接受国内服务验证码,可以就用「验证码」作为关键词)

第二步,选择执行「获取 URL 内容」,这个实际上是请求某个接口。URL 填入 Heimdallr 服务的地址,然后方法选择 POST,如下填入请求体即可。

最终效果如下。