¿Cómo puedo aleatorizar mi dirección MAC cada vez que se enciende mi WiFi?

Dada la creciente prevalencia de los sistemas que rastrean los movimientos de las personas por sus direcciones Mac, me gustaría oscurecer el mío.

Tengo un galaxy note 2 rooteado con busybox instalado. Puedo cambiar mi dirección MAC así:

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

sin embargo, si desactivo y vuelvo a activar mi conexión inalámbrica, o reinicio mi teléfono, se olvida. ¿Hay algún lugar donde pueda poner un script para que se ejecute cada vez que se encienda mi conexión inalámbrica?

Dale una oportunidad a pry-fi

Respuestas (6)

¿Qué hay de la herramienta Pry-Fi de Chainfire que se anunció en XDA ?
Funciona muy bien y está disponible a través de la tienda oficial de Google Play en:

Aquí hay una captura de pantalla que muestra la herramienta en acción...

captura de pantalla de la herramienta Pry-Fi de Chainfire

Probé Pry-Fi. A pesar de que mi teléfono figuraba como probado, provocó que el wi-fi quedara completamente inutilizable. Ni siquiera pude ver ninguna red a la que conectarme. Tuve que desinstalar para volver a tener acceso a mi red doméstica.

Podrías hacerlo usando, por ejemplo , Tasker , la poderosa herramienta de automatización:

  • Condición: Inicio del monitor (es decir, se inició Tasker; alternativamente: Inicio del dispositivo , es decir, finalizó el proceso de inicio)
  • Tarea: Ejecute Shell , con su comando como parámetro

Si te gusta más elegante, incluso podrías usar Variable Randomize para generar un MAC diferente cada vez...

¿Se desencadenaría esto como parte del proceso de conectarse en línea o poco después? Si es posible, me gustaría no transmitir la MAC del hardware en absoluto.
Esto se activaría donde lo definió, como se describe: el inicio del Monitor es cuando se activa Tasker , que suele ser inmediatamente después del arranque (o cuando inicia/reinicia Tasker , o activa su servicio de Monitoreo manualmente). Si usa Device Boot como condición, solo se "activará" después del arranque, pero no cuando inicie o reinicie el monitor Tasker manualmente. Entonces, en ambos casos, se aplicaría inmediatamente después del arranque. No puedo decir si la inicialización de la red podría ser más rápida.
La activación tendría que rastrear cuándo se enciende el wi-fi y cambiar el MAC antes de que se transmita cualquier paquete. No estoy tan seguro de que se pueda confiar en eso, pero tal vez me equivoque.
@mc0e Si tiene dudas al respecto, agregue un segundo perfil con una condición diferente (algo que se active con los cambios en la red) y aplíquele la misma tarea :)

Además de la otra respuesta con Tasker ("Podrías hacer eso usando, por ejemplo, Tasker, la poderosa herramienta de automatización:"), aquí una pequeña tarea (exportación de descripción) con aleatorización del 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 ]

Esto está haciendo un bucle para 6 valores hexadecimales aleatorios para obtener una mac aleatoria como, por ejemplo, 01: 4F: 89: BA: 3F: 0C. Luego está configurando esta mac aleatoria como mac propia.

Puedo ver el nuevo mac con este comando:

busybox iplink show wlan0

Después de un reinicio, se reinicia el antiguo mac.

Use la aplicación de Chainfire llamada Pry-Wifi que hace exactamente eso.

A medida que avanzan las cosas, tengo un nuevo teléfono (un Pixel 5a), que tiene una opción integrada, pero eso es para desarrolladores.

Primero tuve que habilitar la función de desarrollador ( ver aquí para el original ):

  • Abra Configuración » Acerca del teléfono
  • Haga clic en Número de compilación 7 veces

A continuación, fui a la función Desarrollador (puede usar la función de búsqueda si tiene un teléfono ligeramente diferente):

  • Abra Configuración » Sistema » Avanzado » Opciones de desarrollador
  • Desplácese hacia abajo hasta "Aleatorización de MAC mejorada por Wi-Fi" y habilite

Como probablemente sepa, el valor predeterminado es generar una dirección MAC aleatoria una vez por red , dirección que se guarda de una vez por todas a menos que cambie el indicador anterior. Entonces, con el valor predeterminado, si usa diferentes redes WiFi, al menos usará una MAC diferente para cada punto de conexión.

Gracias. source.android.com/devices/tech/connect/wifi-mac-randomization tiene más información sobre esto.

Siento que esto podría hacerse con un script bash o editando el archivo de inicio para incluir el comando que tiene aquí.

Esto no es útil; ¿Qué pondría OP en el guión? ¿Adónde iría?
Esto es realmente una repetición de cosas que he presentado en la pregunta original. No tengo problemas para escribir un script, pero no sé a dónde tendría que ir para que se active cada vez que mi teléfono se conecte.
Además, eso requeriría modificar la imagen de arranque; scripts de inicio son parte de eso. Cualquier modificación de los archivos de inicio en el "sistema de archivos montado" se perderá después del arranque (ver, por ejemplo, initrd @ Wikipedia para más detalles).
Si obtengo una forma de establecer la dirección MAC que sobrevive a la NIC que sube y baja, eso es un paso adelante, incluso si tengo que modificar la secuencia de comandos después de cada reinicio del teléfono. Especialmente si significa que la dirección MAC se establece antes de que se transmita cualquier paquete cada vez que se activa el enlace wifi.