Who needs custom Android OS development?

“Android is the OS on my smartphone.” (Or watch, possibly car dashboard)
Yes it is. Unless you have an iPhone. However, a lot of other products with embedded software run Android as their OS. Often these are non-consumer devices and it is not made obvious that Android is running on them, such as kiosks and healthcare wearables. Instead of providing a home screen to launch the usual selection of apps, such devices are often setup to boot Android and launch straight into one specific app created for the device. Usually that app runs alongside Android system services also written for the device, to perform lower level actions requiring system permissions.
To use Android in this way, developers need to customise it to run on bespoke hardware. This is not the app development people think of when normally thinking about working with Android. Porting and supporting Android on new hardware requires Android OS development, which is a much rarer skill.

The main challenges of custom android os development

secure development blue

Restrictions due to security

Using Android on a specific purpose device can be careful balance between security and functionality. Certain functionality needed in the main app often must be split off into a separate Android service which can run with system privileges. Custom SELinux policies are usually then needed to allow the service to access the required files or device nodes in the system to control unusual hardware.
secure architecture blue

Harder to customise

For a specific purpose device, the AOSP (Android Open Source Project) source code collection will contain a lot of apps and services which are not needed. It is usually best to remove a lot of that from the build of the OS for that device configuration. The AOSP is a very large code base made up of hundreds of git repositories, the required changes to HALs and Java frameworks can span across that code, anything changed then needs to be hosted locally in forks of the affected repositories.
performances blue

Performance

Due to Android’s large range of out of the box functionality, it has a lot of layers and services running which can slow things down. It is possible to configure everything for high performance, however this requires experience in order to know what to change and where, again given the size of the code base.

3 key elements you need for your custom Android OS development

An Android BSP

The easiest solution is to have the Android OS source code already setup to run on your custom hardware, or something as close to it as possible. That is where an Android Board Support Package (BSP) comes in handy. As it happens, Witekio has plenty of experience providing Android BSPs on behalf of silicon and board vendors, and providing customised BSPs for device makers

A list of requirements for the Android port

It is important to identify all of the features Android provides which should be supported on your device and plan that work ahead of time. This is best practice in any development project, but due to the size and complexity of the Android OS, it is especially important to identify the full scope of the work, to avoid slippage at the end of the project.

Experience

As mentioned above, customising the Android OS effectively is a much rarer skill than app development. Familiarity is need with the many intermediate layers of Java framework code, the lower level HAL libraries and the IPC mechanisms specific to Android for making calls between them, SELinux policy authoring and changes to default settings in device configuration XML files.

SUCCESS STORY

Datalogic, build a brand new Android data capturing solution

The development of the Datalogic DL-Axist™, a rugged PDA featuring advanced barcode data collection and imaging technology, presented several challenges. These included the need for seamless Android KitKat porting, hardware integration with Linux, and improvements in product reliability and power management. To address these, Datalogic sought a partner with deep expertise in Android and Linux development, as well as experience with Texas Instruments OMAP™ architectures. Witekio provided a comprehensive solution, delivering a customized and reliable BSP for Android KitKat, integrating necessary hardware with Linux, supporting PMIC and gas gauge controllers, enhancing the Android hardware abstraction layer, and optimizing power management. This collaboration ensured the DL-Axist met its technical requirements with enhanced performance and reliability.

Best practices of custom Android OS development on embedded platforms

Why run Android on Embedded devices?

Witekio can support your custom Android OS development

Witekio can handle all of the above issues for you, providing a working Android build with all required features for your hardware. This will avoid you having to spend time building up this specialised knowledge internally, and instead your team can spend that time focusing instead on the core value of your product.

Over time we have developed strong partnerships with the biggest microprocessors, microcontrollers, and reference card vendors our clients build their Android OS on. Market leaders like Texas Instruments have relied on Witekio to develop the Android KitKat and Android Marshmallow BSPs for their Sitara-based platforms. Many companies have also launched innovative products using our BSPs for the TI AM335x, TI AL437x, and TI AM57x processors available for self-service download on the Witekio website.

Our Embedded software expertise

Buildroot

osmigration

SecureBoot

Witekio The Embedded Kit teams

Your trusted embedded software, application and connectivity partner

flag_line

4 Countries

4 countries

iso_27001_02-1024x704

ISO 27001 certified

ISO 27001 certified

Avnet_logo

Fortune 500 owned

Fortune 500 owned