优化OTA制作脚本,使其可以支持ssb recovery application bt dsp_main dsp_overlay all_nv 的更新。
authorSnickerSun <snickersun@163.com>
Fri, 7 Jun 2024 08:15:27 +0000 (16:15 +0800)
committerSnickerSun <snickersun@163.com>
Fri, 7 Jun 2024 08:15:27 +0000 (16:15 +0800)
autobuild.sh
code/sdk/build/config/target_config/brandy/build_brandy_update.py
code/sdk/build/config/target_config/brandy/fota/fota.cfg

index 2e9d1de..d8cb637 100755 (executable)
@@ -39,15 +39,46 @@ COMMIT_ID=`git rev-parse HEAD`
 SOURCE_MODIFIED=`git status --short`
 cp_releasepackage()
 {      
-       #code/sdk/output/brandy/acore/brandy-native-js/package/brandy/
-       package_dir=$HOMEDIR/code/sdk/output/package/brandy/$TARGET_PACK_NAME
+       # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js/application.bin  
+       # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js/application.elf  
+       # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js/application.lst  
+       # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js/file.bin
+       # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js-r/recovery.bin  
+       # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js-r/recovery.elf  
+       # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-native-js-r/recovery.lst  
+       # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-ssb/ssb.bin
+       # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-ssb/ssb.elf  
+       # code/sdk/output/package/brandy/pack_brandy_native_js/brandy-ssb/ssb.lst
+
+       package_dir=$HOMEDIR/code/sdk/output/package/brandy/$TARGET_PACK_NAME/
+       application_path=$package_dir/brandy-native-js/application.bin
+       applicationelf_path=$package_dir/brandy-native-js/application.elf 
+       applicationlst_path=$package_dir/brandy-native-js/application.lst
+       recovery_path=$package_dir/brandy-native-js-r/recovery.bin
+       recoveryelf_path=$package_dir/brandy-native-js-r/recovery.elf 
+       recoverylst_path=$package_dir/brandy-native-js-r/recovery.lst
+       ssb_path=$package_dir/brandy-ssb/ssb.bin
+       ssbelf_path=$package_dir/brandy-ssb/ssb.elf 
+       ssblst_path=$package_dir/brandy-ssb/ssb.lst
+
+       dspmain_path=$HOMEDIR/code/sdk/tools/pkg/bin/brandy/dsp/normal/dsp_main.bin
+       dspoverlay_path=$HOMEDIR/code/sdk/tools/pkg/bin/brandy/dsp/normal/dsp_overlay.bin
+       bt_path=$HOMEDIR/code/sdk/tools/pkg/bin/brandy/bt.bin
+       nv_path=$HOMEDIR/code/sdk/output/brandy/nv_bin/brandy_all_nv.bin
+
        filename=${TARGET_PACK_NAME}_${RELEASE_BUILD}_${DATE}_${USER}.fwpkg
        releasedir=$HOMEDIR/release/$TARGET_PACK_NAME/$RELEASE_BUILD/${DATE}
        packsource=$HOMEDIR/code/sdk/tools/pkg/fwpkg/brandy/upload_app.fwpkg
        echo do release copy
-       mkdir -p $releasedir
-       cp -r $HOMEDIR/build.log $package_dir $releasedir/
+       mkdir -p $releasedir/bin
+       
+       cp -r $application_path $applicationelf_path $applicationlst_path $releasedir/bin/
+       cp -r $recovery_path $recoveryelf_path $recoverylst_path $releasedir/bin/
+       cp -r $ssb_path $ssbelf_path $ssblst_path $releasedir/bin/
+       cp -r $bt_path $dspmain_path $dspoverlay_path $nv_path $releasedir/bin/
+       cp -r $HOMEDIR/build.log  $releasedir/
        cp $packsource $releasedir/$filename
+
        echo $filename > $releasedir/readme.txt
        echo branch name $CURRENT_BRANCH >> $releasedir/readme.txt
        echo commit $COMMIT_ID >> $releasedir/readme.txt
@@ -66,8 +97,8 @@ build_target()
 
        cd $HOMEDIR/code/sdk/
        echo ./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE -custom_fw_version=$DEFAULT_CUSTOM_FW_VERSION $TARGET_PACK_NAME 2>&1 
-       #./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE -custom_fw_version=$DEFAULT_CUSTOM_FW_VERSION $TARGET_PACK_NAME 2>&1 
-       ./build.py $CLEAN -$RELEASE_BUILD -build_time=$DATE -custom_fw_version=$DEFAULT_CUSTOM_FW_VERSION $TARGET_PACK_NAME 2>&1 
+       ./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE -custom_fw_version=$DEFAULT_CUSTOM_FW_VERSION $TARGET_PACK_NAME 2>&1 
+       # ./build.py $CLEAN -$RELEASE_BUILD -build_time=$DATE -custom_fw_version=$DEFAULT_CUSTOM_FW_VERSION $TARGET_PACK_NAME 2>&1 
        #./build.py -nhso $CLEAN -$RELEASE_BUILD -build_time=$DATE $TARGET_PACK_NAME 2>&1 
        ret_code=$?
        if [ $ret_code == 0 ]
index 234c7d3..95f4600 100755 (executable)
@@ -39,20 +39,36 @@ class upg_base_info:
 
         # 产品镜像路径 (此处路径仅为参考,需要根据实际使用的target修改)
         # 以下bt、dsp_main、dsp_overlay的路经并不存在,需要根据实际修改
-        self.ssb_bin         = os.path.join(self.output, "newsoftware", "pack_brandy_native_js", "ssb.bin")
-        self.recovery_bin    = os.path.join(self.output, "newsoftware", "pack_brandy_native_js", "recovery.bin")
-        self.app_bin         = os.path.join(self.output, "newsoftware", "pack_brandy_native_js", "application.bin")
-        self.bt_bin          = os.path.join(self.output, "newsoftware", "pack_brandy_native_js", "bt.bin")
-        self.dsp_main_bin    = os.path.join(self.output, "newsoftware", "pack_brandy_native_js", "dsp_main.bin")
-        self.dsp_overlay_bin = os.path.join(self.output, "newsoftware", "pack_brandy_native_js", "dsp_overlay.bin")
-        self.nv_bin          = os.path.join(self.output, "newsoftware", "pack_brandy_native_js", "brandy_all_nv.bin")
-        # 产品镜像签名路径 (此处路径仅为参考,需要根据实际使用的target修改)
-        self.ssb_sign         = os.path.join(self.output, "newsoftware", "pack_brandy_native_js","sign","ssb_sign.bin")
-        self.recovery_sign    = os.path.join(self.output, "newsoftware", "pack_brandy_native_js","sign" ,"recovery_sign.bin")
-        self.app_sign         = os.path.join(self.output, "newsoftware", "pack_brandy_native_js","sign","application_sign.bin")
-        self.bt_sign          = os.path.join(self.output, "newsoftware", "pack_brandy_native_js","sign","bt_sign.bin")
-        self.dsp_main_sign    = os.path.join(self.output, "newsoftware", "pack_brandy_native_js","sign", "dsp_main_sign.bin")
-        self.dsp_overlay_sign = os.path.join(self.output, "newsoftware", "pack_brandy_native_js","sign" ,"dsp_overlay_sign.bin")
+        if os.path.exists(os.path.join(self.output,"newsoftware","pack_brandy_native_js")) :
+            self.ssb_bin         = os.path.join(self.output, "newsoftware", "pack_brandy_native_js", "ssb.bin")
+            self.recovery_bin    = os.path.join(self.output, "newsoftware", "pack_brandy_native_js", "recovery.bin")
+            self.app_bin         = os.path.join(self.output, "newsoftware", "pack_brandy_native_js", "application.bin")
+            self.bt_bin          = os.path.join(self.output, "newsoftware", "pack_brandy_native_js", "bt.bin")
+            self.dsp_main_bin    = os.path.join(self.output, "newsoftware", "pack_brandy_native_js", "dsp_main.bin")
+            self.dsp_overlay_bin = os.path.join(self.output, "newsoftware", "pack_brandy_native_js", "dsp_overlay.bin")
+            self.nv_bin          = os.path.join(self.output, "newsoftware", "pack_brandy_native_js", "brandy_all_nv.bin")
+            # 产品镜像签名路径 (此处路径仅为参考,需要根据实际使用的target修改)
+            self.ssb_sign         = os.path.join(self.output, "newsoftware", "pack_brandy_native_js","sign","ssb_sign.bin")
+            self.recovery_sign    = os.path.join(self.output, "newsoftware", "pack_brandy_native_js","sign" ,"recovery_sign.bin")
+            self.app_sign         = os.path.join(self.output, "newsoftware", "pack_brandy_native_js","sign","application_sign.bin")
+            self.bt_sign          = os.path.join(self.output, "newsoftware", "pack_brandy_native_js","sign","bt_sign.bin")
+            self.dsp_main_sign    = os.path.join(self.output, "newsoftware", "pack_brandy_native_js","sign", "dsp_main_sign.bin")
+            self.dsp_overlay_sign = os.path.join(self.output, "newsoftware", "pack_brandy_native_js","sign" ,"dsp_overlay_sign.bin")
+        else:
+            self.ssb_bin         = os.path.join(self.output, "newsoftware", "bin","ssb.bin")
+            self.recovery_bin    = os.path.join(self.output, "newsoftware", "bin","recovery.bin")
+            self.app_bin         = os.path.join(self.output, "newsoftware", "bin","application.bin")
+            self.bt_bin          = os.path.join(self.output, "newsoftware", "bin","bt.bin")
+            self.dsp_main_bin    = os.path.join(self.output, "newsoftware", "bin","dsp_main.bin")
+            self.dsp_overlay_bin = os.path.join(self.output, "newsoftware", "bin","dsp_overlay.bin")
+            self.nv_bin          = os.path.join(self.output, "newsoftware", "bin","brandy_all_nv.bin")
+            # 产品镜像签名路径 (此处路径仅为参考,需要根据实际使用的target修改)
+            self.ssb_sign         = os.path.join(self.output, "newsoftware", "sign","ssb_sign.bin")
+            self.recovery_sign    = os.path.join(self.output, "newsoftware", "sign" ,"recovery_sign.bin")
+            self.app_sign         = os.path.join(self.output, "newsoftware", "sign","application_sign.bin")
+            self.bt_sign          = os.path.join(self.output, "newsoftware", "sign","bt_sign.bin")
+            self.dsp_main_sign    = os.path.join(self.output, "newsoftware", "sign", "dsp_main_sign.bin")
+            self.dsp_overlay_sign = os.path.join(self.output, "newsoftware", "sign" ,"dsp_overlay_sign.bin")
 
         # 资源文件路径,根据需要自行修改添加
         # self.res_dir          = None 仅删除
@@ -69,26 +85,36 @@ class upg_base_info:
 
 
         # 差分升级时,以下路径配置为上一个版本的镜像路径 (此处路径仅为参考,需要根据实际使用的target修改)
-        self.app_old_bin         = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","application.bin")
-        self.bt_old_bin          = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","bt.bin")
-        self.dsp_main_old_bin    = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","dsp_main.bin")
-        self.dsp_overlay_old_bin = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","dsp_overlay.bin")
-        # 旧产品镜像签名路径 (此处路径仅为参考,需要根据实际使用的target修改)
-        self.app_old_sign         = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","sign","application_sign.bin")
-        self.bt_old_sign          = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","sign","bt_sign.bin")
-        self.dsp_main_old_sign    = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","sign","dsp_main_sign.bin")
-        self.dsp_overlay_old_sign = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","sign","dsp_overlay_sign.bin")
-
+        if os.path.exists(os.path.join(self.output,"oldsoftware","pack_brandy_native_js")) :
+            self.app_old_bin         = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","application.bin")
+            self.bt_old_bin          = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","bt.bin")
+            self.dsp_main_old_bin    = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","dsp_main.bin")
+            self.dsp_overlay_old_bin = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","dsp_overlay.bin")
+            # 旧产品镜像签名路径 (此处路径仅为参考,需要根据实际使用的target修改)
+            self.app_old_sign         = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","sign","application_sign.bin")
+            self.bt_old_sign          = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","sign","bt_sign.bin")
+            self.dsp_main_old_sign    = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","sign","dsp_main_sign.bin")
+            self.dsp_overlay_old_sign = os.path.join(self.output, "oldsoftware", "pack_brandy_native_js","sign","dsp_overlay_sign.bin")
+        else:
+            self.app_old_bin         = os.path.join(self.output, "oldsoftware", "bin","application.bin")
+            self.bt_old_bin          = os.path.join(self.output, "oldsoftware", "bin","bt.bin")
+            self.dsp_main_old_bin    = os.path.join(self.output, "oldsoftware", "bin","dsp_main.bin")
+            self.dsp_overlay_old_bin = os.path.join(self.output, "oldsoftware", "bin","dsp_overlay.bin")
+            # 旧产品镜像签名路径 (此处路径仅为参考,需要根据实际使用的target修改)
+            self.app_old_sign         = os.path.join(self.output, "oldsoftware", "sign","application_sign.bin")
+            self.bt_old_sign          = os.path.join(self.output, "oldsoftware", "sign","bt_sign.bin")
+            self.dsp_main_old_sign    = os.path.join(self.output, "oldsoftware", "sign","dsp_main_sign.bin")
+            self.dsp_overlay_old_sign = os.path.join(self.output, "oldsoftware", "sign","dsp_overlay_sign.bin")
 def get_new_image(info):
     # 要升级的image列表,需根据升级的实际情况进行增删
     image_list = []
-    #image_list.append("=".join([info.ssb_bin,          "ssb"]))
-    # image_list.append("=".join([info.recovery_bin,     "recovery"]))
+    image_list.append("=".join([info.ssb_bin,          "ssb"]))
+    image_list.append("=".join([info.recovery_bin,     "recovery"]))
     image_list.append("=".join([info.app_bin,          "application"]))
-    #image_list.append("=".join([info.bt_bin,           "bt"]))
-    #image_list.append("=".join([info.dsp_main_bin,     "dsp_main"]))
-    #image_list.append("=".join([info.dsp_overlay_bin,  "dsp_overlay"]))
-    # image_list.append("=".join([info.nv_bin,           "nv"]))
+    image_list.append("=".join([info.bt_bin,           "bt"]))
+    image_list.append("=".join([info.dsp_main_bin,     "dsp_main"]))
+    image_list.append("=".join([info.dsp_overlay_bin,  "dsp_overlay"]))
+    image_list.append("=".join([info.nv_bin,           "nv"]))
     
     if  os.path.exists(info.res_dir) :
         print("res dir exist "+ info.res_dir)
@@ -123,9 +149,9 @@ def get_old_image(info):
     # 要进行差分升级的image的旧版本镜像列表
     image_list = []
     image_list.append("=".join([info.app_old_bin,          "application"]))
-    #image_list.append("=".join([info.bt_old_bin,           "bt"]))
-    #image_list.append("=".join([info.dsp_main_old_bin,     "dsp_main"]))
-    #image_list.append("=".join([info.dsp_overlay_old_bin,  "dsp_overlay"]))
+    image_list.append("=".join([info.bt_old_bin,           "bt"]))
+    image_list.append("=".join([info.dsp_main_old_bin,     "dsp_main"]))
+    image_list.append("=".join([info.dsp_overlay_old_bin,  "dsp_overlay"]))
 
     # image_list.append("=".join([info.app_old_sign,         "application_sign"]))
     # image_list.append("=".join([info.bt_old_sign,          "bt_sign"]))
index 6e3017a..7f87fa3 100755 (executable)
@@ -181,7 +181,7 @@ ImageId=0x4B69872D
     # 0x3C7896E1 - compressed image
     # 0x44494646 - diff image
     # other :原始镜像不处理
-DecompressFlag=0
+DecompressFlag=0x3C7896E1
 
 # ReRncFlag:升级镜像加密标记
     # 0x3C7896E1:加密
@@ -297,7 +297,7 @@ ImageId=0x4BF01E2D
     # 0x3C7896E1 - compressed image
     # 0x44494646 - diff image
     # other :原始镜像不处理
-DecompressFlag=0
+DecompressFlag=0x3C7896E1
 
 # ReRncFlag:升级镜像加密标记
     # 0x3C7896E1:加密
@@ -355,7 +355,7 @@ ImageId=0x5A87A52D
     # 0x3C7896E1 - compressed image
     # 0x44494646 - diff image
     # other :原始镜像不处理
-DecompressFlag=0
+DecompressFlag=0x3C7896E1
 
 # ReRncFlag:升级镜像加密标记
     # 0x3C7896E1:加密
@@ -413,7 +413,7 @@ ImageId=0x5A87A54B
     # 0x3C7896E1 - compressed image
     # 0x44494646 - diff image
     # other :原始镜像不处理
-DecompressFlag=0
+DecompressFlag=0x3C7896E1
 
 # ReRncFlag:升级镜像加密标记
     # 0x3C7896E1:加密