[script] MAC randomiser

Hi :wave:

After some posts with asking how to randomise MAC I decided to write this script.

You can read more about why do you need it here

WARNING

This is TEMPORARY solution until official feature will roll out
After official release it is NOT recommended to use this script, and I think you will have to consider switching to official one.

Copyright:
You are free to use/edit/share script, but always put link to this thread and/or GitHub page

GitHub page

Here

Script

Not to overflood thread it is hidden under spoiler:

Script
#!/bin/sh /etc/rc.common

START=99

start() {
    random_mac() {
        loc_mac_numgen=$(od -An -N2 -tx1 /dev/urandom | tr -dc '0123456789abcdef' | fold -w 12 | head -n 1)
        loc_mac_formatted=$(echo "$loc_mac_numgen" | awk '{printf "%s:%s:%s:%s:%s:%s", substr($0,1,2),substr($0,3,2),substr($0,5,2),substr($0,7,2),substr($0,9,2),substr($0,11,2)}')
        echo "$loc_mac_formatted"
    }

    bssid_gen() {
        uci set wireless.@wifi-iface[1].macaddr="$(random_mac)"
        uci set wireless.@wifi-iface[0].macaddr="$(random_mac)"
        uci commit wireless
        wifi
    }

    mac_gen() {
        uci set network.@device[1].macaddr="$(random_mac)"
        uci set glconfig.general.macclone_addr="$(random_mac)"
        uci commit network
        /etc/init.d/network restart
    }

    bssid_gen
    mac_gen
}

How to use it?

  1. Put it into
 /etc/init.d/
  1. Make executable
chmod +x /etc/init.d/mac_randomiser.sh
  1. Enable
/etc/init.d/mac_randomiser.sh enable
3 Likes