[Feature][task-view-725]auto start rndis mode after booting in L805A

Only Configure: Yes
Affected branch: MR3.0-Merge-v3.0-DSDS
Affected module: Rndis
Is it affected on both ZXIC and MTK: MTK
Self-test: yes
Doc Update: no

Change-Id: Id9999463b7f71e09ff8fb06705791cfdff431d83
diff --git a/env.sh b/env.sh
index a0f06c1..9e3fb2d 100755
--- a/env.sh
+++ b/env.sh
@@ -45,7 +45,7 @@
 eval sed -i 's/^.*CORE_NUM.*$/"${LYNQ_CPU_NUM}"/' $(pwd)/meta/meta-mediatek-mt2735/conf/machine/auto2735evb-ivt-base.conf
 eval sed -i 's/^.*CORE_NUM.*$/"${LYNQ_CPU_NUM}"/' $(pwd)/meta-sdk/meta/meta-lynqSDK-T800/conf/machine/auto2735evb-ivt-base.conf
 
-source $(pwd)/update_version.sh
+source $(pwd)/update_version.sh rndis
 export TEMPLATECONF=${PWD}/meta/meta-mediatek-mt2735/conf/base/auto2735evb-ivt-main
 source meta/poky/oe-init-build-env
 
diff --git a/env_2core.sh b/env_2core.sh
index e514c84..030b422 100644
--- a/env_2core.sh
+++ b/env_2core.sh
@@ -4,6 +4,6 @@
 eval sed -i 's/^.*CORE_NUM.*$/"${LYNQ_CPU_NUM}"/' $(pwd)/meta/meta-mediatek-mt2735/conf/machine/auto2735evb-ivt-base.conf
 eval sed -i 's/^.*CORE_NUM.*$/"${LYNQ_CPU_NUM}"/' $(pwd)/meta-sdk/meta/meta-lynqSDK-T800/conf/machine/auto2735evb-ivt-base.conf
 
-source $(pwd)/update_version.sh
+source $(pwd)/update_version.sh rndis
 export TEMPLATECONF=${PWD}/meta/meta-mediatek-mt2735/conf/base/auto2735evb-ivt-main
 source meta/poky/oe-init-build-env
diff --git a/meta/meta-mediatek-mt2735/recipes-core/initial/files/init_rndis b/meta/meta-mediatek-mt2735/recipes-core/initial/files/init_rndis
new file mode 100755
index 0000000..edd735d
--- /dev/null
+++ b/meta/meta-mediatek-mt2735/recipes-core/initial/files/init_rndis
@@ -0,0 +1,20 @@
+#!/bin/busybox sh
+
+if [ "$1" == "start" ]; then
+	while true
+	do
+		connmanctl technologies | grep gadget
+		if [ $? -ne 0 ]; then
+			sleep 1
+			continue
+		else
+			break
+		fi
+	done
+	
+	connmanctl enable gadget
+	connmanctl tether gadget on
+elif [ "$1" == "stop" ];then
+	connmanctl tether gadget off
+fi
+
diff --git a/meta/meta-mediatek-mt2735/recipes-core/initial/files/init_rndis.service b/meta/meta-mediatek-mt2735/recipes-core/initial/files/init_rndis.service
new file mode 100755
index 0000000..dfa1ad5
--- /dev/null
+++ b/meta/meta-mediatek-mt2735/recipes-core/initial/files/init_rndis.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Rndis Configuration
+Requires=connman.service init_usb.service
+After=connman.service init_usb.servie
+
+[Service]
+Type=oneshot
+StandardOutput=kmsg+console
+RemainAfterExit=yes
+ExecStart=/bin/sh /usr/share/init/init_rndis start
+ExecStop=/bin/sh /usr/share/init/init_rndis stop
+
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta/meta-mediatek-mt2735/recipes-core/initial/files/lynq_data_recover b/meta/meta-mediatek-mt2735/recipes-core/initial/files/lynq_data_recover
index ec6da90..368e6fb 100755
--- a/meta/meta-mediatek-mt2735/recipes-core/initial/files/lynq_data_recover
+++ b/meta/meta-mediatek-mt2735/recipes-core/initial/files/lynq_data_recover
@@ -170,6 +170,7 @@
 rm -rf /etc/config/.*.uci*
 check_uci
 check_copy_file /data_backup/config/lynq_uci_ro /etc/config/lynq_uci_ro
