Работа с модемом командами AT на Android устройствах

В данном форуме можно обсудить и найти информацию о SDR, в том числе о HackRF One, RTL-SDR и подобных устройствах, а также о программах SDRSharp, SDR Console и других
Ответить
Аватара пользователя
alex martin
Новичок
Сообщения: 13
Зарегистрирован: 30 апр 2017, 09:26
Контактная информация:

Работа с модемом командами AT на Android устройствах

Сообщение alex martin »

Здравствуйте. Кто-нибудь имел опыт в управлении модемом телефона посредством AT-команд? Читал эту статью https://habrahabr.ru/post/185012/ и не нашёл у себя в устройстве /dev/ttyACM0 или /dev/smd0 или /dev/ttyUSB0.

Вот список устройств моего телефона https://pastebin.com/HCbGdwTu
Я пробовал работать с этими устройствами ч-з интерфейс ADB:

Список из директории /dev/
crw-rw---- system system 250, 0 2017-05-02 20:39 ttyGS0
crw------- root root 250, 1 2017-05-02 20:39 ttyGS1
crw------- root root 250, 2 2017-05-02 20:39 ttyGS2
crw------- root root 250, 3 2017-05-02 20:39 ttyGS3
crw------- root root 4, 64 2017-05-02 20:39 ttyS0
crw------- root root 4, 65 2017-05-02 20:39 ttyS1
crw------- root root 4, 66 2017-05-02 20:39 ttyS2
crw------- root root 4, 67 2017-05-02 20:39 ttyS3
crw-rw---- bluetooth net_bt_stack 204, 64 2017-05-02 20:40 tt
crw-rw---- root system 204, 65 2017-05-02 20:39 ttySAC1
crw------- root root 204, 66 2017-05-02 20:39 ttySAC2
crw------- root root 204, 67 2017-05-02 20:39 ttySAC3

но не одно из них не ответило на команду "AT".
Последний раз редактировалось DesignerMix 07 май 2017, 15:04, всего редактировалось 1 раз.
Причина: Изменено название темы

Аватара пользователя
DesignerMix
Администратор
Администратор
Сообщения: 7035
Зарегистрирован: 25 апр 2014, 10:51
Откуда: Белгород
Контактная информация:

AT-command

Сообщение DesignerMix »

Может будет полезно - вот сообщение где я работал с модемом iPhone 4 командами AT - viewtopic.php?p=11640#p11640

Аватара пользователя
alex martin
Новичок
Сообщения: 13
Зарегистрирован: 30 апр 2017, 09:26
Контактная информация:

AT-command

Сообщение alex martin »

DesignerMix, спасибо за ответ, но я не нашёл там полезной информации по моей проблеме.
Нашёл устройства с которыми взаимодействует rild-демон:

Код: Выделить всё

root@t03g:/dev # busybox lsof | grep /dev/umts
11285   /sbin/cbd       /dev/umts_boot0
11286   /system/bin/rild        /dev/umts_ipc0
11286   /system/bin/rild        /dev/umts_rfs0
При попытке переименовать любое из них и последующем перезапуске rild у меня пропадает сеть. Возможно я ошибаюсь, но вероятно одно из этих устройств является интерфейсом для работы с AT-командами.
Далее я попробовал приконнектиться к каждому из устройств с попытками отправки тестовой "АТ" команды:

1|root@t03g:/dev # busybox microcom -t 500 /dev/umts_boot0
microcom: can't tcsetattr for /dev/umts_boot0: Invalid argument

1|root@t03g:/dev # busybox microcom -t 500 /dev/umts_ipc0
microcom: can't tcsetattr for /dev/umts_ipc0: Invalid argument

1|root@t03g:/dev # busybox microcom -t 500 /dev/umts_rfs0
microcom: can't tcsetattr for /dev/umts_rfs0: Invalid argument


Но как видно безуспешно.

Далее я решил посмотреть, с какими ресурсами вообще работает rild

