V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
varint
V2EX  ›  问与答

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

  •  
  •   varint · 2020-05-30 16:24:36 +08:00 via iPhone · 2473 次点击
    这是一个创建于 1398 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 这个推送通知的开关只是收到消息之后做拦截处理,然后刚刚拦截失败了,把钉钉拉起来了?
    12 条回复    2020-05-30 22:50:52 +08:00
    benjix
        1
    benjix  
       2020-05-30 17:07:06 +08:00 via Android
    callkit
    dayFvckingByte
        2
    dayFvckingByte  
       2020-05-30 17:15:01 +08:00
    pushkit 静默推送可以在后台拉起应用,没有任何界面而且不受任何权限影响
    varint
        3
    varint  
    OP
       2020-05-30 17:21:03 +08:00 via iPhone
    @benjix
    @dayFvckingByte 通知关了的也能推?
    varint
        4
    varint  
    OP
       2020-05-30 17:22:21 +08:00 via iPhone
    @benjix 带 callkit 的 APP 不是被工信部禁止了么?钉钉还可以不守规矩?
    kera0a
        5
    kera0a  
       2020-05-30 17:51:07 +08:00 via iPhone
    关了推送就肯定不是推送相关的 api,没有 deviceToken 服务器想推也不知道往哪推。

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

    我猜测就是 VoIP 了,但这个我不太熟悉,没咋用过。
    iOS 能后台运行的就那么几种,其他的都排除了,估计就这个了
    Tink
        8
    Tink  
       2020-05-30 18:09:14 +08:00 via iPhone
    是 callkit,钉钉没有被禁
    varint
        9
    varint  
    OP
       2020-05-30 21:19:29 +08:00 via iPhone
    @kera0a
    @Tink 原来 callkit 可以在关闭推送的情况下起作用啊,又涨姿势了
    varint
        10
    varint  
    OP
       2020-05-30 21:20:53 +08:00 via iPhone
    @varint 岂不是流氓们可以在某种程度上突破 iOS 的限制了!
    jackchao7432
        11
    jackchao7432  
       2020-05-30 21:28:26 +08:00
    iOS 的 bug~
    dayFvckingByte
        12
    dayFvckingByte  
       2020-05-30 22:50:52 +08:00
    @varint 可以推,最新的限制是每次推送你必须调用 callkit
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4510 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:05 · PVG 09:05 · LAX 18:05 · JFK 21:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.