Wie kann ich meine MAC-Adresse jedes Mal randomisieren, wenn mein WLAN eingeschaltet wird?

Angesichts der zunehmenden Verbreitung von Systemen, die die Bewegungen von Menschen anhand ihrer Mac-Adressen verfolgen, möchte ich meine verschleiern.

Ich habe ein gerootetes Galaxy Note 2 mit installierter Busybox. Ich kann meine MAC-Adresse wie folgt ändern:

busybox ifconfig wlan0 hw ether 11:22:33:44:55:66

Wenn ich jedoch mein WLAN deaktiviere und wieder aktiviere oder mein Telefon neu starte, wird es vergessen. Kann ich irgendwo ein Skript einfügen, damit es jedes Mal ausgeführt wird, wenn sich mein WLAN einschaltet?

Probieren Sie Pry-Fi aus

Antworten (6)

Wie wäre es mit Chainfires Tool Pry-Fi, das auf der XDA angekündigt wurde ?
Es funktioniert hervorragend und ist über den offiziellen Google Play-Store erhältlich unter:

Hier ist ein Screenshot, der das Tool in Aktion zeigt…

Screenshot von Chainfires Tool Pry-Fi

Ich habe Pry-Fi ausprobiert. Obwohl mein Telefon als getestet aufgeführt wurde, führte dies dazu, dass Wi-Fi völlig unbrauchbar wurde. Ich konnte nicht einmal Netzwerke sehen, mit denen ich mich verbinden könnte. Ich musste deinstallieren, um wieder Zugriff auf mein Heimnetzwerk zu erhalten.

Sie könnten das zB mit Tasker , dem mächtigen Automatisierungstool, tun :

  • Bedingung: Monitor Start (dh Tasker wurde gestartet; alternativ: Device Boot , dh Bootvorgang beendet)
  • Aufgabe: Führen Sie Shell mit Ihrem Befehl als Parameter aus

Wenn Sie es ausgefallener mögen, können Sie sogar Variable Randomize verwenden , um jedes Mal einen anderen MAC zu generieren ...

Würde dies im Rahmen des Onlinegangs oder kurz danach ausgelöst werden? Wenn möglich, möchte ich den MAC der Hardware überhaupt nicht übertragen.
Dies würde dort auslösen, wo Sie es wie beschrieben definiert haben: Der Monitorstart erfolgt, wenn Tasker aktiviert wird, was normalerweise unmittelbar nach dem Booten erfolgt (oder wenn Sie Tasker starten/neu starten oder seinen Überwachungsdienst manuell aktivieren). Wenn Sie Device Boot als Bedingung verwenden, wird es nur nach dem Booten "ausgelöst", aber nicht, wenn Sie den Tasker - Monitor manuell starten/neu starten . In beiden Fällen würde es also sofort nach dem Booten angewendet. Ob die Netzwerkinitialisierung eventuell schneller geht, kann ich nicht sagen.
Die Aktivierung müsste nachverfolgen, wann Wi-Fi eingeschaltet ist, und den MAC ändern, bevor Pakete gesendet werden. Ich bin mir nicht so sicher, dass man sich darauf verlassen könnte, aber vielleicht irre ich mich.
@mc0e Wenn Sie diesbezüglich Zweifel haben, fügen Sie ein zweites Profil mit einer anderen Bedingung hinzu (etwas, das bei Netzwerkänderungen ausgelöst wird) und wenden Sie dieselbe Aufgabe darauf an :)

Zusätzlich zu der anderen Antwort mit Tasker ("Sie könnten das zB mit Tasker, dem mächtigen Automatisierungstool:") machen, hier ein kleiner Task (Beschreibungsexport) mit Randomisierung des MAC:

