Modifying ROOTFSSIZE during flash.sh will make flashing too slow over USB 2.0 link.
I rewrote the script above, with two main changes (14->11 partitions, and retaining the 11th UDA partition):
#!/bin/sh
set -ex
GPT_SIZE=40
UDA_NEW_SIZE=32
move_part() {
name=$(sgdisk -i $1 /dev/mmcblk0 | grep "Partition name" | cut -d"'" -f2)
typecode=$(sgdisk -i $1 /dev/mmcblk0 | grep "Partition GUID code:" | cut -d' ' -f4)
guid=$(sgdisk -i $1 /dev/mmcblk0 | grep "Partition unique GUID:" | cut -d' ' -f4)
sgdisk -d $1 -n $1:$2:$3 -c $1:"$name" -t $1:"$typecode" -u $1:"$guid" /dev/mmcblk0
partprobe /dev/mmcblk0
}
read DISK_SIZE </sys/block/mmcblk0/size
START=$((DISK_SIZE-GPT_SIZE-UDA_NEW_SIZE))
move_part 11 $START $((START+UDA_NEW_SIZE-1))
for i in $(seq 10 -1 2); do
dd if=/dev/mmcblk0p$i of=part$i.img
read size </sys/block/mmcblk0/mmcblk0p$i/size
START=$((START-size))
move_part $i $START $((START+size-1))
dd of=/dev/mmcblk0p$i if=part$i.img
rm -f part$i.img
done
move_part 1 $GPT_SIZE 0
sgdisk --move-second-header /dev/mmcblk0
resize2fs /dev/mmcblk0p1