Dhruv Kumar

CipherOS & DerpFest

My stock ROM stopped getting updates in school, so I started flashing custom ones just to keep up. That turned into two years as an official maintainer, building and shipping releases from source for a device the manufacturer had moved on from.

RoleOfficial maintainer, 2 ROMsStackAOSP, Linux Kernel, msm8953, JenkinsOrgcipheros.org.in ↗

The problem

My phone, a Redmi S2/Y2 on the msm8953 chipset, stopped getting updates almost as soon as I owned it. That is an ordinary complaint. What made it stick was that flashing a custom ROM to fix it turned out to be more interesting than the phone itself: the whole build, AOSP source down to the kernel, was open, and nobody was shipping a build for this specific device that felt current.

Flashing led to building, and building led to being asked to maintain. I ended up an official maintainer on two ROM projects for the same device at once.

What maintaining a ROM meant

01KernelCompiled from source for every release, tracking upstream security patches and folding in the device-specific drivers the stock kernel never shipped.
02Device treeKept current for msm8953, the chipset class the Redmi S2/Y2 shipped on, so a build correctly described the display, radio, and sensors to everything running above it.
03Build & releaseA Jenkins pipeline built and packaged from source. Each release picked up whatever had changed upstream since the last one, not a fixed feature list.
04CommunityReleases went out to whatever remained of the device's owner base, alongside a distributed maintainer team across two ROM projects, with bug triage happening in the release threads themselves.

Result

2Official ROMs maintained at once, CipherOS and DerpFest
2,500+Installs per release, on a device its maker had stopped supporting
2021-22Active maintenance window

Where it stands now

Custom ROMs as a hobby are basically dead. Manufacturers ship longer support windows now, bootloaders lock down harder, and the phones worth flashing stopped being worth flashing. I do not think that is a loss to mourn, it is just what happens when the problem that pulled me in gets solved a different way.

What it left me with was not the ROM. It was being comfortable reading kernel source, debugging a build that fails with no stack trace to point at, and shipping something a few thousand strangers actually installed, before I had written a line of production web code.