TestMacChanger (130)
    A1: Variable Set [ Name:%count To:0 Do Maths:On Append:Off ] 
    <randomstart>
    A2: Variable Randomize [ Name:%random Min:0 Max:15 ] 
    A3: Variable Convert [ Name:%random Function:Decimal to Hex Store Result In:%rhex ] 
    A4: Test Variable [ Type:Length Data:%rhex Store Result In:%len ] 
    A5: Variable Set [ Name:%rhex To:0%rhex Do Maths:Off Append:Off ] If [ %len eq 1 ]
    A6: Variable Convert [ Name:%rhex Function:To Upper Case Store Result In: ] 
    A7: Variable Set [ Name:%mac To:%mac:%rhex Do Maths:Off Append:Off ] If [ %mac Set ]
    A8: Variable Set [ Name:%mac To:%rhex Do Maths:Off Append:Off ] If [ %mac !Set ]
    A9: Variable Add [ Name:%count Value:1 Wrap Around:0 ] 
    <randomend>
    A10: Goto [ Type:Action Label Number:1 Label:randomstart ] If [ %count < 6 ]
    A11: Variable Set [ Name:%mac To:00:11:22:33:44:55 Do Maths:Off Append:Off ] If [ %mac !Set ]
    A12: Flash [ Text:%mac Long:On ] 
    A13: Run Shell [ Command:su
busybox ifconfig wlan0 hw ether %mac Timeout (Seconds):0 Use Root:On Store Output In:%output Store Errors In:%error Store Result In: Continue Task After Error:On ] 
    A14: Flash [ Text:%error Long:Off ] If [ %error Set ]

Dies führt eine Schleife für 6 zufällige Hex-Werte aus, um einen zufälligen Mac wie zB 01:4F:89:BA:3F:0C zu erhalten. Dann wird dieser zufällige Mac als eigener Mac festgelegt.

Ich kann den neuen Mac mit diesem Befehl sehen:

busybox iplink show wlan0

Nach einem Neustart wird der alte Mac zurückgesetzt.

Verwenden Sie die App von Chainfire namens Pry-Wifi , die genau das tut.

Im weiteren Verlauf habe ich ein neues Telefon (ein Pixel 5a), das über eine solche integrierte Option verfügt, aber das ist für Entwickler.

Zuerst musste ich die Entwicklerfunktion aktivieren ( siehe hier für das Original ):

  • Öffnen Sie Einstellungen » Über das Telefon
  • Klicken Sie 7 Mal auf Build-Nummer

Als nächstes ging ich zur Entwicklerfunktion (Sie können die Suchfunktion verwenden, wenn Sie ein etwas anderes Telefon haben):

  • Öffnen Sie Einstellungen » System » Erweitert » Entwickleroptionen
  • Scrollen Sie nach unten zu „Wi-Fi-enhanced MAC randomization“ und aktivieren Sie es

Wie Sie wahrscheinlich wissen, wird standardmäßig einmal pro Netzwerk eine zufällige MAC-Adresse generiert , eine Adresse, die ein für alle Mal gespeichert wird, es sei denn, Sie ändern das obige Flag. Wenn Sie also verschiedene WLAN-Netzwerke verwenden, wird standardmäßig zumindest für jeden Verbindungspunkt ein anderer MAC verwendet.

Vielen Dank. source.android.com/devices/tech/connect/wifi-mac-randomization hat weitere Informationen dazu.

Ich habe das Gefühl, dass dies mit einem Bash-Skript oder dem Bearbeiten der Init-Datei erfolgen könnte, um den Befehl einzufügen, den Sie hier haben.

Das ist nicht hilfreich; Was würde OP in das Skript einfügen? Wo würde es hingehen?
Dies ist wirklich eine Wiederholung von Dingen, die ich in der ursprünglichen Frage vorgebracht habe. Ich habe kein Problem damit, ein Skript zu schreiben, aber ich weiß nicht, wohin es gehen müsste, um jedes Mal ausgelöst zu werden, wenn mein Telefon online geht.
Außerdem müsste dazu das Boot-Image geändert werden; Init-Skripte sind ein Teil davon. Alle Änderungen an Init-Dateien im "gemounteten Dateisystem" gehen nach dem Booten verloren (siehe zB initrd @ Wikipedia für Details).
Wenn ich eine Möglichkeit bekomme, die MAC-Adresse festzulegen, die das Auf- und Absteigen der NIC überlebt, ist das ein Schritt nach vorne, selbst wenn ich das Skript nach jedem Neustart des Telefons ändern muss. Dies gilt insbesondere, wenn die MAC-Adresse jedes Mal festgelegt wird, bevor Pakete gesendet werden, wenn die WLAN-Verbindung hergestellt wird.