首先,要先获得技术支持
步骤一,先在USB模块上完成4G
步骤二,移植到PCIE座子上
磨刀不费砍材功,请先拿到技术文档支持,我的参考是:Quectel_Android_RIL_Driver_V3.3.62_master_beta(支持EC200A).tgz
主要文件:Quectel_Android_RIL_Driver_V3.3.62_master_beta(支持EC200A)\libquectel-ril\arm64-v8a\libreference-ril.so
主要文档:Quectel_Android_RIL_Driver_User_Guide_V2.0.pdf
//##//##//##//##//##//##//##//##//##//##//##//##//##//##//##//##//##//##//##//##//##
系统部分:
1.添加rild库(\libquectel-ril\arm64-v8a\libreference-ril.so)
改名成:librk-ril.so
预制到:\device\rockchip\common\4g_modem\lib64\librk-ril.so
代码要清理重新编译,有遇到没有更新库的情况,更新后大编才可以
2.更新已下文件
\vendor\rockchip\common\phone\bin\chat
\vendor\rockchip\common\phone\etc\ppp\ip-down
\vendor\rockchip\common\phone\etc\ppp\ip-up
\vendor\rockchip\common\phone\etc\ql-ril.conf
\vendor\rockchip\common\phone\lib\libreference-ril-ec20.so
3.关闭SELINUX
\device\rockchip\common\BoardConfig.mk
-BOARD_SELINUX_ENFORCING ?= true
+BOARD_SELINUX_ENFORCING ?= false
如果卡在android动画,建议看一下降频篇
4.打开BOARD_HAS_RK_4G_MODEM
#enable 3g dongle
BOARD_HAVE_DONGLE ?= false
ifeq ($(BOARD_HAVE_DONGLE),true)
PRODUCT_PACKAGES += \
[email protected] \
[email protected]
PRODUCT_PACKAGES += \
rild \
com.android.phone.common
endif
#for rk 4g modem
BOARD_HAS_RK_4G_MODEM ?= false
+BOARD_HAS_RK_4G_MODEM ?= true
ifeq ($(strip $(BOARD_HAS_RK_4G_MODEM)),true)
DEVICE_MANIFEST_FILE += device/rockchip/common/4g_modem/manifest.xml
endif
5.去掉property:ro.boot.noril
如果存在电话这一项,就执行下面的内容
设置setprop ro.radio.noril 为true
暂停ril-daemon服务
- a/device/rockchip/common/init.rk30board.rc
+ b/device/rockchip/common/init.rk30board.rc
@@ -238,7 +238,7 @@ on property:sys.boot_completed=1
# for telephony function
-on property:ro.boot.noril=true
- setprop ro.radio.noril true
- stop ril-daemon
+#on property:ro.boot.noril=true
+# setprop ro.radio.noril true
+# stop ril-daemon
6.修改\manifest.xml
\device\rockchip\common\4g_modem\manifest.xml
android.hardware.radio
hwbinder
@1.1::IRadio/slot1
@1.1::IRadio/slot2
@1.2::ISap/slot1
@1.4::IRadio/slot1
android.hardware.radio.deprecated
hwbinder
1.0
IOemHook
slot1
android.hardware.radio
hwbinder
1.0
IRadio
slot1
\device\rockchip\common\manifest.xml
+
+ android.hardware.radio
+ hwbinder
+ @1.1::IRadio/slot1
+ @1.1::IRadio/slot2
+ @1.2::ISap/slot1
+
7.添加APN
\vendor\rockchip\common\phone\etc\apns-full-conf.xml
+
+
+
+
+
+
8.4G上网正常,但状态栏中没有4G图标(完全没有图标)
device\rockchip\rk356x\overlay\frameworks\base\core\res\res\value\config.xml
- "wifi,1,1,2,-1,true"
+ - "mobile,0,0,0,-1,true"
+ - "mobile_mms,2,0,2,60000,true"
+ - "mobile_supl,3,0,2,60000,true"
+ - "mobile_dun,4,0,2,60000,true"
+ - "mobile_hipri,5,0,3,60000,true"
+ - "mobile_fota,10,0,2,60000,true"
+ - "mobile_ims,11,0,2,60000,true"
+ - "mobile_cbs,12,0,2,60000,true"
- "bluetooth,7,7,0,-1,true"
- "ethernet,9,9,9,-1,true"
9.打开权限在device\rockchip\common\ueventd.rockchip.rc中增加
\device\rockchip\common\ueventd.rockchip.rc
# for radio
/dev/ttyUSB* 0666 radio radio
#for uart
/dev/ttyS3 0777 root system
/dev/ttyS4 0777 root system
/dev/ttyS5 0777 root system
/dev/ttyS6 0777 root system
/dev/ttyS9 0777 root system
/dev/ttyS8 0777 root system
/dev/ttyS9 0777 root system
#for cdc-wdm0
/dev/cdc-wdm* 0660 radio radio
#for qcqmi0
/dev/qcqmi* 0660 radio radio
/dev/cdc-acm* 0660 radio radio
/dev/ttyACM* 0660 radio radio
#PCIe
/dev/mhi_DUN 0660 radio radio
/dev/mhi_DIAG 0660 radio radio
/dev/mhi_BHI 0660 radio radio
/dev/mhi_LOOPBACK 0660 radio radio
/dev/mhi_QMI0 0660 radio radio
10.添加cdc-wdm0节点
system\core\init\devices.cpp
// Minors are broken up into groups of 128, starting at "001"
int bus_id = uevent.minor / 128 + 1;
int device_id = uevent.minor % 128 + 1;
devpath = StringPrintf("/dev/bus/usb/%03d/%03d", bus_id, device_id);
}
+#if 1 //add by quectel for mknod /dev/cdc-wdmo
+ } else if (uevent.subsystem == "usbmisc" && !uevent.device_name.empty()) {
+ devpath = "/dev/" + uevent.device_name;
+#endif
} else if (StartsWith(uevent.subsystem, "usb")) {
// ignore other USB events
11.应该实际上是使用的下面这个: //这个本来就有的
device\rockchip\common\device.mk
ifeq ($(strip $(TARGET_ARCH)), arm64)
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
else
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
endif
12更新加载文件点
\vendor\rockchip\common\phone\phone.mk
CUR_PATH := vendor/rockchip/common
#########################################################
# 3G Dongle SUPPORT
#########################################################
#PRODUCT_COPY_FILES += \
# $(CUR_PATH)/phone/etc/ppp/ip-down:system/etc/ppp/ip-down \
# $(CUR_PATH)/phone/etc/ppp/ip-up:system/etc/ppp/ip-up \
# $(CUR_PATH)/phone/etc/ppp/call-pppd:system/etc/ppp/call-pppd \
# $(CUR_PATH)/phone/etc/operator_table:system/etc/operator_table
PRODUCT_COPY_FILES += \
+ $(CUR_PATH)/phone/etc/ppp/ip-down:system/etc/ppp/ip-down \
+ $(CUR_PATH)/phone/etc/ppp/ip-up:system/etc/ppp/ip-up \
+ $(CUR_PATH)/phone/bin/chat:system/bin/chat \
+ $(CUR_PATH)/phone/lib/libreference-ril-ec20.so:vendor/lib64/libreference-ril-ec20.so \
+ $(CUR_PATH)/phone/etc/ppp/ql-ril.conf:system/etc/ql-ril.conf \
+ $(CUR_PATH)/etc/spn-conf.xml:system/etc/spn-conf.xml
ifeq ($(strip $(BOARD_HAVE_DONGLE)),true)
PRODUCT_PACKAGES += \
rild \
libril-rk29-dataonly \
usb_dongle \
usb_modeswitch \
chat
PRODUCT_PROPERTY_OVERRIDES +=ro.boot.noril=false
else
PRODUCT_PROPERTY_OVERRIDES +=ro.boot.noril=true
endif
PRODUCT_PROPERTY_OVERRIDES += \
keyguard.no_require_sim=true \
ro.com.android.dataroaming=true \
ril.function.dataonly=1
.13.修改ril-daemon
- /hardware/ril/rild/rild.rc
+ /hardware/ril/rild/rild.rc
@@ -1,5 +1,5 @@
-service vendor.ril-daemon /vendor/bin/hw/rild
+service ril-daemon /vendor/bin/hw/rild -l /vendor/lib64/libreference-ril-ec20.so
class main
- user radio
- group radio cache inet misc audio log readproc wakelock
- capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW
+ user root
+ group radio cache inet misc audio sdcard_rw log
+ capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW
14.指定使用的库,这里没有配,因为前面device.mk已经指定
- a/device/rockchip/rk356x/device.mk
+ b/device/rockchip/rk356x/device.mk
@@ -77,6 +77,9 @@ PRODUCT_PROPERTY_OVERRIDES += \
ro.ril.ecclist=112,911 \
ro.opengles.version=196610 \
wifi.interface=wlan0 \
ro.audio.monitorOrientation=true \
debug.nfc.fw_download=false \
debug.nfc.se=false \
+# ro.telephony.default_network=9 \
+# rild.libpath=/vendor/lib64/libquectel-ril-ec200t.so \
+# rild.libargs=-d /dev/ttyUSB2 \