SPRACO0 August   2019 AM6526 , AM6528 , AM6546 , AM6548

 

  1.   Enabling Android Automotive on Your TI Development Board
    1.     Trademarks
    2. Introduction
    3. Implementation
      1. 2.1 Prerequisites
      2. 2.2 Software Changes
    4. Deploy Instructions
      1. 3.1 Build Instructions
      2. 3.2 Boot Instructions
    5. Testing
      1. 4.1 Prerequisites/Setup for Automotive Testing
        1. 4.1.1 Compatibility Test Suite (CTS)
        2. 4.1.2 Vendor Test Suite (VTS)
      2. 4.2 Automotive Testing
        1. 4.2.1 Compatibility Test Suite (CTS)
        2. 4.2.2 Vendor Test Suite (VTS)
    6. Open Source
    7. Extending to a New Platform
    8. Known Bugs
    9. Future Work
    10. FAQ
    11. 10 References

Software Changes

NOTE

Please change directory to your Android File System before continuing.

  1. Changes inside device/ti/beagle_x15/AndroidProducts.mk:
    1. These changes add a new lunch combo called “beagle_x15_auto-userdebug” and it’s path to the relative top-level makefile.
  2. PRODUCT_MAKEFILES += \ - $(LOCAL_DIR)/beagle_x15.mk \ + beagle_x15:$(LOCAL_DIR)/beagle_x15.mk \ + beagle_x15_auto:$(LOCAL_DIR)/auto/beagle_x15.mk \ COMMON_LUNCH_CHOICES := \ beagle_x15-userdebug \ + beagle_x15_auto-userdebug \
  3. Changes inside device/ti/beagle_x15/BoardConfig.mk:
    1. Conditional is needed to differentiate the content that is included depending on the TARGET_PRODUCT (macro set by lunch combo).
    2. DEVICE_MANIFEST_FILE adds the auto-specific manifest file to the build.
  4. BOARD_SEPOLICY_DIRS += \ device/ti/beagle_x15/sepolicy +ifeq ($(TARGET_PRODUCT), beagle_x15_auto) +BOARD_SEPOLICY_DIRS += \ + packages/services/Car/car_product/sepolicy + +DEVICE_MANIFEST_FILE += device/ti/beagle_x15/auto/manifest.xml +endif
  5. Create an auto directory inside of device/ti/beagle_x15.
  6. NOTE

    The following steps will all be completed inside the device/ti/beagle_x15/auto directory.

  7. Create a top-level makefile for the "beagle_x15_auto-userdebug" lunch combo.
    1. The top-level makefiles are inherited to include all necessary components (PRODUCT_PACKAGES, PRODUCT_COPY_FILES, PRODUCT_PROPERTY_OVERRIDES, and so forth) to enable desired features.
      1. auto/device.mk and car.mk are crucial to enabling all automotive-specific features.
      2. The content inside the car.mk, the common makefile for all car builds, can be found here.
      3. car.mk then inherits car_base.mk, the base platform for car builds, whose content can be found here.
      4. Inside car_base.mk, the auto-specific PRODUCT_PROPERTY_OVERLAYS are added to customize the product at build time.
    2. Insert the following content:
    3. $(call inherit-product, device/ti/beagle_x15/device.mk) $(call inherit-product, device/ti/beagle_x15/auto/device.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk) $(call inherit-product, packages/services/Car/car_product/build/car.mk) PRODUCT_NAME := beagle_x15_auto PRODUCT_DEVICE := beagle_x15 PRODUCT_BRAND := Android PRODUCT_MODEL := AOSP Auto on BeagleBoard X15 PRODUCT_MANUFACTURER := Texas Instruments Inc
  8. Create the device.mk to declare the auto-specific files and modules needed for the device.
    1. The android.hardware.automotive.vehicle@2.0-service PRODUCT_PACKAGE is the Android Automotive hardware abstraction layer (HAL), which is the interface definition between the car and the vehicle network service.
    2. The frameworks/../../../android.hardware.type.automotive.xml PRODUCT_COPY_FILE determines that the Android device implementation is classified as “Automotive”.
    3. Insert the following content:
  9. PRODUCT_PACKAGES += \ android.hardware.automotive.vehicle@2.0-service \ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.type.automotive.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.type.automotive.xml \ frameworks/native/data/etc/android.hardware.screen.landscape.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.screen.landscape.xml \ PRODUCT_PROPERTY_OVERRIDES += \ android.car.drawer.unlimited=true \ android.car.hvac.demo=true \ com.android.car.radio.demo=true \ com.android.car.radio.demo.dual=true \
  10. Create the manifest.xml to provide the HAL(s) specific to automotive.
    1. Beagle_x15 requires the android.hardware.automotive.vehicle inclusion to define the product as automotive.
    2. Insert the following content:
  11. <manifest version="1.0" type="device"> <hal format="hidl"> <name>android.hardware.automotive.vehicle</name> <transport>hwbinder</transport> <version>2.0</version> <interface> <name>IVehicle</name> <instance>default</instance> </interface> </hal> </manifest>