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