CustomDroid

Changelog

What changed on CustomDroid, release by release. The catalogue itself changes every night as ROM projects publish builds; this is about the site: new ROMs and guides, fixes, and changes to how it works.

RSS feed — get each new release in your feed reader

1.14.1

Fixed

  • Stop the nightly import failing when GitLab rate-limits Nura

1.14.0

Added

  • Find a phone by the hardware it has

Fixed

  • Name the Redmi Note 14 5G and Mi 11 Ultra instead of by codename
  • Redirect old Redmi K20 Pro and Redmi Note 14 5G links
  • Merge the Fairphone 6's duplicate "The Fairphone" page
  • Give phone pages back URLs another maker's phone was holding
  • Stop showing the Mi 9T's hardware on the Zenfone 9
  • Keep scraped code out of the search log

Changed

  • Update dependencies and clear npm audit
  • Keep the nightly run going past a failed step, and test on Node 26

1.13.0

Added

  • Define the fixed list of features phones can be filtered by
  • Fill phone features and the microSD slot from /e/OS too
  • Link crDroid's and Sakura's olives builds to the Redmi 8A and 8A Dual
  • Record which phones take a microSD card
  • Add an RSS feed for the changelog
  • Add a /changelog page
  • Add RSS feeds for every update and for each brand
  • List combined-codename builds on the phones they cover
  • Show crDroid's published SHA-256 and file size on its builds

Fixed

  • Read every crDroid branch back to Android 10, and mark old ones discontinued
  • Keep every phone's name when AOSPA lists several under one codename
  • Mark LineageOS devices it no longer maintains as discontinued
  • Build /changelog's newest section up to the deployed commit
  • Find a phone when its firmware build number is pasted with the name
  • Untangle seeded phones that mixed two manufacturers
  • Survive BlissRoms' broken devices.json
  • Point Axion and RisingOS at their current homes
  • Stop linking Project Sakura's lost domain

Changed

  • Rename postmarketOS to Nura, keeping its old links
  • Keep internal file names out of the site's changelog

1.12.0

Added

  • Make device pages answer more: no-ROM reasons, update dates, spec credits
  • Add a guide to generic system images
  • Record when each manufacturer's own updates end
  • Fill hardware specs from two more codename-keyed sources
  • Add Kali NetHunter
  • Add LineageOS for microG
  • Add LMODroid
  • Add banking app reports from readers
  • Add a guide to what phone privacy costs on Android
  • Add Sailfish OS as the 29th tracked OS

Fixed

  • Stop the "Sensors & features" chips stacking one per line
  • Redirect device URLs that moved before slugs were tracked
  • Use a stated manufacturer to settle a shared codename

Changed

  • Bring the backlog and runbook up to date
  • Run the nightly import on our own runner

1.11.0

Added

  • Replace the "Report wrong data" mailto with an anonymous review queue
  • Cross-link carrier and region versions of the same model
  • Compare up to three builds side by side on a device page
  • Tag ROMs with curated features: Pixel-style, microG, privacy and more
  • Add a per-ROM RSS feed and a read-only JSON API
  • Show SHA-256, file size and GApps/vanilla variants where a ROM states them
  • Link a first-party way back to stock for Motorola phones too
  • Say what the latest Android is, so "up to Android 16" isn't read as the ceiling
  • Add a terms of use page
  • Add a guide to what commonly breaks after flashing a custom ROM
  • Add a guide on when relocking the bootloader is safe
  • Add a guide to choosing a GApps package
  • Add a guide to restoring stock firmware and unbricking
  • Add a brand-by-brand guide to unlocking the bootloader
  • Surface LineageOS's install method, unlock command and pre-recovery steps
  • Let device pages show only current builds
  • Show when each build was last checked against its ROM's catalogue
  • Offer guides and product-line brands as search shortcuts

