Android BSP
What is an Android BSP?
An Android Board Support Package (BSP) is the Android source code with modifications for specific piece of hardware, to allow Android to be built and run on that hardware.
Often, Android BSPs are provided by silicon, board or SoM vendors to enable use of Android on their evaluation boards or Single board computers. Sometimes the Android support is provided by a software services partner – such services partners have included Witekio in some instances.
Companies who are building an Android device with a custom hardware design will usually need a customised Android BSP to go with it. Again Witekio has a lot of experience in providing such BSPs for clients building Android devices for a range of target market sectors and use cases.
What is actually included in an Android BSP is a set of code repositories specific for the hardware to be supported, which slot into the source tree for the upstream source code for Android from Google. The target system to build the OS for can then be selected when following the standard Android build procedure.
Companies who are building an Android device with a custom hardware design will usually need a customised Android BSP to go with it. Again Witekio has a lot of experience in providing such BSPs for clients building Android devices for a range of target market sectors and use cases.
What is actually included in an Android BSP is a set of code repositories specific for the hardware to be supported, which slot into the source tree for the upstream source code for Android from Google. The target system to build the OS for can then be selected when following the standard Android build procedure.
The main questions to ask yourself when customizing your Android BSP
Is Android the best choice?
Some projects have high level requirements which mandate it’s use at the outset, for example compatibility with specific third party apps. However for a device which runs a single user facing application, it may be worth considering a smaller Linux system built with Yocto say, or even an RTOS.
Why not just develop an Android BSP ourselves from a similar one?
Creating an Android BSP requires a lot of modification in the Android OS. This activity, as described here requires very niche skills that cost time and money to build up in an internal team. Those skills are also only needed for a relatively short time as compared to the full life cycle of a product development.
How can we reduce the cost/time needed for our custom Android BSP?
A big head start can be achieved with careful hardware selection. The more closely you base your custom hardware on the reference design provided by the Silicon vendor, the less changes will be needed to the vendor’s Android BSP for it to work on your hardware.
SUCCESS STORY
Precor Fitness device architecture and full stack development
Precor, a leading fitness equipment manufacturer, enhanced its P80 fitness console with the new Android-based P82, released in March 2016. The P82 features faster processing, embedded WiFi, Bluetooth, and NFC, providing an immersive user experience. A smaller-screen version was introduced in Q4 2016. Using the Variscite System-on-Module with an NXP i.MX6Quad core Cortex-A9 processor, Precor required a system software integrator to meet their technical needs, ensuring reliability and performance. The challenges and requirements included expertise in NXP ARM MCUs and MPUs, support across embedded software and user interfaces, and product reliability and performance optimization. Witekio provided:
- Android BSP adaptation and integration
- System integration on NXP i.MX based Variscite SOM-MX6
- Development on Linux and Android
- High-level software and multimedia support
Witekio can support Android BSP development
Witekio has taken on all types and sizes of work from customers when supporting them with Android on custom hardware, including:
Larger projects:
Assisting on specific issues:
Larger projects:
- Full OS bringup (bootloader onwards) on new hardware
- Transition to Android from another OS on existing HW
- Update Android to a newer version on existing HW (Including when not supported anymore by the SoC vendor)
Assisting on specific issues:
- Adding support for new drivers / peripherals up to app API level
- Changing standard behaviors in the OS
- Secure Boot
- OTA
- Security Auditing
- CVE Scanning / SBoM
- Getting an Android port approved with CTS to enable GMS support