通过ADB Android发送AT指令

12

我在工作中有一个任务,需要调查是否可以通过ADB shell向Android设备发送AT命令。到目前为止,我尝试了将AT命令回显出来,但它们只会被视为普通字符串。

请问有人能帮忙吗?


我认为这是不可能的。ADB不是GSM调制解调器。 - opc0de
我知道,但我看过类似的帖子,人们已经成功地在已经root的设备上执行了AT命令。 - Sani Yusuf
请查看此链接:http://tech-papers.org/executing-at-commands-android-application/ - Balwinder SIngh
5个回答

9
请尝试以下方法:
echo -e "AT+CFUN=?\r\n" > /dev/ttyUSB0

在您的手机上,串行线不一定要叫做 ttyUSB0。如果这不能工作或者不可用,请查看其他条目在 /dev/ 目录下。
所以它也可以是 /dev/ttyGS0 或者 /dev/SMD0(由 @Sani 发现)。
如需更多信息,请查看此 指南
注意:
也可能有些手机,在任何串行 (tty) 设备上都没有响应 AT 命令。
我在三星 Galaxy S4 上尝试了我的自己的程序,并没有成功。

我已经尝试过了,但它并没有起作用。顺便说一下,我的设备是一个已经root的Galaxy Ace。 - Sani Yusuf
1
我已经得到了一个可行的解决方案。我需要找到我的设备调制解调器,而在我的情况下是SMD0而不是TTYUSB0。我已经尝试了一些命令并且有些返回OK,但仍在继续研究。谢谢大家。 - Sani Yusuf
啊,这就是为什么我告诉你要查看指南的原因。:o) 我会完善我的答案以解决这个问题。感谢您与我们分享! - Nippey
如果我使用USB连接我的手机,并在adb shell中使用/dev/smd0,它可以工作,但是在Android终端模拟器上使用相同的方法却不行。可能出了什么问题? - Umair A.
那么,@Nippey,在Galaxy S4上没有办法做到这一点吗?我迫切需要知道TMSI(它会不断变化,“T”代表临时)。 - tiktak

2
在哪里回显它们?在Android中,您需要与rild(无线电接口层)守护进程通信,该守护进程再与专有库进行通信,并向实际硬件发送命令。有关详细信息,请查看rild源代码。如果符合您的需求,您可以编写一个与rild通信并通过adb shell执行的命令行程序。

这是完全可能的。我已经成功地让几个工作,并且大多数都返回了OK请求。 - Sani Yusuf
再次,将它们输出到哪里?你发出了什么命令?ADB只是在手机上执行shell命令的一种手段。你可能能够直接与某些串行(类似)设备通信,也可能无法这样做。这在很大程度上取决于具体的手机。 - Nikolay Elenkov

1

是的,您也可以从adb shell运行AT命令。

先决条件:

  1. 已root的安卓手机
  2. 您知道RIL用于i/o操作的端口。
  3. 要检查Android的无线电接口层(RIL)正在使用哪个端口,请使用getprop rild.libargs

要从ADB运行AT命令,请使用:

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

附言:/dev/smd11 是由 RIL 使用的端口。这因设备而异。

此外,若要从 Android 应用程序运行 AT 命令,请查看以下教程: 从 Android 应用程序执行 AT 命令


要检查 RIL 正在使用哪个端口,请使用 getprop rild.libargs 命令。但在我的情况下,它没有返回任何内容。我正在使用三星 GT-S5301。 - mkhan

1
为了找出要使用哪个端口: 您可以检查。
# cat /proc/tty/drivers

使用logcat -b radio | grep dev命令可以查看无线电使用的tty。

对于我的Galaxy Note II(GT-N7100),这是/dev/ttySAC2 - psiphi75

1
这是以上内容的综合。我们在Pixel 4 XL上使用了2个终端,并使其正常工作。
在一个终端中,我们输入: cat /dev/smd7 在另一个终端中,我们输入: echo "AT\r" > /dev/smd7 输出会在第一个终端中显示。
注意事项:
  1. 必须具备root权限!
  2. 我们没有成功使用任何发现机制,所以我们盲目地调用smdX,直到我们从“AT\r”获得响应。
  3. echo自动添加了一个\n,因此添加它是多余的。

唯一有效的答案!在红米Note 3上得到了它。 - megapro17

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接