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
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.
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.
The following steps will guide you through the installation of Android 9.0 on the Nitrogen6X from Boundary Devices.
- 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
- Kynetics Android 9.0 for Boundary Devices' Nitrogen6X archive, available for download here
- Android platform tools installed on the host computer
- 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 (J18 connector) of the Nitrogen6X.
Enter recovery mode by setting the DIP switch SW1 as in the following image:
Power on the board 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: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 flash bootloader u-boot-imx6q_[1g,2g].imx $ sudo ./fastboot_imx_flashall.sh -f imx6q -e -l14GB and 28GB are available.
$ sudo ./fastboot_imx_flashall.sh -f imx6q -c 14 -e -l
Power off the board and setup the DIP switch SW1 for normal boot mode, as in the following image:
Power on the board and Android will boot.
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.
- Is ADB available in this release?
- Yes, to enable ADB follow Google's documentation.
- The HDMI output is limited to a resolution of 1280x720 in this release.
Enjoy the Art of Coding™