自从iOS 5.X以来,我习惯使用以下方法获取无线电信息:在iOS 5.1中获取CellID、MCC、MNC、LAC和网络信息。
但是在iOS 8.3 beta(和8.3 GM)中,这个私有API
_CTServerConnectionCellMonitorCopyCellInfo
不再起作用了。
但是在iOS 8.3 beta(和8.3 GM)中,这个私有API
_CTServerConnectionCellMonitorCopyCellInfo
不再起作用了。
苹果公司被告知其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(权限被拒绝)。
从iOS 8.3开始,所有上述解决方案都需要授权才能正常工作。
<key>com.apple.CommCenter.fine-grained</key>
<array>
<string>spi</string>
</array>
不仅手机监视器受到保护,似乎所有的CoreTelephony通知现在都需要该权限才能工作。例如,kCTMessageReceivedNotification也受到影响。