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

8

Dada la mayor prevalencia de sistemas que rastrean los movimientos de las personas por sus direcciones Mac, me gustaría ocultar los míos.

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 deshabilito y vuelvo a habilitar mi conexión inalámbrica, o si reinicio mi teléfono, se olvida. ¿Hay algún lugar donde pueda poner un script para que se ejecute cada vez que se enciende mi conexión inalámbrica?

mc0e
fuente
Pruébalo en Pry

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

Peter
fuente
Intenté Pry-Fi. A pesar de que mi teléfono aparece como probado, causó que el wifi se volviera completamente inutilizable. Ni siquiera podía ver ninguna red para conectarme. Tuve que desinstalar para obtener acceso a mi red doméstica nuevamente.
mc0e
3

Puede hacerlo utilizando, por ejemplo , Tasker , la poderosa herramienta de automatización:

  • Condición: Monitor Start (es decir, Tasker se inició; alternativamente: Device Boot , es decir, el proceso de inicio finalizó)
  • Tarea: Ejecutar 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 ...

Izzy
fuente
¿Se dispararía esto como parte del proceso de conexión en línea o poco después? Si es posible, me gustaría no transmitir el MAC del hardware.
mc0e
Esto se dispararía donde lo definió, como se describe: el inicio del monitor es cuando se activa Tasker , que generalmente es inmediatamente después del inicio (o cuando inicia / reinicia Tasker o activa su servicio de monitoreo manualmente). Si usa el arranque del dispositivo como condición, solo se "disparará" después del arranque, pero no cuando inicie / 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.
Izzy
La activación tendría que rastrearse cuando wi-fi esté activado y cambiar el MAC antes de que se difundan los paquetes. No estoy tan seguro de que se pueda confiar en eso, pero tal vez me equivoque.
mc0e
@ mc0e Si tiene dudas sobre eso, añadir un segundo perfil con una condición diferente (algo que desencadena sobre cambios en la red), y aplicar la misma tarea a él :)
Izzy
2

Además de la otra respuesta con Tasker ("Podría hacerlo 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 propia mac.

Puedo ver el nuevo mac con este comando:

busybox iplink show wlan0

Después de reiniciar, el viejo mac se reinicia.

franco
fuente
1

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

t0mm13b
fuente
-2

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

Blanco
fuente
1
Esto no es útil; ¿Qué pondría OP en el guión? ¿A dónde iría?
Maní
1
Esto es realmente una repetición de cosas que he presentado en la pregunta original. No tengo ningún problema para escribir un script, pero no sé a dónde debería ir para que se active cada vez que mi teléfono se conecta.
mc0e
Además, eso requeriría modificar la imagen de arranque; los guiones de inicio son parte de eso. Cualquier modificación de los archivos init en el "sistema de archivos montado" se perderá después del arranque (ver, por ejemplo, initrd @ Wikipedia para más detalles).
Izzy
Si consigo una manera de configurar la dirección MAC que sobrevive al NIC subiendo y bajando, eso es un paso adelante, incluso si tengo que modificar el script después de cada reinicio del teléfono. Especialmente si significa que la dirección MAC se configura antes de que se transmita cualquier paquete cada vez que el enlace wifi se activa.
mc0e