получить информацию о ячейке с помощью оболочки adb

Я только что установил adbи пытаюсь получить информацию о сотовой вышке, к которой подключен мой телефон. Мой телефон — Samsung Galaxy Trend Lite под управлением ОС Jelly Bean (4.1.2). Я рутировал телефон и использую его adb shellкак суперпользователя.

Я пытался использовать dumpsys telephony.registryиз оболочки, которая дала мне cellInfoпараметр, но он равен null.

Я хотел бы получить строку с такой информацией, как MCC, MNC, LACи, CIDвозможно,. Возможно ли это? Это правильный путь или есть лучший?

ОБНОВЛЕНИЕ 1

По предложению @xavier_fakerat я открыл терминал в Ubuntu и набрал adb logcat | grep -E 'MCC|MNC'. Однако я получил следующее сообщение, которое мне не кажется полезным (может быть, я ошибаюсь...)

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 ]

ОБНОВЛЕНИЕ 2

Я также попробовал предложение @Ali Said, и мне удалось получить cid, хотя вывод иногда равен 0, иногда 68. Я сделал второй вариант, который он предложил.

adb logcat -b radio | grep "cid"

и получил много строк вроде

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

или

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

Так что теперь я думаю, что мне осталось найти LACтолько код. Тем не менее, ни одно из решений до сих пор не позволило мне получить всю информацию, которую я искал, в то же время. Кроме того, вариант 1 @Ali Said ( adb logcat -b radio | grep ": +CREG:") кажется мне ДЕЙСТВИТЕЛЬНО нужным, но он ничего не выводит. Возможно дело в +CREGкоманде (если это АТ-команда, насколько я понимаю), которая не поддерживается моим телефоном. Просто предположение, я зашел очень далеко в своих возможностях, но я почти уверен, что приближаюсь к решению...

Наконец, вывод adb logcat -b radio | grep "MCC"из

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

а вот ссылка на logcat из cid info. Надеюсь, это может быть интересно, если кто-то захочет мне помочь.

Ответы (2)

Оба они работали для меня:

Вариант 1: команда grep AT для информации о ячейке

$> 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] телефон зарегистрирован в сети [2444] шестнадцатеричный : код зоны местоположения (LAC) [0FA2A694] шестнадцатеричный : идентификатор соты (cid).

Вариант 2 : вы можете grep "cid" из logact -b radio, вы должны получить это. обратите внимание, что на этот раз это десятичное число.

$> 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

Вариант 1 - мое личное предпочтение. надеюсь, это поможет.

Итак, я попробовал оба варианта. Вариант 1 ничего не печатал. Вместо этого вариант 2 немного отличается от вашего вывода. Он показывает много разных строк, и иногда ячейка равна 0, некоторые другие равны 68. Итак, я полагаю, что теперь я могу получить как MNN, MNC, так и CELLID, но мне все равно понадобится LAC, чтобы получить местоположение моего телефона с помощью (например, API геолокации Google). Я обновлю свой вопрос до этого последнего обновления и, возможно, включу часть вывода, который я получаю от logcat.
Забудьте упомянуть, что эти logcat предназначены для KitKat ... если вы используете более новую версию, используйте это 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, 0x003 null, null, 0} [SUB0] fffe : LAC в шестнадцатеричном формате 0032d102 : идентификатор ячейки в шестнадцатеричном формате
Эй, извините за поздний ответ. Я попробовал это, и это сработало (хотя я использую СТАРУЮ версию, которая является желейными бобами). Итак, если вы хотите обновить свой ответ своим последним комментарием, я буду рад принять его! еще раз спасибо!

Возможно, вам придется использовать adb logcat и фильтровать с помощью grep. Попробуй это

adb logcat | grep -E 'MCC|MNC'

Кредиты

  1. Получение идентификатора ячейки через adb
Спасибо. Я пробовал это. открывая терминал в Ubuntu, я набрал, adb logcat | grep -E 'MCC|MNC'но получил 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 ]. Я обновил свой вопрос, чтобы включить это.
Что-то не так с SIM-картой, не возвращает никаких значений MNC и MCC, другие значения извлекаются из информации logcat и могут показаться бесполезными, но если они после информации о соте, то MCC и MNC должны быть в центре внимания, однако к моему удивлению, он все еще возвращает нулевые значения. Сеть заблокирована?
Еще раз спасибо. Что вы подразумеваете под "заблокирована ли сеть"? Моя SIM-карта от Wind, я из Италии. Если вы можете предложить, как я могу проверить, действительно ли сеть заблокирована и, возможно, есть ли способ ее разблокировать (если это, вероятно, решит проблему), я буду очень благодарен. В любом случае, очень ценю вашу помощь!
@ umbe1987 Теперь я подозреваю кое-что еще. Пожалуйста, проверьте /data/data/com.android.providers.telephony/databases/telephony.db. Видите ли вы какую-либо информацию о мобильных кодах стран или сетях? Я подозреваю, что в этом файле может отсутствовать информация о телефонии, из-за чего MCC и MNC возвращают нулевые значения. Однако я не совсем уверен, поэтому обсуждение приветствуется.
Итак, я сделал adb shell logcat /data/data/com.android.providers.telephony/databases/telephony.db >> /home/umberto/Desktop/out.txt. Затем я заглянул в «out.txt» и искал термин «mcc», и на самом деле нашел интересную вещь: я вижу ту же строку, которую я разместил в своем ответе, с MCC и MNC = 0, а также две другие, где я читать D/MccTable( 1910): updateMccMncConfiguration: mcc=222, mnc=88, и D/MccTable( 1910): locale set to it_it. На сайте cellidfinder.com/mcc-mnc я прочитал, что это относится к «Wind Telecomunicazioni SpA», моей компании в Италии.
Довольно много. Я считаю, что реестр телефонии обновлен. Теперь попробуйте еще раз, используя код dumpsys telephony.registryв вашем устройстве или adb shell dumpsys telephony.registryв ADB. Вы должны получить аналогичные коды данных MNC/MCC и Wi-Fi.