COPIED TO CLIPBOARD
Apophis — the serpent of chaos

ApophisOS

Full Linux. Always. Android When You Need It.

ApophisOS transforms your Android device into a full Linux phone — a real Ubuntu 25.10 + KDE Plasma desktop running on your existing hardware. No root. No second device. No compromise. Linux is your primary environment. Android handles calls, SMS, and the camera.

Get ApophisOS — $4.99 One-time payment  ·  arm64-v8a  ·  Android 7.0+  ·  No root required
Buy Apophis Mobile Devices Wraith  ·  Phantom  ·  Leviathan  ·  ApophisOS pre-installed
NOT SOLD to Germany, Austria, or Switzerland. These countries require public disclosure of the seller's personal legal name and home address before selling to their residents — that runs against everything ApophisOS stands for. Message us on Signal if you're in one of these countries and want to work out an alternate way to get the app.
NO REFUNDS for user error, ever — no exceptions. If you have a problem with the app, message us on WhatsApp, Signal, or email and we'll help you fix it.

— Available Now —

Current Release — v0.5.2  ·  $4.99 one-time

ApophisOS arm64

Ubuntu 25.10 · KDE Plasma · Wayland · arm64-v8a

Full Ubuntu 25.10 with KDE Plasma desktop. The complete Linux phone experience on any 64-bit Android 7+ device. Install any software from apt. Boots automatically on device start.

  • Ubuntu 25.10 via proot — no root required
  • KDE Plasma desktop, tablet mode
  • apt — 60,000+ packages
  • Firefox + PWA support
  • Auto-launch on device boot
  • Android available for calls & camera
Apophis App Store
133 Apps · PWA Technology · Real Icons

133 apps unavailable on standard Linux — Microsoft Office, Adobe Photoshop, Canva, AI tools, and more — all installable directly to your Linux desktop as Progressive Web Apps.

Browse 133 Apps

What is ApophisOS?

The Linux phone you already have

Named after Apophis — the Egyptian serpent of chaos that swallows the sun. ApophisOS is the disruption the locked-down mobile market deserves.

Full Linux on the Phone in Your Pocket

ApophisOS is an Android application that runs a full Ubuntu 25.10 environment with KDE Plasma desktop directly on your phone or tablet — no root required, no second boot, no hardware modifications. It uses proot-style containerization to run a complete Linux userspace on top of the Android kernel.

You get a real terminal. A real package manager. Real desktop applications. Everything you'd expect from a Linux workstation, in your pocket, on the hardware you already own.

🐍

Full Ubuntu 25.10

Complete apt-based rootfs. Install anything from the Ubuntu repos — no restrictions.

🖥️

KDE Plasma Desktop

Real Wayland compositor. Proper windowed apps. Touch-optimized panel and full-screen app drawer.

📱

Android When You Need It

Phone calls, SMS, camera, and GPS stay on Android. One swipe back, one swipe forward.

🔒

No Root Required

Runs entirely in userspace. No bootloader unlock, no warranty void, no flashing.

🌐

Firefox + PWAs

Full browser with PWA support via PWAsForFirefox. Install any web app directly to the desktop.

Auto-Launch on Boot

Plasma starts automatically when your phone boots. Unlock your phone, you're in Linux.


Full Linux. Always.

The smartphone was supposed to be a computer in your pocket. Instead it became a locked-down appliance controlled by two corporations. ApophisOS is the counter to that.

Our goal is simple: Linux is your primary operating environment, all day, every day. You live in the Plasma desktop. You run real Linux applications. You have a terminal always available. You install software with a package manager, not a curated app store.

Android stays in the background — handling phone calls, SMS, camera, GPS, and the hardware layer it does well. When you need to take a call, you take the call. When the call ends, you're back in Linux.

This is the hybrid Linux phone. Not PostmarketOS — which requires flashing your device and sacrificing camera and calls. Not raw Termux — which is a terminal emulator, not a desktop. ApophisOS is a full Plasma desktop that lives alongside Android, using what Android does well while taking everything else back.

Your phone is a Linux computer. Act like it.


GigLife Gaming & Computer Services

Founded by a veteran software developer with over 20 years of experience — including time spent working in Silicon Valley at the heart of the tech industry. After a workplace injury in 2017 ended a long career in traditional development, we pivoted to what we love most — building software that actually solves real problems for real people.

Since then we have designed websites, built apps, and created tools that put powerful technology in the hands of everyday users. ApophisOS is our flagship project and the clearest expression of our mission — bringing full Linux to the average person, on the hardware they already own, without the technical barriers that have kept Linux out of reach for most people.

🐍

Our Mission

Linux has always been the most powerful, most free operating system on the planet. We are bringing it to everyone. One device at a time.

🔒

Privacy First

We do not collect your data. We do not sell your information. We do not track you. ApophisOS runs entirely on your own device. Privacy is not a feature — it is a right.

🛠️

Built by a Developer

20+ years of professional experience. Designed for everyone. If you have a question, the person who built it is one tap away.


Connect with the Developer

Have a question about ApophisOS? Need install help? Want to report a bug or suggest a feature? Reach out directly — no support ticket, no bot, just the developer.

WhatsApp Connect on Signal

Or email giglifegaming@proton.me

Install ApophisOS

APK · No Root · Android 7.0+

Download the APK, sideload it, and the app handles the rest. Ubuntu 25.10 rootfs downloads automatically on first launch over WiFi.

Latest Release — v0.5.2

ApophisOS APK

Signed release build. Includes Ubuntu 25.10 rootfs bootstrapper, KDE Plasma launcher, and auto-boot service.

Get ApophisOS — $4.99
Architecturearm64-v8a
Min Android7.0 (API 24)
APK Size~24 MB
Rootfs~156 MB WiFi

Step-by-Step

1

Download the App

Purchase and download ApophisOS from the button above. The APK will download directly to your device. Open your file manager → Downloads → tap the APK → tap Install.

Note: If Android blocks the install, go to Settings → Security → Install unknown apps and allow your browser or file manager.
2

Enable Developer Options

Developer Options unlocks settings Android hides by default. Required for ApophisOS to run reliably.

Settings → About Phone → tap Build Number 7 times until you see "You are now a developer."

Then go to Settings → Developer Options and enable it if not already on.

