From: SnickerSun Date: Sat, 27 Apr 2024 11:21:09 +0000 (+0800) Subject: 1、更新ota脚本,添加额外手动添加和删除的资源配置方案。测试颗正常添加删除文件,但带空格的文件仍然无法删除。 X-Git-Tag: release_V1.2.70_20241020_135402~1025^2~57^2 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=ccf4d427aa04dfa18d4ca3e914de0f1e2d7eff7a;p=mirrors%2FFD230.git 1、更新ota脚本,添加额外手动添加和删除的资源配置方案。测试颗正常添加删除文件,但带空格的文件仍然无法删除。 2、优化手表ota执行流程,ota更新第一次重启屏蔽掉系统UI,可直接进入第二次重启的recovery界面 --- diff --git a/code/sdk/application/wearable/ohos_startup/ohosfwk_startup.c b/code/sdk/application/wearable/ohos_startup/ohosfwk_startup.c index 6ccddede2..084c52964 100755 --- a/code/sdk/application/wearable/ohos_startup/ohosfwk_startup.c +++ b/code/sdk/application/wearable/ohos_startup/ohosfwk_startup.c @@ -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(); } diff --git a/code/sdk/build/script/make_upg_res_pack.py b/code/sdk/build/script/make_upg_res_pack.py index ad4d698e6..f693d232b 100644 --- a/code/sdk/build/script/make_upg_res_pack.py +++ b/code/sdk/build/script/make_upg_res_pack.py @@ -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)) for name in deleted_files: + # 以双引号括起来的文件 "/user/res/message/Line 1.bin" ,取消双引号的方案 Start + if name.startswith("\""): + name = name.replace("\"","",1) + name = name.replace("\" ","",1) + name = name.replace("\"","",1) if not name.startswith("/"): name = "/" + name - print(f"Delete file '{name}'") + name = name.replace("\r","",1) + name = name.replace("\n","",1) + # 以双引号括起来的文件 "/user/res/message/Line 1.bin" ,取消双引号的方案 End + + # 以双引号括起来的文件 "/user/res/message/Line 1.bin" ,保留双引号的方案 Start + # if name.startswith("\""): + # name = name.replace("\"","",1) + # name = name.replace("\" ","\"",1) + # if not name.startswith("/"): + # name = "/" + name + # name = "\"" + name + # else: + # if not name.startswith("/"): + # name = "/" + name + # name = name.replace("\r","",1) + # name = name.replace("\n","",1) + # 以双引号括起来的文件 "/user/res/message/Line 1.bin" ,保留双引号的方案 End + + # print(f"Delete file '{name}'") node = UpgResourceNode() node.file_path = name.encode() node.offset = 0 node.file_len = 0 node.operation_type = UpgResourceOperation.DELETE_FILE + print("Delete file " + node.file_path.decode()) index_file.write(node.encode()) file_num += 1 @@ -149,9 +173,12 @@ if __name__ == "__main__": parser.add_argument("-i", "--index-file", default=DEFAULT_INDEX_FILE, type=str, help="Generated index file path") parser.add_argument("-d", "--data-file", default=DEFAULT_DATA_FILE, type=str, help="Generated data file path") args = parser.parse_args() - test_deleted_files = [ # 待删除文件 + ] + if os.path.exists("code/sdk/output/additional_fs/delfiles") : + with open("code/sdk/output/additional_fs/delfiles","r") as file: + test_deleted_files = file.readlines() # [ "/user/exc/exc_info.bin"] #待删除文件列表,删除/user/exc/目录下的exc_info.bin文件 test_removed_dirs = [ # 待删除目录 ] res_pack(args.res_dir, args.index_file, args.data_file, test_deleted_files, test_removed_dirs) diff --git a/gen_fs_otapkg.sh b/gen_fs_otapkg.sh index 4267f2282..d1fdf76d4 100644 --- a/gen_fs_otapkg.sh +++ b/gen_fs_otapkg.sh @@ -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 diff --git a/mkota.sh b/mkota.sh index 30d644332..a9beba8db 100644 --- 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 -