diff options
author | madmonkey <madfkingmonkey@gmail.com> | 2017-10-08 12:56:51 +0300 |
---|---|---|
committer | madmonkey <madfkingmonkey@gmail.com> | 2017-10-08 14:54:27 +0300 |
commit | 80a41dc7f498b80518544822ec639715e002b6b1 (patch) | |
tree | af82ecfe4370bc7d960f9ea9806414537c33118e /mod | |
parent | 80a90c18a52f121db7d1945eed3d1ac46629789b (diff) |
firmware selector
Diffstat (limited to 'mod')
-rwxr-xr-x | mod/hakchi/rootfs/bin/hsqs | 16 | ||||
-rw-r--r-- | mod/hakchi/rootfs/etc/preinit.d/b0010_functions | 21 | ||||
-rw-r--r-- | mod/hakchi/rootfs/etc/preinit.d/p0000_config | 1 |
3 files changed, 35 insertions, 3 deletions
diff --git a/mod/hakchi/rootfs/bin/hsqs b/mod/hakchi/rootfs/bin/hsqs new file mode 100755 index 0000000..1813a10 --- /dev/null +++ b/mod/hakchi/rootfs/bin/hsqs @@ -0,0 +1,16 @@ +#!/bin/sh +source /etc/preinit +script_init + +firmware="$1" + +checkFirmware "$firmware" || exit 1 +[ "$cfg_firmware" == "$firmware" ] && exit 0 + +cfg_firmware="$firmware" +save_config + +[ "$(currentFirmware)" == "$firmware" ] && exit 0 + +reboot +exit 0 diff --git a/mod/hakchi/rootfs/etc/preinit.d/b0010_functions b/mod/hakchi/rootfs/etc/preinit.d/b0010_functions index 8480541..6dbdca4 100644 --- a/mod/hakchi/rootfs/etc/preinit.d/b0010_functions +++ b/mod/hakchi/rootfs/etc/preinit.d/b0010_functions @@ -70,12 +70,27 @@ remount_root(){ mount --move "$tmpmount" "$mountpoint/var" } +checkFirmware(){ + [ -f "$1" ] || return 1 + [ "$(hexdump -e '1/4 "%u"' -s 0 -n 4 "$1")" == "1936814952" ] || return 1 + return 0 +} + +currentFirmware(){ + echo "$(losetup | awk '{print $3'})" +} + load_firmware(){ [ -z "$(mount | grep -F loop0)" ] || return 1 - [ -d "$firmwarepath" ] || return 0 - local firmware="$(find "$firmwarepath" -type f -name "*.hsqs" | sort | head -n 1)" - [ -f "$firmware" ] || return 0 + local firmware="$mountpoint$cfg_firmware" + if checkFirmware "$firmware"; then + else + [ -d "$firmwarepath" ] || return 0 + firmware="$(find "$firmwarepath" -type f -name "*.hsqs" | sort | head -n 1)" + fi + checkFirmware "$firmware" || return 0 + mod_repair_modules umountSquash remount_root "$firmware" diff --git a/mod/hakchi/rootfs/etc/preinit.d/p0000_config b/mod/hakchi/rootfs/etc/preinit.d/p0000_config index 68e938f..c52abf8 100644 --- a/mod/hakchi/rootfs/etc/preinit.d/p0000_config +++ b/mod/hakchi/rootfs/etc/preinit.d/p0000_config @@ -1,4 +1,5 @@ cfg_boot_stock_firmware='n' cfg_boot_stock='n' cfg_disable_armet='y' +cfg_firmware='' cfg_nes_extra_args='--ppu-palette 2' |