Download the PHP package julianxhokaxhiu/lineage-ota without Composer

On this page you can find all versions of the php package julianxhokaxhiu/lineage-ota. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package lineage-ota

LineageOTA

A simple OTA REST Server for LineageOS OTA Updater System Application

Support

Got a question? Not sure where it should be made? See CONTRIBUTING.

Contents

Requirements

How to use

Composer

then finally visit http://localhost/LineageOTA to see the REST Server up and running. Please note that this is only for a quick test, when you plan to use that type of setup for production (your users), make sure to also provide HTTPS support.

If you get anything else then a list of files, contained inside the builds directory, this means something is wrong in your environment. Double check it, before creating an issue report here.

Docker

then finally visit http://localhost/ to see the REST Server up and running.

The root URL (used to generate ROM URLs in the /api endpoint) can be set using the LINEAGEOTA_BASE_PATH variable.

Local Hosting

ONLY for LineageOS 15.x and newer

If you are willing to use this project on top of your LineageOS 15.x ( or newer ) ROM builds, you may have noticed that the file named build.prop have been removed inside your ZIP file, and has been instead integrated within your system.new.dat file, which is basically an ext4 image ( you can find out more here: https://source.android.com/devices/tech/ota/block ).

In order to make use of this Server from now on, you MAY copy the build.prop file from your build directory ( where your ROM is being built ), inside the same directory of your ZIP and name it like your ZIP file name + the .prop extension.

For example, feel free to check this structure:

What happens if no build.prop file is found

The Server is able to serve the ZIP file via the API, also when a build.prop file is not given, by fetching those missing informations elsewhere ( related always to that ZIP file ). Although, as it's a trial way, it may be incorrect so don't rely too much on it.

I am not sure how much this may help anyway, but this must be used as an extreme fallback scenario where you are not able to provide a build.prop for any reason. Instead, please always consider to find a way to obtain the prop file, in order to deliver a proper API response.

Github Hosting

If you want to host your roms on Github you can put your repository names inside the github.json file, like this example below:

Each line should point to a repository for a single device and have Github releases with attached files. At a minimum there should be the following files in each release:

The md5sum file contains a list of hash values for the the OTA zip as well as any other files you included in the release that need them. Each line of the md5sum should be of the format:

The filename should not contain any directory information.

You may also include a changelog file in html format. Note, any html file included in the release file list will be included as a changelog.

Disabling Local/Github Hosting

Both local and Github hosting features can be disable if they are not being used via the configuration file, in the root directory, called lineageota.json:

Setting either of these to true will disable the related hosting option.

Limiting Github Releases

With Github you may end up having many more releases than the updater really needs to know about, as such there are two options in the config file to let you control the number of releases that are returned:

MaxGithubReleaesPerRepo will limit the number of releases used on a per repo basis. Setting this to 0 or leaving it out of the config file will use all available releases in each repo.

OldestGithubRelease will exclude any released older than a given date from being available in the updater. This string value can be blank for all releases, or any compatible string, like "2021-01-01" or "60 days ago".

Caching

Both local builds and Github based builds can be cached to reduce disk and network traffic. By default, local caching is disabled and Github caching is enabled.

The default cache timeout is set to one day (86400 seconds).

You can change this via the configuration file, in the root directory, called lineageota.json:

This requires the webserver to have write access to the root directory. If you wish to force a refresh of the releases, simply delete the appropriate cache.json file.

Web Root Templates

In version 2.9 and prior, if a use visited the web root of the OTA server, they would be redirected to the builds folder. With the introduction of Github hosting, this is no longer a particularly useful destination as they may see no builds hosted locally, or incorrect ones if local hosting has been disabled and the local builds folder has not been cleaned up.

Releases after 2.9 now use a simple templating system to present a list of builds.

Four templates are included by default (ota-list-simple, ota-list-tables, ota-list-columns, ota-list-javascript) but you can create your own in the "views" folder to match your branding as required.

There are several configuration settings for temples as follows:

Included Templates:

Twig is used as the templating language, see their documentation for more details.

The following variables are available for templates:

REST Server Unit Testing

Feel free to use this simple script made with NodeJS. Instructions are included.

ROM Integration

In order to integrate this REST Server within your ROM you have two possibilities: you can make use of the build.prop ( highly suggested ), or you can patch directly the android_packages_apps_CMUpdater package ( not suggested ).

Before integrating, make sure your OTA Server answers from a public URL. Also, make sure to know which is your path.

For eg. if your URL is http://my.ota.uri/LineageOTA, then your API URL will be http://my.ota.uri/LineageOTA/api

Build.prop

CyanogenMod / LineageOS ( <= 14.x )

In order to integrate this in your CyanogenMod based ROM, you need to add the cm.updater.uri property ( for CyanogenMod or Lineage ) in your build.prop file. See this example:

As of e930cf7: Optional placeholders replaced at runtime: {device} - Device name {type} - Build type {incr} - Incremental version

LineageOS ( >= 15.x)

In order to integrate this in your LineageOS based ROM, you need to add the lineage.updater.uri property in your build.prop file. See this example:

Make always sure to provide a HTTPS based uri, otherwise the updater will reject to connect with your server! This is caused by the security policies newer versions of Android (at least 10+) include, as any app wanting to use non-secured connections must explicitly enable this during the compilation. The LineageOS Updater does not support that.

Since https://review.lineageos.org/#/c/191274/ is merged, the property cm.updater.uri is renamed to lineage.updater.uri. Make sure to update your entry.

As of 5252d60: Optional placeholders replaced at runtime: {device} - Device name {type} - Build type {incr} - Incremental version

android_packages_apps_CMUpdater

In order to integrate this in your CyanogenMod or LineageOS based ROM, you can patch the relative line inside the package.

Although this works ( and the position may change from release to release ), I personally do not suggest to use this practice as it will always require to override this through the manifest, or maintain the commits from the official repo to your fork.

Using the build.prop instead offers an easy and smooth integration, which could potentially be used even in local builds that make use fully of the official repos, but only updates through a local OTA REST Server. For example, by using the docker-lineage-cicd project.

Changelog

v?.?.?

v2.9.0

v2.8.0

v2.7.0

v2.6.0

v2.5.0

v2.4.0

v2.3.1

v2.3.0

v2.2.0

v2.1.1

v2.1.0

v2.0.9

v2.0.8

v2.0.7

v2.0.6

v2.0.5

v2.0.4

v2.0.3

v2.0.2

v2.0.1

v2.0

License

See LICENSE.

Enjoy :)


All versions of lineage-ota with dependencies

PHP Build Version
Package Version
Requires mikecao/flight Version 1.*
julianxhokaxhiu/dotnotation Version dev-master
ext-zip Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package julianxhokaxhiu/lineage-ota contains the following files

Loading the files please wait ....