130|root@t03g:/dev # busybox lsof | grep /rild
12853 /system/bin/rild /dev/null
12853 /system/bin/rild /dev/null
12853 /system/bin/rild /dev/null
12853 /system/bin/rild pipe:[57388]
12853 /system/bin/rild pipe:[57388]
12853 /system/bin/rild /dev/log/main
12853 /system/bin/rild /dev/log/radio
12853 /system/bin/rild /dev/log/events
12853 /system/bin/rild /dev/log/system
12853 /system/bin/rild /dev/__properties__
12853 /system/bin/rild /dev/log/main
12853 /system/bin/rild socket:[57061]
12853 /system/bin/rild socket:[57064]
12853 /system/bin/rild /dev/log/radio
12853 /system/bin/rild /dev/log/events
12853 /system/bin/rild /dev/log/system
12853 /system/bin/rild pipe:[57067]
12853 /system/bin/rild pipe:[57067]
12853 /system/bin/rild pipe:[57068]
12853 /system/bin/rild pipe:[57068]
12853 /system/bin/rild pipe:[57073]
12853 /system/bin/rild pipe:[57073]
12853 /system/bin/rild pipe:[57074]
12853 /system/bin/rild pipe:[57074]
12853 /system/bin/rild /dev/alarm
12853 /system/bin/rild /dev/umts_ipc0
12853 /system/bin/rild socket:[57086]
12853 /system/bin/rild /dev/umts_rfs0
12853 /system/bin/rild pipe:[57455]
12853 /system/bin/rild pipe:[57455]
12853 /system/bin/rild socket:[57456]
12853 /system/bin/rild socket:[57459]
12853 /system/bin/rild /sys/power/wake_lock
12853 /system/bin/rild /sys/power/wake_unlock
12853 /system/bin/rild /dev/binder
12853 /system/bin/rild socket:[57468]
12853 /system/bin/rild socket:[57173]
12853 /system/bin/rild socket:[57560]


Я не силен в линуксе, но возможно ли что демон взаимодействует с модемом не с помощью устройства в /dev/ а посредством сокетов или пайпов? У кого-нибкдь есть идеи как это проверить?

Отправлено спустя 22 минуты 43 секунды:
DesignerMix, опишите пожалуйста чуть подробнее процесс поиска устройства модема на вашем телефоне

Аватара пользователя
DesignerMix
Администратор
Администратор
Сообщения: 7035
Зарегистрирован: 25 апр 2014, 10:51
Откуда: Белгород
Контактная информация:

AT-command

Сообщение DesignerMix »

alex martin писал(а): 05 май 2017, 14:31опишите пожалуйста чуть подробнее процесс поиска устройства модема на вашем телефоне
Как я работал - сделал jailbreak iPhone 4 и установил из сидии пакет (или программу) minicom на iPhone. Так как к джейлбрейкнутому iPhone'у можно подключиться по ssh то я из под винды запустил putty и подключился, после чего ввел minicom -s и выбрал Serial Port Setup и т.д. как описано здесь - https://www.theiphonewiki.com/wiki/Baseband_Commands

С андроидом дел не имел.

Я кстати не очень понимаю как вы вообще работаете с вашим телефоном? Подключаете его к ПК с Linux'ом или подключаетесь к нему и при этом на нем работаете с minicom, а может еще как... Также вы не указали модель телефона и версию андроида

Аватара пользователя
alex martin
Новичок
Сообщения: 13
Зарегистрирован: 30 апр 2017, 09:26
Контактная информация:

AT-command

Сообщение alex martin »

