【问题标题】:Get CellID, LAC, ... on iOS 8.3在 iOS 8.3 上获取 CellID、LAC、...
【发布时间】:2015-06-14 11:56:49
【问题描述】:
【问题讨论】:
标签:
ios
radio
iphone-privateapi
core-telephony
cellid
【解决方案1】:
Apple 被告知其 CoreTelephony 存在弱点,因此现在调用 CoreTelephony 失败。他们正在检查调用者是否被沙盒,所以调试后你可以看到:
Caller not allowed to perform action: TelephonyApiTest.240, action = sandboxed lookup, code = 1: Operation not permitted, uid = 501, euid = 501, gid = 501, egid = 501, asid = 0
但是,仍然有少数调用有效,例如:
_CTServerConnectionCopyWakeReason
_CTServerConnectionCopyVoiceMailInfo
等等……我都没有试过。
现在最大的问题是你甚至无法获得信号强度,因为CTGetSignalStrength 总是返回 0。
当您尝试像您的案例 _CTServerConnectionCellMonitorCopyCellInfo 那样进行一些限制调用时,您会看到 CTError 中的错误代码为 13(权限被拒绝)
【解决方案2】:
从 iOS 8.3 开始,上述所有解决方案都需要授权才能工作
<key>com.apple.CommCenter.fine-grained</key>
<array>
<string>spi</string>
</array>
不仅手机监视器受到保护,而且似乎所有 CoreTelephony 通知现在都需要该权利才能工作。例如,kCTMessageReceivedNotification 也会受到影响。