Since iOS 5.X, I used to get radio information with these methods : Get CellID, MCC, MNC, LAC, and Network in iOS 5.1
But with the iOS 8.3 beta (and 8.3 GM), this private API
_CTServerConnectionCellMonitorCopyCellInfo
doesn't work anymore.
*3001#12345#* and tap Call. Enter Field Mode. Field mode reveals many of the inner settings of your iPhone, specifically up-to-date network and cell information.
The LAC is used as a unique reference for the location of a mobile subscriber. This code is necessary to address the subscriber in the case of an incoming call. The LAC forms part of the Location Area Identity (LAI) and is broadcast on the Broadcast Control Channel (BCCH).
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.
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With