我想收集设备属性并使用推送通知将它们发送到 mdm 服务器。
涉及的步骤是:
- 使用 mdm 有效负载创建配置文件
- 获取设备令牌
- 使用苹果推送通知服务向设备发送通知。
- 取回设备属性
- 对公司管理的多个设备执行相同操作
问题:
- 用户是否总是需要对消息进行操作,或者我可以在无需用户操作的情况下将消息发送到设备并完成工作?
- 我需要设备上的应用程序来发回令牌吗?
我想收集设备属性并使用推送通知将它们发送到 mdm 服务器。
涉及的步骤是:
问题:
听起来您正在尝试使用推送通知来轮询 iOS 设备并返回信息。
推送通知不提供无需用户交互即可在设备上执行代码的机制。您必须在设备上加载一个应用程序,并且用户必须从通知中点击进入您的应用程序。
在 iOS 中,除非用户主动与应用程序交互,否则应用程序通常不会运行。有一些例外(例如背景音频。)
您确实需要运行应用程序才能获取设备令牌。你打电话registerForRemoteNotificationTypes
。有关更多信息,请参阅APNs 文档。
编辑以添加更多信息:
看起来 MDM 协议使用推送通知来执行您所描述的操作。但是,Apple 的“本地和推送通知编程指南”(上面链接)中没有任何内容。
显然,Apple 严格控制 MDM 文档(请参阅此处和此处)。
但是,我确实从 blackhat中找到了这篇描述系统工作原理的论文。
我之前关于不在没有用户交互的设备上执行任意代码的观点仍然适用。可以执行的命令是有限的(参见附录 A)。
我在搜索时遇到了这个问题iOS push notification access payload without user interaction
- 只是想补充一点,在 iOS 7 及更高版本中,可以向应用发送静默推送通知,应用无需用户交互即可处理它们。
但是,我还发现一些讨论说静默推送通知不能可靠地传递,在这个SO post中。这就是为什么我仍在寻找替代方法来检索正常远程推送通知的有效负载。好像没有办法。