安卓设备adb执行AT指令控制电话卡
文章目录
- AT指令
- 起源与发展:
- 基本格式:
- 常见应用领域及功能:
- 不同设备中的应用:
- 安卓获取modem设备输入符入口
- 安卓设备输入AT指令
AT指令
AT 指令是 Attention 的缩写,是一种用于控制调制解调器等通信设备的指令集。
起源与发展:
AT 指令集最初由 Dale Heatherington 和 Dennis Hayes 在 1981 年为 Hayes SmartModem 300 波特调制解调器开发。起初只包含早期 300 比特 / 秒调制解调器支持的操作指令,后来随着技术发展,各厂商为控制高速调制解调器的新功能,推出了带有各种扩展的指令版本,逐渐形成了现在丰富的 AT 指令集。
基本格式:
AT 指令通常以 “AT” 作为开头,后面跟着具体的指令参数,以回车换行符(\r\n)结尾。设备接收到 AT 指令后,会返回相应的响应信息,以指示指令是否执行成功。例如,发送 “AT” 指令后,如果设备正常响应,会返回 “OK”。
指令类型:
- 测试指令:格式为 “AT+< 指令名称>=?”,用于查询指令的内部参数及其取值范围。
- 查询指令:格式为 “AT+< 指令名称>?”,返回参数的当前值。
- 设置指令:格式为 “AT+< 指令名称>=<…>”,用于设置用户自定义的参数值并执行相关命令。
- 执行指令:格式为 “AT+< 指令名称>”,执行没有用户自定义参数的命令。不过,并非所有的 AT 指令都支持这四种类型。
常见应用领域及功能:
- 呼叫控制:包括拨号(如 “ATD + 电话号码”)、挂机(“ATH”)、接听电话(“ATA”)等操作,还可以查询通话相关的信息,如扩展错误报告(“AT+CEER”)等。
- 短信服务:可选择消息服务类型(“AT+CSMS”)、发送短信(“AT+CMGS”)、读取短信(“AT+CMGR”)、删除短信(“AT+CMGD”)等,以及设置短信服务中心地址(“AT+C SCA”)等相关参数。
- 网络服务:能够查询信号质量(“AT+CSQ”)、选择网络服务商(“AT+COPS”)、查看网络注册状态(“AT+CREG”)等,以便设备进行网络连接和通信。让单张SIM卡进飞行模式("AT+CFUN=0)
- 设备信息查询:可以获取模块厂商的标识(“AT+CGMI”)、模块标识(“AT+CGMM”)、软件版本(“AT+CGMR”)、国际移动设备标识(“AT+CGSN”)、国际移动签署者标识(“AT+CIMI”)等设备相关信息。
- 电话簿管理:支持选择电话簿记忆存储(“AT+CPBS”)、读取电话簿表目(“AT+CPBR”)、查找电话簿表目(“AT+CPBF”)、写电话簿表目(“AT+CPBW”)等操作,方便用户对电话簿进行管理。
不同设备中的应用:
在 GSM 模块中,AT 指令集被广泛用于与 GSM 网络进行交互,实现各种通信功能。
在 Wi-Fi 模块、蓝牙模块等其他通信模块中,也有相应的 AT 指令集来控制其功能,如 ESP32 模块的 AT 指令集可用于配置 Wi-Fi 连接、蓝牙连接等。
安卓获取modem设备输入符入口
- 通过开发产商提供获取
- 通过分析日志获取
通过查看系统ap日志,得到AT指令输入入口在/dev/下,名称为stty_lte0
,如果有双卡,那么stty_lte1就是SIM卡2的控制入口。
安卓设备输入AT指令
首先设备得有root,调用adb shell进入设备
adb root
adb shell
监听SIM卡1的AT指令回馈信息:
cat /dev/stty_lte0
再开另一个终端adb shell后,输入AT指令查询SIM卡1的信号强度
echo -e "AT+CSQ\r" > /dev/stty_lte0
cat端得到输出,0,99前面数字就是信号,0代表没信号,一般是没插卡
作者:帅得不敢出门