Copyright (c) 2017 The LineageOS Project
git review
)devices.json is an array of objects, each with several fields:
model
: should be the first thing on the line, and is the device's codename (PRODUCT_DEVICE
) - e.g. i9300
.oem
: the manufacturer of the device. (PRODUCT_BRAND
) - e.g. Samsung
.name
: the user-friendly name of the device - e.g. Galaxy S III (Intl)
. Long values will overflow and look bad,
so limit this to around 25 characters.has_recovery
: (optional) whether or not the device has a separate recovery partition. Defaults to true
.lineage_recovery
: (optional) whether or not to offer Lineage recovery downloads for this device. Defaults to true
.pip install -r requirements.txt
config.py
for possible variables.FLASK_APP=app.py flask run
Obtaining rom list for a device:
GET /api/v1/<device>/<romtype>/<incremental>?after=<utc_timestamp>&version=<14.1>
(incremental can be anything, it is currently unused)
<device>
- Name of device. Example: d2vzw
<romtype>
- Type of rom. Example: nightly
<incremental>
- Caller device's incremental ID (ro.build.incr). Can be anything.
<after>
- Timestamp for current build on device. (optional)
<romversion>
- Version of rom. Example: 14.1
(optional)
This project depends on a mirrorbits server (https://github.com/etix/mirrorbits) running our mirrorbits API (https://github.com/lineageos-infra/mirrorbits-api). Please see the README in that project for more information.
To run the server stand-alone you can use the included docker-compose
script to bring up a simple nginx server to host your builds for you.
./nginx/builds/
. These will be exposed on http://example.com/builds when you start the server. They don't need to be android builds, just make sure they have differing sha256s and match the filename format foobar-VERSION-BUILDDATE-BUILDTYPE-DEVICE-foobar.zip.python gen_mirror_json.py ./nginx/builds > ./nginx/builds.json
docker-compose
on your system.docker-compose.yml
and ./nginx/default.conf
use suitable hostnames for your setup (rather than "updater" and "nginx", you should use the address of the computer running docker).docker-compose build
in the root of the repo.docker-compose up
in the root of the repo (include a -d
flag to run in detached mode)docker-compose down
in the root of the repo.