Create a custom Mason OS configuration
In part 1 of our 'Manage Projects' series, you were introduced to the concept of Mason OS configs and projects. In part 2, you learned how to create a Project on the Mason Platform.
This guide will walk you through 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 on the Mason Platform. To visit a Mason OS configuration specification, visit the documentation on our devices page, select the device you want, and then you can view the device's Configuration glossary from there.
Visit the Mason OS configuration glossary for our G450A1 device
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
The following section of this 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.
In this case, the project
warehouse-distribution
was created in step 2 of the "Manage Projects" series
"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
andversion
combinations must be unique. If you try to add a Mason OS config to the Mason Platform that includes aname
andversion
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 floorplan 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 update policy, UI behavior, and even hardware behavior for a specific mason device.
Visit the Mason OS configuration glossary for our G450A1 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'sAndroidManifest.xml
- The
version_code
attribute comes from the version code in your APK'sAndroidManifest.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 command
mason register media
Support
- Contact us at support@bymason.com