Processor SDK for Android Oreo: Android Oreo Overview
Resources
In this training series, we will provide an overview of Texas Instruments latest Android Oreo software. First, we will cover what's new in Android Oreo. Then, we will provide an introduction to Texas Instruments Processor SDK for Android.
Android Oreo Overview. Android Oreo is the first public version to include Android for automotive. This includes the introduction of the vehicle hardware abstraction layer, boot performance improvements, and the introduction of Google Automotive Services. Android Oreo also introduces a major architecture change with the introduction of project Treble. Project Treble introduces modular design, which is easier, faster, and less costly for original equipment manufacturers to update devices.
It also places an emphasis and alignment on the long term support kernel model, including six years of support. Project Treble enforces a minimum 4.4 long term support kernel for new devices. It also introduces the vendor test suite. This includes the compliance test suite for System On Chip and original equipment manufacturers, as well as the compatibility test suite for operating system and frameworks.
Project Treble. A major change in the Android Oreo release is the introduction of Project Treble. One of the major problems with Android today is that it is badly fragmented with original equipment manufacturers not migrating to the latest version of Android. These pie charts show the kernel version associated with a given Android pastry in the market today. This clearly shows that not all devices are getting updated to the latest kernel and operating system.
The reason for this is complex dependencies with various hardware and software partners in making a product, including System On Chip vendors, original design manufacturers, original equipment manufacturers, and custom software developers. Project Treble is introduced to address this issue and make Android design more modular to make it easier to upgrade to the latest OS.
A modular design with isolation between software components helps manufacturers adapt to the latest kernel faster, provides improved security with latest security fixes and the kernel updated through long term support patch releases, allows easier device upgrades to extend product life cycles, and improve software quality and testability across software layers. The table here, shows how various aspects of Project Treble impact and help a combination of software partners, including Google for Android Frameworks, System On Chip vendors for platform and device drivers, original design manufacturers, and original equipment manufacturers for additional custom software and third party components.
Upstreaming of features and fixes to the community and to the Android open source project is in the core of Project Treble, along with user and kernel space abstraction across Android partitions and abstraction layers. Linaro supports Google's Project Treble needs for all ARM System On Chip vendors and partners. Sitara's AM572x is chosen to be a primary ARM V7 platform for this effort. This proactive development and collaboration with Linaro, Google, and various ARM vendors, helps in adopting TI Sitara and Jacinto processors to Project Treble requirements faster.
Due to this early engagement with Linaro, long term support kernel and Android pastry migrations are expected to be easier and faster. This project helps in extending test coverage and validation for Linux and Android kernels for key ARM platforms through Linux kernel functional testing on long term support and mainline kernel combinations. Linaro collaboration helps in enabling Android Treble features earlier. Some of the features that are under development now are OPTEE with Gatekeeper with hardware abstraction layer and Android verified boot. This project also helps in extending long term support maintenance cycles from two years to six years. Another goal of the project is to upstream Google Android drivers and test the kernel for all long term support releases on ARM V7, ARM V8, QMU, and x86 devices.
Here, we summarize some of the key software changes TI is making to migrate to Project Treble. In the bootloader, Treble has introduced device tree overlays for vendor specific components, while the baseboard definitions and boot components remain in the device tree. For verified boot, Treble recommends performing the integrity check with Android Verified Boot 2.0 with Lib AVB specifications for all Android partitions. In the kernel, it is recommended to always stay up to date with the latest Android common and long term support release, to get security and stability patch updates.
Also, driver modularization is preferred instead of built-in components. Modules should be stored in the read only vendor partition and loaded as part of the early mounting of the file system. In Android, the goal is to replace the framework without having to rebuild the hardware abstraction layers. We must now use the hardware interface defined language for TI multimedia, graphics, and display hardware abstraction layers. We have moved System On Chip vendor specific configuration, firmware, drivers, and libraries to the read only vendor partition.
Finally, we enable the full product Treble flag for supported TI devices. For testing, Treble introduces the new vendor test suite specifically focused on compliance of hardware vendors like System On Chip, original equipment manufacturers, and original design manufacturers. The vendor test suite provides extensive new functionality for Android testing and promotes a test-driven development process. It also includes approximately 900 new Android kernel tests, which tests the kernel extensively for functionality, stability, and vulnerabilities. The vendor test suite also includes new hardware abstraction layer tests to validate each API extensively in accordance to hardware interface defined language definitions.
We will now give an overview of the catalog Processor SDK for Android. This SDK can be downloaded from ti.com for free and includes all of the sources and tools necessary to evaluate and begin development with Android on Texas Instruments AM57x family of devices.
The first release of the Catalog Processor SDK for Android was based on the marshmallow pastry and was published in the second quarter of 2017. Since then, a quarterly release cadence has been followed, which includes two releases based on marshmallow and two releases based on the new Oreo pastry.
This table shows the Processor SDK version number, along with the Linux kernel and U-boot versions. Notice the usage of the long term support kernel version that has received updates for each new release. Before release notes and other documentation for the latest SDK version can be found on ti.com at the link shown here. It should be noted that the marshmallow releases of the SDK are considered to be development releases and should not be used in production.
The new Android Oreo based SDKs should be used for production projects. Here, we show an example of the download page for the Catalog Processor SDK for Android. All of the links on this page are useful, but we will highlight three of the most important for getting started. The bin file in the first link contains the installer for the SDK. This file should be downloaded and installed on your Ubuntu Linux machine that will be used for Android development.
Once the SDK has been installed on your development machine, you'll have all the software needed to get started with your Android evaluation or development. The next important link on this page is the release notes link. The release notes for each SDK version are a one-stop-shop for everything you need to know about that specific release. Information on this page includes links to documentation, features list, version numbers for the underlying components, a list of known issues for the release, and much more.
The last important link is the developer guide, which acts as a landing page for all of the available documentation on how to use the Processor SDK for Android. The best way for newcomers to begin their development journey is to read through the Getting Started Guide, which can be found on this landing page. The Getting Started Guide walks you through the out-of-box experience and will also explain how to use the resources in the SDK to recreate the out-of-box experience from source code.
The folder structure of the Processor SDK for Android is meant to be very familiar to users that have previously used the Processor SDK for Linux. In the installation folder, you will find the android-devkit directory, which contains the toolchains and libraries needed to rebuild the SDK components, the bin directory, which contains scripts and utilities used for the out-of-box experience, the board support directory, which contains source code for the Linux kernel, as well as U-boot. This directory also has the Android open source project folder that has an initialized manifest file that can pull the Android file system sources with a single command, using the included repo tool.
The prebuilt-images directory contains the binaries that are used in the out-of-box experience, which will get Android up and running on the Sitara evaluation module. The docs directory has the license information for all of the software pieces that make up the SDK. The top-level Makefile makes it possible to build each component of the SDK using simple make commands. The setup.sh script flashes the prebuilt binaries to the Sitara evaluation module, in order to run the out-of-box example.
Running the out-of-box demo using the Catalog Processor SDK for Android was designed to be as simple as possible. Detailed instructions are included in the link provided at the bottom. I will cover them briefly here. First, configure a Linux host machine with the Ubuntu distribution. This will be used throughout the development process. Next, install the Processor SDK for Android. The third step is to use a script provided in the SDK to create an SD card that contains the U-boot bootloader. This SD card will only need to be used once, because U-boot will be copied to the nonvolatile storage on the evaluation module when the images are flashed in a later step.
The next step, is to connect your evaluation module to the development machine, following the image shown on the right. The micro USB cable is connected between the evaluation module and the Linux host PC to be used during the flashing process. The serial connection allows the host PC to display the U-boot and Linux kernel boot logs. The final step is to run the setup script from the Linux host PC. This script will copy all of the necessary binaries to the nonvolatile storage of the evacuation module.
After the transfer is complete, the SD card can be removed and when the board is rebooted, the Android splash screen will appear and Android will boot on the evaluation module. The development flow using the Catalog Processor SDK for Android is also meant to be as easy as possible. After some initial host machine set up, provided configurations and makefiles are used to build and flash all of the pieces of the SDK to the Sitara evaluation module. Once again, the full information can be found at the link provided.
First, there is some prerequisite packages that must be installed on the host development machine. Next, the sources to build the Android file system need to be downloaded using the 'repo sync' command. After this, the environment variables should be exported. Step four, we'll build U-boot and the Linux kernel from source, using the top level makefile. Step five, we'll use a provided configuration file along with a makefile to build the Android file system from the sources downloaded in step two.
The final step is to flash the newly built bootloader, kernel, and file system to the evaluation module. The Catalog Processor SDK for Android supports three evaluation modules, shown here. The AM572x general purpose evaluation module showcases the dual core Cortex A15 Sitara System On Chip and comes with a touch screen LCD attached. The AM571x Industrial Development Kit showcases a single core Cortex A15 System On Chip. An additional touch screen LCD kit is necessary to run Android on this evaluation module.
The AM572x IDK plus LCD kit showcases the dual core Cortex A15 System On Chip again. However, this setup has a larger and higher resolution display than the general purpose evaluation module mentioned before. For more information about these evaluation modules and how to purchase one, click the provided link.
For the full documentation, as well as detailed steps on getting started using the Catalog Processor SDK for Android, click the Software Developers Guide landing page link. Thank you for your time and for any further questions about the catalog Processor SDK for Android, please use our Sitara E2E forums using the link provided here. Experts will be notified of your question and will respond as soon as possible.