APP 是如何突破 iOS 限制后台运行的?

2020-05-30 16:24:36 +08:00
 varint
iOS 12.0.1
钉钉 4.7.8

刚刚正在划水的时候突然弹了个对话框,说钉钉要麦克风权限,吓死我了,我当时真的就只开了一个逼乎客户端啊!
i.loli.net/2020/05/30/uv4fsitRy53ePFc.jpg

打开钉钉才发现有人发了个语音过来。
i.loli.net/2020/05/30/QrTgVlfsHYZNjMJ.jpg

可能的原因:有人发了个语音,然后推送拉起了钉钉,钉钉 APP 发现是通话请求,于是请求麦克风权限。
可问题是钉钉的通知权限和后台刷新从一开始是关闭的,这是怎么做到的呢?
难道是利用已知的越狱漏洞偷偷在系统里塞了不干净的东西??
还是说 iOS 这个推送通知的开关只是收到消息之后做拦截处理,然后刚刚拦截失败了,把钉钉拉起来了?
2501 次点击
所在节点    问与答
12 条回复
benjix
2020-05-30 17:07:06 +08:00
callkit
dayFvckingByte
2020-05-30 17:15:01 +08:00
pushkit 静默推送可以在后台拉起应用,没有任何界面而且不受任何权限影响
varint
2020-05-30 17:21:03 +08:00
@benjix
@dayFvckingByte 通知关了的也能推?
varint
2020-05-30 17:22:21 +08:00
@benjix 带 callkit 的 APP 不是被工信部禁止了么?钉钉还可以不守规矩?
kera0a
2020-05-30 17:51:07 +08:00
关了推送就肯定不是推送相关的 api,没有 deviceToken 服务器想推也不知道往哪推。

是否最近打开过钉钉?从前台退回到后台时,系统会动态的给几分钟的后台运行时间
varint
2020-05-30 17:53:37 +08:00
@kera0a 在那至少 20 分钟之前确实打开过钉钉,但是我习惯手动划掉,如文中图 1 。应该不会是这个原因吧?
kera0a
2020-05-30 18:05:54 +08:00
@varint 嗯,那就可以排除这个原因。

我猜测就是 VoIP 了,但这个我不太熟悉,没咋用过。
iOS 能后台运行的就那么几种,其他的都排除了,估计就这个了
Tink
2020-05-30 18:09:14 +08:00
是 callkit,钉钉没有被禁
varint
2020-05-30 21:19:29 +08:00
@kera0a
@Tink 原来 callkit 可以在关闭推送的情况下起作用啊,又涨姿势了
varint
2020-05-30 21:20:53 +08:00
@varint 岂不是流氓们可以在某种程度上突破 iOS 的限制了!
jackchao7432
2020-05-30 21:28:26 +08:00
iOS 的 bug~
dayFvckingByte
2020-05-30 22:50:52 +08:00
@varint 可以推,最新的限制是每次推送你必须调用 callkit

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/676978

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX