1、更新ota脚本,添加额外手动添加和删除的资源配置方案。测试颗正常添加删除文件,但带空格的文件仍然无法删除。 104/1 104/head 105/target/1
authorSnickerSun <snickersun@163.com>
Sat, 27 Apr 2024 11:21:09 +0000 (19:21 +0800)
committerSnickerSun <snickersun@163.com>
Sat, 27 Apr 2024 11:21:09 +0000 (19:21 +0800)
2、优化手表ota执行流程,ota更新第一次重启屏蔽掉系统UI,可直接进入第二次重启的recovery界面

code/sdk/application/wearable/ohos_startup/ohosfwk_startup.c
code/sdk/build/script/make_upg_res_pack.py
gen_fs_otapkg.sh
mkota.sh

index 6ccdded..084c529 100755 (executable)
@@ -83,5 +83,11 @@ void ohos_startup()
     // display_api->turn_on_screen();
     display_api->set_screen_set_keepon_timeout(5000);
 #endif
+
+
+#if defined(CONFIG_OTA_UPDATE_SUPPORT) && defined(ENABLE_UIKIT)
+    //如果在升级状态,则不进入系统
+ if  (upg_check_upgrade_need_upgrade()) return ;
+#endif
     OHOS_SystemInit();
 }
index ad4d698..f693d23 100644 (file)
@@ -73,15 +73,39 @@ def res_pack(res_dir, index_path=DEFAULT_INDEX_FILE, data_path=DEFAULT_DATA_FILE
         index_file.write(b"\x00" * ctypes.sizeof(UpgResourceIndex))\r
 \r
         for name in deleted_files:\r
+            # 以双引号括起来的文件 "/user/res/message/Line 1.bin" ,取消双引号的方案 Start\r
+            if name.startswith("\""):\r
+                name = name.replace("\"","",1)\r
+                name = name.replace("\" ","",1)\r
+                name = name.replace("\"","",1)\r
             if not name.startswith("/"):\r
                 name = "/" + name\r
-            print(f"Delete file '{name}'")\r
+            name = name.replace("\r","",1)\r
+            name = name.replace("\n","",1)\r
+            # 以双引号括起来的文件 "/user/res/message/Line 1.bin" ,取消双引号的方案 End\r
+\r
+            # 以双引号括起来的文件 "/user/res/message/Line 1.bin" ,保留双引号的方案 Start\r
+            # if name.startswith("\""):\r
+            #     name = name.replace("\"","",1)\r
+            #     name = name.replace("\" ","\"",1)\r
+            #     if not name.startswith("/"):\r
+            #         name = "/" + name\r
+            #     name = "\"" + name\r
+            # else:\r
+            #     if not name.startswith("/"):\r
+            #         name = "/" + name\r
+            # name = name.replace("\r","",1)\r
+            # name = name.replace("\n","",1)\r
+            # 以双引号括起来的文件 "/user/res/message/Line 1.bin" ,保留双引号的方案 End\r
+\r
+            # print(f"Delete file '{name}'")\r
 \r
             node = UpgResourceNode()\r
             node.file_path = name.encode()\r
             node.offset = 0\r
             node.file_len = 0\r
             node.operation_type = UpgResourceOperation.DELETE_FILE\r
+            print("Delete file " + node.file_path.decode())\r
             index_file.write(node.encode())\r
 \r
             file_num += 1\r
@@ -149,9 +173,12 @@ if __name__ == "__main__":
     parser.add_argument("-i", "--index-file", default=DEFAULT_INDEX_FILE, type=str, help="Generated index file path")\r
     parser.add_argument("-d", "--data-file", default=DEFAULT_DATA_FILE, type=str, help="Generated data file path")\r
     args = parser.parse_args()\r
-\r
     test_deleted_files = [ # 待删除文件\r
+        \r
     ]\r
+    if os.path.exists("code/sdk/output/additional_fs/delfiles") :\r
+            with open("code/sdk/output/additional_fs/delfiles","r") as file:\r
+                test_deleted_files = file.readlines() # [ "/user/exc/exc_info.bin"] #待删除文件列表,删除/user/exc/目录下的exc_info.bin文件\r
     test_removed_dirs = [ # 待删除目录\r
     ]\r
     res_pack(args.res_dir, args.index_file, args.data_file, test_deleted_files, test_removed_dirs)\r
index 4267f22..d1fdf76 100644 (file)
@@ -3,7 +3,7 @@
 NEWVERSION=HEAD
 OLDVERSION=HEAD
 DATE=$(date  +%Y%m%d.%H%M%S)
-FSDATADIR=code/sdk/build/config/target_config/brandy/mk_fs_image/fd230
+FSDATADIR=code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs
 
 
 if ! [ "$1" = "" ] 
@@ -44,7 +44,7 @@ if [ "$x" = "3" ]
 then 
  x=0 
 fi
-done' sh | awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\//,"") ;print $0 }'
+done' sh | awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\/fs\//,"") ;print $0 }'
 
 }
 list_rename_file_target_name()
@@ -63,7 +63,7 @@ if [ "$x" = "3" ]
 then 
  x=0 
 fi
-done' sh | awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\//,"") ;print $0 }'
+done' sh | awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\/fs\//,"") ;print $0 }'
 
 }
 
@@ -74,7 +74,7 @@ version2=$2
 folder=$3
 git diff -z --diff-filter=ACM --name-only $version1 $version2 $folder |xargs -0 sh -c -a 'x=0; for file; do 
 echo \"$file\"\ 
-done' sh| awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\//,"") ;print $0 }'
+done' sh| awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\/fs\//,"") ;print $0 }'
 
 }
 list_deleted_file_name()
@@ -84,7 +84,7 @@ version2=$2
 folder=$3
 git diff -z --diff-filter=D --name-only $version1 $version2 $folder |xargs -0 sh -c -a 'x=0; for file; do 
 echo \"$file\"\ 
-done' sh | awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\//,"") ;print $0 }'
+done' sh | awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\/fs\//,"") ;print $0 }'
 
 }
 genpatch() {
@@ -100,7 +100,7 @@ rm -rf $TMPDIR
 mkdir -p $TMPDIR
 cd $TARGETDIR
 git config core.filemode false
-git diff ${OLDVERSION}...${NEWVERSION} --name-status . |awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\//,"") ;print $0 }' > $tmpfile_changelist
+git diff ${OLDVERSION}...${NEWVERSION} --name-status . |awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\/fs\//,"") ;print $0 }' > $tmpfile_changelist
 export count=`wc $tmpfile_changelist -l|awk '{print $1}'`
 echo $TARGETDIR $count
 if [ "$count" == "0" ] ; then
@@ -109,21 +109,21 @@ else
        echo ${OLDVERSION}...${NEWVERSION} >$tmpfile_git_commit_file 
 
 
-       # git diff -z ${OLDVERSION}...${NEWVERSION} --name-only --diff-filter=ACMR . |awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\//,"") ;print $0 }' > $tmpfile_modified_or_new_files
-       # git diff -z ${OLDVERSION}...${NEWVERSION} --name-only --diff-filter=D . |awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\//,"") ;print $0 }' > $tmpfile_removedfiles
+       # git diff -z ${OLDVERSION}...${NEWVERSION} --name-only --diff-filter=ACMR . |awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\/fs\//,"") ;print $0 }' > $tmpfile_modified_or_new_files
+       # git diff -z ${OLDVERSION}...${NEWVERSION} --name-only --diff-filter=D . |awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\/fs\//,"") ;print $0 }' > $tmpfile_removedfiles
        list_added_and_modified_file_name ${OLDVERSION} ${NEWVERSION} . > $tmpfile_modified_or_new_files
        list_rename_file_target_name ${OLDVERSION} ${NEWVERSION} . >> $tmpfile_modified_or_new_files
        list_deleted_file_name ${OLDVERSION} ${NEWVERSION} . > $tmpfile_removedfiles
        list_rename_file_source_name ${OLDVERSION} ${NEWVERSION} . >> $tmpfile_removedfiles
        
-       mkdir -p $BACKUPDIR
+       mkdir -p $BACKUPDIR/fs
        mkdir -p $BACKUPDIR_DIFF
        mv $tmpfile_git_commit_file $BACKUPDIR_DIFF
 
        if ! [ $(wc -l  $tmpfile_modified_or_new_files|awk '{print $1}' ) == "0" ] ; then 
                mv $tmpfile_modified_or_new_files $BACKUPDIR_DIFF
                cat $BACKUPDIR_DIFF/$(basename  $tmpfile_modified_or_new_files)|xargs tar czf $BACKUPDIR/changefiles.tar.gz
-               tar xzf $BACKUPDIR/changefiles.tar.gz -C $BACKUPDIR
+               tar xzf $BACKUPDIR/changefiles.tar.gz -C $BACKUPDIR/fs
                rm $BACKUPDIR/changefiles.tar.gz
        else
                echo $tmpfile_modified_or_new_files $(wc -l  $tmpfile_modified_or_new_files |awk '{print $1}') , skip copy.
@@ -138,7 +138,7 @@ fi
 cd $HOMEDIR
 
 }
-
+rm -rf $BACKUPDIR_HOME
 genpatch $PWD
 echo done
 
index 30d6443..a9beba8 100644 (file)
--- a/mkota.sh
+++ b/mkota.sh
@@ -7,6 +7,7 @@ TARGET_DIR=$2
 TARGET_VERSION=`basename $TARGET_DIR`
 RES_DIR=$3
 ROOTDIR=`basename $PWD`
+ADDITIONAL_RES_DIR=$PWD/code/sdk/output/additional_fs
 
 if [ ! -d "$SOURCE_DIR" ] ; then
 echo "$SOURCE_DIR not exist , skip create ota package"
@@ -39,11 +40,21 @@ fi
 # echo resdir = $RES_DIR  = $TMPDIR
 if [ -d "$RES_DIR" ] ; then
 cp -r $RES_DIR/fs code/sdk/output/brandy/TestOTA/res_file
+fi
+
+if [ -e "$RES_DIR/diff/deletedfiles.txt" ]; then
 cp -f $RES_DIR/diff/deletedfiles.txt code/sdk/output/brandy/TestOTA/delfiles
 fi
 
+if [ -d "$ADDITIONAL_RES_DIR/fs" ]; then
+cp -rf $ADDITIONAL_RES_DIR/fs/* code/sdk/output/brandy/TestOTA/res_file/
+fi
+
+if [ -e "$ADDITIONAL_RES_DIR/delfiles" ]; then
+cat $ADDITIONAL_RES_DIR/delfiles >> code/sdk/output/brandy/TestOTA/delfiles
+fi
 
-cd code/sdk/
+cd $PWD/code/sdk/
 ./build/config/target_config/brandy/build_brandy_update.py
 cd -