配置Modem的命令radiooptions

android modem调试的一点点经验 mv /system/lib/libserria_gps.so /system/  这个是关掉gps  mv /system/lib/libnm-ril.so /system/  这个是关掉ril  nmea就是gps规范格式的gps数据 Bridge驱动的配置 +CONFIG_USB_G_SERIAL=y -CONFIG_USB_ANDROID=y - 阅读详情
手机运行中,上层通过Ril.java的接口封装,借助RILD建立与Modem的通信,Ril.java也称为RILJ。Modem和RILD之间通信的信息分两种:unsolicited和solicited(solicited是征求的意思),前者是由modem主动上报的,诸如时区更新、通话状态、网络状态等消息,后者是RILJ端发请求并需要modem反馈的信息。 
另外,Android系统还提供了一个命令接口radiooptiongs,通过获取启动参数,利用socket与rild通信,可供调试时配置Modem参数。 

使用radiooptions来切换Radio状态, 它把传递过来的参数写入UNIX本地socket("/dev/socket/rild-debug"),不做其他操作。rild守护进程会监听该socket,当有数据到达时,会调用相应的回调函数,解析发送过来的命令,并转换为相应的AT命令写入AT接口设备。具体过程是:在radiooptions这一侧,先判断参数个数,然后逐个将它们写入socket。在守护进程侧,守护进程注册回调函数RIL_RadioFunctions时,会监听该套接字,当套接字上有连接请求时,就调用ril.cpp文件中的回调函数debugCallback,接受连接请求,获取得到的数据,然后调用issueLocalRequest函数发送请求,即向AT接口设备发送AT命令。

Radiooptiongs的源代码目录为hardware\ril\rild,该目录中包含了radiooptions和rild两个bin文件的源代码。这里的hardware\ril\rild\rild.rc定义了系统启动时rild自动运行的过程。

service ril-daemon /system/bin/rild
    class main
    socket rild stream 660 root radio
    socket sap_uim_socket1 stream 660 bluetooth bluetooth
    socket rild-debug stream 660 radio system
    user root
    group radio cache inet misc audio log readproc wakelock qcom_diag

上述socket rild stream 660 root radio会创建一个socket文件/dev/socket/rild,CS两端就通过这些socket建立通信。

radiooptions.c中描述该命令的使用方法

static void print_usage() {
    perror("Usage: radiooptions [option] [extra_socket_args]\n\
           0 - RADIO_RESET, \n\
           1 - RADIO_OFF, \n\
           2 - UNSOL_NETWORK_STATE_CHANGE, \n\
           3 - QXDM_ENABLE, \n\
           4 - QXDM_DISABLE, \n\
           5 - RADIO_ON, \n\
           6 apn- SETUP_PDP apn, \n\
           7 - DEACTIVE_PDP, \n\
           8 number - DIAL_CALL number, \n\
           9 - ANSWER_CALL, \n\
           10 - END_CALL \n\
          The argument before the last one must be SIM slot \n\
           0 - SIM1, \n\
           1 - SIM2, \n\
           2 - SIM3, \n\
           3 - SIM4, \n\
          The last argument must be modem-socket style \n\
           0 - one modem for one debug-socket, \n\
           1 - one modem for multiple debug socket \n");
}

比如ratiooptions 10 1 0为挂断SIM2的电话。

4G模块-EM05驱动调试分享-02(Android上层更改) 首先你要有移远官方提供的库文件,Quectel_Android_RIL_Driver_V3.3.91_master_beta,里面包含了如下文件在安卓上层最主要就是添加上面的文件(chat,ip-down,ip-up,libreference-ril.so),也就是支持ril,它是Android的一个电话服务和无线电硬件之间的抽象层结构如下:内核和应用程序框架之间,由两部分组成: RILD和Vendor RIL。......... 阅读详情

相关推荐

Mac用户必看:Parallels Desktop 18.1.1最新破解版安装与优化全攻略(附资源)

本文为Mac用户提供Parallels Desktop 18.1.1的详细安装与优化指南,涵盖虚拟化技术选型、专业级配置流程及性能调优技巧。重点解析Parallels Desktop在图形加速、系统资源调度方面的核心优势,并分享生产力增强技巧与典型应用场景实战方案,帮助用户最大化利用这一高效虚拟化工具。

weixin_29240343的博客 824

使用AT命令操作Modem 3G/4G模块

除了标准的AT命令集,不同厂商可能会引入自定义的AT命令来支持特定的功能。这些自定义的AT命令可以用于设备的特定配置、控制和操作。例如,一个嵌入式设备制造商可能会引入用于控制设备唯一功能的AT命令。

虎哥LoveDroid 9651

基于CNN对抗嵌入的图像隐写——CNN-Based Adversarial Embedding for Image Steganography

