跳到主要内容
版本:0.17.0+

ios

  1. 短信拦截
    1. 方法 1:回 0000 或者 00000 退订
    2. 方法 2:启用 sms 过滤中介
      1. app:VeroSMS(可能不支持中文关键词)
      2. app:短信别烦我(免费)
      3. sms 过滤中介原理
    3. 自己开发 sms app 的可行性
  2. 一键换装方法汇总
    1. 辅助触控,不可行
    2. Frida 方案,不确定
  3. Appium + WebDriverAgent
    1. TODO: session id null
    2. FIXED: 解决 13.3 高版本 xcode 提示 Could not build module 'RoutingHTTPServer' 导致不能编译
    3. FIXED: 返回的 json 串 sessionId 为什么是 null

短信拦截

方法 1:回 0000 或者 00000 退订

picture 1

实测好像没反应,看 B 站的某些视频用的是移动的号码,我是电信的,不知道是否是因为电信没有此类服务。

picture 2

我们不知道到底有没有起作用,也无法验证,不能坐以待毙,继续寻求新的方法。

方法 2:启用 sms 过滤中介

app:VeroSMS(可能不支持中文关键词)

Can I block all messages with a specific word in them? : iosBlocking words in iMessage - Apple Community 中给出了使用“VeroSMS”这款 app 的方案。

它的使用方法如下:- How To Automatically Block Spam SMS By Keyword on iPhone (No Jailbreak),但我实测下来可能有不支持中文关键词的问题。

app:短信别烦我(免费)

于是寻求中文解决方案,在 搞定 iOS 骚扰短信,用这几款 App-什么值得买 中介绍了三款 app:“黑白短信”、“熊猫吃短信”、“短信过滤+”。

前面两款都是收费的(不过很便宜),第三款软件说是免费的(但点了一下其实还是要收费,6 元)。于是我在 app store 里搜了一下,确实搜到了熊猫吃短信,接着找到了一款免费的“短信别烦我”,设置了一下,感觉还行:

picture 3

picture 4

picture 5

sms 过滤中介原理

ios 的系统限制,必须设置一个 app 作为 sms 消息过滤中介,也就是说,不下载(或自己开发)app,无法启用 sms 过滤功能,只能将不在收件人列表中的短信统一归类(还只是 filter 不算 block)。

因此下载 app 是必须的,我试了两款,一款是 verosms,好像是 apple 论坛回复的,但目测对中文支持不行,测试貌似没反应;一款就是这个免费的”短信别烦我”了。

但是由于 ios 的沙盒限制(见:- iOS Messages reading using swift | Apple Developer Forums),任何一款 app 都无法获取其他 app 的具体信息,也就是我们无法开发一个 app 去获取所有已经受到的短信,然后对他们进行分类、拦截,所以 sms app 早用早受益,因为它只可以拦截新收到的消息。

其具体原理,在你设置拦截规则后,sms 中介会将目标号码加入系统拦截列表,后续目标号码的短信就会首先被系统拦截,而无需再经过 sms app;只有当你向该目标号码发送三次短信或者加入联系人方可解除拦截。也就是触发的时候是从 app 向下报给系统,响应的时候是从系统往上再到 app。

自己开发 sms app 的可行性

感觉没有必要,但可以参考下面的一些文章,它们用了CallKit,不清楚对 Message 是否有用。

一键换装方法汇总

辅助触控,不可行

按道理,辅助触控理论上是可行的方案,但很遗憾的是,ios 的辅助触控在依次录制多个手指后,会统一起来同时运行,这与我们一步步操作的目标是不一样的。因此不可行。

ref:

Frida 方案,不确定

如果我们直接将手机越狱,然后再使用类似按键精灵的脚本,完全是可行的,但是成本太高了。

如果不越狱,是否也可以基于 frida 实现呢?也许可以,在 iOS | Frida • A world-class dynamic instrumentation framework 里描述了越狱和非越狱两种情况下分别使用 frida 的办法,但是很复杂,我没怎么明白,留待以后研究吧。

Appium + WebDriverAgent

主要参考:

TODO: session id null

FIXED: 解决 13.3 高版本 xcode 提示 Could not build module 'RoutingHTTPServer' 导致不能编译

resolution: 将 assign 改成 unsafe_unretained 重新编译 成功

ref:

FIXED: 返回的 json 串 sessionId 为什么是 null

ans:

新版的 WDA 就这个样子

ref: