Get CellID, LAC, … on iOS 8.3

淺唱寂寞╮ 提交于 2019-11-30 00:37:53
Hlavne Krokozvidze

Apple was informed about weakness in their CoreTelephony, so now calls to CoreTelephony fail. They are checking if the caller is sandboxed, so after debug you can see:

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

However, there are still few calls which works, for example:

_CTServerConnectionCopyWakeReason
_CTServerConnectionCopyVoiceMailInfo

etc ... I haven't tried all.

The big problem now is you cannot even get a signal strength as CTGetSignalStrength always returns 0.

And when you tried some resticted call like in your case _CTServerConnectionCellMonitorCopyCellInfo then you can see error code in CTError is 13 (Permission denied)

As of iOS 8.3 all of the above solutions require entitlement to work

    <key>com.apple.CommCenter.fine-grained</key>
<array>
    <string>spi</string>
</array>

Not only cell monitor is protected but it seems like all of the CoreTelephony notifications now require that entitlement to work. For example, kCTMessageReceivedNotification also affected.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!