# Running Jetpack Compose Runtime on Bare-Metal Linux Systems

Leveraging Minui for direct framebuffer rendering without Android or Skia dependencies.

- **Source:** [Developing Android Apps](https://brifing.si/source/aa76b6c1-28c1-49f8-967e-b6a0eeadfa86)
- **Published:** 2026-10-21
- **Topic:** [Software & Engineering](https://brifing.si/c/engineering)
- **Original article:** <https://www.reddit.com/r/androiddev/comments/1xbcrij/jetpack_compose_runtime_on_baremetal_linux_no/>
- **On Brifing:** https://brifing.si/s/16c14efb-20be-4346-8df7-3fe1de22bfcf

## Bypassing the Android Framework

This project implements the Jetpack Compose Runtime directly on bare-metal Linux systems. By removing dependencies on the standard Android Framework and Skia graphics library, the system achieves a lightweight UI rendering environment. This approach targets low-level operations where traditional Android application stacks are too heavy or completely unavailable for execution.

## Minui as Rendering Backend

The initiative utilizes Minui, the existing library currently powering Android Recovery, as the primary backend for Compose. Minui is specifically designed to manipulate the framebuffer directly, providing a stable foundation for this implementation. By repurposing this established tool, developers can bridge modern UI declarative syntax with primitive system-level display hardware.

## Direct Framebuffer and DRM

The rendering pipeline bypasses high-level abstractions by communicating directly with fbdev and DRM interfaces. This direct hardware interaction ensures that the UI remains functional during critical system states like recovery mode or battery charging. Eliminating intermediate layers reduces latency and memory overhead, which is essential for resource-constrained environments during boot sequences.

## Targeting System-Level Interfaces

Primary use cases for this architecture include Android Recovery screens and battery charging animations. These interfaces require extreme reliability and must operate independently of the main Android OS. By decoupling the UI layer from the framework, developers can ensure that critical system feedback remains visible even when the primary operating system fails.

## Removing Skia Dependencies

A significant technical shift in this project is the complete removal of the Skia graphics engine. Skia typically handles complex rendering tasks in Android, but its exclusion here simplifies the binary footprint significantly. This reduction is necessary for environments where storage space is extremely limited and complex graphics libraries are unnecessary.

## Operational Independence Goals

The core objective is achieving total independence from the Android Framework. By running the Compose Runtime in a bare-metal context, the UI code can execute in isolated partitions. This modularity allows for more robust system maintenance tools that do not rely on the health or status of the primary Android runtime environment.

## Technical Implementation Challenges

Integrating Compose into a non-Android environment requires mapping declarative UI components to primitive framebuffer drawing commands. Developers must manage state and layout calculations without the support of standard Android View system services. This requires a custom implementation of the Compose host to handle input events and screen refresh cycles manually.

## Future System UI Implications

This project demonstrates the potential for using modern declarative UI frameworks in embedded Linux systems beyond mobile devices. By proving that Compose can function on bare-metal, it opens possibilities for standardized UI development across various low-level system tools. This could eventually lead to more consistent interfaces for recovery and diagnostic software.

## Sources covering this story

- https://www.reddit.com/r/androiddev/comments/1xbcrij/jetpack_compose_runtime_on_baremetal_linux_no/ — 

---

_Summary written by Brifing from the original reporting. Copyright in the original article belongs to its publisher; read the full piece at the link above._
