本文以rk3588 android13平台调试移远EC20模块所遇到的问题做出记录。
Soc: rk3588
Os: android13
1.sdk支持4g modem功能
打开device/rockchip/common下BoardConfig.mk
BOARD_HAS_RK_4G_MODEM ?=true
2.修改ro.boot.noril为false
因为vendor/rockchip/common/phone/phone.mk和device/rockchip/common/modules/4g_modem.mk都有定义
将ro.boot.noril属性修改为false
3.修改dhcpcd和rk所支持的librk-ril.so
device/rockchip/common/4g_modem路径下存放4g模块相关的ril库
但是拿到sdk中device/rockchip/common/modules/4g_modem.mk定义了dhcpcd和librk-ril.so的拷贝
因为我们拿到的是EC20模块所以将rk提供的ril库注释掉,改动如下所示:
--- a/modules/4g_modem.mk
+++ b/modules/4g_modem.mk
@@ -17,15 +17,29 @@
PRODUCT_PACKAGES += \
CarrierDefaultApp \
CarrierConfig \
+ TelephonyProvider \
+ TeleService \
+ Telecom \
rild \
- librk-ril \
dhcpcd
ifeq ($(strip $(TARGET_ARCH)), arm64)
-PRODUCT_PROPERTY_OVERRIDES += \
+#PRODUCT_PROPERTY_OVERRIDES += \
vendor.rild.libpath=/vendor/lib64/librk-ril.so
PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/4g_modem/bin64/dhcpcd:$(TARGET_COPY_OUT_VENDOR)/bin/dhcpcd \
- $(LOCAL_PATH)/4g_modem/lib64/librk-ril.so:$(TARGET_COPY_OUT_VENDOR)/lib64/librk-ril.so
+ $(LOCAL_PATH)/../4g_modem/bin64/dhcpcd:$(TARGET_COPY_OUT_VENDOR)/bin/dhcpcd \
+ #$(LOCAL_PATH)/../4g_modem/lib64/libril.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libril.so
else
-PRODUCT_PROPERTY_OVERRIDES += \
+#PRODUCT_PROPERTY_OVERRIDES += \
vendor.rild.libpath=/vendor/lib/librk-ril.so
PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/4g_modem/bin32/dhcpcd:$(TARGET_COPY_OUT_VENDOR)/bin/dhcpcd \
- $(LOCAL_PATH)/4g_modem/lib32/librk-ril.so:$(TARGET_COPY_OUT_VENDOR)/lib/librk-ril.so
+ $(LOCAL_PATH)/../4g_modem/bin32/dhcpcd:$(TARGET_COPY_OUT_VENDOR)/bin/dhcpcd \
+ #$(LOCAL_PATH)/../4g_modem/lib32/libril.so:$(TARGET_COPY_OUT_VENDOR)/lib/libril.so
4.增加EC20模块lib库并编译进系统
我们拿到移远所提供的ril库等文件之后,可以在device/rockchip/rk3588/rk3588_box下面的.mk文件做以下修改:
如rk3588_box.mk
+BOARD_HAVE_VENDOR_RIL := true
+#$(warning zhuhua BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES : $(BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES))
+PRODUCT_COPY_FILES += \
+