#!/sbin/sh
OUTFD="$2"; ZIP="$3"
ui_print() { echo "ui_print $1" >&$OUTFD; echo "ui_print" >&$OUTFD; }
BOOT=/dev/block/mmcblk0p10
HBASE="18bb5ec33a5dc6391a56d9614f6b5460d43c3527642ee392c3c9f132cdedcb5e"
HNEW="77293f4351c06fec0a28d910202343c6a685704c2e42873e1c97ed99afc962bc"

ui_print "CAR OS 1.0.0.2 - Wireless Fix"

D="$(getprop ro.product.device 2>/dev/null)"
H="$(getprop ro.hardware 2>/dev/null)"
[ "$D" = santos10wifi ] || [ "$H" = santos10wifi ] || exit 1

CUR="$(sha256sum "$BOOT"|awk '{print $1}')"
[ "$CUR" = "$HNEW" ] && { ui_print "Ja instalado."; exit 0; }
[ "$CUR" = "$HBASE" ] || { ui_print "Base esperada: CAR OS 1.0.0.1 FULL ONLINE."; exit 1; }

U="$(command -v unzip 2>/dev/null)"
[ -z "$U" ] && [ -x /sbin/unzip ] && U=/sbin/unzip
TMP=/tmp/caros1002.img
"$U" -p "$ZIP" boot.img > "$TMP"
[ "$(sha256sum "$TMP"|awk '{print $1}')" = "$HNEW" ] || exit 1
[ "$(wc -c < "$TMP")" = 20971520 ] || exit 1

mkdir -p /external_sd/CAR-OS/backup 2>/dev/null
[ -w /external_sd/CAR-OS/backup ] && dd if="$BOOT" of=/external_sd/CAR-OS/backup/pre-1.0.0.2-boot.img bs=1M 2>/dev/null

dd if="$TMP" of="$BOOT" bs=1M 2>/dev/null
sync
rm -f "$TMP"

[ "$(sha256sum "$BOOT"|awk '{print $1}')" = "$HNEW" ] || exit 1
ui_print "CAR OS 1.0.0.2 instalado."
ui_print "Android Auto agora abre pelo bridge nativo."
ui_print "ACC, TWRP, OTA e dados preservados."
exit 0
