Obtenga CellID, LAC, … en iOS 8.3

Desde iOS 5.X, solía get información de radio con estos methods: Obtenga CellID, MCC, MNC, LAC y Network en iOS 5.1

Pero con el iOS 8.3 beta (y 8.3 GM), esta API privada

_CTServerConnectionCellMonitorCopyCellInfo

ya no funciona

Apple fue informado sobre la debilidad de su CoreTelephony, por lo que ahora fallan las llamadas a CoreTelephony. Están comprobando si la persona que llama está aislada, por lo que después de la debugging, puede ver:

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 

Sin embargo, todavía hay pocas llamadas que funcionan, por ejemplo:

 _CTServerConnectionCopyWakeReason _CTServerConnectionCopyVoiceMailInfo 

etc … no lo he probado todo.

El gran problema ahora es que ni siquiera puedes get una fuerza de señal ya que CTGetSignalStrength siempre devuelve 0.

Y cuando intentó alguna llamada _CTServerConnectionCellMonitorCopyCellInfo como en su caso _CTServerConnectionCellMonitorCopyCellInfo entonces puede ver el código de error en CTError es 13 (se denegó el permiso)

A partir del iOS 8.3, todas las soluciones anteriores requieren autorización para trabajar

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

No solo está protegido el monitor de celda, sino que parece que todas las notifications de CoreTelephony ahora requieren el derecho a trabajar. Por ejemplo, kCTMessageReceivedNotification también se vio afectada.