RIL/QMI/Linux Data Start Guide
1简介
本文档为RIL/QMI/Linux Data入门介绍文档,目的是指导RIL新同事学习的内容和顺序,加快学习速度,尽快掌握相关知识。RIL/QMI/Linux Data涉及的内容比较多,要掌握这些模块需要学习如下内容:
AP侧:掌握Android Framework Telephony、RILD、QMI、DSS、NETMGR等
AMSS侧:了解CM、WMS、UIM、PBM、STK、MMGSDI等模块的接口和典型消息流程,Data Service相关模块和Call Flow
相关协议:了解GSM、WCDMA、CDMA相关协议,例如MO、MT信令流程,SIM卡相关协议等。
由于内容太多,我们需要循序渐进,可以按照下面的顺序学习,具体每个模块相关资料和代码列在后面
●RILD/RIL-LIB/Reference-RIL
●Framework RIL JAVA
●QCRIL框架,CM、WMS、UIM模块典型的业务流程(例如MO CALL、MT CALL、MO SMS、MT SMS、开机流程等),可以同时参考AMSS侧相关模块的介绍、接口文档、典型Case的Call Flow,不需要深入学习AMSS侧相关模块代码,两边结合更容易理解业务流程
●QMI架构介绍
●QCRIL DATA
●NET MGR
●QMI MUX、QMI CTRL、QMI Service Linux侧代码
●DSS
●Framework Data Call相关代码
注:RILD/RIL-LIB/Framework这三部分为Android平台代码,如果以前做过其它平台则可以直接跳过去;其他部分为Qualcomm平台独有部分。
2Android RIL
2.1文档
Android RIL部分网上有很多资料可供参考,如果以前没有接触过RIL可以先看一些介绍RIL架构的文档,先了解Android中Telephony整体架构,Telephony的层次架构、模块,每个模块的功能,重点先放在Rild和QCRIL上,掌握之后再去看Framework层的RIL JAVA和GSMPhone或者CDMAPhone。
具体可以先看一下下表列出的一些资料,其中Android Radio Layer Interface这篇PPT比较好,讲的很清楚。另外Reference-ril使用AT命令与Modem通信,与Qualcomm平台差别很大,reference-ril只需要大致了解其处理流程即可,不需要深入学习其代码。
编号 | 名称 | 描述 |
1 | Radio Layer Interface wwwmite/android/mydroid/development/pdk/docs/telephony.html | Android SDK中的RIL介绍 |
2 | Android电话系统-概述篇 blog.csdn/maxleng/article/details/5576509 | Android平台RIL整体架构 |
3 | Android电话系统之-RILD blog.csdn/maxleng/article/details/5576637 | RILD框架及内部原理介绍,QCRIL是RILD的一部分 |
4 | Android电话系统之RIL-Java blog.csdn/maxleng/article/details/5593759 | Framework层RIL Command Interface |
5 | Android电话系统之GSMCallTracker blog.csdn/maxleng/article/details/5593780 | GSM Call Tracker Call管理 |
6 | Android RIL结构分析与移植 wenku.baidu/view/2ed3105abe23482fb4da4c09.html | 介绍了RILD的Event机制、初始化流程,以及Request、Response流程分析, |
7 | Android Radio Layer Interface www.slideshare/ssusere3af56/android-radio-layer-interface | 比较详细的介绍了RILD;包括架构,各个子模块的功能和实现细节,以及数据处理流程,值得仔细阅读 |
2.2代码
重点看RILD和RIL LIB,了解一下Reference-ril,其他模块在看流程时可以参考一下
编号 | 名称 | 描述 |
1 | Rild Rild mian函数 | hardware\ril\rild |
2 | RIL Library RIL抽象层 | hardware\ril\libril |
3 | reference-ril 基于AT命令的Vendor-spec实现 | hardware\ril\reference-ril |
4 | RIL JAVA Framework层Command Interface,Framework通过RIL JAVA与RILD通信 | frameworks\base\telephony\java\com\android\internal\telephony\RIL.java |
5 | GSM Phone相关实现代码 | frameworks\base\telephony\java\com\android\internal\telephony\gsm |
6 | CDMA Phone相关实现代码 | frameworks\base\telephony\java\com\android\internal\telephony\cdma |
7 | Phone APP Phone服务运行在该APP Call处理也在该APP | packages\apps\Phone |
8 | MMS和SMS APP | packages\apps\Mms |
9 | STK APP | packages\apps\Stk |
3QCRIL
3.1文档
该部分为Qualcomm Vendor-spec RIL实现,与Reference-ril完全不同,比传统的AT命令方式更难理解,代码中有两套RIL:qcril_fusion和qcril_qmi,目前大部分平台都是使用qcril_fusion,但是后面会逐步过渡到qcril_qmi。Qcril_fusion实现方式大部分功能通过ONCRPC,只有Data Service和UIM使用QMI。建议仔细阅读《高通平台RIL简介.pdf》这篇文章,写的比较详细。在涉linux系统安装步骤csdn及到相关流程时,请参考一下AMSS对应模块文档中的Call Flow,这样更容易理解。另外我们只需要看QCRIL的代码,ONCRPC的代码不需要看。
编号 | 名称 | 描述 |
1 | 80-VM248-1_C_Android_QCRIL_Overview | QCRIL Overview,目前使用较多的为该架构 |
2 | 80-N2442-1_C_Linux_Android_QCRIL_QMI | 基于QMI方式的QCRIL,暂时不用看 |
3 | 高通平台RIL简介.pdf | TS内部总结文档,比较详细,建议以此为重点学习QCRIL |
4 | 80-VG802-1_E_MSM7xxx_QSD8xxx_QSTxxxx_Linux_ONCRPC | ONCRPC介绍,QCRIL Fusion使用ONCRPC调用Modem侧的CM、WMS等服务 |
5 | 80-V3568-1_J_Multimode_CM_Overview.pdf | Call Manager Overview |
6 | 80-N2269-1_C_Dual_SIM_Dual_Standby_Overview | 双卡双待Overview |
3.2代码
重点看qcril_fusion,qcril_qmi先不看
编号 | 名称 | 描述 |
1 | Qcril fusion | vendor\qcom\proprietary\qcril\qcril_fusion |
2 | Qcril_qmi | vendor\qcom\proprietary\qcril\qcril_qmi |
3 | UIM | vendor\qcom\proprietary\qcril\common\uim |
4 | Data | vendor\qcom\proprietary\qcril\common\data |
4QMI
4.1文档
先了解一下QMI架构,包括Mux、Ctrl、Service等,然后看一下目前使用的QMI Service(WDS、UIM、QoS、NAS)模块介绍。qmi_linux_application_note这篇文章介绍了Linux端的QMI具体实现细节,以及数据处理流程。
编号 | 名称 | 描述 |
1 | 80-VR459-1_C_QMI_Framework_Overview.pdf | QMI Framework Overview 介绍QMI Framework的PPT |
2 | 80-VB816-1_A_QMI_Architecture.pdf | QMI架构介绍 |
3 | 80-VB816-3_E_QMI_Control_Service_QMI_CTL.pdf | QMI CTRL SPEC 详细的接口定义 |
4 | 80-VB816-9_E_QMI_Wireless_Message_Service.pdf | QMI Wireless Message Service SMS和CB详细接口定义 |
5 | 80-VB816-13_A_QMI_for_WMS.pdf | QMI SMS PPT |
6 | 80-VB816-10_F_QMI_Voice_Service.pdf | QMI Voice(CALL、USSD、SS)接口Spec |
7 | 80-VB816-15_E_QMI_PBM.pdf | QMI PBM接口Spec |
8 | qmi_linux_application_note | TS内部文档 |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论