#!/bin/bash

# possible machine types:
#   - LT11.arm64.v1.rev1
#   - YADROTS11.arm64.v1.rev1
#   - MIGT8X.amd64.v2.rev50
#   - MIGT8X.amd64.v2.rev51
#   - MIGT10X.amd64.v2.rev1
#   - IRUONYX.amd64.v1.rev1
#   - LENOVOURU.amd64.v1.rev1
#   - LENOVOERU.amd64.v1.rev1
#   - CHUWIHI10X.amd64.v1.rev1
#   - CHUWIUBOOKXPRO.amd64.v1.rev1

MACHINE_TYPE=""
if [ -e /etc/astra/machine_type ]; then
    MACHINE_TYPE=`cat /etc/astra/machine_type | head -1 | tr -s ' '`
    echo "astra-mobile: detected machine type $MACHINE_TYPE"
fi

if [[ $MACHINE_TYPE == *"arm64"* ]]; then
    # enable qml users cache for arm (BT-37690)
mkdir -p /etc/xdg/QtProject
cat > /etc/xdg/QtProject/security.ini <<EOF
DisableUserQmlCaches=false
EOF

    # remove extra fonts and fly fontconfigs (BT-37690)
    env $ENV_NONINTERACTIVE apt-get $APT_OPTIONS -y remove fonts-noto-ui-extra
    env $ENV_NONINTERACTIVE apt-get $APT_OPTIONS -y remove fonts-noto-extra
    env $ENV_NONINTERACTIVE apt-get $APT_OPTIONS -y remove fly-fontconfig-settings
fi


case "$MACHINE_TYPE" in
    LENOVOERU.amd64.v1.rev1 )
        rm -f /etc/modules-load.d/t8s_ctl.conf
        /root/hardware/lenovo/calibrate-screen-ideapad-duet3
        /root/hardware/lenovo/ignore-scndpwrbtn-ideapad-duet3
        sed -i "s/normal/right_side_up/g" /etc/default/grub
        /usr/sbin/update-grub
    ;;

    LENOVOURU.amd64.v1.rev1 )
        rm -f /etc/modules-load.d/t8s_ctl.conf
        /root/hardware/lenovo/calibrate-screen-ideapad-duet3
        /root/hardware/lenovo/ignore-scndpwrbtn-ideapad-duet3
        cp -f /root/hardware/lenovo/99-lenovo-pci-modem.rules /etc/udev/rules.d/
        sed -i "s/normal/right_side_up/g" /etc/default/grub
        /usr/sbin/update-grub
    ;;

    MIGT8X.amd64.v2.rev50 )
        /root/hardware/mig/calibrate-screen-t8s
        cp -f /root/hardware/mig/99-mig-fix-wakeup.rules /etc/udev/rules.d/
        cp -f /root/hardware/mig/autobrightness-helperrc /etc/xdg/
        cp -f /root/hardware/mig/t8s-fly-camera.conf /etc/xdg/rusbitech/fly-camera.conf
        cp -f /root/hardware/mig/gpsd-t8s /etc/default/gpsd
        sed -i "s/normal/left_side_up/g" /etc/default/grub
        sed -i "s/ acpi_mask_gpe=0x6F//" /etc/default/grub
        sed -i "s/\(GRUB_CMDLINE_LINUX_DEFAULT=\".*\)\"/\1 acpi_mask_gpe=0x6F\"/" /etc/default/grub
        echo "GRUB_PRELOAD_MODULES=\"cachebits10\"" >> /etc/default/grub
        /usr/sbin/update-grub
    ;;

    MIGT8X.amd64.v2.rev51 )
        /root/hardware/mig/calibrate-screen-t8s
        cp -f /root/hardware/mig/99-mig-fix-wakeup.rules /etc/udev/rules.d/
        cp -f /root/hardware/mig/autobrightness-helperrc /etc/xdg/
        cp -f /root/hardware/mig/gpsd-t8s /etc/default/gpsd
        sed -i "s/normal/left_side_up/g" /etc/default/grub
        sed -i "s/ acpi_mask_gpe=0x6F//" /etc/default/grub
        sed -i "s/\(GRUB_CMDLINE_LINUX_DEFAULT=\".*\)\"/\1 acpi_mask_gpe=0x6F\"/" /etc/default/grub
        echo "GRUB_PRELOAD_MODULES=\"cachebits10\"" >> /etc/default/grub
        /usr/sbin/update-grub
        /root/hardware/mig/t8s-v51-fix
    ;;

    MIGT10X.amd64.v2.rev1 )
        cp -f /root/hardware/mig/99-mig-fix-wakeup.rules /etc/udev/rules.d/
        /root/hardware/mig/calibrate-screen-and-fix-touch-t10
        /root/hardware/mig/t10-new-fix
        /root/hardware/mig/t10-sdhci-driver-hack
        sed -i "s/normal/left_side_up/g" /etc/default/grub
        sed -i "s/ acpi_mask_gpe=0x6F//" /etc/default/grub
        sed -i "s/\(GRUB_CMDLINE_LINUX_DEFAULT=\".*\)\"/\1 acpi_mask_gpe=0x6F\"/" /etc/default/grub
        echo "GRUB_PRELOAD_MODULES=\"cachebits10\"" >> /etc/default/grub
        /usr/sbin/update-grub
    ;;

    IRUONYX.amd64.v1.rev1 )
        rm -f /etc/modules-load.d/t8s_ctl.conf
        /root/hardware/iru/fix-volkeys-onyx-i7
        sed -i "s/ acpi_enforce_resources=lax//" /etc/default/grub
        sed -i "s/\(GRUB_CMDLINE_LINUX_DEFAULT=\".*\)\"/\1 acpi_enforce_resources=lax\"/" /etc/default/grub
        /usr/sbin/update-grub
    ;;

    CHUWIHI10X.amd64.v1.rev1 )
        rm -f /etc/modules-load.d/t8s_ctl.conf
        /root/hardware/chuwi/calibrate-screen-hi10x
	/root/hardware/chuwi/fix-sound-hi10x
    ;;

    CHUWIUBOOKXPRO.amd64.v1.rev1 )
        rm -f /etc/modules-load.d/t8s_ctl.conf
        /root/hardware/chuwi/calibrate-screen-xpro
    ;;

    YADROTS11.arm64.v1.rev1 )
        rm -f /etc/modules-load.d/t8s_ctl.conf
        /root/hardware/yadro/calibrate-screen-ts11
        /root/hardware/yadro/wifi-filter-fix
        cp -f /root/hardware/yadro/gpsd-ts11 /etc/default/gpsd
	cp -f /root/hardware/yadro/generic-config-ts11 /usr/share/kscreen/generic-config
	echo "set-card-profile alsa_card.platform-lte-sound off" >> /etc/pulse/default.pa
	echo "set-card-profile alsa_card.platform-dp0-sound off" >> /etc/pulse/default.pa
	echo "set-card-profile alsa_card.platform-bt-sound off" >> /etc/pulse/default.pa
        echo "load-module module-alsa-source device=hw:3,1" >> /etc/pulse/default.pa
	mkdir -p /vendor/etc
	ln -s /usr/lib/firmware /vendor/etc/firmware
    ;;

    LT11.arm64.v1.rev1 )
        /root/hardware/mig/lt11/touchscreen-and-screen-fix
        /root/hardware/mig/lt11/enable-wifi-filter
        cp -f /root/hardware/mig/lt11/lt11-fly-camera.conf /etc/xdg/rusbitech/fly-camera.conf
    ;;
esac
