CasperSecurity

Current Path : /bin/X11/X11/X11/X11/
Upload File :
Current File : //bin/X11/X11/X11/X11/laptop-detect

#!/bin/sh -e

usage () {
    echo "Usage: $0 [-h|--help|-v|--verbose]"
    echo ""
    echo "  -h | --help      print this help"
    echo "  -v | --verbose   be verbose (messages go to STDOUT)"
    echo "  -V | --version   print version information"
    echo "  -D | --debug     debug mode"
    echo ""
    echo " Possible return values:"
    echo "  0  most likely running on a laptop"
    echo "  1  most likely NOT running on a laptop"
    echo "  2  called with unknown option, -h, --help, -V, --version, -D or --debug"
}

PRINTIT="/bin/true" # /bin/true accepts any option but never prints anything
EXIT="exit" # replaced in debug mode by /bin/true

# Check wether we were asked to be verbose

if [ "$1" != "" ]; then
    case "$1" in
        "-v"|"--verbose")
            PRINTIT="echo"
            ;;
        "-V"|"--version")
            echo "Version: 0.16"
            exit 2
            ;;
        "-h"|"--help")
            usage
            exit 2
            ;;
        "-D"|"--debug")
            EXIT="/bin/true"
            set -x
            ;;
        *)
            echo "UNKNOWN OPTION: $1"
            usage
            exit 2
            ;;
    esac
fi

# Are we a mac?
if test -d /proc/pmu; then
        batteries=$(grep Battery /proc/pmu/info | cut -f2 -d:)
        if test "$batteries" -ne 0; then
            $PRINTIT "We're a laptop (Mac: batteries found)" >&2;
            $EXIT 0
        fi
        exit 1
fi

if dmidecode="$(command -v dmidecode)" && [ -r /dev/mem -a -x "$dmidecode" ]
then
        # dmidecode to grab the Chassis type
        dmitype=$("$dmidecode" --string chassis-type)

        if test "$dmitype" = "Notebook" || \
           test "$dmitype" = "Portable" || \
           test "$dmitype" = "Laptop"   || \
           test "$dmitype" = "Hand Held"; then
            $PRINTIT "We're a laptop (dmidecode returned \"$dmitype\")" >&2
            $EXIT 0
        fi

        # turn back on for debugging
        #echo "$dmitype"
fi

if [ -e /sys/devices/virtual/dmi/id/chassis_type ] ; then
    chassis_type="$(cat /sys/devices/virtual/dmi/id/chassis_type)"
    case "$chassis_type" in
        8) # Portable
            $PRINTIT "We're a portable (chassis_type is $chassis_type)" >&2
            $EXIT 0
            ;;
        9) # Laptop
            $PRINTIT "We're a laptop (chassis_type is $chassis_type)" >&2
            $EXIT 0
            ;;
        10) # Notebook
            $PRINTIT "We're a notebook (chassis_type is $chassis_type)" >&2
            $EXIT 0
            ;;
        11) # Hand Held
            $PRINTIT "We're a hand held (chassis_type is $chassis_type)" >&2
            $EXIT 0
            ;;
    esac
fi

# check for non device ACPI batteries
/sbin/modprobe battery 2> /dev/null || true
sysfs_power_supply=/sys/class/power_supply
if [ -d $sysfs_power_supply ]; then
	for power_supply in $(ls $sysfs_power_supply)
	do
		if (
			grep -q Battery $sysfs_power_supply/$power_supply/type 2>/dev/null
		) && (
			! grep -q Device $sysfs_power_supply/$power_supply/scope 2>/dev/null
		)
		then
			$PRINTIT "We're a laptop (non device ACPI batteries found)" >&2
			$EXIT 0
		fi
	done
fi
# old interface:
if [ -d /proc/acpi/battery ]; then
        results=`find /proc/acpi/battery -mindepth 1 -type d`
        if [ ! -z "$results" ]; then
            $PRINTIT "We're a laptop (ACPI batteries found)" >&2
            $EXIT 0
        fi
fi


# check for APM batteries. This sucks, because we'll only get a valid response
# if the laptop has a battery fitted at the time
if [ -f /proc/apm ]; then
    battery=`awk '{print $6}' </proc/apm`
    if [ "$battery" != "0xff" ] && [ "$battery" != "0x80" ]; then
        $PRINTIT "We're a laptop (APM batteries found)" >&2
        $EXIT 0
    fi
fi

$PRINTIT "We're not on a laptop (no relevant hint found)" >&2
$EXIT 1
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY