Cuando te conectas a una red WiFi/3G tu dispositivo Android te dice si tienes acceso a internet (Aparece una x en el símbolo de WiFi/4G y si no tienes te manda una notificación), pero ¿como lo sabe? simplemente busca un archivo en los servidores de google, pide un archivo por http (Ya que http es manipulable por tu ISP) y si el archivo es modificado en el camino tu dispositivo sabe que no tienes internet.
Es algo poco, pero mientras menos data para google mejor.
Lo primero
Debes instalar adb y los drivers para tu dispositivo (Puede que no necesites los drivers)
Para instalar adb en distros basadas en Arch (Manjaro, Parabola OS) usa sudo pacman -Su android-tools
y para distros basadas en Debian (Trisquel, Ubuntu) sudo apt update && apt install adb
La terminal
Poné adb start-server
y el server arranca :3
Ve a las configuraciones de tu dispositivo luego en opciones para programadores activar la depuración en Android por adb
Conecta por usb el celular a tu computadora y autoriza
Para verificar pon sudo adb get-state
si aparece un device
todo salio bien :3
Ahora pone adb shell
se abrirá una shell y aquí te dejo los comandos a usar
¿Quieres deshabilitar esa función? usa este comando
settings put global captive_portal_mode 0
¿Quieres habilitar esa función? usa este comando
settings put global captive_portal_mode 1
¿Quieres que cuando se detecte un portal cautivo, tu dispositivo se desconecte de la red?
settings put global captive_portal_mode 2
¿Quieres cambiar el detector? usa estos comandos (Se cambiara por el que provee Firefox, el cual se usa en Firefox y navegadores derivados)
settings put global captive_portal_http_url http://detectportal.firefox.com
settings put global captive_portal_https_url https://detectportal.firefox.com
settings put global captive_portal_fallback_url http://detectportal.firefox.com
settings put global captive_portal_other_fallback_urls http://detectportal.firefox.com
Para verificar los parámetros usa estos comandos
settings get global captive_portal_mode
settings get global captive_portal_http_url
settings get global captive_portal_https_url
settings get global captive_portal_fallback_url
settings get global captive_portal_other_fallback_urls
Estas son las url que usa google en Android, por si quieres meterlas en un archivo hosts de tu router :3
http://connectivitycheck.gstatic.com/generate_204 http://clients3.google.com/generate_204
Menos data para google!
Ahora con estos comandos se podrá cambiar el servidor NTP de Android (time.android.com que mantiene google) se cambiara por pool.ntp.org (que es mantenido por una comunidad)
Dentro de la shell de adb pone
settings get global ntp_server
(Me aparece null
)
Ahora para cambiarlo pone
settings put global ntp_server pool.ntp.org
Y listo, para comprobarlo podes usar el penúltimo comando :3
Ahora, puedes usar otro server, ubicado en otra parte o cualquier otro server, incluso uno dentro de tu zona/casa
Palabras finales
En estos momentos en varias partes del mundo la gente esta protestando por el hambre y violencia estatal, cosa que me alegra mucho, mis condolencias y respeto a toda la gente que salio y a lxs otrxs que no podrán volver.