3

Disable Child Process Restrictions

Some Android versions restrict background child processes. If your Developer Options has this setting, disable it so ApophisOS can run Linux processes without being killed.

Settings → Developer Options → Background process limit → set to Standard limit

Note: Not all phones show this option — skip it if you don't see it.
4

Set App Permissions

ApophisOS runs as a home launcher and needs full permissions to function correctly.

Long-press the ApophisOS icon → tap the ⓘ info icon → Permissions → enable all permissions.

5

Set Battery to Unrestricted

Prevents Android from killing ApophisOS in the background.

Long-press icon → ⓘ info → Battery → Unrestricted

If you skip this step the Linux environment may be killed when you switch apps.
6

Enable Draw Over Other Apps

Required for the ApophisOS overlay and floating taskbar to appear on top of the desktop.

Long-press icon → ⓘ info → Display over other apps → Allow

All set — now what? Head to the Setup Guide → to install KDE Plasma and configure your desktop.

Setup Guide

Ubuntu 25.10 · KDE Plasma · Falkon · No Snap · No Root

Complete ALL phases in the terminal BEFORE tapping Display. The display script is the very last step.

Wait for the Terminal Prompt

Tap the ApophisOS icon on your device. On first launch ApophisOS downloads and extracts Ubuntu 25.10 automatically. Wait for the terminal prompt before continuing.

You will see a terminal prompt when extraction is complete — press Exit, not Continue.
ApophisOS first launch screen Terminal prompt ready

Open the Terminal

Locate the ApophisOS icon on your home screen or in the app drawer and long-press it. In the menu that pops up, tap Terminal.

A terminal window opens — this is where every command in the phases below gets typed.

Fix DNS

Run this first every session or apt will fail.
Set DNS resolver
echo "nameserver 8.8.8.8" > /etc/resolv.confCOPY
DNS command in terminal

Update Ubuntu

Update & upgrade
apt update && apt upgrade -yCOPY
apt update running Upgrade complete

Install KDE Plasma Desktop

This will take several minutes. Wait for the prompt to return.
Install Plasma + Konsole + file manager
apt install -y kwin-wayland plasma-desktop konsole dbus-x11 pcmanfm-qtCOPY
Plasma installing Plasma install complete

Install Browsers

Two browsers — Falkon for general browsing, Chromium for PWAs from the Apophis App Store. Both require sandbox fixes to run inside proot.

— Falkon

Native KDE browser using QtWebEngine. Lightweight, touch-friendly, no snap.

Install Falkon
apt install -y falkonCOPY
Fix Falkon sandbox — patch desktop file
sed -i 's|Exec=falkon.*|Exec=env QTWEBENGINE_DISABLE_SANDBOX=1 falkon %u|g' /usr/share/applications/org.kde.falkon.desktopCOPY
Rebuild app cache
kbuildsycoca6 --noincremental 2>/dev/nullCOPY
Falkon install complete

— Chromium

Required for PWA installs from the Apophis App Store. Installed as a native deb via the xtradeb PPA — no snap. The launcher script itself is wrapped once, so every PWA inherits --no-sandbox automatically — no per-app patching needed.