DesignerMix, Спасибо что детали. Не знаю что такое jailbreak, но я подключаюсь к терминалу телефона посредством использования ADB интерфейса из командной строки. Это в неком роде альтернатива SSH. Подключаюсь из под виндовс в командной строке пишу "ad.exe shell" (нужны соответствующие драйвера которые я брал отсюда https://4pda.ru/forum/index.php?showtopic=388047 SAMSUNG_USB_Driver_for_Mobile_Phones.exe ( 23,04 МБ )).
Далее делаю "su" (телефон рутован) что бы получить рутовые привилегии и работаю как с обычным SSH.
log
D:\Program Files\platform-tools>adb shell
root@t03g:/ # su
root@t03g:/ # id
uid=0(root) gid=0(root) context=u:r:init:s0
На своем телефоне не нашёл утилиты minicom, но использую альтеренативную microcom:
microcom log
1|root@t03g:/ # busybox microcom
BusyBox v1.22.1-Stericson (2014-01-25 17:27:18 CET) multi-call binary.

Usage: microcom [-d DELAY] [-t TIMEOUT] [-s SPEED] [-X] TTY

Copy bytes for stdin to TTY and from TTY to stdout

-d Wait up to DELAY ms for TTY output before sending every
next byte to it
-t Exit if both stdin and TTY are silent for TIMEOUT ms
-s Set serial line to SPEED
-X Disable special meaning of NUL and Ctrl-X from stdin
Телефон Samsung Galaxy Note 2 GT-N7100, Android 4.4.2

Аватара пользователя
DesignerMix
Администратор
Администратор
Сообщения: 7035
Зарегистрирован: 25 апр 2014, 10:51
Откуда: Белгород
Контактная информация:

AT-command

Сообщение DesignerMix »

alex martin писал(а): 05 май 2017, 18:31Не знаю что такое jailbreak
Apple запрещает ставить на iPhone ПО из неизвестных источников и чтобы это обойти люди взламывают телефоны разными способами, это и называется jailbreak. При джейлбрейке на iPhone ставится Cydia (аналог AppStore) и оттуда можно ставить стороннее ПО (в том числе и minicom).
alex martin писал(а): 05 май 2017, 18:31На своем телефоне не нашёл утилиты minicom, но использую альтернативную microcom:
А выполните cat /proc/tty/drivers и покажите листинг. Если там будет /dev/ttyGS то это DataRouter и вроде как это и есть модем и можно подключиться к нему выполнив microcom -t 5000 /dev/ttyGSX вместо X должна быть цифра.

Если не получится то попробуйте подключить как описано здесь (довольно практическая статья как раз про Samsung) - https://forum.xda-developers.com/galaxy ... s-t1471241

Аватара пользователя
alex martin
Новичок
Сообщения: 13
Зарегистрирован: 30 апр 2017, 09:26
Контактная информация:

AT-command

Сообщение alex martin »

root@t03g:/dev # cat /proc/tty/drivers
/dev/tty /dev/tty 5 0 system:/dev/tty
/dev/console /dev/console 5 1 system:console
/dev/ptmx /dev/ptmx 5 2 system
/dev/vc/0 /dev/vc/0 4 0 system:vtmaster
rfcomm /dev/rfcomm 216 0-255 serial
g_serial /dev/ttyGS 250 0-3 serial
usbserial /dev/ttyUSB 188 0-253 serial
s3c2410_serial /dev/ttySAC 204 64-67 serial
serial /dev/ttyS 4 64-67 serial
pty_slave /dev/pts 136 0-1048575 pty:slave
pty_master /dev/ptm 128 0-1048575 pty:master
unknown /dev/tty 4 1-63 console
root@t03g:/dev # ls -la ttyG*
crw-rw---- system system 250, 0 2017-05-05 21:54 ttyGS0
crw------- root root 250, 1 2017-05-05 21:54 ttyGS1
crw------- root root 250, 2 2017-05-05 21:54 ttyGS2
crw------- root root 250, 3 2017-05-05 21:54 ttyGS3


Попробовал соединиться с каждым из 4-ех устройств. Оно вроде соединяется, но не дает возможности печатать, только курсор моргает.

Так же пробовал:
root@t03g:/dev # cat ttyGS0&
[1] 13215
root@t03g:/dev # echo -e "AT\r" > ttyGS0
root@t03g:/dev # echo -e "AT\r" > ttyGS0
root@t03g:/dev # cat ttyGS1&
[2] 13221
root@t03g:/dev # echo -e "AT\r" > ttyGS1
root@t03g:/dev # echo -e "AT\r" > ttyGS0
root@t03g:/dev #


Отправлено спустя 24 минуты 51 секунду:
Прочитал рекомендованную вами статью, не понял почему из под microcom не удалось работать с портом, точнее почему нет никакой реакции на АТ-команды и почему реакция есть, если соединяться с портом из под windows? Но так или иначе даже команды совершения звонка не работают "ATD0500"
Пробовал эту утилиту http://m2msupport.net/m2msupport/voice- ... oice-call/ но почти ничего не работает.
logcat -b radio так же не светит никаких AT-команд в логах.

Отправлено спустя 7 минут 39 секунд:
Сейчас создал новое подключение и попробовал набрать номер, в итоге ошибка
error
Хотя в диспетчере устройств, в свойствах модема во вкладке диагностика модем успешно опрашивается.

Отправлено спустя 10 минут 58 секунд:
DesignerMix, вы не в курсе, есть ли смысл пробовать прошивать в телефон другие версии модемов, что бы все же иметь возможность подключиться к модему посредством microcom? Или тут имеют место аппаратные особенности работы с телефонным модемом вне зависимости от прошивок?

Отправлено спустя 9 минут 52 секунды:
Сейчас попробовал по этой инструкции включить usb-модем http://www.samsung.com/ru/support/skp/faq/444469
В результате этого в диспетчере устройств пропал телефонный модем но в сетевых адептерах добавилось устройство "SAMSUNG Mobile USB Remote NDIS Network Device" ч-з которое так же нельзя взаимодействовать на уровне serial-интерфейса для АТ-команд.

Отправлено спустя 7 минут 45 секунд:
Вообще странный этот модем ) ему любые AT-команды шлю а он на них отвечает "OK', причем даже на такие которых в принципе не существует в природе. Впечатление такое, что это не модем интерфейса а некое подобие эмулятора, т.е. фейк.

Аватара пользователя
DesignerMix
Администратор
Администратор
Сообщения: 7035
Зарегистрирован: 25 апр 2014, 10:51
Откуда: Белгород
Контактная информация:

AT-command

Сообщение DesignerMix »

alex martin писал(а): 05 май 2017, 21:11вы не в курсе, есть ли смысл пробовать прошивать в телефон другие версии модемов, что бы все же иметь возможность подключиться к модему посредством microcom?
Нет, не в курсе
alex martin писал(а): 05 май 2017, 21:11Или тут имеют место аппаратные особенности работы с телефонным модемом вне зависимости от прошивок?
Вообще похоже на то судя по той статье, хотя т.к. у меня опыта работы с аппаратом не было мне трудно что-либо утверждать.

Все что мог я сказал теперь дело только за вами, если решитесь шить то отпишитесь будет от этого толк или нет, мало-ли кому это пригодится. Просто мне без аппарата в руках рассуждать бессмысленно (тем более если учитывать то, что я довольно поверхностно понимаю эту тему).

Аватара пользователя
alex martin
Новичок
Сообщения: 13
Зарегистрирован: 30 апр 2017, 09:26
Контактная информация:

AT-command

Сообщение alex martin »

DesignerMix, сейчас буду пробовать шить телефон разными прошивками, ядрами, модемами. Я пока не особо осведомлен относительно ключей Кс TMSI. Если с моим телефоном не получится поработать с модемом я хочу вытянуть "Кс" с помощью самопального девайса по такой схеме http://mikrocxema.ru/telefoniya/sim-reader.html вопрос в следующем, если я получю "Кс" он будет статичным или рандомным для каждой новой сессии?

Аватара пользователя
DesignerMix
Администратор
Администратор
Сообщения: 7035
Зарегистрирован: 25 апр 2014, 10:51
Откуда: Белгород
Контактная информация:

AT-command

Сообщение DesignerMix »

alex martin, KC меняется (проверено на себе), так что снимать KC через устройство по считыванию SIM-карт нет смысла. Разве что только если на момент когда велась запись эфира у вас был KC такой, который последним сохранился на SIM и тогда да, это даст результат. А вот считывание KC с телефона который прямо сейчас работает с сетью куда эффективнее, поэтому я и пользовался minicom.

Отправлено спустя 6 минут 52 секунды:
Приведу цитату из своего сообщения:
Хотя TMSI и KC это временные значения но как минимум KC меняется не так часто, правда я не знаю доподлинно алгоритма его изменения наверное он меняется при перерегистрации телефона и еще при каких-то событиях, но я наблюдал что он оставался неизменным и в течении 10 минут... TMSI мне особо не нужен (только для уверенности что я слушаю нужную вышку) и да, он меняется почаще чем KC.

Аватара пользователя
alex martin
Новичок
Сообщения: 13
Зарегистрирован: 30 апр 2017, 09:26
Контактная информация:

AT-command

Сообщение alex martin »

Прошу админа вынести это сообщение в отдельную тему и (или) закрепить пост т.к. в сети я не нашёл конкретной информации по этому вопросу, поэтому методом проб и ошибок по крупицам я нашёл решение

Я таки разобрался как поднять последовательный интерфейс для коммуникации с модемом на Андройде! Но обо всем по порядку.
Не могу сказать за остальные прошивки но я использую стоковую Россия 4.4.2 N7100XXUFNE1_SER, взять можно отсюда https://4pda.ru/forum/index.php?showtopic=384190 (root ставил отдельно)
Порядок действий:
1)Вводим на телефоне в окне набора номера *#7284# это режимы работы UART и USB (в режиме модема или мультимедиа). Выбираем UART ->
PDA
и USB -> MODEM. Жмем SAVE and RESET и ждем пока телефон перезагрузится.

2)Подключаем USB-кабель к телефону и видим в диспетчере устройств кучу неизвестных устройств (это наши serial порты). Драйвера качаем отсюда http://www.usb-drivers.org/samsung-andr ... river.html Далее жмем обновить драйвер для каждого их наших неизвестных устройств -> Выполнить поиск драйверов на этом компьютере -> Выбрать драйвер из списка -> Установить с диска -> выбираем папку со скаченными и распакованными драйверами -> Выбираем модель %VCOM% и жмем далее соглашаясь с предупреждением. После этого должны увидеть что драйвер успешно установлен.
PS: Драйвера на устройство Comneon suspend ставить не нужно. Но если интересно то можете почитать тут http://developer.samsung.com/forum/boar ... d%3D269235

3)Скачиваем и запускаем утилиту Realterm https://sourceforge.net/projects/realterm/ Во вкладке Display выбираем ANSI, во вкладке Port поле Port пробуем открыть каждый порт из тех, на которые только что установили драйвера путем нажатия кнопок Open и (или) Change. Во вкладке Send обязательно ставим галочки напротив EOL+CR и \n After. Пробуем отправить тестовую АТ команду кнопкой Send ASCII. Если в консоль ничего не пришло то выбираем другой порт, и так далее пока не найдете интерфейс с модемом, у меня их оказалось 2. В чем между ними разница я не знаю.

PS: Что бы вернуть возможность соединяться с телефоном с помощью ADB, нужно ещё раз набрать *#7284# и выбрать USB -> PDA

Отправлено спустя 1 минуту 50 секунд:
PS2: прошивку для своего телефона ищите в соответствующей теме. В моем случае прошивка для Samsung N7100

Аватара пользователя
DesignerMix
Администратор
Администратор
Сообщения: 7035
Зарегистрирован: 25 апр 2014, 10:51
Откуда: Белгород
Контактная информация:

AT-command

Сообщение DesignerMix »

alex martin, вы выбрали ответ лучшим и он закрепился вверху темы, так что каждый кто сюда зайдет сразу заметит важное сообщение где вы все расписали. Думаю этого достаточно. Я только предлагаю сменить название темы с непонятной AT-command на Работа с модемом командами AT на телефоне Samsung. Вы не против смены названия? Модель телефона я не уточнял в названии специально т.к. возможно ваш способ окажется полезен и для других.

PS: Спасибо что поделились решением которое вам помогло!

Аватара пользователя
alex martin
Новичок
Сообщения: 13
Зарегистрирован: 30 апр 2017, 09:26
Контактная информация:

AT-command

Сообщение alex martin »

DesignerMix, конечно, смените название топика.

Думаю стоит уточнить Работа с модемом командами AT на Android устройствах

Аватара пользователя
DesignerMix
Администратор
Администратор
Сообщения: 7035
Зарегистрирован: 25 апр 2014, 10:51
Откуда: Белгород
Контактная информация:

Работа с модемом командами AT на Android устройствах

Сообщение DesignerMix »

Изменил. (Возможность правки своих постов у вас появится после того, как вы напишите 30 сообщений)

Ответить

Вернуться в «Программно-определяемое радио»