Skip to main content

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.

Validating your YAML files

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.

Mason OS configuration glossaries

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.

Unique naming combinations

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 your APK's AndroidManifest.xml
  • The version_code attribute comes from the version code in your APK's AndroidManifest.xml
Info on registering your application(s)

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
Info on registering media

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.