通过ADB Android发送AT命令

时间:2012-10-12 08:54:18

标签: android cmd adb at-command

我有一项任务正在研究是否可以通过ADB shell将AT命令发送到Android设备。到目前为止,我已经尝试回显AT命令,但它将它们作为普通字符串传递。 任何帮助请任何人。

5 个答案:

答案 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

输出显示在第一个终端

注意:

  1. 必须是根!
  2. 没有一种发现机制对我们有用,因此我们盲目地调用smdX,直到得到“ AT \ r”的响应。
  3. echo自动添加一个\ n,因此添加它是多余的。