From 58c2ed91c72ae642bf554047bdbbb0e34cb8d725 Mon Sep 17 00:00:00 2001 From: Shaun Inman Date: Sun, 5 Feb 2023 22:47:56 -0500 Subject: [PATCH] display message when installing or updating --- .gitignore | 5 +++-- makefile | 6 ++++- skeleton/BASE/dmenu.bin => src/boot/boot.sh | 16 ++++++++++++-- src/boot/build.sh | 23 ++++++++++++++++++++ src/boot/installing.bmp | Bin 0 -> 614472 bytes src/boot/updating.bmp | Bin 0 -> 614472 bytes 6 files changed, 45 insertions(+), 5 deletions(-) rename skeleton/BASE/dmenu.bin => src/boot/boot.sh (85%) create mode 100755 src/boot/build.sh create mode 100644 src/boot/installing.bmp create mode 100644 src/boot/updating.bmp diff --git a/.gitignore b/.gitignore index 96b6ffe..7390613 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,9 @@ build/ cores/src cores/output -private/ -releases/ +private +releases +src/boot/output *.o *.so diff --git a/makefile b/makefile index 51e54c9..6d6016c 100644 --- a/makefile +++ b/makefile @@ -30,6 +30,7 @@ sys: cd ./src/keymon && make cd ./src/minarch && make cd ./src/minui && make + cd ./src/boot && ./build.sh all-cores: cd ./cores && make @@ -51,8 +52,10 @@ bundle: cd ./build && find . -type f -name '.keep' -delete cd ./build && find . -type f -name '*.meta' -delete + cp ./src/boot/output/dmenu.bin ./build/BASE + # populate system - cp ~/buildroot/output/images/rootfs.ext2 ./build/SYSTEM/rg35xx/ + cp ~/buildroot/output/images/rootfs.ext2 ./build/SYSTEM/rg35xx cp ./src/dts/kernel.dtb ./build/SYSTEM/rg35xx/dat cp ./src/libmsettings/libmsettings.so ./build/SYSTEM/rg35xx/lib cp ./src/keymon/keymon.elf ./build/SYSTEM/rg35xx/bin @@ -99,6 +102,7 @@ clean: cd ./src/keymon && make clean cd ./src/minui && make clean cd ./src/minarch && make clean + cd ./src/boot && rm -rf ./output cd ./cores && make clean cd ./src/clock && make clean cd ./other/DinguxCommander && make clean diff --git a/skeleton/BASE/dmenu.bin b/src/boot/boot.sh similarity index 85% rename from skeleton/BASE/dmenu.bin rename to src/boot/boot.sh index db19fb7..d1def6e 100755 --- a/skeleton/BASE/dmenu.bin +++ b/src/boot/boot.sh @@ -37,11 +37,20 @@ fi if [ -f $UPDATE_PATH ]; then FLAG_PATH=/misc/.minstalled if [ ! -f $FLAG_PATH ]; then - echo "INSTALL" + ACTION=installing else - echo "UPDATE" + ACTION=updating fi + # extract the zip file appended to the end of this script to tmp + # and display one of the two images it contains + CUT=$((`busybox grep -n '^BINARY' $0 | busybox cut -d ':' -f 1 | busybox tail -1` + 1)) + busybox tail -n +$CUT "$0" | busybox uudecode -o /tmp/data + busybox unzip -o /tmp/data -d /tmp + busybox fbset -g 640 480 640 480 16 + dd if=/tmp/$ACTION of=/dev/fb0 + sync + busybox unzip -o $UPDATE_PATH -d $SDCARD_PATH rm -f $UPDATE_PATH if [ ! -f $FLAG_PATH ]; then @@ -102,3 +111,6 @@ busybox chroot $ROOTFS_MOUNTPOINT $SYSTEM_PATH/paks/MinUI.pak/launch.sh &> $SYST umount $ROOTFS_MOUNTPOINT busybox losetup --detach $LOOPDEVICE sync && reboot -p + +exit 0 + diff --git a/src/boot/build.sh b/src/boot/build.sh new file mode 100755 index 0000000..4f9f43a --- /dev/null +++ b/src/boot/build.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +TARGET=dmenu.bin + +mkdir -p output +if [ ! -f output/installing ]; then + dd skip=64 iflag=skip_bytes if=installing.bmp of=output/installing +fi +if [ ! -f output/updating ]; then + dd skip=64 iflag=skip_bytes if=updating.bmp of=output/updating +fi + +cd output +if [ ! -f data ]; then + # tar -czvf data installing updating + zip -r data.zip installing updating + mv data.zip data +fi + +cat ../boot.sh > $TARGET +echo BINARY >> $TARGET +uuencode data data >> $TARGET +echo >> $TARGET diff --git a/src/boot/installing.bmp b/src/boot/installing.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9ee57b7555779658fc9ab6060d6528a8cd8938db GIT binary patch literal 614472 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 literal 0 HcmV?d00001 diff --git a/src/boot/updating.bmp b/src/boot/updating.bmp new file mode 100644 index 0000000000000000000000000000000000000000..66e86a702b20427cae112f4b1574a29eed57c1df GIT binary patch literal 614472 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 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly xK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0tB{A;6IZy(n0_L literal 0 HcmV?d00001