另外,移远提供的libril.so 要覆盖掉Android自带的libril.so.
/vendor/lib64/libril.so 要换成移远提供的。
不是librk-ril.so
移远提供的两个RIL库都要替换。
还有其他方式可以指定使用移远的库吗
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的图标
你好,我们刚才换成另外一个模块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.