Android Pie 9.0.0 for Boundary Devices Nitrogen6X

Android Pie 9.0.0 for Boundary Devices Nitrogen6X

by Roberto Sartori and Nicola La Gloria

Motivations

The Nitrogen6X from Boundary Devices is an Embedded single board computer (SBC) based on the NXP i.MX6 applications processor. The Nitrogen6X is an very popular off-the-shelf embedded board designed for middle-low volume markets with a guaranteed 10 year lifespan, FCC Pre-scan results, and a stable supply chain. Industrial temperature and conformal coating options are available.

Due to a different approach adopted by Boundary on how to build the Android final image, their OS was not ready to support important enhancements introduced by Google like Android Verified Boot (AVB).

Due to the popularity of the board, it made sense for Kynetics to build a Android 9 for the Nitrogen6X filling the dots to support Android Verified Boot. AVB is essential for the implementation of the Full Chain of Trust which is crucial for the security of critical systems.

The image provided is not intended for system development, but as an evaluation image for application development purposes, where the system shows a significant entry level of security.

This release requires a new custom bootloader (provided in our download package) with respect to what is provided by Boundary Devices.

Kynetics offers an advanced level of customization for this platform. Contact us us to receive a quote for commercial support.

Release Notes

Here are some important notes about our build:

  • Android 9.0, U-Boot 2018.03, Linux Kernel 4.14
  • Based on NXP release: p9.0.0_2.2.0-ga
  • Compatible with the Boundary Devices Nitrogen6X
    • 1GB or 2GB of RAM
  • Single image OTA update
  • User build with enforcing SELinux and enabled DM-Verity
  • Application and system updates can be deployed by using Update Factory. Learn more about our open source Android client for Update Factory.
  • This is an unsupported evaluation release. For commercial support please contact us.

Flash Instructions

The following steps will guide you through the installation of Android 9.0 on the Nitrogen6X from Boundary Devices.

Hardware Requirements

  • Boundary Devices Nitrogen6X
    • 1GB or 2GB of RAM
    • HDMI display (optional)
    • OV5645 MIPI camera (optional)
    • A USB mouse (optional)
  • A microSD - Android will be installed there
  • A host computer running GNU/Linux
  • Micro USB cable - fastboot access
  • Serial cable adapter - serial console access

Software Requirements

  • Kynetics Android 9.0 for Boundary Devices' Nitrogen6X archive, available for download here
  • Android platform tools installed on the host computer

Installation procedure

  • Unpack the Kynetics archive. The directory with the Android images will be referred as Kynetics Android images directory in this article.
  • Connect the serial cable adapter to use the serial console from your host pc.
  • Connect the micro USB cable between the board and the host pc.
  • Insert the microSD into the SD3 slot of the Nitrogen6X.
  • Enter recovery mode and load U-Boot following the Boundary Devices article: use the U-Boot binary provided in the Kynetics Android images directory as u-boot-imx6q_1g.imx or u-boot-imx6q_2g.imx based on the RAM of your Nitrogen6X.
  • The board will start booting: stop it at the U-Boot console pressing any button.
  • On the U-Boot console:
=> env default -a
=> saveenv
=> fastboot 0
  • On the host pc console, from the Kynetics Android images directory:
$ sudo fastboot flash bootloader u-boot-imx6q_[1g,2g].imx
$ sudo ./fastboot_imx_flashall.sh -f imx6q -e -l

By default, the script flashes the partition table for a 8gb microSD. Use the -c X argument of the script to change this, as an example:

$ sudo ./fastboot_imx_flashall.sh -f imx6q -c 14 -e -l

14GB and 28GB are available.

  • Reboot in normal mode (by changing the boot switch), and the board will boot into Android.

Android Verified Boot and Image security

This release partially supports Android Verified Boot. By default, only the images provided in this package are allowed and validated by boot stage.

Q&A

Known limitations

  • The HDMI output is limited to a resolution of 1280x720 in this release.

Enjoy the Art of Coding™