Manifest
Names the project and maps it to a model. Y1 and Y2 need separate lines, even when they share a repository.
For firmware developers
Updater CE is the community catalogue and installer for custom firmware. Develop your project from a base ROM, publish it as a public repository with the correct release assets, add the model entries to slidia_manifest.xml, test the model filters, and open a pull request. One repository can serve every model it supports.
Base ROMs give custom firmware developers a clean Android foundation with the wireless radio chips enabled. On the Y1 they enable Wi-Fi and GPS alongside the factory Bluetooth and FM; on the Y2 they enable Wi-Fi, GPS, and FM alongside the factory Bluetooth.
| Download | Device | Android | Wireless features |
|---|---|---|---|
rom.zip | Y1 · Type A | Android 4.2.2 | Adds Wi-Fi and GPS to the factory Bluetooth and FM (FM already works on the Y1 from the factory). For Y1 players that shipped with OS 2.0.0 or later. |
rom_type_b.zip | Y1 · Type B | Android 4.2.2 | Adds Wi-Fi and GPS to the factory Bluetooth and FM (FM already works on the Y1 from the factory). For Y1 players that shipped with an OS earlier than 2.0.0. |
rom_y2.zip | Y2 | Android 4.4.2 | Adds Wi-Fi, GPS, and FM to the factory Bluetooth. The Y2 radio chip is fully enabled, so FM is available here too. |
The filename is part of the compatibility signal. Keep the names exact and put the ZIP files in the project's release assets, not only in the repository source tree.
| Asset | Device | Hardware | Meaning |
|---|---|---|---|
rom.zip | Y1 | Type A | Y1 devices that shipped with OS 2.0.0 or later. |
rom_type_b.zip | Y1 | Type B | Y1 devices that shipped with an OS earlier than 2.0.0. |
rom_y2.zip | Y2 | Y2 | The Y2 full-install package. Keep it separate from Y1 assets. |
Updater CE reads the manifest as its catalogue. Each <package> line tells it the project name, repository, model, and handler. When a user chooses that project, Updater checks the repository’s published releases and looks for a rom*.zip asset.
Names the project and maps it to a model. Y1 and Y2 need separate lines, even when they share a repository.
Contains the installable ZIP assets. A single release may contain the Y1 Type A, Y1 Type B, and Y2 packages together.
Uses the selected model to choose the matching package and model-specific flashing path. The user should not have to guess a filename.
rom.zip, rom_type_b.zip, and rom_y2.zip on the same release when they belong to the same version.slidia_manifest.xml in the root of your Updater CE fork. Add one line for each model the release supports (Y1 and Y2 are the common pair). The repo value is the repository's owner/repository; url is the public project page.Fill in the repository and tick every model the release supports. The generator writes one <package> line per model and only includes the attributes you set, so the result matches the current slidia_manifest.xml format. Every attribute Updater CE reads is available below — the optional ones are under More options.
owner/repository from the URL.
updater.png or a generated icon.
image_dark is an accepted alias.
icon.
rom.zip on Y1 and rom_<model>.zip elsewhere.
rom*.zip.
*-mirror repositories that build Portable Flashing Zip packages.
<package name="Your Firmware" brand="Innioasis" repo="your-account/your-firmware" device="Y1" url="https://github.com/your-account/your-firmware" type="img" handler="Custom Firmware" />
<package name="Your Firmware" brand="Innioasis" repo="your-account/your-firmware" device="Y2" url="https://github.com/your-account/your-firmware" type="img" handler="Custom Firmware" />
The generator fetched the current slidia_manifest.xml from this repository and inserted your generated lines just before </slidia>.
rom_y2.zip exists in the project's release. The same is true for every other model your release supports.These are the attributes current Updater CE builds understand. The generator writes only the ones you fill in; the app falls back to sensible defaults for the rest.
| Attribute | Needed | What it does |
|---|---|---|
name | Yes | Software name shown in the catalogue and on install cards. |
repo | Yes | owner/repo. The app reads that repository's GitHub releases. |
device | Yes | Target model, uppercase (Y1, Y2, G1, Q3e, …). Keep one entry per model. |
url | Recommended | Project page or release notes opened from the catalogue. |
type, handler | Yes in practice | type="img" and handler="Custom Firmware". Other types and non-firmware handlers are skipped. |
brand | Optional | Catalogue brand (Innioasis, Timmkoo). Empty uses the model's default brand. |
package_name | Optional | Release asset filename. Defaults to rom.zip on Y1 and rom_<model>.zip on other models. |
asset_pattern | Optional | Case-insensitive glob for releases whose firmware zips are not named rom*.zip (for example my-firmware-*.zip). |
type_a_asset, type_b_asset | Optional | Globs that identify the Y1 Type A and Type B zips when their filenames do not contain the usual markers. |
icon | Optional | Logo URL. Used after the release's own updater.png / updater.jpg, and as the fallback for every release. |
icon_dark | Optional | Dark-theme logo. image_dark is an accepted alias. |
image | Optional | Secondary light artwork, tried after icon. |
post_install, post_install2 | Optional | Page(s) opened after a successful install. The second one covers a multi-step guide. |
portable_zips | Optional | Comma-separated *-mirror repos that publish ready-to-run portable packages. |
derivative | Optional | Repository the firmware is built from. Firmware with the same derivative root can keep user data. |
info_repo | Optional | App repository whose releases describe what the firmware deploys. Requires post_install or post_install2. |
apk_repo | Optional | App repository whose APK the app installs after the firmware. |
min_version | Optional | Hide the entry when Updater CE is older than this version. |
do_not_keep_data | Optional | true (also 1 / yes) blocks Keep Data completely for this firmware. |
slug | Optional | Stable identifier for links and saved install records. Generated from the name and model when empty. |
description | Optional | Short catalogue description. It can be the attribute value or the element's text. |
slidia_manifest.xml in the repository. Use the edit link below; the repository host creates a fork and a branch for you automatically.</slidia>, keeping the existing entries unchanged.add-your-firmware), then open a pull request against the Updater CE repository.Give the release a clear tag and release note. The tag is useful to people, but the ZIP asset names are what Updater CE uses to identify the install packages.
A shared release can contain rom.zip, rom_type_b.zip, and rom_y2.zip. Updater classifies them separately and chooses from the model and hardware filters.
Do not include a Y1 package under the Y2 filename, or add untested scatter, preloader, or partition data just to make an asset appear.
The manifest is not just a download menu. After extraction, Updater CE uses the resolved model to prepare the matching install path. Y1 and Y2 have different platform files, preloaders, scatter configuration, and device layouts.
/> can hide every entry after it.rom.zip, rom_type_b.zip, and rom_y2.zip as applicable.python -c "from xml.etree import ElementTree as ET; ET.parse('slidia_manifest.xml'); print('manifest ok')"
For a local check, run that command from the repository root. It verifies XML syntax only; it does not prove that a release contains valid firmware or that a device is safe to flash.
The repository's skills/ directory is a source-grounded knowledge base for agents working on Y1 and Y2 hardware, firmware, themes and apps. Each skill names the project files its claims come from, so an agent can check a fact before changing a device.
How to load a skill, which model a fact applies to, and the partitions no package should write.
MT6572, the wheel as key events, 480x360 display, FM/audio paths, storage and the Type A/B partition map.
MT6582 board, device tree, GC9503V/ST7701S panels, PMIC/DAC rails, partitions and the boot image.
rom.zip anatomy, scatter files, Class A update contracts and the release checklist.
Y1 config.json themes, Rockbox WPS/SBS, Reborn skins and Y2Player skin format v2.
Rockbox Y1/Y2, stock Android ROMs, Y2Linux, Android apps, launchers, release notes and site publishing.