Mason OS
This guide will provide the definition of a Mason OS configuration file and walk you through the key attributes defined in a Mason OS configuration.
What is a Mason OS configuration?
Mason OS configuration files are defined using the YAML file format - .yml
. You can create a Mason OS configuration using any text editor you like.
YAML files are easy to validate using linting and parsing techniques. For more information about YAML formatting, visit the YAML wiki page.
Mason OS configuration specification
Mason OS configs can vary by device across the Mason platform. To visit a Mason OS configuration specification, select the Mason device you want to see configurations for from the left-hand menu to view and browse that device's configuration glossary.
Want to explore Mason OS configurations for our current devices? See config glossaries for the A4100 wearable, the D215 handheld, the D450 handheld, and the G450 tablet.
Example Mason OS configuration
This is an example Mason OS configuration for a dedicated device used by a logistics company.
os:
name: warehouse-distribution
version: latest
configurations:
mason-management:
disable_keyguard: true
disable_status_bar: false
mason-fota:
config_allow_download_over_metered: false
config_update_check_frequency: 6
config_update_install_time: 12:30
config_update_install_battery_threshold: 20
config_update_prompt_prior_to_install: true
mason-app-updater:
config_allow_download_over_metered: true
config_update_check_frequency: 12
config_update_install_time: 01:00
config_update_install_battery_threshold: 20
apps:
- name: Test App
package_name: com.warehouses.distribution
version_code: 12
media:
bootanimation:
name: warehouse-distro-boot
version: latest
Configuration definitions
This section of our guide will walk you through the definitions in the given example Mason OS configuration, shown above.
"os"
The os
tag is the metadata declaration of the project config. Only two fields are required: name
and version
. The configuration
section is where you define the exact behavior and details of the Mason OS specified by this file.
"os" name
This field should reference an existing project identifier in the Mason platform.
"os" version
The os
version is a numeric and monotonically incremented field that represents the "version" of a Mason OS config.
In all places where you must specify a version, the latest
keyword can be used instead for a more hands-off approach to versioning, as the Mason platform will increment Mason OS configuration versions for you.
Together, Mason OS name
and version
combinations must be unique. If you try to add a Mason OS config to the Mason Platform that includes a name
and version
combination that already exists in the Platform, the duplicate config will be rejected.
"os" configurations
The Mason OS configurations
refer to a set of rules and attributes that, when built and deployed to a Mason device, will result in some specific behavior or state of the resulting Mason OS.
Mason OS configurations determine the expression of Mason OS on a Mason device. Think about the Mason OS configurations defined in this section as the electrical wiring and floor plan of a house. The Mason OS is the foundation and structural frame of the house, and the Mason device is the finishing, roofing, and paint.
The Mason platform provides Mason OS configurations that dictate everything and everything our customers need, from the update policy and UI behavior to even the hardware behavior for a specific Mason device.
"apps"
The apps
object enumerates all the registered Android applications that are to be included into the software build. Only the package_name
and version_code
properties are required.
- The
name
attribute defines an arbitrary name (for your own record keeping) - The
package_name
attribute comes from the package name in yourAPK's AndroidManifest.xml
- The
version_code
attribute comes from the version code in yourAPK's AndroidManifest.xml
For more details on registering an Android application to the Mason platform, see our Mason CLI documentation for the command mason register apk
.
"media"
The media
object enumerates all the media configurations for the software distribution.
Supported types are:
- Boot animations
- Splash screens
For more details on registering a boot animation to the Mason platform, see our Mason CLI documentation for the commands mason register bootanimation
and mason register splash
.