#!/bin/bash

sha256="b74738acf06be1fd1d2a20b1db801914f50345c466c5f4a1bf507ea1ef6fc41f"
upgrade_flag="/usr/local/dragino/flag/.upgrade_flag_250820"
server_address="http://repo.dragino.com/release/driver/lps8v2/rtl8188"
driver_name="roma_40_20_mbo_pwrlim_exc.ko"
kernel_dir="/lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek"
tmp_file="/tmp/$driver_name"

# 如果已经升级过就退出
[[ -f "$upgrade_flag" ]] && rm /etc/cron.d/update_rtl8188_driver_250820 && exit 0

# 下载文件
random_number=$(($RANDOM%60))
sleep $random_number
wget -q --show-progress --timeout=30 --tries=3 -P /tmp "$server_address/$driver_name" || exit 1

# 校验文件存在
[[ -f "$tmp_file" ]] || exit 1

# 校验哈希
file_hash=$(sha256sum "$tmp_file" | awk '{print $1}')
if [[ "$file_hash" != "$sha256" ]]; then
    echo "Hash mismatch! expected=$sha256 got=$file_hash"
    rm -f "$tmp_file"
    exit 1
fi

# 替换驱动
mv "$tmp_file" "$kernel_dir/rtl8188fu.ko" || exit 1

# 生成升级标志
touch "$upgrade_flag"
echo "Driver upgraded successfully."
