Evergreen Lite Partner Doc
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 1s 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_32x86_64armv7 32armv8 64Supported 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_testsevergreen_lite flagMore details can be found in the Evergreen Full doc.