AOSP Porting to iMX8MP for Automotive Application

AOSP Porting to iMX8MP for Automotive Application

Full-cycle AOSP porting and integration, including Secure Boot, OTA updates, and Android Auto support

A leading automotive client approached Iomico with a challenge: port a clean Android Open Source Project (AOSP) to the Compulab UCM-iMX8MP System-on-Module, with minimal reliance on NXP's Yocto-based tools.

The i.MX family of applications processors is an excellent platform for building high-performance, low-power, and cost-effective Android OS products.

The project was built on a robust hardware foundation featuring 8GB LPDDR4 RAM, eMMC storage on the SoM, u-Blox MAYA 260 (NXP IW612) Wi-Fi via SDIO, and a Sierra Wireless EM7595 LTE modem via USB/M.2, with development conducted on Ubuntu 20.04+ and full support for AHAB + AVB 2.0 + TrustZone Secure Boot, signed A/B OTA updates over HTTPS, and Android Auto via USB Accessory Mode with AOA 2.0.

The goal was to port AOSP and deliver a robust, updatable Android system tailored for automotive use cases. The iomico team has delivered the following:

  1. AOSP Device Integration
  • Defined BoardConfig.mk, Android.mk, and Android.bp files

  • Added custom init scripts, boot parameters, and fstab configuration

  • Enabled device-specific lunch combo for building

2. Kernel & Bootloader Support
  • Ported and configured the Linux kernel 5.15 for Android

  • Built and integrated U-Boot with Android Boot Image and Verified Boot support

  • Integrated ARM Trusted Firmware (ATF) to complete the boot chain:
    U-Boot → ATF → Kernel + Ramdisk + dtb

3. Proprietary Firmware Integration
  • Integrated essential firmware:

    • DDR training firmware

    • VPU firmware for hardware video encoding/decoding

    • Wi-Fi module: u-Blox MAYA 260 (NXP IW612 via SDIO)

    • LTE modem: Sierra Wireless EM7595 (USB/M.2) + userspace daemons

  • Bundled firmware in the vendor partition following AOSP best practices

4. Android System Boot
  • Brought up the Android console and home screen using standard AOSP startup flows

  • Debugged and validated peripherals, including UART console, Ethernet, and USB

5. OTA (Over-the-Air) Update System
  • Enabled OTA update support using AOSP’s ota_from_target_files

  • Created scripts for full and incremental updates

  • Enabled secure OTA delivery via HTTPS and implemented package signing

  • Integrated AOSP Update Engine and verified end-to-end update functionality

6. Secure Boot Implementation
  • Enabled NXP AHAB (Advanced High Assurance Boot) on i.MX8MP

  • Digitally signed SPL, U-Boot, and kernel images

  • Implemented Android Verified Boot (AVB 2.0) for system integrity

  • Utilized ARM TrustZone for cryptographic operations and key storage

  • Enabled "Factory Mode" support for secure provisioning and production locking

7. Android Auto Integration
  • Enabled USB Accessory Mode and AOA 2.0 (Android Open Accessory)

  • Validated USB Audio and Android Auto interface functionality

  • Delivered demo APK for activating and showcasing Android Auto on supported head units

8. Build System & Source Organization
  • Created an isolated manifest.xml to manage project-specific repositories

  • Maintained clean separation of AOSP and device-specific changes

  • Developed build and flashing tools using uuu for streamlined deployment

Unlike traditional Yocto-based Android implementations, Iomico focused on maintaining compatibility with upstream AOSP tooling, ensuring long-term maintainability, clean integration of firmware, and simplified OTA updates. By leveraging native AOSP infrastructure, we minimized dependencies on proprietary scripts and delivered a clean and flexible Android system for embedded automotive use.


Ready to Bring AOSP to Your Hardware?

If you want to build an Android-based unit, Iomico can perform successful AOSP porting and custom AOSP development, fast bootloader setup, secure firmware integration, and field-ready OTA update pipelines.

Our services

Industry

Technology

Team