#!/bin/sh
# Read-only gate for the universal candidate, BEFORE changing ForceWifi or
# drawing. No block-device reads, radio operations, settings writes or probing.
BASE="/mnt/onboard/.adds/kobo-sideload-sync"
fail() { printf '兼容性检查未通过：%s\n' "$1"; exit 1; }
case "$(uname -m)" in armv7l|armv8l) ;; *) fail '本候选需要 32 位 ARMv7 Kobo 系统。' ;; esac
kernel="$(uname -r)"
major="${kernel%%.*}"; rest="${kernel#*.}"; minor="${rest%%.*}"
case "$major:$minor" in *[!0-9:]*|:*|*:) fail '无法确认 Linux 内核版本。' ;; esac
if [ "$major" -lt 3 ] || { [ "$major" -eq 3 ] && [ "$minor" -lt 2 ]; }; then
    fail '当前内核早于 3.2，本候选不能运行；不会更改系统。'
fi
[ -r /mnt/onboard/.kobo/version ] || fail '找不到 Kobo 版本信息。'
firmware="$(awk -F, 'NR==1 {print $3; exit}' /mnt/onboard/.kobo/version)"
case "$firmware" in 4.*) ;; *) fail '当前菜单集成仅支持 4.x 固件，不支持 5.x。' ;; esac
fw_rest="${firmware#*.}"; fw_minor="${fw_rest%%.*}"
case "$fw_minor" in ''|*[!0-9]*) fail '无法确认固件版本。' ;; esac
[ "$fw_minor" -ge 6 ] || fail 'NickelMenu 需要 4.6 或更新的 4.x 固件。'
[ -x "$BASE/bin/kobo-receiver" ] || fail 'Receiver 文件缺失。'
[ -x "$BASE/third-party/fbink/bin/fbink" ] || fail '显示组件缺失。'
[ -r /lib/ld-linux-armhf.so.3 ] || fail '缺少显示组件需要的 ARM 系统加载器。'
if [ "${1:-}" != '--basic' ]; then
    "$BASE/bin/kobo-receiver" --device-info || fail '无法识别设备信息。'
fi
exit 0
