学习笔记:【QC】Android Q qmi扩展nvReadItem/nvWriteItem

一、qmi初始化 流程图

初始化流程:

1、主入口:

vendor/qcom/proprietary/qcril-hal/qcrild/qcrild/rild.c

cpp 复制代码
int main(int argc, char **argv) {
const RIL_RadioFunctions *(*rilInit)(const struct RIL_Env *, int, char **);
rilInit = RIL_Init;
funcs = rilInit(&s_rilEnv, argc, rilArgv);
RIL_register(funcs);
}

2、其中RIL_Init的实现在:

vendor/qcom/proprietary/qcril-hal/modules/android/src/ril_api.cpp

在ril_api.cpp中还定义qcril_request_api:

cpp 复制代码
static const RIL_RadioFunctions qcril_request_api[] = {
{ QCRIL_RIL_VERSION, onRequest, currentState_rid, 
onSupports_rid, onCancel_rid, getVersion_rid }};
static RIL_Env *qcril_response_api[QCRIL_MAX_INSTANCE_ID];

3、最终,注册到IRadio:
s_vendorFunctions = callbacks;

这边callbacks实际上就是:
funcs:ril_api.cpp的qcril_request_api[]

这样就可以和Ril.java通信:
#define CALL_ONREQUEST(a, b, c, d, e)
s_vendorFunctions->onRequest((a), (b), (c), (d))

详细流程图:【高清图,保存后可以放大看】

二、nvReadItem/nvWriteItem 流程图

详细流程图:【高清图,保存后可以放大看】

相关推荐
('-')2 小时前
《从根上理解MySQL是怎样运行的》第十章学习笔记
笔记·学习·mysql
hd51cc2 小时前
MFC学习笔记 对话框
笔记·学习·mfc
卡提西亚2 小时前
数据库笔记-4-SQL语言之DCL
数据库·笔记·sql
s***11702 小时前
Mysql convert函数、convert用法、字符串转数字、字符串转日期、类型转换函数
android·数据库·mysql
Radan小哥2 小时前
Docker学习笔记—day0010
笔记·学习·docker
im_AMBER2 小时前
Canvas架构手记 05 鼠标事件监听 | 原生事件封装 | ctx 结构化对象
前端·笔记·学习·架构
老神在在0012 小时前
Mybatis01
后端·学习·spring·java-ee·mybatis
Y***89082 小时前
Neo4j图数据库学习(二)——SpringBoot整合Neo4j
数据库·学习·neo4j
理人综艺好会2 小时前
MySQL学习之go-mysql
学习·mysql·golang
想要成为计算机高手3 小时前
π*0.6: 从实践中学习 -- 2025.11.17 -- Physical Intelligence (π) -- 未开源
人工智能·学习·机器人·多模态·具身智能·vla