Appearance
SOC-0016: Create a Custom Android Launcher
Project size: 3 months
Estimated difficulty: Hard
Recommended Skills
- Kotlin and Jetpack Compose knowledge
- Familiarity with Android’s SystemUI, Launcher3/QuickStep, and the AOSP build system (Soong)
- Experience compiling custom ROMs and integrating proprietary blobs
- Understanding of Android security model, SELinux, and platform signing
- Comfort working with Git, repo, and continuous‑integration pipelines
Description
Android’s core user interface (status bar, notification shade, quick settings, recents, volume HUD, power menu, etc.) is provided by the SystemUI and QuickStep apps—both written in Java/Kotlin + XML.
This project aims to rewrite those components in Jetpack Compose, bundle them into a Pixel‑Experience–derived ROM, and ship Google Play Services so end‑users keep the familiar Pixel feature set while enjoying a modern, fully themable System UI built entirely in Kotlin.
Target Devices
- Nothing Phone 3a Pro (
spacewar3a) - CMF Phone 2 Pro (
comet2p) - Fairphone 5 (
fair_5)
This project will:
- Fork Pixel‑Experience 14 manifests, add device trees & vendor blobs.
- Enable Compose inside SystemUI and Launcher3 by extending their
Android.bp, eliminating XML layouts. - Re‑implement:
- Status bar & signal/battery icons
- Quick Settings panel (tiles in
LazyVerticalGrid) - Notification shade using Compose’s
LazyColumnfed by the existing notification pipeline - Volume/Ringer dialog (
Dialog+Slider) - Power menu (
ModalBottomSheet) - Recents/gesture navigation (Compose shell around the AOSP
RecentsAnimationbridge)
- Override framework resource flags (
config_systemUIFactoryComponent,volume_dialog_component,recents_component, etc.) to point at Compose classes. - Produce flashable
system.img/ OTA zips for all three devices and document the flashing process. - Set up a GitHub Actions CI pipeline to build nightly ROM images and run CTS‑lite.
Expected Results
- Bootable Pixel‑Experience ROM for all target devices with:
- Compose‑based SystemUI & QuickStep signed by platform keys
- Fully working status bar, QS, notifications, volume HUD, power menu, and recents
- Google Play Services operational (SafetyNet / Play Integrity passes)
- Public repo + CI generating weekly OTA packages
- Developer documentation describing build, flashing, and component architecture
Stretch Goals
- Dynamic Material‑You theming of the entire System UI
- End‑user theme picker powered by Runtime Resource Overlays (RRO)
- Live reload of Compose code in System UI via ADB “compose‑hot‑swap”
- Port to additional devices (e.g., Pixel 7a) or a GSI build



