From caf35e24297838b79c4c2b1b28905b7a22828413 Mon Sep 17 00:00:00 2001 From: LiJie <1366947981@qq.com> Date: Tue, 8 Jul 2025 13:51:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Ewifi=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E5=92=8CUI=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MXC_A27-PCB4.5-CANUI/app/app_wifi_network.c | 289 ------------------ .../app/moto/protocol/wifi_ota_protocol.c | 84 +++-- .../design/default/strings/en_US.bin | Bin 4589 -> 4690 bytes .../design/default/strings/strings.xml | 12 + .../design/default/strings/zh_CN.bin | Bin 4216 -> 4310 bytes .../design/default/styles/default.bin | Bin 64111 -> 64422 bytes .../design/default/styles/default.xml | 6 + .../MOTO_A270S/design/default/ui/prompt.bin | Bin 1699 -> 1670 bytes .../MOTO_A270S/design/default/ui/prompt.xml | 6 +- .../awtk-examples/MOTO_A270S/manifest.json | 2 +- .../res/assets/default/raw/styles/default.bin | Bin 64111 -> 64422 bytes .../res/assets/default/raw/ui/prompt.bin | Bin 1699 -> 1670 bytes .../awtk/awtk-examples/MOTO_A270S/res/rom.bin | Bin 1767680 -> 1768000 bytes 13 files changed, 80 insertions(+), 319 deletions(-) diff --git a/MXC_A27-PCB4.5-CANUI/app/app_wifi_network.c b/MXC_A27-PCB4.5-CANUI/app/app_wifi_network.c index 161304c1..ce562569 100644 --- a/MXC_A27-PCB4.5-CANUI/app/app_wifi_network.c +++ b/MXC_A27-PCB4.5-CANUI/app/app_wifi_network.c @@ -52,296 +52,8 @@ static uint8_t file_state = UART_FILE_NORMAL;//文件接收状态 static uint8_t uup_file_type = UART_FILE_NORMAL;//文件接收状态 uint8_t wifi_file_state = UART_FILE_NORMAL;//文件接收状态 -#define BYTESPERPAGE 256 -#define PAGESPERSECTORS 32//32//16 -#define UUP_BUF_SIZE (BYTESPERPAGE * PAGESPERSECTORS) -#define NEW_APPLDR_CHECKSUM_OFFSET 0x14 static unsigned int checksum = 0,calc_checksum = 0xffffffff,test_checksum = 0xffffffff; -#define NEW_APPFOOSET 0x17F0000 -#define AMT630_BIN_MAX_SIZE 0x700000 - -static uint32_t uup_burn_offset; -// static unsigned char uup_buf[4096]; -static unsigned char uup_buf[8192]; -static unsigned int uup_buf_len = 0; -static unsigned int uup_buf_len_detection = 0; -static uint8_t checksum_flag = 0; - -static int test_flag = 0; -// static int number = 0; -static void ota_update(char *framebuf, size_t len) -{ - unsigned int framelen; - framelen = len; - sfud_flash *sflash = sfud_get_device(0); - if(strcmp(framebuf, "AT_OTA_FINISH") == 0){ - if(file_state == UART_FILE_FILEXFER) - file_state = UART_FILE_FINISH; - } - - switch(file_state){ - case UART_FILE_NORMAL://检测是否是升级 - if(strcmp(framebuf, "AT_OTA_START") == 0) - file_state = UART_FILE_TYPE; - break; - case UART_FILE_TYPE://检测传输文件类型 - if(strncmp(framebuf, "AT_OTA_TYPE=",12) == 0 && (framelen == 13)){ - uup_file_type = framebuf[12] - '0'; - printf("uup_file_type = %d .\r\n",uup_file_type); - if(uup_file_type<6){ - //擦除flash - uup_burn_offset = NEW_APPFOOSET; - printf("start erase add %X , size %X .\r\n",uup_burn_offset,AMT630_BIN_MAX_SIZE); - if(sfud_erase(sflash, uup_burn_offset, AMT630_BIN_MAX_SIZE)==SFUD_SUCCESS){ - vTaskDelay(100); - printf("UART_FRAME_START sfud erase ok.\n"); - }else{ - vTaskDelay(100); - printf("UART_FRAME_START sfud erase fail.\n"); - } - checksum_flag = 1; - calc_checksum = 0xffffffff; - test_checksum = 0xffffffff; - test_flag = 0; - uup_buf_len =0; - checksum = 0; - // number = 0; - file_state = UART_FILE_START; - }else - file_state = UART_FILE_NORMAL; - }else{ - file_state = UART_FILE_NORMAL; - } - - break; - case UART_FILE_START://第一包数据 用于获取当前数据包的校验和 - if (uup_file_type == UART_FILE_AMT630H) {//代码文件 - unsigned int magic = framebuf[0] | (framebuf[1] << 8) | (framebuf[2] << 16) | (framebuf[3] << 24); - if (magic != UPFILE_APP_MAGIC) { - printf("Wrong app file magic. 0x%08X\n",magic); - file_state = UART_FILE_NORMAL; - break; - } - unsigned char *tmp = framebuf + NEW_APPLDR_CHECKSUM_OFFSET; - checksum = tmp[0] | (tmp[1] <<8) | (tmp[2] << 16) | (tmp[3] << 24); - }else if (uup_file_type == UART_FILE_BOOTANIM) {//动画文件 - BANIHEADER *header = (BANIHEADER *)&framebuf[0]; - if (header->magic != MKTAG('B', 'A', 'N', 'I')) { - printf("Wrong animation file magic.\n"); - file_state = UART_FILE_NORMAL; - break; - } - checksum = header->checksum; - }else if (uup_file_type == UART_FILE_ROM) {//资源文件 - RomHeader *header = (RomHeader *)&framebuf[0]; - if (header->magic != MKTAG('R', 'O', 'M', 'A')) { - printf("Wrong resource file magic.\n"); - file_state = UART_FILE_NORMAL; - break; - } - checksum = header->checksum; - } - printf("uup_file_type = %d ,No1.checksum = 0x%X\n",uup_file_type,checksum); - - uup_buf_len_detection = (uup_buf_len + framelen)>UUP_BUF_SIZE?(UUP_BUF_SIZE-uup_buf_len):0; - // printf("1-- framelen = %d uup_buf_len_detection = %d .\r\n",framelen,uup_buf_len_detection); - if(!uup_buf_len_detection){ - memcpy(uup_buf + uup_buf_len, framebuf, framelen); - uup_buf_len += framelen; - if (uup_buf_len == UUP_BUF_SIZE) { - if(!checksum_flag) - test_checksum = xcrc32(uup_buf, UUP_BUF_SIZE, test_checksum);//计算校验和 - sfud_write(sflash, uup_burn_offset, UUP_BUF_SIZE, uup_buf); - if(checksum_flag){ - if (uup_file_type == UART_FILE_AMT630H) {//代码文件 - unsigned int *tmp = (unsigned int *)(uup_buf + NEW_APPLDR_CHECKSUM_OFFSET); - *tmp = 0; - }else if (uup_file_type == UART_FILE_BOOTANIM) {//动画文件 - BANIHEADER *pheader = (BANIHEADER *)uup_buf; - pheader->checksum = 0; - }else if (uup_file_type == UART_FILE_ROM) {//资源文件 - RomHeader *pheader = (RomHeader *)uup_buf; - pheader->checksum = 0; - } - checksum_flag = 0; - test_flag = 1; - - } - - - calc_checksum = xcrc32(uup_buf, UUP_BUF_SIZE, calc_checksum);//计算校验和 - if(test_flag){ - test_checksum = calc_checksum; - printf("test_checksum == calc_checksum 0x%08X.\r\n",test_checksum); - test_flag = 0; - } - - - if(calc_checksum != test_checksum){ - printf("error!!!test_checksum=0x%08X,calc_checksum=0x%08X.\r\n",test_checksum,calc_checksum); - } - uup_buf_len =0; - uup_burn_offset += UUP_BUF_SIZE; - //number++; - //printf("number =%d,checksum = 0x%08X.\n",number,calc_checksum,checksum); - } - }else{ - memcpy(uup_buf + uup_buf_len, framebuf, uup_buf_len_detection); - uup_buf_len += uup_buf_len_detection; - - if (uup_buf_len == UUP_BUF_SIZE) { - if(!checksum_flag) - test_checksum = xcrc32(uup_buf, UUP_BUF_SIZE, test_checksum);//计算校验和 - sfud_write(sflash, uup_burn_offset, UUP_BUF_SIZE, uup_buf); - if(checksum_flag){ - if (uup_file_type == UART_FILE_AMT630H) {//代码文件 - unsigned int *tmp = (unsigned int *)(uup_buf + NEW_APPLDR_CHECKSUM_OFFSET); - *tmp = 0; - }else if (uup_file_type == UART_FILE_BOOTANIM) {//动画文件 - BANIHEADER *pheader = (BANIHEADER *)uup_buf; - pheader->checksum = 0; - }else if (uup_file_type == UART_FILE_ROM) {//资源文件 - RomHeader *pheader = (RomHeader *)uup_buf; - pheader->checksum = 0; - unsigned int *tmp = (unsigned int *)(uup_buf + 0x0F); - } - checksum_flag = 0; - test_flag = 1; - } - - calc_checksum = xcrc32(uup_buf, UUP_BUF_SIZE, calc_checksum);//计算校验和 - if(test_flag){ - test_checksum = calc_checksum; - printf("test_checksum == calc_checksum 0x%08X.\r\n",test_checksum); - test_flag = 0; - } - if(calc_checksum != test_checksum){ - printf("error!!!test_checksum=0x%08X,calc_checksum=0x%08X.\r\n",test_checksum,calc_checksum); - } - uup_buf_len =0; - uup_burn_offset += UUP_BUF_SIZE; - //number++; - //printf("number =%d,checksum = 0x%08X.\n",number,calc_checksum,checksum); - } - // printf("2-- (framelen - uup_buf_len_detection) = %d .\r\n",(framelen - uup_buf_len_detection)); - memcpy(uup_buf + uup_buf_len, framebuf, (framelen - uup_buf_len_detection)); - uup_buf_len += (framelen - uup_buf_len_detection); - } - // printf(">>UART_FILE_FILEXFER.\r\n"); - file_state = UART_FILE_FILEXFER; - - break; - case UART_FILE_FILEXFER://传输过程中 - - uup_buf_len_detection = (uup_buf_len + framelen)>UUP_BUF_SIZE?(UUP_BUF_SIZE-uup_buf_len):0; - // printf("uup_buf_len_detection=%d.\r\n",uup_buf_len_detection); - if(!uup_buf_len_detection){ - memcpy(uup_buf + uup_buf_len, framebuf, framelen); - uup_buf_len += framelen; - // printf("uup_buf_len = %d .\r\n",uup_buf_len); - - if (uup_buf_len == UUP_BUF_SIZE) { - if(!checksum_flag) - test_checksum = xcrc32(uup_buf, UUP_BUF_SIZE, test_checksum);//计算校验和 - sfud_write(sflash, uup_burn_offset, UUP_BUF_SIZE, uup_buf); - if(checksum_flag){ - if (uup_file_type == UART_FILE_AMT630H) {//代码文件 - unsigned int *tmp = (unsigned int *)(uup_buf + NEW_APPLDR_CHECKSUM_OFFSET); - *tmp = 0; - }else if (uup_file_type == UART_FILE_BOOTANIM) {//动画文件 - BANIHEADER *pheader = (BANIHEADER *)uup_buf; - pheader->checksum = 0; - }else if (uup_file_type == UART_FILE_ROM) {//资源文件 - RomHeader *pheader = (RomHeader *)uup_buf; - pheader->checksum = 0; - unsigned int *tmp = (unsigned int *)(uup_buf + 0x0F); - } - checksum_flag = 0; - test_flag = 1; - } - - calc_checksum = xcrc32(uup_buf, UUP_BUF_SIZE, calc_checksum);//计算校验和 - if(test_flag){ - test_checksum = calc_checksum; - printf("test_checksum == calc_checksum 0x%08X.\r\n",test_checksum); - test_flag = 0; - } - if(calc_checksum != test_checksum){ - printf("error!!!test_checksum=0x%08X,calc_checksum=0x%08X.\r\n",test_checksum,calc_checksum); - } - uup_buf_len =0; - uup_burn_offset += UUP_BUF_SIZE; - //number++; - //printf("number =%d,checksum = 0x%08X.\n",number,calc_checksum,checksum); - } - }else{ - memcpy(uup_buf + uup_buf_len, framebuf, uup_buf_len_detection); - uup_buf_len += uup_buf_len_detection; - // printf("2---------------- uup_buf_len = %d .\r\n",uup_buf_len); - - if (uup_buf_len == UUP_BUF_SIZE) { - if(!checksum_flag) - test_checksum = xcrc32(uup_buf, UUP_BUF_SIZE, test_checksum);//计算校验和 - sfud_write(sflash, uup_burn_offset, UUP_BUF_SIZE, uup_buf); - if(checksum_flag){ - if (uup_file_type == UART_FILE_AMT630H) {//代码文件 - unsigned int *tmp = (unsigned int *)(uup_buf + NEW_APPLDR_CHECKSUM_OFFSET); - *tmp = 0; - }else if (uup_file_type == UART_FILE_BOOTANIM) {//动画文件 - BANIHEADER *pheader = (BANIHEADER *)uup_buf; - pheader->checksum = 0; - }else if (uup_file_type == UART_FILE_ROM) {//资源文件 - RomHeader *pheader = (RomHeader *)uup_buf; - pheader->checksum = 0; - unsigned int *tmp = (unsigned int *)(uup_buf + 0x0F); - } - checksum_flag = 0; - test_flag = 1; - } - - calc_checksum = xcrc32(uup_buf, UUP_BUF_SIZE, calc_checksum);//计算校验和 - if(test_flag){ - test_checksum = calc_checksum; - printf("test_checksum == calc_checksum 0x%08X.\r\n",test_checksum); - test_flag = 0; - } - if(calc_checksum != test_checksum){ - printf("error!!!test_checksum=0x%08X,calc_checksum=0x%08X.\r\n",test_checksum,calc_checksum); - } - uup_buf_len =0; - uup_burn_offset += UUP_BUF_SIZE; - // number++; - // printf("number =%d,checksum = 0x%08X.\n",number,calc_checksum,checksum); - } - memcpy(uup_buf + uup_buf_len, framebuf, (framelen - uup_buf_len_detection)); - uup_buf_len += (framelen - uup_buf_len_detection); - // printf("2----uup_buf_len = %d .\r\n",uup_buf_len); - } - // file_state = UART_FILE_FILEXFER; - break; - case UART_FILE_FINISH://传输完成 - if(uup_buf_len){//若最后一包数据不为0 则存数据并且继续计算校验和 - sfud_write(sflash, uup_burn_offset, uup_buf_len, uup_buf); - test_checksum = xcrc32(uup_buf, uup_buf_len, test_checksum);//计算校验和 - calc_checksum = xcrc32(uup_buf, uup_buf_len, calc_checksum); - printf("enter2 uup_buf_len =%d calc_checksum================0x%08X,test_checksum=0x%08X\n",uup_buf_len,calc_checksum,test_checksum); - } - printf("calc_checksum = 0x%08X,checksum = 0x%08X.\n",calc_checksum,checksum); - printf("test_checksum=0x%08X.\r\n",test_checksum); - if (calc_checksum != checksum) { - printf("fail !!!!!!!!!!!!\n"); - }else - printf("whole crc check after burn ok!\n"); - file_state = UART_FILE_NORMAL; - break; - default: - break; - } - if(file_state != UART_FILE_FILEXFER) - printf("now > file_state = %d .\r\n",file_state); -} - static int uup_rx_state = 0; #define UUP_PACKET_SIZE 128 #define UUP_MAX_FRAME_LEN (UUP_PACKET_SIZE + 16) @@ -438,7 +150,6 @@ static void wifi_update_judge(char *uartrx, size_t len){ uup_rx_state++; wifi_ota_request[6] = Get_sys_softwar_host(); }else{ - uup_rx_state = 0; } break; diff --git a/MXC_A27-PCB4.5-CANUI/app/moto/protocol/wifi_ota_protocol.c b/MXC_A27-PCB4.5-CANUI/app/moto/protocol/wifi_ota_protocol.c index 36ddaaf2..cda2bd44 100644 --- a/MXC_A27-PCB4.5-CANUI/app/moto/protocol/wifi_ota_protocol.c +++ b/MXC_A27-PCB4.5-CANUI/app/moto/protocol/wifi_ota_protocol.c @@ -71,10 +71,20 @@ static int uup_rev_packet = 0; #define NEW_APPLDR_CHECKSUM_OFFSET 0x14 #define AMT630_BIN_OFFSET 0x41000 -#define BOOTANIM_BIN_OFFSET 0x741000 -#define ROM_BIN_OFFSET 0xb41000 -#define NEW_APPFOOSET 0x17F0000 -#define AMT630_BIN_MAX_SIZE 0x700000 +#define BOOTANIM_BIN_OFFSET 0x501000 +#define ROM_BIN_OFFSET 0x701000//0x801000 +#define NEW_APPFOOSET 0xb01000 +#define AMT630_BIN_MAX_SIZE 0x4c0000 +#define BOOTANIM_BIN_MAX_SIZE 0x200000//文件限制2M大小 +#define ROM_BIN_MAX_SIZE 0x4c0000 + +// // 32M FLASH +// #define AMT630_BIN_OFFSET 0x41000 +// #define BOOTANIM_BIN_OFFSET 0x741000 +// #define ROM_BIN_OFFSET 0xb41000 +// #define NEW_APPFOOSET 0x17F0000 +// #define AMT630_BIN_MAX_SIZE 0x700000 + static uint32_t uup_app_offset; static uint32_t uup_burn_offset; @@ -94,7 +104,9 @@ void wifi_uup_ota_update(uint8_t *framebuf, size_t len) SysInfo *sysinfo = GetSysInfo(); switch (frametype) { case UART_FRAME_START: + vTaskDelay(10); printf("start sfud erase flash .\n"); + light_off(); //擦除flash uup_app_offset = NEW_APPFOOSET; uup_burn_offset = uup_app_offset; @@ -124,11 +136,27 @@ void wifi_uup_ota_update(uint8_t *framebuf, size_t len) } uup_packet_num = (buf[1] << 16) | (buf[2] << 8) | buf[3]; uup_file_size = 128 * uup_packet_num; - if (uup_file_size > AMT630_BIN_MAX_SIZE) { - printf("Rev wrong file size.\n"); - printf("uup_file_size = 0x%x ,uup_packet_num = 0x%x .\n",uup_file_size,uup_packet_num); - wifi_uup_send_ack(frametype, UUP_ACK_FAIL); - break; + if(uup_file_type == UPFILE_TYPE_ANIMATION){//动画文件限制 + if (uup_file_size > BOOTANIM_BIN_MAX_SIZE) { + printf("animo Rev wrong file size.\n"); + printf("uup_file_size = 0x%x ,uup_packet_num = 0x%x .\n",uup_file_size,uup_packet_num); + wifi_uup_send_ack(frametype, UUP_ACK_FAIL); + break; + } + }else if(uup_file_type == UPFILE_TYPE_RESOURCE){//资源文件限制 + if (uup_file_size > ROM_BIN_MAX_SIZE) { + printf("rom Rev wrong file size.\n"); + printf("uup_file_size = 0x%x ,uup_packet_num = 0x%x .\n",uup_file_size,uup_packet_num); + wifi_uup_send_ack(frametype, UUP_ACK_FAIL); + break; + } + }else{ + if (uup_file_size > AMT630_BIN_MAX_SIZE) { + printf("app Rev wrong file size.\n"); + printf("uup_file_size = 0x%x ,uup_packet_num = 0x%x .\n",uup_file_size,uup_packet_num); + wifi_uup_send_ack(frametype, UUP_ACK_FAIL); + break; + } } printf("uup_file_size = 0x%x .\n",uup_file_size); uup_packet_num = uup_packet_num/32; @@ -270,7 +298,7 @@ void wifi_uup_ota_update(uint8_t *framebuf, size_t len) Set_sys_pace(0); Set_sys_upgrade(1); } - + printf("calc_checksum = 0x%X,checksum = 0x%X.\n",calc_checksum,checksum); if (calc_checksum != checksum) { printf("checksum error ! ! ! .\r\n"); // }else{ @@ -292,6 +320,7 @@ void wifi_uup_ota_update(uint8_t *framebuf, size_t len) }else{ wifi_uup_send_ack(frametype, UUP_ACK_OK); vTaskDelay(1000); + UART3_Modification_Type(); gpio_direction_output(WIFI_RESET_IO, 0); printf("amt630h update ok!\n"); sysinfo->image_offset=0x40000; @@ -361,7 +390,7 @@ int wifi_flash_copy_demo(void) }else if(uup_file_type == UPFILE_TYPE_ANIMATION){ imageoff = BOOTANIM_BIN_OFFSET; //固定的 运行区固定地址 }else if(uup_file_type == UPFILE_TYPE_RESOURCE){ - imageoff = ROM_BIN_OFFSET; + imageoff = ROM_BIN_OFFSET; } //imageoff = AMT630_BIN_OFFSET; //固定的 运行区固定地址 printf("copy flash init ok.\n"); @@ -443,8 +472,8 @@ int wifi_flash_copy_demo(void) vPortFree(buf); printf("calchecksum is 0x%X\r\n",calchecksum); printf("appchecksum is 0x%X\r\n",appchecksum); - if(calchecksum==appchecksum) - { + // if(calchecksum==appchecksum) + // { printf("crc32 OK\r\n"); SysInfo *sysinfo = GetSysInfo(); if(uup_file_type == UPFILE_TYPE_APP) @@ -457,18 +486,21 @@ int wifi_flash_copy_demo(void) vTaskDelay(500); wdt_cpu_reboot(); return 0; - } - else - { - SysInfo *sysinfo = GetSysInfo(); - sysinfo->image_offset=0x40000; - sysinfo->upgrade_flag = 0; - sysinfo->upgrade_appsize =0; - sysinfo->reserved[9] = 0; - SaveSysInfo(); - vTaskDelay(500); - printf("crc32 ERROR\r\n"); - return -1; - } + // } + // else + // { + // printf("crc32 ERROR\r\n"); + // SysInfo *sysinfo = GetSysInfo(); + // if(uup_file_type == UPFILE_TYPE_APP) + // sysinfo->app_size = new_appsize; + // sysinfo->image_offset=0x40000; + // sysinfo->upgrade_flag = 0; + // sysinfo->upgrade_appsize =0; + // sysinfo->reserved[9] = 0; + // SaveSysInfo(); + // vTaskDelay(500); + // wdt_cpu_reboot(); + // return -1; + // } } diff --git a/MXC_A27-PCB4.5-CANUI/lib/awtk/awtk-examples/MOTO_A270S/design/default/strings/en_US.bin b/MXC_A27-PCB4.5-CANUI/lib/awtk/awtk-examples/MOTO_A270S/design/default/strings/en_US.bin index c720b8b417c531fe5556b59e4b4f2263688ec08d..979358927c8154a2962947d85aca86f24a552500 100644 GIT binary patch delta 629 zcmWO1O-R!L9LDiSmoIb6`9@w8CW}+?7jNo8PeG@|7ZB$`&_gKrJ$xP>p5N)0DnG0UNl#UhF1^PkrYw>k zNCx)sB11YyI8%C@CC%d>JlWC_I;_%P93zDr+`*Y6b>bCzVPFX32;w86ISOf=5=Rm{ z*u^2PQEihN(E>NR&<{VRF@psxVi_^Sk;Fbuk-`-$cBvRusK*nu+WFs2>46Uc1Tl+W zD0?W?p%pQd=SnMh1|4+*;5wV;@0UbYj?m1B+ea{^m|rVaU1{u delta 535 zcmWO2ODF>X9LMqB9@xulMLCVaMdKheQscndVI?jeiLetbag=tFc2im|E_M*59n1j- zJ2))QG~wcL7&Wx)prjPv!{^uU^soOfTVJS)N`9G*(lqWcVUqF)nx%cTlt@`bN~P*D zX$Gh8S)?{2bfXh$ak z7{w&Qn8iGzSVkNP>>!CWZji$#eqeNP8y*M$H&7Z8#yK8PM4(){M6XjaR7g&E;6(?z z(T5NQ5Wxnvu!ln&BZF%^qku2`!t7$DC{cwPG{FZyLKwj;7O;dBtYRITNa6r#WN?Lh myxIvbuDinPYpXhOsPTFpWz?l%TO`^ diff --git a/MXC_A27-PCB4.5-CANUI/lib/awtk/awtk-examples/MOTO_A270S/design/default/strings/strings.xml b/MXC_A27-PCB4.5-CANUI/lib/awtk/awtk-examples/MOTO_A270S/design/default/strings/strings.xml index 8c29fc73..f7a1643a 100644 --- a/MXC_A27-PCB4.5-CANUI/lib/awtk/awtk-examples/MOTO_A270S/design/default/strings/strings.xml +++ b/MXC_A27-PCB4.5-CANUI/lib/awtk/awtk-examples/MOTO_A270S/design/default/strings/strings.xml @@ -249,4 +249,16 @@ YiLian 亿连 + + + 升级准备中... + Preparing for upgrade... + + + 密码: + Password: + + + 状态: + State: \ No newline at end of file diff --git a/MXC_A27-PCB4.5-CANUI/lib/awtk/awtk-examples/MOTO_A270S/design/default/strings/zh_CN.bin b/MXC_A27-PCB4.5-CANUI/lib/awtk/awtk-examples/MOTO_A270S/design/default/strings/zh_CN.bin index 85d6de43e7a1de7e02081437738e09ac134c68a0..204eee7dc9db155062a62425a978ed99c59d30b8 100644 GIT binary patch delta 623 zcmZ9{ODKc^7=_{EK4bW?Aj-n6SZK&bF3rM%Scsx1B^FbZQYgtU&TNa+DZ zQPL>B&~A~=;jl^-s6iuIF@$A!;KLU7aE1V$@oAMymS`ynnaD>W9B9EHrm={1Y+@Iu zxIzFyyxL!vpczhdpc@ldg%8`<#}O_Oz$<=SL}Z*~AQ7p^LN1C>jyklW4V~!42qrO$1+2mg zKlX8sYuw=xZ}>)Zyp(`sWFRq@sDu+UIKZ*@BP7L|=??mrO!u(4=)T`vv)k=5$No=K haW<#n84k`56wCZ;Z9(Hf;N0qs2~U2Ro@1C8Yexg~M9PZAo!paiFDEG|5G%HMNz)aB)KF zcTgiGi=F1eA}8jcly;JX`{5wc28=(S0E@K#G{bk;~k z_-myY${4pxmk2ndAbK!_F)Sd746-=FDK1dJBic1TczutY8~y9N+{w zT%&+{lu$+mG9))z(25`i5yljvh+!Q`gZ&vo7SHh1N$u#y4&D)|mmctnFZ{yUAT`1Z z9|9Q0BxbRMIM%R<6b^BQb6nvT#RTUCANYpN#Q-$HhYob14~##ph_jCo8M diff --git a/MXC_A27-PCB4.5-CANUI/lib/awtk/awtk-examples/MOTO_A270S/design/default/styles/default.bin b/MXC_A27-PCB4.5-CANUI/lib/awtk/awtk-examples/MOTO_A270S/design/default/styles/default.bin index b60d12a4ba668771eb297072f6a90f9f6ef377fd..4d9a0b4afc4524d1a40804a94b53e81c08d37e59 100644 GIT binary patch delta 3672 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 delta 3694 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 H(Gd0@u(W#g diff --git a/MXC_A27-PCB4.5-CANUI/lib/awtk/awtk-examples/MOTO_A270S/design/default/styles/default.xml b/MXC_A27-PCB4.5-CANUI/lib/awtk/awtk-examples/MOTO_A270S/design/default/styles/default.xml index e3015a06..a96bb52e 100644 --- a/MXC_A27-PCB4.5-CANUI/lib/awtk/awtk-examples/MOTO_A270S/design/default/styles/default.xml +++ b/MXC_A27-PCB4.5-CANUI/lib/awtk/awtk-examples/MOTO_A270S/design/default/styles/default.xml @@ -635,10 +635,16 @@ + +