簡體   English   中英

通過 ADB Android 發送 AT 命令

[英]Sending AT Commands Via ADB Android

我有一項任務在調查是否可以通過 ADB shell 將 AT 命令發送到 android 設備。 到目前為止,我已經嘗試回顯 AT 命令,但它將它們作為普通字符串傳遞。 任何幫助請任何人。

請試試這個:

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

在您的手機上,串行線不一定必須稱為ttyUSB0 如果這不起作用或不可用,請檢查/dev/目錄的其他條目。
所以它也可能是/dev/ttyGS0/dev/SMD0 (由@Sani 發現)。

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


筆記:

也可能有電話不響應任何串行(tty)設備上的 AT 命令。
我只是在三星 Galaxy S4 上嘗試了我自己的程序,但沒有任何成功。

回聲他們在哪里? 在 Android 中,您與 rild(無線電接口層)守護進程對話,后者又與專有庫對話,后者向實際硬件發送命令。 查看 rild 源代碼以獲取詳細信息。 如果滿足您的需要,您可能可以編寫一個與 rild 對話並通過 adb shell 執行它的命令行程序。

是的,您也可以從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: smd11RIL使用的端口。這因設備而異。

還要從 android 應用程序運行 AT 命令,請查看本教程

http://tech-papers.org/executing-at-commands-android-application/

一種以上的組合。 我們讓它在 Pixel 4 XL 上使用 2 個終端。
一方面我們做了:

cat /dev/smd7

在另一個:

echo "AT\\r" > /dev/smd7

輸出顯示在第一個終端中

筆記:

  1. 必須是root!
  2. 沒有任何發現機制對我們有用,所以我們盲目地調用 smdX,直到我們得到來自“AT\\r”的響應。
  3. echo 會自動添加一個\\n,因此添加它是多余的。

為了找出要使用的端口:您可以檢查

# cat /proc/tty/drivers

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM