Skip to content

Instantly share code, notes, and snippets.

@beatcracker
Last active February 2, 2020 18:19
Show Gist options
  • Save beatcracker/2950af91c5a619090134 to your computer and use it in GitHub Desktop.
Save beatcracker/2950af91c5a619090134 to your computer and use it in GitHub Desktop.
MTK WiFi MAC address randomizer
#!/system/bin/sh
# MTK WiFi MAC address randomizer
# BLITZ Y2K+14
# REQ: root, busybox, MTK device
# HOWTO: copy to /data or /system, use chmod 755
# Uncomment to view debug output
# set -xv
show_help()
{
echo Valid arguments are:
echo "-randomize Make backup and randomize WiFi MAC address"
echo "-backup Make backup only"
echo "-restore Restore backup"
}
if [ $# -eq 0 ]
then
echo No arguments specified!
show_help
exit
fi
WIFI_MAC_FILE=/data/nvram/APCFG/APRDEB/WIFI
BACKUP_FILE=$WIFI_MAC_FILE.bak
check_mtk()
{
if ! ls $WIFI_MAC_FILE &> /dev/null
then
echo WiFi MAC file not found, probably not MTK device, exiting
exit
fi
}
backup_mac()
{
if ! ls $BACKUP_FILE &> /dev/null
then
echo Created backup
busybox cp -p $WIFI_MAC_FILE $BACKUP_FILE
else
echo Backup already exists
fi
}
get_wifi_status()
{
WIFI_STATUS=`getprop wlan.driver.status`
if [ x$WIFI_STATUS == "xok" ]
then
return 0
else
return 1
fi
}
toggle_wifi()
{
case "$1" in
0)
if get_wifi_status
then
echo Disabling WiFi
svc wifi disable
RE_ENABLE_WIFI=true
else
echo WiFi already disabled
fi
;;
1)
echo Enabling WiFi
svc wifi enable
;;
esac
}
case "$1" in
'-backup')
check_mtk
backup_mac
echo Exiting
exit
;;
'-restore')
if ! ls $BACKUP_FILE &> /dev/null
then
echo Backup not found, cant restore, exiting
exit
else
toggle_wifi 0
echo Deleting WiFi MAC file
rm $WIFI_MAC_FILE
echo Restoring WiFi MAC file from backup
busybox cp -p $BACKUP_FILE $WIFI_MAC_FILE
fi
;;
'-randomize')
check_mtk
backup_mac
toggle_wifi 0
echo Randomizing MAC
busybox dd if=/dev/urandom of=$WIFI_MAC_FILE seek=7 bs=1 count=3 conv=notrunc 2> /dev/null
chmod 440 $WIFI_MAC_FILE
;;
*)
echo Unrecognized command, exiting
show_help
exit
;;
esac
if [ x$RE_ENABLE_WIFI == "xtrue" ]
then
toggle_wifi 1
fi
echo All done, exiting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment