@ -1,13 +1,25 @@
![SmsForwarder ](pic/SmsForwarder.png )
[![GitHub release ](https://img.shields.io/github/release/pppscn/SmsForwarder.svg )](https://github.com/pppscn/SmsForwarder/releases) [![GitHub stars ](https://img.shields.io/github/stars/pppscn/SmsForwarder )](https://github.com/pppscn/SmsForwarder/stargazers) [![GitHub forks ](https://img.shields.io/github/forks/pppscn/SmsForwarder )](https://github.com/pppscn/SmsForwarder/network/members) [![GitHub issues ](https://img.shields.io/github/issues/pppscn/SmsForwarder )](https://github.com/pppscn/SmsForwarder/issues) [![GitHub license ](https://img.shields.io/github/license/pppscn/SmsForwarder )](https://github.com/pppscn/SmsForwarder/blob/main/LICENSE)
# SmsForwarder (短信转发器)
# SmsForwarder (短信转发器)
短信转发器——监控Android手机短信、来电、APP通知, 并根据指定规则转发到其他手机: 钉钉机器人、企业微信群机器人、飞书机器人、企业微信应用消息、邮箱、bark、webhook、Telegram机器人、Server酱、PushPlus、手机短信等。
短信转发器——监控Android手机短信、来电、APP通知, 并根据指定规则转发到其他手机: 钉钉机器人、企业微信群机器人、飞书机器人、企业微信应用消息、邮箱、bark、webhook、Telegram机器人、Server酱、PushPlus、手机短信等。
> ⚠ 首发地址: https://github.com/pppscn/SmsForwarder
### 下载地址
> ⚠ 同步镜像: https://gitee.com/pp/SmsForwarder
> ⚠ 首发地址: https://github.com/pppscn/SmsForwarder/releases
> ⚠ 国内镜像: https://gitee.com/pp/SmsForwarder/releases
> ⚠ 网盘下载: https://wws.lanzoui.com/b025yl86h 访问密码:`pppscn`
> ⚠ 网盘下载: https://wws.lanzoui.com/b025yl86h 访问密码:`pppscn`
### 使用文档
> ⚠ 首发地址: https://github.com/pppscn/SmsForwarder/wiki
> ⚠ 国内镜像: https://gitee.com/pp/SmsForwarder/wikis/pages
--------
--------
## 特别声明:
## 特别声明:
@ -53,7 +65,7 @@
- [x] 转发到其他手机短信【注意:非免费的,转发短信运营商有收费的,建议没有网络时启用,并设置好内容过滤规则】
- [x] 转发到其他手机短信【注意:非免费的,转发短信运营商有收费的,建议没有网络时启用,并设置好内容过滤规则】
- [x] 在线检测新版本、升级
- [x] 在线检测新版本、升级
- [x] 清理缓存
- [x] 清理缓存
- [x] 兼容 Android 6.xx、7.xx、8.xx、9.xx、10.xx
- [x] 兼容 Android 5.xx 6.xx、7.xx、8.xx、9.xx、10.xx
- [x] 支持双卡手机,增加卡槽标识/运营商/手机号(如果能获取的话)
- [x] 支持双卡手机,增加卡槽标识/运营商/手机号(如果能获取的话)
- [x] 支持多重匹配规则
- [x] 支持多重匹配规则
- [x] 支持标注卡槽号码(优先使用)、设备信息;自定义转发信息模版
- [x] 支持标注卡槽号码(优先使用)、设备信息;自定义转发信息模版
@ -69,131 +81,7 @@
- [x] 监听其他APP通知信息并转发
- [x] 监听其他APP通知信息并转发
- [x] 转发到PushPlus
- [x] 转发到PushPlus
### 使用流程:
--------
1. 在Android手机上安装`SmsForwarder`本APP后点击应用图标打开
2. 在设置发送通道页面, 添加或点击已添加的发送通道来设置转发短信使用的方式, 现在支持钉钉机器人、企业微信群机器人、企业微信应用消息、邮箱、bark、webhook、Telegram机器人、Server酱:
> 发送通道配置见《发送通道设置参考》章节
3. 在设置转发规则页面,添加或点击已添加的转发规则来设置转发什么样的短信,现在支持转发全部、根据手机号、根据短信内容、指定卡槽:
+ 当设置转发全部时,所以接收到的短信都会用转发出去。
+ 当设置根据手机号或短信内容时,请设置匹配的模式和值,例如:”手机号 是 10086 发送通道选钉钉“。
4. 点击主页面右上角的菜单可进入设置页面,在设置页面可以更新应用查看应用信息提交意见反馈等
5. 在主页面下拉可刷新转发的短信,点击清空记录可删除转发的记录
> ⚠ 该APP打开后会自动后台运行并在任务栏显示运行图标, 请勿强杀, 退出后请重新开启, 并加入到系统白名单中, 并允许后台运行
> ⚠ 近期接收到部分用户反馈,`SmsForwarder`无法正确转发通知类短信(普通短信正常),涉及 ROM 有华为 EMUI、小米 MIUI、VIVO OriginOS、OPPO ColorOS等。国内厂商定制系统提供了验证类短信安全保护功能, 导致验证码不能正常通过广播获得。以下是解决方案:
> ⚠ 风险警示:转发验证码可能导致您的个人隐私、账户安全受到损害,如果您已经知晓该风险,请继续进行以下操作。
> 华为 EMUI:
> 信息 > 更多 > 设置 > 高级 关闭验证码安全保护开关。
> via:https://club.huawei.com/thread-17770781-1-1.html
> 小米 MIUI:
> 安全中心 > 授权管理 > `短信转发器` > 权限 > 勾选通知类短信
> vivo 手机:
> 信息 > 左上角3个点 > 设置 > 隐私保护 > 关闭验证码安全保护开关
**【注意】如果无法关闭验证码安全保护,可以尝试“转发应用通知”的形式进行转发(部分手机系统通知中的验证码会打星号,目前无解)**
6. 稳定保活发送方案 ** 使用红米9A手机**:
1. 使用usb线接入电脑或者服务器。
2. 安装adb组件。
3. 打开开发者模式
4. adb进行授权 ```adb attach``` 然后允许授权
5. 配置定时任务每分钟执行命令 ```adb shell am start -n com.idormy.sms.forwarder/com.idormy.sms.forwarder.MainActivity```
### 发送通道设置参考
#### 钉钉机器人
* 【PC端】任意拉两个人成立一个群组, 然后将其他人踢出群( PS.【手机端】右上角+号, 发起群聊, 面对面建群, 输入4位数字后, 直接点击进入群聊)
* 在群设置->智能群助手->添加机器人,添加一个新的「自定义机器人」
* 自定义机器人,安全设置->加签, 复制到「加签Secret」一栏
* 复制自定义机器人的链接中的"access_token="后面的内容到「设置Token」一栏
* 点击【测试】按钮验证一下
#### 邮件
* 发件服务器: 邮箱的SMTP服务器地址, 如 smtp.qq.com
* SMTP端口: SMTP服务器的端口号: 通常是25; 开启SSL之后, 通常是465
* 发件账号:用于发送提醒邮件的邮箱,例如 xxxx@qq.com
* 登录密码/授权码: 用于发送提醒邮件的密码, QQ邮箱可在邮箱设置中生成一组三方邮件服务专用的授权码, 其他邮箱可能需要输入登录密码
* 收件地址:用于接收提醒的邮箱,例如 yyyy@qq.com
* 点击【测试】按钮验证一下
#### Bark( 转发IOS最佳体验, 强烈推荐)
* 从[App Store](https://apps.apple.com/cn/app/bark-%E7%BB%99%E4%BD%A0%E7%9A%84%E6%89%8B%E6%9C%BA%E5%8F%91%E6%8E%A8%E9%80%81/id1403753865)下载iOS的[Bark App](https://github.com/Finb/Bark)安装
* 打开APP, 复制测试URL,粘贴到设置「Bark-Server地址」一栏
* PS.自建服务端参考 [《Bark服务端部署文档》 ](https://day.app/2018/06/bark-server-document/ )
* 点击【测试】按钮验证一下
#### Webhook
* 参考 [向设置的url发送POST/GET请求 ](doc/POST_WEB.md )
#### 企业微信群机器人
* 任意拉两个人成立一个群组,然后将其他人踢出群
* 在会话列表右键点击刚创建的群->添加群机器人->新创建一个机器人->自定义机器人名称
* 复制WebHook地址到「设置WebHook地址」一栏
* 点击【测试】按钮验证一下
#### 企业微信应用消息
* 登录 [企业微信管理后台 ](https://work.weixin.qq.com/wework_admin/loginpage_wx?from=myhome_qyh_redirect )
* 在 [我的企业 ](https://work.weixin.qq.com/wework_admin/frame#profile ) 复制「企业ID」
* 在 [应用管理 ](https://work.weixin.qq.com/wework_admin/frame#apps ) 中 [创建应用 ](https://work.weixin.qq.com/wework_admin/frame#apps/createApiApp )
* 进入自建应用, 复制「AgentId」和「Secret」
* 默认是 @all (应用的可见范围内所有人),如果只想通知一个人,在「指定成员」一栏填写员工账号
* 点击【测试】按钮验证一下
* 【技巧】无需下载企业微信客户端,直接用微信扫码关注 [微信插件 ](https://work.weixin.qq.com/wework_admin/frame#profile/wxPlugin ),即可在微信中接收企业通知和使用企业应用
#### Server酱·Turbo版
* 微信扫码登录 [Server酱·Turbo版 ](https://sct.ftqq.com/login )
* 在 [消息通道 ](https://sct.ftqq.com/forward ) 配置消息通道设置
* 在 [SendKey ](https://sct.ftqq.com/sendkey ) 栏目复制SendKey, 粘贴到设置「设置Server酱·Turbo版的SendKey」一栏
* 点击【测试】按钮验证一下
#### Telegram机器人( 需自备梯子)
* 与 @BotFather 私聊,申请 Bot
* /newbot 后输入机器人昵称
* 然后输入机器人的用户名(建议:使用密码生成器生成随机字符串,避免一直重复尝试;用户名必须用 bot 作为结尾)
* /token 获取apiToken, 然后输入上面机器人的用户名
* 获得apiToken, 格式参考: 1234567890:ABCDEFGHIJKLMNOPQRSTUVWXYZ
* 复制 apiToken 到「设置Telegram机器人的ApiToken」一栏
* 获取自己( 或群组) 的ChatID, 粘贴到「设置被通知人的ChatId」一栏
* 跟自己的机器人聊天,随便说点什么;或者创建一个群组,把机器人拉入群组,在群组里随便说点什么。
* 然后打开这个链接 `https://api.telegram.org/bot<apiToken>/getUpdates` 获取( PS.注意< apiToken > 换成你自己的)
* ChatID 取值 result->message->chat->id (个人是纯数字; 群组是负数, type: group; )
* 点击【测试】按钮验证一下
#### 其他手机短信【注意:非免费!非免费!非免费!】
* 指定发送卡槽: 1、原进原出——哪个卡槽收到的短信就用哪张卡转发短信出去; 2、SIM1/SIM2——固定卡槽转发短信;
* 设置接收手机, 多个号码以半角分号分隔, 例如: 15888888888;19999999999
* 仅当无网络时启用: 建议开启, 毕竟发短信1毛/条还挺贵的(套餐有送的/土豪可以忽视它)
#### 飞书机器人
* 在飞书PC端, 创建一个群组
* 在群设置->群机器人->添加机器人,添加一个新的「自定义机器人」,名称与描述随意
* 复制自定义机器人的“webhook 地址”到「webhook 地址」一栏
* 【可选】安全设置->签名校验,复制到「加签 Secret」一栏
* 点击【测试】按钮验证一下
#### PushPlus
* 前往 [PushPlus 官网 ](http://www.pushplus.plus )
* 根据自身需求选择 [一对一推送 ](http://www.pushplus.plus/push1.html ) 或 [一对多推送 ](http://www.pushplus.plus/push2.html )
* 微信扫码登录, 获取token, 填写到「用户令牌」一栏
* 【可选】其他可选参数参见 [一对多推送 ](http://www.pushplus.plus/doc/guide/api.html#%E4%B8%80%E3%80%81%E5%8F%91%E9%80%81%E6%B6%88%E6%81%AF%E6%8E%A5%E5%8F%A3 )
* 点击【测试】按钮验证一下
### 应用截图:
### 应用截图:
@ -211,40 +99,6 @@
| 添加/编辑发送通道飞书机器人 | 增加配置导出导入功能(一键克隆) | 监听其他APP通知信息并转发 | 获取所有应用列表( 方便复制APP包名) |
| 添加/编辑发送通道飞书机器人 | 增加配置导出导入功能(一键克隆) | 监听其他APP通知信息并转发 | 获取所有应用列表( 方便复制APP包名) |
| ![添加/编辑发送通道飞书 ](pic/senderfeishu.png "添加/编辑发送通道飞书" ) | ![增加配置导出导入功能(一键克隆) ](pic/clone.png "增加配置导出导入功能(一键克隆)" ) | ![监听其他APP通知信息并转发 ](pic/app_notify.png "监听其他APP通知信息并转发" ) | ![获取所有应用列表( 方便复制APP包名) ](pic/app_list.png "获取所有应用列表( 方便复制APP包名) " ) |
| ![添加/编辑发送通道飞书 ](pic/senderfeishu.png "添加/编辑发送通道飞书" ) | ![增加配置导出导入功能(一键克隆) ](pic/clone.png "增加配置导出导入功能(一键克隆)" ) | ![监听其他APP通知信息并转发 ](pic/app_notify.png "监听其他APP通知信息并转发" ) | ![获取所有应用列表( 方便复制APP包名) ](pic/app_list.png "获取所有应用列表( 方便复制APP包名) " ) |
--------
## 更新记录:
+ [v1.0.0] 优化后第一版
+ [v1.1.0] 新增在线升级、缓存清理、加入QQ群功能
+ [v1.1.1] 更新应用/通知栏图标
+ [v1.1.2] 获取系统(ROM)类别及版本号, MIUI通知栏显示标题
+ [v1.1.3] AlertDialog增加滚动条, 避免参数过长时无法点击按钮
+ [v1.2.0] 重写SMTP邮件发送( 推荐升级)
+ [v1.2.1] 修复bark-server升级到2.0后的兼容性问题
+ [v1.2.2] 【预发布】短信模板增加卡槽标识( SIM1_中国联通_Unknown 或 SIM2_中国移动_+8615866666666)
+ [v1.2.3] 【预发布】转发日志列表/详情增加卡槽标识( SIM1 或 SIM2)
+ [v1.3.0] 支持双卡手机,增加卡槽标识/运营商/手机号(如果能获取的话)
+ [v1.4.0] 支持多重匹配规则
+ [v1.4.1] 设置中允许关闭页面帮助/表单填写提示
+ [v1.5.0] 新增转发到企业微信应用消息
+ [v1.5.1] 解决Android 9.xx、10.xx收不到广播问题
+ [v1.5.2] 支持标注卡槽号码(优先使用)、设备信息;自定义转发信息模版
+ [v1.6.0] 优化获取SIM信息( 兼容高版本Android) & 自动填写设备备注 & 自动填充卡槽信息到SIM1备注/SIM2备注 & 支持卡槽匹配规则 & 支持正则匹配规则
+ [v1.6.1] 新增转发到Server酱·Turbo版
+ [v1.6.2] 新增转发到Telegram机器人
+ [v1.6.3] 转发到webhook支持GET方式( 节点改变, 原配置要重新编辑) ; 兼容Android5.0( 待验证, 仅minSdkVersion改为21) ; 修复钉钉机器人没启用加签时url拼接错误问题
+ [v1.6.4] Android8.1以下手机重启后尝试启动主界面,以便动态获取权限(修复开机自启后无法转发短信,要打开软件后才会转发短信的问题)
+ [v1.7.0] 新增转发到其他手机短信 & 避免热插卡时FC & 规则展示优化 & 获取多卡信息& 获取卡槽备注优化 & 新增恢复初始化配置
+ [v1.7.1] 新增转发记录的转发状态(成功/失败& 应答信息)
+ [v1.7.2] 新增V1版证书签名, 避免部分低版本系统(Android 6.x)无证书错误 & 发送通道邮箱允许自定义发件人昵称
+ [v1.7.3] 修复“设置匹配模式”默认选择BUG & 转发到webhook时返回http状态200即为成功 & 转发到其他手机短信支持长短信合并
+ [v1.7.4] 修复转发企业微信群机器人碰到"被截断问题 & 转发到webhook时忽略ssl证书校验( 提高自建服务端兼容性) & 转发telegram时将 # 替换为 井,避免被当作标签 & 隐私保护,发送通道设置中敏感信息(密码/token/secret等)用星号显示 & 更新友盟基础组件库 & 解决“设置页面关闭卡槽信息,同时使用默认模板时,发送消息卡槽信息仍显示”
+ [v2.0.0] 来电提醒转发 & 接口请求失败后延时重试5次( 可配置间隔时间) & 转发到飞书机器人 & 自定义 Scheme( forwarder://main) 用于唤起App & 低电量预警 & 重新梳理代码( 消灭waring) & Bark增加支持分组 & 引入Lombok & 升级gradle版本 & 增加电池优化白名单设置和权限 & 转发到webhook增加支持自定义post数据, 并支持Json数据提交
+ [v2.0.1] 改进低电量预警方式, 按需设置一下转发规则( 不再遍历所有发送通道) 【号码: 88888888、内容: 当前剩余电量: xx%, 已经到达低电量预警阈值, 请及时充电! 、卡槽: sim1】
+ [v2.1.0] 增加配置导出导入功能(一键克隆) & bark新增指定推送消息图标 & 简化设置,取消“转发时附加卡槽信息”和“转发时附加设备名称”开关,若需要直接修改“转发信息模板” & 修复转发未接来电开关失效问题
+ [v2.1.1] fix: 自定义模板& 匹配的值输入框支持多行文本 & fix: 取消“转发时附加卡槽信息”和“转发时附加设备名称”开关
+ [v2.2.0] 新增: 监听其他APP通知信息并根据规则转发 & 修复Telegram手机号丢失问题 & 优化:来电转发增加获取卡槽信息 & 优化: Telegram转发支持自定义bot地址(复用ApiToken字段, http开头) & 新增:添加转发规则时允许自定义模板(留空则取全局设置) & 修复: bark指定推送消息图标空指针判断bug & 新增:转发短信总开关 & 优化: ActionBar弹出菜单的位置 & 新增: 获取所有应用列表( 方便复制APP包名) & 新增: 转发到PushPlus & 新增: 帮助文档( 跳转Gitee的wiki) & 优化:不在最近任务列表中显示(利于措施)
--------
--------
@ -259,18 +113,23 @@
## 感谢
## 感谢
> 本项目使用(或借鉴)了以下项目(或部分代码) ,在此表示衷心的感谢!
> 本项目得到以下项目的支持与帮助 ,在此表示衷心的感谢!
+ https://github.com/xiaoyuanhost/TranspondSms (基于此项目优化改造)
+ https://github.com/xiaoyuanhost/TranspondSms (基于此项目优化改造)
+ https://github.com/square/okhttp (网络请求)
+ https://github.com/square/okhttp (网络请求)
+ https://github.com/xuexiangjys/XUpdateAPI (在线升级)
+ https://github.com/xuexiangjys/XUpdateAPI (在线升级)
+ https://github.com/mailhu/emailkit (邮件发送)
+ https://github.com/mailhu/emailkit (邮件发送)
+ https://github.com/alibaba/fastjson (Json解析)
+ https://github.com/alibaba/fastjson (Json解析)
+ [![GitHub license ](https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg?_ga=2.126618957.1361252949.1638261367-1417196221.1635638144&_gl=1*1pfl3dq*_ga*MTQxNzE5NjIyMS4xNjM1NjM4MTQ0*_ga_V0XZL7QHEB*MTYzODMzMjA4OC43LjAuMTYzODMzMjA5Ny4w )](https://jb.gg/OpenSourceSupport) (License Certificate for JetBrains All Products Pack)
## LICENSE
--------
BSD
## 如果觉得本工具对您有所帮助,给个小星星鼓励一下!
## 如果觉得本工具对您有所帮助,给个小星星鼓励一下!
[![starcharts stargazers over time ](https://starchart.cc/pppscn/SmsForwarder.svg )](https://github.com/pppscn/SmsForwarder)
[![starcharts stargazers over time ](https://starchart.cc/pppscn/SmsForwarder.svg )](https://github.com/pppscn/SmsForwarder)
--------
## LICENSE
BSD