An Omarchy-inspired OS on Android, for Omarchy.
Omarchy is a beautiful, modern, opinionated Linux. Omadroid is that idea on a phone: stock AOSP, no Play Store, no Play services.
This machine already runs Omarchy. This repository currently ships a local AOSP workbench so we can build and run the OS here.
Need a JDK 17 or newer on PATH. Then:
./scripts/setup.shThat downloads Google's command-line tools, checks the zip SHA-256, accepts the SDK licenses, installs platform-tools, the emulator, and the newest stable system-images;android-*;default;x86_64 package, and creates an AVD named omadroid.
First run is a few gigabytes.
./scripts/start.shWindowed boots use -fixed-scale so the guest is 1:1 device pixels. Auto-scale on a HiDPI or XWayland host either shrinks the phone to a postage stamp or leaves a tiled window mostly empty.
On Omarchy / Hyprland, float the window whose class is Emulator:
o.window("^Emulator$", { float = true })Headless (adb only):
./scripts/start.sh --headlessInstall the stock Omadroid HOME app (strips the product apps first):
./scripts/install-launcher.shIf the window comes up with a black screen or a GPU error, start again with software rendering:
./scripts/start.sh -- -gpu swiftshader_indirectAfter the emulator window appears, from another terminal:
./sdk/platform-tools/adb wait-for-device
./sdk/platform-tools/adb shell getprop sys.boot_completed
./sdk/platform-tools/adb shell getprop ro.build.flavor
./sdk/platform-tools/adb shell pm list packagesro.build.flavor should not mention google. pm list packages should not include com.android.vending or com.google.android.gms. AOSP images allow adb root.
| Path | Role |
|---|---|
sdk/ |
ANDROID_HOME (cmdline-tools, emulator, platform-tools, system images) |
avd/ |
ANDROID_AVD_HOME (omadroid.ini and the disk) |
.android/ |
emulator user files |
scripts/setup.sh |
install the workbench |
scripts/start.sh |
boot the workbench |
scripts/strip.sh |
hide stock product apps |
scripts/install-launcher.sh |
build and set the Omadroid HOME app |
scripts/lib.sh |
path and package-picking helpers |
launcher/ |
stock HOME app (com.omadroid.launcher) |
Those three data directories are gitignored.
adb from platform-tools still writes its server lock and key under ~/.android. That is the tool's own home directory, not the emulator image.
./tests/lib.test.sh
cd launcher && ./gradlew testDebugUnitTestParser tests do not download the SDK. The Gradle tests need platforms;android-36 from setup.
Use common sense and decency. There is no formal code of conduct. We reserve the right to moderate this community to the extent of the law and the policy of the host. Write community@modoterra.xyz if you need us.