11

我有一项工作要调查是否可以通过 ADB shell 将 AT 命令发送到 android 设备。到目前为止,我试图回显 AT 命令,但它会将它们作为普通字符串传递。任何帮助请任何人。

4

5 回答 5

9

请试试这个:

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

在您的手机上,不一定要调用串行线ttyUSB0。如果这不起作用或不可用,请检查/dev/目录的其他条目。
所以它也可能是/dev/ttyGS0/dev/SMD0(如@Sani 发现的那样)。

如需更多信息,请查看本指南


笔记:

也可能有电话不响应任何串行(tty)设备上的 AT 命令。
我刚刚在三星 Galaxy S4 上尝试了自己的程序,但没有任何成功。

于 2012-10-12T09:05:14.860 回答
2

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/

于 2015-01-13T09:11:21.983 回答
2

在哪里呼应他们?在 Android 中,您与 rild(无线电接口层)守护进程对话,后者又与专有库对话,后者将命令发送到实际硬件。查看 rild 源代码以获取详细信息。如果符合您的需要,您可能会编写一个与 rild 对话并通过 adb shell 执行它的命令行程序。

于 2012-10-12T08:58:12.747 回答
1

为了找出使用哪个端口:您可以检查

# cat /proc/tty/drivers

用于logcat -b radio | grep dev查看收音机正在使用的 tty。

于 2014-09-08T14:11:38.200 回答
1

一种以上的组合。我们让它在 Pixel 4 XL 上使用 2 个终端。
我们做了一个:

cat /dev/smd7

在另一个:

echo "AT\r" > /dev/smd7

输出显示在第一个终端

笔记:

  1. 必须是root!
  2. 没有一个发现机制对我们有用,所以我们盲目地调用 smdX,直到我们得到“AT\r”的响应。
  3. echo 会自动添加一个 \n,所以添加它是多余的。
于 2020-11-10T21:55:57.597 回答