Отправка AT-команд с помощью ADB Android

У меня есть задача, чтобы исследовать, можно ли отправлять AT-команды на устройство Android через оболочку ADB. До сих пор я пытался откликнуться на команды AT, но он передает их как обычные строки. Любая помощь кому угодно.

Ответ 1

Попробуйте следующее:

echo -e "AT+CFUN=?\r\n" > /dev/ttyUSB0

На вашем телефоне серийная линия необязательно должна называться ttyUSB0. Если это не работает или недоступно, проверьте другие записи в каталоге /dev/.
Таким образом, это также может быть /dev/ttyGS0 или /dev/SMD0 (как выяснено @Sani).

Для получения дополнительной информации, пожалуйста, ознакомьтесь с этим Руководство


Примечание:

Также могут быть телефоны, которые не отвечают на команды AT на любом из своих последовательных устройств (tty).
Я просто попробовал собственную процедуру на Samsung Galaxy S4 и не имел никакого успеха.

Ответ 2

Эхо их где? В Android вы разговариваете с демоном rild (Radio Interface Layer), который, по очереди, разговаривает с собственной библиотекой, которая отправляет команды на фактическое оборудование. Проверьте исходный код rild. Вероятно, вы могли бы написать программу командной строки, которая будет разговаривать с rild и выполнять ее через оболочку adb, если это вам подходит.

Ответ 3

Да, вы также можете запускать команды AT из adb shell...

prerequsite :-
 1. rooted android phone
 2. you are aware of the port that RIL use for i/o operation.
 3. to check which port is being used by RIl use 'getprop rild.libargs'

Для запуска AT-команды из ADB используйте:

echo -c "AT\r\n" > /dev/smd11

PS: smd11 - это порт, используемый RIL. Это зависит от устройства.

ТАКЖЕ для запуска AT-команд из приложения Android, проверьте этот учебник

http://tech-papers.org/executing-at-commands-android-application/

Ответ 4

Чтобы узнать, какой порт использовать: Вы можете проверить

# cat /proc/tty/drivers

Используйте logcat -b radio | grep dev, чтобы увидеть, как используется радио.