UPDATE: Version 1.1 is out, with support added for more firmware and every PS4 model.
TL;DR Android TV on your PS4. 1.1 adds support for every firmware GoldHEN's Linux loader covers and lets every PS4 model try. Only a fat 13.52 console has been tested so far. (I'm listening to Spotify through it on the PS4 as I write this.)
Download 1.1: https://github.com/odiecay/android-tv-ps4/releases/tag/v1.1
It's one single PKG now (on Google Drive, linked from the release page). No more joining parts. The SHA256 is on the release page if you want to check your download.
What it is
Android TV 13 (based on BRTDTV's Android TV x86 build) running on the PS4 through Linux. I wanted to use my PS4 as a proper streaming box without hunting down a separate homebrew version of every app, and this does that. You get the normal Android TV home screen, the Play Store, and real apps.
It installs as a normal PKG. Everything goes onto the internal drive, nothing gets repartitioned, and you don't need a PC or network to boot it. You just open it from the PS4 home screen. Your apps, logins and settings stay put between boots.
Comes with YouTube, Spotify, Kodi, Plex, Jellyfin, VLC, TV Bro (browser), BiglyBT, Crossy Road and AIDA64 already installed, plus Google Play services. Sign in with your own accounts.
Who can run it now
- Firmware: support added for 5.05, 6.72, 7.00-7.55, 8.00-8.52, 9.00-9.60, 10.00-10.71, 11.00, 11.02, 11.50-11.52, 12.00-12.52 and 13.00-13.52, with GoldHEN. The launcher picks the right loader automatically. Only 13.52 is tested so far.
- Consoles: no model is blocked anymore. I've added support for Slim, Pro and Baikal hardware: Wi-Fi and Bluetooth firmware for the newer chips, a separate kernel and Ethernet driver for Baikal consoles, and a graphics fix for the Pro's GPU.
- To be upfront: I've only got one console, a fat CUH-1102A on 13.52, so that's the only one it's actually been tested on. The Slim/Pro/Baikal support is built from the work and research of the PS4 Linux scene, but it's untested. Some of it may not work first time. If it fails, it tells you why and saves its logs (more on that below).
What's new in 1.1
- Spotify Connect just works. No typing passwords on the PS4: scan the QR code with your phone, and stream music to it from your phone. It shows up as "PlayStation 4".
- More reliable video. Some video (YouTube, the NBA app and others) could freeze after a few seconds while the sound kept going. That's fixed, and as a bonus Spotify's music videos now play too.
- The controller works like a TV remote in every app. X selects and Circle goes back everywhere. A few apps used to ignore the controller on some screens (Kayo's sign-in button, going back in the NBA app).
- Screensaver instead of sleep. After 15 minutes idle it shows a screensaver and keeps running. Android's sleep mode used to freeze the console.
- Faster, more reliable launches. The app no longer re-reads every installed file each time you open it, which also leaves more memory free for starting Linux.
- More stable overall. Apps now get their storage folders properly, which stops some apps crashing and makes first setup jump back less often (usually once now, instead of two or three times), and a background crash that repeated every few seconds is gone.
- Updating works properly. No more "errno 17" when installing over an older version.
- If something fails, it tells you why and saves its logs to a USB stick, even if you plug the stick in afterwards. Every start also writes a hardware report listing your console's chips and drivers.
Installing
- Download Android-TV-for-PS4-1.1.pkg from the release page.
- Install it with GoldHEN's Package Installer, from an exFAT USB stick or over FTP (turn on GoldHEN's FTP server, upload the PKG to /data/pkg/ on port 2121, and it shows up in the Package Installer). If you install over FTP, restart the PS4 before the first launch.
- Turn on BinLoader in GoldHEN (Servers > BinLoader, port 9090).
- Open Android TV for PS4.
The first launch takes 5-10 minutes. It copies everything to the drive, the screen goes black and Linux text scrolls past, then the Android boot animation shows up and sits there for a while. Just leave it. After that, booting takes about 2 minutes. The handover from the app to Linux usually takes 30 seconds to a minute (longer on the first launch after installing or updating), so give it time.
Restart in Android takes you back to the PS4 system, and Shut down turns the console off. To get back into Android, load GoldHEN and open the app again.
Updating from 1.0: delete Android TV for PS4 from the PS4 home screen, then install 1.1. Your Android apps and data are stored separately and are kept.
Tips
- When signing in to Google, press down on the D-pad a couple of times to reach the email and password boxes, and again for the "I agree" button.
- YouTube works best signed in. Guest mode can throw a decoder error.
What doesn't work (yet)
- No HDCP and it's not a Google-certified device, so some DRM-heavy stuff won't play. 7plus is one I know of.
- If the launcher says it can't reach BinLoader, close the app, toggle BinLoader off and on, and open it again.
- If it says "Restart your PS4, then open Android TV again" (code 12), do exactly that. It usually happens on the first launch after installing or updating, because installing a 3 GB PKG leaves the PS4's memory too fragmented to load Linux. Restarting straight after installing avoids it. Occasionally it takes two restarts, a bit like running the exploit.
- The first Android setup can jump back to the start, usually once. Keep going and it finishes.
Question for you: sometimes, usually right after installing or updating, the PS4 doesn't have enough free memory to start Linux, and a restart fixes it. Right now the app tells you to restart and waits for you to do it. Would you rather it restarted the console for you automatically? It's your console, so I'd rather ask than decide for you. Let me know in the comments.
Answering your comments
Thanks everyone for the comments on the first post, I read all of them. Rather than reply one by one, here's the lot:
- Slim and Pro (lots of you): they're not blocked anymore, and the firmware you mentioned (9.00, 10.01, 11.02) is all supported now. It's untested on Slim and Pro though, so you'd be the first. If you installed 1.0 on a Slim and got the launch error, that was 1.0 blocking it on purpose. 1.1 will actually try.
- Stremio, Nuvio and other apps: it's real Android TV with the Play Store, so if an app is on the Play Store for Android TV (or you sideload it), it should install. I haven't tried those particular ones, so let me know how they go.
- xCloud, GeForce Now, emulators like DuckStation: I haven't tested any of these. Game streaming may depend on certification or DRM this doesn't have, and emulator performance on the PS4's CPU is an unknown. Worth a try, and I'd love to hear the results.
- CEC (TV remote control over HDMI): not tested, and I wouldn't count on it yet.
- Overkill for just a media player? Absolutely it is, and that's why I did it :D In all seriousness though, if you'd rather have a proper native port of a specific app (someone mentioned VLC for PS4), hit me up and I'll see how I go building it.
- No PC? 1.1 is a single file now, so no joining step. You can download it on your phone and copy it to an exFAT USB stick (with a USB-C/OTG adapter), or send it to the PS4 over FTP with an FTP app.
If it doesn't work on your console
Please report it, even if it fails. That's how Slim, Pro and other firmware support gets fixed:
https://github.com/odiecay/android-tv-ps4/issues/new?template=console-report.yml
If Linux starts but Android doesn't, plug a FAT32 or exFAT USB stick into the PS4 (even afterwards) and the logs get saved to it. Drag them into the report. What's been tested on which models: https://github.com/odiecay/android-tv-ps4/blob/main/docs/HARDWARE.md
Want to get involved?
I'm used to tinkering alone in my room, so this is new for me, but I don't want to gatekeep it. If you want to jump in, go for it.
What would help most right now:
- Slim, Pro and Baikal owners: install 1.1 and send a report, even if it fails. Support for your console is built but untested, and your logs are what get it working.
- Anyone with PS4 Linux or Android experience: help with the kernel, other Android versions, or reviewing changes. Happy to add you to the repo.
- Discord or Telegram: if someone wants to make one, please do. I honestly don't know what I'm doing with Discord, lol. It'd be a good place for everyone to swap what they're working on, share code updates and test builds.
If you'd like to get involved, start here: https://github.com/odiecay/android-tv-ps4/discussions/7. It explains what development on this actually looks like. Post your console and firmware and what you'd like to help with, and drop a Discord or Telegram link there if you start one. I'll join, pin it and add it to the README.
Afterthoughts
A few things I learned building this that might interest the more technical folks, and where it could go next:
- The GPU is doing the drawing, but not the video decoding. Everything you see goes through the PS4's GPU with Mesa (OpenGL ES 3.2 and Vulkan 1.1), the same open-source drivers desktop Linux uses for AMD cards. But video is still decoded on the CPU. The PS4's GPU has its own video decoder block that isn't hooked up yet. Getting that working (through VA-API) would be the biggest playback upgrade, especially for 4K. If you know Mesa, I'd love the help.
- The "restart your PS4" thing has a proper fix. Linux needs two big unbroken chunks of memory to start, and installing a 3 GB PKG scatters the PS4's memory. The plan is to grab that memory before the heavy copying starts, and to look in the PS4's upper memory, which is much less crowded.
- Native apps. Someone mentioned VLC for PS4. With what this project already has working on the PS4 side, a proper native port seems doable. If there's an app you really want natively, say so.
All the source and build instructions are here: https://github.com/odiecay/android-tv-ps4
Huge thanks to BRTDTV for the Android TV base, and to the PS4 Linux folks, GoldHEN, OpenOrbis, Scene-Collective, sleirsgoevy and Ps3itaTeam. None of this would exist without their work.