blob: 7afa751b1fc696a48dac76e2c369f41a7bea1a33 [file] [log] [blame]
#define _GNU_SOURCE /**/
#include <string.h>
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <time.h>
#include <syslog.h>
#include <unistd.h>
#include <errno.h>
#include <signal.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <sys/uio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/sysctl.h>
#include <net/if.h>
#include <poll.h>
#include <stddef.h>
#include <linux/if_packet.h>
#include <netinet/ether.h>
#include <netinet/if_ether.h>
#include <arpa/inet.h>
#include <pthread.h>
#include <zte_cpe.h>
#include "softap_api.h"
void nvserver_entry(void)
{
nvserver_main(0,NULL);
return;
}
void at_ctl_entry(char *arg)
{
//printf("at_ctl_entry boot:%s\n", arg);
char *argv[2];
argv[0] = NULL;
argv[1] = arg;
at_ctl_main(2, argv);
return;
}
void rtc_service_entry(char *arg)
{
rtc_service_main(0,NULL);
return;
}
void zte_mainctrl_entry(char *arg)
{
if (0 == strcmp(arg, "2")) {
char *argv[2];
argv[0] = NULL;
argv[1] = "poweroff_charger";
zte_mainctrl_main(2, argv);
} else {
zte_mainctrl_main(0,NULL);
}
return;
}
void zte_hotplug_entry(char *arg)
{
zte_hotplug_main(0,NULL);
return;
}
void zte_audio_res_ctrl_entry(char *arg)
{
zte_audio_res_ctrl_main(0,NULL);
return;
}
void zte_drv_serial_ctrl_entry(char *arg)
{
zte_drv_serial_ctrl_main();
return;
}
void zte_drv_usb_ctrl_entry(char *arg)
{
if(arg)
zte_drv_usb_ctrl_main(3,NULL);
else
zte_drv_usb_ctrl_main(0,NULL);
return;
}
void zte_mmi_entry(char *arg)
{
//printf("zte_mmi_entry boot:%s\n", arg);
if (0 == strcmp(arg, "2")) {
char *argv[2];
argv[0] = NULL;
argv[1] = "poweroff_charger";
zte_mmi_main(2, argv);
} else {
zte_mmi_main(0,NULL);
}
return;
}
void zte_locknet_entry(char *arg)
{
zte_locknet_main(0,NULL);
//return; //klocwork
}
void zte_watchdog_entry(char *arg)
{
zte_watchdog_main(0,NULL);
return;
}
void fluxstat_entry(char *arg)
{
fluxstat_main(0,NULL);
return;
}
void sntp_entry(char *arg)
{
sntp_main(0,NULL);
return;
}
void sd_hotplug_entry(char *arg)
{
sd_hotplug_main(0,NULL);
return;
}
void sms_entry(char *arg)
{
sms_main(0,NULL);
}
void phonebook_entry(char *arg)
{
phonebook_main(0,NULL);
return;
}
void wlan_entry(char *arg)
{
wlan_main(0,NULL);
return;
}
void fota_dm_entry(char *arg)
{
fota_dm_main(0,NULL);
}
int main(int argc, char *argv[])
{
int ret = 0;
/* nvserver */
pthread_t nvserver_thread_tid;
pthread_create(&nvserver_thread_tid, NULL, (void *)nvserver_entry, NULL);
/* zte_hotplug */
pthread_t zte_hotplug_thread_tid;
pthread_create(&zte_hotplug_thread_tid, NULL, (void *)zte_hotplug_entry, NULL);
/* zte_drv_serial_ctrl */
pthread_t zte_drv_serial_ctrl_thread_tid;
pthread_create(&zte_drv_serial_ctrl_thread_tid, NULL, (void *)zte_drv_serial_ctrl_entry, NULL);
/* zte_drv_usb_ctrl */
pthread_t zte_drv_usb_ctrl_thread_tid;
#ifdef WEBS_SECURITY
{
char rstr[24] = {0};
sc_cfg_get("dbinfo", rstr, sizeof(rstr));
if(strlen(rstr) == 0)
{
unsigned int rnum = 0;
system("rm -rf /etc_rw/pbm.*");
system("rm -rf /etc_rw/sms.*");
srand( (unsigned)time( NULL ) );
rnum = (rand()|0xf000000);
snprintf((char *)rstr, sizeof(rstr), "%ld", rnum);
sc_cfg_set("dbinfo", rstr);
sc_cfg_save();
}
{
unsigned char i = 0;
char nstr[24] = {0};
for(i = 0; i < 22; i++)
{
if(rstr[i] >= 0x30)
{
nstr[i] = rstr[i] + (((i&0x7)|0x18)+1)*(2>>(i%3));
}
else
{
nstr[i] = (i%10) + 0x30 + (((i&0x7)|0x18)+1)*(2>>(i%3));
}
}
sc_cfg_set("rnum_at", nstr);
}
}
#endif
if (0 == strcmp(argv[2], "amt")) {
ret = sc_cfg_set("ver_mode", "0");
if(ret < 0)
printf("zte_cpe set vermode fail\n");
else
sc_cfg_save();
printf("---set ver mode to 0\n");
}
if (0 != strcmp(argv[2], "amt")) { //³äµç»òÕý³£¿ª»úģʽ
char LanEnable[10] = {0};
/* at_ctl */
pthread_t at_ctl_thread_tid;
pthread_create(&at_ctl_thread_tid, NULL, (void *)at_ctl_entry, argv[1]);
/* rtc_service */
pthread_t rtc_service_thread_tid;
pthread_create(&rtc_service_thread_tid, NULL, (void *)rtc_service_entry, NULL);
/* zte_mainctrl */
pthread_t zte_mainctrl_thread_tid;
pthread_create(&zte_mainctrl_thread_tid, NULL, (void *)zte_mainctrl_entry, argv[1]);
/* zte_audio_res_ctrl */
pthread_t zte_audio_res_ctrl_thread_tid;
pthread_create(&zte_audio_res_ctrl_thread_tid, NULL, (void *)zte_audio_res_ctrl_entry, NULL);
sc_cfg_get("LanEnable", LanEnable, sizeof(LanEnable));
if(atoi(LanEnable) == 1) { //mifiÐÎ̬
/* zte_mmi */
pthread_t zte_mmi_thread_tid;
pthread_create(&zte_mmi_thread_tid, NULL, (void *)zte_mmi_entry, argv[1]);
}
if (0 != strcmp(argv[1], "2")) { //·Ç³äµçģʽ
pthread_create(&zte_drv_usb_ctrl_thread_tid, NULL, (void *)zte_drv_usb_ctrl_entry, NULL);
if(atoi(LanEnable) == 1) { //mifiÐÎ̬
/* zte_locknet */
pthread_t zte_locknet_thread_tid;
pthread_create(&zte_locknet_thread_tid, NULL, (void *)zte_locknet_entry, NULL);
/* fluxstat */
pthread_t fluxstat_thread_tid;
pthread_create(&fluxstat_thread_tid, NULL, (void *)fluxstat_entry, NULL);
/* sntp */
pthread_t sntp_thread_tid;
pthread_create(&sntp_thread_tid, NULL, (void *)sntp_entry, NULL);
/* sd_hotplug */
//pthread_t sd_hotplug_thread_tid;
//pthread_create(&sd_hotplug_thread_tid, NULL, (void *)sd_hotplug_entry, NULL);
sd_hotplug_init();
/* sms */
pthread_t sms_thread_tid;
pthread_create(&sms_thread_tid, NULL, (void *)sms_entry, NULL);
/* phonebook */
pthread_t phonebook_thread_tid;
pthread_create(&phonebook_thread_tid, NULL, (void *)phonebook_entry, NULL);
/* wifi_manager */
pthread_t wlan_thread_tid;
pthread_create(&wlan_thread_tid, NULL, (void *)wlan_entry, NULL);
}
/* fota_dm */
pthread_t fota_dm_thread_tid;
pthread_create(&fota_dm_thread_tid, NULL, (void *)fota_dm_entry, NULL);
}else{
pthread_create(&zte_drv_usb_ctrl_thread_tid, NULL, (void *)zte_drv_usb_ctrl_entry, "poweroff_charger");
}
/* zte_watchdog */
pthread_t zte_watchdog_thread_tid;
pthread_create(&zte_watchdog_thread_tid, NULL, (void *)zte_watchdog_entry, NULL);
}
else
{
pthread_create(&zte_drv_usb_ctrl_thread_tid, NULL, (void *)zte_drv_usb_ctrl_entry, NULL);
}
while(1)
{
sleep(20);
//printf("zte app test -1 \n");
}
return 0;
}