RG35XX Unchained
A $60 retro handheld that stands in for your phone. Radio, podcasts, YouTube, Bluetooth headphones, an alarm and a lock screen, all without reflashing it.
- Part no.
- A93-02
- Status
- working
- Platform
- Embedded Linux · Allwinner H700
- Year
- 2026
- Stack
- PythonPySDL2mpvyt-dlpBlueZTailscaleC kernel modulessystemd
Phones are the most distracting thing we own, yet most of what I actually use one for in a day is listening to the radio, a podcast or a YouTube video, plus an alarm. A $60 retro handheld already has a screen, speakers, Wi-Fi and Bluetooth, but out of the box it only plays games, and Anbernic's 2026 firmware broke the community's tricks for getting root.
Replace the phone in a retro form factor. Keep the stock firmware (nothing to flash, nothing to brick) and add what a phone gives you: live radio and podcasts, YouTube with your own subscriptions, Bluetooth headphones with a working mic, a lock screen with now-playing, an alarm clock, and secure access from anywhere. Everything installs by copying files onto the SD card and can be removed again.
Not a business. It’s a question: how much of a phone do you need? The answer is a $60 games handheld and some evenings.
- Handheld≈ $60
- +SD card≈ $10
- +Radio, podcasts, YouTubefree
- +Bluetooth headphonesalready owned
- =Pocket media device≈ $70
- −vs a basic smartphone≈ $150+
- =Notifications, feeds, doom-scrollingnone
- Infrastructure
- €0
- Tailscale (personal)
- free
- Real cost
- evenings + support questions
It spreads through GitHub and forum posts, one SD card at a time. More users means more device and firmware variants, so everything stays removable and the known traps are written down rather than turned into a support desk.
A real dumb-phone alternative for listening and watching, plus your games. Best as an open project; at most a tip jar.
- 01Lock screenPower key locks like a phone: time, what’s playing, play/pause. It dozes but keeps playing.
- 02Radio & podcastsBBC stations plus radio-browser.info, and podcasts with downloads for offline listening.
- 03YouTubeSearch, 209 imported subscriptions, history with resume, and audio-only Listen mode.
- 04Bluetooth audioHeadphones, game audio and the headset mic, recovered automatically after sleep.
- 05TailscaleReachable from anywhere over SSH, with exit nodes picked in the UI.
- 06USB-CPlug into a Mac for SSH over the cable, or mount the SD card as a drive.









YouTube on a $60 handheld
yt-dlp (a standalone arm64 build, updatable from the device) finds H.264 streams that the chip can decode in software: 360p at 25 fps with no dropped frames. Your subscriptions are imported on the Mac, so no Google cookies ever live on the device.
Beat YouTube’s throttle: 17s → 1s
Long videos stalled for 17 seconds because open-ended range requests get throttled. A tiny local relay fetches bounded 512 KB–4 MB ranges instead: first frame in 0.8–1.7 s, seeks in under a second.
Fixing Bluetooth after sleep
The Realtek chip doesn’t survive suspend and the stock restart script can’t bring it back. A recovery routine power-cycles the radio, re-attaches the chip and restarts the audio stack. It also pipes 32-bit game audio through a 64-bit player so RetroArch works on headphones.
SSH over USB-C
The stock kernel has no USB networking, so I cross-compiled the missing gadget modules for Linux 4.9 and wrote a tiny DHCP server. Plug into a Mac and you get ssh at ~12 MB/s, or the SD card as a drive. (The final bug turned out to be the cable.)
Radio that heals itself
BBC stream URLs move around and old ones start returning 410. Before playing, each station is checked and, if dead, looked up again on radio-browser.info and saved.
Tailscale from the SD card
A static arm64 Tailscale runs straight from the card: SSH from anywhere, an exit node picked in the UI, and a badge in the stock status bar while it’s on.
A day without the phone
The goal was simple: leave the phone in a drawer and carry a retro handheld instead. Here’s what that covers.
- Waking up. The alarm clock rings at a set time and can play one of your radio stations instead of a beep. Snooze is any button.
- Commute. Live radio (BBC Radio 4, 6 Music, World Service, plus anything on radio-browser.info by genre or country) and podcasts, with episodes downloaded at home for offline listening.
- Lunch. YouTube with search, your real subscriptions and resume points, or Listen mode for audio only with the screen off.
- In your pocket. The power key locks it like a phone: time, what’s playing, play/pause and skip. It dozes to save battery but keeps playing, and Wi-Fi turns off when what’s playing is already downloaded.
- Headphones. Pair Bluetooth buds and everything follows them: menus, radio, YouTube and games. The headset mic works too.
- And games, of course.
Why it works on stock firmware
Nothing is flashed. A drop-in app on the SD card starts the new launcher from the stock menu, and every feature lives on the card. Missing kernel pieces (USB networking, zram, a speaker fix) are built as loadable modules against Anbernic’s own kernel config. Take the card out and it’s a stock handheld again.
Credits
Forked from rg35xxp-unchained (itself from rg35xxh-ssh) and rewritten for the 2026 64-bit firmware.
Daily-driver stable. Next idea is a "Claude Companion" mode that turns the handheld into a desk display and push-to-talk remote for coding agents.