BlidOS: a TV operating system for PCs. Debian 13, Android and Android TV apps, profiles with PINs, App Store, desktop mode, controllers.
BlidOS comes in two forms:
| Part | What it is |
|---|---|
| Base | Debian 13 with firmware for Intel, AMD, NVIDIA, Realtek, Broadcom, MediaTek and Atheros hardware, plus Broadcom's own Wi-Fi driver (wl) for MacBooks (e.g. MacBook Air 2013–2017) |
| Profiles | Each profile is a Linux user, and its 4-digit PIN is that user's password. Five wrong PINs lock it for a minute |
| Interface | The BlidOS home screen, profile picker and settings: full screen and remote-friendly, written in Python and Qt/QML |
| Android apps | Waydroid running Android 13 with Google Play. Apps that have an Android TV screen open in it. Each profile has its own Android apps and Google account |
| App Store | Linux apps and games from Flathub, made for the remote. Each profile has its own apps |
| Desktop mode | A full KDE Plasma desktop for mouse and keyboard, one click away from the TV home screen |
| Installer | A graphical installer (Calamares) that installs to the partition you pick, next to Windows |
Install it:
BlidOS-<version>-x86_64.iso to a USB stick of at least 4 GB with balenaEtcher, Rufus (DD mode) or Ventoy.First start: BlidOS setup asks for your name and PIN, connects to the internet, and lets you add the other people who use the TV, including Kids profiles.
Drivers and other software:
.deb files (drivers and Linux apps, along with anything they need) and .apk files (Android apps) from a USB drive or a Downloads folder.sudo in the Terminal (Settings → Terminal). The password is the owner's PIN, and the username is profile1.Updates: Settings → Updates installs everything with one button. That covers new BlidOS versions and system updates from the internet (security fixes, drivers, the kernel). BlidOS finds new versions in three places:
blidos_<version>_all.deb file on a USB stick (FAT32 or exFAT) or in Downloads. This works on every version, so older versions update this way.Profiles, Android apps and files are never touched, because:
blidos), so an update replaces only BlidOS's own files;/var/backups/blidos first;App Store: the App Store tile on the home screen lists popular apps and games from Flathub, by category, with search. Apps install for the current profile only and appear on the home screen. Kids profiles don't get the App Store.
Desktop mode: the Desktop mode tile switches the profile to KDE Plasma (Dolphin, Konsole, Firefox, Discover). Android stops while you're there. The "BlidOS TV mode" icon on the desktop switches back. A profile starts in whichever mode it used last. Kids profiles stay in TV mode.
Android apps and Android TV apps: Google Play installs Android apps, and apps that have an Android TV screen (YouTube, Netflix, Spotify, Plex and many more) open in it.
For TV-only apps, turn on Settings → Android and Google Play → Android TV mode. Android then runs as a real Android TV, with its TV system screens, and TV-only apps install and run. Install them from .apk files with Settings → Install a package. The Google Play included here is the phone edition, which refuses to open on a TV. To use Google Play in Android TV mode, install the Google Play Store (Android TV) app file the same way. Android only accepts it if Google signed it.
How it works: this Android (LineageOS 20) is a tablet build. Marked as a TV, it switches to its TV system screens, which have no phone lock screen to draw on, and they crashed over and over: that was the black-screen bug in 0.3. In TV mode, BlidOS adds an overlay that runs Android without its lock screen (profiles have BlidOS PINs). See os/android-tv/.
If Android apps still show black: BlidOS waits until Android has finished starting before it opens an app, and on every start it checks the graphics chip to choose how Android draws. On some chips another setting works better: Settings → Android and Google Play → Graphics → Compatible (or Software). "Save a problem report" writes ~/blidos-android-report.txt with the graphics chip and Android's errors.
Android on first start: the ISO doesn't include Android, because its image contains Google's apps, which can't be redistributed. On a new install, BlidOS downloads Android with Google Play from Waydroid's servers (about 1 GB) as soon as it's online. The home screen shows the progress, and Android apps work once it's done.
Google Play: BlidOS isn't a Google-certified device, so each profile needs a one-time registration. Settings → Android and Google Play shows the device ID to enter at google.com/android/uncertified. Some streaming apps (Netflix, for example) play at lower quality on uncertified devices.
Controllers: Xbox (USB cable or Bluetooth), PlayStation 3/4/5, Switch Pro and Joy-Con, Steam and most other USB or Bluetooth controllers work in games, in Android apps and on the BlidOS screens. On BlidOS screens, the D-pad or left stick moves, A (Cross) selects and B (Circle) goes back. The Xbox, PS or Home button goes back to the home screen from anywhere. Settings → Controllers lists connected controllers with their battery level and explains pairing. Microsoft's USB Xbox Wireless Adapter isn't supported yet (Debian has no driver for it), so connect those controllers by cable or Bluetooth instead.
Kids profiles: in Settings → Profiles → the kid → Apps and permissions, the owner chooses:
Build it: os/build-os.sh builds the ISO without root (Debian in a user namespace). The steps are packages (Debian and all packages), system (BlidOS and the Android images) and iso. The system step also writes blidos_<version>_all.deb, the BlidOS update file, next to the ISO. To release an update, raise the version in os/rootfs/etc/blidos-version and run os/build-os.sh system. The code:
os/blidos/: the interface (qml/), the root service daemon.py (profiles, PINs, Kids rules, drivers, updates) and system helpers;os/rootfs/: system configuration (greetd, sway session, PAM lockout, permissions, Waydroid setup, boot splash);os/installer/: installer configuration;os/debian/: how BlidOS is packaged (control, and the install scripts that run on every update).os/tools/preview.py renders any screen with sample data, so you can check the interface without a PC.
Status: tested in a VM. Setup, PIN sign-in and lockout, the home screen, settings, and Android starting with Google Play installed all work. Not yet tested: real hardware, legacy BIOS, and a full Google sign-in.
The app replaces the stock TV home screen and adds:
Only the Owner profile can manage profiles and open system settings. The first time BlidOS starts it creates an Owner profile with no PIN. Set one under Settings → Profiles.
Google Play and Google Play Services are licensed only to Google-certified devices. A custom Android TV build (an AOSP fork) can't legally include Play unless Google certifies it. BlidOS runs as the home screen on a certified Android TV or Google TV device, so Google Play, Wi-Fi drivers and Bluetooth stacks come from that device and keep working.
If you later make your own device image, you can build BlidOS into it as the system home app. See Building it into a system image.
You need JDK 17 and the Android SDK (platform 34). The easiest way to get both is Android Studio:
app/build/outputs/apk/debug/.To build from the command line instead, create the Gradle wrapper once, with Gradle 8.7 or newer installed:
gradle wrapper --gradle-version 8.7
./gradlew assembleDebug
adb connect <tv-ip-address>
adb install -r app/build/outputs/apk/debug/app-debug.apk
Google TV and most newer Android TV builds don't offer that choice. On those you have to turn off the stock launcher. This is reversible.
adb shell pm disable-user --user 0 com.google.android.apps.tv.launcherx
That's the Google TV launcher. On older Android TV builds the stock launcher is com.google.android.tvlauncher. To bring the stock launcher back:
adb shell pm enable com.google.android.apps.tv.launcherx
If you build your own AOSP Android TV image (without Google Play), you can make BlidOS the default home app:
Android.bp with android_app_import, privileged: true, overrides: ["TvLauncher"]), and add BlidOS to PRODUCT_PACKAGES.app/src/main/java/com/blidos/launcher/
BlidApp.kt Session state; signs out when the screen turns off
data/Profile.kt Profile model and JSON storage format
data/ProfileStore.kt Saving profiles, PIN checks and lockout
data/PinHasher.kt Salted PBKDF2 PIN hashing
ui/HomeActivity.kt The home screen: apps, Google Play, settings row
ui/ProfilePickerActivity "Who's watching?" screen
ui/ProfilesActivity.kt Owner screen: add, rename, PIN, Kids mode, delete
ui/PinDialog.kt Remote-friendly PIN keypad
ui/WifiActivity.kt Wi-Fi networks and joining
ui/BluetoothActivity.kt Bluetooth pairing
ui/AppRepository.kt Finding and launching installed apps
ui/UiKit.kt Shared colors, tiles and focus effects
BlidOS 0.5.5, a TV operating system for PCs (Debian 13, Android apps, profiles with PINs).
New install: write the ISO to a USB stick (balenaEtcher, Rufus in DD mode, or Ventoy), boot it and choose Install BlidOS.
Updating: BlidOS 0.5.1 and newer find new versions here by themselves (Settings → Updates). Older versions: copy blidos_0.5.5_all.deb to a USB stick (FAT32 or exFAT), plug it in and open Settings → Updates. Profiles, apps and files stay as they are.
Files
Source code
BlidOS 0.5.4, a TV operating system for PCs (Debian 13, Android apps, profiles with PINs).
New install: write the ISO to a USB stick (balenaEtcher, Rufus in DD mode, or Ventoy), boot it and choose Install BlidOS.
Updating: BlidOS 0.5.1 and newer find new versions here by themselves (Settings → Updates). Older versions: copy blidos_0.5.4_all.deb to a USB stick (FAT32 or exFAT), plug it in and open Settings → Updates. Profiles, apps and files stay as they are.
Files
Source code
BlidOS 0.5.3, a TV operating system for PCs (Debian 13, Android apps, profiles with PINs).
New install: write the ISO to a USB stick (balenaEtcher, Rufus in DD mode, or Ventoy), boot it and choose Install BlidOS.
Updating: BlidOS 0.5.1 and newer find new versions here by themselves (Settings → Updates). Older versions: copy blidos_0.5.3_all.deb to a USB stick (FAT32 or exFAT), plug it in and open Settings → Updates. Profiles, apps and files stay as they are.
Files
Source code
BlidOS 0.5.2, a TV operating system for PCs (Debian 13, Android apps, profiles with PINs).
New install: write the ISO to a USB stick (balenaEtcher, Rufus in DD mode, or Ventoy), boot it and choose Install BlidOS.
Updating: BlidOS 0.5.1 and newer find new versions here by themselves (Settings → Updates). Older versions: copy blidos_0.5.2_all.deb to a USB stick (FAT32 or exFAT), plug it in and open Settings → Updates. Profiles, apps and files stay as they are.
Files
Source code
BlidOS 0.5.1, a TV operating system for PCs (Debian 13, Android apps, profiles with PINs).
New install: write the ISO to a USB stick (balenaEtcher, Rufus in DD mode, or Ventoy), boot it and choose Install BlidOS.
Updating: BlidOS 0.5.1 and newer find new versions here by themselves (Settings → Updates). Older versions: copy blidos_0.5.1_all.deb to a USB stick (FAT32 or exFAT), plug it in and open Settings → Updates. Profiles, apps and files stay as they are.
Files
Source code
BlidOS 0.5.0 update file. Install it on an existing BlidOS: copy blidos_0.5.0_all.deb to a USB stick (FAT32 or exFAT), plug it in, then open Settings → Updates. Profiles, apps and files stay as they are.
There is no ISO for this version here: its Android image included Google's apps, which can't be redistributed. For a new install, use the newest release's ISO.
Files
Source code
BlidOS 0.4.0 update file. Install it on an existing BlidOS: copy blidos_0.4.0_all.deb to a USB stick (FAT32 or exFAT), plug it in, then open Settings → Updates. Profiles, apps and files stay as they are.
There is no ISO for this version here: its Android image included Google's apps, which can't be redistributed. For a new install, use the newest release's ISO.
Files
Source code
BlidOS 0.3.0 update file. Install it on an existing BlidOS: copy blidos_0.3.0_all.deb to a USB stick (FAT32 or exFAT), plug it in, then open Settings → Updates. Profiles, apps and files stay as they are.
There is no ISO for this version here: its Android image included Google's apps, which can't be redistributed. For a new install, use the newest release's ISO.
Files
Source code
Please read this before using Jace.
Effective date: Sep 26 2026 at 8:00 AM Last updated: Oct 19 2026
Welcome to Jace ("Jace", "the site", "we", "us"). Jace is a hobby project run by an individual Jace (or ququoqu). By creating an account or using the site, you agree to these Terms. If you don't agree, please don't use Jace.
Jace is the home of the Jace apps (Jace Social, Jace Launcher, Jace Store, BlidOS, Profile Maker, VLC Redesign, and more). One Jace account signs you in to them, and the site lists the projects and publishes their source code.
Jace used to also have videos, games, live chat, direct messages, group chats, Cloud, organizations, and open forums. Those are no longer shown on the site, but what you posted there is kept, not deleted, and you can still delete it from "Your data" in your account settings.
You agree not to:
Site administrators may review reported content and take action to keep the community safe, including:
Jace's own apps (marked Official, such as Jace Social) can also ban or unban a Jace account, for example when someone breaks the rules in that app. A ban applies to your whole Jace account, signs you out of every app you signed in to with Jace, and can be appealed the same way. Staff accounts can't be banned by apps, and every ban an app makes is logged.
Admins decide moderation actions at their own discretion. If you think an action was a mistake, you can appeal by messaging the Jace Official organization. Appeals are considered, but the decision is final.
You can report content or accounts that break these rules using the Report links on the site. Reports may be made without an account. Please don't file false or abusive reports.
If you believe something on Jace infringes your copyright, contact us at jaceofficialbrand@hotmail.com with: what the work is, where it appears on the site (a link), your contact details, and a statement that you're the owner or authorized to act for them. We'll review it and may remove the content.
Jace is provided "AS IS" and "AS AVAILABLE", with no warranties of any kind, express or implied, including any implied warranties of merchantability, fitness for a particular purpose, non-infringement, security, accuracy, or uninterrupted or error-free operation. We don't promise that the site will be available, that your content will be kept safe or stay online, or that it's free of bugs or harmful components. You use Jace at your own risk.
To the fullest extent permitted by law:
You agree to defend, indemnify, and hold harmless Jace and its operator from any claims, damages, losses, and expenses (including reasonable legal fees) that arise from your content, your use of the site, your breach of these Terms, or your violation of any law or anyone else's rights (including copyright and privacy rights).
Jace relies on other services to run (see the Privacy Policy) and on services users may link to. Their availability, terms, and privacy practices are outside our control, and we're not responsible for them. Signing in with GitHub is subject to GitHub's terms.
We may change, suspend, or discontinue any part of Jace, or the whole site, at any time, with or without notice, and we won't be liable to you or anyone else for doing so. Please keep your own copies of anything important.
We may update these Terms. If we make a significant change, we'll post a notice in the READ ME or News forum on the site. Continuing to use Jace after a change means you accept the new Terms.
Questions about these Terms: jaceofficialbrand@hotmail.com
Effective date: Sep 26 2026 at 8:00 AM Last updated: Oct 19 2026
This explains what information Jace ("we", "us") collects, why, who it's shared with, and what control you have. Jace is a hobby project run by an individual (Jace (or ququoqu). Contact: jaceofficialbrand@hotmail.com.
Account information
Profile information (public unless noted)
Content you create
Moderation and safety information
Technical information
We do not use advertising trackers or third-party analytics on the site.
We don't sell your personal information, and we don't use it for advertising.
Jace uses only cookies needed for the site to work:
We don't use advertising or analytics cookies. You can clear cookies in your browser at any time; you'll just be signed out.
We rely on these providers to run Jace, and your information passes through them:
| Provider | What for |
|---|---|
| Vercel | Hosting the website (and its server logs). |
| Neon | The database that stores accounts, profiles, posts, messages, and other data. |
| Supabase | Storage for uploaded files (videos, images, project files, Cloud files). |
| Mailjet | Sending emails. Your email address and the email's contents are shared with them to deliver it. |
| GitHub | Only if you choose to sign in with GitHub. |
These providers have their own privacy policies and may process data in countries other than yours.
Passwords are hashed, sessions use signed and encrypted tokens, and traffic to the site uses HTTPS. But no system is perfectly secure, and Jace is a small hobby project. Direct messages are not end-to-end encrypted. Please don't share sensitive information (passwords, financial details, government IDs) through the site.
Jace has no minimum age, so people of any age may have an account. We collect the same limited information from everyone (see Section 1) and don't use it for advertising. A parent or guardian who wants to see, correct, or delete a child's information or account can contact us at jaceofficialbrand@hotmail.com, and we'll help.
We may update this policy. For significant changes, we'll post a notice in the READ ME or News forum. The "Last updated" date above shows when it last changed.
Questions or requests: jaceofficialbrand@hotmail.com
JACE MAY NOT BE ALLWAYS ONLINE!
THIS IS A FUN PROJECT I MADE THIS IS HOSTED WITH VERCEL IF YOU DO NOT TRUST THIS APP DO NOT USE IT THIS PROJECT IS VIBE CODED WITH CLAUDE JACE IS NOT A REAL BRAND THANK YOU FOR READING THIS HAVE A GOOD DAY