CNN-Based Adversarial Embedding for Image Steganography https://ieeexplore.ieee.org/abstract/document/8603808 这篇论文发表在TIFS( IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY),TIFS是网络与信息安全领域的国际两大顶级期刊之一,中国计算机学会(CCF)推荐的A类期刊,SCI一区TOP期刊,目前影响因子有7多了。 1 概

weixin_48654804的博客 2279

Android开发调试命令汇总

android 开发常用调试命令

mart!nhu的博客 5265

YOLOv5添加注意力机制的具体步骤

本文主要介绍了 本文在此篇博客的基础上向YOLOv5-5.0版 本文主要包括以下内容一、CBAM注意力机制添加(1)修改yolov5s主干网络(2)在common.py中添加可调用的CBAM模块(3)向yolo.py文件添加CBAMC3判断语句二、SE注意力机制添加 本文以yolov5s网络为例 一、CBAM注意力机制添加 注意力机制可以添加在backbone,Neck,Head等部分,接下来本文以backbone主干网络为例 (1)修改yolov5s主干网络 1.在yolov5-5.0工程文件夹下,找到m

thy0000的博客 2万+

手把手教你用IN-Sight智能相机实现双向TCP/IP通讯(附网络调试助手推荐)

本文详细解析了IN-Sight智能相机实现双向TCP/IP通讯的完整流程。通过将相机同时配置为TCP服务器和客户端,构建了与上位机(如PLC、MES)稳定可靠的数据交换通道。文章深入剖析了发送(TCPDevice)与接收(ReadDevice)通道的独立配置、关键参数设置(如结束符CR+LF)、高效调试工具选择以及实战避坑指南,帮助工程师快速掌握这一构建柔性产线数据节点的核心技术。

qsc9012345的博客 671

RIL flow

Android通信模块 第一部分电话功能概述      Android的Radio Interface Layer (RIL)提供了电话服务和的radio硬件之间的抽象层。      Radio Interface Layer RIL(Radio Interface Layer)负责数据的可靠传输、AT命令的发送以及response的解析。应用处理器通过AT命令集与带GPRS功能的无线通讯模

1633

Fast-Lio2代码及论文解析2

点云数据频率较低而IMU为高频数据。

努力努力努力 2278

Android9 Radio模块的加载及调用流程

摘要: Android的Radio模块鲜有人总结,因为现在大多数手机都已经不支持收音机功能了,但是车机上收音机的功能还是很常用的。这个模块相较于其他模块更简单同时也比较奇怪,其功能要同时依赖RadioManager和Tuner类,RadioManager类用来完成初始化并获取Tuner实例,Tuner完成和电台相关的诸多操作,因笔者能力有限,本文仅对Radio模块的加载及调用流程做简要梳理,具体原理不再深究 一、Radio模块的加载 概述: Radio模块被init.rc进程拉起,在1.0/1.1/1.

u012773843的博客 7557

2026 年第十六届MathorCup数学应用挑战赛题目C题中老年人群高血脂症的风险预警及干预方案优化 2026妈妈杯 详细思路、代码、模型

2026 年第十六届MathorCup数学应用挑战赛题目 C题中老年人群高血脂症的风险预警及干预方案优化 人口老龄化进程的持续加快,使得40岁及以上中老年人群成为 慢性病防控的核心群体,其中高血脂症的发病率呈逐年攀升态势, 已成为诱发冠心病、脑梗死等心脑血管疾病的重要危险因素,严重 威胁中老年群体的心血管健康与生活质量,也加重了基层医疗的慢 病管理负担。从中医体质学视角来看,体质禀赋与偏颇是疾病发生 发展的内在根基,其中痰湿体质为中老年高血脂症的高发体质类型, 该体质人群存在痰湿内蕴、脾胃运化失常、水湿代谢

YOLO 756

ubuntu emto-cpa安装与编译

ubuntu emto-cpa安装与编译

qq_45834835的博客 1436

android radiooptions简介

android radiooptions简介 RILD负责modem和RILJ端的通信,信息分两种:unsolicited和solicited,前者是由modem主动上报的,诸如时区更新、通话状态、网络状态等消息,后者是RILJ端发请求并需要modem反馈的信息 Android系统提供了radiooptiongs,通过获取启动参数,利用socket与rild通信,可供调试时配置Modem参数 使用

LoongEmbedded的专栏 2147

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

android-ril 分析 -radiooption

<br />先看Android.mk<br /><br /># For radiooptions binary<br /># =======================<br />include $(CLEAR_VARS)<br />LOCAL_SRC_FILES:= /<br />    radiooptions.c<br />LOCAL_SHARED_LIBRARIES := /<br />    libcutils /<br /> <br />LOCAL_CFLAGS := / <br /> <b

cainiao413的专栏 2236

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

MTK radiooptions 分析

RIL Socket 资源创建 service ril-daemon /system/bin/rild     class main     socket rild stream 660 root radio     socket sap_uim_socket1 stream 660 bluetooth bluetooth     socket rild-debug stream 660

Utopia 940

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

