Evergreen Lite is a Cobalt configuration similar to Evergreen Full. Evergreen Lite takes advantage of the same Evergreen software architecture, but removes the need for additional storage and is missing the defining cloud-based Cobalt Updater feature used in Evergreen Full.
Evergreen Lite relies on separating the Starboard (platform) and Cobalt (core) components of a Cobalt implementation into the following discrete components:
Google-built (on Google toolchain)
Partner-built (on Partner toolchain)
With this new Cobalt Evergreen platform architecture, less engineering effort is necessary for a full Cobalt integration/deployment.
The idea here is you should only need to implement Starboard one time (as long as the Starboard API version is supported by Cobalt), and any Cobalt Core-level binary updates are provided by Google with pre-built configurations/symbols via our open-source releases (GitHub). These pre-built Cobalt Core Evergreen binaries should be a direct replacement to update Cobalt without any engineering work required. As Cobalt Core binaries are pre-built, they should only require platform testing. NOTE that certain new Cobalt features may require Starboard changes, so if you want to take advantage of some of these new features, Starboard changes may be necessary.
loader_app
and crashpad_handler
components required to be built on platform toolchainsSame as the Evergreen full doc.
kSbSystemPathStorageDirectory
is not required to implement. Set both sb_evergreen_compatible
and sb_evergreen_compatible_lite
to 1
s in the gyp
platform config. The remaining is the same as the Evergreen full doc.
Cobalt will release the Cobalt Core binary to partners for each Cobalt LTS major and minor release, and partners decide whether to update their devices with the latest Cobalt Core code via firmware OTA update. To update, partners only need to put the new Cobalt Core binary at the system image location under <kSbSystemPathContentDirectory>/app/cobalt
. More about the system image slot is explained below.
Cobalt Evergreen currently supports the following
Target Architectures:
x86_32
x86_64
armv7 32
armv8 64
Supported Javascript Engines
Same as the Evergreen Full doc - cobalt_evergreen_overview.md.
Cobalt updater is disabled. The binary will not check for updates by sending requests to the Google update server, nor download updates from the Google Download server.
Same as the Evergreen Full doc - cobalt_evergreen_overview.md.
Evergreen Lite will have only one system image slot. This is stored in the directory specified by kSbSystemPathContentDirectory
under the app/cobalt
subdirectory.
. ├── content <--(kSbSystemPathContentDirectory) │ └── fonts <--(kSbSystemPathFontDirectory, `standard` or `limit` configuration) │ └── app │ └── cobalt <--(System image, provided by Google) │ ├── content <--(relative path defined in kSystemImageContentPath) │ │ ├── fonts <--(`empty` configuration) │ │ ├── icu │ │ ├── licenses │ │ ├── ssl │ ├── lib │ │ └── libcobalt.so │ └── manifest.json └── loader_app <--(Cobalt loader binary) └── crashpad_handler <--(Cobalt crash handler binary)
Same as the Evergreen Full doc - cobalt_evergreen_overview.md.
Launch Cobalt with the loader app binary with the evergreen_lite
flag
$ ./loader_app --evergreen_lite
kSbSystemPathStorageDirectory
and configure the slots as instructed in the Evergreen full dockSbSystemPathStorageDirectory
to be shared among slotssb_evergreen_compatible_lite
to 0nplb_evergreen_compat_tests
evergreen_lite
flagMore details can be found in the Evergreen Full doc.