#!/bin/sh

set +x
  
PREREQ=""

prereqs()
{
        echo "$PREREQ"
}

case $1 in
# get pre-requisites
prereqs)
        prereqs
        exit 0
        ;;
esac

ARCH=`uname -r`

check_crypttab() {
    # 检查文件是否存在
    if [ ! -f /cryptroot/crypttab ]; then
#        echo "cryptroot-check: /cryptroot/crypttab not found"
        return 1
    fi
    
    # 检查是否有非注释/非空白的行
    if grep -q -v '^[[:space:]]*\(#\|$\)' /cryptroot/crypttab; then
#        echo "cryptroot-check: Found encrypted devices to unlock"
        return 0
    fi
    
    echo "cryptroot-check: No active entries in /cryptroot/crypttab"
    return 1
}

if [ -f /lib/modules/$ARCH/kernel/drivers/char/tpm/tpm_ax99100.ko ]; then
        insmod /lib/modules/$ARCH/kernel/drivers/char/tpm/tpm_ax99100.ko
fi

if [ -f /scripts/encrypt_dev_config.json ]; then
        udevadm settle
elif check_crypttab; then
        udevadm settle
else
        exit 0
fi

if [ -f /lib/modules/$ARCH/kernel/drivers/spi/spi-phytium-plat.ko ]; then
        insmod /lib/modules/$ARCH/kernel/drivers/spi/spi-phytium-plat.ko
fi

if [ -f /lib/modules/$ARCH/kernel/drivers/spi/spi-phytium-dma.ko ]; then
        insmod /lib/modules/$ARCH/kernel/drivers/spi/spi-phytium-dma.ko
fi

if [ -f /lib/modules/$ARCH/kernel/drivers/spi/spi-phytium.ko ]; then
        insmod /lib/modules/$ARCH/kernel/drivers/spi/spi-phytium.ko
fi

/usr/sbin/encrypt-init-initramfs
