Android Pie 9.0.0 for Boundary Devices Nitrogen6 Max

Android Pie 9.0.0 for Boundary Devices Nitrogen6 Max

by Roberto Sartori

Introduction

The Nitrogen6 Max is an Embedded single board computer (SBC) based on the NXP i.MX6 applications processor, designed for mass production use with a guaranteed 10 year lifespan, FCC Pre-scan results, and a stable supply chain. Industrial temperature and conformal coating options are available. Here the vendor's page of the Product.

Kynetics has build an image based on Android 9.0 (Pie) and NXP 2.2.0 GA, for the The Nitrogen6 Max as part of its support program for the i.MX6 family of processors. This build is for evaluation purposes includes Android Verified Boot, SE Linux and DM-Verity.

Release Notes

Here are some important notes about our build:

  • Compatible with the Boundary Devices Nitrogen6 Max with 4GB or RAM and 4GB of eMMC
  • Support for any HDMI display (default resolution 1280x720)
  • Support for USB mouses and keyboards
  • Android 9.0, U-Boot 2018.03, Linux Kernel 4.14
  • Based on NXP release: p9.0.0_2.2.0-ga
  • User build with enforcing SELinux and enabled DM-Verity
  • Application and system updates can be deployed by using Update Factory: Learn more about our Android client for Update Factory. The Update fatory client is included in the build.
  • This is an 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 Nitrogen6 Max from Boundary Devices.

Hardware Requirements

  • Boundary Devices Nitrogen6 Max
    • 4GB of RAM
  • A host computer running GNU/Linux
  • Micro USB cable - fastboot access

Software Requirements

  • Kynetics Android 9.0.0 binary package for Nitrogen6 Max archive, downloadable here

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 micto USB cable between the board and the host pc.
  • To flash to bootloader and the operating system, enter in recovery mode following the Boundary Devices article:

    • Set the jumper as described and power on the board
  • On the host pc console, from the Kynetics Android images directory:

$ chmod +x uuu
$ sudo ./uuu uuu_bootloader.lst     # flash the boot loader
$ sudo ./uuu uuu_android.lst        # flash the Android image

Note that there are 4 .lst files available to flash the bootloader:

  • uuu_bootloader.lst
  • uuu_bootloader_r0.lst
  • uuu_android.lst
  • uuu_android_r0.lst

If your Nitrogen6 Max has the r0 ram revision, use the r0.lst files.

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

Android Verified Boot

This release partially supports Android Verified Boot. By default, only the images provided in this package are loaded by the Kynetics bootloader. Kynetics provides images with disabled security for development: contact us for more details.

Validated Hardware

The following hardware is validated in this relase:

  • HDMI port, working at a resolution of 1280x720
  • MicroUSB connector to enable ADB debugging
  • Gigabit ethernet port
  • USB ports working as host and supporting mouses, keyboards or USB drives
  • Audio jack connector for audio output
  • MicroSD card slot
  • RTC to maintain the current time when the board is not powered up (require the RTC battery)

Software support

Kynetics provides in this release different applications to help your evaluation. In particuar this apps helps to test and manage common peripherals from Android userspace. The example applications sources are available on Kynetics Github

The Android libraries used by this apps are not public and they can be purchase just contact us for more details.

  • GPIO handler:
    • the GPIO handler application is included to test the GPIO functionality. As example, it is possible to configure the GPIO 4 on the connector j7 on the Nitrogen6 Max. This GPIO is enumered as 9 in the GPIO handler application (generally the user space GPIO enumeration is handled by the Android/Linux Kernel)
  • CAN handler:
    • the CAN test application is included to test the CAN funcionality. A CAN bus is available on the J22 connection. The CAN bus can be configured via adb:
      • adb shell setprop persist.vendor.sys.can0.bitrate 115200
      • adb shell setprop persist.vendor.sys.can0.txqueuelen 5000
      • adb shell setprop persist.vendor.sys.can0.update_cfg 1
    • The last command is used to trigger the CAN configuration from ADB.
  • TTY Serial handler:
    • the TTY test application is included. It is possible to read and write on the serial RS232 available as /dev/ttymxcX. As example, the ttymxc0 RS232 serial is available on the J17 connector using the serial adapter from Boundary.
  • Ethernet handler
    • The Ethernet handler application allows to configure the ethernet interface (DHCP or static) from an Android application. In particular, the Ethernet handler application is developed in Xamarin: source code is available on github.

Q&A

  • Is ADB available in this release?
  • Is root available?
    • No, this is a user build
  • Can I use this release to develop apps?
    • Of course yes. You can deploy any APK which not require system permission.
  • Can I modify the Android OS?
    • No, this release supoprts full security for evaluation purposes. With AVB, DM-Verity and SE Linux enabled this image can not be modded.

Known limitations

  • Wifi and bluetooth are not enable in this release.

Enjoy the Art of Coding™