From 1734e09220af6a3418f932ab2d027e48b79772e2 Mon Sep 17 00:00:00 2001 From: dianlujitao Date: Mon, 4 Nov 2019 08:26:09 +0100 Subject: [PATCH] sdm660-common: Add init rc and data adpl for self-contained data modules --- proprietary/vendor/bin/adpl | Bin 0 -> 91368 bytes proprietary/vendor/etc/init/dataadpl.rc | 13 +++++ proprietary/vendor/etc/init/dataqti.rc | 19 ++++++++ proprietary/vendor/etc/init/netmgrd.rc | 54 +++++++++++++++++++++ proprietary/vendor/etc/init/port-bridge.rc | 20 ++++++++ sdm660-common-vendor.mk | 5 ++ 6 files changed, 111 insertions(+) create mode 100755 proprietary/vendor/bin/adpl create mode 100644 proprietary/vendor/etc/init/dataadpl.rc create mode 100644 proprietary/vendor/etc/init/dataqti.rc create mode 100644 proprietary/vendor/etc/init/netmgrd.rc create mode 100644 proprietary/vendor/etc/init/port-bridge.rc diff --git a/proprietary/vendor/bin/adpl b/proprietary/vendor/bin/adpl new file mode 100755 index 0000000000000000000000000000000000000000..f49eb88fa0c8d0ac5cdbc4ceec0fb29849f4a6b7 GIT binary patch literal 91368 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 WRSC+bGGyN}%qVS%1ILlp*8LYv9jOig literal 0 HcmV?d00001 diff --git a/proprietary/vendor/etc/init/dataadpl.rc b/proprietary/vendor/etc/init/dataadpl.rc new file mode 100644 index 0000000..24152a1 --- /dev/null +++ b/proprietary/vendor/etc/init/dataadpl.rc @@ -0,0 +1,13 @@ +# Copyright (c) 2019 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. + +# Create the directories used by DPM subsystem + +#start dataadpl service +service vendor.dataadpl /system/vendor/bin/adpl + class main + user radio + socket adpl_cmd_uds_file dgram 660 radio radio + group radio oem_2901 diag usb inet + disabled \ No newline at end of file diff --git a/proprietary/vendor/etc/init/dataqti.rc b/proprietary/vendor/etc/init/dataqti.rc new file mode 100644 index 0000000..4c682b6 --- /dev/null +++ b/proprietary/vendor/etc/init/dataqti.rc @@ -0,0 +1,19 @@ +# Copyright (c) 2019 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. + +# Create the directories used by DPM subsystem + +# msm specific files that need to be created on /data +on post-fs-data + #Create DATAQTI dir for logs + mkdir /data/vendor/dataqti 0770 radio radio + chmod 0770 /data/vendor/dataqti + +#start dataqti service +service vendor.dataqti /system/vendor/bin/qti + class main + user radio + socket qti_dpm_uds_file dgram 660 radio radio + group radio oem_2901 diag usb inet + disabled diff --git a/proprietary/vendor/etc/init/netmgrd.rc b/proprietary/vendor/etc/init/netmgrd.rc new file mode 100644 index 0000000..1a6fc95 --- /dev/null +++ b/proprietary/vendor/etc/init/netmgrd.rc @@ -0,0 +1,54 @@ +# Copyright (c) 2019 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +# + +on boot + #Create NETMGR daemon socket area + mkdir /dev/socket/netmgr 0750 radio radio + + # Create netmgr recovery folder + mkdir /data/vendor/netmgr/recovery 0700 radio radio + chmod 0770 /data/vendor/netmgr/recovery + write /data/vendor/netmgr/recovery/recovery_info "" + chown radio radio /data/vendor/netmgr/recovery/recovery_info + + #Assign TCP buffer thresholds to be ceiling value of technology maximums + #Increased technology maximums should be reflected here. + write /proc/sys/net/core/rmem_max 16777216 + write /proc/sys/net/core/wmem_max 8388608 + +# msm specific files that need to be created on /data +on post-fs-data + #Create NETMGR daemon log dir + mkdir /data/vendor/netmgr 0770 radio radio + chmod 0770 /data/vendor/netmgr + +# Manage netmgrd based on value of property +on property:persist.vendor.data.mode=disabled + stop vendor.netmgrd + +service vendor.netmgrd /system/vendor/bin/netmgrd + class main + +on property:ro.vendor.use_data_netmgrd=false + # netmgr not supported on specific target + stop vendor.netmgrd + +on property:persist.vendor.data.shs_ko_load=1 + exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules rmnet_shs + +on property:persist.vendor.data.shs_ko_load=0 + exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -r -d /vendor/lib/modules rmnet_shs + +on property:persist.vendor.data.perf_ko_load=3 + exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -d /vendor/lib/modules rmnet_perf rmnet_perf_ingress_deag=N + +on property:persist.vendor.data.perf_ko_load=2 + exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -d /vendor/lib/modules rmnet_perf rmnet_perf_opt_mode="udp" + +on property:persist.vendor.data.perf_ko_load=1 + exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules rmnet_perf + +on property:persist.vendor.data.perf_ko_load=0 + exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -r -d /vendor/lib/modules rmnet_perf diff --git a/proprietary/vendor/etc/init/port-bridge.rc b/proprietary/vendor/etc/init/port-bridge.rc new file mode 100644 index 0000000..a22e40a --- /dev/null +++ b/proprietary/vendor/etc/init/port-bridge.rc @@ -0,0 +1,20 @@ +# Copyright (c) 2019 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +# + +on boot + #Create PORT-BRIDGE daemon socket area + mkdir /dev/socket/port-bridge 0750 radio radio + +# msm specific files that need to be created on /data +on post-fs-data + #Create port-bridge log dir + mkdir /data/vendor/port_bridge 0770 radio radio + chmod 0770 /data/vendor/port_bridge + +service vendor.port-bridge /system/vendor/bin/port-bridge + class main + user radio + group radio system inet + oneshot diff --git a/sdm660-common-vendor.mk b/sdm660-common-vendor.mk index 3722d4a..45750d1 100644 --- a/sdm660-common-vendor.mk +++ b/sdm660-common-vendor.mk @@ -127,6 +127,7 @@ PRODUCT_COPY_FILES += \ vendor/xiaomi/sdm660-common/proprietary/product/lib64/vendor.qti.imsrtpservice@2.0.so:$(TARGET_COPY_OUT_PRODUCT)/lib64/vendor.qti.imsrtpservice@2.0.so \ vendor/xiaomi/sdm660-common/proprietary/product/lib64/vendor.qti.imsrtpservice@2.1.so:$(TARGET_COPY_OUT_PRODUCT)/lib64/vendor.qti.imsrtpservice@2.1.so \ vendor/xiaomi/sdm660-common/proprietary/vendor/bin/ATFWD-daemon:$(TARGET_COPY_OUT_VENDOR)/bin/ATFWD-daemon \ + vendor/xiaomi/sdm660-common/proprietary/vendor/bin/adpl:$(TARGET_COPY_OUT_VENDOR)/bin/adpl \ vendor/xiaomi/sdm660-common/proprietary/vendor/bin/adsprpcd:$(TARGET_COPY_OUT_VENDOR)/bin/adsprpcd \ vendor/xiaomi/sdm660-common/proprietary/vendor/bin/cnd:$(TARGET_COPY_OUT_VENDOR)/bin/cnd \ vendor/xiaomi/sdm660-common/proprietary/vendor/bin/cnss-daemon:$(TARGET_COPY_OUT_VENDOR)/bin/cnss-daemon \ @@ -206,11 +207,15 @@ PRODUCT_COPY_FILES += \ vendor/xiaomi/sdm660-common/proprietary/vendor/etc/init/android.hardware.drm@1.2-service.widevine.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/android.hardware.drm@1.2-service.widevine.rc \ vendor/xiaomi/sdm660-common/proprietary/vendor/etc/init/cnd.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/cnd.rc \ vendor/xiaomi/sdm660-common/proprietary/vendor/etc/init/com.qualcomm.qti.wifidisplayhal@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/com.qualcomm.qti.wifidisplayhal@1.0-service.rc \ + vendor/xiaomi/sdm660-common/proprietary/vendor/etc/init/dataadpl.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/dataadpl.rc \ + vendor/xiaomi/sdm660-common/proprietary/vendor/etc/init/dataqti.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/dataqti.rc \ vendor/xiaomi/sdm660-common/proprietary/vendor/etc/init/dpmQmiMgr.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/dpmQmiMgr.rc \ vendor/xiaomi/sdm660-common/proprietary/vendor/etc/init/ims_rtp_daemon.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/ims_rtp_daemon.rc \ vendor/xiaomi/sdm660-common/proprietary/vendor/etc/init/imsdatadaemon.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/imsdatadaemon.rc \ vendor/xiaomi/sdm660-common/proprietary/vendor/etc/init/imsqmidaemon.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/imsqmidaemon.rc \ vendor/xiaomi/sdm660-common/proprietary/vendor/etc/init/imsrcsd.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/imsrcsd.rc \ + vendor/xiaomi/sdm660-common/proprietary/vendor/etc/init/netmgrd.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/netmgrd.rc \ + vendor/xiaomi/sdm660-common/proprietary/vendor/etc/init/port-bridge.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/port-bridge.rc \ vendor/xiaomi/sdm660-common/proprietary/vendor/etc/init/qcrild.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/qcrild.rc \ vendor/xiaomi/sdm660-common/proprietary/vendor/etc/init/vendor.display.color@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.display.color@1.0-service.rc \ vendor/xiaomi/sdm660-common/proprietary/vendor/etc/init/vendor.qti.esepowermanager@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.esepowermanager@1.0-service.rc \