Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/hakchi.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mod
diff options
context:
space:
mode:
authormadmonkey <madfkingmonkey@gmail.com>2017-10-08 12:56:51 +0300
committermadmonkey <madfkingmonkey@gmail.com>2017-10-08 14:54:27 +0300
commit80a41dc7f498b80518544822ec639715e002b6b1 (patch)
treeaf82ecfe4370bc7d960f9ea9806414537c33118e /mod
parent80a90c18a52f121db7d1945eed3d1ac46629789b (diff)
firmware selector
Diffstat (limited to 'mod')
-rwxr-xr-xmod/hakchi/rootfs/bin/hsqs16
-rw-r--r--mod/hakchi/rootfs/etc/preinit.d/b0010_functions21
-rw-r--r--mod/hakchi/rootfs/etc/preinit.d/p0000_config1
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'