+grep "option status '1'" /etc/config/lynq_uci_ro || check_copy_file /data_backup/lynq_uci_ro /etc/config/lynq_uci_ro
 mkdir -p /data/atsvc
 check_copy_file /data_backup/lynq_atsvc_plugin.xml /data/atsvc/lynq_atsvc_plugin.xml
 check_copy_file /data_backup/terminal_controller.conf /data/atsvc/terminal_controller.conf
diff --git a/meta/meta-mediatek-mt2735/recipes-core/initial/init-2735_1.0.0.bb b/meta/meta-mediatek-mt2735/recipes-core/initial/init-2735_1.0.0.bb
index 23096c1..bc74d2a 100755
--- a/meta/meta-mediatek-mt2735/recipes-core/initial/init-2735_1.0.0.bb
+++ b/meta/meta-mediatek-mt2735/recipes-core/initial/init-2735_1.0.0.bb
@@ -31,6 +31,12 @@
 SRC_URI += "file://lynq_data_recover.service"
 SRC_URI += "file://lynq_ubi1_wmtd.service"
 #xf.li 2022.11.17 modify for userdata recover end
+
+#xy.he 2024.11.30 modify for autostart rndis for L805A start
+SRC_URI += "file://init_rndis"
+SRC_URI += "file://init_rndis.service"
+#xy.he 2024.11.30 modify for autostart rndis for L805A end
+
 #dongyu@2022.7.15 delete for Slow loading of ETS port start
 #SRC_URI += "file://smp.rules"
 
@@ -54,6 +60,7 @@
                ${datadir}/init/meta_tst \
                ${datadir}/init/init_speech \
                ${datadir}/init/init_usb \
+               ${datadir}/init/init_rndis \
                ${datadir}/init/smp.sh \
                ${datadir}/init/lynq_data_recover \
                ${datadir}/init/lynq_ubi1_wmtd \
@@ -77,6 +84,7 @@
                          thermal_core.service \
                          agps.service \
                          init_usb.service \
+                         init_rndis.service \
 			 init_smp.service \
 			 lynq_ubi1_wmtd.service \
 			 lynq_data_recover.service \
@@ -97,6 +105,7 @@
                 ${systemd_unitdir}/system/thermal_core.service \
                 ${systemd_unitdir}/system/agps.service \
                 ${systemd_unitdir}/system/init_usb.service \
+                ${systemd_unitdir}/system/init_rndis.service \
 		${systemd_unitdir}/system/init_smp.service \
 		${systemd_unitdir}/system/lynq_ubi1_wmtd.service \
 		${systemd_unitdir}/system/lynq_data_recover.service \
@@ -119,6 +128,7 @@
     #install -d ${D}/etc/udev/rules.d/
     #install -m 0755 smp.rules ${D}/etc/udev/rules.d/smp.rules
 #dongyu@2022.7.15 delete for Slow loading of ETS port end
+    install -m 0755 init_rndis ${D}${datadir}/init/init_rndis
 
     if [ "${MTK_SMT_BUILD}" = "yes" ]; then
         install -m 0755 meta_tst_tmp ${D}${datadir}/init/meta_tst
@@ -145,6 +155,7 @@
         install -m 0644 thermal_core.service ${D}${systemd_unitdir}/system
         install -m 0644 agps.service ${D}${systemd_unitdir}/system
         install -m 0644 init_usb.service ${D}${systemd_unitdir}/system
+        install -m 0644 init_rndis.service ${D}${systemd_unitdir}/system
 #xf.li 2022.11.17 modify for userdata recover start
         install -m 0644 lynq_data_recover.service ${D}${systemd_unitdir}/system
         install -m 0644 lynq_ubi1_wmtd.service ${D}${systemd_unitdir}/system