[Feature][T106_eSDK]T106-V2.01.01.02P56U06.AP.15.11_CAP.15.11(SDK4.6)diff_16.08(SDK4.7)
Only Configure: No
Affected branch: master
Affected module: unknow
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update: No
Change-Id: I7a7c42775e2ffdd23aaec4fff782adcc99d7890b
diff --git a/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/default/default_parameter_sys b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/default/default_parameter_sys
new file mode 100755
index 0000000..636cedd
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/default/default_parameter_sys
@@ -0,0 +1,446 @@
+
+######SOFTAPרÓà START###################################
+check_roam=yes
+gsm_signalbar0_low=0
+gsm_signalbar0_high=0
+gsm_signalbar1_low=1
+gsm_signalbar1_high=2
+gsm_signalbar2_low=3
+gsm_signalbar2_high=6
+gsm_signalbar3_low=7
+gsm_signalbar3_high=9
+gsm_signalbar4_low=10
+gsm_signalbar4_high=12
+gsm_signalbar5_low=13
+gsm_signalbar5_high=31
+wcdma_signalbar0_low=0
+wcdma_signalbar0_high=0
+wcdma_signalbar1_low=1
+wcdma_signalbar1_high=8
+wcdma_signalbar2_low=9
+wcdma_signalbar2_high=16
+wcdma_signalbar3_low=17
+wcdma_signalbar3_high=22
+wcdma_signalbar4_low=23
+wcdma_signalbar4_high=28
+wcdma_signalbar5_low=29
+wcdma_signalbar5_high=91
+tds_signalbar0_low=0
+tds_signalbar0_high=0
+tds_signalbar1_low=1
+tds_signalbar1_high=8
+tds_signalbar2_low=9
+tds_signalbar2_high=16
+tds_signalbar3_low=17
+tds_signalbar3_high=22
+tds_signalbar4_low=23
+tds_signalbar4_high=28
+tds_signalbar5_low=29
+tds_signalbar5_high=91
+lte_signalbar0_low=0
+lte_signalbar0_high=0
+lte_signalbar1_low=1
+lte_signalbar1_high=25
+lte_signalbar2_low=26
+lte_signalbar2_high=32
+lte_signalbar3_low=33
+lte_signalbar3_high=38
+lte_signalbar4_low=39
+lte_signalbar4_high=44
+lte_signalbar5_low=45
+lte_signalbar5_high=97
+need_cops_number_format=yes
+need_display_searching_status=yes
+need_restart_when_sim_insert=no
+need_support_pb=no
+need_support_sms=no
+network_need_gsm=yes
+network_need_tds=yes
+product_model=MF910W
+roam_setting_option=on
+use_lock_net=no
+network_category_based_on=act
+admin_user=admin
+appKeyMobile=A100000853
+Brand=DEMO
+hostName=dm.wo.com.cn
+Intype=DEMO
+Manuf=
+Model=
+portNum=6001
+registerDmType=0
+secsTime=1
+versionPrevious=
+wa_version=
+OSVersion=1
+OS=TOS
+urlMobile=
+DNS_proxy=
+dnsmasqfile=/mnt/userdata/log/dnsmasq.log
+dnsmasqfileSize=1024
+lan_domain_Enabled=1
+auto_connect_when_limited=no
+is_traffic_aline_on=no
+is_traffic_alining=no
+is_traffic_limit_on=no
+keep_online_when_limited=no
+traffic_sms_number=0
+update_type=mifi_fota
+
+fota_device_type=mdl
+fota_models=ZTE7520V3
+fota_oem=ZTE
+fota_platform=ZX297520
+fota_dm_vendor=rs
+fota_token_rs=8msgzdxxftrtys0irnuifh7o
+fota_product_id=1553742041
+fota_product_secret=23b3faf2dafb42dfb3382c0d7d66315b
+fota_app_version=2
+fota_network_type=WIFI
+fota_token_zx=7CBE016400F65621740A04E742E6FB12
+fota_dl_url_zx=
+fota_chk_url_zx=
+fota_reg_url_zx=
+fota_report_dlr_url_zx=
+fota_report_upgr_url_zx=
+fota_report_sales_url_zx=
+fota_token_gs=97a53ee9f45adfe53c762a72f83f6f43
+fota_dl_url_gs=
+fota_chk_url_gs=
+fota_reg_url_gs=
+fota_report_dlr_url_gs=
+fota_report_upgr_url_gs=
+fota_report_sales_url_gs=
+fota_update_space_threshold=800
+fota_ab_upgrade_status=6
+fota_ab_upgrade_total_size=0
+fota_ab_upgrade_updated_size=0
+fota_ab_aa_sync_status=2
+fota_ab_log_path=/mnt/userdata/zte_fota_ab/upi_ab.log
+fota_aa_auto_sync=0
+Login=admin
+Password=
+sntp_server_count=3
+MAX_Station_num=32
+MAX_Station_num_bak=0
+MAX_Access_num_bbak=0
+MAX_Chip_Capability=32
+wifi_key_gen_type=MAC
+wifi_key_len=8
+wifi_key_only_digit=y
+wifi_lte_intr=1
+wifi_ssid_gen_with_mac_lastbyte=6
+wifi_key_gen_with_mac_lastbyte=8
+wifi_mac_num=2
+wifiwan=wlan0-vxd
+wifiwan_mode=dhcp
+idle_time="600"
+product_type=1
+errnofile=/usr/netlog/errno.log
+errnofileSize=1024
+hotplugfile=/usr/netlog/hotplug.log
+hotplugfileSize=1024
+mynetlinkfile=/usr/netlog/mynetlink.log
+mynetlinkfileSize=1024
+telnetd_enable=n
+
+#syslogdÏà¹ØÅäÖÃ
+syslog_file_size=1
+syslog_file_num=5
+print_level=2
+syslog_level=4
+
+skb_debug=
+seclog_switch=
+################SOFTAPרÓà END#####################################
+
+######USB¶Ë¿ÚÅäÖÃ#######
+
+##########usb/rj45µÈÈȰβåÏà¹ØÂ·¾¶##############
+#rj45³õʼ״̬·¾¶
+rj45_plugstate_path=/sys/kernel/eth_debug/eth_state
+#usbÍø¿ÚÃû·¾¶
+usb_name_path=/sys/dwc_usb/usbconfig/netname
+#usb¸÷Íø¿Ú״̬·¾¶
+usb_plugstate_path=/sys/dwc_usb/usbconfig/
+################################################
+
+#ͨ¹ýgpio¼ì²â²å°Î£¬ÓÃÓÚ×Ô¶¯»¯µ÷ÊÔ
+usb_gpio_detect=1
+
+#ÅäÖÃÊÇ·ñÓйâÅÌ
+cdrom_state=0
+
+#cdromµÚ¶þ½×¶Îö¾Ù£º0Ϊ²»ÐèҪö¾Ù£¬1ΪÐèҪö¾ÙÇÒÐèÒª¹ÒÔØ½éÖÊ£¬2Ϊ²»ÐèÒª¹ÒÔØ½éÖÊ#
+need_support_cdrom_step2=0
+#ÅäÖÃWindowsÏÂÍø¿¨ÀàÐÍ
+select_type=select_rndis
+
+####
+#ÅäÖÃÑз¢Ä£Ê½usbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_debug=diag,adb,serial,acm
+
+
+#ÅäÖÃÓû§Ä£Ê½ÊÇ·ñʹÓÃÍø¿¨
+usb_vnic_user=on
+
+#ÅäÖÃÓû§Ä£Ê½usbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_user=adb,acm
+
+#ÅäÖÃÉú²úģʽusbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_factory=serial,diag
+
+#ÅäÖÃAMTģʽusbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_amt=serial,diag
+
+#ÅäÖÃÑз¢Ä£Ê½acm´®¿Ú¸öÊý
+usb_acm_num_debug=1
+
+#ÅäÖÃÑз¢Ä£Ê½serial´®¿Ú¸öÊý
+usb_serial_num_debug=1
+
+#ÅäÖÃÓû§Ä£Ê½acm´®¿Ú¸öÊý
+usb_acm_num_user=1
+
+#ÅäÖÃÓû§Ä£Ê½serial´®¿Ú¸öÊý
+usb_serial_num_user=0
+
+#ÅäÖÃÉú²úģʽacm´®¿Ú¸öÊý
+usb_acm_num_factory=0
+
+#ÅäÖÃÉú²úģʽserial´®¿Ú¸öÊý
+usb_serial_num_factory=1
+
+#ÅäÖÃAMTģʽacm´®¿Ú¸öÊý
+usb_acm_num_amt=0
+
+#ÅäÖÃAMTģʽserial´®¿Ú¸öÊý
+usb_serial_num_amt=2
+
+#wangzhen
+#ÅäÖÃdebugģʽmass_storageµÄlunµÄģʽ
+usb_lun_type_debug=MMC
+
+#ÅäÖÃuserģʽmass_storageµÄlunµÄģʽ
+usb_lun_type_user=MMC
+
+#ÅäÖÃcdromģʽmass_storageµÄlunµÄģʽ
+usb_lun_type_cdrom=MMC
+###
+
+#ÅäÖÃÑз¢Ä£Ê½Íø¿ÚΪNDISʱÉ豸µÄPID
+PID_TSP_NDIS=0582
+###
+
+#ÅäÖÃÑз¢Ä£Ê½Íø¿ÚΪRNDISʱÉ豸µÄPID
+PID_TSP_RNDIS=0582
+
+#ÅäÖÃÑз¢Ä£Ê½Íø¿ÚΪECMʱÉ豸µÄPID
+PID_TSP_ECM=0582
+
+#ÅäÖÃÑз¢Ä£Ê½Ò쳣ʱÉ豸µÄPID
+PID_TEST=ff00
+
+#ÅäÖÃÑÛͼģʽʱÉ豸µÄPID
+PID_YT=0580
+
+#ÅäÖÃÑз¢Ä£Ê½¹âÅÌCDROMµÄPID
+PID_TSP_CDROM=0548
+
+#####
+
+#ÅäÖÃÓû§Ä£Ê½Ä£Ê½¹âÅÌCDROMµÄPID
+PID_USER_CDROM=1225
+
+#####
+#######
+#ÅäÖÃÓû§Ä£Ê½Íø¿ÚΪRNDISʱÉ豸µÄPID
+PID_USER_RNDIS=0585
+
+#ÅäÖÃÓû§Ä£Ê½Íø¿ÚΪECMʱÉ豸µÄPID
+PID_USER_ECM=0585
+
+#ÅäÖÃÓû§Ä£Ê½Íø¿ÚΪNDISʱÉ豸µÄPID
+PID_USER_NDIS=0583
+
+#ÅäÖÃÓû§Ä£Ê½Ã»ÓÐÍø¿ÚʱÉ豸µÄPID
+PID_USER_NOVNIC=0586
+######
+
+#ÅäÖÃËÀ»útrapʱÉ豸µÄPID
+PID_TRAP=0197
+
+#ÅäÖÃÉú²úģʽʱÉ豸µÄPID
+PID_FACTORY=0534
+
+#ÅäÖÃAMTģʽʱÉ豸µÄPID
+PID_AMT=0201
+
+#ÅäÖùػú³äµçʱÉ豸µÄPID
+PID_FASTPOWEROFF=2004
+
+#ÅäÖÃÉ豸µÄVID
+VID_TSP=19D2
+
+#ÅäÖÃÊÇ·ñÓÃchipid×÷ΪÉ豸µÄiSerial×Ö·û´®
+usb_sernum_chipid=0
+
+#ÅäÖÃÉ豸µÄiSerial×Ö·û´®
+SERIAL_TSP=1234567890ABCDEF
+
+#ÅäÖÃÑз¢Ä£Ê½É豸µÄReleaseID
+RELEASEID_TSP=0100
+
+#ÅäÖÃÓû§Ä£Ê½É豸µÄReleaseID
+RELEASEID_USER=0101
+
+#ÅäÖÃÉ豸µÄmanufacturer×Ö·û´®
+MANUFACTURER_TSP=DEMO,Incorporated
+
+#ÅäÖÃÉ豸µÄproduct×Ö·û´®
+PRODUCT_TSP=DEMO Mobile Boardband
+
+#ÅäÖÃÉ豸µÄconfig×Ö·û´®
+CONFIG_TSP=DEMO Configuration
+
+#cdrom lunµÄvendor×Ö·û´®
+VENDOR_MS_CDROM=DEMO
+
+#cdrom lunµÄproduct×Ö·û´®
+PRODUCT_MS_CDROM=USB SCSI CD-ROM
+
+#cdrom lunµÄrelease×Ö·û´®
+RELEASE_MS_CDROM=2.31
+
+#cdrom lunµÄinquiry×Ö·û´®
+INQUIRY_MS_CDROM=DEMO USB SCSI CD-ROM 2.31
+#mmc lunµÄvendor×Ö·û´®
+VENDOR_MS_MMC=DEMO
+
+#mmc lunµÄproduct×Ö·û´®
+PRODUCT_MS_MMC=MMC Storage
+
+#mmc lunµÄrelease×Ö·û´®
+RELEASE_MS_MMC=2.31
+
+#SD½éÖÊ·¾¶
+usb_tcard_lun_path=/dev/mmcblk0
+
+#mmc lunµÄinquiry×Ö·û´®
+INQUIRY_MS_MMC=DEMO MMC Storage 2.31
+
+#ÅäÖÃECMÍø¿¨¸öÊý
+ECM_NUM=1
+
+#ÅäÖÃRNDISÍø¿¨×î´ó×é°üÊý
+RNDIS_PKT_NUM=10
+
+
+###²¨ÌØÂÊ×ÔÊÊÓ¦¿ª¹Ø###
+self_adaption_port=
+###ijЩ¶Ë¿Ú²»ÐèÒªÏòÓ¦ÓÃÉϱ¨¶Ë¿Ú×¼±¸ºÃÏûÏ¢###
+notify_forbiden_ports=
+
+###adbĬÈϹÒÔØºË,0:ap;1:cap###
+adb_core_id=1
+######USB¶Ë¿ÚÅäÖÃEND#######
+
+######CP²àNVÅäÖÃÐÅÏ¢#######
+#ÄÚ²¿Èí¼þ°æ±¾ºÅ
+zversion=K318V1.0.0B03
+#ÍⲿÈí¼þ°æ±¾ºÅ
+zcgmr=DEMO_V1.0.0B03
+#Ó²¼þ°æ±¾ºÅ
+zhver=V0.1
+#ÄÚ²¿»úÐÍ
+zcgmm=K318
+#Íⲿ»úÐÍ
+zcgmw=K318
+#³§ÉÌÐÅÏ¢
+zcgmi=DEMO
+#SSIDºÅ
+zssid=0
+#WifiKeyµÄÖµ
+zwifikey=0
+#ËøÍø×î´ó½âËø´ÎÊý£¬ËøÍøÄ£¿éʹÓÃ
+zunlocktimes=0
+#°æ±¾Ä£Ê½ÀàÐÍ£¬Õý³£°æ±¾/¹Ò²à°æ±¾
+zversionmode=0
+#ÖÇÄܶÌÐŹ¦ÄÜ¿ª¹Ø
+zisms=0
+#DM¹¦ÄÜ¿ª¹Ø,0:¹Ø±Õ£¬1ÒÆ¶¯£¬2ÁªÍ¨£¬3µçÐÅ
+zdmreg=0
+#ÁªÍ¨DM ×¢²á¿ª»úµÈ´ýʱ¼ä, 1~60 ÓÐЧ£¬µ¥Î»·ÖÖÓ£¬ÆäËûÊýÖµ: ÎÞЧֵ
+zdmregtime=0
+
+#¹¤¾ßzlog_agent´æÈ¡
+zcat_mode=CPUSB
+zlog_num=10
+zlog_size=100
+zlog_path=/mnt/userdata/zcat
+rule_file=/etc_ro/logrule/ati_std.rule
+
+#ramdump´æ´¢Ä£Ê½
+#no,auto,yes
+ramdump_export=no
+#USB or CAPEMMC or CAPFLASH
+ramdump_mode=USB
+ramdump_emmc_device=/dev/mmcblk1p1
+ramdump_flash_device=/dev/mtd17
+ramdump_path=/mnt/oemdata
+
+#ÕÕÏà»úͼƬ·Ö±æÂÊÏÔʾ¿ØÖÆ
+zcamera_interprolation=1
+#×Ô¶¯ËÑÍø·½Ê½ÍøÂç½ÓÈë´ÎÐò
+auto_acqorder=12
+######CP²àNVÅäÖÃÐÅÏ¢END#######
+#for volte
+MTNET_TEST=0
+NSIOT_TEST=0
+amrw=1
+cvmod_ims=3
+EM_CALL_SUPPORT=0
+EMCALL_TO_NORMAL=0
+IMS_APN=
+IMS_CONFURI=
+IMS_CC_URI_TYPE=0
+IMS_SMS_URI_TYPE=0
+IMS_REG_EXPIRES=600000
+IMS_REG_SUB_EXPIRES=600000
+NET_IMS_CAP=0
+UDP_THRESH=1300
+IPSEC_DISABLE=0
+PRECONDTION_NOT_SUPPORT=0
+WAIT_RPT_TIME=1000
+OCT_ALGN_AMR=0
+SMS_OVER_IP=1
+IMS_USER_AGENT=
+BSF_PORT=8080
+XCAP_PORT=80
+UT_APN=
+380_THEN_CSFB=0
+DTMF_RFC4733=0
+DIALOG_FORK=0
+DATA_CENTRIC=0
+not_supp_hmac_sha1_96=0
+not_supp_hmac_md5_96=0
+not_supp_des_ede3_cbc=0
+not_supp_aes_cbc=0
+IMS_PCSCF_PORT=5060
+G_IMS_CMGF=0
+ECALL_MTTEST=0
+POWER_CONTROL=0
+NOT_KEEP_TCP_CONN=1
+T3396_SUPPORT=0
+T3396_CAUSE_REASON=8,27,32,33
+T3396_DURATION=720
+T3396_COUNTS=3
+ECALL_T2_TIMER=3600
+NGECALL_FORTEST=0
+CUSTOMER_FLAG=0
+#for volte end
+DEBUG_INFO_DISABLE=0
+DEBUG_INFO_FILE_PATH=/mnt/userdata
+DEBUG_INFO_FILE_NUM=2
+DEBUG_INFO_FILE_TOTAL_SIZE=1
+#debug info end
diff --git a/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/default/default_parameter_user b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/default/default_parameter_user
new file mode 100755
index 0000000..7839262
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc/fs/normal/rootfs/etc_ro/default/default_parameter_user
@@ -0,0 +1,496 @@
+apn_auto_config=CMCC($)cmnet($)manual($)*99#($)pap($)($)($)IP($)auto($)($)auto($)($)
+APN_config0=Default($)Default($)manual($)($)($)($)($)IP($)auto($)($)auto($)($)
+APN_config1=
+APN_config2=
+APN_config3=
+APN_config4=
+APN_config5=
+APN_config6=
+APN_config7=
+APN_config8=
+APN_config9=
+apn_index=0
+apn_mode=auto
+at_snap_flag=3
+at_wifi_mac=0
+auto_apn_index=0
+cid_reserved=1
+clear_pb_when_restore=no
+clear_sms_when_restore=no
+default_apn=3gnet
+ipv6_APN_config1=
+ipv6_APN_config2=
+ipv6_APN_config3=
+ipv6_APN_config4=
+ipv6_APN_config5=
+ipv6_APN_config6=
+ipv6_APN_config7=
+ipv6_APN_config8=
+ipv6_APN_config9=
+m_profile_name=Internux
+need_init_modem=no
+net_select=NETWORK_auto
+pdp_type=IP
+ppp_apn=
+max_reconnect_time=3000000
+pppd_auth=noauth
+ppp_auth_mode=none
+ppp_passwd=
+ppp_pdp_type=
+ppp_username=
+ipv6_ppp_auth_mode=none
+ipv6_ppp_passwd=
+ipv6_ppp_username=
+pre_mode=
+prefer_dns_manual=0.0.0.0
+standby_dns_manual=0.0.0.0
+wan_apn=internet
+wan_dial=
+cta_test=0
+safecare_enbale=1
+safecare_hostname=mob.3gcare.cn
+safecare_registed_imei=
+safecare_registed_iccid=
+safecare_contimestart1=
+safecare_contimestart2=
+safecare_contimestart3=
+safecare_contimestop1=
+safecare_contimestop2=
+safecare_contimestop3=
+safecare_contimeinterval=
+safecare_mobsite=http://mob.3gcare.cn
+safecare_chatsite=
+safecare_platno=
+safecare_mobilenumber=
+safecare_version=
+ethwan_dns_mode=auto
+pswan_dns_mode=auto
+wifiwan_dns_mode=auto
+ethwan_ipv6_dns_mode=auto
+wifiwan_ipv6_dns_mode=auto
+pswan_ipv6_dns_mode=auto
+admin_Password=Pass1234
+psw_changed=1
+alg_ftp_enable=0
+alg_sip_enable=0
+blc_wan_auto_mode=AUTO_PPP
+blc_wan_mode=AUTO
+br_ipchange_flag=
+br_node=usblan0+zvnet0
+br_node_cap=zvnet0
+clat_fake_subnet=192.0.168.0
+clat_frag_collect_timeout=300
+clat_local_mapping_timeout=300
+clat_mapping_record_timeout=3000
+clat_query_server_port=1464
+DefaultFirewallPolicy=0
+dev_coexist=0
+dhcpDns=192.168.0.1
+dhcpEnabled=1
+dhcpEnd=192.168.0.200
+dhcpLease_hour=24
+dhcpStart=192.168.0.100
+dhcpv6stateEnabled=0
+dhcpv6statelessEnabled=1
+dhcpv6statePdEnabled=0
+dial_mode=auto_dial
+DMZEnable=0
+DMZIPAddress=
+dns_extern=
+ipv6_dns_extern=
+eth_act_type=
+eth_type=lan
+ethlan=
+ethwan=
+ethwan_dialmode=auto
+ethwan_mode=auto
+ethwan_priority=3
+fast_usb=usblan0
+fastnat_level=2
+fastbr_level=1
+IPPortFilterEnable=0
+IPPortFilterRules_0=
+IPPortFilterRules_1=
+IPPortFilterRules_2=
+IPPortFilterRules_3=
+IPPortFilterRules_4=
+IPPortFilterRules_5=
+IPPortFilterRules_6=
+IPPortFilterRules_7=
+IPPortFilterRules_8=
+IPPortFilterRules_9=
+IPPortFilterRulesv6_0=
+IPPortFilterRulesv6_1=
+IPPortFilterRulesv6_2=
+IPPortFilterRulesv6_3=
+IPPortFilterRulesv6_4=
+IPPortFilterRulesv6_5=
+IPPortFilterRulesv6_6=
+IPPortFilterRulesv6_7=
+IPPortFilterRulesv6_8=
+IPPortFilterRulesv6_9=
+ipv4_fake_subnet=192.0.0.0
+ipv6_fake_subnet=2016::1
+lan_ipaddr=192.168.0.1
+webv6_enable=1
+lan_ipv6addr=fe80::1
+lan_name=br0
+lan_netmask=255.255.255.0
+LanEnable=1
+dhcpDns_cap=192.168.0.2
+lan_ipv6addr_cap=fe80::2
+lan_ipaddr_cap=192.168.0.2
+lan_name_cap=br0
+lan_netmask_cap=255.255.255.0
+LanEnable_cap=1
+mac_ip_list=
+mgmt_quicken_power_on=0
+mtu=1400
+natenable=
+dosenable=0
+need_jilian=1
+nofast_port=21+22+23+25+53+67+68+69+110+115+123+443+500+1352+1723+1990+1991+1992+1993+1994+1995+1996+1997+1998+4500+5060
+nv_save_interval=300
+path_conf=/etc_rw
+path_ro=/etc_ro
+path_log=/tmp/
+netlog_limit=yes
+path_sh=/sbin
+path_tmp=/tmp
+permit_gw=
+permit_ip6=
+permit_nm=255.255.255.0
+PortForwardEnable=0
+PortForwardRules_0=
+PortForwardRules_1=
+PortForwardRules_2=
+PortForwardRules_3=
+PortForwardRules_4=
+PortForwardRules_5=
+PortForwardRules_6=
+PortForwardRules_7=
+PortForwardRules_8=
+PortForwardRules_9=
+PortMapEnable=0
+PortMapRules_0=
+PortMapRules_1=
+PortMapRules_2=
+PortMapRules_3=
+PortMapRules_4=
+PortMapRules_5=
+PortMapRules_6=
+PortMapRules_7=
+PortMapRules_8=
+PortMapRules_9=
+ppp_name=ppp0
+pppoe_password=
+pppoe_username=
+ps_ext1=zvnet1
+ps_ext2=zvnet2
+ps_ext3=zvnet3
+ps_ext4=zvnet4
+ps_ext5=zvnet5
+ps_ext6=zvnet6
+ps_ext7=zvnet7
+ps_ext8=zvnet8
+pswan=wan
+pswan_mode=pdp
+pswan_priority=1
+pswan_cap=zvnet
+RemoteManagement=0
+rootdev_friendlyname=DEMO-UPnP
+rootdev_manufacturer=DEMO
+rootdev_modeldes=XXX
+rootdev_modelname=XXX
+os_url=http://www.demo.com
+serialnumber=See-IMEI
+static_dhcp_enable=1
+static_ethwan_gw=
+static_ethwan_ip=
+static_ethwan_nm=
+static_ethwan_pridns=
+static_ethwan_secdns=
+static_wifiwan_ipaddr=
+static_wifiwan_netmask=
+static_wifiwan_gateway=
+wifiwan_pridns_manual=
+wifiwan_secdns_manual=
+static_wan_gateway=0.0.0.0
+static_wan_ipaddr=0.0.0.0
+static_wan_netmask=0.0.0.0
+static_wan_primary_dns=0.0.0.0
+static_wan_secondary_dns=0.0.0.0
+swlanstr=sw0_lan
+swvlan=sw0
+swwanstr=sw0_wan
+tc_downlink=
+tc_uplink=
+tc_local=1310720
+tc_enable=0
+time_limited=
+time_to_2000_when_restore=yes
+upnpEnabled=0
+usblan=usblan0
+WANPingFilter=0
+websURLFilters=
+wifiwan_priority=2
+DDNS=
+DDNS_Enable=0
+DDNSAccount=
+DDNSPassword=
+DDNSProvider=
+iccidPrevious=
+imeiPrevious=
+registerFlag=0
+registeredRound=
+secsEveryRound=1
+secsEveryTime=1
+regver=4.0
+meid=
+uetype=1
+LocalDomain=m.home
+data_volume_alert_percent=
+data_volume_limit_size=
+data_volume_limit_switch=0
+data_volume_limit_unit=0
+flux_day_total=0
+flux_last_day=
+flux_last_month=
+flux_last_year=
+flux_month_total=0
+flux_set_day=
+flux_set_month=
+flux_set_year=
+monthly_rx_bytes=0
+monthly_time=0
+monthly_tx_bytes=0
+MonthlyConTime_Last=
+dm_nextpollingtime=
+fota_allowRoamingUpdate=0
+fota_dl_pkg_size=0
+fota_update_flag=
+fota_updateIntervalDay=15
+fota_upgrade_result=
+fota_version_delta_id=
+fota_version_delta_url=
+fota_pkg_total_size=0
+fota_version_file_size=
+fota_version_md5sum=
+fota_version_name=
+fota_need_user_confirm_update=0
+fota_need_user_confirm_download=0
+fota_version_force_install=0
+polling_nexttime=0
+pwron_auto_check=0
+fota_updateMode=0
+fota_test_mode=0
+fota_pkg_downloaded=0
+fota_upgrade_result_internal=
+mmi_battery_voltage_line=3090+3300+3450+3490+3510+3540+3550+3570+3580+3600+3620+3650+3670+3710+3740+3780+3850+3900+3950+4000+4060
+mmi_fast_poweron=
+mmi_led_mode=sleep_mode
+mmi_new_sms_blink_flag=1
+mmi_show_pagetab=page1+page2+page3
+mmi_showmode=led
+mmi_task_tab=ctrl_task+key_task
+mmi_temp_voltage_line=951+1201+1692+1736
+mmi_use_protect=
+mmi_use_wifi_usernum=1
+leak_full_panic=
+leak_list_max=
+leak_set_flag=
+monitor_period=300
+netinf_flag=
+skb_all_max=
+skb_data_max=
+skb_fromcp_max=
+skb_max_fail=
+skb_max_panic=
+skb_size_max=
+skb_tocp_max=
+sntp_default_ip=134.170.185.211;131.107.13.100;202.112.31.197;202.112.29.82;202.112.10.36;ntp.gwadar.cn;ntp-sz.chl.la;dns.sjtu.edu.cn;news.neu.edu.cn;dns1.synet.edu.cn;time-nw.nist.gov;pool.ntp.org;europe.pool.ntp.org
+sntp_dst_enable=0
+sntp_other_server0=
+sntp_other_server1=
+sntp_other_server2=
+sntp_server0=time-nw.nist.gov
+sntp_server1=pool.ntp.org
+sntp_server2=europe.pool.ntp.org
+sntp_sync_select_interval_time=30
+sntp_time_set_mode=auto
+sntp_timezone=CST-8
+sntp_timezone_index=0
+assert_errno=
+comm_logsize=16384
+cr_inner_version=V1.0.0B08
+cr_version=V1.0.0B01
+hw_version=PCBMF29S2V1.0.0
+TURNOFF_CHR_NUM=
+watchdog_app=0
+HTTP_SHARE_FILE=
+HTTP_SHARE_STATUS=
+HTTP_SHARE_WR_AUTH=readWrite
+ipv6_pdp_type=
+ipv6_wan_apn=
+Language=zh-cn
+manual_time_day=
+manual_time_hour=
+manual_time_minute=
+manual_time_month=
+manual_time_second=
+manual_time_year=
+sdcard_mode_option=0
+AccessControlList0=
+AccessPolicy0=0
+ACL_mode=0
+AuthMode=WPA2PSK
+Channel=0
+wifi_acs_num=5
+closeEnable=0
+closeTime=
+CountryCode=CN
+DefaultKeyID=0
+DtimPeriod=1
+EncrypType=AES
+EX_APLIST=
+EX_APLIST1=
+EX_AuthMode=
+EX_DefaultKeyID=
+EX_EncrypType=
+EX_mac=
+EX_SSID1=Ufi_
+EX_WEPKEY=
+EX_wifi_profile=
+EX_WPAPSK1=
+FragThreshold=2346
+HideSSID=0
+HT_GI=1
+Key1Str1=12345
+Key2Str1=
+Key3Str1=
+Key4Str1=
+Key1Type=1
+Key2Type=
+Key3Type=
+Key4Type=
+m_AuthMode=WPA2PSK
+m_DefaultKeyID=
+m_EncrypType=AES
+m_HideSSID=0
+m_Key1Str1=1234
+m_Key2Str1=
+m_Key3Str1=
+m_Key4Str1=
+m_Key1Type=1
+m_Key2Type=
+m_Key3Type=
+m_Key4Type=
+m_MAX_Access_num=0
+m_NoForwarding=
+m_show_qrcode_flag=0
+m_SSID=Ufi_
+m_ssid_enable=0
+m_wapiType=
+m_wifi_mac=901D45692A5C
+m_WPAPSK1_aes=
+m_WPAPSK1_encode=MTIzNDU2Nzg=
+MAX_Access_num=32
+MAX_Access_num_bak=32
+NoForwarding=0
+openEnable=0
+openTime=
+operater_ap=
+RekeyInterval=3600
+RTSThreshold=2347
+show_qrcode_flag=0
+Sleep_interval=10
+ssid_write_flag=0
+SSID1=Ufi_
+tsw_sleep_time_hour=
+tsw_sleep_time_min=
+tsw_wake_time_hour=
+tsw_wake_time_min=
+wapiType=
+wifi_force_40m=1
+wifi_11n_cap=1
+wifi_band=b
+wifi_coverage=long_mode
+wifi_hostname_black_list=
+wifi_hostname_white_list=
+wifi_mac=901D45692A5B
+wifi_mac_black_list=
+wifi_mac_white_list=
+wifi_profile=
+wifi_profile1=
+wifi_profile2=
+wifi_profile3=
+wifi_profile4=
+wifi_profile5=
+wifi_profile6=
+wifi_profile7=
+wifi_profile8=
+wifi_profile9=
+wifi_profile_num=0
+wifi_root_dir=
+wifi_sta_connection=0
+wifi_wps_index=1
+wifiEnabled=1
+wifilan=wlan0-va0
+wifilan2=wlan0-va1
+WirelessMode=6
+WPAPSK1_aes=
+WPAPSK1_encode=MTIzNDU2Nzg=
+wps_mode=
+WPS_SSID=
+WscModeOption=0
+monitor_apps=
+at_netdog=
+autorspchannel_list=all
+soctime_switch=0
+uart_control=1
+uart_ctstrs_enable=
+uart_softcontrol_enable=
+uart_wakeup_enable=1
+uart_console_coreid=1
+uart_app_ctrl=5
+special_cmd_list=$MYNETREAD
+ra_mtu_enable=
+##为入网入库芯片认证版本添加 begin
+atcmd_stream1=AT+ZSET="w_instrument",1
+atcmd_stream2=AT^SYSCONFIG=24,0,1,2
+atcmd_stream3=AT+ZSET="csiiot",2
+atcmd_stream4=AT+ZSET="dlparaflg",0
+atcmd_stream5=AT+ZSET="MTNET_TEST",1;AT+ZGAAT=0;AT+ZSET="CMCC_TEST",1;AT+ZSET="LTE_INFO",6348;AT+ZSET="VOICE_SUPPORT",1;AT+ZSET="FDD_RELEASE",7;AT+ZSET="LTE_RELEASE",1;AT+ZSET="UE_PS_RELEASE",5;AT+ZSET="QOS_RELEASE",4;AT+ZSET="TEBS_THRESHOLD",0
+atcmd_stream6=AT+ZSET="MTNET_TEST",1;AT+ZGAAT=0;AT+ZSET="LTE_INFO",6348;AT+ZSET="VOICE_SUPPORT",1;AT+ZSET="FDD_RELEASE",7;AT+ZSET="LTE_RELEASE",1;AT+ZSET="UE_PS_RELEASE",5;AT+ZSET="QOS_RELEASE",4;AT+ZSET="TEBS_THRESHOLD",0;AT+ZSET="IGNORE_SECURITY_SUPPORT",0;AT+ZSET="csifilter",0;AT+ZSET="csrhobandflg",0;AT+ZSET="dlparaflg",1;AT+ZSET="csiup",1;AT+ZSET="rfparaflag",0,0,1,0;AT+ZSET="csiiot",1;AT+ZSET="EXCEPT_RESET",0;AT+ZSET="ISIM_SUPPORT",1;AT+ZIMSTEST="MTNET_TEST",1;AT+ZSET="MANUAL_SEARCH",0
+##为入网入库芯片认证版本添加 end
+#for audio ctrl
+audio_priority=0123
+customer_type=
+debug_mode=
+cpIndCmdList=+ZMMI+ZURDY+ZUSLOT+ZICCID^MODE+ZPBIC+ZMSRI+CREG+CEREG+CGREG+CGEV
+zephyr_filter_ip=
+wait_timeout=2
+sntp_sync_time=1
+sntp_static_server0=time-nw.nist.gov
+sntp_static_server1=pool.ntp.org
+sntp_static_server2=europe.pool.ntp.org
+vsim_bin_path=/mnt/userdata/vSim.bin
+at_select_timeout=
+mtnet_test_mcc=+001+002+003+004
+at_atv=
+at_atq=
+at_at_d=
+at_ptsnum=
+quick_dial=1
+cap_port_name=/dev/ttyGS0
+customIndCmdList=
+defrt_cid=1
+MaxRtrAdvInterval=1800
+dhcps_in_cap=1
+gw_in_cap=0
+#yes-on no-off
+cc_at_debug=no
+xlat_enable=0
+ecallmode=2
+telog_path_cap=
+telog_path=
diff --git a/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/default/default_parameter_sys b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/default/default_parameter_sys
new file mode 100755
index 0000000..57c1ad7
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/default/default_parameter_sys
@@ -0,0 +1,446 @@
+
+######SOFTAPרÓà START###################################
+check_roam=yes
+gsm_signalbar0_low=0
+gsm_signalbar0_high=0
+gsm_signalbar1_low=1
+gsm_signalbar1_high=2
+gsm_signalbar2_low=3
+gsm_signalbar2_high=6
+gsm_signalbar3_low=7
+gsm_signalbar3_high=9
+gsm_signalbar4_low=10
+gsm_signalbar4_high=12
+gsm_signalbar5_low=13
+gsm_signalbar5_high=31
+wcdma_signalbar0_low=0
+wcdma_signalbar0_high=0
+wcdma_signalbar1_low=1
+wcdma_signalbar1_high=8
+wcdma_signalbar2_low=9
+wcdma_signalbar2_high=16
+wcdma_signalbar3_low=17
+wcdma_signalbar3_high=22
+wcdma_signalbar4_low=23
+wcdma_signalbar4_high=28
+wcdma_signalbar5_low=29
+wcdma_signalbar5_high=91
+tds_signalbar0_low=0
+tds_signalbar0_high=0
+tds_signalbar1_low=1
+tds_signalbar1_high=8
+tds_signalbar2_low=9
+tds_signalbar2_high=16
+tds_signalbar3_low=17
+tds_signalbar3_high=22
+tds_signalbar4_low=23
+tds_signalbar4_high=28
+tds_signalbar5_low=29
+tds_signalbar5_high=91
+lte_signalbar0_low=0
+lte_signalbar0_high=0
+lte_signalbar1_low=1
+lte_signalbar1_high=25
+lte_signalbar2_low=26
+lte_signalbar2_high=32
+lte_signalbar3_low=33
+lte_signalbar3_high=38
+lte_signalbar4_low=39
+lte_signalbar4_high=44
+lte_signalbar5_low=45
+lte_signalbar5_high=97
+need_cops_number_format=yes
+need_display_searching_status=yes
+need_restart_when_sim_insert=no
+need_support_pb=no
+need_support_sms=no
+network_need_gsm=yes
+network_need_tds=yes
+product_model=MF910W
+roam_setting_option=on
+use_lock_net=no
+network_category_based_on=act
+admin_user=admin
+appKeyMobile=A100000853
+Brand=DEMO
+hostName=dm.wo.com.cn
+Intype=DEMO
+Manuf=
+Model=
+portNum=6001
+registerDmType=0
+secsTime=1
+versionPrevious=
+wa_version=
+OSVersion=1
+OS=TOS
+urlMobile=
+DNS_proxy=
+dnsmasqfile=/mnt/userdata/log/dnsmasq.log
+dnsmasqfileSize=1024
+lan_domain_Enabled=1
+auto_connect_when_limited=no
+is_traffic_aline_on=no
+is_traffic_alining=no
+is_traffic_limit_on=no
+keep_online_when_limited=no
+traffic_sms_number=0
+update_type=mifi_fota
+
+fota_device_type=mdl
+fota_models=ZTE7520V3
+fota_oem=ZTE
+fota_platform=ZX297520
+fota_dm_vendor=rs
+fota_token_rs=8msgzdxxftrtys0irnuifh7o
+fota_product_id=1553742041
+fota_product_secret=23b3faf2dafb42dfb3382c0d7d66315b
+fota_app_version=2
+fota_network_type=WIFI
+fota_token_zx=7CBE016400F65621740A04E742E6FB12
+fota_dl_url_zx=
+fota_chk_url_zx=
+fota_reg_url_zx=
+fota_report_dlr_url_zx=
+fota_report_upgr_url_zx=
+fota_report_sales_url_zx=
+fota_token_gs=97a53ee9f45adfe53c762a72f83f6f43
+fota_dl_url_gs=
+fota_chk_url_gs=
+fota_reg_url_gs=
+fota_report_dlr_url_gs=
+fota_report_upgr_url_gs=
+fota_report_sales_url_gs=
+fota_update_space_threshold=800
+fota_ab_upgrade_status=6
+fota_ab_upgrade_total_size=0
+fota_ab_upgrade_updated_size=0
+fota_ab_aa_sync_status=2
+fota_ab_log_path=/mnt/userdata/zte_fota_ab/upi_ab.log
+fota_aa_auto_sync=0
+Login=admin
+Password=
+sntp_server_count=3
+MAX_Station_num=32
+MAX_Station_num_bak=0
+MAX_Access_num_bbak=0
+MAX_Chip_Capability=32
+wifi_key_gen_type=MAC
+wifi_key_len=8
+wifi_key_only_digit=y
+wifi_lte_intr=1
+wifi_ssid_gen_with_mac_lastbyte=6
+wifi_key_gen_with_mac_lastbyte=8
+wifi_mac_num=2
+wifiwan=wlan0-vxd
+wifiwan_mode=dhcp
+idle_time="600"
+product_type=1
+errnofile=/usr/netlog/errno.log
+errnofileSize=1024
+hotplugfile=/usr/netlog/hotplug.log
+hotplugfileSize=1024
+mynetlinkfile=/usr/netlog/mynetlink.log
+mynetlinkfileSize=1024
+telnetd_enable=n
+
+#syslogdÏà¹ØÅäÖÃ
+syslog_file_size=1
+syslog_file_num=5
+print_level=2
+syslog_level=4
+
+skb_debug=
+seclog_switch=
+################SOFTAPרÓà END#####################################
+
+######USB¶Ë¿ÚÅäÖÃ#######
+
+##########usb/rj45µÈÈȰβåÏà¹ØÂ·¾¶##############
+#rj45³õʼ״̬·¾¶
+rj45_plugstate_path=/sys/kernel/eth_debug/eth_state
+#usbÍø¿ÚÃû·¾¶
+usb_name_path=/sys/dwc_usb/usbconfig/netname
+#usb¸÷Íø¿Ú״̬·¾¶
+usb_plugstate_path=/sys/dwc_usb/usbconfig/
+################################################
+
+#ͨ¹ýgpio¼ì²â²å°Î£¬ÓÃÓÚ×Ô¶¯»¯µ÷ÊÔ
+usb_gpio_detect=1
+
+#ÅäÖÃÊÇ·ñÓйâÅÌ
+cdrom_state=0
+
+#cdromµÚ¶þ½×¶Îö¾Ù£º0Ϊ²»ÐèҪö¾Ù£¬1ΪÐèҪö¾ÙÇÒÐèÒª¹ÒÔØ½éÖÊ£¬2Ϊ²»ÐèÒª¹ÒÔØ½éÖÊ#
+need_support_cdrom_step2=0
+#ÅäÖÃWindowsÏÂÍø¿¨ÀàÐÍ
+select_type=select_rndis
+
+####
+#ÅäÖÃÑз¢Ä£Ê½usbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_debug=diag,adb,serial,acm
+
+
+#ÅäÖÃÓû§Ä£Ê½ÊÇ·ñʹÓÃÍø¿¨
+usb_vnic_user=on
+
+#ÅäÖÃÓû§Ä£Ê½usbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_user=adb,acm
+
+#ÅäÖÃÉú²úģʽusbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_factory=serial,diag
+
+#ÅäÖÃAMTģʽusbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_amt=serial,diag
+
+#ÅäÖÃÑз¢Ä£Ê½acm´®¿Ú¸öÊý
+usb_acm_num_debug=1
+
+#ÅäÖÃÑз¢Ä£Ê½serial´®¿Ú¸öÊý
+usb_serial_num_debug=1
+
+#ÅäÖÃÓû§Ä£Ê½acm´®¿Ú¸öÊý
+usb_acm_num_user=1
+
+#ÅäÖÃÓû§Ä£Ê½serial´®¿Ú¸öÊý
+usb_serial_num_user=0
+
+#ÅäÖÃÉú²úģʽacm´®¿Ú¸öÊý
+usb_acm_num_factory=0
+
+#ÅäÖÃÉú²úģʽserial´®¿Ú¸öÊý
+usb_serial_num_factory=1
+
+#ÅäÖÃAMTģʽacm´®¿Ú¸öÊý
+usb_acm_num_amt=0
+
+#ÅäÖÃAMTģʽserial´®¿Ú¸öÊý
+usb_serial_num_amt=2
+
+#wangzhen
+#ÅäÖÃdebugģʽmass_storageµÄlunµÄģʽ
+usb_lun_type_debug=MMC
+
+#ÅäÖÃuserģʽmass_storageµÄlunµÄģʽ
+usb_lun_type_user=MMC
+
+#ÅäÖÃcdromģʽmass_storageµÄlunµÄģʽ
+usb_lun_type_cdrom=MMC
+###
+
+#ÅäÖÃÑз¢Ä£Ê½Íø¿ÚΪNDISʱÉ豸µÄPID
+PID_TSP_NDIS=0582
+###
+
+#ÅäÖÃÑз¢Ä£Ê½Íø¿ÚΪRNDISʱÉ豸µÄPID
+PID_TSP_RNDIS=0582
+
+#ÅäÖÃÑз¢Ä£Ê½Íø¿ÚΪECMʱÉ豸µÄPID
+PID_TSP_ECM=0582
+
+#ÅäÖÃÑз¢Ä£Ê½Ò쳣ʱÉ豸µÄPID
+PID_TEST=ff00
+
+#ÅäÖÃÑÛͼģʽʱÉ豸µÄPID
+PID_YT=0580
+
+#ÅäÖÃÑз¢Ä£Ê½¹âÅÌCDROMµÄPID
+PID_TSP_CDROM=0548
+
+#####
+
+#ÅäÖÃÓû§Ä£Ê½Ä£Ê½¹âÅÌCDROMµÄPID
+PID_USER_CDROM=1225
+
+#####
+#######
+#ÅäÖÃÓû§Ä£Ê½Íø¿ÚΪRNDISʱÉ豸µÄPID
+PID_USER_RNDIS=0585
+
+#ÅäÖÃÓû§Ä£Ê½Íø¿ÚΪECMʱÉ豸µÄPID
+PID_USER_ECM=0585
+
+#ÅäÖÃÓû§Ä£Ê½Íø¿ÚΪNDISʱÉ豸µÄPID
+PID_USER_NDIS=0583
+
+#ÅäÖÃÓû§Ä£Ê½Ã»ÓÐÍø¿ÚʱÉ豸µÄPID
+PID_USER_NOVNIC=0586
+######
+
+#ÅäÖÃËÀ»útrapʱÉ豸µÄPID
+PID_TRAP=0197
+
+#ÅäÖÃÉú²úģʽʱÉ豸µÄPID
+PID_FACTORY=0534
+
+#ÅäÖÃAMTģʽʱÉ豸µÄPID
+PID_AMT=0201
+
+#ÅäÖùػú³äµçʱÉ豸µÄPID
+PID_FASTPOWEROFF=2004
+
+#ÅäÖÃÉ豸µÄVID
+VID_TSP=19D2
+
+#ÅäÖÃÊÇ·ñÓÃchipid×÷ΪÉ豸µÄiSerial×Ö·û´®
+usb_sernum_chipid=0
+
+#ÅäÖÃÉ豸µÄiSerial×Ö·û´®
+SERIAL_TSP=1234567890ABCDEF
+
+#ÅäÖÃÑз¢Ä£Ê½É豸µÄReleaseID
+RELEASEID_TSP=0100
+
+#ÅäÖÃÓû§Ä£Ê½É豸µÄReleaseID
+RELEASEID_USER=0101
+
+#ÅäÖÃÉ豸µÄmanufacturer×Ö·û´®
+MANUFACTURER_TSP=DEMO,Incorporated
+
+#ÅäÖÃÉ豸µÄproduct×Ö·û´®
+PRODUCT_TSP=DEMO Mobile Boardband
+
+#ÅäÖÃÉ豸µÄconfig×Ö·û´®
+CONFIG_TSP=DEMO Configuration
+
+#cdrom lunµÄvendor×Ö·û´®
+VENDOR_MS_CDROM=DEMO
+
+#cdrom lunµÄproduct×Ö·û´®
+PRODUCT_MS_CDROM=USB SCSI CD-ROM
+
+#cdrom lunµÄrelease×Ö·û´®
+RELEASE_MS_CDROM=2.31
+
+#cdrom lunµÄinquiry×Ö·û´®
+INQUIRY_MS_CDROM=DEMO USB SCSI CD-ROM 2.31
+#mmc lunµÄvendor×Ö·û´®
+VENDOR_MS_MMC=DEMO
+
+#mmc lunµÄproduct×Ö·û´®
+PRODUCT_MS_MMC=MMC Storage
+
+#mmc lunµÄrelease×Ö·û´®
+RELEASE_MS_MMC=2.31
+
+#SD½éÖÊ·¾¶
+usb_tcard_lun_path=/dev/mmcblk0
+
+#mmc lunµÄinquiry×Ö·û´®
+INQUIRY_MS_MMC=DEMO MMC Storage 2.31
+
+#ÅäÖÃECMÍø¿¨¸öÊý
+ECM_NUM=1
+
+#ÅäÖÃRNDISÍø¿¨×î´ó×é°üÊý
+RNDIS_PKT_NUM=10
+
+
+###²¨ÌØÂÊ×ÔÊÊÓ¦¿ª¹Ø###
+self_adaption_port=
+###ijЩ¶Ë¿Ú²»ÐèÒªÏòÓ¦ÓÃÉϱ¨¶Ë¿Ú×¼±¸ºÃÏûÏ¢###
+notify_forbiden_ports=
+
+###adbĬÈϹÒÔØºË,0:ap;1:cap###
+adb_core_id=1
+######USB¶Ë¿ÚÅäÖÃEND#######
+
+######CP²àNVÅäÖÃÐÅÏ¢#######
+#ÄÚ²¿Èí¼þ°æ±¾ºÅ
+zversion=K318V1.0.0B03
+#ÍⲿÈí¼þ°æ±¾ºÅ
+zcgmr=DEMO_V1.0.0B03
+#Ó²¼þ°æ±¾ºÅ
+zhver=V0.1
+#ÄÚ²¿»úÐÍ
+zcgmm=K318
+#Íⲿ»úÐÍ
+zcgmw=K318
+#³§ÉÌÐÅÏ¢
+zcgmi=DEMO
+#SSIDºÅ
+zssid=0
+#WifiKeyµÄÖµ
+zwifikey=0
+#ËøÍø×î´ó½âËø´ÎÊý£¬ËøÍøÄ£¿éʹÓÃ
+zunlocktimes=0
+#°æ±¾Ä£Ê½ÀàÐÍ£¬Õý³£°æ±¾/¹Ò²à°æ±¾
+zversionmode=0
+#ÖÇÄܶÌÐŹ¦ÄÜ¿ª¹Ø
+zisms=0
+#DM¹¦ÄÜ¿ª¹Ø,0:¹Ø±Õ£¬1ÒÆ¶¯£¬2ÁªÍ¨£¬3µçÐÅ
+zdmreg=0
+#ÁªÍ¨DM ×¢²á¿ª»úµÈ´ýʱ¼ä, 1~60 ÓÐЧ£¬µ¥Î»·ÖÖÓ£¬ÆäËûÊýÖµ: ÎÞЧֵ
+zdmregtime=0
+
+#¹¤¾ßzlog_agent´æÈ¡
+zcat_mode=CPUSB
+zlog_num=10
+zlog_size=100
+zlog_path=/mnt/userdata/zcat
+rule_file=/etc_ro/logrule/ati_std.rule
+
+#ramdump´æ´¢Ä£Ê½
+#no,auto,yes
+ramdump_export=no
+#USB or CAPEMMC or CAPFLASH
+ramdump_mode=USB
+ramdump_emmc_device=/dev/mmcblk1p1
+ramdump_flash_device=/dev/mtd17
+ramdump_path=/mnt/oemdata
+
+#ÕÕÏà»úͼƬ·Ö±æÂÊÏÔʾ¿ØÖÆ
+zcamera_interprolation=1
+#×Ô¶¯ËÑÍø·½Ê½ÍøÂç½ÓÈë´ÎÐò
+auto_acqorder=12
+######CP²àNVÅäÖÃÐÅÏ¢END#######
+#for volte
+MTNET_TEST=0
+NSIOT_TEST=0
+amrw=1
+cvmod_ims=3
+EM_CALL_SUPPORT=0
+EMCALL_TO_NORMAL=0
+IMS_APN=
+IMS_CONFURI=
+IMS_CC_URI_TYPE=0
+IMS_SMS_URI_TYPE=0
+IMS_REG_EXPIRES=600000
+IMS_REG_SUB_EXPIRES=600000
+NET_IMS_CAP=0
+UDP_THRESH=1300
+IPSEC_DISABLE=0
+PRECONDTION_NOT_SUPPORT=0
+WAIT_RPT_TIME=1000
+OCT_ALGN_AMR=0
+SMS_OVER_IP=1
+IMS_USER_AGENT=
+BSF_PORT=8080
+XCAP_PORT=80
+UT_APN=
+380_THEN_CSFB=0
+DTMF_RFC4733=0
+DIALOG_FORK=0
+DATA_CENTRIC=0
+not_supp_hmac_sha1_96=0
+not_supp_hmac_md5_96=0
+not_supp_des_ede3_cbc=0
+not_supp_aes_cbc=0
+IMS_PCSCF_PORT=5060
+G_IMS_CMGF=0
+ECALL_MTTEST=0
+POWER_CONTROL=0
+NOT_KEEP_TCP_CONN=1
+T3396_SUPPORT=0
+T3396_CAUSE_REASON=8,27,32,33
+T3396_DURATION=720
+T3396_COUNTS=3
+ECALL_T2_TIMER=3600
+NGECALL_FORTEST=0
+CUSTOMER_FLAG=0
+#for volte end
+DEBUG_INFO_DISABLE=0
+DEBUG_INFO_FILE_PATH=/mnt/userdata
+DEBUG_INFO_FILE_NUM=2
+DEBUG_INFO_FILE_TOTAL_SIZE=1
+#debug info end
\ No newline at end of file
diff --git a/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/default/default_parameter_user b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/default/default_parameter_user
new file mode 100755
index 0000000..dc03706
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_4Gb/fs/normal/rootfs/etc_ro/default/default_parameter_user
@@ -0,0 +1,495 @@
+apn_auto_config=CMCC($)cmnet($)manual($)*99#($)pap($)($)($)IP($)auto($)($)auto($)($)
+APN_config0=Default($)Default($)manual($)($)($)($)($)IP($)auto($)($)auto($)($)
+APN_config1=
+APN_config2=
+APN_config3=
+APN_config4=
+APN_config5=
+APN_config6=
+APN_config7=
+APN_config8=
+APN_config9=
+apn_index=0
+apn_mode=auto
+at_snap_flag=3
+at_wifi_mac=0
+auto_apn_index=0
+cid_reserved=1
+clear_pb_when_restore=no
+clear_sms_when_restore=no
+default_apn=3gnet
+ipv6_APN_config1=
+ipv6_APN_config2=
+ipv6_APN_config3=
+ipv6_APN_config4=
+ipv6_APN_config5=
+ipv6_APN_config6=
+ipv6_APN_config7=
+ipv6_APN_config8=
+ipv6_APN_config9=
+m_profile_name=Internux
+need_init_modem=no
+net_select=NETWORK_auto
+pdp_type=IP
+ppp_apn=
+max_reconnect_time=3000000
+pppd_auth=noauth
+ppp_auth_mode=none
+ppp_passwd=
+ppp_pdp_type=
+ppp_username=
+ipv6_ppp_auth_mode=none
+ipv6_ppp_passwd=
+ipv6_ppp_username=
+pre_mode=
+prefer_dns_manual=0.0.0.0
+standby_dns_manual=0.0.0.0
+wan_apn=internet
+wan_dial=
+cta_test=0
+safecare_enbale=1
+safecare_hostname=mob.3gcare.cn
+safecare_registed_imei=
+safecare_registed_iccid=
+safecare_contimestart1=
+safecare_contimestart2=
+safecare_contimestart3=
+safecare_contimestop1=
+safecare_contimestop2=
+safecare_contimestop3=
+safecare_contimeinterval=
+safecare_mobsite=http://mob.3gcare.cn
+safecare_chatsite=
+safecare_platno=
+safecare_mobilenumber=
+safecare_version=
+ethwan_dns_mode=auto
+pswan_dns_mode=auto
+wifiwan_dns_mode=auto
+ethwan_ipv6_dns_mode=auto
+wifiwan_ipv6_dns_mode=auto
+pswan_ipv6_dns_mode=auto
+admin_Password=Pass1234
+psw_changed=1
+alg_ftp_enable=0
+alg_sip_enable=0
+blc_wan_auto_mode=AUTO_PPP
+blc_wan_mode=AUTO
+br_ipchange_flag=
+br_node=usblan0+zvnet0
+br_node_cap=zvnet0
+clat_fake_subnet=192.0.168.0
+clat_frag_collect_timeout=300
+clat_local_mapping_timeout=300
+clat_mapping_record_timeout=3000
+clat_query_server_port=1464
+DefaultFirewallPolicy=0
+dev_coexist=0
+dhcpDns=192.168.0.1
+dhcpEnabled=1
+dhcpEnd=192.168.0.200
+dhcpLease_hour=24
+dhcpStart=192.168.0.100
+dhcpv6stateEnabled=0
+dhcpv6statelessEnabled=1
+dhcpv6statePdEnabled=0
+dial_mode=auto_dial
+DMZEnable=0
+DMZIPAddress=
+dns_extern=
+ipv6_dns_extern=
+eth_act_type=
+eth_type=lan
+ethlan=
+ethwan=
+ethwan_dialmode=auto
+ethwan_mode=auto
+ethwan_priority=3
+fast_usb=usblan0
+fastnat_level=2
+fastbr_level=1
+IPPortFilterEnable=0
+IPPortFilterRules_0=
+IPPortFilterRules_1=
+IPPortFilterRules_2=
+IPPortFilterRules_3=
+IPPortFilterRules_4=
+IPPortFilterRules_5=
+IPPortFilterRules_6=
+IPPortFilterRules_7=
+IPPortFilterRules_8=
+IPPortFilterRules_9=
+IPPortFilterRulesv6_0=
+IPPortFilterRulesv6_1=
+IPPortFilterRulesv6_2=
+IPPortFilterRulesv6_3=
+IPPortFilterRulesv6_4=
+IPPortFilterRulesv6_5=
+IPPortFilterRulesv6_6=
+IPPortFilterRulesv6_7=
+IPPortFilterRulesv6_8=
+IPPortFilterRulesv6_9=
+ipv4_fake_subnet=192.0.0.0
+ipv6_fake_subnet=2016::1
+lan_ipaddr=192.168.0.1
+webv6_enable=1
+lan_ipv6addr=fe80::1
+lan_name=br0
+lan_netmask=255.255.255.0
+LanEnable=1
+dhcpDns_cap=192.168.0.2
+lan_ipv6addr_cap=fe80::2
+lan_ipaddr_cap=192.168.0.2
+lan_name_cap=br0
+lan_netmask_cap=255.255.255.0
+LanEnable_cap=1
+mac_ip_list=
+mgmt_quicken_power_on=0
+mtu=1400
+natenable=
+dosenable=0
+need_jilian=1
+nofast_port=21+22+23+25+53+67+68+69+110+115+123+443+500+1352+1723+1990+1991+1992+1993+1994+1995+1996+1997+1998+4500+5060
+nv_save_interval=300
+path_conf=/etc_rw
+path_ro=/etc_ro
+path_log=/tmp/
+netlog_limit=yes
+path_sh=/sbin
+path_tmp=/tmp
+permit_gw=
+permit_ip6=
+permit_nm=255.255.255.0
+PortForwardEnable=0
+PortForwardRules_0=
+PortForwardRules_1=
+PortForwardRules_2=
+PortForwardRules_3=
+PortForwardRules_4=
+PortForwardRules_5=
+PortForwardRules_6=
+PortForwardRules_7=
+PortForwardRules_8=
+PortForwardRules_9=
+PortMapEnable=0
+PortMapRules_0=
+PortMapRules_1=
+PortMapRules_2=
+PortMapRules_3=
+PortMapRules_4=
+PortMapRules_5=
+PortMapRules_6=
+PortMapRules_7=
+PortMapRules_8=
+PortMapRules_9=
+ppp_name=ppp0
+pppoe_password=
+pppoe_username=
+ps_ext1=zvnet1
+ps_ext2=zvnet2
+ps_ext3=zvnet3
+ps_ext4=zvnet4
+ps_ext5=zvnet5
+ps_ext6=zvnet6
+ps_ext7=zvnet7
+ps_ext8=zvnet8
+pswan=wan
+pswan_mode=pdp
+pswan_priority=1
+pswan_cap=zvnet
+RemoteManagement=0
+rootdev_friendlyname=DEMO-UPnP
+rootdev_manufacturer=DEMO
+rootdev_modeldes=XXX
+rootdev_modelname=XXX
+os_url=http://www.demo.com
+serialnumber=See-IMEI
+static_dhcp_enable=1
+static_ethwan_gw=
+static_ethwan_ip=
+static_ethwan_nm=
+static_ethwan_pridns=
+static_ethwan_secdns=
+static_wifiwan_ipaddr=
+static_wifiwan_netmask=
+static_wifiwan_gateway=
+wifiwan_pridns_manual=
+wifiwan_secdns_manual=
+static_wan_gateway=0.0.0.0
+static_wan_ipaddr=0.0.0.0
+static_wan_netmask=0.0.0.0
+static_wan_primary_dns=0.0.0.0
+static_wan_secondary_dns=0.0.0.0
+swlanstr=sw0_lan
+swvlan=sw0
+swwanstr=sw0_wan
+tc_downlink=
+tc_uplink=
+tc_local=1310720
+tc_enable=0
+time_limited=
+time_to_2000_when_restore=yes
+upnpEnabled=0
+usblan=usblan0
+WANPingFilter=0
+websURLFilters=
+wifiwan_priority=2
+DDNS=
+DDNS_Enable=0
+DDNSAccount=
+DDNSPassword=
+DDNSProvider=
+iccidPrevious=
+imeiPrevious=
+registerFlag=0
+registeredRound=
+secsEveryRound=1
+secsEveryTime=1
+regver=4.0
+meid=
+uetype=1
+LocalDomain=m.home
+data_volume_alert_percent=
+data_volume_limit_size=
+data_volume_limit_switch=0
+data_volume_limit_unit=0
+flux_day_total=0
+flux_last_day=
+flux_last_month=
+flux_last_year=
+flux_month_total=0
+flux_set_day=
+flux_set_month=
+flux_set_year=
+monthly_rx_bytes=0
+monthly_time=0
+monthly_tx_bytes=0
+MonthlyConTime_Last=
+dm_nextpollingtime=
+fota_allowRoamingUpdate=0
+fota_dl_pkg_size=0
+fota_update_flag=
+fota_updateIntervalDay=15
+fota_upgrade_result=
+fota_version_delta_id=
+fota_version_delta_url=
+fota_pkg_total_size=0
+fota_version_file_size=
+fota_version_md5sum=
+fota_version_name=
+fota_need_user_confirm_update=0
+fota_need_user_confirm_download=0
+fota_version_force_install=0
+polling_nexttime=0
+pwron_auto_check=0
+fota_updateMode=0
+fota_test_mode=0
+fota_pkg_downloaded=0
+fota_upgrade_result_internal=
+mmi_battery_voltage_line=3090+3300+3450+3490+3510+3540+3550+3570+3580+3600+3620+3650+3670+3710+3740+3780+3850+3900+3950+4000+4060
+mmi_fast_poweron=
+mmi_led_mode=sleep_mode
+mmi_new_sms_blink_flag=1
+mmi_show_pagetab=page1+page2+page3
+mmi_showmode=led
+mmi_task_tab=ctrl_task+key_task
+mmi_temp_voltage_line=951+1201+1692+1736
+mmi_use_protect=
+mmi_use_wifi_usernum=1
+leak_full_panic=
+leak_list_max=
+leak_set_flag=
+monitor_period=300
+netinf_flag=
+skb_all_max=
+skb_data_max=
+skb_fromcp_max=
+skb_max_fail=
+skb_max_panic=
+skb_size_max=
+skb_tocp_max=
+sntp_default_ip=134.170.185.211;131.107.13.100;202.112.31.197;202.112.29.82;202.112.10.36;ntp.gwadar.cn;ntp-sz.chl.la;dns.sjtu.edu.cn;news.neu.edu.cn;dns1.synet.edu.cn;time-nw.nist.gov;pool.ntp.org;europe.pool.ntp.org
+sntp_dst_enable=0
+sntp_other_server0=
+sntp_other_server1=
+sntp_other_server2=
+sntp_server0=time-nw.nist.gov
+sntp_server1=pool.ntp.org
+sntp_server2=europe.pool.ntp.org
+sntp_sync_select_interval_time=30
+sntp_time_set_mode=auto
+sntp_timezone=CST-8
+sntp_timezone_index=0
+assert_errno=
+comm_logsize=16384
+cr_inner_version=V1.0.0B08
+cr_version=V1.0.0B01
+hw_version=PCBMF29S2V1.0.0
+TURNOFF_CHR_NUM=
+watchdog_app=0
+HTTP_SHARE_FILE=
+HTTP_SHARE_STATUS=
+HTTP_SHARE_WR_AUTH=readWrite
+ipv6_pdp_type=
+ipv6_wan_apn=
+Language=zh-cn
+manual_time_day=
+manual_time_hour=
+manual_time_minute=
+manual_time_month=
+manual_time_second=
+manual_time_year=
+sdcard_mode_option=0
+AccessControlList0=
+AccessPolicy0=0
+ACL_mode=0
+AuthMode=WPA2PSK
+Channel=0
+wifi_acs_num=5
+closeEnable=0
+closeTime=
+CountryCode=CN
+DefaultKeyID=0
+DtimPeriod=1
+EncrypType=AES
+EX_APLIST=
+EX_APLIST1=
+EX_AuthMode=
+EX_DefaultKeyID=
+EX_EncrypType=
+EX_mac=
+EX_SSID1=Ufi_
+EX_WEPKEY=
+EX_wifi_profile=
+EX_WPAPSK1=
+FragThreshold=2346
+HideSSID=0
+HT_GI=1
+Key1Str1=12345
+Key2Str1=
+Key3Str1=
+Key4Str1=
+Key1Type=1
+Key2Type=
+Key3Type=
+Key4Type=
+m_AuthMode=WPA2PSK
+m_DefaultKeyID=
+m_EncrypType=AES
+m_HideSSID=0
+m_Key1Str1=1234
+m_Key2Str1=
+m_Key3Str1=
+m_Key4Str1=
+m_Key1Type=1
+m_Key2Type=
+m_Key3Type=
+m_Key4Type=
+m_MAX_Access_num=0
+m_NoForwarding=
+m_show_qrcode_flag=0
+m_SSID=Ufi_
+m_ssid_enable=0
+m_wapiType=
+m_wifi_mac=901D45692A5C
+m_WPAPSK1_aes=
+m_WPAPSK1_encode=MTIzNDU2Nzg=
+MAX_Access_num=32
+MAX_Access_num_bak=32
+NoForwarding=0
+openEnable=0
+openTime=
+operater_ap=
+RekeyInterval=3600
+RTSThreshold=2347
+show_qrcode_flag=0
+Sleep_interval=10
+ssid_write_flag=0
+SSID1=Ufi_
+tsw_sleep_time_hour=
+tsw_sleep_time_min=
+tsw_wake_time_hour=
+tsw_wake_time_min=
+wapiType=
+wifi_force_40m=1
+wifi_11n_cap=1
+wifi_band=b
+wifi_coverage=long_mode
+wifi_hostname_black_list=
+wifi_hostname_white_list=
+wifi_mac=901D45692A5B
+wifi_mac_black_list=
+wifi_mac_white_list=
+wifi_profile=
+wifi_profile1=
+wifi_profile2=
+wifi_profile3=
+wifi_profile4=
+wifi_profile5=
+wifi_profile6=
+wifi_profile7=
+wifi_profile8=
+wifi_profile9=
+wifi_profile_num=0
+wifi_root_dir=
+wifi_sta_connection=0
+wifi_wps_index=1
+wifiEnabled=1
+wifilan=wlan0-va0
+wifilan2=wlan0-va1
+WirelessMode=6
+WPAPSK1_aes=
+WPAPSK1_encode=MTIzNDU2Nzg=
+wps_mode=
+WPS_SSID=
+WscModeOption=0
+monitor_apps=
+at_netdog=
+autorspchannel_list=all
+soctime_switch=0
+uart_control=1
+uart_ctstrs_enable=
+uart_softcontrol_enable=
+uart_wakeup_enable=1
+uart_console_coreid=1
+uart_app_ctrl=5
+special_cmd_list=$MYNETREAD
+ra_mtu_enable=
+##为入网入库芯片认证版本添加 begin
+atcmd_stream1=AT+ZSET="w_instrument",1
+atcmd_stream2=AT^SYSCONFIG=24,0,1,2
+atcmd_stream3=AT+ZSET="csiiot",2
+atcmd_stream4=AT+ZSET="dlparaflg",0
+atcmd_stream5=AT+ZSET="MTNET_TEST",1;AT+ZGAAT=0;AT+ZSET="CMCC_TEST",1;AT+ZSET="LTE_INFO",6348;AT+ZSET="VOICE_SUPPORT",1;AT+ZSET="FDD_RELEASE",7;AT+ZSET="LTE_RELEASE",1;AT+ZSET="UE_PS_RELEASE",5;AT+ZSET="QOS_RELEASE",4;AT+ZSET="TEBS_THRESHOLD",0
+atcmd_stream6=AT+ZSET="MTNET_TEST",1;AT+ZGAAT=0;AT+ZSET="LTE_INFO",6348;AT+ZSET="VOICE_SUPPORT",1;AT+ZSET="FDD_RELEASE",7;AT+ZSET="LTE_RELEASE",1;AT+ZSET="UE_PS_RELEASE",5;AT+ZSET="QOS_RELEASE",4;AT+ZSET="TEBS_THRESHOLD",0;AT+ZSET="IGNORE_SECURITY_SUPPORT",0;AT+ZSET="csifilter",0;AT+ZSET="csrhobandflg",0;AT+ZSET="dlparaflg",1;AT+ZSET="csiup",1;AT+ZSET="rfparaflag",0,0,1,0;AT+ZSET="csiiot",1;AT+ZSET="EXCEPT_RESET",0;AT+ZSET="ISIM_SUPPORT",1;AT+ZIMSTEST="MTNET_TEST",1;AT+ZSET="MANUAL_SEARCH",0
+##为入网入库芯片认证版本添加 end
+#for audio ctrl
+audio_priority=0123
+customer_type=
+debug_mode=
+cpIndCmdList=+ZMMI+ZURDY+ZUSLOT+ZICCID^MODE+ZPBIC+ZMSRI+CREG+CEREG+CGREG+CGEV
+zephyr_filter_ip=
+wait_timeout=2
+sntp_sync_time=1
+sntp_static_server0=time-nw.nist.gov
+sntp_static_server1=pool.ntp.org
+sntp_static_server2=europe.pool.ntp.org
+vsim_bin_path=/mnt/userdata/vSim.bin
+at_select_timeout=
+mtnet_test_mcc=+001+002+003+004
+at_atv=
+at_atq=
+at_at_d=
+at_ptsnum=
+quick_dial=1
+cap_port_name=/dev/ttyGS0
+customIndCmdList=
+defrt_cid=1
+MaxRtrAdvInterval=1800
+dhcps_in_cap=1
+gw_in_cap=0
+#yes-on no-off
+cc_at_debug=no
+xlat_enable=0
+telog_path_cap=
+telog_path=
diff --git a/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/init.d/rcS b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/init.d/rcS
new file mode 100755
index 0000000..e7959fe
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/init.d/rcS
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# Start all init scripts in /etc/rcS.d and /etc/rc5.d
+# executing them in numerical order.
+#
+
+. /etc/init.d/first.sh
+
+sh /etc/init.d/enter_amt.sh
+if [ $? -eq 0 ]; then
+ echo "enter into amt mode"
+ exit 0
+fi
+
+for i in /etc/rcS.d/S??* ;do
+
+ # Ignore dangling symlinks (if any).
+ [ ! -f "$i" ] && continue
+
+ case "$i" in
+ *.sh)
+ # Source shell script for speed.
+ (
+ trap - INT QUIT TSTP
+ set start
+ . $i
+ )
+ ;;
+ *)
+ # No sh extension, so fork subprocess.
+ $i start
+ ;;
+ esac
+done
+
+. /etc/rc.local
+
+exit 0
+
diff --git a/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/init.d/zcatlog_config.sh b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/init.d/zcatlog_config.sh
new file mode 100755
index 0000000..5c6648f
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/init.d/zcatlog_config.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+ramdump_mode=`nv get ramdump_mode`
+
+if [ -e /proc/sys/ramdump_ap/ramdump_start_addr ]; then
+ if [ "$ramdump_mode" == "CAPEMMC" ]; then
+ ramdump_dev=`nv get ramdump_emmc_device`
+ if [ -b $ramdump_dev ]; then
+ ramdump_start=`fdisk -l | grep $ramdump_dev | awk '{ print $4 }'`
+ ramdump_save_size=`fdisk -l | grep $ramdump_dev | awk '{ print $6 }'`
+ echo $ramdump_start > /proc/sys/ramdump_ap/ramdump_start_addr
+ echo $ramdump_save_size > /proc/sys/ramdump_ap/ramdump_emmc_size
+ else
+ echo "[zxic_ramdump]$ramdump_dev is not exist!"
+ fi
+ else
+ if [ -b $ramdump_dev ]; then
+ echo 0 > /proc/sys/ramdump_ap/ramdump_start_addr
+ fi
+ fi
+fi
+# 0 for usb, 1 for net
+if [ -e /proc/sys/zcatkern/log_com_mode ]; then
+ zcat_com_mode=`nv get zcat_mode`
+ if [ "$zcat_com_mode" == "net" ]; then
+ echo 1 > /proc/sys/zcatkern/log_com_mode
+ else
+ echo 0 > /proc/sys/zcatkern/log_com_mode
+ fi
+# sh /etc/zcatlog_monitor.sh &
+fi
+
diff --git a/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/profile b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/profile
new file mode 100755
index 0000000..d8cbfdf
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc/profile
@@ -0,0 +1,2 @@
+
+PATH="/sbin:/bin:/usr/sbin:/usr/bin:/mnt/oem/bin"
diff --git a/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc_ro/default/default_parameter_sys b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc_ro/default/default_parameter_sys
new file mode 100755
index 0000000..da7ced4
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/etc_ro/default/default_parameter_sys
@@ -0,0 +1,458 @@
+
+######SOFTAPרÓà START###################################
+check_roam=yes
+gsm_signalbar0_low=0
+gsm_signalbar0_high=0
+gsm_signalbar1_low=1
+gsm_signalbar1_high=2
+gsm_signalbar2_low=3
+gsm_signalbar2_high=6
+gsm_signalbar3_low=7
+gsm_signalbar3_high=9
+gsm_signalbar4_low=10
+gsm_signalbar4_high=12
+gsm_signalbar5_low=13
+gsm_signalbar5_high=31
+wcdma_signalbar0_low=0
+wcdma_signalbar0_high=0
+wcdma_signalbar1_low=1
+wcdma_signalbar1_high=8
+wcdma_signalbar2_low=9
+wcdma_signalbar2_high=16
+wcdma_signalbar3_low=17
+wcdma_signalbar3_high=22
+wcdma_signalbar4_low=23
+wcdma_signalbar4_high=28
+wcdma_signalbar5_low=29
+wcdma_signalbar5_high=91
+tds_signalbar0_low=0
+tds_signalbar0_high=0
+tds_signalbar1_low=1
+tds_signalbar1_high=8
+tds_signalbar2_low=9
+tds_signalbar2_high=16
+tds_signalbar3_low=17
+tds_signalbar3_high=22
+tds_signalbar4_low=23
+tds_signalbar4_high=28
+tds_signalbar5_low=29
+tds_signalbar5_high=91
+lte_signalbar0_low=0
+lte_signalbar0_high=0
+lte_signalbar1_low=1
+lte_signalbar1_high=25
+lte_signalbar2_low=26
+lte_signalbar2_high=32
+lte_signalbar3_low=33
+lte_signalbar3_high=38
+lte_signalbar4_low=39
+lte_signalbar4_high=44
+lte_signalbar5_low=45
+lte_signalbar5_high=97
+need_cops_number_format=yes
+need_display_searching_status=yes
+need_restart_when_sim_insert=no
+need_support_pb=no
+need_support_sms=no
+network_need_gsm=yes
+network_need_tds=yes
+product_model=MF910W
+roam_setting_option=on
+use_lock_net=no
+network_category_based_on=act
+admin_user=admin
+appKeyMobile=A100000853
+Brand=DEMO
+hostName=dm.wo.com.cn
+Intype=DEMO
+Manuf=
+Model=
+portNum=6001
+registerDmType=0
+secsTime=1
+versionPrevious=
+wa_version=
+OSVersion=1
+OS=TOS
+urlMobile=
+DNS_proxy=
+#l.yang modify fot T106BUG-387 start
+dnsmasqfile=/mnt/userdata/log/dnsmasq.log
+#l.yang modify fot T106BUG-387 end
+dnsmasqfileSize=1024
+lan_domain_Enabled=1
+auto_connect_when_limited=no
+is_traffic_aline_on=no
+is_traffic_alining=no
+is_traffic_limit_on=no
+keep_online_when_limited=no
+traffic_sms_number=0
+update_type=mifi_fota
+
+fota_device_type=mdl
+fota_models=ZTE7520V3
+fota_oem=ZTE
+fota_platform=ZX297520
+fota_dm_vendor=rs
+fota_token_rs=8msgzdxxftrtys0irnuifh7o
+fota_product_id=1553742041
+fota_product_secret=23b3faf2dafb42dfb3382c0d7d66315b
+fota_app_version=2
+fota_network_type=WIFI
+fota_token_zx=7CBE016400F65621740A04E742E6FB12
+fota_dl_url_zx=
+fota_chk_url_zx=
+fota_reg_url_zx=
+fota_report_dlr_url_zx=
+fota_report_upgr_url_zx=
+fota_report_sales_url_zx=
+fota_token_gs=97a53ee9f45adfe53c762a72f83f6f43
+fota_dl_url_gs=
+fota_chk_url_gs=
+fota_reg_url_gs=
+fota_report_dlr_url_gs=
+fota_report_upgr_url_gs=
+fota_report_sales_url_gs=
+fota_update_space_threshold=800
+fota_ab_upgrade_status=6
+fota_ab_upgrade_total_size=0
+fota_ab_upgrade_updated_size=0
+fota_ab_aa_sync_status=2
+#l.yang modify fot T106BUG-387 start
+fota_ab_log_path=/mnt/userdata/zte_fota_ab/upi_ab.log
+#l.yang modify fot T106BUG-387 end
+fota_aa_auto_sync=0
+Login=admin
+Password=
+sntp_server_count=3
+MAX_Station_num=32
+MAX_Station_num_bak=0
+MAX_Access_num_bbak=0
+MAX_Chip_Capability=32
+wifi_key_gen_type=MAC
+wifi_key_len=8
+wifi_key_only_digit=y
+wifi_lte_intr=1
+wifi_ssid_gen_with_mac_lastbyte=6
+wifi_key_gen_with_mac_lastbyte=8
+wifi_mac_num=2
+wifiwan=wlan0-vxd
+wifiwan_mode=dhcp
+idle_time="600"
+product_type=1
+errnofile=/usr/netlog/errno.log
+errnofileSize=1024
+hotplugfile=/usr/netlog/hotplug.log
+hotplugfileSize=1024
+mynetlinkfile=/usr/netlog/mynetlink.log
+mynetlinkfileSize=1024
+telnetd_enable=n
+
+#syslogdÏà¹ØÅäÖÃ
+syslog_file_size=1
+syslog_file_num=5
+#jb.qi change for log on 20240110 start
+print_level=1
+syslog_level=1
+#jb.qi change for log on 20240110 end
+
+skb_debug=
+seclog_switch=
+################SOFTAPרÓà END#####################################
+
+######USB¶Ë¿ÚÅäÖÃ#######
+
+##########usb/rj45µÈÈȰβåÏà¹ØÂ·¾¶##############
+#rj45³õʼ״̬·¾¶
+rj45_plugstate_path=/sys/kernel/eth_debug/eth_state
+#usbÍø¿ÚÃû·¾¶
+usb_name_path=/sys/dwc_usb/usbconfig/netname
+#usb¸÷Íø¿Ú״̬·¾¶
+usb_plugstate_path=/sys/dwc_usb/usbconfig/
+################################################
+
+#ͨ¹ýgpio¼ì²â²å°Î£¬ÓÃÓÚ×Ô¶¯»¯µ÷ÊÔ
+usb_gpio_detect=1
+
+#ÅäÖÃÊÇ·ñÓйâÅÌ
+cdrom_state=0
+
+#cdromµÚ¶þ½×¶Îö¾Ù£º0Ϊ²»ÐèҪö¾Ù£¬1ΪÐèҪö¾ÙÇÒÐèÒª¹ÒÔØ½éÖÊ£¬2Ϊ²»ÐèÒª¹ÒÔØ½éÖÊ#
+need_support_cdrom_step2=0
+#ÅäÖÃWindowsÏÂÍø¿¨ÀàÐÍ
+select_type=select_rndis
+
+####
+#ÅäÖÃÑз¢Ä£Ê½usbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_debug=diag,adb,serial,acm
+
+
+#ÅäÖÃÓû§Ä£Ê½ÊÇ·ñʹÓÃÍø¿¨
+usb_vnic_user=on
+
+#ÅäÖÃÓû§Ä£Ê½usbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_user=adb,acm
+
+#ÅäÖÃÉú²úģʽusbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_factory=serial,diag
+
+#ÅäÖÃAMTģʽusbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_amt=serial,diag
+
+#ÅäÖÃÑз¢Ä£Ê½acm´®¿Ú¸öÊý
+usb_acm_num_debug=1
+
+#ÅäÖÃÑз¢Ä£Ê½serial´®¿Ú¸öÊý
+usb_serial_num_debug=1
+
+#ÅäÖÃÓû§Ä£Ê½acm´®¿Ú¸öÊý
+usb_acm_num_user=1
+
+#ÅäÖÃÓû§Ä£Ê½serial´®¿Ú¸öÊý
+usb_serial_num_user=0
+
+#ÅäÖÃÉú²úģʽacm´®¿Ú¸öÊý
+usb_acm_num_factory=0
+
+#ÅäÖÃÉú²úģʽserial´®¿Ú¸öÊý
+usb_serial_num_factory=1
+
+#ÅäÖÃAMTģʽacm´®¿Ú¸öÊý
+usb_acm_num_amt=0
+
+#ÅäÖÃAMTģʽserial´®¿Ú¸öÊý
+usb_serial_num_amt=2
+
+#wangzhen
+#ÅäÖÃdebugģʽmass_storageµÄlunµÄģʽ
+usb_lun_type_debug=MMC
+
+#ÅäÖÃuserģʽmass_storageµÄlunµÄģʽ
+usb_lun_type_user=MMC
+
+#ÅäÖÃcdromģʽmass_storageµÄlunµÄģʽ
+usb_lun_type_cdrom=MMC
+###
+
+#ÅäÖÃÑз¢Ä£Ê½Íø¿ÚΪNDISʱÉ豸µÄPID
+PID_TSP_NDIS=0582
+###
+
+#ÅäÖÃÑз¢Ä£Ê½Íø¿ÚΪRNDISʱÉ豸µÄPID
+PID_TSP_RNDIS=0582
+
+#ÅäÖÃÑз¢Ä£Ê½Íø¿ÚΪECMʱÉ豸µÄPID
+PID_TSP_ECM=0582
+
+#ÅäÖÃÑз¢Ä£Ê½Ò쳣ʱÉ豸µÄPID
+PID_TEST=ff00
+
+#ÅäÖÃÑÛͼģʽʱÉ豸µÄPID
+PID_YT=0580
+
+#ÅäÖÃÑз¢Ä£Ê½¹âÅÌCDROMµÄPID
+PID_TSP_CDROM=0548
+
+#####
+
+#ÅäÖÃÓû§Ä£Ê½Ä£Ê½¹âÅÌCDROMµÄPID
+PID_USER_CDROM=1225
+
+#####
+#######
+#ÅäÖÃÓû§Ä£Ê½Íø¿ÚΪRNDISʱÉ豸µÄPID
+PID_USER_RNDIS=0585
+
+#ÅäÖÃÓû§Ä£Ê½Íø¿ÚΪECMʱÉ豸µÄPID
+PID_USER_ECM=0585
+
+#ÅäÖÃÓû§Ä£Ê½Íø¿ÚΪNDISʱÉ豸µÄPID
+PID_USER_NDIS=0583
+
+#ÅäÖÃÓû§Ä£Ê½Ã»ÓÐÍø¿ÚʱÉ豸µÄPID
+PID_USER_NOVNIC=0586
+######
+
+#ÅäÖÃËÀ»útrapʱÉ豸µÄPID
+PID_TRAP=0197
+
+#ÅäÖÃÉú²úģʽʱÉ豸µÄPID
+PID_FACTORY=0534
+
+#ÅäÖÃAMTģʽʱÉ豸µÄPID
+PID_AMT=0201
+
+#ÅäÖùػú³äµçʱÉ豸µÄPID
+PID_FASTPOWEROFF=2004
+
+#ÅäÖÃÉ豸µÄVID
+VID_TSP=19D2
+
+#ÅäÖÃÊÇ·ñÓÃchipid×÷ΪÉ豸µÄiSerial×Ö·û´®
+usb_sernum_chipid=0
+
+#ÅäÖÃÉ豸µÄiSerial×Ö·û´®
+SERIAL_TSP=1234567890ABCDEF
+
+#ÅäÖÃÑз¢Ä£Ê½É豸µÄReleaseID
+RELEASEID_TSP=0100
+
+#ÅäÖÃÓû§Ä£Ê½É豸µÄReleaseID
+RELEASEID_USER=0101
+
+#ÅäÖÃÉ豸µÄmanufacturer×Ö·û´®
+MANUFACTURER_TSP=DEMO,Incorporated
+
+#ÅäÖÃÉ豸µÄproduct×Ö·û´®
+PRODUCT_TSP=DEMO Mobile Boardband
+
+#ÅäÖÃÉ豸µÄconfig×Ö·û´®
+CONFIG_TSP=DEMO Configuration
+
+#cdrom lunµÄvendor×Ö·û´®
+VENDOR_MS_CDROM=DEMO
+
+#cdrom lunµÄproduct×Ö·û´®
+PRODUCT_MS_CDROM=USB SCSI CD-ROM
+
+#cdrom lunµÄrelease×Ö·û´®
+RELEASE_MS_CDROM=2.31
+
+#cdrom lunµÄinquiry×Ö·û´®
+INQUIRY_MS_CDROM=DEMO USB SCSI CD-ROM 2.31
+#mmc lunµÄvendor×Ö·û´®
+VENDOR_MS_MMC=DEMO
+
+#mmc lunµÄproduct×Ö·û´®
+PRODUCT_MS_MMC=MMC Storage
+
+#mmc lunµÄrelease×Ö·û´®
+RELEASE_MS_MMC=2.31
+
+#SD½éÖÊ·¾¶
+usb_tcard_lun_path=/dev/mmcblk0
+
+#mmc lunµÄinquiry×Ö·û´®
+INQUIRY_MS_MMC=DEMO MMC Storage 2.31
+
+#ÅäÖÃECMÍø¿¨¸öÊý
+ECM_NUM=1
+
+#ÅäÖÃRNDISÍø¿¨×î´ó×é°üÊý
+RNDIS_PKT_NUM=10
+
+
+###²¨ÌØÂÊ×ÔÊÊÓ¦¿ª¹Ø###
+self_adaption_port=
+###ijЩ¶Ë¿Ú²»ÐèÒªÏòÓ¦ÓÃÉϱ¨¶Ë¿Ú×¼±¸ºÃÏûÏ¢###
+#xf.li modify for open uart1
+notify_forbiden_ports=/dev/ttyS0
+#xf.li modify for open uart1
+
+###adbĬÈϹÒÔØºË,0:ap;1:cap###
+adb_core_id=1
+######USB¶Ë¿ÚÅäÖÃEND#######
+
+######CP²àNVÅäÖÃÐÅÏ¢#######
+#ÄÚ²¿Èí¼þ°æ±¾ºÅ
+zversion=K318V1.0.0B03
+#ÍⲿÈí¼þ°æ±¾ºÅ
+zcgmr=DEMO_V1.0.0B03
+#Ó²¼þ°æ±¾ºÅ
+zhver=V0.1
+#ÄÚ²¿»úÐÍ
+zcgmm=K318
+#Íⲿ»úÐÍ
+zcgmw=K318
+#³§ÉÌÐÅÏ¢
+zcgmi=DEMO
+#SSIDºÅ
+zssid=0
+#WifiKeyµÄÖµ
+zwifikey=0
+#ËøÍø×î´ó½âËø´ÎÊý£¬ËøÍøÄ£¿éʹÓÃ
+zunlocktimes=0
+#°æ±¾Ä£Ê½ÀàÐÍ£¬Õý³£°æ±¾/¹Ò²à°æ±¾
+zversionmode=0
+#ÖÇÄܶÌÐŹ¦ÄÜ¿ª¹Ø
+zisms=0
+#DM¹¦ÄÜ¿ª¹Ø,0:¹Ø±Õ£¬1ÒÆ¶¯£¬2ÁªÍ¨£¬3µçÐÅ
+zdmreg=0
+#ÁªÍ¨DM ×¢²á¿ª»úµÈ´ýʱ¼ä, 1~60 ÓÐЧ£¬µ¥Î»·ÖÖÓ£¬ÆäËûÊýÖµ: ÎÞЧֵ
+zdmregtime=0
+
+#¹¤¾ßzlog_agent´æÈ¡
+zcat_mode=CPUSB
+zlog_num=10
+zlog_size=100
+#jb.qi change for nv_log on 20240110 start
+zlog_path=/mnt/oemdata/zcat
+rule_file=/etc_ro/logrule/all_3.rule
+#jb.qi change for nv_log on 20240110 end
+
+#ramdump´æ´¢Ä£Ê½
+#no,auto,yes
+ramdump_export=no
+#USB or CAPEMMC or CAPFLASH
+ramdump_mode=USB
+ramdump_emmc_device=/dev/mmcblk1p1
+ramdump_flash_device=/dev/mtd17
+ramdump_path=/mnt/oemdata
+
+#ÕÕÏà»úͼƬ·Ö±æÂÊÏÔʾ¿ØÖÆ
+zcamera_interprolation=1
+#×Ô¶¯ËÑÍø·½Ê½ÍøÂç½ÓÈë´ÎÐò
+auto_acqorder=12
+######CP²àNVÅäÖÃÐÅÏ¢END#######
+#for volte
+MTNET_TEST=0
+NSIOT_TEST=0
+amrw=1
+cvmod_ims=3
+EM_CALL_SUPPORT=0
+EMCALL_TO_NORMAL=0
+IMS_APN=
+IMS_CONFURI=
+IMS_CC_URI_TYPE=0
+IMS_SMS_URI_TYPE=0
+IMS_REG_EXPIRES=600000
+IMS_REG_SUB_EXPIRES=600000
+NET_IMS_CAP=0
+UDP_THRESH=1300
+IPSEC_DISABLE=0
+PRECONDTION_NOT_SUPPORT=0
+WAIT_RPT_TIME=1000
+OCT_ALGN_AMR=0
+SMS_OVER_IP=1
+IMS_USER_AGENT=
+BSF_PORT=8080
+XCAP_PORT=80
+UT_APN=
+380_THEN_CSFB=0
+DTMF_RFC4733=0
+DIALOG_FORK=0
+DATA_CENTRIC=0
+not_supp_hmac_sha1_96=0
+not_supp_hmac_md5_96=0
+not_supp_des_ede3_cbc=0
+not_supp_aes_cbc=0
+IMS_PCSCF_PORT=5060
+G_IMS_CMGF=0
+ECALL_MTTEST=0
+#jb.qi change for T106BUG-655 start
+POWER_CONTROL=1
+#jb.qi change for T106BUG-655 end
+NOT_KEEP_TCP_CONN=1
+T3396_SUPPORT=0
+T3396_CAUSE_REASON=8,27,32,33
+T3396_DURATION=720
+T3396_COUNTS=3
+ECALL_T2_TIMER=3600
+NGECALL_FORTEST=0
+CUSTOMER_FLAG=0
+#for volte end
+DEBUG_INFO_DISABLE=0
+DEBUG_INFO_FILE_PATH=/mnt/userdata
+DEBUG_INFO_FILE_NUM=2
+DEBUG_INFO_FILE_TOTAL_SIZE=1
+#debug info end
diff --git a/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/sbin/fdisk_emmc.sh b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/sbin/fdisk_emmc.sh
new file mode 100755
index 0000000..492f934
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_ref/fs/normal/rootfs/sbin/fdisk_emmc.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+fdisk /dev/mmcblk1 <<EOF
+d
+5
+d
+4
+d
+3
+d
+2
+d
+1
+n
+p
+1
+
++200M
+n
+p
+2
+
++2048M
+n
+p
+3
+
++2048M
+n
+e
+
+
+n
+
+
+w
+EOF
\ No newline at end of file
diff --git a/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_systemd/fs/normal/rootfs/etc_ro/default/default_parameter_sys b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_systemd/fs/normal/rootfs/etc_ro/default/default_parameter_sys
new file mode 100755
index 0000000..57c1ad7
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_systemd/fs/normal/rootfs/etc_ro/default/default_parameter_sys
@@ -0,0 +1,446 @@
+
+######SOFTAPרÓà START###################################
+check_roam=yes
+gsm_signalbar0_low=0
+gsm_signalbar0_high=0
+gsm_signalbar1_low=1
+gsm_signalbar1_high=2
+gsm_signalbar2_low=3
+gsm_signalbar2_high=6
+gsm_signalbar3_low=7
+gsm_signalbar3_high=9
+gsm_signalbar4_low=10
+gsm_signalbar4_high=12
+gsm_signalbar5_low=13
+gsm_signalbar5_high=31
+wcdma_signalbar0_low=0
+wcdma_signalbar0_high=0
+wcdma_signalbar1_low=1
+wcdma_signalbar1_high=8
+wcdma_signalbar2_low=9
+wcdma_signalbar2_high=16
+wcdma_signalbar3_low=17
+wcdma_signalbar3_high=22
+wcdma_signalbar4_low=23
+wcdma_signalbar4_high=28
+wcdma_signalbar5_low=29
+wcdma_signalbar5_high=91
+tds_signalbar0_low=0
+tds_signalbar0_high=0
+tds_signalbar1_low=1
+tds_signalbar1_high=8
+tds_signalbar2_low=9
+tds_signalbar2_high=16
+tds_signalbar3_low=17
+tds_signalbar3_high=22
+tds_signalbar4_low=23
+tds_signalbar4_high=28
+tds_signalbar5_low=29
+tds_signalbar5_high=91
+lte_signalbar0_low=0
+lte_signalbar0_high=0
+lte_signalbar1_low=1
+lte_signalbar1_high=25
+lte_signalbar2_low=26
+lte_signalbar2_high=32
+lte_signalbar3_low=33
+lte_signalbar3_high=38
+lte_signalbar4_low=39
+lte_signalbar4_high=44
+lte_signalbar5_low=45
+lte_signalbar5_high=97
+need_cops_number_format=yes
+need_display_searching_status=yes
+need_restart_when_sim_insert=no
+need_support_pb=no
+need_support_sms=no
+network_need_gsm=yes
+network_need_tds=yes
+product_model=MF910W
+roam_setting_option=on
+use_lock_net=no
+network_category_based_on=act
+admin_user=admin
+appKeyMobile=A100000853
+Brand=DEMO
+hostName=dm.wo.com.cn
+Intype=DEMO
+Manuf=
+Model=
+portNum=6001
+registerDmType=0
+secsTime=1
+versionPrevious=
+wa_version=
+OSVersion=1
+OS=TOS
+urlMobile=
+DNS_proxy=
+dnsmasqfile=/mnt/userdata/log/dnsmasq.log
+dnsmasqfileSize=1024
+lan_domain_Enabled=1
+auto_connect_when_limited=no
+is_traffic_aline_on=no
+is_traffic_alining=no
+is_traffic_limit_on=no
+keep_online_when_limited=no
+traffic_sms_number=0
+update_type=mifi_fota
+
+fota_device_type=mdl
+fota_models=ZTE7520V3
+fota_oem=ZTE
+fota_platform=ZX297520
+fota_dm_vendor=rs
+fota_token_rs=8msgzdxxftrtys0irnuifh7o
+fota_product_id=1553742041
+fota_product_secret=23b3faf2dafb42dfb3382c0d7d66315b
+fota_app_version=2
+fota_network_type=WIFI
+fota_token_zx=7CBE016400F65621740A04E742E6FB12
+fota_dl_url_zx=
+fota_chk_url_zx=
+fota_reg_url_zx=
+fota_report_dlr_url_zx=
+fota_report_upgr_url_zx=
+fota_report_sales_url_zx=
+fota_token_gs=97a53ee9f45adfe53c762a72f83f6f43
+fota_dl_url_gs=
+fota_chk_url_gs=
+fota_reg_url_gs=
+fota_report_dlr_url_gs=
+fota_report_upgr_url_gs=
+fota_report_sales_url_gs=
+fota_update_space_threshold=800
+fota_ab_upgrade_status=6
+fota_ab_upgrade_total_size=0
+fota_ab_upgrade_updated_size=0
+fota_ab_aa_sync_status=2
+fota_ab_log_path=/mnt/userdata/zte_fota_ab/upi_ab.log
+fota_aa_auto_sync=0
+Login=admin
+Password=
+sntp_server_count=3
+MAX_Station_num=32
+MAX_Station_num_bak=0
+MAX_Access_num_bbak=0
+MAX_Chip_Capability=32
+wifi_key_gen_type=MAC
+wifi_key_len=8
+wifi_key_only_digit=y
+wifi_lte_intr=1
+wifi_ssid_gen_with_mac_lastbyte=6
+wifi_key_gen_with_mac_lastbyte=8
+wifi_mac_num=2
+wifiwan=wlan0-vxd
+wifiwan_mode=dhcp
+idle_time="600"
+product_type=1
+errnofile=/usr/netlog/errno.log
+errnofileSize=1024
+hotplugfile=/usr/netlog/hotplug.log
+hotplugfileSize=1024
+mynetlinkfile=/usr/netlog/mynetlink.log
+mynetlinkfileSize=1024
+telnetd_enable=n
+
+#syslogdÏà¹ØÅäÖÃ
+syslog_file_size=1
+syslog_file_num=5
+print_level=2
+syslog_level=4
+
+skb_debug=
+seclog_switch=
+################SOFTAPרÓà END#####################################
+
+######USB¶Ë¿ÚÅäÖÃ#######
+
+##########usb/rj45µÈÈȰβåÏà¹ØÂ·¾¶##############
+#rj45³õʼ״̬·¾¶
+rj45_plugstate_path=/sys/kernel/eth_debug/eth_state
+#usbÍø¿ÚÃû·¾¶
+usb_name_path=/sys/dwc_usb/usbconfig/netname
+#usb¸÷Íø¿Ú״̬·¾¶
+usb_plugstate_path=/sys/dwc_usb/usbconfig/
+################################################
+
+#ͨ¹ýgpio¼ì²â²å°Î£¬ÓÃÓÚ×Ô¶¯»¯µ÷ÊÔ
+usb_gpio_detect=1
+
+#ÅäÖÃÊÇ·ñÓйâÅÌ
+cdrom_state=0
+
+#cdromµÚ¶þ½×¶Îö¾Ù£º0Ϊ²»ÐèҪö¾Ù£¬1ΪÐèҪö¾ÙÇÒÐèÒª¹ÒÔØ½éÖÊ£¬2Ϊ²»ÐèÒª¹ÒÔØ½éÖÊ#
+need_support_cdrom_step2=0
+#ÅäÖÃWindowsÏÂÍø¿¨ÀàÐÍ
+select_type=select_rndis
+
+####
+#ÅäÖÃÑз¢Ä£Ê½usbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_debug=diag,adb,serial,acm
+
+
+#ÅäÖÃÓû§Ä£Ê½ÊÇ·ñʹÓÃÍø¿¨
+usb_vnic_user=on
+
+#ÅäÖÃÓû§Ä£Ê½usbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_user=adb,acm
+
+#ÅäÖÃÉú²úģʽusbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_factory=serial,diag
+
+#ÅäÖÃAMTģʽusbÉ豸¶Ë¿Ú×éºÏ
+usb_devices_amt=serial,diag
+
+#ÅäÖÃÑз¢Ä£Ê½acm´®¿Ú¸öÊý
+usb_acm_num_debug=1
+
+#ÅäÖÃÑз¢Ä£Ê½serial´®¿Ú¸öÊý
+usb_serial_num_debug=1
+
+#ÅäÖÃÓû§Ä£Ê½acm´®¿Ú¸öÊý
+usb_acm_num_user=1
+
+#ÅäÖÃÓû§Ä£Ê½serial´®¿Ú¸öÊý
+usb_serial_num_user=0
+
+#ÅäÖÃÉú²úģʽacm´®¿Ú¸öÊý
+usb_acm_num_factory=0
+
+#ÅäÖÃÉú²úģʽserial´®¿Ú¸öÊý
+usb_serial_num_factory=1
+
+#ÅäÖÃAMTģʽacm´®¿Ú¸öÊý
+usb_acm_num_amt=0
+
+#ÅäÖÃAMTģʽserial´®¿Ú¸öÊý
+usb_serial_num_amt=2
+
+#wangzhen
+#ÅäÖÃdebugģʽmass_storageµÄlunµÄģʽ
+usb_lun_type_debug=MMC
+
+#ÅäÖÃuserģʽmass_storageµÄlunµÄģʽ
+usb_lun_type_user=MMC
+
+#ÅäÖÃcdromģʽmass_storageµÄlunµÄģʽ
+usb_lun_type_cdrom=MMC
+###
+
+#ÅäÖÃÑз¢Ä£Ê½Íø¿ÚΪNDISʱÉ豸µÄPID
+PID_TSP_NDIS=0582
+###
+
+#ÅäÖÃÑз¢Ä£Ê½Íø¿ÚΪRNDISʱÉ豸µÄPID
+PID_TSP_RNDIS=0582
+
+#ÅäÖÃÑз¢Ä£Ê½Íø¿ÚΪECMʱÉ豸µÄPID
+PID_TSP_ECM=0582
+
+#ÅäÖÃÑз¢Ä£Ê½Ò쳣ʱÉ豸µÄPID
+PID_TEST=ff00
+
+#ÅäÖÃÑÛͼģʽʱÉ豸µÄPID
+PID_YT=0580
+
+#ÅäÖÃÑз¢Ä£Ê½¹âÅÌCDROMµÄPID
+PID_TSP_CDROM=0548
+
+#####
+
+#ÅäÖÃÓû§Ä£Ê½Ä£Ê½¹âÅÌCDROMµÄPID
+PID_USER_CDROM=1225
+
+#####
+#######
+#ÅäÖÃÓû§Ä£Ê½Íø¿ÚΪRNDISʱÉ豸µÄPID
+PID_USER_RNDIS=0585
+
+#ÅäÖÃÓû§Ä£Ê½Íø¿ÚΪECMʱÉ豸µÄPID
+PID_USER_ECM=0585
+
+#ÅäÖÃÓû§Ä£Ê½Íø¿ÚΪNDISʱÉ豸µÄPID
+PID_USER_NDIS=0583
+
+#ÅäÖÃÓû§Ä£Ê½Ã»ÓÐÍø¿ÚʱÉ豸µÄPID
+PID_USER_NOVNIC=0586
+######
+
+#ÅäÖÃËÀ»útrapʱÉ豸µÄPID
+PID_TRAP=0197
+
+#ÅäÖÃÉú²úģʽʱÉ豸µÄPID
+PID_FACTORY=0534
+
+#ÅäÖÃAMTģʽʱÉ豸µÄPID
+PID_AMT=0201
+
+#ÅäÖùػú³äµçʱÉ豸µÄPID
+PID_FASTPOWEROFF=2004
+
+#ÅäÖÃÉ豸µÄVID
+VID_TSP=19D2
+
+#ÅäÖÃÊÇ·ñÓÃchipid×÷ΪÉ豸µÄiSerial×Ö·û´®
+usb_sernum_chipid=0
+
+#ÅäÖÃÉ豸µÄiSerial×Ö·û´®
+SERIAL_TSP=1234567890ABCDEF
+
+#ÅäÖÃÑз¢Ä£Ê½É豸µÄReleaseID
+RELEASEID_TSP=0100
+
+#ÅäÖÃÓû§Ä£Ê½É豸µÄReleaseID
+RELEASEID_USER=0101
+
+#ÅäÖÃÉ豸µÄmanufacturer×Ö·û´®
+MANUFACTURER_TSP=DEMO,Incorporated
+
+#ÅäÖÃÉ豸µÄproduct×Ö·û´®
+PRODUCT_TSP=DEMO Mobile Boardband
+
+#ÅäÖÃÉ豸µÄconfig×Ö·û´®
+CONFIG_TSP=DEMO Configuration
+
+#cdrom lunµÄvendor×Ö·û´®
+VENDOR_MS_CDROM=DEMO
+
+#cdrom lunµÄproduct×Ö·û´®
+PRODUCT_MS_CDROM=USB SCSI CD-ROM
+
+#cdrom lunµÄrelease×Ö·û´®
+RELEASE_MS_CDROM=2.31
+
+#cdrom lunµÄinquiry×Ö·û´®
+INQUIRY_MS_CDROM=DEMO USB SCSI CD-ROM 2.31
+#mmc lunµÄvendor×Ö·û´®
+VENDOR_MS_MMC=DEMO
+
+#mmc lunµÄproduct×Ö·û´®
+PRODUCT_MS_MMC=MMC Storage
+
+#mmc lunµÄrelease×Ö·û´®
+RELEASE_MS_MMC=2.31
+
+#SD½éÖÊ·¾¶
+usb_tcard_lun_path=/dev/mmcblk0
+
+#mmc lunµÄinquiry×Ö·û´®
+INQUIRY_MS_MMC=DEMO MMC Storage 2.31
+
+#ÅäÖÃECMÍø¿¨¸öÊý
+ECM_NUM=1
+
+#ÅäÖÃRNDISÍø¿¨×î´ó×é°üÊý
+RNDIS_PKT_NUM=10
+
+
+###²¨ÌØÂÊ×ÔÊÊÓ¦¿ª¹Ø###
+self_adaption_port=
+###ijЩ¶Ë¿Ú²»ÐèÒªÏòÓ¦ÓÃÉϱ¨¶Ë¿Ú×¼±¸ºÃÏûÏ¢###
+notify_forbiden_ports=
+
+###adbĬÈϹÒÔØºË,0:ap;1:cap###
+adb_core_id=1
+######USB¶Ë¿ÚÅäÖÃEND#######
+
+######CP²àNVÅäÖÃÐÅÏ¢#######
+#ÄÚ²¿Èí¼þ°æ±¾ºÅ
+zversion=K318V1.0.0B03
+#ÍⲿÈí¼þ°æ±¾ºÅ
+zcgmr=DEMO_V1.0.0B03
+#Ó²¼þ°æ±¾ºÅ
+zhver=V0.1
+#ÄÚ²¿»úÐÍ
+zcgmm=K318
+#Íⲿ»úÐÍ
+zcgmw=K318
+#³§ÉÌÐÅÏ¢
+zcgmi=DEMO
+#SSIDºÅ
+zssid=0
+#WifiKeyµÄÖµ
+zwifikey=0
+#ËøÍø×î´ó½âËø´ÎÊý£¬ËøÍøÄ£¿éʹÓÃ
+zunlocktimes=0
+#°æ±¾Ä£Ê½ÀàÐÍ£¬Õý³£°æ±¾/¹Ò²à°æ±¾
+zversionmode=0
+#ÖÇÄܶÌÐŹ¦ÄÜ¿ª¹Ø
+zisms=0
+#DM¹¦ÄÜ¿ª¹Ø,0:¹Ø±Õ£¬1ÒÆ¶¯£¬2ÁªÍ¨£¬3µçÐÅ
+zdmreg=0
+#ÁªÍ¨DM ×¢²á¿ª»úµÈ´ýʱ¼ä, 1~60 ÓÐЧ£¬µ¥Î»·ÖÖÓ£¬ÆäËûÊýÖµ: ÎÞЧֵ
+zdmregtime=0
+
+#¹¤¾ßzlog_agent´æÈ¡
+zcat_mode=CPUSB
+zlog_num=10
+zlog_size=100
+zlog_path=/mnt/userdata/zcat
+rule_file=/etc_ro/logrule/ati_std.rule
+
+#ramdump´æ´¢Ä£Ê½
+#no,auto,yes
+ramdump_export=no
+#USB or CAPEMMC or CAPFLASH
+ramdump_mode=USB
+ramdump_emmc_device=/dev/mmcblk1p1
+ramdump_flash_device=/dev/mtd17
+ramdump_path=/mnt/oemdata
+
+#ÕÕÏà»úͼƬ·Ö±æÂÊÏÔʾ¿ØÖÆ
+zcamera_interprolation=1
+#×Ô¶¯ËÑÍø·½Ê½ÍøÂç½ÓÈë´ÎÐò
+auto_acqorder=12
+######CP²àNVÅäÖÃÐÅÏ¢END#######
+#for volte
+MTNET_TEST=0
+NSIOT_TEST=0
+amrw=1
+cvmod_ims=3
+EM_CALL_SUPPORT=0
+EMCALL_TO_NORMAL=0
+IMS_APN=
+IMS_CONFURI=
+IMS_CC_URI_TYPE=0
+IMS_SMS_URI_TYPE=0
+IMS_REG_EXPIRES=600000
+IMS_REG_SUB_EXPIRES=600000
+NET_IMS_CAP=0
+UDP_THRESH=1300
+IPSEC_DISABLE=0
+PRECONDTION_NOT_SUPPORT=0
+WAIT_RPT_TIME=1000
+OCT_ALGN_AMR=0
+SMS_OVER_IP=1
+IMS_USER_AGENT=
+BSF_PORT=8080
+XCAP_PORT=80
+UT_APN=
+380_THEN_CSFB=0
+DTMF_RFC4733=0
+DIALOG_FORK=0
+DATA_CENTRIC=0
+not_supp_hmac_sha1_96=0
+not_supp_hmac_md5_96=0
+not_supp_des_ede3_cbc=0
+not_supp_aes_cbc=0
+IMS_PCSCF_PORT=5060
+G_IMS_CMGF=0
+ECALL_MTTEST=0
+POWER_CONTROL=0
+NOT_KEEP_TCP_CONN=1
+T3396_SUPPORT=0
+T3396_CAUSE_REASON=8,27,32,33
+T3396_DURATION=720
+T3396_COUNTS=3
+ECALL_T2_TIMER=3600
+NGECALL_FORTEST=0
+CUSTOMER_FLAG=0
+#for volte end
+DEBUG_INFO_DISABLE=0
+DEBUG_INFO_FILE_PATH=/mnt/userdata
+DEBUG_INFO_FILE_NUM=2
+DEBUG_INFO_FILE_TOTAL_SIZE=1
+#debug info end
\ No newline at end of file
diff --git a/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_systemd/fs/normal/rootfs/etc_ro/default/default_parameter_user b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_systemd/fs/normal/rootfs/etc_ro/default/default_parameter_user
new file mode 100755
index 0000000..3fbb096
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-core/images/files/zx297520v3/vehicle_dc_systemd/fs/normal/rootfs/etc_ro/default/default_parameter_user
@@ -0,0 +1,493 @@
+apn_auto_config=CMCC($)cmnet($)manual($)*99#($)pap($)($)($)IP($)auto($)($)auto($)($)
+APN_config0=Default($)Default($)manual($)($)($)($)($)IP($)auto($)($)auto($)($)
+APN_config1=
+APN_config2=
+APN_config3=
+APN_config4=
+APN_config5=
+APN_config6=
+APN_config7=
+APN_config8=
+APN_config9=
+apn_index=0
+apn_mode=auto
+at_snap_flag=3
+at_wifi_mac=0
+auto_apn_index=0
+cid_reserved=1
+clear_pb_when_restore=no
+clear_sms_when_restore=no
+default_apn=3gnet
+ipv6_APN_config1=
+ipv6_APN_config2=
+ipv6_APN_config3=
+ipv6_APN_config4=
+ipv6_APN_config5=
+ipv6_APN_config6=
+ipv6_APN_config7=
+ipv6_APN_config8=
+ipv6_APN_config9=
+m_profile_name=Internux
+need_init_modem=no
+net_select=NETWORK_auto
+pdp_type=IP
+ppp_apn=
+max_reconnect_time=3000000
+pppd_auth=noauth
+ppp_auth_mode=none
+ppp_passwd=
+ppp_pdp_type=
+ppp_username=
+ipv6_ppp_auth_mode=none
+ipv6_ppp_passwd=
+ipv6_ppp_username=
+pre_mode=
+prefer_dns_manual=0.0.0.0
+standby_dns_manual=0.0.0.0
+wan_apn=internet
+wan_dial=
+cta_test=0
+safecare_enbale=1
+safecare_hostname=mob.3gcare.cn
+safecare_registed_imei=
+safecare_registed_iccid=
+safecare_contimestart1=
+safecare_contimestart2=
+safecare_contimestart3=
+safecare_contimestop1=
+safecare_contimestop2=
+safecare_contimestop3=
+safecare_contimeinterval=
+safecare_mobsite=http://mob.3gcare.cn
+safecare_chatsite=
+safecare_platno=
+safecare_mobilenumber=
+safecare_version=
+ethwan_dns_mode=auto
+pswan_dns_mode=auto
+wifiwan_dns_mode=auto
+ethwan_ipv6_dns_mode=auto
+wifiwan_ipv6_dns_mode=auto
+pswan_ipv6_dns_mode=auto
+admin_Password=Pass1234
+psw_changed=1
+alg_ftp_enable=0
+alg_sip_enable=0
+blc_wan_auto_mode=AUTO_PPP
+blc_wan_mode=AUTO
+br_ipchange_flag=
+br_node=usblan0+zvnet0
+br_node_cap=zvnet0
+clat_fake_subnet=192.0.168.0
+clat_frag_collect_timeout=300
+clat_local_mapping_timeout=300
+clat_mapping_record_timeout=3000
+clat_query_server_port=1464
+DefaultFirewallPolicy=0
+dev_coexist=0
+dhcpDns=192.168.0.1
+dhcpEnabled=1
+dhcpEnd=192.168.0.200
+dhcpLease_hour=24
+dhcpStart=192.168.0.100
+dhcpv6stateEnabled=0
+dhcpv6statelessEnabled=1
+dhcpv6statePdEnabled=0
+dial_mode=auto_dial
+DMZEnable=0
+DMZIPAddress=
+dns_extern=
+ipv6_dns_extern=
+eth_act_type=
+eth_type=lan
+ethlan=
+ethwan=
+ethwan_dialmode=auto
+ethwan_mode=auto
+ethwan_priority=3
+fast_usb=usblan0
+fastnat_level=2
+fastbr_level=1
+IPPortFilterEnable=0
+IPPortFilterRules_0=
+IPPortFilterRules_1=
+IPPortFilterRules_2=
+IPPortFilterRules_3=
+IPPortFilterRules_4=
+IPPortFilterRules_5=
+IPPortFilterRules_6=
+IPPortFilterRules_7=
+IPPortFilterRules_8=
+IPPortFilterRules_9=
+IPPortFilterRulesv6_0=
+IPPortFilterRulesv6_1=
+IPPortFilterRulesv6_2=
+IPPortFilterRulesv6_3=
+IPPortFilterRulesv6_4=
+IPPortFilterRulesv6_5=
+IPPortFilterRulesv6_6=
+IPPortFilterRulesv6_7=
+IPPortFilterRulesv6_8=
+IPPortFilterRulesv6_9=
+ipv4_fake_subnet=192.0.0.0
+ipv6_fake_subnet=2016::1
+lan_ipaddr=192.168.0.1
+webv6_enable=1
+lan_ipv6addr=fe80::1
+lan_name=br0
+lan_netmask=255.255.255.0
+LanEnable=1
+dhcpDns_cap=192.168.0.2
+lan_ipv6addr_cap=fe80::2
+lan_ipaddr_cap=192.168.0.2
+lan_name_cap=br0
+lan_netmask_cap=255.255.255.0
+LanEnable_cap=1
+mac_ip_list=
+mgmt_quicken_power_on=0
+mtu=1400
+natenable=
+dosenable=0
+need_jilian=1
+nofast_port=21+22+23+25+53+67+68+69+110+115+123+443+500+1352+1723+1990+1991+1992+1993+1994+1995+1996+1997+1998+4500+5060
+nv_save_interval=300
+path_conf=/etc_rw
+path_ro=/etc_ro
+path_log=/tmp/
+netlog_limit=yes
+path_sh=/sbin
+path_tmp=/tmp
+permit_gw=
+permit_ip6=
+permit_nm=255.255.255.0
+PortForwardEnable=0
+PortForwardRules_0=
+PortForwardRules_1=
+PortForwardRules_2=
+PortForwardRules_3=
+PortForwardRules_4=
+PortForwardRules_5=
+PortForwardRules_6=
+PortForwardRules_7=
+PortForwardRules_8=
+PortForwardRules_9=
+PortMapEnable=0
+PortMapRules_0=
+PortMapRules_1=
+PortMapRules_2=
+PortMapRules_3=
+PortMapRules_4=
+PortMapRules_5=
+PortMapRules_6=
+PortMapRules_7=
+PortMapRules_8=
+PortMapRules_9=
+ppp_name=ppp0
+pppoe_password=
+pppoe_username=
+ps_ext1=zvnet1
+ps_ext2=zvnet2
+ps_ext3=zvnet3
+ps_ext4=zvnet4
+ps_ext5=zvnet5
+ps_ext6=zvnet6
+ps_ext7=zvnet7
+ps_ext8=zvnet8
+pswan=wan
+pswan_mode=pdp
+pswan_priority=1
+pswan_cap=zvnet
+RemoteManagement=0
+rootdev_friendlyname=DEMO-UPnP
+rootdev_manufacturer=DEMO
+rootdev_modeldes=XXX
+rootdev_modelname=XXX
+os_url=http://www.demo.com
+serialnumber=See-IMEI
+static_dhcp_enable=1
+static_ethwan_gw=
+static_ethwan_ip=
+static_ethwan_nm=
+static_ethwan_pridns=
+static_ethwan_secdns=
+static_wifiwan_ipaddr=
+static_wifiwan_netmask=
+static_wifiwan_gateway=
+wifiwan_pridns_manual=
+wifiwan_secdns_manual=
+static_wan_gateway=0.0.0.0
+static_wan_ipaddr=0.0.0.0
+static_wan_netmask=0.0.0.0
+static_wan_primary_dns=0.0.0.0
+static_wan_secondary_dns=0.0.0.0
+swlanstr=sw0_lan
+swvlan=sw0
+swwanstr=sw0_wan
+tc_downlink=
+tc_uplink=
+tc_local=1310720
+tc_enable=0
+time_limited=
+time_to_2000_when_restore=yes
+upnpEnabled=0
+usblan=usblan0
+WANPingFilter=0
+websURLFilters=
+wifiwan_priority=2
+DDNS=
+DDNS_Enable=0
+DDNSAccount=
+DDNSPassword=
+DDNSProvider=
+iccidPrevious=
+imeiPrevious=
+registerFlag=0
+registeredRound=
+secsEveryRound=1
+secsEveryTime=1
+regver=4.0
+meid=
+uetype=1
+LocalDomain=m.home
+data_volume_alert_percent=
+data_volume_limit_size=
+data_volume_limit_switch=0
+data_volume_limit_unit=0
+flux_day_total=0
+flux_last_day=
+flux_last_month=
+flux_last_year=
+flux_month_total=0
+flux_set_day=
+flux_set_month=
+flux_set_year=
+monthly_rx_bytes=0
+monthly_time=0
+monthly_tx_bytes=0
+MonthlyConTime_Last=
+dm_nextpollingtime=
+fota_allowRoamingUpdate=0
+fota_dl_pkg_size=0
+fota_update_flag=
+fota_updateIntervalDay=15
+fota_upgrade_result=
+fota_version_delta_id=
+fota_version_delta_url=
+fota_pkg_total_size=0
+fota_version_file_size=
+fota_version_md5sum=
+fota_version_name=
+fota_need_user_confirm_update=0
+fota_need_user_confirm_download=0
+fota_version_force_install=0
+polling_nexttime=0
+pwron_auto_check=0
+fota_updateMode=0
+fota_test_mode=0
+fota_pkg_downloaded=0
+fota_upgrade_result_internal=
+mmi_battery_voltage_line=3090+3300+3450+3490+3510+3540+3550+3570+3580+3600+3620+3650+3670+3710+3740+3780+3850+3900+3950+4000+4060
+mmi_fast_poweron=
+mmi_led_mode=sleep_mode
+mmi_new_sms_blink_flag=1
+mmi_show_pagetab=page1+page2+page3
+mmi_showmode=led
+mmi_task_tab=ctrl_task+key_task
+mmi_temp_voltage_line=951+1201+1692+1736
+mmi_use_protect=
+mmi_use_wifi_usernum=1
+leak_full_panic=
+leak_list_max=
+leak_set_flag=
+monitor_period=300
+netinf_flag=
+skb_all_max=
+skb_data_max=
+skb_fromcp_max=
+skb_max_fail=
+skb_max_panic=
+skb_size_max=
+skb_tocp_max=
+sntp_default_ip=134.170.185.211;131.107.13.100;202.112.31.197;202.112.29.82;202.112.10.36;ntp.gwadar.cn;ntp-sz.chl.la;dns.sjtu.edu.cn;news.neu.edu.cn;dns1.synet.edu.cn;time-nw.nist.gov;pool.ntp.org;europe.pool.ntp.org
+sntp_dst_enable=0
+sntp_other_server0=
+sntp_other_server1=
+sntp_other_server2=
+sntp_server0=time-nw.nist.gov
+sntp_server1=pool.ntp.org
+sntp_server2=europe.pool.ntp.org
+sntp_sync_select_interval_time=30
+sntp_time_set_mode=auto
+sntp_timezone=CST-8
+sntp_timezone_index=0
+assert_errno=
+comm_logsize=16384
+cr_inner_version=V1.0.0B08
+cr_version=V1.0.0B01
+hw_version=PCBMF29S2V1.0.0
+TURNOFF_CHR_NUM=
+watchdog_app=0
+HTTP_SHARE_FILE=
+HTTP_SHARE_STATUS=
+HTTP_SHARE_WR_AUTH=readWrite
+ipv6_pdp_type=
+ipv6_wan_apn=
+Language=zh-cn
+manual_time_day=
+manual_time_hour=
+manual_time_minute=
+manual_time_month=
+manual_time_second=
+manual_time_year=
+sdcard_mode_option=0
+AccessControlList0=
+AccessPolicy0=0
+ACL_mode=0
+AuthMode=WPA2PSK
+Channel=0
+wifi_acs_num=5
+closeEnable=0
+closeTime=
+CountryCode=CN
+DefaultKeyID=0
+DtimPeriod=1
+EncrypType=AES
+EX_APLIST=
+EX_APLIST1=
+EX_AuthMode=
+EX_DefaultKeyID=
+EX_EncrypType=
+EX_mac=
+EX_SSID1=Ufi_
+EX_WEPKEY=
+EX_wifi_profile=
+EX_WPAPSK1=
+FragThreshold=2346
+HideSSID=0
+HT_GI=1
+Key1Str1=12345
+Key2Str1=
+Key3Str1=
+Key4Str1=
+Key1Type=1
+Key2Type=
+Key3Type=
+Key4Type=
+m_AuthMode=WPA2PSK
+m_DefaultKeyID=
+m_EncrypType=AES
+m_HideSSID=0
+m_Key1Str1=1234
+m_Key2Str1=
+m_Key3Str1=
+m_Key4Str1=
+m_Key1Type=1
+m_Key2Type=
+m_Key3Type=
+m_Key4Type=
+m_MAX_Access_num=0
+m_NoForwarding=
+m_show_qrcode_flag=0
+m_SSID=Ufi_
+m_ssid_enable=0
+m_wapiType=
+m_wifi_mac=901D45692A5C
+m_WPAPSK1_aes=
+m_WPAPSK1_encode=MTIzNDU2Nzg=
+MAX_Access_num=32
+MAX_Access_num_bak=32
+NoForwarding=0
+openEnable=0
+openTime=
+operater_ap=
+RekeyInterval=3600
+RTSThreshold=2347
+show_qrcode_flag=0
+Sleep_interval=10
+ssid_write_flag=0
+SSID1=Ufi_
+tsw_sleep_time_hour=
+tsw_sleep_time_min=
+tsw_wake_time_hour=
+tsw_wake_time_min=
+wapiType=
+wifi_force_40m=1
+wifi_11n_cap=1
+wifi_band=b
+wifi_coverage=long_mode
+wifi_hostname_black_list=
+wifi_hostname_white_list=
+wifi_mac=901D45692A5B
+wifi_mac_black_list=
+wifi_mac_white_list=
+wifi_profile=
+wifi_profile1=
+wifi_profile2=
+wifi_profile3=
+wifi_profile4=
+wifi_profile5=
+wifi_profile6=
+wifi_profile7=
+wifi_profile8=
+wifi_profile9=
+wifi_profile_num=0
+wifi_root_dir=
+wifi_sta_connection=0
+wifi_wps_index=1
+wifiEnabled=1
+wifilan=wlan0-va0
+wifilan2=wlan0-va1
+WirelessMode=6
+WPAPSK1_aes=
+WPAPSK1_encode=MTIzNDU2Nzg=
+wps_mode=
+WPS_SSID=
+WscModeOption=0
+monitor_apps=
+at_netdog=
+autorspchannel_list=all
+soctime_switch=0
+uart_control=1
+uart_ctstrs_enable=
+uart_softcontrol_enable=
+uart_wakeup_enable=1
+uart_console_coreid=1
+uart_app_ctrl=5
+special_cmd_list=$MYNETREAD
+ra_mtu_enable=
+##为入网入库芯片认证版本添加 begin
+atcmd_stream1=AT+ZSET="w_instrument",1
+atcmd_stream2=AT^SYSCONFIG=24,0,1,2
+atcmd_stream3=AT+ZSET="csiiot",2
+atcmd_stream4=AT+ZSET="dlparaflg",0
+atcmd_stream5=AT+ZSET="MTNET_TEST",1;AT+ZGAAT=0;AT+ZSET="CMCC_TEST",1;AT+ZSET="LTE_INFO",6348;AT+ZSET="VOICE_SUPPORT",1;AT+ZSET="FDD_RELEASE",7;AT+ZSET="LTE_RELEASE",1;AT+ZSET="UE_PS_RELEASE",5;AT+ZSET="QOS_RELEASE",4;AT+ZSET="TEBS_THRESHOLD",0
+atcmd_stream6=AT+ZSET="MTNET_TEST",1;AT+ZGAAT=0;AT+ZSET="LTE_INFO",6348;AT+ZSET="VOICE_SUPPORT",1;AT+ZSET="FDD_RELEASE",7;AT+ZSET="LTE_RELEASE",1;AT+ZSET="UE_PS_RELEASE",5;AT+ZSET="QOS_RELEASE",4;AT+ZSET="TEBS_THRESHOLD",0;AT+ZSET="IGNORE_SECURITY_SUPPORT",0;AT+ZSET="csifilter",0;AT+ZSET="csrhobandflg",0;AT+ZSET="dlparaflg",1;AT+ZSET="csiup",1;AT+ZSET="rfparaflag",0,0,1,0;AT+ZSET="csiiot",1;AT+ZSET="EXCEPT_RESET",0;AT+ZSET="ISIM_SUPPORT",1;AT+ZIMSTEST="MTNET_TEST",1;AT+ZSET="MANUAL_SEARCH",0
+##为入网入库芯片认证版本添加 end
+#for audio ctrl
+audio_priority=0123
+customer_type=
+debug_mode=
+cpIndCmdList=+ZMMI+ZURDY+ZUSLOT+ZICCID^MODE+ZPBIC+ZMSRI+CREG+CEREG+CGREG+CGEV
+zephyr_filter_ip=
+wait_timeout=2
+sntp_sync_time=1
+sntp_static_server0=time-nw.nist.gov
+sntp_static_server1=pool.ntp.org
+sntp_static_server2=europe.pool.ntp.org
+vsim_bin_path=/mnt/userdata/vSim.bin
+at_select_timeout=
+mtnet_test_mcc=+001+002+003+004
+at_atv=
+at_atq=
+at_at_d=
+at_ptsnum=
+quick_dial=1
+cap_port_name=/dev/ttyGS0
+customIndCmdList=
+defrt_cid=1
+MaxRtrAdvInterval=1800
+dhcps_in_cap=1
+gw_in_cap=0
+xlat_enable=0
+telog_path_cap=
+telog_path=
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/LICENSE b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/LICENSE
new file mode 100755
index 0000000..1b15bd2
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/LICENSE
@@ -0,0 +1,31 @@
+opyright Statement:
+
+This software/firmware and related documentation ("MobileTek Software") are
+protected under relevant copyright laws. The information contained herein is
+confidential and proprietary to MobileTek Inc. and/or its licensors. Without
+the prior written permission of MobileTek inc. and/or its licensors, any
+reproduction, modification, use or disclosure of MobileTek Software, and
+information contained herein, in whole or in part, shall be strictly
+prohibited.
+
+MobileTek Inc. (C) 2015. All rights reserved.
+
+BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MobileTek SOFTWARE")
+RECEIVED FROM MobileTek AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER
+ON AN "AS-IS" BASIS ONLY. MobileTek EXPRESSLY DISCLAIMS ANY AND ALL
+WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
+NONINFRINGEMENT. NEITHER DOES MobileTek PROVIDE ANY WARRANTY WHATSOEVER WITH
+RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY,
+INCORPORATED IN, OR SUPPLIED WITH THE MobileTek SOFTWARE, AND RECEIVER AGREES
+TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO.
+RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO
+OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN MobileTek
+SOFTWARE. MobileTek SHALL ALSO NOT BE RESPONSIBLE FOR ANY MobileTek SOFTWARE
+RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MobileTek'S
+ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE MobileTek SOFTWARE
+RELEASED HEREUNDER WILL BE, AT MobileTek'S OPTION, TO REVISE OR REPLACE THE
+MobileTek SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE
+CHARGE PAID BY RECEIVER TO MobileTek FOR SUCH MobileTek SOFTWARE AT ISSUE.
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend.c b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend.c
new file mode 100755
index 0000000..ff653f6
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend.c
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "AUTOSUSPEND"
+
+#include <stdbool.h>
+
+#include <log/log.h>
+#include <liblog/lynq_deflog.h>
+
+#include "autosuspend.h"
+
+#include "autosuspend_ops.h"
+
+static struct autosuspend_ops *autosuspend_ops;
+static bool autosuspend_enabled;
+static bool autosuspend_inited;
+
+static int autosuspend_init(void)
+{
+ if (autosuspend_inited) {
+ return 0;
+ }
+
+ autosuspend_ops = autosuspend_wakeup_count_init();
+ if (autosuspend_ops) {
+ goto out;
+ }
+
+ if (!autosuspend_ops) {
+ ALOGI("failed to initialize autosuspend\n");
+ return -1;
+ }
+
+out:
+ autosuspend_inited = true;
+
+ ALOGI("autosuspend initialized\n");
+ return 0;
+}
+
+int autosuspend_enable(void)
+{
+ int ret;
+
+ ret = autosuspend_init();
+ if (ret) {
+ return ret;
+ }
+
+ ALOGI("autosuspend_enable\n");
+
+ if (autosuspend_enabled) {
+ return 0;
+ }
+
+ ret = autosuspend_ops->enable();
+ if (ret) {
+ return ret;
+ }
+
+ autosuspend_enabled = true;
+ return 0;
+}
+
+int autosuspend_disable(void)
+{
+ int ret;
+
+ ret = autosuspend_init();
+ if (ret) {
+ return ret;
+ }
+
+ ALOGI("autosuspend_disable\n");
+
+ if (!autosuspend_enabled) {
+ return 0;
+ }
+
+ ret = autosuspend_ops->disable();
+ if (ret) {
+ return ret;
+ }
+
+ autosuspend_enabled = false;
+ return 0;
+}
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend.h b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend.h
new file mode 100755
index 0000000..59188a8
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LIBSUSPEND_AUTOSUSPEND_H_
+#define _LIBSUSPEND_AUTOSUSPEND_H_
+
+#include <sys/cdefs.h>
+#include <stdbool.h>
+
+__BEGIN_DECLS
+
+/*
+ * autosuspend_enable
+ *
+ * Turn on autosuspend in the kernel, allowing it to enter suspend if no
+ * wakelocks/wakeup_sources are held.
+ *
+ *
+ *
+ * Returns 0 on success, -1 if autosuspend was not enabled.
+ */
+int autosuspend_enable(void);
+
+/*
+ * autosuspend_disable
+ *
+ * Turn off autosuspend in the kernel, preventing suspend and synchronizing
+ * with any in-progress resume.
+ *
+ * Returns 0 on success, -1 if autosuspend was not disabled.
+ */
+int autosuspend_disable(void);
+
+/*
+ * set_wakeup_callback
+ *
+ * Set a function to be called each time the device returns from suspend.
+ * success is true if the suspend was sucessful and false if the suspend
+ * aborted due to some reason.
+ */
+void set_wakeup_callback(void (*func)(bool success));
+
+__END_DECLS
+
+#endif
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend.service b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend.service
new file mode 100755
index 0000000..3cbb46c
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=lynq-autosuspend-service
+
+[Service]
+ExecStart=/usr/bin/autosuspend
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend_ops.h b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend_ops.h
new file mode 100755
index 0000000..698e25b
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend_ops.h
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _LIBSUSPEND_AUTOSUSPEND_OPS_H_
+#define _LIBSUSPEND_AUTOSUSPEND_OPS_H_
+
+struct autosuspend_ops {
+ int (*enable)(void);
+ int (*disable)(void);
+};
+
+struct autosuspend_ops *autosuspend_autosleep_init(void);
+struct autosuspend_ops *autosuspend_earlysuspend_init(void);
+struct autosuspend_ops *autosuspend_wakeup_count_init(void);
+
+#endif
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend_wakeup_count.c b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend_wakeup_count.c
new file mode 100755
index 0000000..c7cc274
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/autosuspend_wakeup_count.c
@@ -0,0 +1,765 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "AUTOSUSPEND"
+//#define LOG_NDEBUG 0
+
+#include <errno.h>
+#include <fcntl.h>
+#include <pthread.h>
+#include <semaphore.h>
+#include <stddef.h>
+#include <stdbool.h>
+#include <string.h>
+#include <sys/param.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <libsim/lynq_sim.h>
+
+#include <unistd.h>
+#include <dlfcn.h>
+//#include <cutils/properties.h>
+#define USER_LOG_TAG "PMS"
+#include <liblog/lynq_deflog.h>
+#include <include/lynq_uci.h>
+
+#include <log/log.h>
+#include <stdlib.h>
+#include "autosuspend_ops.h"
+#include <sc_mnet_whitelist.h>
+#include <sc_at.h>
+#define SYS_POWER_STATE "/sys/power/state"
+
+#define SYS_POWER_WAKEUP_COUNT "/sys/power/wakeup_count"
+#define SYS_POWER_SPM_SUSPEND_CRTL "/sys/power/spm/suspend_ctrl"
+
+#define BASE_SLEEP_TIME 100000
+#define POSSIBLE_MAX_SLEEP_TIME 60000000
+#define LOG_UCI_MODULE "lynq_autosuspend"
+#define LOG_UCI_FILE "lynq_uci"
+
+static int state_fd;
+static int wakeup_count_fd;
+static int suspend_ctrl_fd;
+static pthread_t suspend_thread;
+static sem_t suspend_lockout;
+extern pthread_cond_t feedback_cond;
+extern pthread_mutex_t feedback_mutex;
+extern pthread_mutex_t time_info_mutex;
+static const char *sleep_state = "mem";
+#ifdef MOBILETEK_SUSPEND_CFG
+static const char *reg_netsys[5] = {"reg_netsys_srcclkena_mask_b 0",
+ "reg_netsys_infra_req_mask_b 0",
+ "reg_netsys_apsrc_req_mask_b 0",
+ "reg_netsys_vrf18_req_mask_b 0",
+ "reg_netsys_ddr_en_mask_b 0"};
+#endif
+static void (*wakeup_func)(bool success) = NULL;
+static int sleep_time = BASE_SLEEP_TIME;
+static int possible_max_sleep_time = POSSIBLE_MAX_SLEEP_TIME;
+
+extern int adb_debug_mode;
+
+static long start_time; // 出错点:time_info_t 结构体两个成员都是long,因此这两个变量必须是long型,不能定义成int
+static long end_time;
+
+
+
+# define TEMP_FAILURE_RETRY(expression) \
+ (__extension__ \
+ ({ long int __result; \
+ do __result = (long int) (expression); \
+ while (__result == -1L && errno == EINTR); \
+ __result; }))
+
+
+pid_t pid = 0;
+
+enum {
+ PARTIAL_WAKE_LOCK = 1, // the cpu stays on, but the screen is off
+ FULL_WAKE_LOCK = 2 // the screen is also on
+};
+
+// while you have a lock held, the device will stay on at least at the
+// level you request.
+
+struct time_info_t
+{
+ long sleep_start_time;
+ long wakeup_time;
+};
+
+extern struct time_info_t time_info;
+
+struct timeval tv;
+
+#ifdef MOBILETEK_SUSPEND_CFG
+void *dlHandle_wakelock;
+void *dlHandle_log;
+void *dlHandle_network;
+static void* dlHandle_sim;
+
+int (*lynq_screen)(int num);
+int (*lynq_sim_init)(int utoken);
+int (*acquire_wake_lock)(int lock, const char* id);
+int (*release_wake_lock)(const char* id);
+int (*lynq_query_registration_state)(const char *type,int* regState,int* imsRegState,char * LAC,char * CID,int *
+netType,int *radioTechFam,int *errorCode);
+int (*lynq_network_init)(int utoken);
+
+void init_wakelock_func(void)
+{
+ const char *lynqLibPath_WakeLock = "/usr/lib64/libpower.so";
+ const char *lynqLibPath_Log = "/lib64/liblynq-log.so";
+
+ dlHandle_wakelock = dlopen(lynqLibPath_WakeLock, RTLD_NOW);
+ if (dlHandle_wakelock == NULL)
+ {
+ ALOGI("dlopen lynqLibPath_WakeLock failed: %s", dlerror());
+ exit(EXIT_FAILURE);
+ }
+ dlHandle_log = dlopen(lynqLibPath_Log, RTLD_NOW);
+ if (dlHandle_log == NULL)
+ {
+ ALOGI("dlopen dlHandle_log failed: %s", dlerror());
+ exit(EXIT_FAILURE);
+ }
+ acquire_wake_lock = (int(*)(int,const char*))dlsym(dlHandle_wakelock, "acquire_wake_lock");
+ if (acquire_wake_lock == NULL) {
+ ALOGI("acquire_wake_lock not defined or exported in %s", lynqLibPath_WakeLock);
+ exit(EXIT_FAILURE);
+ }
+ release_wake_lock = (int(*)( const char*))dlsym(dlHandle_wakelock, "release_wake_lock");
+ if (release_wake_lock == NULL) {
+ ALOGI("release_wake_lock not defined or exported in %s", lynqLibPath_WakeLock);
+ exit(EXIT_FAILURE);
+ }
+ dlerror(); // Clear any previous dlerror
+
+ return;
+}
+
+ void init_sim_func()
+{
+ int res;
+ const char *lynqLibPath_Sim = "/lib64/liblynq-sim.so";
+
+ pid = getpid();
+ dlHandle_sim = dlopen(lynqLibPath_Sim, RTLD_NOW);
+ if (dlHandle_sim == NULL)
+ {
+ ALOGI("dlopen lynqLibPath_Sim failed: %s", dlerror());
+ exit(EXIT_FAILURE);
+ }
+
+ lynq_screen = (int(*)(int))dlsym(dlHandle_sim, "lynq_screen");
+ if (lynq_screen == NULL) {
+ ALOGI("lynq_screen not defined or exported in %s", lynqLibPath_Sim);
+ exit(EXIT_FAILURE);
+ }
+
+ lynq_sim_init = (int(*)(int utoken))dlsym(dlHandle_sim,"lynq_sim_init");
+ if (lynq_sim_init == NULL) {
+ ALOGI("lynq_sim_init not defined or exported in %s", lynqLibPath_Sim);
+ exit(EXIT_FAILURE);
+ }
+ dlerror(); // Clear any previous dlerror
+
+ res = lynq_sim_init((int)pid);
+ if(res == 0)
+ {
+ ALOGI("Run lynq_sim_init\n");
+ }else{
+ ALOGI("lynq sim init error\n");
+ }
+ sleep(1);
+
+ return;
+}
+
+
+void init_network_func()
+{
+ int res;
+ const char *lynqLibPath_Network = "/lib64/liblynq-network.so";
+ dlHandle_network = dlopen(lynqLibPath_Network, RTLD_NOW);
+ if (dlHandle_network == NULL)
+ {
+ ALOGI("dlopen lynqLibPath_Network failed: %s", dlerror());
+ exit(EXIT_FAILURE);
+ }
+
+ lynq_query_registration_state = (int(*)(const char*,int*,int*,char *,char *,int *,int *,int*))dlsym(
+dlHandle_network, "lynq_query_registration_state");
+ if (lynq_query_registration_state == NULL) {
+ ALOGI("lynq_query_registration_state not defined or exported in %s", lynqLibPath_Network);
+ exit(EXIT_FAILURE);
+ }
+
+ lynq_network_init = (int(*)(int))dlsym(dlHandle_network, "lynq_network_init");
+ if (lynq_network_init == NULL) {
+ ALOGI("lynq_network_init not defined or exported in %s", lynqLibPath_Network);
+ exit(EXIT_FAILURE);
+ }
+
+ ALOGI("start lynq_network_init\n");
+ printf("start lynq_network_init\n");
+ res = lynq_network_init(2);
+ sleep(10);
+
+ if(res == 0)
+ {
+ ALOGI("Run lynq_network_init\n");
+ printf("Run lynq_network_init\n");
+ }else{
+ ALOGI("lynq_network_init error\n");
+ printf("lynq_network_init error\n");
+ }
+
+ dlerror(); // Clear any previous dlerror
+ return;
+}
+#endif
+
+#ifdef MOBILETEK_TARGET_PLATFORM_T106
+int t106_set_lowpwr(int state)
+{
+ int ret;
+ char rsp[128];
+ char cmdstr[32];
+ if(state == 0)
+ {
+ strcpy(cmdstr, "AT+ZLOWPWR=0\r\n");
+ }
+ else
+ {
+ strcpy(cmdstr, "AT+ZLOWPWR=1\r\n");
+ }
+ ret = sc_at_send(1,cmdstr,rsp,sizeof(rsp));
+ printf("AT+ZLOWPWR result:%d %s\n",ret,rsp);
+ return ret;
+}
+
+int t106_set_blacklist(int blacklist_state)
+{
+ int ret;
+ char rsp[128];
+ char cmdstr[128];
+ if(blacklist_state == 0)
+ {
+ strcpy(cmdstr, "AT+SHELL=echo \"+CREG:+CGREG:+CEREG:^MODE:\" > /sys/module/at_io/parameters/at_psm_filter\r\n");
+ }
+ else
+ {
+ strcpy(cmdstr, "AT+SHELL=echo \"\" > /sys/module/at_io/parameters/at_psm_filter\r\n");
+ }
+ ret = sc_at_send(1,cmdstr,rsp,sizeof(rsp));
+ printf("AT+SHELL=echo result:%d %s\n",ret,rsp);
+ return ret;
+
+}
+int t106_set_whitelist(void)
+{
+ char tmp[8];
+ int ret;
+ lynq_get_value(LOG_UCI_FILE, LOG_UCI_MODULE, "whitelist_state", tmp);
+ if(strlen(tmp) != 4)
+ {
+ RLOGD("the whitelist len is error\n");
+ return 0;
+ }
+ if(tmp[0] == '1')
+ {
+ ret = sc_mnet_whitelist_add(1);
+ if(ret)
+ {
+ RLOGD("sc_mnet_whitelist_add 1 fail\n");
+ return ret;
+ }
+ ret = sc_mnet_whitelist_add(5);
+ if(ret)
+ {
+ RLOGD("sc_mnet_whitelist_add 5 fail\n");
+ return ret;
+ }
+ }
+ if(tmp[1] == '1')
+ {
+ ret = sc_mnet_whitelist_add(2);
+ if(ret)
+ {
+ RLOGD("sc_mnet_whitelist_add 2 fail\n");
+ return ret;
+ }
+ }
+ if(tmp[2] == '1')
+ {
+ ret = sc_mnet_whitelist_add(3);
+ if(ret)
+ {
+ RLOGD("sc_mnet_whitelist_add 3 fail\n");
+ return ret;
+ }
+ }
+ if(tmp[3] == '1')
+ {
+ ret = sc_mnet_whitelist_add(4);
+ if(ret)
+ {
+ RLOGD("sc_mnet_whitelist_add 4 fail\n");
+ return ret;
+ }
+ }
+
+ return 0;
+
+}
+int t106_early_suspend(void)
+{
+ int ret;
+
+ RLOGD("t106_early_suspend start\n");
+ ret=lynq_sleep_status(0);
+ RLOGD("lynq_get_sleep_status ret=%d\n", ret);
+ ret = t106_set_lowpwr(1);
+ RLOGD("t106_set_lowpwr status ret=%d\n", ret);
+ system("zlog_nvctrl -m 1");
+ ret = t106_set_whitelist();
+ if(ret)
+ {
+ RLOGD("t106_set_whitelist ret=%d\n", ret);
+ return ret;
+ }
+ ret = t106_set_blacklist(0);
+ if(ret)
+ {
+ RLOGD("t106_set_blacklist ret=%d\n", ret);
+ return ret;
+ }
+ return 0;
+}
+
+void t106_early_resume(void)
+{
+ int ret;
+ RLOGD("t106_early_resume start\n");
+ ret = t106_set_blacklist(1);
+ if(ret)
+ {
+ RLOGD("t106_set_whitelist ret=%d\n", ret);
+ }
+ ret = sc_mnet_whitelist_clear();
+ if(ret)
+ {
+ RLOGD("sc_mnet_whitelist_clear ret=%d\n", ret);
+ }
+ system("zlog_nvctrl -m 0");
+ ret = t106_set_lowpwr(0);
+ RLOGD("t106_set_lowpwr status ret=%d\n", ret);
+ ret=lynq_sleep_status(1);
+ RLOGD("lynq_get_sleep_status ret=%d\n", ret);
+
+ return NULL;
+}
+#endif
+
+#ifdef MOBILETEK_SUSPEND_CFG
+int t800_early_suspend(char *wakeup_count, int wakeup_count_len)
+{
+ char buf[80];
+ system("echo \"Sys standby mode\" >/dev/console");
+ // sleep(1);
+ system("echo 7 | emdlogger_ctrl");
+ // sleep(1);
+
+ if (lynq_screen(0) != 0) //notify ril for screen off
+ {
+ ALOGI("lynq_screen off fail\n");
+ return -1;
+ }
+ system("echo mode 4 0 >/sys/devices/platform/10005000.pinctrl/mt_gpio");
+ system("echo out 4 1 >/sys/devices/platform/10005000.pinctrl/mt_gpio");
+ RLOGD("ring GPIO PASS\n");
+ system("hwclock -w");
+ RLOGD("TIME: sys to rtc\n");
+ lseek(wakeup_count_fd, 0, SEEK_SET);
+ system("echo \"autosuspend:Sys seek\" >/dev/console");
+ wakeup_count_len = TEMP_FAILURE_RETRY(read(wakeup_count_fd, wakeup_count,
+ 200));
+ ALOGE("%s: %d, write %s to wakeup_count\n", __func__, wakeup_count_len, wakeup_count);
+ if (wakeup_count_len < 0) {
+ strerror_r(errno, buf, sizeof(buf));
+ ALOGE("Error reading from %s: %s\n", SYS_POWER_WAKEUP_COUNT, buf);
+ wakeup_count_len = 0;
+ return -1;
+ }
+
+ for(int i = 0;i < 5;i++) //notify spm (other core) to handle pre-sleep configuration
+ {
+ if(TEMP_FAILURE_RETRY(write(suspend_ctrl_fd,reg_netsys[i],strlen(reg_netsys[i]))) < 0)
+ {
+ strerror_r(errno, buf, sizeof(buf));
+ ALOGI("Error writing to %s: %s\n", SYS_POWER_SPM_SUSPEND_CRTL, buf);
+ return -1;
+ }
+ }
+ return 0;
+}
+
+void t800_early_resume(bool success)
+{
+ system("hwclock -s");
+ RLOGD("TIME: rtc to sys\n");
+ if (!success)
+ {
+
+ system("mdlogctl start");
+
+ system("echo 8 | emdlogger_ctrl");
+
+ usleep(200000);
+ ALOGI("Log on with failure\n");
+ return ;
+ }
+
+ if (lynq_screen(1) != 0) // notify ril for screen on
+ {
+ ALOGI("lynq_screen on fail\n");
+ }
+
+ system("mdlogctl start");
+
+ system("echo 8 | emdlogger_ctrl");
+ usleep(300000); //delay 2s for ril handling screen on,at least 70ms
+
+ return NULL;
+}
+#endif
+
+
+static int suspend_ctrl(char *wakeup_count,int wakeup_count_len)
+{
+
+
+ char buf[80];
+ int ret = 0;
+#ifdef MOBILETEK_SUSPEND_CFG
+ ret = t800_early_suspend(char *wakeup_count, wakeup_count_len);
+ if(ret != 0)
+ {
+ ALOGD("t800_early_suspend fail\n");
+ return -1;
+ }
+#endif
+
+
+#ifdef MOBILETEK_TARGET_PLATFORM_T106
+ ret = t106_early_suspend();
+ if(ret != 0)
+ {
+ ALOGD("t106_early_suspend fail\n");
+ return -1;
+ }
+#endif
+
+ system("echo \"autosuspend:Sys suspend\" >/dev/console");
+ if(TEMP_FAILURE_RETRY(write(state_fd, sleep_state, strlen(sleep_state))) < 0) //enter suspend procedures in kernel
+ {
+ strerror_r(errno, buf, sizeof(buf));
+ ALOGI("Error writing to %s: %s\n", SYS_POWER_STATE, buf);
+ return -1;
+ }
+
+ return 0;
+}
+
+
+void wakeup_feedback(bool success)
+{
+
+ char buf[80];
+ long sleeptime = 0;
+
+#ifdef MOBILETEK_SUSPEND_CFG
+ t800_early_resume(bool success);
+#endif
+
+
+#ifdef MOBILETEK_TARGET_PLATFORM_T106
+ t106_early_resume();
+#endif
+
+ pthread_mutex_lock(&time_info_mutex);
+ memset(&tv,0,sizeof(struct timeval));
+ gettimeofday(&tv,NULL);
+ // time_info.wakeup_time = tv.tv_sec * 1000 + tv.tv_usec / 1000;
+ end_time = tv.tv_sec * 1000 + tv.tv_usec / 1000;
+ ALOGI("%s: wake up time: %ld ms\n", __func__,end_time);
+
+ memset(&time_info,0,sizeof(struct time_info_t));
+
+ time_info.sleep_start_time = start_time;
+ time_info.wakeup_time = end_time;
+ sleeptime = end_time -start_time;
+ RLOGD("sleep time is %ld ms\n", sleeptime);
+ pthread_mutex_unlock(&time_info_mutex);
+
+ if (pthread_cond_broadcast(&feedback_cond) != 0) {
+ strerror_r(errno, buf, sizeof(buf));
+ ALOGI("Error broadcast cond: %s\n", buf);
+ }
+
+ return ;
+
+}
+
+static void update_sleep_time(bool success) {
+ if (success) {
+ sleep_time = BASE_SLEEP_TIME;
+ return;
+ }
+ // double sleep time after each failure up to one minute
+ sleep_time = MIN(sleep_time * 2, possible_max_sleep_time);
+}
+
+static void *suspend_thread_func(void *arg __attribute__((unused)))
+{
+ char buf[80];
+ char wakeup_count[20];
+ int wakeup_count_len;
+ int ret;
+ bool success = true;
+
+ while (1) {
+ update_sleep_time(success);
+ usleep(sleep_time);
+ success = false;
+
+ ALOGI("%s: wait\n", __func__);
+ ret = sem_wait(&suspend_lockout);
+ if (ret < 0) {
+ strerror_r(errno, buf, sizeof(buf));
+ ALOGI("Error waiting on semaphore: %s\n", buf);
+ continue;
+ }
+
+ ALOGV("%s: read wakeup_count\n", __func__);
+ lseek(wakeup_count_fd, 0, SEEK_SET);
+ wakeup_count_len = TEMP_FAILURE_RETRY(read(wakeup_count_fd, wakeup_count,
+ sizeof(wakeup_count)));
+ if (wakeup_count_len < 0) {
+ strerror_r(errno, buf, sizeof(buf));
+ ALOGE("Error reading from %s: %s\n", SYS_POWER_WAKEUP_COUNT, buf);
+ wakeup_count_len = 0;
+ continue;
+ }
+ if (!wakeup_count_len) {
+ ALOGE("Empty wakeup count\n");
+ continue;
+ }
+
+ ALOGI("%s: start suspend_ctrl\n", __func__);
+ memset(&tv,0,sizeof(struct timeval));
+ // memset(&time_info,0 ,sizeof(struct time_info_t));
+ gettimeofday(&tv,NULL);
+
+ start_time = tv.tv_sec * 1000 + tv.tv_usec / 1000;
+ ALOGI("%s: suspend start time: %ld ms\n", __func__,start_time);
+ // time_info.sleep_start_time = tv.tv_sec * 1000 + tv.tv_usec / 1000;
+
+ ret = suspend_ctrl(wakeup_count,wakeup_count_len);
+
+ if (ret >= 0) {
+ ALOGI("suspend_ctrl success.\n");
+ success = true;
+ }
+ else
+ {
+ ALOGI("suspend_ctrl false.\n");
+ success = false;
+ }
+
+ void (*func)(bool success) = wakeup_func;
+ if (func != NULL) {
+ (*func)(success); //handling resume event for other libs /apps
+ }
+
+ ALOGI("%s: release sem\n", __func__);
+ ret = sem_post(&suspend_lockout);
+ if (ret < 0) {
+ strerror_r(errno, buf, sizeof(buf));
+ ALOGI("Error releasing semaphore: %s\n", buf);
+ }
+
+ if(adb_debug_mode == 1) // it's neccessary to wait for autosuspend_disable function calling in debug mode when finish resume procedure.
+ {
+ sleep(40);
+ }
+ else
+ {
+ ALOGI("%s: adb_debug unsupported\n", __func__);
+ }
+
+ ALOGI("%s: END SLEEP\n", __func__);
+ }
+ return NULL;
+}
+
+static int autosuspend_wakeup_count_enable(void)
+{
+ char buf[80];
+ int ret;
+
+ ALOGI("autosuspend_wakeup_count_enable\n");
+
+ ret = sem_post(&suspend_lockout);
+
+ if (ret < 0) {
+ strerror_r(errno, buf, sizeof(buf));
+ ALOGI("Error changing semaphore: %s\n", buf);
+ }
+
+ ALOGI("autosuspend_wakeup_count_enable done\n");
+
+ return ret;
+}
+
+static int autosuspend_wakeup_count_disable(void)
+{
+ char buf[80];
+ int ret;
+
+ ALOGI("autosuspend_wakeup_count_disable\n");
+
+ ret = sem_wait(&suspend_lockout);
+
+ if (ret < 0) {
+ strerror_r(errno, buf, sizeof(buf));
+ ALOGI("Error changing semaphore: %s\n", buf);
+ }
+
+ ALOGI("autosuspend_wakeup_count_disable done\n");
+
+ return ret;
+}
+
+void set_wakeup_callback(void (*func)(bool success))
+{
+ if (wakeup_func != NULL) {
+ ALOGI("Duplicate wakeup callback applied, keeping original");
+ return;
+ }
+ wakeup_func = func;
+}
+
+struct autosuspend_ops autosuspend_wakeup_count_ops = {
+ .enable = autosuspend_wakeup_count_enable,
+ .disable = autosuspend_wakeup_count_disable,
+};
+
+struct autosuspend_ops *autosuspend_wakeup_count_init(void)
+{
+ int ret;
+ char buf[80];
+ char timeout_str[100]="100000";
+ pid = getpid();
+ char cmdstr[32];
+ char rsp[128];
+ //if (property_get("sys.autosuspend.timeout", timeout_str, NULL))
+ {
+ possible_max_sleep_time = atoi(timeout_str);
+ ALOGI("autosuspend timeout is %d\n", possible_max_sleep_time);
+ }
+
+ state_fd = TEMP_FAILURE_RETRY(open(SYS_POWER_STATE, O_RDWR));
+ if (state_fd < 0) {
+ strerror_r(errno, buf, sizeof(buf));
+ ALOGI("Error opening %s: %s\n", SYS_POWER_STATE, buf);
+ goto err_open_state;
+ }
+
+ wakeup_count_fd = TEMP_FAILURE_RETRY(open(SYS_POWER_WAKEUP_COUNT, O_RDWR));
+ if (wakeup_count_fd < 0) {
+ strerror_r(errno, buf, sizeof(buf));
+ ALOGI("Error opening %s: %s\n", SYS_POWER_WAKEUP_COUNT, buf);
+ goto err_open_wakeup_count;
+ }
+#ifdef MOBILETEK_SUSPEND_CFG
+ suspend_ctrl_fd = TEMP_FAILURE_RETRY(open(SYS_POWER_SPM_SUSPEND_CRTL, O_RDWR));
+ if (suspend_ctrl_fd < 0) {
+ strerror_r(errno, buf, sizeof(buf));
+ ALOGI("Error opening %s: %s\n", SYS_POWER_SPM_SUSPEND_CRTL, buf);
+ goto err_open_suspend_ctrl;
+ }
+#endif
+ ret = sem_init(&suspend_lockout, 0, 0);
+ if (ret < 0) {
+ strerror_r(errno, buf, sizeof(buf));
+ ALOGI("Error creating semaphore: %s\n", buf);
+ goto err_sem_init;
+ }
+#ifdef MOBILETEK_TARGET_PLATFORM_T106
+ if(sc_at_init(1)){
+ ALOGD("sc_at_init failed.\n");
+ return NULL;
+ }
+ else
+ {
+ strcpy(cmdstr, "AT+ZPOWSTAT=1\r\n");
+ printf("AUTOSUSPEND: cmd:%s\n",cmdstr);
+ ret = sc_at_send(1,cmdstr,rsp,sizeof(rsp));
+ printf("AUTOSUSPEND: sc_at_send result:%d %s\n",ret,rsp);
+
+ }
+ if(sc_mnet_whitelist_init() != 0)
+ {
+ ALOGD("sc_mnet_whitelist_init failed.\n");
+ return NULL;
+ }
+#endif
+ ret = lynq_sim_init((int)pid);
+ if(ret == 0)
+ {
+ ALOGD("Run lynq_sim_init\n");
+ }
+ else
+ {
+ return NULL;
+ }
+ ret = pthread_create(&suspend_thread, NULL, suspend_thread_func, NULL);
+ if (ret) {
+ strerror_r(ret, buf, sizeof(buf));
+ ALOGI("Error creating thread: %s\n", buf);
+ goto err_pthread_create;
+ }
+
+ ALOGI("Selected wakeup count\n");
+ return &autosuspend_wakeup_count_ops;
+
+err_pthread_create:
+ sem_destroy(&suspend_lockout);
+err_sem_init:
+ close(wakeup_count_fd);
+err_open_wakeup_count:
+ close(state_fd);
+#ifdef MOBILETEK_SUSPEND_CFG
+err_open_suspend_ctrl:
+ close(suspend_ctrl_fd);
+#endif
+err_open_state:
+ return NULL;
+}
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/lynq-autosuspend.sh b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/lynq-autosuspend.sh
new file mode 100755
index 0000000..8e96831
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/lynq-autosuspend.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Run the daemon
+#
+
+DAEMON="lynq-autosuspend-service"
+PIDFILE="/var/run/$DAEMON.pid"
+EXEC="/usr/bin/autosuspend"
+EXEC_ARGS=""
+
+
+start() {
+ echo -n "Starting $DAEMON... "
+ start-stop-daemon --no-close -S -b -m -p $PIDFILE -x $EXEC -- $EXEC_ARGS
+ [ $? -eq 0 ] && echo "OK" || echo "ERROR"
+}
+
+stop() {
+ echo -n "Stopping $DAEMON... "
+ start-stop-daemon -K -p $PIDFILE
+ [ $? -eq 0 ] && echo "OK" || echo "ERROR"
+}
+
+restart() {
+ stop
+ start
+}
+
+case "$1" in
+ start|stop|restart)
+ "$1"
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+esac
+
+exit $?
+
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/main.c b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/main.c
new file mode 100755
index 0000000..f706c9f
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/main.c
@@ -0,0 +1,494 @@
+/* //device/system/rild/rild.c
+**
+** Copyright 2006 The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <dlfcn.h>
+#include <string.h>
+#include <pthread.h>
+#include <stdint.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <log/log.h>
+#include <liblog/lynq_deflog.h>
+#include <include/lynq_uci.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <signal.h>
+
+
+#define LOG_UCI_MODULE "lynq_autosuspend"
+#define LOG_UCI_FILE "lynq_uci"
+
+#define LOG_TAG "AUTOSUSPEND"
+
+#define USER_LOG_TAG "PMS"
+
+#define SOCK_PATH "/tmp/autosuspend.cmd.server" //不能在当前这个目录创建socket文件,否则报错找不到文件(可能是因为这是在共享文件夹下,不支持创建socket文件)
+
+#define SOCK_DATA_PATH "/tmp/autosuspend.data.server"
+
+// #define LYINFLOG(X...) lynq_log_global_output(LOG_INFO,X)
+
+#define TIME_OUT_TIME 30
+
+
+#define MAX_LIB_ARGS 16
+
+int adb_debug_mode = 0;
+
+
+pthread_cond_t feedback_cond = PTHREAD_COND_INITIALIZER;
+pthread_mutex_t feedback_mutex = PTHREAD_MUTEX_INITIALIZER;
+pthread_mutex_t time_info_mutex = PTHREAD_MUTEX_INITIALIZER;
+
+extern int autosuspend_enable(void);
+extern int autosuspend_disable(void);
+extern void init_wakelock_func(void);
+extern void init_sim_func();
+extern void init_network_func();
+extern void set_wakeup_callback(void (*func)(bool success));
+extern void wakeup_feedback(bool success);
+extern int (*lynq_screen)(int num);
+
+struct time_info_t
+{
+ long sleep_start_time;
+ long wakeup_time;
+};
+
+struct time_info_t time_info;
+
+static void usage(const char *argv0) {
+ fprintf(stderr, "Usage: %s -l <possible_max_sleep_time> [-- <args for Autosuspend Service>]\n", argv0);
+ exit(EXIT_FAILURE);
+}
+
+
+
+static int make_argv(char * args, char ** argv) {
+ // Note: reserve argv[0]
+ int count = 1;
+ char * tok;
+ char * s = args;
+
+ while ((tok = strtok(s, " \0"))) {
+ argv[count] = tok;
+ s = NULL;
+ count++;
+ }
+ return count;
+}
+
+static int Accept(int fd, struct sockaddr *sa, socklen_t *salenptr)
+{
+ int n;
+
+ while((n = accept(fd, sa, salenptr)) < 0)
+ {
+ if((errno == ECONNABORTED) || (errno == EINTR))
+ continue;
+ else
+ {
+ ALOGI("accept error\n");
+ return -1;
+ }
+ }
+ return n;
+}
+
+static int Bind(int fd, const struct sockaddr *sa, socklen_t salen)
+{
+ if(bind(fd, sa, salen) < 0)
+ {
+ // ALOGI("bind error\n");
+ perror("bind error");
+ return -1;
+ }
+ return 0;
+}
+
+
+static int Socket(int family, int type, int protocol)
+{
+ int n;
+
+ if ( (n = socket(family, type, protocol)) < 0)
+ {
+ ALOGI("socket error\n");
+ return -1;
+ }
+ return n;
+}
+
+static int Listen(int fd, int backlog)
+{
+ if(listen(fd, backlog) < 0)
+ {
+ ALOGI("listen error\n");
+ return -1;
+ }
+ return 0;
+}
+
+
+static int listen_port(struct sockaddr_un *addr, char *sockpath)
+{
+ int listenfd;
+ listenfd = Socket(AF_UNIX,SOCK_STREAM,0);
+ if(listenfd == -1)
+ return -1;
+ memset(addr, 0, sizeof(struct sockaddr_un));
+ addr->sun_family = AF_UNIX;
+ strcpy(addr->sun_path,sockpath);
+ // int opt = 1;
+ // if(setsockopt(listenfd, SOL_SOCKET,SO_REUSEADDR, (const void *)&opt, sizeof(opt)) == -1)
+ // {
+ // perror("setsockopt error");
+ // return -1;
+ // }
+
+// 以上方法对非网络的本地socket无效,应该用unlink函数避免Address already in use的错误
+
+
+ unlink(sockpath);
+ if(Bind(listenfd,(struct sockaddr *)addr,sizeof(*addr)) == -1)
+ return -1;
+
+ if(Listen(listenfd,20) == -1)
+ return -1;
+
+ return listenfd;
+}
+
+static ssize_t Read(int fd, void *ptr, size_t nbytes)
+{
+ ssize_t n;
+
+ while((n = read(fd, ptr, nbytes)) == -1)
+ {
+ //printf("READ,%d\n",fd);
+ if (errno == EINTR)
+ {
+ ALOGI("read error eintr\n");
+ continue;
+ }
+ else if(errno == EAGAIN || errno == EWOULDBLOCK)
+ {
+ ALOGI("read time out\n");
+ return -1;
+ }
+ else
+ {
+ ALOGI("read error\n");
+ return -1;
+ }
+ }
+ //sleep(2);
+ //printf("READ1,%d\n", fd);
+ return n;
+}
+
+static ssize_t Write(int fd, const void *ptr, size_t nbytes)
+{
+ ssize_t n;
+
+ while((n = write(fd, ptr, nbytes)) == -1)
+ {
+ if (errno == EINTR)
+ continue;
+ else if(errno == EPIPE)
+ {
+ ALOGI("write error epipe\n");
+ return -1;
+ }
+ else
+ return -1;
+ }
+ return n;
+}
+
+static int Close(int fd)
+{
+ if (close(fd) == -1)
+ {
+ ALOGI("close error\n");
+ return -1;
+ }
+ return 0;
+}
+
+
+void *deal_autosuspend(void *sockfd)
+{
+ int commfd = *((int *)sockfd);
+ char buf[20];
+ char res[15];
+
+ while(1)
+ {
+ memset(buf,0,sizeof(buf));
+ ALOGI("deal_autosuspend start to read.\n");
+ // 错误点:read函数在对端关闭后,也会直接返回0,不会阻塞,因此要判断是否返回0,返回0表示对端已经关闭,此时要跳出while循环不再监听
+ // 为什么对端会关闭?因为在客户端没有用nohup方式打开的情况下,系统睡眠后客户端进行会直接被杀死,对端会关闭,所以会导致read不阻塞,且总是返回0的现象
+ if(Read(commfd,buf,sizeof(buf)) <= 0)
+ {
+ ALOGI("service receive suspend_cmd fail or client is closed.\n");
+ Close(commfd);
+ break;
+ }
+ if(strcmp(buf,"enable") == 0)
+ {
+ if(autosuspend_enable() < 0)
+ {
+ ALOGI("autosuspend_enable fail.\n");
+ }
+ else
+ {
+ ALOGI("autosuspend_enable success.\n");
+ }
+ }
+ else if(strcmp(buf,"disable") == 0)
+ {
+ if(autosuspend_disable() < 0)
+ {
+ ALOGI("autosuspend_disable fail.\n");
+ }
+ else
+ {
+ ALOGI("autosuspend_disable success.\n");
+
+ }
+ }
+
+ else
+ {
+ ALOGI("Unknown cmd : %s\n",buf);
+ }
+
+ }
+
+
+
+}
+
+#ifdef GSW_SUSPEND_CFG
+/*jb.qi add for service send when DTR is low on 20221111 start */
+void *dtr_wakeup()
+{
+ FILE *fp;
+ int ret;
+ bool success = true;
+ char buf[30];
+ char dtr_buffer[25];
+ RLOGD("dtr_wakeup start\n");
+ while(1)
+ {
+ fp = popen("cat /sys/devices/platform/10005000.pinctrl/mt_gpio |grep 006:","r");
+ fgets(dtr_buffer, sizeof(dtr_buffer), fp);
+ if(dtr_buffer[7] == '0')
+ {
+ time_info.sleep_start_time = 123;
+ time_info.wakeup_time = 123;
+ if (pthread_cond_broadcast(&feedback_cond) != 0)
+ {
+ strerror_r(errno, buf, sizeof(buf));
+ ALOGI("Error broadcast cond: %s\n", buf);
+ }
+ RLOGD("dtr_wakeup success!\n");
+ sleep(3);
+ }
+ usleep(500);
+ pclose(fp);
+ }
+}
+/*jb.qi add for service send when DTR is low on 20221111 end */
+#endif
+
+void *send_feedback(void *sockfd)
+{
+ int commfd = *((int *)sockfd);
+ char buf[80];
+
+ while (1)
+ {
+ memset(buf,0,sizeof(buf));
+ ALOGI("send_feedback thread wait to send.\n");
+ pthread_mutex_lock(&feedback_mutex);
+ pthread_cond_wait(&feedback_cond,&feedback_mutex);
+
+ ALOGI("send_feedback thread is now sending the feedback to client.\n");
+ pthread_mutex_lock(&time_info_mutex);
+ if(Write(commfd,&time_info,sizeof(struct time_info_t)) <= 0)
+ {
+ ALOGI("service send wakeup_feedback struct fail.\n");
+ Close(commfd);
+ pthread_mutex_unlock(&time_info_mutex);
+ pthread_mutex_unlock(&feedback_mutex);
+#ifdef GSW_SUSPEND_CFG
+ continue ;//jb.qi add for service send when DTR is low on 20221111
+#endif
+
+#ifdef MOBILETEK_SUSPEND_CFG
+ break ;
+#endif
+ }
+ pthread_mutex_unlock(&time_info_mutex);
+
+ pthread_mutex_unlock(&feedback_mutex);
+
+
+
+ }
+
+}
+
+
+int main(int argc, char **argv) {
+
+
+ // int i = 0;
+ // RLOGD("**Autosuspend Service Daemon Started**");
+ // RLOGD("**Autosuspend Service param count=%d**", argc);
+ char tmp[20];
+
+ int commfd, commfd_data, server_sock, server_data_sock,len, len_data;
+
+ struct sockaddr_un server_sockaddr;
+ struct sockaddr_un server_data_sockaddr;
+ struct sockaddr_un client_sockaddr;
+
+ len = sizeof(server_sockaddr);
+
+
+ pthread_t tid;
+#ifdef GSW_SUSPEND_CFG
+ pthread_t tid_1;//jb.qi add for service send when DTR is low on 20221111
+#endif
+
+ LYLOGEINIT(USER_LOG_TAG);
+ LYLOGSET(LOG_DEBUG);
+ // LYLOGSET(LOG_ERROR);
+
+ int auto_enable = 0;
+
+ lynq_get_value(LOG_UCI_FILE, LOG_UCI_MODULE, "debug", tmp); // 即获取系统层面的环境变量
+ ALOGI("Autosuspend Service Daemon. debug %s\n",tmp);
+ adb_debug_mode=atoi(tmp);
+ lynq_get_value(LOG_UCI_FILE, LOG_UCI_MODULE, "auto_enable", tmp);
+ auto_enable=atoi(tmp);
+ ALOGI("Autosuspend Service Daemon. auto_enable %s\n",tmp);
+#ifdef MOBILETEK_SUSPEND_CFG
+ init_wakelock_func();
+ init_sim_func();
+#endif
+ signal(SIGPIPE,SIG_IGN); // 忽略SIGPIPE信号,防止由于客户端关闭,继续往客户端write,会导致服务端收到SIGPIPE信号而Broken pipe
+
+
+ // init_network_func();
+
+ // if(pthread_cond_init(&feedback_cond,NULL) != 0)
+ // {
+ // strerror_r(errno, buf, sizeof(buf));
+ // ALOGI("Error creating cond: %s\n", buf);
+ // return -1;
+ // }
+
+ set_wakeup_callback(wakeup_feedback);
+ // 注册回调函数
+
+ if(auto_enable==0)
+ {
+ if(autosuspend_disable() < 0)
+ {
+ ALOGI("autosuspend_disable fail.\n");
+ }
+ else
+ {
+ ALOGI("autosuspend_disable success.\n");
+ }
+ }
+ if(auto_enable==1)
+ {
+ if(autosuspend_enable() < 0)
+ {
+ ALOGI("autosuspend_enable fail.\n");
+ }
+ else
+ {
+ ALOGI("autosuspend_enable success.\n");
+ }
+ }
+
+
+ server_sock = listen_port(&server_sockaddr,SOCK_PATH);
+ if(server_sock == -1)
+ return -1;
+
+ server_data_sock = listen_port(&server_data_sockaddr,SOCK_DATA_PATH);
+ if(server_data_sock == -1)
+ return -1;
+#ifdef GSW_SUSPEND_CFG
+ /*jb.qi add for service send when DTR is low on 20221111 start*/
+ pthread_create(&tid_1,NULL,dtr_wakeup,NULL);
+ pthread_detach(tid_1);
+ /*jb.qi add for service send when DTR is low on 20221111 end*/
+#endif
+
+ while (1)
+ {
+ ALOGI("service socket listening...\n");
+ commfd = Accept(server_sock,(struct sockaddr *)&client_sockaddr,&len);
+ if(commfd == -1)
+ {
+ return -1;
+ }
+ if(getpeername(commfd, (struct sockaddr *)&client_sockaddr, &len) == -1)
+ {
+ ALOGI("GETPEERNAME ERROR.\n");
+ // Close(server_sock);
+ Close(commfd);
+ continue;
+ }
+ else
+ {
+ ALOGI("Client socket filepath: %s\n", client_sockaddr.sun_path);
+ }
+
+ commfd_data = Accept(server_data_sock,NULL,NULL);
+ if(commfd_data == -1)
+ {
+ return -1;
+ }
+ ALOGI("data channel connected.\n");
+
+ pthread_create(&tid,NULL,deal_autosuspend,(void*)&commfd);//这里很容易错,最后一个参数要取地址,这是一个指针
+ pthread_detach(tid);
+
+ pthread_create(&tid,NULL,send_feedback,(void*)&commfd_data);
+ pthread_detach(tid);
+
+
+ }
+
+
+}
+
+DEFINE_LYNQ_LIB_LOG(LYNQ_AUTOSUSPEND)
+
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/makefile b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/makefile
new file mode 100755
index 0000000..ca263bf
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/files/makefile
@@ -0,0 +1,71 @@
+SHELL = /bin/sh
+RM = rm -f
+
+LOCAL_CFLAGS := -Wall \
+ -g -Os \
+ -flto \
+ -DRIL_SHLIB \
+ -DATCI_PARSE \
+ -DKEEP_ALIVE \
+ -D__LINUX_OS__ \
+ -DECALL_SUPPORT
+
+
+
+ifeq ($(strip $(TARGET_PLATFORM)), T106)
+LOCAL_CFLAGS += -DHAVE_SYS_UIO_H -DRIL_TIME_CB
+endif
+
+ifeq ($(strip $(TARGET_PLATFORM)), T106)
+ LOCAL_CFLAGS += -DMOBILETEK_TARGET_PLATFORM_T106
+endif
+
+ifeq ($(strip $(MOBILETEK_SUSPEND_CFG)), GSW)
+ LOCAL_CFLAGS += -DGSW_SUSPEND_CFG
+
+endif
+
+ifeq ($(strip $(MOBILETEK_SUSPEND_CFG)), PLATFORM)
+ LOCAL_CFLAGS += -DMOBILETEK_SUSPEND_CFG
+
+endif
+
+
+LOCAL_PATH = .
+
+LOCAL_C_INCLUDES = \
+ -I. -I$(ROOT)$(includedir)/liblog -I$(ROOT)$(includedir) \
+
+
+
+
+LOCAL_LIBS := \
+ -L. \
+ -ldl \
+ -lpthread \
+ -llynq-log \
+ -llynq-uci \
+ -llog \
+ -lbsp \
+ -lsctel \
+ -latutils \
+ -latreg \
+ -llynq-sim \
+
+
+SOURCES = $(wildcard *.c )
+
+EXECUTABLE = autosuspend
+
+OBJECTS=$(SOURCES:.c=.o)
+all: $(EXECUTABLE)
+
+$(EXECUTABLE): $(OBJECTS)
+ $(CXX) $(OBJECTS) $(LOCAL_LIBS) $(LOCAL_CFLAGS) $(LOCAL_C_INCLUDES) -o $@
+
+%.o : %.c
+ $(CC) $(LOCAL_C_INCLUDES) $(LOCAL_CFLAGS) $(LOCAL_LIBS) -o $@ -c $<
+
+.PHONY: clean
+clean:
+ $(RM) $(OBJECTS) $(EXECUTABLE)
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/lynq-autosuspend.bb b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/lynq-autosuspend.bb
new file mode 100755
index 0000000..a3df67f
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-autosuspend/lynq-autosuspend.bb
@@ -0,0 +1,72 @@
+inherit externalsrc package systemd
+
+DESCRIPTION = "autosuspend.service"
+
+LICENSE = "MobileTekProprietary"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=44d8d2b6296ca24bcd4894bb7155bf27"
+
+SRC_URI = "file://autosuspend.c file://LICENSE \
+ file://autosuspend.h \
+ file://autosuspend_ops.h \
+ file://autosuspend_wakeup_count.c \
+ file://main.c \
+ file://autosuspend.service \
+ file://lynq-autosuspend.sh \
+ file://makefile \
+"
+
+EXTRA_OEMAKE = "'TARGET_PLATFORM = ${TARGET_PLATFORM}'"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+LOCAL_C_INCLUDES = "-I. "
+
+DEPENDS = "liblynq-log liblynq-uci"
+DEPENDS += "${@bb.utils.contains('TARGET_PLATFORM', 'mt2735', 'audio-mixer-ctrl streamer1.0', '', d)} liblynq-log liblynq-uci libbsp libsctel libatutils libatreg liblynq-sim"
+LOCAL_LIBS = "-L. -ldl -lstdc++ -lpthread -llog"
+SOURCES = "$(wildcard *.c )"
+
+OBJECTS = "$(SOURCES:.c=.o)"
+
+EXECUTABLE = "autosuspend"
+S = "${WORKDIR}"
+TARGET_CC_ARCH += "${LDFLAGS}"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "autosuspend.service"
+FILES_${PN} += "${systemd_unitdir}/system/autosuspend.service"
+#INHIBIT_PACKAGE_STRIP = "1"
+do_compile () {
+
+ #${CXX} -Wall ${LOCAL_C_INCLUDES} autosuspend.c autosuspend_wakeup_count.c main.c ${LOCAL_LIBS} -o ${EXECUTABLE}
+ if test "${PACKAGE_ARCH}" = "cortexa7hf-vfp-vfpv4-neon" || test "${PACKAGE_ARCH}" = "cortexa7hf-neon-vfpv4"; then
+ oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST} -mhard-float"
+ else
+ oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST}"
+ fi
+}
+
+do_install() {
+ install -d ${D}${bindir}/
+ echo "Installing image PN ${PN}"
+ echo "Installing image systemd_unitdir ${systemd_unitdir}"
+ echo "Installing image D ${D}"
+ echo "Installing image B ${B}"
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${B}/autosuspend.service ${D}${systemd_unitdir}/system
+ else
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${S}/lynq-autosuspend.sh ${D}${sysconfdir}/init.d/
+ install -d ${D}${sysconfdir}/rcS.d
+ ln -s ../init.d/lynq-autosuspend.sh ${D}${sysconfdir}/rcS.d/S82lynq-autosuspend-service
+ fi
+
+ install -m 0755 ${S}/autosuspend ${D}${bindir}/
+ install -d ${D}${includedir}
+}
+
+
+
+
+
+
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/LICENSE b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/LICENSE
new file mode 100755
index 0000000..0489348
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/LICENSE
@@ -0,0 +1,31 @@
+opyright Statement:
+
+This software/firmware and related documentation ("MobileTek Software") are
+protected under relevant copyright laws. The information contained herein is
+confidential and proprietary to MobileTek Inc. and/or its licensors. Without
+the prior written permission of MobileTek inc. and/or its licensors, any
+reproduction, modification, use or disclosure of MobileTek Software, and
+information contained herein, in whole or in part, shall be strictly
+prohibited.
+
+Mobiletek Inc. (C) 2015. All rights reserved.
+
+BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MobileTek SOFTWARE")
+RECEIVED FROM MobileTek AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER
+ON AN "AS-IS" BASIS ONLY. MobileTek EXPRESSLY DISCLAIMS ANY AND ALL
+WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
+NONINFRINGEMENT. NEITHER DOES MobileTek PROVIDE ANY WARRANTY WHATSOEVER WITH
+RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY,
+INCORPORATED IN, OR SUPPLIED WITH THE MobileTek SOFTWARE, AND RECEIVER AGREES
+TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO.
+RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO
+OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN MobileTek
+SOFTWARE. MobileTek SHALL ALSO NOT BE RESPONSIBLE FOR ANY MobileTek SOFTWARE
+RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MobileTek'S
+ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE MobileTek SOFTWARE
+RELEASED HEREUNDER WILL BE, AT MobileTek'S OPTION, TO REVISE OR REPLACE THE
+MobileTek SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE
+CHARGE PAID BY RECEIVER TO MobileTek FOR SUCH MobileTek SOFTWARE AT ISSUE.
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/lynq-fota-backup.service b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/lynq-fota-backup.service
new file mode 100755
index 0000000..28851ff
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/lynq-fota-backup.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=lynq-fota-backup-service
+
+[Service]
+ExecStart=/usr/bin/lynq-fota-backup
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/lynq-fota-backup.sh b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/lynq-fota-backup.sh
new file mode 100755
index 0000000..53eb20f
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/lynq-fota-backup.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Run the daemon
+#
+
+DAEMON="lynq-fota-backup-service"
+PIDFILE="/var/run/$DAEMON.pid"
+EXEC="/usr/bin/lynq-fota-backup"
+EXEC_ARGS=""
+
+
+start() {
+ echo -n "Starting $DAEMON... "
+ start-stop-daemon --no-close -S -b -m -p $PIDFILE -x $EXEC -- $EXEC_ARGS
+ [ $? -eq 0 ] && echo "OK" || echo "ERROR"
+}
+
+stop() {
+ echo -n "Stopping $DAEMON... "
+ start-stop-daemon -K -p $PIDFILE
+ [ $? -eq 0 ] && echo "OK" || echo "ERROR"
+}
+
+restart() {
+ stop
+ start
+}
+
+case "$1" in
+ start|stop|restart)
+ "$1"
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+esac
+
+exit $?
+
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/makefile b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/makefile
new file mode 100755
index 0000000..0a349d3
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-fota-backup/files/makefile
@@ -0,0 +1,57 @@
+SHELL = /bin/sh
+RM = rm -f
+
+LOCAL_CFLAGS := -Wall \
+ -std=gnu++14 \
+ -g -Os \
+ -flto \
+ -fPIC \
+
+
+
+ifeq ($(strip $(TARGET_PLATFORM)), T106)
+LOCAL_CFLAGS += -DBINDER_IPC_32BIT=1 -DHAVE_ENDIAN_H -DHAVE_PTHREADS -DHAVE_SYS_UIO_H -DHAVE_POSIX_FILEMAP -DHAVE_STRLCPY -DHAVE_PRCTL -DHAVE_MEMSET16 -DHAVE_MEMSET32 -DANDROID_SMP=0
+endif
+
+LOCAL_CFLAGS += -Werror=format-security
+
+$(warning ################# rock ROOT: $(ROOT),includedir:$(includedir),)
+
+LOCAL_PATH = .
+
+LOCAL_C_INCLUDES = \
+ -I. \
+ -I$(LOCAL_PATH)/include \
+ -I$(ROOT)$(includedir)/logger \
+ -I$(ROOT)$(includedir)/liblog \
+ -I$(ROOT)$(includedir)/glib-2.0 \
+ -I$(ROOT)$(libdir)/glib-2.0/include \
+ -I$(ROOT)$(includedir) \
+
+
+
+LOCAL_LIBS := \
+ -L. \
+ -ldl \
+ -lstdc++ \
+ -llynq-log \
+ -llynq-fota \
+
+SOURCES = lynq-fota-backup.cpp
+
+EXECUTABLE = lynq-fota-backup
+
+OBJECTS=$(SOURCES:.cpp=.o)
+
+all: $(EXECUTABLE)
+$(EXECUTABLE): $(OBJECTS)
+ $(CXX) $(OBJECTS) $(LOCAL_LIBS) $(LOCAL_CFLAGS) $(LOCAL_C_INCLUDES) -o $@
+
+%.o : %.cpp
+ $(CXX) $(LOCAL_C_INCLUDES) $(LOCAL_CFLAGS) $(LOCAL_LIBS) -o $@ -c $<
+
+.PHONY: clean
+clean:
+ $(RM) $(OBJECTS) $(EXECUTABLE)
+ $(RM) $(OBJECTS_TOOL) $(EXECUTABLE)
+
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-fota-backup/lynq-fota-backup.bb b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-fota-backup/lynq-fota-backup.bb
new file mode 100755
index 0000000..b89f7ab
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-fota-backup/lynq-fota-backup.bb
@@ -0,0 +1,54 @@
+#inherit externalsrc package systemd
+
+DESCRIPTION = "lynq-fota-backup.service"
+
+LICENSE = "MIT"
+##License checksum file is always required
+LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=c794e8ff1acd3b7f156a6497e780dd54"
+
+SRC_URI = "file://lynq-fota-backup.cpp \
+ file://lynq-fota-backup.sh \
+ file://makefile \
+ file://lynq-fota-backup.service \
+ file://LICENSE \
+"
+
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+
+DEPENDS += "liblynq-log liblynq-uci liblynq-qser-fota"
+S = "${WORKDIR}"
+#INHIBIT_PACKAGE_STRIP = "1"
+do_compile () {
+
+
+ if test "${PACKAGE_ARCH}" = "cortexa7hf-vfp-vfpv4-neon" || test "${PACKAGE_ARCH}" = "cortexa7hf-neon-vfpv4"; then
+ oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST} -mhard-float"
+ else
+ oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST}"
+ fi
+}
+#INHIBIT_PACKAGE_STRIP = "1"
+
+
+do_install() {
+ install -d ${D}${bindir}/
+ echo "Installing image PN ${PN}"
+ echo "Installing image systemd_unitdir ${systemd_unitdir}"
+ echo "Installing image D ${D}"
+ echo "Installing image B ${B}"
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${B}/lynq-fota-backup.service ${D}${systemd_unitdir}/system
+ else
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${S}/lynq-fota-backup.sh ${D}${sysconfdir}/init.d/
+ install -d ${D}${sysconfdir}/rcS.d
+ ln -s ../init.d/lynq-fota-backup.sh ${D}${sysconfdir}/rcS.d/S82lynq-fota-backup-service
+ fi
+
+ install -m 0755 ${S}/lynq-fota-backup ${D}${bindir}/
+ install -d ${D}${includedir}
+}
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-gnss-update/files/main.c b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-gnss-update/files/main.c
new file mode 100755
index 0000000..6b9fddd
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-gnss-update/files/main.c
@@ -0,0 +1,236 @@
+#include "hd8040_upgrade.h"
+#include "port.h"
+#include <getopt.h>
+#include <include/lynq-gpio.h>
+#define READ_MAX_LENGTH 128
+#define PORT_NAME ("/dev/ttyS2")
+uint8_t g_bin_buff[500*1024] = {0};
+uint32_t g_bin_buff_size = 0;
+extern int get_mon_ver(int uart_fd,uint8_t *ver_buf, int ver_len);
+
+#define READ_LEN_MAX 1024 //BOOT_UPGRADE_BUFF_MAX_1
+
+int read_bin_file(uint8_t *path, uint8_t *buff)
+{
+ int fp = -1;
+ int ret = 0;
+ int i = 0;
+ int size = 0;
+
+ if (NULL == path || NULL == buff)
+ {
+ printf("[%s %d] str error", __FUNCTION__, __LINE__);
+ return -1;
+ }
+
+ fp = open((char *)path, O_RDONLY);
+ if(fp < 0)
+ {
+ printf( "[%s %d]open file failed ! errno is %d\n", __FUNCTION__, __LINE__, errno);
+ return -1;
+ }
+
+ size = lseek(fp, 0x00, SEEK_END);
+ if(size <= 0)
+ {
+ printf( "[%s %d]file is empty\n", __FUNCTION__, __LINE__);
+ return -1;
+ }
+
+ printf( "[%s %d]file size is:%d\n", __FUNCTION__, __LINE__, size);
+ lseek(fp, 0x00, SEEK_SET);
+ while(1)
+ {
+ ret = read(fp, buff, READ_LEN_MAX);
+ i += ret;
+ if(ret == READ_LEN_MAX)
+ {
+ buff += READ_LEN_MAX;
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ printf( "[%s %d]file size is:%d,i:%d\n", __FUNCTION__, __LINE__, size, i);
+ close(fp);
+ if(size != i)
+ {
+ return -1;
+ }
+ g_bin_buff_size = size;
+ return 0;
+}
+
+static void print_usage(const char *prog)
+{
+ printf("Usage: %s [-BUTVh]\n", prog);
+ puts(" -B --boot boot mode select\n"
+ " -U --user user mode select \n"
+ " -T --usertoboot usertoboot mode select \n"
+ " -V --version firmware version get \n"
+ " -h --help help message print \n");
+ exit(1);
+}
+
+struct option long_options[] = {
+{ "name", 0, NULL, 'n' },
+{ "bf_name", 0, NULL, 'b' },
+{ "love", 1, NULL, 'l' },
+{ 0, 0, 0, 0},
+};
+
+static const struct option lopts[] = {
+{ "boot", required_argument, NULL, 'B' },//required_argument
+{ "user", required_argument, NULL, 'U' },
+{ "usertoboot", required_argument, NULL, 'T' },
+{ "version", 0, NULL, 'V' },
+{ "help", 0, NULL, 'h' },
+{ 0, 0, 0, 0 },
+};
+char* const short_options1 = "B:U:T:Vh";
+
+int write_file(uint8_t *path, uint8_t *buff, int len)
+{
+ int fp = -1;
+ int ret = 0;
+ int i = 0;
+ int size = 0;
+
+ if (NULL == path || NULL == buff)
+ {
+ printf("[%s %d] str error", __FUNCTION__, __LINE__);
+ return -1;
+ }
+
+ fp = open((char *)path, O_RDWR );
+ if(fp < 0)
+ {
+ printf( "[%s %d]open file failed ! errno is %d\n", __FUNCTION__, __LINE__, errno);
+ return -1;
+ }
+
+ size = lseek(fp, 0x00, SEEK_END);
+
+ write(fp, buff, len);
+
+ printf( "[%s %d]file size is:%d,i:%d\n", __FUNCTION__, __LINE__, size, i);
+ close(fp);
+ return 0;
+}
+
+//example //升级过程中,禁止其他程序操作该串口,禁止断电复位等操作
+int main(int argc, char *argv[])
+{
+ uint8_t newVersionBuf[READ_MAX_LENGTH] = {0};
+ uint8_t cleintID[READ_MAX_LENGTH] = "999999";
+ int fd = -1; // uart handle
+ int ret = -1;
+ uint8_t filePath[256] = {0};
+ uint16_t filePtahLen = 0;
+
+ if (argc == 1)
+ {
+ printf("This program needs arguments....\n\n");
+ print_usage(argv[0]);
+ }
+
+ int num;
+ while ((num = getopt_long(argc, argv, short_options1, lopts, NULL)) != -1)
+ {
+ printf("getopt_long C:%d\n", num);
+ switch (num)
+ {
+
+ case 'B':
+ {
+ printf("optarg:%s\n", optarg);
+ if ( optarg == NULL )
+ {
+ printf("%s: option 'B' requires argument...\n", argv[0]);
+ break;
+ }
+ filePtahLen = strlen(optarg);
+ if(filePtahLen < sizeof(filePath))
+ {
+ memcpy((char *)filePath, optarg, filePtahLen);
+ goto HD_UPG;
+ }
+
+ //sleep(1);
+ }
+ break;
+ case 'V':
+ {
+ printf("check version\n");
+ fd = OpenUart((char *)PORT_NAME);
+ if (fd < 0)
+ {
+
+ printf("open uart failed %d\n", fd);
+ return -1;
+ }
+ get_mon_ver(fd, newVersionBuf, sizeof(newVersionBuf));
+ printf("version is: %s\n", newVersionBuf);
+ uart_close(fd);
+ return 0;
+ }
+ break;
+
+ default:
+ {
+ printf("please input correct parameters\n");
+ }
+ break;
+ }
+ }
+
+ //芯片上电
+HD_UPG:
+ fd = OpenUart((char *)PORT_NAME);
+ if (fd < 0)
+ {
+
+ printf("open uart failed %d\n", fd);
+ return -1;
+ }
+ ret = read_bin_file(filePath, g_bin_buff);
+ if (ret < 0)
+ {
+ printf("open file failed %d\n", fd);
+ return -1;
+ }
+
+ /*go to boot-mode need change pin status*/
+ lynq_gpio_init(15,1,0,0);
+ lynq_gpio_value_set(15, 0);
+ usleep(100000);//100ms
+ lynq_gpio_init(126,1,1,0);
+ lynq_gpio_value_set(126, 1);
+ usleep(1000000);//1s
+ lynq_gpio_value_set(126, 0);
+ usleep(100000);//100ms
+ lynq_gpio_direction_set(15, 0);
+ lynq_gpio_pullsel_set(15, 0);
+ lynq_gpio_deinit(15);
+ lynq_gpio_deinit(126);
+
+ ret = fw_update_boot(fd, g_bin_buff, g_bin_buff_size);
+ if (ret < 0)
+ {
+ printf("open file failed %d\n", fd);
+ return -1;
+ }
+ sleep(1);
+ if(ret == HDBD_UPG_SUCESS)
+ {
+ printf("upgrade sucess!\r\n");
+ }
+ else
+ {
+ printf("upgrade FAIL, fail style:%d\r\n",ret);
+ }
+ uart_close(fd);
+ return ret;
+}
diff --git a/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-qser-voice-demo/files/lynq-qser-voice-demo.cpp b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-qser-voice-demo/files/lynq-qser-voice-demo.cpp
new file mode 100755
index 0000000..41c5c97
--- /dev/null
+++ b/esdk/layers/meta-zxic-custom/recipes-lynq/lynq-qser-voice-demo/files/lynq-qser-voice-demo.cpp
@@ -0,0 +1,410 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+#include <pthread.h>
+#include <unistd.h>
+#include <dlfcn.h>
+#include <stdint.h>
+
+#include"lynq-qser-voice-demo.h"
+
+typedef struct
+{
+ int cmdIdx;
+ char *funcName;
+} st_api_test_case;
+
+//for server test
+st_api_test_case at_api_testcases[] =
+{
+ {0, "print_help"},
+ {1, "qser_voice_call_start"},
+ {2, "qser_voice_call_end"},
+ {3, "qser_voice_call_answer"},
+ {4, "qser_voice_set_speech_volume"},
+ {5, "qser_voice_get_speech_volume"},
+ {6, "qser_voice_set_dtmf"},
+#ifdef ECALL_SUPPORT
+ {7, "qser_voice_set_test_num"},
+ {8, "qser_voice_fast_ecall"},
+#endif
+ {-1, NULL}
+};
+
+typedef uint32_t voice_client_handle_type;
+
+
+int (*qser_voice_call_client_init)(voice_client_handle_type *ph_voice);
+int (*qser_voice_call_client_deinit)(voice_client_handle_type );
+int (*qser_voice_call_addstatehandler)(voice_client_handle_type h_voice,
+ QSER_VoiceCall_StateHandlerFunc_t handlerPtr,
+ void *contextPtr);
+
+int (*qser_voice_call_removestatehandle)(voice_client_handle_type );
+int (*qser_voice_call_start)(voice_client_handle_type h_voice,
+ E_QSER_VCALL_ID_T simId,
+ char *phone_number, int *call_id);
+
+int (*qser_voice_call_end)(voice_client_handle_type ,int );
+int (*qser_voice_call_answer)(voice_client_handle_type ,int );
+int (*qser_voice_set_speech_volume)(const int volume);
+int (*qser_voice_get_speech_volume)(int *volume);
+int (*qser_voice_set_dtmf)(const char callnum);
+
+#ifdef ECALL_SUPPORT
+int (*qser_voice_set_test_num)(voice_client_handle_type* h_voice,E_QSER_VOICE_ECALL_SET_TYPE_T type, const char *test_num, int test_num_length);
+int (*qser_voice_fast_ecall)(voice_client_handle_type* h_voice,
+ int *call_id,
+ E_QSER_VOICE_ECALL_CATEGORY_T cat,
+ E_QSER_VOICE_ECALL_VARIANT_T variant,
+ const char *addr,
+ int addr_length,
+ const unsigned char *msd_data,
+ int msd_length); //msd_length should <= QSER_MSD_MAX_LENGTH
+int (*qser_voice_set_msd)(int callid, const unsigned char *msd_data, int msd_length); //msd_length should <= QSER_MSD_MAX_LENGTH
+int (*qser_voice_add_ecall_indhandler)(voice_client_handle_type* h_voice,
+ QSER_ECall_IndHandlerFunc_t handlerPtr,
+ void* contextPtr);
+
+static void yk_voice_ecall_cb_func(int callid, E_QSER_VOICE_ECALL_INDICATION_T ind, void* contextPtr)
+{
+ unsigned char msd_data[QSER_MSD_MAX_LENGTH]={1,1,2,2,3,3,4,4};
+
+ printf("######### Call id=%d, event=%d! ######\n", callid, ind);
+
+ if(ind == E_QSER_VOICE_ECALL_IND_SENDING_START_IN_VOICE || ind == E_QSER_VOICE_ECALL_IND_PSAP_CALLBACK_START)
+ {
+ /*customer should construct msd including GPS data, here use msd_data for illustrate,*/
+ qser_voice_set_msd(callid,msd_data,8);
+ }
+}
+
+#endif
+
+
+void *dlHandle_call = NULL;
+
+static void yk_voice_call_cb_func(int call_id,
+ char* phone_num,
+ qser_voice_call_state_t state,
+ void *contextPtr)
+{
+ char *call_state[] = {"INCOMING", "DIALING", "ALERTING", "ACTIVE", "HOLDING", "END", "WAITING"};
+
+ printf("######### Call id=%d, PhoneNum:%s, event=%s! ######\n", call_id, phone_num, call_state[state]);
+}
+
+
+
+void print_help(void)
+{
+ int i;
+ printf("Supported test cases:\n");
+ for(i = 0; ; i++)
+ {
+ if(at_api_testcases[i].cmdIdx == -1)
+ {
+ break;
+ }
+ printf("%d:\t%s\n", at_api_testcases[i].cmdIdx, at_api_testcases[i].funcName);
+ }
+}
+
+
+
+int main(int argc, char const *argv[])
+{
+ int cmdIdx = 0;
+ int ret = 0;
+ int voice_call_id = 0;
+ voice_client_handle_type h_voice = 0;
+
+ const char *lynqLibPath_Call = "/lib/liblynq-qser-voice.so";
+ dlHandle_call = dlopen(lynqLibPath_Call, RTLD_NOW);
+ if (dlHandle_call == NULL)
+ {
+ printf("dlopen dlHandle_call failed: %s\n", dlerror());
+ exit(EXIT_FAILURE);
+ }
+
+ qser_voice_call_client_init = (int(*)(voice_client_handle_type *ph_voice))dlsym(dlHandle_call, "qser_voice_call_client_init");
+ if(qser_voice_call_client_init == NULL)
+ {
+ printf("qser_voice_call_client_init not defined or exported in %s\n", lynqLibPath_Call);
+ return -1;
+ }
+
+ qser_voice_call_addstatehandler = (int(*)(voice_client_handle_type h_voice,
+ QSER_VoiceCall_StateHandlerFunc_t handlerPtr,
+ void *contextPtr))dlsym(dlHandle_call,"qser_voice_call_addstatehandler");
+ if(qser_voice_call_addstatehandler == NULL)
+ {
+ printf("qser_voice_call_addstatehandler not defined or exported in %s\n", lynqLibPath_Call);
+ return -1;
+ }
+
+ qser_voice_call_answer = (int(*)(voice_client_handle_type,int ))dlsym(dlHandle_call,"qser_voice_call_answer");
+ if(qser_voice_call_answer == NULL)
+ {
+ printf("qser_voice_call_answer not defined or exported in %s\n", lynqLibPath_Call);
+ return -1;
+ }
+
+ qser_voice_call_start = (int(*)(voice_client_handle_type h_voice,E_QSER_VCALL_ID_T simId,
+ char *phone_number, int *call_id))dlsym(dlHandle_call,"qser_voice_call_start");
+ if(qser_voice_call_start == NULL)
+ {
+ printf("qser_voice_call_start not defined or exported in %s\n", lynqLibPath_Call);
+ return -1;
+ }
+
+ qser_voice_call_end = (int(*)(voice_client_handle_type ,int))dlsym(dlHandle_call,"qser_voice_call_end");
+ if(qser_voice_call_end == NULL)
+ {
+ printf("qser_voice_call_end not defined or exported in %s\n", lynqLibPath_Call);
+ return -1;
+ }
+
+
+ qser_voice_call_client_deinit = (int (*)(voice_client_handle_type h_voice))dlsym(dlHandle_call,"qser_voice_call_client_deinit");
+ if(qser_voice_call_client_deinit == NULL)
+ {
+ printf("qser_voice_call_client_deinit not defined or exported in %s\n", lynqLibPath_Call);
+ return -1;
+ }
+
+ qser_voice_call_removestatehandle = (int (*)(voice_client_handle_type))dlsym(dlHandle_call,"qser_voice_call_removestatehandle");
+ if(qser_voice_call_removestatehandle == NULL)
+ {
+ printf("qser_voice_call_removestatehandle not defined or exported in %s\n", lynqLibPath_Call);
+ return -1;
+ }
+
+ qser_voice_set_speech_volume = (int (*)(const int ))dlsym(dlHandle_call,"qser_voice_set_speech_volume");
+ if(qser_voice_set_speech_volume == NULL)
+ {
+ printf("qser_voice_set_speech_volume not defined or exported in %s\n", lynqLibPath_Call);
+ return -1;
+ }
+
+ qser_voice_get_speech_volume = (int (*)(int* ))dlsym(dlHandle_call,"qser_voice_get_speech_volume");
+ if(qser_voice_get_speech_volume == NULL)
+ {
+ printf("qser_voice_get_speech_volume not defined or exported in %s\n", lynqLibPath_Call);
+ return -1;
+ }
+
+ qser_voice_set_dtmf = (int (*)(const char ))dlsym(dlHandle_call,"qser_voice_set_dtmf");
+ if(qser_voice_set_dtmf == NULL)
+ {
+ printf("qser_voice_set_dtmf not defined or exported in %s\n", lynqLibPath_Call);
+ return -1;
+ }
+
+#ifdef ECALL_SUPPORT
+ qser_voice_fast_ecall = (int (*)(voice_client_handle_type*, int*, E_QSER_VOICE_ECALL_CATEGORY_T, E_QSER_VOICE_ECALL_VARIANT_T, const char*, int, const unsigned char*, int))dlsym(dlHandle_call,"qser_voice_fast_ecall");
+ if(qser_voice_fast_ecall == NULL)
+ {
+ printf("qser_voice_fast_ecall not defined or exported in %s\n", lynqLibPath_Call);
+ return -1;
+ }
+
+ qser_voice_set_test_num = (int (*)(voice_client_handle_type*, E_QSER_VOICE_ECALL_SET_TYPE_T, const char* , int))dlsym(dlHandle_call,"qser_voice_set_test_num");
+ if(qser_voice_set_test_num == NULL)
+ {
+ printf("qser_voice_set_test_num not defined or exported in %s\n", lynqLibPath_Call);
+ return -1;
+ }
+
+ qser_voice_set_msd = (int (*)(int , const unsigned char *, int))dlsym(dlHandle_call,"qser_voice_set_msd");
+ if(qser_voice_set_msd == NULL)
+ {
+ printf("qser_voice_set_msd not defined or exported in %s\n", lynqLibPath_Call);
+ return -1;
+ }
+
+ qser_voice_add_ecall_indhandler = (int (*)(voice_client_handle_type* h_voice, QSER_ECall_IndHandlerFunc_t, void*))dlsym(dlHandle_call,"qser_voice_add_ecall_indhandler");
+ if(qser_voice_add_ecall_indhandler == NULL)
+ {
+ printf("qser_voice_add_ecall_indhandler not defined or exported in %s\n", lynqLibPath_Call);
+ return -1;
+ }
+#endif
+
+ ret = qser_voice_call_client_init(&h_voice);
+ if(ret != 0 )
+ {
+ printf("qser_voice_call_client_init FAIL\n");
+ return -1;
+ }
+
+ ret = qser_voice_call_addstatehandler(h_voice, yk_voice_call_cb_func, &voice_call_id);
+ if(ret != 0)
+ {
+ printf("qser_voice_call_addstatehandler FAIL\n");
+ return -1;
+ }
+
+#ifdef ECALL_SUPPORT
+ ret = qser_voice_add_ecall_indhandler(&h_voice, yk_voice_ecall_cb_func, NULL);
+ if(ret != 0)
+ {
+ printf("qser_voice_add_ecall_indhandler FAIL\n");
+ return -1;
+ }
+#endif
+
+ print_help();
+ while(1)
+ {
+ printf("\nplease input cmd index(-1 exit): ");
+ scanf("%d", &cmdIdx);
+ if(cmdIdx == -1)
+ {
+ break;
+ }
+
+ switch(cmdIdx)
+ {
+ //"print_help
+ case 0:
+ print_help();
+ break;
+
+ //"qser_voice_call_start"
+ case 1:
+ {
+ char PhoneNum[32] = {0};
+
+ printf("please input dest phone number: \n");
+ scanf("%s", PhoneNum);
+
+ ret = qser_voice_call_start(h_voice, E_QSER_VCALL_EXTERNAL_SLOT_1, PhoneNum, &voice_call_id);
+ printf("qser_voice_call_start ret = %d, with voice_call_id=%d\n", ret, voice_call_id);
+ break;
+ }
+
+ //"qser_voice_call_end"
+ case 2:
+ {
+ int call_id = -1;
+ printf("please input end call id: \n");
+ scanf("%d", &call_id);
+ ret = qser_voice_call_end(h_voice, call_id);
+ printf(" ret = %d\n", ret);
+ break;
+ }
+
+ //"qser_voice_call_answer"
+ case 3:
+ {
+ int call_id = -1;
+ printf(" please input answer call id\n");
+ scanf("%d", &call_id);
+ ret = qser_voice_call_answer(h_voice, call_id);
+ printf(" ret = %d\n", ret);
+ break;
+ }
+
+ case 4:
+ {
+ int volume = 0;
+ printf("Please set speech volume:0-5 level\n");
+ scanf("%d",&volume);
+ ret = qser_voice_set_speech_volume(volume);
+ printf("ret is %d\n",ret);
+ break;
+
+ }
+
+ case 5:
+ {
+ int volume = -1;
+ printf("Enter get speech volume\n");
+ ret = qser_voice_get_speech_volume(&volume);
+ printf("ret is %d,get volume is %d\n",ret,volume);
+ break;
+
+ }
+ case 6:
+ {
+
+ int ret;
+ char inputChar;
+
+ printf("Enter set dtmf\n");
+ scanf(" %c", &inputChar);
+ printf("inputChar is %c\n", inputChar);
+ ret = qser_voice_set_dtmf(inputChar);
+
+ if (ret != 0)
+ {
+ printf("qser set voice dtmf failed\n");
+ return -1;
+ }
+ break;
+ }
+#ifdef ECALL_SUPPORT
+ case 7:
+ {
+ char PhoneNum[32] = {0};
+ printf("please input test phone number: \n");
+ scanf("%s", PhoneNum);
+ ret = qser_voice_set_test_num(&h_voice, E_QSER_VOICE_ECALL_SET_NUMBER, PhoneNum, strlen(PhoneNum)+1);
+ printf("qser_voice_set_test_num ret = %d\n", ret);
+ break;
+ }
+ case 8:
+ {
+ int call_id = -1;
+ int cat;
+ int var;
+ int length;
+ unsigned char msd[QSER_MSD_MAX_LENGTH]={0};
+
+ printf("please input ecall cat: 0 manual, 1 auto\n");
+ scanf("%d", &cat);
+ printf("please input ecall type: 0 test, 1 emergency\n");
+ scanf("%d", &var);
+ printf("please input msd content length (max length is 140)\n");
+ scanf("%d", &length);
+ printf("please input %d unsigned char (0-255):\n", length);
+ for (int i = 0; i < length; i++) {
+ scanf("%hhu", &msd[i]);
+ }
+ ret = qser_voice_fast_ecall(&h_voice, &call_id, (E_QSER_VOICE_ECALL_CATEGORY_T) cat, (E_QSER_VOICE_ECALL_VARIANT_T) var, "null",5,msd,length);
+ printf("qser_voice_fast_ecall ret = %d, call id is %d\n", ret, call_id);
+ break;
+ }
+#endif
+ default:
+ print_help();
+ break;
+ }
+
+ }
+
+ ret = qser_voice_call_removestatehandle(h_voice);
+ if(ret != 0 && ret != 1)
+ {
+ printf("qser_voice_call_removestatehandle FAIL!!!\n");
+ return -1;
+ }
+ printf("qser_voice_call_removestatehandle ret = %d\n", ret);
+
+
+ ret = qser_voice_call_client_deinit(h_voice);
+ if(ret != 0)
+ {
+ printf("qser_voice_call_client_deinit FAIL\n");
+ return -1;
+ }
+ printf("qser_voice_call_client_deinit ret = %d, with h_voice=%d\n", ret, h_voice);
+
+ return 0;
+
+
+}
+
+