xfinity hotspots offer a complimentary 1-hour complimentary pass, restricted to one per device and per month. This tool automates the process of getting a pass and activating it every hour (headless browser):
- changing the MAC address
- going to the captive portal page
- creating an account
- activating the pass
First, download and install Chrome and chromedriver. For debian: sudo apt install chromium-chromedriver
Then:
git clone https://github.com/milesial/xfinity-refresh
cd xfinity-refresh
pip install .
xfinity-refresh <wifi_interface>
Example:
xfinity-refresh wlan0
✔ Device wlan0 disconnected
✔ Changed MAC address to 02:0C:29:10:F8:4E
✔ Device wlan0 connected
✔ Pass activated on Fri Mar 13 14:30:29 2020
To run only once and not every hour, pass --once
.
For this mode you need to have two devices that each have a wifi interface and a way to communicate to each other (a raspberry pi and your laptop for example).
The server (raspberry pi) runs a process that periodically fetches and activates a pass linked to a MAC address. Once activated, the MAC address is sent to the client (laptop) via a TCP connection. When the client's current pass will soon end and it receives an activated MAC address, the client will change the MAC address of its interface to the one it received, thus gaining internet access.
Here, wlan0
is the interface on the server.
xfinity-refresh-server wlan0
Here, wlan0
is the interface on the client.
xfinity-refresh-client wlan0 --host <ip_of_server>
You can specify a specific port with --port
You can find the APK in the release section.
no. You have a 0.47% chance of having a collision during a given month if you let this tool run 24/7.