android radiooptions简介

RILD负责modem和RILJ端的通信,信息分两种:unsolicited和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,在系统启动的时候被执行,hardware\ril\rild\rild.rc

service ril-daemon /system/bin/rildclass mainsocketrild stream 660 root radiosocket sap_uim_socket1 stream 660 bluetooth bluetoothsocket rild-debug stream 660 radio systemuser rootgroup radio cache inet misc audio log readproc wakelock qcom_diag

由hardware\ril\rild\Android.mk下面相关内容可以看出radiooptions编译成为一个可执行文件

# For radiooptions binary
# =======================
include $(CLEAR_VARS)LOCAL_SRC_FILES:= \radiooptions.cLOCAL_SHARED_LIBRARIES := \liblog\libcutils\LOCAL_CFLAGS := \LOCAL_MODULE:= radiooptions
LOCAL_MODULE_TAGS := debuginclude $(BUILD_EXECUTABLE)

编译生成radiooptions在out\target\product\msm8937_64\system\bin下,调试的时候只需要编译mmm hardware/ril/rild,然后把生成的radiooptionspush到设备的/system/bin目录下即可。

在设备下对应下图的rild-debug这个socket

然后可以通过执行radiooptions这个应用程序,此程序通过rild-debug这个socket来和modem通讯,rild-debug目前支持的功能, \hardware\ril\rild\radiooptions.c下的print_usage()可以看出来

比如,挂断电话的测试ratiooptions 10 1 0,其中10是END_CALL,1是SIM2

通过adb logcat -b radio >E:\test\radio.log可以抓取到radio的信息。

参考链接:

Android7.0 Rild工作流程

http://blog.csdn.net/u014386544/article/details/52997651

android-ril 分析-radiooption

http://blog.csdn.net/cainiao413/article/details/6309810

深入理解Android Telephony 之RILD机制分析

http://blog.csdn.net/mathcompfrac/article/details/53967907

android radiooptions简介相关推荐

  1. 【译】Android系统简介—— Activity

    续上一篇,继续介绍Android系统.上一篇: [译]Android系统简介 本文主要介绍构建Android应用的一些主要概念: Activity Activity是应用程序中一个单独的有UI的页面( ...

  2. Android ViewTreeObserver简介-------------转

    Android ViewTreeObserver简介 一.结构 public final class ViewTreeObserver extends Object java.lang.Object ...

  3. Android 的简介和体系结构中每个层的功能。

    Android 的简介和体系结构中每个层的功能. 1.简介 Android是由Google公司和开放手机联盟领导并开发的一种基于Linux的自由且开放源代码的操作系统,主要使用于移动设备. Andro ...

  4. Android字体简介

    Android字体简介 Android系统默认支持三种字体,分别为:"sans","serif","monospace". android. ...

  5. Android OkHttp3简介和使用详解

    一 OKHttp简介 OKHttp是一个处理网络请求的开源项目,Android 当前最火热网络框架,由移动支付Square公司贡献,用于替代HttpUrlConnection和Apache HttpC ...

  6. android 教程概要,Android精通教程-第一节Android入门简介

    前言 大家好,我是 Vic,今天给大家带来Android精通教程-第一节Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cea ...

  7. Android HIDL 简介

    Android HIDL 简介 Qidi 2017.08.01 (Markdown & Haroopad) 注意:本文基于 Android 8.0 进行分析. 0.特别声明 本文是在 HIDL ...

  8. Android开发-简介(一)

    Android的简介: Android是一种基于Linux 内核和其他开源软件的修改版本的移动操作系统,主要为智能手机和平板电脑等触摸屏移动设备设计.Android是由一个被称为开放手机联盟的开发者联 ...

  9. 《Android游戏编程入门经典》——1.1节Android 4简介

    本节书摘来自异步社区<Android游戏编程入门经典>一书中的第1章,第1.1节Android 4简介,作者[美]Jonathan S. Harbour,更多章节内容可以访问云栖社区&qu ...

最新文章

  1. Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战
  2. 基于Java的数据采集(终结篇)
  3. Linux系统编程:lseek扩展文件大小失败原因分析
  4. Hive数据导出的三种方式
  5. php 建站要学,建站新手如何开始学习php?
  6. 第五章项目整体管理重点--转载
  7. 以汉字开头,以某个词结尾的一段文字的正则
  8. easyui添加删除表格任意行
  9. 2021-09-02Hive
  10. 用matlab解系统框图,控制系统框图(请教matlab中怎么画控制系统流程框图?)
  11. kernel 修改启动logo
  12. php++内购续期订阅,appstore:内购项目之自动续期订阅
  13. python 映射表_python映射列表实例分析
  14. Windows资源管理器占用CPU过高
  15. marvelous designer 10安装使用教程(附快捷键)
  16. TOGAF ADM 教程
  17. 阿拉丁小游戏统计平台
  18. halcon算子翻译——select_shape
  19. RK3399 系列 U-BOOT (U-Boot 2014.10)
  20. 物联网设备群的软件仿真

热门文章

  1. 单纯形法只有两个约束条件_10分钟掌握对偶单纯形法
  2. HashMap的存储过程
  3. 【Spring注解】@Condition条件注册
  4. 006_Spring Data JPA基于方法名称命名规则查询
  5. 007_JDK的Comparator接口
  6. 006_CSS类选择器
  7. matlab设计长度为50的滤波器,实验5 基于Matlab的数字滤波器设计
  8. python fun_一道神奇的Python面试题,你会吗?
  9. antdesign 所兼容的浏览器_Edge 87.0最新离线稳定版浏览器
  10. dat文件读取_微信dat文件如何查看