Merge pull request #25 from jav4/sysupgrade

Add sysupgrade functionality
This commit is contained in:
Miguel Fuertes authored and GitHub committed 2026-07-06 18:46:10 +02:00
commit bc7e0c6107
3 files changed
+60 -3

No files matched your search

@@ -0,0 +1,55 @@
#!/bin/sh
# MSM8916 eMMC sysupgrade - kernel (Android boot image) + rootfs (squashfs)
PART_NAME=firmware
REQUIRE_IMAGE_METADATA=1
RAMFS_COPY_DATA="/lib/functions.sh /lib/upgrade/common.sh /lib/upgrade/fwtool.sh /lib/upgrade/luci-add-conffiles.sh /lib/upgrade/platform.sh /lib/upgrade/tar.sh"
platform_check_image() {
local fw_image="$1"
local boardname
read boardname </tmp/sysinfo/board_name
boardname=${boardname//-/}
boardname=${boardname//,/-}
# Must be a tar archive
local control_len=$( (tar xf $fw_image sysupgrade-$boardname/CONTROL -O | wc -c) 2> /dev/null)
# check if valid sysupgrade tar archive
if [ "$control_len" = "0" ]; then
echo "Invalid sysupgrade file: $fw_image"
return 1
fi
return 0
}
platform_do_upgrade() {
local tar_file="$1"
local boot_part rootfs_part
local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
board_dir=${board_dir%/}
# Locate partitions by GPT label
boot_part=$(find_mmc_part "boot")
rootfs_part=$(find_mmc_part "rootfs")
[ -z "$boot_part" ] && { echo "sysupgrade: cannot find 'boot' partition"; return 1; }
[ -z "$rootfs_part" ] && { echo "sysupgrade: cannot find 'rootfs' partition"; return 1; }
echo "sysupgrade: writing kernel to $boot_part"
tar -xOf "$tar_file" ${board_dir}/kernel 2>/dev/null | \
dd of="$boot_part" bs=4096 conv=fsync
echo "sysupgrade: writing rootfs to $rootfs_part"
tar -xOf "$tar_file" ${board_dir}/root 2>/dev/null | \
dd of="$rootfs_part" bs=4096 conv=fsync
sync
}
platform_pre_upgrade() {
rm -fr /overlay/upper/* /overlay/upper/.* 2>/dev/null
[ -f "$UPGRADE_BACKUP" ] && cp -f "$UPGRADE_BACKUP" "/overlay/upper/$BACKUP_FILE" 2>/dev/null
}
+4 -3
View File
@@ -21,10 +21,11 @@ endef
### Devices ###
define Device/Default
PROFILES := Default
KERNEL = kernel-bin | gzip | append-dtb
IMAGES := boot.img system.img
IMAGE/boot.img := append-kernel | aboot-img | append-metadata
KERNEL = kernel-bin | gzip | append-dtb | aboot-img
IMAGES := boot.img system.img sysupgrade.bin
IMAGE/boot.img := append-kernel | append-metadata
IMAGE/system.img := append-rootfs | append-metadata
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
DEVICE_DTS_DIR := $(DTS_DIR)/qcom
DEVICE_DTS = $$(SOC)-$(lastword $(subst _, ,$(1)))
CMDLINE := "earlycon console=ttyMSM0,115200 rw"
+1
View File
@@ -32,6 +32,7 @@ define Device/yiming-uz801v3
$(Device/msm8916)
DEVICE_VENDOR := YiMing
DEVICE_MODEL := uz801v3
SUPPORTED_DEVICES := yiming,uz801-v3
FILESYSTEMS := squashfs
DEVICE_PACKAGES := wpad-basic-wolfssl rmtfs uci-usb-gadget \
block-mount f2fs-tools \