2 votos

Obtener información de la celda con adb shell

Acabo de instalar adb y estoy tratando de obtener información sobre la torre celular a la que está conectado mi teléfono. Mi teléfono es un Samsung Galaxy Trend Lite con sistema operativo Jelly Bean (4.1.2). He rooteado el teléfono y estoy usando el adb shell como superusuario.

Intenté usar dumpsys telephony.registry desde la shell, lo cual me dio un parámetro cellInfo, pero es igual a null.

Me gustaría obtener una cadena con información como MCC, MNC, LAC y posiblemente CID. ¿Es esto factible? ¿Es esta la manera correcta o hay una mejor?

ACTUALIZACIÓN 1

Como sugirió @xavier_fakerat abrí una terminal en Ubuntu y escribí adb logcat | grep -E 'MCC|MNC'. Sin embargo, recibí el siguiente mensaje que no me parece útil (tal vez estoy equivocado...)

I/SA ( 2688): [OR] onReceive log=[SA = 1.6.0125 V = 16 HWD = 800X480 1.5 dpi = 240 SIZE = 2 LOCALE = it_IT CSC = ITV MCC = 0 MNC 0 T = user DEVICE = kylevess P = kylevessxx I = JZO54K M = GT-S7390 OKLEFT false DIS JZO54K.S7390XXUAOI1 PSS = 3.979127307850313 ]

ACTUALIZACIÓN 2

También probé la sugerencia de @Ali Said y logré obtener el cid, aunque la salida a veces es igual a 0, a veces es 68. Hice la segunda opción que propuso

adb logcat -b radio | grep "cid"

y recibí muchas filas como

D/RIL     ( 1391): RIL:[AP][RPC EN] msgid=0x413a str=MSG_MS_GET_ELEMENT_REQ tid 472 cid 68

o

D/RIL     ( 1391): RIL:[AP][RPC DE] msgid=0x204 str=MSG_RSSI_IND tid 0 cid 0

Así que ahora creo que solo me falta encontrar el código LAC. Sin embargo, ninguna de las soluciones hasta ahora me permitió obtener toda la información que estaba buscando al mismo tiempo. Además, la opción 1 de @Ali Said (adb logcat -b radio | grep ": +CREG:") parece ser lo que REALMENTE necesito, pero no muestra nada. Tal vez sea un tema del comando +CREG (si es un comando AT según puedo entender), que no es compatible con mi teléfono. Solo una suposición, fui muy lejos en mis posibilidades, pero estoy bastante seguro de que estoy acercándome a la solución...

Finalmente, la salida de adb logcat -b radio | grep "MCC" es

D/RIL ( 1391): GetSamsungPLMNname:: GetSamsungPLMNname :: deci MCC=222, MNC=88

mientras que aquí hay un enlace al logcat desde la información del cid. Espero que esto pueda ser de interés si alguien desea ayudarme.

3voto

Ali Said Puntos 11

Los dos funcionaron para mí:

Opción 1: grep AT command for cell info

$> adb logcat -b radio | grep ": +CREG:" 
D/AT      (  873): +CREG: 2,1,"2444","0FA2A694",6
D/AT      (  873): +CREG: 2,1,"2444","0FA2A694",6
D/AT      (  873): +CREG: 2,1,"2444","0FA2A694",6

[1] el teléfono está registrado en la red [2444] hex : Código de Área de Ubicación (LAC) [0FA2A694] hex : Id de Celda (cid).

Opción 2 : puedes hacer grep "cid" de logact -b radio y deberías obtener esto. nota que esta vez es en decimal.

$> adb logcat -b radio | grep "cid"
D/use-Rlog/RLOG-RIL( 9193): cid: 262317716
D/use-Rlog/RLOG-RIL( 9193): cid: 262317716
D/use-Rlog/RLOG-RIL( 9193): cid: 262317716

La opción 1 es mi preferencia personal. Espero que eso ayude.

0 votos

Entonces, probé ambas opciones. La Opción 1 no imprimió nada. La Opción 2 en cambio es un poco diferente que tu resultado. Muestra muchas líneas diferentes y a veces el cellid es 0, otras veces es 68. Así que supongo que ahora puedo obtener tanto el MNN, MNC y CELLID pero aún necesitaría el LAC para obtener la ubicación de mi teléfono con (por ejemplo) la API de geolocalización de Google. Actualizaré mi pregunta con esta última actualización y posiblemente incluya una parte del resultado que estoy recibiendo de logcat.

1 votos

Olvidé mencionar que esos registros son para KitKat ... si estás buscando una versión más nueva, usa esto adb logcat -b radio | grep -e "< VOICE_REGISTRATION_STATE" -e "< DATA_REGISTRATION_STATE" 03-31 16:25:06.619 2727 2966 D RILJ : [2823]< DATA_REGISTRATION_STATE {1, fffe, 0032d102, 14, null, 4, 0x29e1, null, 0x0032d102, null, null, 0} [SUB0] fffe : es LAC en hexadecimal 0032d102 : cell Id en hexadecimal

0 votos

Hola, perdón por la respuesta tardía. Intenté eso y funcionó (aunque estoy usando una VERSIÓN ANTIGUA que es jelly bean). Entonces, si quieres actualizar tu respuesta con tu último comentario, ¡estaré feliz de aceptarla! ¡Gracias de nuevo!

1voto

xavier_fakerat Puntos 1

Puede que necesites usar adb logcat y filtrar usando grep. Intenta esto:

adb logcat | grep -E 'MCC|MNC'

Créditos

  1. Obteniendo el ID de celda a través de adb

0 votos

Gracias. Lo intenté. Abriendo una terminal en Ubuntu escribí adb logcat | grep -E 'MCC|MNC' pero recibí I/SA ( 2688): [OR] onReceive log=[SA = 1.6.0125 V = 16 HWD = 800X480 1.5 dpi = 240 SIZE = 2 LOCALE = it_IT CSC = ITV MCC = 0 MNC 0 T = user DEVICE = kylevess P = kylevessxx I = JZO54K M = GT-S7390 OKLEFT false DIS JZO54K.S7390XXUAOI1 PSS = 3.979127307850313 ]. Actualicé mi pregunta para incluir esto.

0 votos

Algo está mal con la tarjeta SIM, no devuelve ningún valor MNC y MCC, los otros valores se extraen de la información de logcat, y podrían no parecer útiles, pero si buscas información de celdas, entonces MCC y MNC deberían ser el enfoque, sin embargo para mi sorpresa aún devuelve valores nulos. ¿Está la red bloqueada?

0 votos

Gracias de nuevo. ¿Qué quieres decir con "¿La red está bloqueada"? Mi tarjeta SIM es de Wind, soy de Italia. Si puedes sugerirme cómo puedo verificar si la red está realmente bloqueada y posiblemente si hay una forma de desbloquearla (si esto probablemente solucionaría el problema), te lo agradeceré mucho. De todos modos, ¡aprecio mucho tu ayuda!

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X