Mister Spy Say ="Hello Kids ... :D"
___ ____ _ _____
| \/ (_) | | / ___|
| . . |_ ___| |_ ___ _ __ \ `--. _ __ _ _
| |\/| | / __| __/ _ \ '__| `--. \ '_ \| | | |
| | | | \__ \ || __/ | /\__/ / |_) | |_| |
\_| |_/_|___/\__\___|_| \____/| .__/ \__, |
| | __/ |
|_| |___/
Bot Mister Spy V3
Mister Spy
Mister Spy
_fwupdmgr_cmd_list=(
'activate'
'block-firmware'
'clear-results'
'disable-remote'
'device-test'
'device-emulate'
'device-wait'
'downgrade'
'download'
'enable-remote'
'emulation-tag'
'emulation-untag'
'emulation-load'
'emulation-save'
'get-approved-firmware'
'get-bios-setting'
'get-blocked-firmware'
'get-details'
'get-devices'
'get-history'
'get-plugins'
'get-releases'
'get-remotes'
'get-results'
'get-topology'
'get-updates'
'get-upgrades'
'get-plugins'
'inhibit'
'uninhibit'
'install'
'local-install'
'modify-config'
'modify-remote'
'quit'
'reinstall'
'refresh'
'report-history'
'report-export'
'security'
'security-fix'
'security-undo'
'set-approved-firmware'
'set-bios-setting'
'switch-branch'
'sync'
'unlock'
'unblock-firmware'
'update'
'upgrade'
'verify'
'verify-update'
'--version'
)
_fwupdmgr_opts=(
'--verbose'
'--offline'
'--allow-reinstall'
'--allow-older'
'--allow-branch-switch'
'--force'
'--assume-yes'
'--no-history'
'--no-unreported-check'
'--no-metadata-check'
'--no-reboot-check'
'--no-safety-check'
'--no-remote-check'
'--no-security-fix'
'--show-all'
'--sign'
'--filter'
'--filter-release'
'--disable-ssl-strict'
'--p2p'
'--json'
)
bios_get_opts=(
'--no-authenticate'
'--json'
'--verbose'
)
bios_set_opts=(
'--no-reboot-check'
'--json'
'--verbose'
)
modify_config_opts=(
'ArchiveSizeMax'
'AllowEmulation'
'ApprovedFirmware'
'BlockedFirmware'
'DisabledDevices'
'DisabledPlugins'
'EspLocation'
'EnumerateAllDevices'
'HostBkc'
'IdleTimeout'
'IgnorePower'
'OnlyTrusted'
'P2pPolicy'
'ReleaseDedupe'
'ReleasePriority'
'ShowDevicePrivate'
'TestDevices'
'TrustedReports'
'TrustedUids'
'UpdateMotd'
'UriSchemes'
'VerboseDomains'
)
_show_file_in_dir()
{
local files
files="$(ls 2>/dev/null)"
COMPREPLY+=( $(compgen -W "${files}" -- "$cur") )
}
_show_bios_get_modifiers()
{
COMPREPLY+=( $(compgen -W '${bios_get_opts[@]}' -- "$cur") )
}
_show_bios_set_modifiers()
{
COMPREPLY+=( $(compgen -W '${bios_set_opts[@]}' -- "$cur") )
}
_show_filters()
{
local flags
flags="$(command fwupdtool get-device-flags 2>/dev/null)"
COMPREPLY+=( $(compgen -W "${flags}" -- "$cur") )
}
_show_modifiers()
{
COMPREPLY+=( $(compgen -W '${_fwupdmgr_opts[@]}' -- "$cur") )
}
_show_bios_settings()
{
if ! command -v jq &> /dev/null; then
return 0
fi
local attr
attr="$(command fwupdmgr get-bios-setting --json --no-authenticate 2>/dev/null | jq '.BiosSettings | .[] | .Name')"
COMPREPLY+=( $(compgen -W "${attr}" -- "$cur") )
}
_show_bios_settings_possible()
{
if ! command -v jq &> /dev/null; then
return 0
fi
local attr
attr="$(command fwupdmgr get-bios-setting "$1" --json --no-authenticate 2>/dev/null | jq '.BiosSettings | .[] | .BiosSettingPossibleValues | .[]')"
COMPREPLY+=( $(compgen -W "${attr}" -- "$cur") )
}
_show_device_ids()
{
if ! command -v jq &> /dev/null; then
return 0
fi
local description
description="$(command fwupdmgr get-devices --json 2>/dev/null | jq '.Devices | .[] | .DeviceId')"
COMPREPLY+=( $(compgen -W "${description}" -- "$cur") )
}
_show_plugins()
{
if ! command -v jq &> /dev/null; then
return 0
fi
local plugins
plugins="$(command fwupdmgr get-plugins --json 2>/dev/null | jq '.Plugins | .[] | .Name')"
COMPREPLY+=( $(compgen -W "${plugins}" -- "$cur") )
}
_show_release_versions()
{
if ! command -v jq &> /dev/null; then
return 0
fi
local description
description="$(command fwupdmgr get-releases "$1" --json 2>/dev/null | jq '.Releases[].Version')"
COMPREPLY+=( $(compgen -W "${description}" -- "$cur") )
}
_show_modify_config()
{
COMPREPLY+=( $(compgen -W '${modify_config_opts[@]}' -- "$cur") )
}
_show_remotes()
{
local remotes
remotes="$(command fwupdmgr get-remotes | command awk '/Remote ID/ { print $4 }')"
COMPREPLY+=( $(compgen -W "${remotes}" -- "$cur") )
}
_fwupdmgr()
{
local cur prev command arg args
COMPREPLY=()
_get_comp_words_by_ref cur prev
_get_first_arg
_count_args
case $prev in
--filter)
_show_filters
return 0
;;
esac
case $arg in
activate|clear-results|downgrade|get-releases|get-results|unlock|verify|verify-update|get-updates|switch-branch|update|upgrade|report-export)
#device ID
if [[ "$args" = "2" ]]; then
_show_device_ids
fi
;;
get-bios-settings|get-bios-setting)
#bios settings (no limit)
_show_bios_settings
_show_bios_get_modifiers
return 0
;;
set-bios-setting)
if [[ "$prev" = "--json" ]]; then
_show_file_in_dir "$prev"
return 0
fi
count=$(($((args)) % 2))
#allow setting a single bios setting at a time
if [[ $count == 0 ]]; then
_show_bios_settings
fi
#possible values (only works for enumeration though)
if [[ $count == 1 ]]; then
_show_bios_settings_possible "$prev"
return 0
fi
_show_bios_set_modifiers
return 0
;;
get-plugins)
return 0
;;
get-details)
#find files
if [[ "$args" = "2" ]]; then
_filedir
fi
;;
device-test)
#find files
if [[ "$args" = "2" ]]; then
_filedir
fi
;;
install)
#device ID
if [[ "$args" = "2" ]]; then
_show_device_ids
#version
elif [[ "$args" = "3" ]]; then
_show_release_versions "$prev"
fi
;;
local-install)
#find files
if [[ "$args" = "2" ]]; then
_filedir
#device ID or modifiers
elif [[ "$args" = "3" ]]; then
_show_device_ids
_show_modifiers
fi
;;
modify-remote)
#find remotes
if [[ "$args" = "2" ]]; then
_show_remotes
#add key
elif [[ "$args" = "3" ]]; then
local keys
keys="$(command fwupdmgr get-remotes | command awk -v pattern="Remote ID:.*${prev}$" '$0~pattern{show=1; next}/Remote/{show=0}{gsub(/:.*/,"")}show')"
COMPREPLY+=( $(compgen -W "${keys}" -- "$cur") )
fi
;;
enable-remote)
#find remotes
if [[ "$args" = "2" ]]; then
_show_remotes
fi
;;
disable-remote)
#find remotes
if [[ "$args" = "2" ]]; then
_show_remotes
fi
;;
modify-config)
if [[ "$args" = "2" ]]; then
_show_modify_config
return 0
elif [[ "$args" = "3" ]]; then
case $prev in
AllowEmulation|EnumerateAllDevices|OnlyTrusted|IgnorePower|UpdateMotd|ShowDevicePrivate|ReleaseDedupe|TestDevices)
COMPREPLY=( $(compgen -W "True False" -- "$cur") )
;;
ReleasePriority)
COMPREPLY=( $(compgen -W "local remote" -- "$cur") )
;;
UriSchemes)
COMPREPLY=( $(compgen -W "file https http ipfs file;https;http;ipfs file;https;http https;http" -- "$cur") )
;;
P2pPolicy)
COMPREPLY=( $(compgen -W "none metadata firmware metadata,firmware" -- "$cur") )
;;
IdleTimeout|ArchiveSizeMax|HostBkc|TrustedUids)
;;
ApprovedFirmware|BlockedFirmware)
;;
DisabledDevices)
_show_device_ids
;;
DisabledPlugins)
_show_plugins
;;
EspLocation)
;;
TrustedReports)
;;
VerboseDomains)
;;
esac
return 0;
fi
;;
refresh)
#find first file
if [[ "$args" = "2" ]]; then
_filedir
#find second file
elif [[ "$args" = "3" ]]; then
_filedir
#find remote ID
elif [[ "$args" = "4" ]]; then
_show_remotes
fi
;;
*)
#find first command
if [[ "$args" = "1" ]]; then
COMPREPLY=( $(compgen -W '${_fwupdmgr_cmd_list[@]}' -- "$cur") )
fi
;;
esac
#modifiers
_show_modifiers
return 0
}
complete -F _fwupdmgr fwupdmgr
Mr. DellatioNx196 GaLers xh3LL Backd00r 1.0, Coded By Mr. DellatioNx196 - Bogor BlackHat