Live data from Hacker News

Airpass – Easily overcome WiFi time limits

airpass.tiagoalves.me

41–50 of 278 posts

Re: Airpass – Easily overcome WiFi time limits

#41
post #29
post #9

Earlier quoted context omitted.

Why does a Mac-only app that shows a menu bar icon and a notification popup need to be Electron…? That’s 30 lines of Swift, max.

If you want a frontend for you app, you probably just use Electron and get it over with in a few minutes instead of digging through the docs for Qt or some other framework. Is it worth it? Probably not, since this is a single-platform app to start with, but JS+HTML are easy to theme and customize, and Qt is... not quite as simple.

Where did you get Qt from? This is, again, a Mac-only app that doesn’t even have any windows. It’s just a menu bar icon and a notification. That’s incredibly simple to build with plain old Cocoa and Swift.

Re: Airpass – Easily overcome WiFi time limits

#42
Here's an equivalent little script for Debian Linux (but should work on most distros), based on classhasclass's comment:

  NEW_MAC=$(printf '02:%02x:%02x:%02x:%02x:%02x\n' $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)))

  sudo ip link set wlan0 down

  sudo ip link set wlan0 address "$NEW_MAC"

  sudo ip link set wlan0 up
You should replace `wlan0` with whatever you see in `ip link show` for your wireless interface, for me it is `wlp0s20f3`. I replaced the `openssl rand` command because it was generating some invalid MACs; this is hopefully only valid ones.

Re: Airpass – Easily overcome WiFi time limits

#43

Alternatively, if you don't want to run the whole Electron app, the money is this line: sudo.exec("/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 -z && ifconfig en0 ether `openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'`",

200 bytes for the business logic.

47MB for the UI & boilerplate around the business logic.

I get that this may be the easiest way to develop and publish an application today, but it's sad that this is the direction we have taken in recent years.

Re: Airpass – Easily overcome WiFi time limits

#45
post #37
post #12

Alternatively, disconnect from the wifi, use this command and reconnect: sudo ifconfig en0 ether 02:11:22:33:44:55 Just ran into this on icelandair.

That’ll buy you one new turn of the crank; you’ll need to change numbers once every expiration period.

Pretty sure the electron app has the same limitation (popover notification says “join the network again for free wifi”, besides you wouldn’t be able to change the mac address if the network interface were actively in use)

Re: Airpass – Easily overcome WiFi time limits

#46
post #43

Alternatively, if you don't want to run the whole Electron app, the money is this line: sudo.exec("/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 -z && ifconfig en0 ether `openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'`",

200 bytes for the business logic. 47MB for the UI & boilerplate around the business logic. I get that this may be the easiest way to develop and publish an application today, but it's sad that this is the direction we have taken in recent years.

Modern app bloat in one analogy:

Business logic size: ~20 bytes Total app size: ~47 MB = 47,000,000 bytes

Bloat factor: 47,000,000 / 20 = 2,350,000

Let’s scale this up and say the business logic is 1 pound.

Then the whole app would weigh: 1 lb × 2,350,000 = 2,350,000 pounds

What weighs ~2.35 million pounds?

   - A fully loaded Boeing 747-8: ~987,000 lbs  
   - Another fully loaded 747-8: ~987,000 lbs  
   - A blue whale: ~330,000 lbs  
TOTAL: ~2,304,000 lbs

The business logic is like shipping a 1 lb object (a book, a flash drive, whatever) by loading it into two fully loaded 747s and strapping a blue whale on top.

Just to run 20 bytes of logic.

Re: Airpass – Easily overcome WiFi time limits

#47
post #9

Alternatively, if you don't want to run the whole Electron app, the money is this line: sudo.exec("/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 -z && ifconfig en0 ether `openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'`",

Why does a Mac-only app that shows a menu bar icon and a notification popup need to be Electron…? That’s 30 lines of Swift, max.

Electron is an overkill way to not have to learn how to do stuff properly, if you ask me. And people love not to learn.

Re: Airpass – Easily overcome WiFi time limits

#48

Alternatively, if you don't want to run the whole Electron app, the money is this line: sudo.exec("/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 -z && ifconfig en0 ether `openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'`",

And you could ask an LLM to whip up the Swift code or whatever to wrap this line into a Dock app etc., if you want that convenience.

Re: Airpass – Easily overcome WiFi time limits

#49

This has been an option in Android network settings forever: randomize your MAC. I think it's enabled by default now? It's a basic privacy feature; you can be fingerprinted by your device's MAC.

No, this setting randomizes your MAC address between networks, but you keep the same MAC for a specific network. So if you want the network to think you're a new user, you'll need to change this specific network MAC address, and this isn't a setting enabled by default (and oftentimes is not even a setting)

GrapheneOS has per-connection (as an alternative to per-network) randomization which is enabled by default

Re: Airpass – Easily overcome WiFi time limits

#50

Earlier quoted context omitted.

Now that you can build such an app with AI in under 20 minutes with a manageable codebase you can properly understand and control, I don't think that's a good excuse anymore

If you don't know the language, how can you properly understand and control it?

In 2025 you unfortunately just vibe with the code nowadays.
Post reply on HN