Fixed

  • Serve PixelExperience device photos through our origin too, and credit them
  • Give every importer a real minimum-entries floor
  • Stop LineageOS devices with a "None" list field being skipped
  • Key devices on codename plus maker, so shared codenames stop merging phones
  • Teach maker matching the brand spellings the D1 measurement found
  • Merge duplicate device rows and stop creating them
  • Give named placeholder devices real slugs, keeping old ones as redirects
  • Redirect retired device slugs to the device they became
  • Resolve aliased brand names and redirect retired brand URLs
  • Clean up Project Elixir's brand names and codenames
  • Stop codename-only model names overwriting real device names
  • Stop the language switcher linking to catalogue pages that don't exist

Changed

  • Update the backlog and runbook for the backlog pass
  • Localise the site header and footer on translated pages
  • List Linux mobile OSes apart from Android ROMs
  • Link the new safety guides from every device page's "Before you flash"
  • Point Download at the project's device page, with the dated file second
  • Record the D1 device-identity decision and D3 as shipped
  • Hide pre-fix typeahead noise in search analytics, flag resolved misses

1.10.0

Added

  • Add AfterlifeOS as the 28th ROM

1.9.1

Fixed

  • Fix the /e/OS import, broken by an upstream markup change

1.9.0

Added

  • Answer "does it have NFC" and "is it 5G" from data we already had
  • Read the hardware facts postmarketOS already publishes
  • Import the LineageOS tablets, foldables and sliders we were discarding
  • Research where the missing device specs could come from
  • Run the recovery enrichment nightly
  • Record which custom recoveries support each device
  • Warn when a ROM needs specific stock firmware before you flash
  • Write up the seven calls the backlog is actually blocked on
  • Start a backlog with what the two reviews actually turned up
  • Add a guide decoding the common flashing errors
  • Give every device page an RSS feed of its ROM builds
  • Add Organization and Article schema, drop the dead SearchAction

Fixed

  • Stop placeholder brands overwriting real device identities
  • Render ROM version strings without doubling the v
  • Stop every page sharing the home page's Open Graph card

Changed

  • Measure the Wikidata backfill instead of shipping it
  • Say what the home page actually counts, and claim what we deliver

1.8.0

Added

  • Track the four actions that mean the site worked
  • Log device pages people asked for and we don't have
  • Add PixelExperience as a discontinued ROM
  • Add YAAP as the 26th ROM
  • Add iodéOS as the 25th ROM
  • Add Ubuntu Touch, and a real form-factor column
  • Answer ROM and brand searches, not just device searches
  • Add CalyxOS as the 23rd ROM
  • Add /tablets, a custom ROM browse view for tablets
  • Add a USB drivers guide and per-device driver hint

Fixed

  • Stop the sitemap timing out for crawlers
  • Fetch iodé's device list in one paced pass
  • Log only committed searches, not every keystroke
  • Fix the dev image build failing on prisma generate

Changed

  • Update project notes for the new ROMs and form factor

1.7.0

Added

  • Add ROM x brand pages
  • Show model numbers on device pages
  • Credit the LineageOS wiki for the device photos

Fixed

  • Report real build freshness as sitemap lastmod
  • Serve device photos through our own origin instead of hotlinking

Changed

  • Describe sub-resource loading on the privacy page
  • Redesign the visual identity around the device codename

1.6.0

Added

  • Extract pure parse + fixture tests for the remaining 17 adapters
  • Extract pure parse functions + fixture tests for 5 adapters
  • Flag dormant ROM projects on the ROM pages
  • Add AOSPA, VoltageOS and CherishOS ROM adapters
  • Add provisional devices so attach-only ROM support is never hidden
  • Add a support timeline to each device page
  • Add percentage-drop drift guard to the importer
  • Add ROM-to-ROM device overlap on each ROM page

Fixed

  • CI: generate the Prisma client before running tests
  • Drive GrapheneOS from its live overview.json instead of a hardcoded list
  • Fix missing space in /best intro ("maintainedROM")
  • Drop corrupt future-dated build timestamps at import time
  • Fix uniqueSlug returning a still-colliding device slug