Step 1 — add xtradeb PPA
add-apt-repository ppa:xtradeb/apps -yCOPY
Step 2 — update package cache
apt updateCOPY
Step 3 — install Chromium (native deb, no snap)
apt install -y chromiumCOPY
Note: The package name is chromium — not chromium-browser. Using chromium-browser on Ubuntu pulls in the snap dummy package instead.
Why this fix works: /usr/bin/chromium isn't the real binary — it's a launcher script that ends in exec $LIBDIR/$APPNAME $CHROMIUM_FLAGS "$@". Wrapping this one script means every caller (the main icon, every PWA's .desktop file) inherits --no-sandbox automatically through "$@". No need to touch any .desktop file individually.
Step 4 — rename the real launcher script
mv /usr/bin/chromium /usr/bin/chromium-realCOPY
Step 5 — write the wrapper in its place
printf '#!/bin/sh\nexec /usr/bin/chromium-real --no-sandbox "$@"\n' > /usr/bin/chromiumCOPY
Step 6 — make it executable
chmod +x /usr/bin/chromiumCOPY
Do not skip Step 6. printf ... > file does not set the execute bit — the file lands as non-executable by default. Skipping chmod produces exit code 126 ("permission denied") and silently breaks both the desktop icon and every PWA, even though the wrapper's contents are correct.
Verify
ls -l /usr/bin/chromium /usr/bin/chromium-real && chromium --versionCOPY
Note: --version confirms the wrapper chain runs, but exits before any display code — it doesn't prove the GUI launches. Test for real by tapping the desktop icon from inside the Plasma session, then open a PWA.
Chromium install complete

Disable Screen Locker & KDE Wallet

Write both configs and rebuild the app cache in one command
mkdir -p /root/.config && printf '[Daemon]\nAutolock=false\nLockOnResume=false\n' > /root/.config/kscreenlockerrc && printf '[Wallet]\nEnabled=false\n' > /root/.config/kwalletrc && kbuildsycoca6 --noincremental 2>/dev/nullCOPY
Screen locker config written Wallet config written

Configure the Display Start Script

Long-press the orb → Display → paste → Done. This is the final step.

1

Open the Side Menu

Two-finger swipe from the left edge toward the right. Two fingers are required to avoid triggering the Android back gesture.

2

Long-Press "Display"

Hold the Display button for ~1 second to open the script editor. A regular tap launches the session — long-press edits it.

3

Paste the Startup Script

Clear existing content and paste exactly:

// Display start script
WAYLAND_DISPLAY=wayland-apophisos dbus-launch --exit-with-session startplasma-wayland > /tmp/plasma.log 2>&1 &COPY
4

Tap Display to Launch

Tap Display (regular tap). KDE Plasma desktop appears with taskbar and Falkon browser. First boot takes 20–40 seconds.

Tap Display — KDE Plasma desktop appears with taskbar and Falkon browser.
Side menu open Script editor open

Set DuckDuckGo as Default Search

In Falkon: Settings → Configure Falkon → Search → set DuckDuckGo as default.

Falkon search settings DuckDuckGo set as default

ApophisOS Running

KDE Plasma on Ubuntu 25.10 — fully configured and ready to use.

Full desktop overview Falkon browser open App launcher in use

Install Recommended Apps

All native apt packages — no snaps, no PPAs, no flatpaks. All work inside proot.

Baobab — disk usage analyzer
apt install -y baobabCOPY
LibreOffice — Writer, Calc, Impress (no snap)
apt install -y libreoffice-writer libreoffice-calc libreoffice-impressCOPY
GIMP — image editor
apt install -y gimpCOPY
Geany — lightweight IDE and code editor
apt install -y geanyCOPY
Kate — advanced KDE text editor
apt install -y kateCOPY
Thonny — beginner-friendly Python IDE
apt install -y thonnyCOPY
Note: Run apt install commands one at a time. Each may take a few minutes depending on package size and connection speed.

Common Fixes

Desktop won't start — check the log
cat /tmp/plasma.logCOPY
DNS broken after reboot
echo "nameserver 8.8.8.8" > /etc/resolv.confCOPY
Screen locked — kill it
pkill -f kscreenlockerCOPY
Falkon won't launch from desktop — verify the fix
grep Exec /usr/share/applications/org.kde.falkon.desktopCOPY

Should show QTWEBENGINE_DISABLE_SANDBOX=1. If not, repeat Phase 6.

Apophis App Store

133 PWAs · Real Icons · Linux Desktop Ready

Apps unavailable on standard Linux — Microsoft Office, Adobe Photoshop, Canva, AI tools, and 130 more — all installable directly to your Linux desktop as Progressive Web Apps via Firefox + PWAsForFirefox.

Loading apps...
🐍 No apps matched your search — try a different term

Install Any App to Your Desktop

1️⃣
Click any app card — it opens in Firefox on your ApophisOS desktop
2️⃣
Sign in if required (Office, Adobe, etc.)
3️⃣
Click the PWAsForFirefox icon in the toolbar → Install as Web App
4️⃣
The app icon appears in your KDE app drawer — launches like any native app

📦 Install This Store as a PWA

Save the three files to the same folder and serve with a local HTTP server. Firefox will offer to install Apophis App Store as a standalone app.

# Serve on localhost (run in Konsole) cd ~/apophis-store python3 -m http.server 8080COPY

Open http://localhost:8080 in Firefox and install from the toolbar.

The ApophisOS Platform

Three tiers. One mission. Your device, your rules.

ApophisOS is not a single product — it is a platform built across three tiers, each targeting a different device and use case. All three share the same core philosophy: Linux sovereignty, privacy by default, and zero compromise on what your hardware can do.

Tier 01

ApophisOS Desktop

DEBIAN TRIXIE  ·  PLASMA LITE  ·  FULL PENTEST SUITE

The full ApophisOS experience on any x86 or ARM laptop or desktop. Built on Debian Trixie with a tuned Plasma Lite desktop — larger controls, touch-optimized UI, finger-friendly from the ground up. Ships with a complete professional-grade penetration testing toolkit and Tor with 14-Eyes exit node exclusion baked in from the start.

This is the workstation tier. If you need a fully sovereign, privacy-first Linux machine that also doubles as a mobile pentest platform, this is it.

🐧

Debian Trixie Base

Stable, modern, and fully maintained. apt package management. No bloat. Built to last.

🖥️

Plasma Lite Desktop

KDE Plasma tuned for touch — larger targets, bigger icons, finger-navigable without a mouse.

🔒

Full Pentest Suite

23+ verified tools across recon, exploitation, wireless, MITM, forensics, and web testing.

🧅

Tor + 14 Eyes Exclusion

Tor configured at install with all 14 Eyes nations excluded from your circuit. Always on.

🛡️

Privacy by Default

No telemetry. No cloud accounts. No mandatory sign-ins. Your machine, your data.

💻

Any x86 / ARM Hardware

Runs on repurposed Chromebooks, old laptops, mini PCs. Breathes life into old hardware.

Tier 02

ApophisOS Mobile

NATIVE TERMUX  ·  PLASMA LITE  ·  NO PROOT  ·  5G READY

Full Linux on your Android phone — no proot, no container, no compromise. ApophisOS Mobile runs a native ApophisX environment with a Plasma Lite desktop over ApophisX X11. Your phone keeps doing everything it does — calls, SMS, 5G, camera — while a complete Linux desktop runs alongside it.

This is what the Free Tier guide builds. The paid APK gets you there in one tap. Either way, it is the same environment — real Linux, real desktop, real tools, on the device in your pocket.

📱

Native — No Proot

Runs directly on the Android Linux kernel. No container overhead. No virtualization layer.

🖥️

Plasma Lite Desktop

Full XFCE4 tuned to look and feel like Plasma — touch-optimized, finger-navigable, beautiful.

📡

Full Hardware — No Sacrifice

5G, calls, SMS, camera, Bluetooth — all intact. Linux runs alongside Android, not instead of it.

🔒

Pentest Suite

23+ verified security tools native to Termux. Recon, MITM, wireless, web testing — in your pocket.

🧅

Tor + 14 Eyes

Full Tor stack with 14 Eyes exit node exclusion. Firefox routed through Tor for darkweb browsing.

Auto-Boot

Desktop starts automatically when your phone boots. Unlock — you are already in Linux.

Tier 03

ApophisOS Platform

APOPHIS LAUNCHER  ·  APOPHIS TERMINAL  ·  NO GUI REQUIRED

Not every phone can handle a full desktop environment — and that should not be a barrier to Linux sovereignty. ApophisOS Platform brings the core Apophis experience to lower-end Android devices through a custom launcher and a custom terminal, without the overhead of a full GUI.

The Apophis Launcher replaces your Android home screen with a privacy-focused, minimal interface. The Apophis Terminal gives you direct access to a full Linux command line. Together they deliver a genuinely different kind of phone — one that is yours.

🚀

Apophis Launcher

Custom Android launcher with grayscale toggle, app timers, mindful pause, and focus schedules. No Google dependencies.

⌨️

Apophis Terminal

Full Linux command line access via a custom-built terminal. Real tools, real shell, real Linux — no desktop required.

📱

Low-End Device Support

Designed for phones that cannot run a full GUI. If it runs Android 8.1+ and has 2GB RAM, it runs Platform.

🔒

Privacy by Default

No telemetry. No tracking. No big tech dependencies. ADB-managed, rootless where possible.

⏱️

Digital Wellbeing Tools

Built-in app timers, focus blocks, and screen time management. Your phone works for you, not the other way around.

🛠️

No Root Required

Fully ADB-managed install. No bootloader unlock needed. Works on locked-down carrier devices.

Buy a Ready-to-Go Device

Don't want to build it yourself? Browse the GigLife Gaming store on eBay — phones, tablets, and laptops with ApophisOS pre-installed and ready to go out of the box.

Browse eBay Store

Questions about which tier is right for your device?

WhatsApp Ask on Signal

ApophisOS — Is It Mobile Linux?

You Decide.

The mobile Linux space is full of fascinating projects taking very different paths to the same destination. Here is an honest look at how ApophisOS fits into that conversation — and why we think the question itself is more interesting than the answer.

What do we all agree on?

Before anything else — a hat tip. Projects like postmarketOS, Ubuntu Touch, and Sailfish OS are doing genuinely impressive work. Mainlining drivers, building telephony stacks from scratch, and pushing manufacturers toward openness takes real dedication. The mobile Linux community as a whole is moving in a great direction.

ApophisOS comes at the same problem from a different angle — not better or worse, just different. And that difference raises an interesting question worth exploring together: what actually makes something a mobile Linux platform?

Here is where everyone agrees, regardless of project: every major mobile Linux effort — including ApophisOS — runs on the Linux kernel. On most devices, that means the Android Linux kernel. That part of the debate was settled a long time ago.


One rule that everyone respects.

"The biggest thing any program can do is not the technical details — it's how useful the program is to users. Any time any program breaks the user experience, that's the absolute worst failure a software project can make." — Linus Torvalds

Linus has enforced this rule — don't break userspace — more consistently than almost any other principle in open source. It is not about ideology. It is about the user sitting in front of the machine, trying to get something done.

ApophisOS takes this seriously as a design goal. The Apophis Terminal and Plasma Lite environment sit on top of a fully functional Android userspace — calls, texts, 5G, audio, Bluetooth — all of it intact. Nothing is broken in service of architectural purity. The phone still works like a phone, and the Linux environment runs alongside it without conflict.

That is a philosophical choice, not a criticism of projects that make different tradeoffs. Every approach has genuine merit.


How everyone handles the blob problem.

Here is something worth understanding about how mobile Linux projects actually work under the hood — because the approach is more similar across projects than it might appear from the outside.

// Ubuntu Touch & Sailfish — via Halium / libhybris
› Android base flashed to device first
› libhybris bridges Android hardware blobs to glibc Linux userspace
› Android daemons run in a managed container alongside Linux
› Linux environment layered on top with its own init (systemd)

// ApophisOS — direct approach
› Android kernel and HAL are the foundation — used directly
› Apophis Terminal provides native Linux userspace via root packages
› Plasma Lite delivers a full desktop environment over X11
› Hardware blobs accessed natively — no translation layer needed

Both approaches are using Android's vendor hardware blobs to make the device work — that is not a knock on anyone, it is just the reality of the hardware ecosystem we are all working in. The difference is mainly in how that bridge is constructed. libhybris is an elegant piece of engineering. ApophisOS skips the bridge and builds natively on what is already there.

Neither is the "right" way. They are both interesting solutions to the same hard problem.


Different paths, same destination.

Feature ApophisOS Ubuntu Touch postmarketOS
Linux kernel ✓ Android Linux ✓ Android Linux ✓ Mainline preferred
Hardware blob access ✓ Direct via root ~ Via libhybris shim ~ Mainline drivers where available
Voice & SMS ✓ Native Android stack ~ Device dependent ~ Variable by port
5G / LTE ✓ Full modem stack ~ Varies by port ~ Limited on most devices
Desktop environment ✓ Plasma Lite ✓ Lomiri / Unity 8 ✓ Phosh / Plasma / GNOME
Terminal environment ✓ Apophis Terminal ~ Available ✓ Full Alpine/apk
Security / pentest tools ✓ 23-tool native suite ~ Not a focus ~ Available via apk
Daily driver hardware ✓ Full — no compromises ~ Most things work ~ Varies significantly

The table tells a nuanced story. Ubuntu Touch and postmarketOS have broader device coverage and a more traditional Linux init stack — genuine strengths. ApophisOS has zero hardware compromises and a native security toolset. These are different priorities, not a ranking.


ApophisOS against four simple criteria.

Here is one way to frame the "is it mobile Linux" question. Four criteria — drawn from how Linus himself talks about what Linux is and what it should do.

Does it run natively on the Linux kernel?

Yes. The Android kernel is the Linux kernel. ApophisOS runs directly on it with full system call access and root-level process management — no virtualization, no emulation layer.

Does it provide access to all hardware services?

Yes. Radio, modem, audio, Bluetooth, camera, sensors, GPU — everything works, accessed through the vendor HAL directly. No hardware capabilities are sacrificed.

Does it respect and preserve userspace?

Yes. The Apophis Terminal and Plasma Lite layer coexist with the Android userspace rather than replacing it. Nothing existing breaks. Linus' golden rule: honored.

Does it make the user more capable without compromise?

That is the goal. A full desktop environment, a native security toolkit, sustained compute workloads, and verified multi-day uptime — on a device that still makes calls and sends texts without missing a beat.


Where ApophisOS stands differently.

🔩

The hardware manufacturer situation affects everyone equally

Proprietary hardware drivers are a challenge for every mobile Linux project. postmarketOS pursues mainlining. Ubuntu Touch uses libhybris. ApophisOS accepts the current hardware reality and builds fully on top of it. All three are valid responses to the same upstream problem.

🧩

The "blob" question applies broadly across the space

Every project using Halium or libhybris is, by definition, depending on Android hardware blobs. That is not a criticism — it is what makes mobile Linux work on real hardware today. ApophisOS does the same thing, just without the translation layer in between.

⚖️

Coexisting with Android vs. replacing it is a real distinction

Ubuntu Touch and postmarketOS replace the Android userspace — a meaningful architectural statement. ApophisOS coexists with Android's userspace. Whether that is "still Linux" or "Linux on Android" is a genuinely interesting question and reasonable people land in different places.

🖥️

The user experience is the part that is hard to argue with

Whatever label you put on it, the experience is real: a full desktop environment via Plasma Lite, a native terminal, a 23-tool security suite, and a device that functions perfectly as a daily driver. The philosophical debate is interesting. The working device is the point.


So — is it mobile Linux?

ApophisOS runs on the Linux kernel. It respects userspace. It delivers a full Linux desktop and terminal environment on a fully functional mobile device. It uses Android's hardware layer the same way Ubuntu Touch uses libhybris — just more directly.

Is that a mobile Linux distro? A mobile Linux platform? A Linux environment on mobile? The lines are genuinely blurry — and we think that is fine. The mobile Linux space is young, creative, and still figuring out its own definitions.

We will keep building. You decide what to call it.

Built on Linux. Built for people who use it.

A privacy-first, Linux-native mobile platform. No compromises on hardware. No broken userspace. Just a device that works — and a desktop that means it.

Help & Support

Troubleshooting · Fixes · Contact

Common issues and fixes for both the paid ApophisOS APK and the free Termux tier. If you can't find your answer here, tap the Signal button at the bottom and message directly.

Paid APK Issues

APK won't install — "App not installed"

Enable unknown sources first: Settings → Security → Install unknown apps → allow your file manager or browser. Then try installing again.

If it still fails, uninstall any previous version first:

adb uninstall com.termuxCOPY
App crashes immediately on launch

Go to Settings → Apps → ApophisOS → Battery → Unrestricted. The OS is killing the app before it can start. After setting to Unrestricted, force stop and relaunch.

Rootfs download stuck or failed

Make sure you are on WiFi — mobile data is often too slow. Force stop the app, reopen it, and the download will resume. If it still fails:

adb shell pm clear com.termuxCOPY

Then relaunch — it will re-download the rootfs fresh.

Plasma desktop won't start — black screen

Long-press the Display button in the orb menu and make sure your start script is exactly:

PLASMA_PLATFORM=tablet dbus-launch --exit-with-session startplasma-wayland > /dev/null 2>&1 &COPY
Plasma starts but crashes after a few seconds

Run this inside the terminal to update all packages:

pacman -Syu --noconfirmCOPY

Then try launching again. Outdated packages are the most common cause of Plasma crashes.

pacman "unable to lock database" error
rm -f /var/lib/pacman/db.lck pacman -SyuCOPY
Plasma desktop doesn't auto-start on boot

Go to Settings → Apps → ApophisOS → Battery → Unrestricted. Also make sure the app has been opened at least once manually first. Boot auto-start only activates after the first manual launch.

Chromium won't launch — sandbox error
sed -i 's|Exec=/usr/bin/chromium|Exec=/usr/bin/chromium --no-sandbox --disable-setuid-sandbox|g' /usr/share/applications/chromium.desktopCOPY
Keyboard types in wrong app or no keyboard appears

Install Hacker's Keyboard from the Play Store and set it as your default keyboard. It sends keystrokes directly to the Wayland compositor without Android's IME layer interfering.

Screen too small / everything tiny

Long-press Display in the orb menu and change the DPI value:

WAYLAND_DISPLAY=wayland-apophisos dbus-launch --exit-with-session startplasma-wayland > /tmp/plasma.log 2>&1 &COPY

Edit the start script and change -dpi 160 to -dpi 180 or -dpi 200. Higher = larger.


Free Tier Issues

Termux won't install — "App not installed"

Enable unknown sources: Settings → Security → Install unknown apps → allow your file manager. All three APKs (Terminal, X11, Boot) must come from the same download source.

termux-x11-nightly install fails — "Unable to locate package"

You must install x11-repo first before installing nightly. Run these in order:

pkg install -y x11-repoCOPY
pkg install -y termux-x11-nightly pulseaudio proot-distro wgetCOPY
proot-distro install fails or hangs

Make sure you're on WiFi. If it hangs, press Ctrl+C and run again — it will resume the download. If it fails repeatedly:

proot-distro remove debian proot-distro install debianCOPY
Desktop won't launch — black screen in X11

The X server lock file is stuck. Run this in Termux:

rm -f /tmp/.X0-lock /tmp/.X11-unix/X0COPY

Then run your start script again.

apt / apk / pacman lock error

Run this inside your distro:

# Debian / Ubuntu rm -f /var/lib/dpkg/lock-frontend /var/cache/apt/archives/lock apt update # Alpine rm -f /run/apk.lock apk update # Arch rm -f /var/lib/pacman/db.lck pacman -SyuCOPY
Chromium won't open from desktop menu

Run this inside your distro — replace chromium with chromium-browser if on Ubuntu or Fedora:

sed -i 's|Exec=/usr/bin/chromium|Exec=/usr/bin/chromium --no-sandbox --disable-setuid-sandbox|g' /usr/share/applications/chromium.desktopCOPY
Desktop auto-boot stopped working

Open ApophisX Boot — tap it once to re-register it as a boot service. Then go to Settings → Apps → ApophisX, ApophisX X11, ApophisX Boot → Battery → Unrestricted on all three.

Forgot desktop user password
proot-distro login debian passwd apophisCOPY
Wrong commands showing in the setup guide

Make sure you tap your distro card in Step 3 before selecting a desktop in Step 4. The commands update based on which distro is selected. Look for the green "Selected distro: [name]" indicator above the desktop cards.


Message the Developer Directly

For problems with devices or app setup, contact the developer on WhatsApp, Signal, or email. Real person, real help — no support ticket.

WhatsApp Message on Signal

Or email giglifegaming@proton.me

ApophisOS Free

ApophisX · XFCE4 · No Proot · No Cost

Full Linux desktop on any Android. Free forever. Native ApophisX build — no proot container. Follow Phases 01-11 in order to get the desktop running, then add whatever optional sections you want.

▼ PRE-INSTALL — 4 APKs Required

All four are ApophisX-branded builds, hosted here. Download and install all four before starting Phase 01.

ApophisX

Base terminal — required first.

Download
Size~37 MB

ApophisX X11

X11 display server.

Download
Size~6.4 MB

ApophisX Boot

Auto-launch on device boot — open once after install.

Download
Size~1.8 MB

ApophisX Widget

Home screen tap shortcuts.

Download
Size~11.9 MB
WARNING: Uninstall any existing stock Termux, Termux:X11, Termux:Boot, or Termux:Widget apps first — mixing stock and ApophisX-branded versions will cause conflicts. Open ApophisX Boot at least once after install.
PHASE 01First Boot Setup
Run termux-setup-storage FIRST. Tap Allow when prompted. Without this, storage paths fail silently.
termux-setup-storage
pkg update -y && pkg upgrade -y
echo 'export DISPLAY=:0' > ~/.bashrc && echo 'export PULSE_SERVER=127.0.0.1' >> ~/.bashrc && source ~/.bashrc
› Creates .bashrc with DISPLAY and PULSE_SERVER set — required for all X11 apps to work
PHASE 02Add Repositories
pkg update && pkg upgrade -y
pkg install x11-repo tur-repo -y
PHASE 03Core System Packages
PulseAudio is required for audio in Chromium (YouTube) and all X11 apps. dbus is required for xfce4-session. xorg-xrdb applies DPI settings.
pkg install termux-x11-nightly pulseaudio wget curl -y
pkg install dbus xorg-xrdb git unzip fastfetch -y
PHASE 04XFCE4 Desktop — Individual Packages Only
DO NOT install xfce4-goodies. It pulls parole → gst-libav → ffmpeg which has a broken build in current x11-repo and will break the install.
If you hit ffmpeg/parole dpkg error run this first:
dpkg --remove --force-remove-reinstreq ffmpeg gst-libav parole xfce4-goodies 2>/dev/null; apt-get clean && apt-get update
pkg install xfce4 xfce4-whiskermenu-plugin pcmanfm xfce4-terminal -y
pkg install xfce4-taskmanager xfce4-pulseaudio-plugin -y
pkg install mousepad ristretto thunar-archive-plugin -y
PHASE 05Icons + GPU Acceleration
pkg install papirus-icon-theme -y
pkg install virglrenderer-android -y
› virglrenderer = GPU acceleration for Snapdragon/Adreno — improves browser performance
rm -f $PREFIX/share/icons/Papirus-Dark/icon-theme.cache && gtk-update-icon-cache -f -t $PREFIX/share/icons/Papirus-Dark
PHASE 06Start Script — start-apophis.sh
Uses startxfce4 which handles the full XFCE4 session including WM, panel, desktop and touch input. PulseAudio TCP module enables YouTube/browser audio. Socket-check waits for X11 readiness — no fixed sleep.
Display scaling: The -dpi 180 flag is a starting point. After launch, pull down the Android notification panel → ApophisX X11 → Output → Scaled → adjust per device. The X11 setting overrides -dpi and persists across reboots. No config changes needed between devices.
Block 1 — Kill existing + start PulseAudio
printf $'#!/data/data/com.termux/files/usr/bin/bash\npkill -f termux-x11 2>/dev/null\npkill xfce4-session 2>/dev/null\nsleep 1\npulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1\nexport XDG_RUNTIME_DIR=${TMPDIR}\nexport PULSE_SERVER=127.0.0.1\nexport DISPLAY=:0\n' > ~/start-apophis.sh
Block 2 — Start X11 + socket wait
printf $'termux-x11 :0 -dpi 180 >/dev/null &\nSOCKET="${TMPDIR}/.X11-unix/X0"\nCOUNT=0\nuntil [ -S "$SOCKET" ] || [ $COUNT -ge 30 ]; do\n  sleep 0.3\n  COUNT=$((COUNT + 1))\ndone\n' >> ~/start-apophis.sh
Block 3 — Launch activity + start XFCE4
printf $'am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity >/dev/null 2>&1\nsleep 2\ndbus-launch --exit-with-session startxfce4 &\nexit 0\n' >> ~/start-apophis.sh
chmod +x ~/start-apophis.sh && cat ~/start-apophis.sh
› Verify: pulseaudio TCP line present, startxfce4 at the end
PHASE 07Fastfetch — ApophisOS Config
mkdir -p ~/.config/fastfetch
Apophis logo file
printf $'                    A\n                   A A\n                  A   A\n                 A     A\n                AAAAAAAAA\n               A         A\n              A           A\n\n             ~~~~~~~~~~~~~~~~~\n\n                PPPPPPPPP\n                P       P\n                P       P\n                PPPPPPPPP\n                P\n                P\n                P\n' > ~/.config/fastfetch/ap.txt
Fastfetch config
printf $'{\n  "logo": {\n    "type": "file",\n    "source": "~/.config/fastfetch/ap.txt",\n    "color": { "1": "red" }\n  },\n  "modules": [\n    "title","separator",\n    {"type":"os","format":"ApophisOS"},\n    "host","kernel","uptime","packages",\n    "shell","display","wm","terminal",\n    "cpu","memory","disk",\n    {"type":"custom","format":"PulseAudio TCP 127.0.0.1","key":"Audio"}\n  ]\n}\n' > ~/.config/fastfetch/config.jsonc
fastfetch
› Verify: ApophisOS branding, A/P logo in red, PulseAudio line visible
PHASE 08Browsers — Chromium + Firefox-Tor
Chromium = everyday browser, DuckDuckGo homepage, YouTube audio. Firefox = Tor/anonymous only. Both must be launched via wrapper scripts (Phase 09) that set PULSE_SERVER=127.0.0.1 for audio. Tor routing for Firefox requires the optional Privacy section below.
pkg install chromium firefox -y
PHASE 09App Launchers — .desktop Files with Audio
All apps that need audio must export PULSE_SERVER=127.0.0.1. These .desktop files appear in Whisker Menu automatically. Chromium opens DuckDuckGo as homepage.
Block 1 — Chromium + Firefox-Tor
mkdir -p ~/.local/share/applications ; printf $'[Desktop Entry]\nName=Chromium\nExec=env PULSE_SERVER=127.0.0.1 chromium --homepage="https://duckduckgo.com" --no-sandbox\nIcon=chromium\nType=Application\nCategories=Network;WebBrowser;\n' > ~/.local/share/applications/chromium-apophis.desktop ; printf $'[Desktop Entry]\nName=Firefox (Tor)\nExec=env PULSE_SERVER=127.0.0.1 torsocks firefox\nIcon=firefox\nType=Application\nCategories=Network;WebBrowser;\n' > ~/.local/share/applications/firefox-tor.desktop
› Firefox (Tor) requires torsocks, installed with the optional Privacy section below. The launcher works once that's installed.
Block 2 — Terminal + Files + Audio Mixer
printf $'[Desktop Entry]\nName=Terminal\nExec=xfce4-terminal\nIcon=org.xfce.terminal\nType=Application\nCategories=System;\n' > ~/.local/share/applications/apophis-terminal.desktop ; printf $'[Desktop Entry]\nName=Files\nExec=thunar\nIcon=system-file-manager\nType=Application\nCategories=System;\n' > ~/.local/share/applications/apophis-files.desktop ; printf $'[Desktop Entry]\nName=Audio Mixer\nExec=pavucontrol\nIcon=multimedia-volume-control\nType=Application\nCategories=Audio;\n' > ~/.local/share/applications/apophis-audio.desktop
update-desktop-database ~/.local/share/applications/
PHASE 10Launch the Desktop
This is the command that actually starts the desktop — Phase 06 only built the script, it didn't run it.
bash ~/start-apophis.sh
ApophisX X11 display scaling — per device: Pull down Android notification → ApophisX X11 → Output → Scaled → adjust visually. Pointer → Direct Touch. The -dpi 180 flag stays unchanged. X11 overrides it and persists.
fastfetch
› Run once inside xfce4-terminal after first launch to confirm ApophisOS branding shows correctly.
Audio test: Open Chromium from the panel → YouTube → play a video. If no audio run: pulseaudio --kill && pulseaudio --start then relaunch the browser.
Note: This guide doesn't configure a custom panel. XFCE's default panel appears on first launch. Whisker Menu is installed (Phase 04) but not added to the panel automatically — right-click the panel → Panel → Add New Items → Whisker Menu to add it.
PHASE 11Scale the Environment to Fit the Screen
The first boot is tiny. This is normal — XFCE defaults to 96 DPI regardless of your phone's actual screen density. Two layers control the final size: the ApophisX X11 Preferences display scale, and XFCE's font DPI. Use them together — adjust one, check how it looks, adjust the other — until it's scaled to your liking. Panel size is a separate, optional third adjustment.
Step 1 — ApophisX X11 output scale (do this first)
Long-press the ApophisX X11 icon in your app launcher to open its Preferences screen. Under Display, set Resolution mode to Scaled, then adjust the Display Scale percentage. This is the same setting reachable via the notification shade shortcut (pull down → ApophisX X11 → Output → Scaled), but the Preferences screen gives finer control. Use this together with the DPI setting in Step 2 — adjust both back and forth until the desktop looks right to you. There's no single correct value; it depends on your device's screen size and your own preference.
Step 2 — Fix font size (XFCE Custom DPI)
This is the fix ApophisX X11's own documentation points to for correcting font size specifically.
xfconf-query -c xsettings -p /Xft/DPI -s 192
› 96 = 100% (default, too small on phone screens), 144 = 150%, 192 = 200%. Stick to multiples of 96 — they render sharper. Run the command again with a different value to readjust; it applies instantly, no restart needed.
› Same setting via GUI: Whisker Menu → Settings → Appearance → Fonts tab → check Custom DPI → drag the value.
Step 3 — Panel size
The default XFCE panel from Phase 04 is sized for a mouse, not a finger. Increase it separately from font DPI.
xfconf-query -c xfce4-panel -p /panels/panel-1/size -s 40
› Default is around 26-30px. 40-48 is a reasonable touch target. Adjust and re-run to taste.
Don't stack this with GTK window scaling. XFCE also has a separate /Gdk/WindowScalingFactor setting (whole-number 2x, 3x GTK scaling). Setting that at the same time as a large Xft/DPI value compounds — icons and windows end up oversized. Use Xft/DPI alone for phone screens; only reach for WindowScalingFactor if fonts are readable but icons/buttons are still too small after trying a higher DPI value.
› If cursor and window borders still look small after DPI is fixed, that's a separate cosmetic setting (cursor theme size, xfwm4 window theme) — not required to use the desktop, safe to leave as default.

▼ OPTIONAL INSTALLS

Everything below is optional — the desktop from Phases 01-11 works fully without any of it. Install only the sections you want.

OPTIONALDevelopment Tools

code-oss

VS Code IDE

tur-repo

python3 + pip

Python runtime

main

nodejs + npm

JS runtime

main

golang

Go language

main

ruby

Ruby runtime

main

clang + make + cmake

C/C++ toolchain

main

neovim

Modern vim editor

main

git + gh

Version control

main

openssh + sqlite

SSH + database

main

tmux + perl

Multiplexer + Perl

main
pkg install code-oss -y
pkg install python python-pip nodejs golang ruby -y
pkg install clang make cmake neovim git gh openssh sqlite tmux perl -y
OPTIONALSecurity Tools — Verified Packages
Authorized use only. Only use on networks and systems you own or have explicit written permission to test.
Verified in Termux repos 2026: nmap (main), thc-hydra (tur), wireshark-qt (x11), netcat-openbsd (main), gobuster (main), ffuf (main), hashcat (main), whois+dnsutils+openssl (main), sqlmap (pip), metasploit (tur-hacking).

nmap

Network scanner

main ✅

thc-hydra

Login brute-force

tur-repo ✅

wireshark-qt

Packet capture GUI

x11-repo ✅

netcat-openbsd

TCP/UDP utility

main ✅

gobuster + ffuf

Dir/web fuzzing

main ✅

hashcat

Password cracker

main ✅

sqlmap

SQL injection

pip ✅

metasploit

Exploitation framework

tur-hacking ✅
pkg install nmap thc-hydra wireshark-qt netcat-openbsd gobuster ffuf hashcat whois dnsutils openssl -y
pip install sqlmap
pkg install metasploit -y
› metasploit is ~300MB — large download
Launchers — Nmap + Wireshark
printf $'[Desktop Entry]\nName=Nmap\nExec=xfce4-terminal -e "nmap"\nIcon=applications-system\nType=Application\nCategories=System;Security;\n' > ~/.local/share/applications/nmap.desktop ; printf $'[Desktop Entry]\nName=Wireshark\nExec=env PULSE_SERVER=127.0.0.1 wireshark\nIcon=wireshark\nType=Application\nCategories=System;Security;\n' > ~/.local/share/applications/wireshark.desktop ; update-desktop-database ~/.local/share/applications/
OPTIONALPrivacy — Tor + proxychains + 14-Eyes Exclusion
Tor routes traffic only for apps explicitly sent through it via torsocks or proxychains-ng. The 14-Eyes ExcludeExitNodes config prevents exit through surveillance alliance nations. StrictNodes 1 enforces it.
14-Eyes nations excluded: US, UK, AU, CA, NZ (Five Eyes) + FR, DE, BE, IT, ES, NL, DK, NO, SE.
pkg install tor torsocks proxychains-ng -y
printf $'strict_chain\nproxy_dns\nquiet_mode\n[ProxyList]\nsocks5 127.0.0.1 9050\n' > $PREFIX/etc/proxychains.conf
mkdir -p $PREFIX/var/lib/tor && printf $'\nExcludeExitNodes {us},{gb},{au},{ca},{nz},{fr},{de},{be},{it},{es},{nl},{dk},{no},{se}\nExcludeNodes {us},{gb},{au},{ca},{nz},{fr},{de},{be},{it},{es},{nl},{dk},{no},{se}\nStrictNodes 1\n' >> $PREFIX/etc/tor/torrc
Tor start/stop/status scripts
printf $'#!/data/data/com.termux/files/usr/bin/bash\necho "[*] Starting Tor..."\ntor --RunAsDaemon 1 --PidFile $HOME/.tor.pid --DataDirectory $PREFIX/var/lib/tor\nsleep 4\npgrep -x tor && echo "[+] Tor running. SOCKS5: 127.0.0.1:9050" || echo "[-] Tor failed"\n' > ~/tor-start.sh && chmod +x ~/tor-start.sh
printf $'#!/data/data/com.termux/files/usr/bin/bash\npkill -x tor && echo "[+] Tor stopped." || echo "[-] Tor was not running."\n' > ~/tor-stop.sh && chmod +x ~/tor-stop.sh
printf $'#!/data/data/com.termux/files/usr/bin/bash\npgrep -x tor && echo "[+] Tor RUNNING" || echo "[-] Tor STOPPED"\n' > ~/tor-status.sh && chmod +x ~/tor-status.sh
bash ~/tor-start.sh && sleep 5 && torsocks curl -s https://check.torproject.org/api/ip
› Verify: IsTor:true in the output confirms Tor is routing traffic
Launchers — Tor Start / Stop / Status
printf $'[Desktop Entry]\nName=Tor Start\nExec=xfce4-terminal -e "bash ~/tor-start.sh"\nIcon=preferences-system-network\nType=Application\nCategories=System;\n' > ~/.local/share/applications/tor-start.desktop ; printf $'[Desktop Entry]\nName=Tor Stop\nExec=xfce4-terminal -e "bash ~/tor-stop.sh"\nIcon=preferences-system-network\nType=Application\nCategories=System;\n' > ~/.local/share/applications/tor-stop.desktop ; printf $'[Desktop Entry]\nName=Tor Status\nExec=xfce4-terminal -e "bash ~/tor-status.sh"\nIcon=preferences-system-network\nType=Application\nCategories=System;\n' > ~/.local/share/applications/tor-status.desktop ; update-desktop-database ~/.local/share/applications/

▼ OPTIONAL — AUTO-START & SHORTCUTS

Optional convenience features. Not required to use the desktop.

OPTIONALApophisX Boot — Auto-Start on Device Boot
Requires ApophisX Boot APK installed and opened at least once. Waits for Android to fully boot then launches ApophisOS automatically.
mkdir -p ~/.termux/boot && printf $'#!/data/data/com.termux/files/usr/bin/bash\ntermux-wake-lock\nuntil [ "$(getprop sys.boot_completed)" = "1" ]; do sleep 2; done\nsleep 3\nbash /data/data/com.termux/files/home/start-apophis.sh\n' > ~/.termux/boot/start-apophis-boot.sh && chmod +x ~/.termux/boot/start-apophis-boot.sh
cat ~/.termux/boot/start-apophis-boot.sh
› Verify: termux-wake-lock line present, start-apophis.sh path correct
OPTIONALApophisX Widget — Home Screen Shortcuts
Requires ApophisX Widget APK installed. Long-press Android home screen → Widgets → ApophisX Widget → tap to place. Each script = one tappable widget.
mkdir -p ~/.shortcuts && printf $'#!/data/data/com.termux/files/usr/bin/bash\nbash /data/data/com.termux/files/home/start-apophis.sh\n' > ~/.shortcuts/Launch-ApophisOS.sh && printf $'#!/data/data/com.termux/files/usr/bin/bash\nbash /data/data/com.termux/files/home/tor-start.sh\n' > ~/.shortcuts/Tor-Start.sh && printf $'#!/data/data/com.termux/files/usr/bin/bash\nbash /data/data/com.termux/files/home/tor-stop.sh\n' > ~/.shortcuts/Tor-Stop.sh && chmod +x ~/.shortcuts/*.sh
ls -la ~/.shortcuts/
› Tor-Start / Tor-Stop shortcuts only work if the optional Privacy section is installed.

■ Source Reference — Verified 2026

ComponentMethodSource / Notes
ApophisXAPKapophisos.com
ApophisX X11APKapophisos.com
ApophisX BootAPKapophisos.com — open once after install
ApophisX WidgetAPKapophisos.com
XFCE4pkg install xfce4x11-repo — DO NOT install xfce4-goodies
Whisker Menupkg install xfce4-whiskermenu-pluginx11-repo — panel plugin, app launcher
pcmanfmpkg install pcmanfmx11-repo — lightweight file manager
pulseaudiopkg install pulseaudiomain — TCP module for browser audio
nmap / thc-hydra / wireshark-qtpkg installmain / tur-repo / x11-repo ✅ (optional)
gobuster / ffuf / hashcatpkg installmain ✅ (optional)
sqlmappip installPyPI ✅ (optional)
metasploitpkg installtur-hacking ✅ ~300MB (optional)
tor + torsocks + proxychains-ngpkg installmain ✅ (optional)