我有一项任务正在研究是否可以通过ADB shell将AT命令发送到Android设备。到目前为止,我已经尝试回显AT命令,但它将它们作为普通字符串传递。 任何帮助请任何人。
答案 0 :(得分:6)
请试试这个:
echo -e "AT+CFUN=?\r\n" > /dev/ttyUSB0
在手机上,不一定要将串行线路称为ttyUSB0
。如果这不起作用或不可用,请查看/dev/
目录的其他条目
所以它也可以是/dev/ttyGS0
或/dev/SMD0
(由@Sani发现)。
有关详细信息,请查看此Guide
注:
也可能有手机在任何串行(tty)
设备上都没有响应AT命令
我刚刚在三星Galaxy S4上尝试了自己的程序,并没有取得任何成功。
答案 1 :(得分:2)
回声他们在哪里?在Android中,您可以与rild(无线电接口层)守护程序进行通信,该守护程序又与专用库进行通信,该库将命令发送到实际硬件。检查rild源代码以获取详细信息。您可以编写一个与rild对话的命令行程序,并通过adb shell执行它,如果这符合您的需要。
答案 2 :(得分:1)
是的,你也可以从adb shell
运行AT命令......
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`
要从ADB运行AT命令,请使用:
echo -c "AT\r\n" > /dev/smd11
PS: smd11 是RIL使用的端口。这因设备而异。
也可以从Android应用程序运行AT命令查看本教程
http://tech-papers.org/executing-at-commands-android-application/
答案 3 :(得分:0)
为了找出要使用的端口: 你可以检查
# cat /proc/tty/drivers
使用logcat -b radio | grep dev
查看收音机正在使用的信息。
答案 4 :(得分:0)
以上各项的组合。我们将其与Pixel 4 XL上的2个终端一起使用。
我们做到了:
cat /dev/smd7
另一个:
echo "AT\r" > /dev/smd7
输出显示在第一个终端
注意: