当前位置: 首页 > article >正文

安卓设备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”。
指令类型:

  1. 测试指令:格式为 “AT+< 指令名称>=?”,用于查询指令的内部参数及其取值范围。
  2. 查询指令:格式为 “AT+< 指令名称>?”,返回参数的当前值。
  3. 设置指令:格式为 “AT+< 指令名称>=<…>”,用于设置用户自定义的参数值并执行相关命令。
  4. 执行指令:格式为 “AT+< 指令名称>”,执行没有用户自定义参数的命令。不过,并非所有的 AT 指令都支持这四种类型。

常见应用领域及功能:

  1. 呼叫控制:包括拨号(如 “ATD + 电话号码”)、挂机(“ATH”)、接听电话(“ATA”)等操作,还可以查询通话相关的信息,如扩展错误报告(“AT+CEER”)等。
  2. 短信服务:可选择消息服务类型(“AT+CSMS”)、发送短信(“AT+CMGS”)、读取短信(“AT+CMGR”)、删除短信(“AT+CMGD”)等,以及设置短信服务中心地址(“AT+C SCA”)等相关参数。
  3. 网络服务:能够查询信号质量(“AT+CSQ”)、选择网络服务商(“AT+COPS”)、查看网络注册状态(“AT+CREG”)等,以便设备进行网络连接和通信。让单张SIM卡进飞行模式("AT+CFUN=0)
  4. 设备信息查询:可以获取模块厂商的标识(“AT+CGMI”)、模块标识(“AT+CGMM”)、软件版本(“AT+CGMR”)、国际移动设备标识(“AT+CGSN”)、国际移动签署者标识(“AT+CIMI”)等设备相关信息。
  5. 电话簿管理:支持选择电话簿记忆存储(“AT+CPBS”)、读取电话簿表目(“AT+CPBR”)、查找电话簿表目(“AT+CPBF”)、写电话簿表目(“AT+CPBW”)等操作,方便用户对电话簿进行管理。

不同设备中的应用:

在 GSM 模块中,AT 指令集被广泛用于与 GSM 网络进行交互,实现各种通信功能。
在 Wi-Fi 模块、蓝牙模块等其他通信模块中,也有相应的 AT 指令集来控制其功能,如 ESP32 模块的 AT 指令集可用于配置 Wi-Fi 连接、蓝牙连接等。

安卓获取modem设备输入符入口

  1. 通过开发产商提供获取
  2. 通过分析日志获取
    通过查看系统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代表没信号,一般是没插卡
在这里插入图片描述
作者:帅得不敢出门


http://www.kler.cn/a/377405.html

相关文章:

  • parseInt 是一个内置的 JavaScript 函数,用于将字符串转换为整数。
  • 开源协议类型及长安链开源协议介绍
  • (11)(2.1.6) Hobbywing DroneCAN ESC(二)
  • 十四届蓝桥杯STEMA考试Python真题试卷第二套第一题
  • Dify 中的 @login_required 装饰器
  • SpringBoot源码解析(一)
  • 前端如何优化页面中的大量任务
  • vue2中的v-bind相当于原生js的什么
  • 3.1 大数据时代
  • 《Apache Cordova/PhoneGap 使用技巧分享》
  • 19.公益众筹捐赠系统(基于springboot和html的Java项目)
  • HTML 语法规范——代码注释、缩进与格式、标签与属性、字符编码等
  • 【力扣热题100】[Java版] 刷题笔记-121. 买卖股票的最佳时机
  • 【那些年踩过的坑-前端篇- Mac版本】Mac电脑如何升级node.js
  • 测试和实施面试题收集
  • Rust语言有哪些常用语句?
  • m6A-BERT——基于 BERT 的模型可用于预测具有遗传信息的 MRNA 的功能
  • 速通一些常见的神经网络
  • MYSQL-查看数据表拥有的索引语法(二十二)
  • [RoarCTF 2019]Easy Calc 1
  • 蓝桥杯介绍
  • GaussDB Ustore存储引擎解读
  • 基于卷积神经网络的柑桔病害识别与防治系统,resnet50,mobilenet模型【pytorch框架+python源码】
  • Qt/C++地图动态绘制折线多边形矩形圆形标注点/可编辑拖动调整大小和位置
  • 【复盘笔记】25国考一期_套题5
  • 5G无线帧基本架构