Работа с модемом командами AT на Android устройствах
- alex martin
- Новичок
- Сообщения: 13
- Зарегистрирован: 30 апр 2017, 09:26
- Контактная информация:
Работа с модемом командами AT на Android устройствах
Здравствуйте. Кто-нибудь имел опыт в управлении модемом телефона посредством 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".
Вот список устройств моего телефона 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
Может будет полезно - вот сообщение где я работал с модемом iPhone 4 командами AT - viewtopic.php?p=11640#p11640
- alex martin
- Новичок
- Сообщения: 13
- Зарегистрирован: 30 апр 2017, 09:26
- Контактная информация:
AT-command
DesignerMix, спасибо за ответ, но я не нашёл там полезной информации по моей проблеме.
Нашёл устройства с которыми взаимодействует rild-демон:
При попытке переименовать любое из них и последующем перезапуске rild у меня пропадает сеть. Возможно я ошибаюсь, но вероятно одно из этих устройств является интерфейсом для работы с AT-командами.
Далее я попробовал приконнектиться к каждому из устройств с попытками отправки тестовой "АТ" команды:
Но как видно безуспешно.
Далее я решил посмотреть, с какими ресурсами вообще работает rild
Я не силен в линуксе, но возможно ли что демон взаимодействует с модемом не с помощью устройства в /dev/ а посредством сокетов или пайпов? У кого-нибкдь есть идеи как это проверить?
Отправлено спустя 22 минуты 43 секунды:
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
Далее я попробовал приконнектиться к каждому из устройств с попытками отправки тестовой "АТ" команды:
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
Как я работал - сделал jailbreak iPhone 4 и установил из сидии пакет (или программу) minicom на iPhone. Так как к джейлбрейкнутому iPhone'у можно подключиться по ssh то я из под винды запустил putty и подключился, после чего ввелalex martin писал(а): ↑05 май 2017, 14:31опишите пожалуйста чуть подробнее процесс поиска устройства модема на вашем телефоне
minicom -s
и выбрал Serial Port Setup и т.д. как описано здесь - https://www.theiphonewiki.com/wiki/Baseband_CommandsС андроидом дел не имел.
Я кстати не очень понимаю как вы вообще работаете с вашим телефоном? Подключаете его к ПК с Linux'ом или подключаетесь к нему и при этом на нем работаете с minicom, а может еще как... Также вы не указали модель телефона и версию андроида
- alex martin
- Новичок
- Сообщения: 13
- Зарегистрирован: 30 апр 2017, 09:26
- Контактная информация:
AT-command
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
На своем телефоне не нашёл утилиты minicom, но использую альтеренативную microcom:
microcom log
Телефон Samsung Galaxy Note 2 GT-N7100, Android 4.4.2
Далее делаю "su" (телефон рутован) что бы получить рутовые привилегии и работаю как с обычным SSH.


- DesignerMix
- Администратор
- Сообщения: 7035
- Зарегистрирован: 25 апр 2014, 10:51
- Откуда: Белгород
- Контактная информация:
AT-command
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
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 секунд:
Сейчас создал новое подключение и попробовал набрать номер, в итоге ошибка

Отправлено спустя 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
Нет, не в курсеalex martin писал(а): ↑05 май 2017, 21:11вы не в курсе, есть ли смысл пробовать прошивать в телефон другие версии модемов, что бы все же иметь возможность подключиться к модему посредством microcom?
Вообще похоже на то судя по той статье, хотя т.к. у меня опыта работы с аппаратом не было мне трудно что-либо утверждать.alex martin писал(а): ↑05 май 2017, 21:11Или тут имеют место аппаратные особенности работы с телефонным модемом вне зависимости от прошивок?
Все что мог я сказал теперь дело только за вами, если решитесь шить то отпишитесь будет от этого толк или нет, мало-ли кому это пригодится. Просто мне без аппарата в руках рассуждать бессмысленно (тем более если учитывать то, что я довольно поверхностно понимаю эту тему).
- alex martin
- Новичок
- Сообщения: 13
- Зарегистрирован: 30 апр 2017, 09:26
- Контактная информация:
AT-command
DesignerMix, сейчас буду пробовать шить телефон разными прошивками, ядрами, модемами. Я пока не особо осведомлен относительно ключей Кс TMSI. Если с моим телефоном не получится поработать с модемом я хочу вытянуть "Кс" с помощью самопального девайса по такой схеме http://mikrocxema.ru/telefoniya/sim-reader.html вопрос в следующем, если я получю "Кс" он будет статичным или рандомным для каждой новой сессии?
- DesignerMix
- Администратор
- Сообщения: 7035
- Зарегистрирован: 25 апр 2014, 10:51
- Откуда: Белгород
- Контактная информация:
AT-command
alex martin, KC меняется (проверено на себе), так что снимать KC через устройство по считыванию SIM-карт нет смысла. Разве что только если на момент когда велась запись эфира у вас был KC такой, который последним сохранился на SIM и тогда да, это даст результат. А вот считывание KC с телефона который прямо сейчас работает с сетью куда эффективнее, поэтому я и пользовался minicom.
Отправлено спустя 6 минут 52 секунды:
Приведу цитату из своего сообщения:
Отправлено спустя 6 минут 52 секунды:
Приведу цитату из своего сообщения:
Хотя TMSI и KC это временные значения но как минимум KC меняется не так часто, правда я не знаю доподлинно алгоритма его изменения наверное он меняется при перерегистрации телефона и еще при каких-то событиях, но я наблюдал что он оставался неизменным и в течении 10 минут... TMSI мне особо не нужен (только для уверенности что я слушаю нужную вышку) и да, он меняется почаще чем KC.
- alex martin
- Новичок
- Сообщения: 13
- Зарегистрирован: 30 апр 2017, 09:26
- Контактная информация:
AT-command
Прошу админа вынести это сообщение в отдельную тему и (или) закрепить пост т.к. в сети я не нашёл конкретной информации по этому вопросу, поэтому методом проб и ошибок по крупицам я нашёл решение
Я таки разобрался как поднять последовательный интерфейс для коммуникации с модемом на Андройде! Но обо всем по порядку.
Не могу сказать за остальные прошивки но я использую стоковую Россия 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
Я таки разобрался как поднять последовательный интерфейс для коммуникации с модемом на Андройде! Но обо всем по порядку.
Не могу сказать за остальные прошивки но я использую стоковую Россия 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
alex martin, вы выбрали ответ лучшим и он закрепился вверху темы, так что каждый кто сюда зайдет сразу заметит важное сообщение где вы все расписали. Думаю этого достаточно. Я только предлагаю сменить название темы с непонятной AT-command на Работа с модемом командами AT на телефоне Samsung. Вы не против смены названия? Модель телефона я не уточнял в названии специально т.к. возможно ваш способ окажется полезен и для других.
PS: Спасибо что поделились решением которое вам помогло!
PS: Спасибо что поделились решением которое вам помогло!
- alex martin
- Новичок
- Сообщения: 13
- Зарегистрирован: 30 апр 2017, 09:26
- Контактная информация:
AT-command
DesignerMix, конечно, смените название топика.
Думаю стоит уточнить Работа с модемом командами AT на Android устройствах
Думаю стоит уточнить Работа с модемом командами AT на Android устройствах
- DesignerMix
- Администратор
- Сообщения: 7035
- Зарегистрирован: 25 апр 2014, 10:51
- Откуда: Белгород
- Контактная информация:
Работа с модемом командами AT на Android устройствах
Изменил. (Возможность правки своих постов у вас появится после того, как вы напишите 30 сообщений)