Charch OpenRC

Magisk KSU APatch

A chroot container is powerful on its own — but without an init system, every service must be started manually on each reboot. Charch OpenRC by tytydraco solves this by initializing the battle-tested OpenRC service manager inside your Arch Linux ChArch instance. SSH daemons, web servers, database engines — any service registered with OpenRC starts automatically and reliably every time Android boots, turning your device into a persistent, self-managing headless Linux server.

OpenRC on Android — Key Capabilities

A full dependency-based init system inside your Android-hosted Arch Linux container — services that start themselves, manage dependencies, and recover from failures.

Auto-Start Services on Boot

Register any service with rc-update add <service> default and it will launch automatically every time Android boots and the ChArch instance initializes — SSH, nginx, PostgreSQL, cron, and any other OpenRC-compatible daemon.

Dependency-Based Init

OpenRC resolves service startup order by declared dependencies — if nginx depends on network, OpenRC guarantees the network is up before nginx starts. No manual ordering or sleep hacks required in service scripts.

Full Service Control

Manage running services interactively with standard OpenRC commands — rc-service sshd start, rc-service nginx restart, rc-status for an overview of all services and their states. Familiar tooling for any Linux administrator.

Runlevel Management

OpenRC's classic runlevel model (default, sysinit, boot, shutdown) provides structured control over the container lifecycle. Services are grouped by runlevel to separate initialization stages from runtime daemons.

Lightweight — No systemd Overhead

OpenRC is implemented in C with minimal dependencies — no D-Bus, no cgroups v2 enforcement, no socket activation complexity. It boots faster and uses less RAM than systemd while offering far more service management features than a basic shell script approach.

Standard /etc/init.d Scripts

OpenRC uses the universal /etc/init.d/ service script format — the same format used by Alpine Linux, Gentoo, Void Linux, and Artix. Any existing OpenRC service script from the Arch or Alpine package repositories works out of the box.

How Charch OpenRC Integrates with Android

When installed alongside the base charch module, Charch OpenRC patches the ChArch rootfs startup sequence to invoke openrc during container initialization. On Android boot, Magisk's service framework triggers the charch boot script, which mounts the Arch Linux rootfs and then hands off control to OpenRC's init sequence.

OpenRC runs its sysinitbootdefault runlevel sequence inside the chroot, starting each registered service in dependency order. Because the chroot shares Android's Linux kernel directly, there is no virtualization boundary — services access the network stack, filesystem, and hardware interfaces at native kernel speed with zero translation overhead.

The result is a persistent Linux daemon environment running on your Android device: an SSH server always listening, a web server always ready, a database engine always accepting connections — all managed by the same OpenRC tooling you would use on any headless Linux server, accessible from any terminal on the same network.

Essential OpenRC Commands

Once inside the ChArch chroot, manage your services with these standard OpenRC commands:

# Check status of all services
rc-status
# Start a service right now
rc-service sshd start
# Stop a service
rc-service nginx stop
# Restart a service
rc-service postgresql restart
# Enable a service to auto-start on boot
rc-update add sshd default
# Disable a service from auto-starting
rc-update del sshd default
# List all services and their runlevels
rc-update show

Common Services to Auto-Start

OpenSSH
rc-update add sshd
Nginx
rc-update add nginx
PostgreSQL
rc-update add postgresql
Cron (cronie)
rc-update add cronie

Init System Comparison

Feature systemd dinit OpenRC
Works in Android chroot
Dependency-based ordering
Runlevel support
Memory footprint Heavy Minimal Light
Standard /etc/init.d scripts
Requires D-Bus / cgroups v2
Ecosystem maturity Very High Growing High

Frequently Asked Questions

Charch OpenRC is a systemless root module developed by tytydraco. It initializes OpenRC as the service manager inside the default ChArch Arch Linux chroot instance, allowing background daemons like SSH, nginx, and databases to start automatically on every device boot.

OpenRC is a classic, dependency-based init system widely used in distributions like Alpine Linux and Gentoo. While systemd is too bloated and requires D-Bus and cgroups v2 (unavailable in a chroot), and dinit is ultra-minimalist, OpenRC provides a perfect middle ground — offering robust, proven service management with runlevel support and standard /etc/init.d scripts, without excessive overhead.

Yes. PRoot works in user-space by simulating root access using ptrace, which introduces a measurable performance penalty on every system call. Because Charch uses a native chroot, it shares Android's Linux kernel directly with zero translation overhead — delivering near-desktop execution speeds for both the init system and all running services.

The compiled flashable .zip is currently not hosted on the GitHub repository's release page. The working build is archived and linked directly through the Magisk Repo Telegram channel to ensure users always access a verified, functional version.

Module Info

  • Version Latest
  • Module By
    tytydraco
  • Source Code View Repository
  • Tags
    #Arch Linux #Chroot #OpenRC #Linux on Android #Terminal #tytydraco
  • Requirement
    Magisk KernelSU APatch
  • Latest Update