#!/bin/bash

# possible machine types:
#   - LT11.arm64.v1.rev1
#   - KVADRAT.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
#   - ZHISD.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

if [[ $MACHINE_TYPE == *"amd64"* ]]; then
    # mic control fix (BT-50216)
    # daemons restart fix (BT-50751)
    # gps satellite location fix (BT-50697)
    sed -i "s/LOAD_KEXEC=.*/LOAD_KEXEC=false/" /etc/default/kexec
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
        cp -f /root/hardware/mig/snd-hda-intel.conf /etc/modprobe.d/snd-hda-intel.conf
        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/disable-snd-power-save.sh
    ;;

    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-v51 /etc/default/gpsd
        cp -f /root/hardware/mig/ru.astralinux.t8s.policy /usr/share/polkit-1/actions/
        cp -f /root/hardware/mig/t8s_scan_trig /usr/lib/astra-mobile/
        cp -f /root/hardware/mig/snd-hda-intel.conf /etc/modprobe.d/snd-hda-intel.conf
        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
        /root/hardware/mig/disable-snd-power-save.sh
        cp -f /root/hardware/mig/mig-t8-f-key.service /etc/systemd/system/
        cp -f /root/hardware/mig/mig-t8-f-key /usr/sbin/
        cp -f /root/hardware/mig/mig-t8-scanner-key.service /etc/systemd/system/
        cp -f /root/hardware/mig/mig-t8-scanner-key /usr/sbin/
    ;;

    MIGT10X.amd64.v2.rev1 )
        cp -f /root/hardware/mig/99-mig-fix-wakeup.rules /etc/udev/rules.d/
        cp -f /root/hardware/mig/snd-hda-intel.conf /etc/modprobe.d/snd-hda-intel.conf
        /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
        /root/hardware/mig/disable-snd-power-save.sh
    ;;

    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

        # default scale (BT-40373)
        sed -i "s/scale\": 2/scale\": 1.7/" /usr/share/kscreen/generic-config
        /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
    ;;

    KVADRAT.arm64.v1.rev1 )
        rm -f /etc/modules-load.d/t8s_ctl.conf
        /root/hardware/yadro/calibrate-screen-ts11
        /root/hardware/yadro/wifi-filter-fix
        /root/hardware/yadro/rk-device-permission-fix
        /root/hardware/yadro/chromium-libv4l2-fix
        /root/hardware/yadro/kvadrat-fix-volume
        /root/hardware/yadro/setup-video-devices-fix
        cp -f /root/hardware/yadro/gpsd-ts11 /etc/default/gpsd
	cp -f /root/hardware/yadro/generic-config-ts11 /usr/share/kscreen/generic-config
	rm -f /etc/udev/rules.d/99-ts11-disable-modem.rules
        cp -f /root/hardware/yadro/99-himax-touchscreen-disable-mouse.rules /etc/udev/rules.d/
        cp -f /root/hardware/yadro/ts11-enable-modem.service /etc/systemd/system/
        cp -f /root/hardware/yadro/lte-modem.nmconnection /etc/NetworkManager/system-connections/
        chmod 600 /etc/NetworkManager/system-connections/*
        cp -f /root/hardware/yadro/autobrightness-helperrc /etc/xdg/
        cp -f /root/hardware/yadro/kvadrat-fly-camera.conf /etc/xdg/rusbitech/fly-camera.conf
        cp -f /root/hardware/yadro/kill-fly-camera /usr/lib/systemd/system-sleep/kill-fly-camera
        cp -f /root/hardware/yadro/kvadrat-check-flashlight /usr/lib/systemd/system-sleep/kvadrat-check-flashlight
        systemctl enable rkaiq
        systemctl enable ts11-enable-modem
	mkdir -p /vendor/etc
	ln -fs /usr/lib/firmware /vendor/etc/firmware
        mkdir -p /etc/pipewire/media-session.d
        cp -f /root/hardware/yadro/media-session.conf /etc/pipewire/media-session.d/media-session.conf
        sed -i "s/timeout=.*/timeout=2500/" /etc/xdg/outputswatcher
        sed -i "s/set-source-volume 7 400000//" /etc/pulse/default.pa
	sed -i "s/Modules=kcm_password/Modules=kcm_password,kcm_nightcolor,kcm_mobile_hotspot/" /etc/xdg/plasmasettingsrc
        kwriteconfig5 --file /etc/NetworkManager/NetworkManager.conf --group keyfile --key unmanaged-devices interface-name:usb*
	cat >> /etc/xdg/plasmamobilerc <<EOF
[QuickSettings]
disabledQuickSettings=org.kde.plasma.quicksetting.forcerotation.left,org.kde.plasma.quicksetting.forcerotation.right,org.kde.plasma.quicksetting.nightcolor,org.kde.plasma.quicksetting.record
EOF
    ;;

    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
        kwriteconfig5 --file /etc/xdg/plasmamobilerc --group Brightness --key MinLevel 26
    ;;

    ZHISD.amd64.v1.rev1 )
        /root/hardware/zhisd/calibrate-screen-zhisd
        cp -f /root/hardware/zhisd/fly-camera.conf /etc/xdg/rusbitech/fly-camera.conf
        cp -f /root/hardware/zhisd/gpsd /etc/default/
        cp -f /root/hardware/zhisd/es8336.conf /etc/modprobe.d/
esac
