Android7用の4Gモジュールドライバーの移植

この記事では、Android 7.1バージョン、Sim7600CEモジュール、A7600C1モジュールドライバーの移行プロセス、およびアプリケーションのテストレコードを記録します。
カーネルバージョン:linux-4.15。

簡単な説明:
このドライバー移行の基本はAndroid 3Gインターネットフレームワークに基づいており、対応するプロセスはすべてAndroid標準です。フレームワークに含まれるモジュールは次のとおりです
。hardware/ ril / ril-rk29-dataonly:AndroidRILワイヤレス通信ライブラリ
external / ppp / chat:pppダイヤルツール
external / ppp / pppd:pppdダイヤルデーモンスレッド
system / vold:
voldAndroidシステムrilサービスcommon / phone / etc / usb_modeswitch.d:オープンソースusb_modeswitchモード切り替えツール。

モジュールの移植:
最初のステップ:Linuxカーネルドライバーはこれら2つのモジュールをサポートします。特定の構成については、Linux移植パート4G / 5Gモジュールドライバーの移植に関する記事を参照してください
。2番目のステップ:vendor / rockchip / common / phone / etc/usb_modeswitch。d /ファイルの下にPID / VID情報を追加して、usb_modeswitchがME909SデバイスをUSBシリアルデバイスに切り替えることができるようにします。ファイル名:12d1_15c1は次のとおりです。

DefaultVendor=  0x12d1
DefaultProduct= 0x15c1
TargetClass=    0xff
MessageContent="55534243123456780000000000000011060000000000000000000000000000"
CheckSuccess=20

ステップ3:device / rockchip / common / BoardConfig.mkファイルで、3Gモジュール機能をサポートするようにAndroidシステムを構成します。
構成内容は以下のとおりです。

#for rk 4g modem
BOARD_HAVE_4G_EC20 := false
BOARD_HAS_RK_4G_MODEM ?= false

#enable 3g dongle  打开 3G dongle
BOARD_HAVE_DONGLE ?= true

手順4:次のように、device / rockchip / rk3288 / device.mkファイルを変更して、ソリューションプロバイダーにコンテンツを追加します。

#BOARD_HAVE_4G_EC20 := true  关闭此选项
ifeq ($(strip $(BOARD_HAVE_DONGLE)), true)
  PRODUCT_COPY_FILES += device/rockchip/rk3288/4G/apns-conf.xml:system/etc/apns-conf.xml

  ifeq ($(strip $(BOARD_HAVE_4G_EC20)), true)
    $(call inherit-product-if-exists, device/rockchip/rk3288/4G/EC20/ec20.mk)
  endif
endif

ステップ5device / rockchip / common /system.propの次のコンテンツを変更します

#修改此2条内容如下
rild.libpath=/system/lib/libreference-ril.so
rild.libargs=-d /dev/ttyUSB0
# Default ecclist
ro.ril.ecclist=112,911
ro.opengles.version = 131072
wifi.interface=wlan0
#关闭此2条内容
#rild.libpath=/system/lib/libril-rk29-dataonly.so
#rild.libargs=-d /dev/ttyACM0
persist.tegra.nvmmlite = 1
ro.audio.monitorOrientation=true

6番目のステップは、SELinuxに関連する構成ファイルを変更し、external / sepolicy / file_contextsに次のコードを追加することです。

    /dev/ttyUSB[0-9]* u:object_r:tty_device:s0
    /system/bin/rild u:object_r:rild_exec:s0
    /system/socket/rild u:object_r:rild_socket:s0
    /system/socket/rild-debug u:object_r:rild_debug_socket:s0
    /system/bin/pppd u:object_r:pppd_exec:s0
    /dev/ppp u:object_r:ppp_device:s0

実験試験記録は以下のとおりです。

継続する検証プロセス...

おすすめ

転載: blog.csdn.net/weixin_38387929/article/details/112462461