#!/bin/ash # shellcheck shell=dash set -e case $1 in --help|-h|'') echo "Usage: pmos-update-kernel [flavor]" exit 1 ;; esac # Declare used deviceinfo variables to pass shellcheck deviceinfo_append_dtb="" # shellcheck disable=SC1091 . /etc/deviceinfo FLAVOR=$1 METHOD=${deviceinfo_flash_method:?} case $METHOD in fastboot|heimdall-bootimg) BOOT_PARTITION=$(findfs PARTLABEL="boot") echo "Flashing boot.img..." dd if=/boot/boot.img-"$FLAVOR" of="$BOOT_PARTITION" bs=1M ;; heimdall-isorec) KERNEL_PARTITION=$(findfs PARTLABEL="${deviceinfo_flash_heimdall_partition_kernel:?}") INITFS_PARTITION=$(findfs PARTLABEL="${deviceinfo_flash_heimdall_partition_initfs:?}") KERNEL="vmlinuz-$FLAVOR" if [ "${deviceinfo_append_dtb}" = "true" ]; then KERNEL="$KERNEL-dtb" fi echo "Flashing kernel ($KERNEL)..." dd if=/boot/"$KERNEL" of="$KERNEL_PARTITION" bs=1M echo "Flashing initramfs..." gunzip -c /boot/initramfs-"$FLAVOR" | lzop | dd of="$INITFS_PARTITION" bs=1M ;; 0xffff) echo -n "No need to use this utility, since uboot loads the kernel directly from" echo " the boot partition. Your kernel should be updated already." exit 1 ;; *) echo "Devices with flash method: $METHOD are not supported." exit 1 ;; esac echo "Done."