巧用开源方案,零成本实现验证码短信转发
2022/01/26iphone
android
smsforwarder
bark
sspai
减少重复切换和操作,双机党们再也不用收到验证码的时候到处找备机啦。
为了能够用两个微信彻底分离工作和生活,又苦于 iPhone 不能双开微信,我开始使用 Android 手机作为工作备用机,无奈之下加入了双机党的阵营。
我有两个号码: A 和 B,因为号码 A 流量多,就把它留在了主力机上,号码 B 挪到了备用机。可大部分服务都是用号码 B 注册的,使用主力机时,时常因为各种原因,需要填写号码 B 收到的短信验证码,此时又得拿起备用机查看验证码。如此反复,真的令人非常不爽。
为此我开始寻找 Android 短信转发的解决方案,最终通过 SmsForwarder + Bark 解决了这个问题,经过一段时间的使用,效果非常不错。现在我把这个 Android 手机短信转发给 iPhone 的方案分享给大家,有需要的朋友可以作为参考。
短信转发至 iPhone 效果
在 iPhone 中安装 Bark App
🔗 下载地址:App Store
Bark 是一款 Apple 生态内的自定义推送服务,它充分利用了 Apple 推送通知服务 (APNs) 进行工作,原理是将自定义推送内容通过 发送端 > Bark 服务端 > 苹果 APNs 服务器 > 你的设备 > Bark 进行传递。
由于完全依赖 Apple 推送通知服务,app 本身无需前台运行,几乎不会对 iPhone 的续航产生影响。
第一次打开 Bark 时,会自动为你的设备生成 key ,复制 app 首页自动生成的第一个带有 key 参数的 URL 备用。
Bark
在 Android 手机中安装短信转发器 SmsForwarder
🔗 下载地址:酷安
SmsForwarder 是我在酷安找到的 开源 Android 短信转发工具,它有一个简单直白的中文名称「短信转发器」,这款 app 在转发短信时,能设置转发模板,还能对短信内容设置多种筛选条件,可以利用钉钉、飞书、邮箱、企业微信、Server 酱、Telegram 等多种渠道进行推送。
打开「短信转发器」,依次点击「发送通道」–「添加发送通道」,选择「Bark」,填入上一步在 iPhone 端 Bark 中生成的推送地址,点击「确定」保存设置。
将 Bark 设置为发送通道
返回 app 首页,点击「转发规则」–「添加短信转发」,设置好你自己的短信转发规则。比如:当你只想转发备用机的验证码短信时,可以将短信内容匹配关键字设置为「验证码」,这样只有包含验证码的短信才会被转发,其它诸如广告营销、公益宣传等内容的短信则不会被转发。此处也可以根据自己的需要添加其它规则。
设置短信转发规则
除了转发短信,SmsForwarder 还可以转发 Android 手机的未接来电和应用通知,因为与本文主题无关,感兴趣的朋友可以自行下载体验。
为 SmsForwarder 设置应用权限 ⚠️
出于续航因素考虑,Android 手机的后台策略都非常保守,致使 SmsForwarder 在后台运行时,容易被系统 kill 软件后台进程。为保证短信转发功能的正常运作,需要在手机系统中设置好 app 的自启动、后台运行、电池优化等必要权限。由于各品牌手机的设置方式存在差异,在此不做详细说明。
示例:realme UI 后台权限设置
出于隐私角度考虑,一些国内的定制系统会默认隐藏包含验证码的短信,第三方应用即使被授予短信权限,也无法读取到这类型的短信。因此需要在手机短信设置中关闭相关防护功能,此类短信才能被读取并转发至其它设备。
realme UI 验证码安全保护
将 Android 手机收到的验证码转发至 Mac
根据同样的原理,你也可以在 Mac App Store 中搜索安装 Bark,生成推送地址后,在 SmsForwarder 中将其设置为第二个推送通道。这样你就可以在 iPhone 和 Mac 上同时收到来自 Android 手机的验证码短信,方便你在使用 Mac 时填写验证码。
总结
得益于 Apple 推送通知服务的稳定性,无论是 WiFi 还是蜂窝数据,这一套短信转发方案几乎都没有延迟,使用起来非常的方便。缺点是两台设备必须都要联网才能实现转发和接收,而且只能从 Android 转发短信到 iPhone,反向无效。
如果对 Bark 提供的后端服务有隐私方面的顾虑,你也可以通过该项目在 GitHub 公开的后端代码自行搭建后端服务。除了本文中提到的 Bark,你还可以使用 PushDeer 等其它类似的推送服务进行转发,工作原理和配置方法也是类似的。
© 本文著作权归作者 @JLDUAN 所有,并授权少数派独家使用,未经少数派许可,不得转载使用。 原文地址 https://sspai.com/post/71054