OTA Server for LineageOS
Go to file
Steven Polley 6b2118b53f
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
Update extra/product.mk
2024-11-11 06:25:50 -07:00
public initial commit 2023-06-03 23:07:55 -06:00
.drone.yml move from deadbeef.codes to code.stevenpolley.net 2024-06-28 11:55:35 -06:00
.gitignore go mod and .gitignore 2023-06-03 23:10:29 -06:00
Dockerfile fix typos 2023-06-03 23:13:51 -06:00
go.mod go 1.23 isn't even out yet! 2024-06-28 12:00:56 -06:00
main.go Add configurable baseURL (required for multi-device support) 2023-08-21 19:47:49 -06:00
ota-logo.jpg add logo 2023-06-09 17:04:15 -06:00
processFiles.go fix string formatting bug causing mangled id's 2023-07-10 18:08:34 -06:00
README.md Update extra/product.mk 2024-11-11 06:25:50 -07:00

Build Status

lineageos-ota-server

A highly-scalable and lightweight OTA Server for LineageOS. The OTA server supports a single device model (eg: Google Pixel), if you intend to have OTA's available for a variety of device models, just create an additional OTA server instance for each device.

alt text

docker compose example

The service listens on port 8080 by default. Mount the output directory for the builds of the device you wish to serve to the /out folder. Also, mount a persistent public directory which will be served publicly. The public folder can be shared across multiple OTA server instances if you wish.


version: '3.8'

  lineageos-ota:
    image: registry.deadbeef.codes/lineageos-ota-server:latest
    restart: always
    expose:
      - "8080"
    volumes:
      - /data/android/lineage/out/target/product/sunfish:/out
      - /data/android/public/sunfish:/public
    

How to point device to OTA server

The recommended way is to include the configuration inside your build of the ROM. We do this by by including the URL as a system build.prop by doing the following:

Create new file /data/android/lineage/vendor/lineage/build/core/deadbeef-ota.mk

Edit (create if not exist) /data/android/lineage/vendor/extra/product.mk

# Include deadbeef.codes OTA server
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
        lineage.updater.uri=https://lineageos-ota-{device}.stevenpolley.net

# Default ADB shell
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
        persist.sys.adb.shell=/system_ext/bin/bash