求android12 rockchip平台的EM05-CN和RM520N-GL的相关库、驱动和移植文档

另外,移远提供的libril.so 要覆盖掉Android自带的libril.so.

这个我有替换

可以在源码里这样删掉吗,如下我去掉这两个依赖

/vendor/lib64/libril.so 要换成移远提供的。
不是librk-ril.so
移远提供的两个RIL库都要替换。

如果使用IRadio 1.4 及以上,移远要求客户需要同时使用这两个库。

还有其他方式可以指定使用移远的库吗

libril.so和libreference-ril.so这两个库,我在源码里直接使用PRODUCT_COPY_FILES去替换,如果直接使用 ”xxx:vendor/lib64/libril.so“ 和 ”xxx:vendor/lib64/libreference.so“这种名称,编译会报错,提示有冲突,但是这系统原本两个库我没有找到是在哪个路径生成的,也没有找到对应的命令,必须得命名成其他名字如“xxx:vendor/lib64/libreference-ril-em05.so”。

打开这个应该就可以使用PRODUCT_COPY_FILES 拷贝了。

BUILD_BROKEN_DUP_RULES := true

这两个库。
libril.so 这个库按理说应该是高通实现的,但是高通只实现了IRadio 1.1。 移远为了适配自己的蜂窝模组,实现了IRadio 1.4 -1.6 的版本,甚至还有支持AIDL的版本,尤其是5G模组,使用Android自带的libirl.so 无法使用。这个源码是hardware/ril/libril/ , 你会遇到覆盖报错,一般我们都建议自行解决。在rockchip 的板子上,我试过打开BUILD_BROKEN_DUP_RULES := true 后就可以解决了。
libreference-ril.so 这个是各个模组厂家自己的vendor-RIL, 会调用各个模组自己的AT指令和对应的SMS、Voice、数据拨号方法。
vendor/lib64/libril.so 一般是个固定的名字(除非从移远得到客制化的libreference-ril.so和rild);
liberence-ril.so 的源码本该是 hardware/ril/reference-ril/, 但是这个自带的libreference-ril.so 一般用不到的。如何调用到这个库,一般是 启动rild 的时候加上 -l 可以链接到,或者通过rild 的一些参数传递进去。

非常感谢大佬的鼎力支持,谢谢!!

好像可以了! 不用替换系统原本那两个库,直接使用-l 指定移远的libreference-ril.so,名字可以改成libreference-ril-em05.so


andoid的UI界面也有显示4G的图标

好像还是不行哦,我加了这个参数了


以下是我使用PRODUCT_COPY_FILES的地方

你好,我们刚才换成另外一个模块rm520n-gl,这个是5G模组,也插了5G的卡,但是出来的只有4G,请问需要改什么东西吗?

getprop | grep network
查询下

这个 ro.telephony.default_network 是9 就是最高只能支持到LTE。这个值要改成33(在源码里改, readonly 属性)。

这个问题你可以自行研究下。请在设备的BoardConfig.mk 里也添加下测试。这种可以找rk那边问。

我还有一个非常笨的方法。
rild 提前编译出来,用PRODUCT_COPY_FILES 将rild 也拷贝进去。同时删掉或者注释掉 hardware/ril/libril/.

大佬,请教个问题,我们用的rm520n-gl模组是支持双卡的,android系统层该怎么修改适配

可以,5G出来了,感谢感谢!

十分抱歉。这个模组虽然支持双卡,但是其实是双卡单待的,如果要切换到另外一张SIM,需要用AT切换的。
所以如果只接了一个模组,就只算SSSS方案,而不是DSDS方案。DSDS方案需要接两个RM520N.