[Feature][T8TSK-242]backup for old fota/delta
Only Configure: No
Affected branch: GSW3.0-Temp-PU
Affected module: fota
Is it addected on both ZXIC and MTK: only MTK
Self-test: Yes
Doc Update: No
Change-Id: Ia61d72ae4f504b375c8def30400a1208dd8c040e
diff --git a/src/lynq/lib/liblynq-fota/rock_ua/rock_ua.c b/src/lynq/lib/liblynq-fota/rock_ua/rock_ua.c
index 0d155dd..d562ae7 100755
--- a/src/lynq/lib/liblynq-fota/rock_ua/rock_ua.c
+++ b/src/lynq/lib/liblynq-fota/rock_ua/rock_ua.c
@@ -629,6 +629,23 @@
return result;
}
+int check_partition()
+{
+ int ret;
+ ret = system("cat /proc/mtd|grep bl2_b");
+ if(ret == 0)
+ {
+ RLOGD("the partition is new\n");
+ }
+ else
+ {
+ RLOGD("the partition is old\n");
+ }
+ return ret;
+
+}
+
+
int lynq_backup_main(void)
{
@@ -1034,17 +1051,48 @@
}
if(backup_flag == 1)
{
- ret = lynq_backup_main();
- if(ret != 0)
+ ret = check_partition();
+ if(ret == 0)
{
- RLOGD("lynq_backup_main fail\n");
+ RLOGD("the fota pachage is old, partition is new, no do lynq_backup_main\n");
+ up_info.fota_flag[0] = 'e';
+ up_info.fota_flag[1] = 'n';
+ up_info.fota_flag[2] = 'd';
+ up_info.update_result = status;
+ up_info.ota_run = 0;
+ lseek(fd_update_status,0,SEEK_SET);
+ write(fd_update_status, &up_info,sizeof(up_info));
+ sync();
+ close_dev_fd(fd_delta);
+ close(fd_update_status);
+
+ return -1;
}
else
{
- system("bash /oemapp2/update-partitions.sh");
+ ret = lynq_backup_main();
+ if(ret != 0)
+ {
+ RLOGD("lynq_backup_main fail\n");
+ }
+ else
+ {
+ ret = system("bash /oemapp2/update-partitions.sh");
+ RLOGD("update-partitions.sh ret=%d\n", ret);
+ up_info.fota_flag[0] = 'e';
+ up_info.fota_flag[1] = 'n';
+ up_info.fota_flag[2] = 'd';
+ up_info.update_result = status;
+ up_info.ota_run = 0;
+ lseek(fd_update_status,0,SEEK_SET);
+ write(fd_update_status, &up_info,sizeof(up_info));
+ sync();
+ close_dev_fd(fd_delta);
+ close(fd_update_status);
+ RLOGD("close file and reset fota_flag\n");
+ return 0;
+ }
}
- return 0;
-
}