# Filesystem label, bin name (in tar), delta name, update type, blk dev, blk offset
rootfs rootfs.img rootfs.img/ DELTA_FS /dev/mmcblk0p3 0
-ramdisk ramdisk.img ramdisk.img PRE_UA /tmp/boot/ramdisk.img 0
-ramdisk-recovery ramdisk-recovery.img ramdisk-recovery.img PRE_UA /tmp/boot/ramdisk-recovery.img 0
+ramdisk ramdisk.img ramdisk.img FULL_IMAGE:BEFORE_BOOT_FOTA /tmp/boot/ramdisk.img 0
+ramdisk-recovery ramdisk-recovery.img ramdisk-recovery.img FULL_IMAGE:BEFORE_BOOT_FOTA /tmp/boot/ramdisk-recovery.img 0
global NEW_PREFIX
global DIFFPATCH_UTIL
global SUPPORT_CONTAINERS
- global FULL_IMG
- global DELTA_IMG
- global DELTA_IMG_AB
+ global FULL_IMAGE
+ global DELTA_IMAGE
global DELTA_FS
global EXTRA
global COMMON_BIN_PATH
DIFF_PREFIX = "diff"
DIFF_SUFFIX = ".delta"
NEW_PREFIX = 'new'
-FULL_IMG = "FULL_IMG"
-DELTA_IMG = "DELTA_IMG"
-DELTA_IMG_AB = "DELTA_IMG_AB"
+FULL_IMAGE = "FULL_IMAGE"
+DELTA_IMAGE = "DELTA_IMAGE"
DELTA_FS = "DELTA_FS"
EXTRA = "EXTRA"
-PRE_UA = "PRE_UA"
LOGFILE = "Delta.log"
VERBATIM_LIST = "Verbatim_List.txt"
EMPTY = ""
if len(sys.argv) < 5:
sys.exit('Usage: CreatePatch.py UPDATE_TYPE PARTNAME OLDBASE NEWBASE OUTFOLDER')
UPDATE_TYPE = sys.argv[1]
+ UPDATE_TYPE_S = UPDATE_TYPE.split(":")
PART_NAME = sys.argv[2] # lets make this also optional
BASE_OLD = sys.argv[3]
ATTR_NEW = EMPTY
UPDATE_CFG_PATH = EMPTY
GenerateDiffAttr = "FALSE"
- if UPDATE_TYPE == DELTA_FS:
+ if UPDATE_TYPE_S[0] == DELTA_FS:
#instead of arguments check it in outdirectory ?
if len(sys.argv) == 9:
ATTR_OLD = sys.argv[6]
UPDATE_CFG_PATH = '../'+sys.argv[8]
GenerateDiffAttr = "TRUE"
- elif UPDATE_TYPE in [DELTA_IMG, DELTA_IMG_AB, FULL_IMG, PRE_UA]:
+ elif UPDATE_TYPE_S[0] in [DELTA_IMAGE, FULL_IMAGE]:
if len(sys.argv) == 7:
#Use path in better way
UPDATE_CFG_PATH = '../'+sys.argv[6]
print >> sys.stderr, "Basic utils missing -- ABORT"
sys.exit(1)
- if UPDATE_TYPE == FULL_IMG:
+ if UPDATE_TYPE_S[0] == FULL_IMAGE:
SS_mk_full_img(BASE_OLD, BASE_NEW, OUT_DIR, PART_NAME, UPDATE_CFG_PATH)
- elif UPDATE_TYPE == DELTA_IMG:
- SS_mk_delta_img(BASE_OLD, BASE_NEW, OUT_DIR, PART_NAME, UPDATE_CFG_PATH, COMPRESSION_LZMA)
- elif UPDATE_TYPE == DELTA_IMG_AB:
+ # #### currently does not support LZMA ####
+ # elif UPDATE_TYPE == DELTA_IMAGE:
+ # SS_mk_delta_img(BASE_OLD, BASE_NEW, OUT_DIR, PART_NAME, UPDATE_CFG_PATH, COMPRESSION_LZMA)
+ elif UPDATE_TYPE_S[0] == DELTA_IMAGE:
SS_mk_delta_img(BASE_OLD, BASE_NEW, OUT_DIR, PART_NAME, UPDATE_CFG_PATH, COMPRESSION_BROTLI)
elif UPDATE_TYPE == DELTA_FS:
AttributeFile = ATTR_NEW
elif UPDATE_TYPE == EXTRA:
print('UPDATE_TYPE ---- EXTRA')
- elif UPDATE_TYPE == PRE_UA:
- print('UPDATE_TYPE ---- PRE_UA')
- SS_pre_ua_update_checksum(PART_NAME, BASE_NEW, UPDATE_CFG_PATH)
else:
print('UPDATE_TYPE ---- UNKNOWN FORMAT')
logging.error('Usage: {} <Update_Type> <Part_Name> <OLD_Base> <NEW_Base> <OUT_DIR>'.format(os.path.basename(sys.argv[0])))
raise
-def SS_pre_ua_update_checksum(PART_NAME, BASE_NEW, UPDATE_CFG_PATH):
- newsize_d= os.path.getsize(BASE_NEW)
- SHA_BIN_DEST= hash_file(BASE_NEW)
-
- #incase UPDATE CFG is empty
- DELTA = PART_NAME
- #Should throw error if PART NAME NOT found??
- print("newsize: {} sha_bin_dest: {}".format(newsize_d, SHA_BIN_DEST))
- if not UPDATE_CFG_PATH == EMPTY:
- f = open(UPDATE_CFG_PATH, 'r')
- lines = f.readlines()
- f.close()
- f = open(UPDATE_CFG_PATH, 'w')
- for line in lines:
- ConfigItems = line.split()
- if ConfigItems[0] == PART_NAME:
- logging.info ('Updating %s config' % PART_NAME)
- DELTA = ConfigItems[1]
- line = line.rstrip('\n')
- line = line.replace(line, line+'\t'+str(0)+'\t\t'+str(newsize_d)+'\t\t'+str(0)+'\t\t'+str(SHA_BIN_DEST)+'\n')
- print("new line: {}".format(line))
- f.write(line)
- else:
- f.write(line)
- f.close()
-
def SS_update_cfg(DELTA_BIN, UPDATE_CFG_PATH):
f = open(UPDATE_CFG_PATH, 'r')
lines = f.readlines()
if [ "${part_name}" = "RAMDISK2" ]; then
if [ "${RAMDISK2_FULL_IMG}" = "0" ]; then
#--- delta recovery partition ---
- ${MK_PART_DELTA} ${part_name} DELTA_IMG ${part_bin} ${delta_bin}
+ ${MK_PART_DELTA} ${part_name} DELTA_IMAGE:AT_BOOT_FOTA ${part_bin} ${delta_bin}
if [ "$?" = "0" ]; then
sudo mv data/${PART_OUT} ${RESULT_DIR}/${part_bin}
sudo mv ${RESULT_DIR}/${part_bin}/${delta_bin} ${DELTA_DIR}
fi
if [ "${RAMDISK2_FULL_IMG}" = "1" ]; then
#--- full recovery partition ---
- ${MK_PART_DELTA} ${part_name} FULL_IMG ${part_bin} ${delta_bin}
+ ${MK_PART_DELTA} ${part_name} FULL_IMAGE:AT_BOOT_FOTA ${part_bin} ${delta_bin}
if [ "$?" = "0" ]; then
sudo mv data/${PART_OUT} ${RESULT_DIR}/${part_bin}
sudo mv ${RESULT_DIR}/${part_bin}/${part_bin} ${DELTA_DIR}
sudo mv ${DIR_WITH_IMAGES}/${PART_BIN} ${DELTA_DIR}/${DELTA_BIN}
sudo chown ${MY_ID}:${MY_ID} ${DELTA_DIR}/${PART_BIN}
- echo -e "${PART_NAME}\t${DELTA_BIN}\tPRE_UA\t/dev/null\t0\t0\t${IMG_SIZE}\t0\t${SHA1_SUM}" >> ${UPDATE_CFG_PATH}
+ echo -e "${PART_NAME}\t${DELTA_BIN}\tFULL_IMAGE:BEFORE_BOOT_FOTA\t/dev/null\t0\t0\t${IMG_SIZE}\t0\t${SHA1_SUM}" >> ${UPDATE_CFG_PATH}
}
fn_make_delta_full()
fn_get_tar_file_names ${PART_BIN}
if [ "z${OLD_TAR_FILE}" = "z" ]; then
- if [ ! "${UPDATE_TYPE}" = "FULL_IMG" ] && [ ! "${UPDATE_TYPE}" = "PRE_UA" ]; then
+ UPDATE_TYPE_S=(${UPDATE_TYPE//:/ })
+ if [ ! "${UPDATE_TYPE_S[0]}" = "FULL_IMAGE" ]; then
echo "[old] tar file does not exist in ${DATA_DIR}/${OLD_TAR_DIR} which contains ${PART_BIN}"
#exit 0, cos this is not an error.
exit 0
mkdir ${OUTPUT_DIR}
fi
-if [ "${UPDATE_TYPE}" = "FULL_IMG" ] || [ "${UPDATE_TYPE}" = "PRE_UA" ]; then
+UPDATE_TYPE_S=(${UPDATE_TYPE//:/ })
+if [ "${UPDATE_TYPE_S[0]}" = "FULL_IMAGE" ]; then
fn_mk_full_img
-elif [ "${UPDATE_TYPE}" = "DELTA_IMG" ] || [ "${UPDATE_TYPE}" = "DELTA_IMG_AB" ]; then
+elif [ "${UPDATE_TYPE_S[0]}" = "DELTA_IMAGE" ]; then
fn_mk_delta_img
-elif [ "${UPDATE_TYPE}" = "DELTA_FS" ]; then
+elif [ "${UPDATE_TYPE_S[0]}" = "DELTA_FS" ]; then
fn_mk_delta_fs
else
echo "Invalid update type"
# Configuration for generation of delta
# Filesystem label, bin name (in tar), delta name, update type, blk dev, blk offset
-BOOT boot.img boot.img PRE_UA /dev/mmcblk0p1 0
+BOOT boot.img boot.img FULL_IMAGE:BEFORE_BOOT_FOTA /dev/mmcblk0p1 0
hal hal.img hal.img/ DELTA_FS /dev/mmcblk0p10 0
-modules modules.img modules.img PRE_UA /dev/mmcblk0p6 0
+modules modules.img modules.img FULL_IMAGE:BEFORE_BOOT_FOTA /dev/mmcblk0p6 0
rootfs rootfs.img rootfs.img/ DELTA_FS /dev/mmcblk0p2 0
-ramdisk ramdisk.img ramdisk.img FULL_IMG /dev/mmcblk0p7 0
-ramdisk-recovery ramdisk-recovery.img ramdisk-recovery.img PRE_UA /dev/mmcblk0p8 0
+ramdisk ramdisk.img ramdisk.img FULL_IMAGE:AT_BOOT_FOTA /dev/mmcblk0p7 0
+ramdisk-recovery ramdisk-recovery.img ramdisk-recovery.img FULL_IMAGE:BEFORE_BOOT_FOTA /dev/mmcblk0p8 0
# Configuration for generation of delta
# Filesystem label, bin name (in tar), delta name, update type, blk dev, blk offset
-BOOT boot.img boot.img PRE_UA /dev/mmcblk0p1 0
+BOOT boot.img boot.img FULL_IMAGE:BEFORE_BOOT_FOTA /dev/mmcblk0p1 0
hal hal.img hal.img/ DELTA_FS /dev/mmcblk0p10 0
-modules modules.img modules.img PRE_UA /dev/mmcblk0p6 0
+modules modules.img modules.img FULL_IMAGE:BEFORE_BOOT_FOTA /dev/mmcblk0p6 0
rootfs rootfs.img rootfs.img/ DELTA_FS /dev/mmcblk0p2 0
-ramdisk ramdisk.img ramdisk.img FULL_IMG /dev/mmcblk0p7 0
-ramdisk-recovery ramdisk-recovery.img ramdisk-recovery.img PRE_UA /dev/mmcblk0p8 0
+ramdisk ramdisk.img ramdisk.img FULL_IMAGE:AT_BOOT_FOTA /dev/mmcblk0p7 0
+ramdisk-recovery ramdisk-recovery.img ramdisk-recovery.img FULL_IMAGE:BEFORE_BOOT_FOTA /dev/mmcblk0p8 0
# Partition Name (in PIT), bin name (in tar), delta name, update type, blk dev, blk offset
rootfs rootfs.img rootfs.img/ DELTA_FS /dev/mmcblk0p13 0
-boot zImage delta.boot DELTA_IMG /dev/mmcblk0p6 0
-recovery zImage-recovery zImage-recovery PRE_UA /dev/mmcblk0p7 0
-ramdisk1 ramdisk.img ramdisk.img FULL_IMG /dev/mmcblk0p8 0
-ramdisk2 ramdisk-recovery.img ramdisk-recovery.img PRE_UA /dev/mmcblk0p4 0
+boot zImage delta.boot FULL_IMAGE:AT_BOOT_FOTA /dev/mmcblk0p6 0
+recovery zImage-recovery zImage-recovery FULL_IMAGE:BEFORE_BOOT_FOTA /dev/mmcblk0p7 0
+ramdisk1 ramdisk.img ramdisk.img FULL_IMAGE:AT_BOOT_FOTA /dev/mmcblk0p8 0
+ramdisk2 ramdisk-recovery.img ramdisk-recovery.img FULL_IMAGE:BEFORE_BOOT_FOTA /dev/mmcblk0p4 0
# Partition Name (in PIT), bin name (in tar), delta name, update type, blk dev, blk offset
rootfs rootfs.img rootfs.img/ DELTA_FS /dev/mmcblk0p15 0
-boot dzImage delta.boot DELTA_IMG /dev/mmcblk0p8 0
-recovery dzImage-recovery dzImage-recovery PRE_UA /dev/mmcblk0p9 0
-ramdisk1 ramdisk.img ramdisk.img FULL_IMG /dev/mmcblk0p5 0
-ramdisk2 ramdisk-recovery.img ramdisk-recovery.img PRE_UA /dev/mmcblk0p4 0
+boot dzImage delta.boot FULL_IMAGE:AT_BOOT_FOTA /dev/mmcblk0p8 0
+recovery dzImage-recovery dzImage-recovery FULL_IMAGE:BEFORE_BOOT_FOTA /dev/mmcblk0p9 0
+ramdisk1 ramdisk.img ramdisk.img FULL_IMAGE:AT_BOOT_FOTA /dev/mmcblk0p5 0
+ramdisk2 ramdisk-recovery.img ramdisk-recovery.img FULL_IMAGE:BEFORE_BOOT_FOTA /dev/mmcblk0p4 0
# Partition Name (in PIT), bin name (in tar), delta name, update type, blk dev, blk offset
rootfs rootfs.img rootfs.img/ DELTA_FS /dev/mmcblk0p18 0
-boot dzImage delta.boot DELTA_IMG /dev/mmcblk0p11 0
-recovery dzImage-recovery dzImage-recovery PRE_UA /dev/mmcblk0p12 0
-ramdisk1 ramdisk.img ramdisk.img FULL_IMG /dev/mmcblk0p8 0
-ramdisk2 ramdisk-recovery.img ramdisk-recovery.img PRE_UA /dev/mmcblk0p7 0
+boot dzImage delta.boot FULL_IMAGE:AT_BOOT_FOTA /dev/mmcblk0p11 0
+recovery dzImage-recovery dzImage-recovery FULL_IMAGE:BEFORE_BOOT_FOTA /dev/mmcblk0p12 0
+ramdisk1 ramdisk.img ramdisk.img FULL_IMAGE:AT_BOOT_FOTA /dev/mmcblk0p8 0
+ramdisk2 ramdisk-recovery.img ramdisk-recovery.img FULL_IMAGE:BEFORE_BOOT_FOTA /dev/mmcblk0p7 0