| Introduction to OTA Update | | ------------------------------- | | Location: OTA section | Goal: to describe to a user and expert | | Source: [Canonical](https://phone.docs.ubuntu.com/en/devices/image-channels) and [Release schedule](https://docs.ubports.com/en/latest/about/process/release-schedule.html). | If something not relevant remove it, I don't have the knowledge to verify this, I just copied, and paste it, waiting to *anyone* to fix it. ![](https://i.imgur.com/k1zazep.png) # Ubuntu Touch image channels Ubuntu device images are released on a set of channels at the system imageserver. A channel is a timeline of images, designed to serve a particular purpose. When a user installs Ubuntu Touch, they will be prompted to choose a channel and a device, and by default, the most recent image in the channel for the particular device will be used. Alternatively, a particular image can be specified by version number. After an image channel has been chosen for installation, it will be used to provide Over-The-Air (OTA) upgrades to the device, and an users will generally stick to it. However, channels can still be switched at a later point using command line tools. ## Over The Air Firmware update For most purposes, a pair of channels is used. The main channel (e.g. ubuntu-touch/rc/ubuntu) and a proposed channel (e.g. ubuntu-touch/rc- proposed/ubuntu) which contains images that are being tested for 'promotion' to the main channel. Proposed channels are often built daily by Ubuntu's Continuous Integration infrastructure, and the higher quality images are promoted to the non-proposed channel. Some channels follow specific promotion schedules. Build IDs are defined within a specific channel. **Note**: the Ubuntu phone release process is based on the concept of promoting images at a consistent release cadence to incrementally more stable channels until they reach end users. Each promotion to a more stable channel requires the image to have passed a strict QA criteria of automated and manual tests. Over-the-air firmware updates refers to the practice of remotely updating the code on an embedded device. The value of incorporating OTA update capabilities into a connected devices include: - The ability to add new software features to a phone over time - The opportunity to rapidly respond to bugs and security vulnerabilities without the need for physical recalls of devices or truck rolls - Ensure developers can quickly roll out new versions of device firmware, speeding up new cycles # Image hosting and publishing Channel images and related files are hosted and published here: system-image.ubuntu.com The channels.json file is the master list of current channels and related information, including channel aliases and image data for each device. # Release cycle and image promotion ![](https://i.imgur.com/yPhFL87.png) ## UBports OTA release schedule Particle's OTA updates have been built from the ground up to be reliable and resilient to allow our team to deploy quickly while keeping your fleet functioning healthily. Ubuntu images are generated daily (often multiple images per day) and are thoroughly tested with automated and manual tests to ensure they comply with Ubuntu's QA standard. These daily images are distributed on the '-proposed' channel sets and are only promoted to their non-proposed channels once they comply with a set of quality criteria. At any time, there are always two daily-built channel sets working: devel and rc. Images built from the rc channels eventually become the stable images. * **devel**: daily builds * **rc**: weekly if no critical issue exists in the devel channel * **stable**: every six through eight weeks, if no critical issue exists in the rc channel ![](https://i.imgur.com/ZVRmyfK.png) This is not a definitive cycle. Stable releases are ready when they’re ready and should not introduce new bugs or ship very incomplete features. Since the OTA update can not be released before all critical issues are closed, the ETA might have to be moved by making an educated guess for when all the issues can be handled. If there are too many issues added to a milestone, they are either removed or added to the next milestone. ## Available Ubuntu phone channels The standard Ubuntu-based image channels. Current channels are divided into 5 groups, sorted accordingly to the stability level of the images they provide. Each channel group then has a number of channels created accordingly to the requirements and/or type of the device. This list is not exhaustive, please refer to the Listing channels section for a complete channels list. ## Stable channels Manually promoted images that reach end-user devices. This is the channel that should be used for everyday use phones. The bq-aquaris.en channel is also the channel which all commercial BQ devices are flashed from. ubuntu-touch/stable/ubuntu - channel with the community custom tarball ubuntu-touch/stable/bq-aquaris.en - channel with the BQ custom tarball ubuntu-touch/stable/meizu.en - channel with the Meizu English custom tarball ubuntu-touch/stable/meizu.zh - channel with the Meizu Chinese custom tarball ubuntu-touch/stable/ubuntu-developer - channel with a developer-oriented custom tarball, including extra payload useful for app-developers Note: a custom tarball is a .tar.gz archive containing additional files, apps and scopes to add to an image to customize a particular device. Learn more about devices and image structure on this community article ## Release Candidate channels Manually promoted images from ubuntu-touch/rc-proposed/*. An image from this channel is normally promoted once every six weeks to the stable channel as the new official OTA update. ubuntu-touch/rc/ubuntu ubuntu-touch/rc/bq-aquaris.en ubuntu-touch/rc/meizu.en ubuntu-touch/rc/meizu.zh ubuntu-touch/rc/ubuntu-developer Automatically built ubuntu-developer-flavor images from rc images ## Release Candidate (proposed) channels Automatically built images that are candidates for the rc and later the stable channels; these are currently built from ubuntu/vivid + stable-phone- overlay PPA. RC promotion evaluation in general happens twice a month. ubuntu-touch/rc-proposed/ubuntu ubuntu-touch/rc-proposed/bq-aquaris.en ubuntu-touch/rc-proposed/bq-aquaris.en-proposed Channel for testing of new custom tarballs before upload, not for normal usage ubuntu-touch/rc-proposed/meizu.en ubuntu-touch/rc-proposed/meizu.en-proposed Channel for testing of new custom tarballs before upload, not for normal usage ubuntu-touch/rc-proposed/meizu.zh ubuntu-touch/rc-proposed/meizu.zh-proposed Channel for testing of new custom tarballs before upload, not for normal usage ## Development channels Manually promoted images from ubuntu-touch/devel-proposed/*. Promotions do not follow any specific schedules. ubuntu-touch/devel/ubuntu ubuntu-touch/devel/krillin.en to be renamed to bq-aquaris.en ubuntu-touch/devel/meizu.en Development (proposed channels) Automatically built images from the latest devel series (currently ubuntu/xenial). This is the channel is to be used by developers for system development purposes only, absolutely no guarantee of stability. ubuntu-touch/devel-proposed/ubuntu - devel channel with the community custom tarball ubuntu-touch/devel-proposed/krillin.en - devel channel with the BQ custom tarball (will be renamed to bq-aquaris.en) ubuntu-touch/devel-proposed/krillin.en-proposed - devel channel for testing of new custom tarballs before upload (will be renamed to bq-aquaris.en-proposed) ubuntu-touch/devel-proposed/meizu.en - devel channel with the Meizu English custom tarball ubuntu-touch/devel-proposed/meizu.en-proposed - devel channel for testing of new custom tarballs before upload ubuntu-touch/devel-proposed/ubuntu-developer - devel channel with a developer-oriented custom tarball, including extra payload useful for app-developers Development channels here are not analogue to the traditional OS series and are independent entities from the stable channels. Their use case is limited for testing a baseline switch before change the stable series to more recent series, not necessarily consecutive ones. Warning!: the development channels are not recommended for general use, and unless you need to explicitly use them for a particular purpose, you should rather pick one of the stable channels instead. # Channel names All channel names are prefixed by ubuntu-touch/. You might want to learn about the Ubuntu release naming scheme before continuing. - Standard Ubuntu image channels are used to distribute the regular public Ubuntu releases for devices. Their naming scheme is as follows: "ubuntu-touch" "/" <stability-level> ["-proposed"] "/" <device-type> The <stability-level> marks how mature the images hosted in the channel are, also marking their potential quality. Currently this can be either "devel", "rc" or "stable". Devel images are generally the least tested and therefore most risky to use. Those images are considered development images, meaning based on the latest Ubuntu series and meant only for system developers to be able to do development - there is no guarantee of phone features working. Do not mistake "devel" images with "latest development", as the main development focus is always happening in the rc and stable channels. RC images consist of changes that have been tested before release and are potential candidates for stable releases. Stable images are manually copied RC images after reaching specific quality criteria. All non-proposed <stability-level> based channel sets are basically manual channels with images manually copied over after reaching specific criteria, while their "-proposed" counterparts include daily-built images. Listing channels After you have enabled Android Developer options and connected the device to your Ubuntu desktop (see here), you can list all currently available channels (including aliases) in an Ubuntu Desktop terminal as follows: $ ubuntu-device-flash query --list-channels --device=DEVICE