Device Info
Device Info
/bin/bash
#
# SPDX-License-Identifier: MIT
#
DEVICE_INFO_VERSION="0.1.13"
if [ -z "$controlfolder" ]; then
SCRIPT_DIR="$(dirname "$0")"
else
SCRIPT_DIR="$controlfolder"
fi
CFW_NAME="Unknown"
CFW_VERSION="Unknown"
if [ -f "/usr/share/plymouth/themes/text.plymouth" ]; then
CFW_INFO=$(grep "title=" "/usr/share/plymouth/themes/text.plymouth")
CFW_FFS=$(grep -a "title=" "/usr/share/plymouth/themes/text.plymouth" | cut -
d'=' -f 2- | tr -cd 'a-zA-Z' | tr '[:upper:]' '[:lower:]')
unset CFW_INFO
unset CFW_FFS
if [ -z "$CFW_NAME" ]; then
# uOS / JELOS / ROCKNIX
CFW_NAME=$(grep -a '^OS_NAME=".*"' /etc/os-release | cut -d'"' -f 2)
CFW_VERSION=$(grep -a '^OS_VERSION=".*"' /etc/os-release | cut -d'"' -f 2)
fi
fi
ANALOG_STICKS=2
DEVICE_CPU=$(lscpu | grep '^Model name' | cut -f 2 -d ":" | awk 'NR==1{print $1}')
DISPLAY_ORIENTATION=0
DEVICE_ARCH="aarch64"
DEVICE_HAS_ARMHF="N"
DEVICE_HAS_AARCH64="N"
DEVICE_HAS_X86="N"
DEVICE_HAS_X86_64="N"
if [ -f "/lib/ld-linux-armhf.so.3" ]; then
DEVICE_ARCH="armhf"
DEVICE_HAS_ARMHF="Y"
fi
if [ -f "/lib/ld-linux-aarch64.so.1" ]; then
DEVICE_ARCH="aarch64"
DEVICE_HAS_AARCH64="Y"
fi
if [ -e "/lib/ld-linux.so.2" ] || [ -e "/usr/lib/ld-linux.so.2" ] || [ "$(uname -
i)" = "i686" ]; then
DEVICE_ARCH="x86"
DEVICE_HAS_X86="Y"
fi
if [ -e "/lib/ld-linux-x86-64.so.2" ] || [ -e "/usr/lib/x86_64-linux-gnu/ld-linux-
x86-64.so.2" ] || [ "$(uname -i)" = "x86_64" ]; then
DEVICE_ARCH="x86_64"
DEVICE_HAS_X86_64="Y"
fi
## FIXES
# Here is where we can add custome rules to fill out extra info on the device.
case "$(echo "$DEVICE_NAME" | tr '[:upper:]' '[:lower:]')" in
# by cpu
"rk3399")
DEVICE_NAME="RG552"
DEVICE_CPU="RK3399"
;;
"rk3566")
DEVICE_CPU="RK3566"
if [[ "${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}" == "960x544" ]]; then
# Nice
DEVICE_NAME="RG503"
elif [[ "${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}" == "1280x720" ]]; then
# and
DEVICE_NAME="x55"
elif [[ "${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}" == "720x720" ]]; then
# easy
DEVICE_NAME="RGB30"
else
# fuck it, close enough
if [[ "$DEVICE_RAM" == "2" ]]; then
DEVICE_NAME="RG353M"
else
DEVICE_NAME="RG353VS"
fi
fi
;;
"rp5")
DEVICE_NAME="Retroid Pocket 5"
DEVICE_CPU="SD865"
;;
"rpmini")
DEVICE_NAME="Retroid Pocket Mini"
DEVICE_CPU="SD865"
;;
"rk3326")
DEVICE_CPU="RK3326"
if [[ "${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}" == "854x480" ]]; then
# Could be this, i guess...
DEVICE_NAME="ODROID-GO Super"
else
# fuck it, close enough
DEVICE_NAME="RG351P"
fi
;;
# by actual device
"rg353v"|"rg353p"|"rg353vs"|"rg353ps"|"rg353m")
DEVICE_CPU="RK3566"
;;
"rg351mp"|"rg351p"|"r35s"|"r36s")
DEVICE_CPU="RK3326"
;;
"r33s")
ANALOG_STICKS=0
DEVICE_CPU="RK3326"
;;
"x55")
DEVICE_CPU="RK3566"
;;
"rg351v")
ANALOG_STICKS=1
DEVICE_CPU="RK3326"
;;
"rg552")
DEVICE_CPU="RK3399"
;;
"gameforce")
DEVICE_CPU="RK3326"
;;
"ace")
DEVICE_CPU="RK3388"
;;
"amlogic-ng")
DEVICE_NAME=$(cat "/sys/firmware/devicetree/base/model" 2> /dev/null | cut
-d' ' -f 2)
DEVICE_CPU="S922X"
;;
"advance")
DEVICE_NAME="ODROID-GO Advance"
DEVICE_CPU="RK3326"
;;
"super")
DEVICE_NAME="ODROID-GO Super"
DEVICE_CPU="RK3326"
;;
"odroid-go super")
DEVICE_CPU="RK3326"
;;
"retrodeck")
DEVICE_CPU="x86_64"
;;
"rg-cubexx")
DEVICE_NAME="RGCUBEXX-H"
DEVICE_CPU="h700"
;;
"rg28xx")
ANALOG_STICKS=0
DEVICE_CPU="h700"
;;
"rg35xx-h")
DEVICE_CPU="h700"
;;
"rg35xx-plus")
ANALOG_STICKS=0
DEVICE_CPU="h700"
;;
"rg35xx-sp")
ANALOG_STICKS=0
DEVICE_CPU="h700"
;;
"rg40xx-h")
DEVICE_CPU="h700"
;;
"rg40xx-v")
ANALOG_STICKS=1
DEVICE_CPU="h700"
;;
"sun50iw9")
if [ -f "/opt/muos/config/device.txt" ]; then
DEVICE_NAME="$(cat /opt/muos/config/device.txt | tr '[:lower:]'
'[:upper:]')"
if [[ "$DEVICE_NAME" == "RG35XX-2024" ]]; then
ANALOG_STICKS=0
elif [[ "$DEVICE_NAME" == "RG35XX-PLUS" ]]; then
ANALOG_STICKS=0
elif [[ "$DEVICE_NAME" == "RG35XX-SP" ]]; then
ANALOG_STICKS=0
elif [[ "$DEVICE_NAME" == "RG28XX" ]]; then
ANALOG_STICKS=0
DISPLAY_ORIENTATION=1
elif [[ "$DEVICE_NAME" == "RG40XX-V" ]]; then
DEVICE_NAME="RG40XX-V"
ANALOG_STICKS=1
fi
else
DEVICE_NAME="RG35XX-H"
fi
DEVICE_CPU="H700"
;;
esac
# GLIBC
CFW_GLIBC="230"
unset libc
unset path
unset SCRIPT_DIR
# Check if the values are not empty, otherwise, set default resolution
if [ -z "$RESOLUTION" ]; then
DISPLAY_WIDTH=640
DISPLAY_HEIGHT=480
else
DISPLAY_WIDTH=$(echo "$RESOLUTION" | cut -d'x' -f 1)
DISPLAY_HEIGHT=$(echo "$RESOLUTION" | cut -d'x' -f 2)
fi
unset RESOLUTION