How to repurpose your old phone's GPS modem into a web server

Hacker turns a phone’s GPS into a web server — cheers, fears, and memes

TLDR: A PinePhone hacker ran a tiny website from the phone’s GPS/cell modem by unlocking it with a common Android tool. The crowd is split between “brilliant hack” and “please don’t host on a 2016 kernel,” with some pushing open firmware fixes and others cracking jokes about techno-mitochondria.

File this under “because we can”: a PinePhone tinkerer unlocked the tiny GPS/cell modem inside the phone and ran a blog on it. The kicker? That little modem is a separate mini-computer running its own Linux from way back—think 2016-ish. Cue the crowd going, wait, what?! Some are clapping at the audacity and DIY spirit; others are clutching their firewalls. One commenter even linked their past attempt and a spicy postmortem, signaling this is not the first wild ride in modem-land.

The applause is loud for the sheer cleverness: using Android Debug Bridge (aka ADB, the tool people use to poke Android phones) to pop open a root shell on the modem, then pushing a tiny web server and port-forwarding traffic. It worked! About 10 megabits per second—not fast, but pretty hilarious. But the pushback is real: the modem’s Linux is old, and one user warned that hosting anything on it could be risky. Another pointed to efforts to fully replace the modem’s software with open firmware (link), which could fix the ancient-kernel cringe.

And the memes? Chef’s kiss. Someone compared the modem to a tech mitochondrion—an alien lifeform living inside your phone. It’s weird, it works, and the comments are the show.

Key Points

  • The PinePhone’s Quectel EG25-G modem exposes an ADB key, allowing adbd to be enabled via AT commands.
  • After enabling adbd, the modem appears as an adb device and provides a root shell into its separate Linux 3.18.44 OS.
  • A lightweight static web server (darkhttpd) was cross-compiled for ARMv7 with musl and deployed to the modem’s /usrdata partition (~50 MB).
  • HTTP port on the modem was forwarded with adb and exposed externally using sysctl route_localnet and an iptables DNAT rule.
  • Throughput over ADB port forwarding measured with iperf was about 11.4 Mbit/s.

Hottest takes

“Isn’t such an old kernel dangerous for hosting though?” — Havoc
“There was also work to replace the modem OS wholesale:” — yjftsjthsd-h
“Symbiogenesis is 100% true for computers huh” — 01HNNWZ0MV43FF
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.