Changed

  • Move the database from Neon to Aiven (CA-verified TLS)
  • Docs: all 22 adapters now have parse-module + fixture tests
  • Document the adapter parse-module + fixture-test pattern
  • Update docs: GrapheneOS is now overview.json-driven, not a curated list
  • Update docs for new ROMs, guards and recent features
  • Ignore tsconfig.tsbuildinfo

1.4.0

Added

  • Add buying-decision views: /best, Android-version pages, richer /newest
  • Add a /newest page sorting supported phones by release date

Fixed

  • Read CipherOS's full device catalogue from CipherOS/API

Changed

  • Add the proxy.ts entrypoint to complete the middleware rename
  • Migrate the host-redirect middleware to the Next 16.2 proxy convention

1.3.0

Added

  • Add a back-up-before-flashing guide, translated into all locales
  • Add Accrescent to the deGoogle guide app stores
  • Link the LineageOS wiki install guide on supported device pages
  • Link MicroG and add Aurora Store in the deGoogle guide
  • Recommend F-Droid alongside Fossify in the deGoogle guide
  • Add Fossify shoutout in the deGoogle guide and footer
  • Link to Google factory images from Pixel and Nexus device pages

Fixed

  • Make the db-url passthrough test hermetic to DATABASE_URL

1.2.1

Changed

  • bump all deps

1.2.0

Added

  • pl translation
  • add japanese translation

1.1.0

Added

  • Add Lunaris AOSP ROM importer
  • Add Project Infinity X ROM importer
  • Add SuperiorOS ROM importer
  • Add AlphaDroid ROM importer
  • Add postmarketOS importer and Linux distro badge
  • Add CipherOS ROM importer
  • Add Project Elixir ROM importer
  • Add BlissRoms ROM importer
  • Add Project Sakura ROM importer

1.0.0

Added

  • Add unit tests for the slug and format helpers + run them in CI
  • Add favicon, icons and a header logo
  • Add custom 404 and error pages
  • Localize the 12 guide bodies (es/de/fr)
  • Localize the guides index (es/de/fr)
  • Localize the about, privacy and codename pages (es/de/fr)
  • Add localized home under /es, /de, /fr with hreflang
  • Scaffold i18n: locale config, dictionaries, switcher components
  • Add a cookie consent banner, disabled by default
  • Rate-limit the search and request API endpoints
  • Add a privacy policy page

Changed

  • Move tests to dedicated pipeline step

0.6.3

Changed

  • "::" as the site suffix

0.6.2

Fixed

  • Dedup the recently-updated feed and clarify the footer

0.6.0

Added

  • Add "Why install a custom ROM?" benefit guide

Fixed

  • Fail the import run when an adapter returns too few entries

0.5.0

Added

  • Add custom ROM guide pages (official-vs-unofficial, EOL, glossary)
  • Flag stale builds and strengthen safety note on ROM pages
  • Add device-page intro and strengthen flashing safety note
  • Flag stale ROM builds older than six months
  • Show data source per ROM build
  • Add "Report wrong data" link per ROM build
  • Add "Recently updated" homepage section

Changed

  • Template device-page title and meta description with real ROMs
  • Documentation update

0.4.2

Changed

  • dependencies bump to latest versions

0.4.1

Fixed

  • Fix failing build

Changed

  • Bump Prisma to 7 and React / Next patches

0.4.0

Added

  • Filter ROMs by Android version on device pages
  • ISR for some sites
  • Umami analytics
  • Want a ROM feature
  • Support for no-ROM devices too
  • latest release date per ROM

Fixed

  • Fix search.google.com issues with Product pages

0.3.0

Added

  • browse-by-brand index + per-brand pages
  • device thumbnails on home + ROM pages
  • device thumbnails in search results
  • show device images on device pages
  • add PixelOS, Project Matrixx, AxionAOSP importers
  • Contact email and codename help

0.2.0

Added

  • Install instructions per phone
  • OpenGraph images
  • Search SEO improvements
  • SEO improvements
  • Google alias enrichment + spec-less note
  • Per ROM page
  • device specs + Official/Unofficial explainer on device pages

Changed

  • Redirect de fly.dev domain