android驱动模块,Android GSM驱动模块详细分析

【IT168 技术文档】Android的RIL驱动模块, 在hardware/ril目录下,一共分rild,libril.so以及librefrence_ril.so三个部分,另有一radiooptions可供自动或手动调试使用。都依赖于include目录中ril.h头文件。目前cupcake分支上带的是gsm的支持,另有一cdma分支,这里分析的是gsm驱动。GSM模块,由于Modem的历史原因...

weixin_28895791的博客 278

Android GSM驱动模块详细分析

<br />http://www.linux-mobile.net/forum.php?mod=redirect&tid=18358&goto=lastpost<br /> <br />Android的RIL驱动模块,<br />在hardware/ril目录下,一共分rild,libril.so以及librefrence_ril.so三个部分,另有一<br />radiooptions可供自动或手动调试使用。都依赖于include目录中ril.h头文件。目前cupcake分支上带的是gsm的支持,另有一c

WINGCREATE的专栏 3277

Modem AT指令浅析

modem 每天学一个指令:AT+COPS功能:用于选择运营网络。主要有2种选择方式: 1.手工模式(manual): 搜索应用程序指定的网络。如果成功,则进行注册。 2.自动模式(automatic):搜索归属网络。若找到,则进行注册;否则,搜索其他网络。 3.手工/自动模式(manual/automatic):搜索应用程序指定的网路。如果成功,则选择应用程序指定的网络进行注册;否则,启动自

sundaygeek的专栏 4万+

Rockchip Linux6.1 Android14 移植移远4G模组

Android14 移植移远4G模组,Rockchip平台EM05模组

qq_42925353的博客 4262

RADIO控件变量添加

下面按照VC++6.0给你说:1、将IDC_RADIO1的Group属性选择上,IDC_RADIO2不要选Group属性就可以了;2、在对话框上,按Ctrl+W弹出MFC ClassWizard,点击Member Variables属性页,选择下方的IDC_RADIO1然后点击右侧的“Add Variable”按钮,在里面写上变量名m_a,Category处选择Value,Variable typ

记得评论哦 3952

Radio . Group 通过options创建Radio时,如何给予其样式

通过给Radio . Group绑定 className ,但不能是style,因为。自己体会吧,因为根本没法做。另外记录下: styles .copyFormItem 就可以获取到这个less样式。这样将less导出, 相当于 : styles = {通过下面类似的方法,

weixin_43416349的博客 428

Android通过cmd获取设备基本信息

获取设备信息 场景 在Android开发过程中,因为设备不同的原因,不同设备对同一个信息的获取并未完全保存一致.例如获取iccid,且在实际运行中可能需要获取设备的基本信息,而通过Android自带的方法,有时无法快速找到基本信息对应的标志名例如获取设备的cpu型号 目的 先通过cmd获取到设备的基本信息及对应的标志名,再通过Android代码进行获取查询 操作 通过网络查询,发现命令adb shell getprop 可以查询到很多信息 以下信息基于MT6737获取 F:>adb shell get

weixin_43194854的博客 2471

Android 4G模块调试总结

一、前言 平台:RK3399 Android版本:8.1 二、Kernel层驱动支持 4G模块一般通过USB与MCU连接,相关的USB驱动有USB ACM、option、ECM、NCM这些驱动模块。 ACM驱动:支持如modem端口,AT端口等(cdc-acm.c内置于内核); NCM驱动:USB标准的NCM网络设备驱动,主要用于传输网络数据。 PPP驱动:PPP拨号相关驱动,...

u014078917的博客 8626

Android 本地时间/时区自动更新 -- NITZ

NITZ - Network Identity and Time Zone,网络标识和时区,是一种用于自动配置本地时间和日期的机制,同时也通过无线网向移动设备提供运营商信息。NITZ经常被用来自动更新移动电话的系统时钟,Android原有的更新机制就是采用NITZ方式,这是一种运营商的可选服务。其基本原理简单的来说,就是UI根据 Modem主动上报的时间信息,更新终端系统的时间及时区。

飞翔凡人 1万+

RK3588 Android12调试移远EC20模块(外挂小板)

平台:RK3588&Android12内容:外挂小板调试EC20通过主板的usb口外接一个小板调试移远的4G模块EC20,实现4G上网。

RYF6666的博客 4918

android QMI机制---modem消息发送

7 modem消息发送 一般BP侧处理完请求后,都会回应一个响应给AP,一般是用宏QMI_SVC_PKT_PUSH将要作为响应 的消息发送出去。qmi_svc_utils.h中QMI_SVC_PKT_PUSH定义如下, #define QMI_SVC_PKT_PUSH(pkt,val,len) ( len == dsm_pushdown_packed(pkt,\ val,\ l

Jack的博客 7687
上一篇: 常用系统配置和资源管理
下一篇: GPIO配置和管理
makeyourprogress
博客等级 码龄11年 26粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值