How to Evaluate an Android BSP Before Choosing an SBC

Evaluate an Android BSP before board selection using build access, driver tests, CTS/VTS evidence, update support, ownership, and release controls.

How to Evaluate an Android BSP Before Choosing an SBC

Two Android boards can use the same SoC, carry the same memory, and behave like completely different products. The difference is usually not visible in the processor table. It sits in the board support package: kernel branches, bootloader changes, device trees, HALs, binary firmware, build scripts, update tools, and the people who maintain them.

The usual procurement mistake is to treat “Android 14 supported” as a deliverable. It is only a label until the supplier can reproduce an image, explain what changed from the silicon vendor baseline, and show that the interfaces needed by your product work on the actual hardware revision.

Evaluate the BSP before approving the board. A week spent here can prevent a year of owning code that nobody on the project understands.

Ask what the BSP actually contains

Request an inventory, not a download link: Android release and patch level, kernel branch, bootloader, proprietary binaries, toolchain, build instructions, flashing tools, factory image, OTA method, and known limitations.

Then ask who owns each layer. The board vendor may maintain the device tree but depend on the SoC vendor for GPU and video binaries. A contract manufacturer may package releases but have no engineer who can change a camera HAL. These are normal supply-chain arrangements. The risk appears when nobody will name the owner or response path.

BSP areaEvidence to requestWarning sign
Reproducible buildClean build instructions, pinned sources, tool versions, output hashes“Use this engineer’s workstation”
Kernel and bootloaderSource, patches, defconfig, device tree, license noticesSource does not match shipped binaries
HALs and firmwareVersion list, ownership, redistribution termsUnversioned binary folder
Peripheral supportTest results on the quoted board revisionDatasheet checkmarks only
CompatibilityCTS/VTS reports and documented waivers“Android boots, so it is compatible”
Update pathSigned full/incremental packages, rollback and recovery testManual reflash is called OTA
MaintenanceRelease cadence, patch policy, named escalation routeSupport ends after sample approval

Do not demand that every component be open source. Commercial graphics, video, Wi-Fi, and modem stacks often contain redistributable binaries. Demand traceability: exact versions, compatible source baseline, licensing rights for production, and a way to obtain the same artifacts later.

Rebuild the image before trusting it

The strongest early BSP test is simple: give a clean machine and the supplier’s package to an engineer who did not prepare the original environment. Ask that engineer to produce a flashable image without private chat instructions.

Record missing repositories, expired credentials, hard-coded paths, prompts, and downloads that change between runs. A build that fetches “latest” dependencies may produce a different image six months later from the same source revision.

Compare the result with the supplier release. Timestamps and signing may prevent identical hashes, but partition layout, build properties, kernel configuration, firmware, and behavior should be explainable.

This review belongs beside the broader Android board selection criteria. CPU and I/O narrow the shortlist. A reproducible BSP decides whether the shortlist can survive production.

Test the exact product interfaces

A booting launcher proves the display, storage, and some graphics path work. It says little about the product. Build an interface acceptance matrix from your requirements and exercise every item through cold boot, warm reboot, suspend/resume, repeated cable insertion, network loss, and long runtime.

Use production parts where possible: the intended MIPI panel and timings, touch controller firmware, USB scanner, RS-485 transceiver, camera module, audio codec, and Wi-Fi module. A touchscreen integration issue can sit between the kernel driver, input configuration, display rotation, and application. The component being visible in Linux is not the same as correct Android behavior.

Check simultaneous load. Camera capture may work until Wi-Fi traffic and display composition compete for memory bandwidth. Two serial ports may pass loopback individually and drop frames when the CPU enters a low-power state. Engineers find these problems by recreating the product workload, not by running isolated demos.

Use compatibility tests as evidence, not decoration

Google’s Compatibility Test Suite checks Android API and platform behavior. The Vendor Test Suite targets the kernel and HAL layer. Ask for the exact report, build fingerprint, device revision, date, failed modules, and disposition of every waiver.

A screenshot saying “CTS passed” is weak evidence. Test reports should be tied to a release artifact that your team can flash. And if your product does not require Android compatibility or GMS, CTS still has diagnostic value. It exposes changes that can break ordinary Android applications.

Do not stop at CTS/VTS. Add product tests for boot time, display sleep/wake, peripheral permissions, storage pressure, watchdog recovery, thermal throttling, and a 72-hour soak. Standard suites do not know your relay must return to a safe state after reboot.

Inspect update and recovery support

Ask the supplier to demonstrate an update from the oldest release you expect to support to the proposed current release. Interrupt power during download, installation, first boot, and any snapshot merge. Verify that device identity and application data follow the documented rules.

The companion guide on Android OTA updates covers A/B and rollback in detail. During BSP selection, the practical questions are narrower:

  • Is boot control implemented and tested on this board?
  • Are full and incremental packages generated by a documented process?
  • Who holds production signing keys?
  • Can the device reject a package for another SKU?
  • Is there a signed factory recovery image?
  • Can a technician recover the unit without vendor-only credentials?

If these answers arrive after purchase-order approval, leverage has already moved to the supplier.

Price maintenance, not only customization

Put measurable maintenance outputs in the support agreement: Android branch, patch cadence, severity-based response time, supported board revisions, binary redistribution, critical-CVE handling, release notes, regression scope, and end-of-support notice.

Ask for one sample change before committing. A small device-tree adjustment or driver bug is enough to observe how the supplier receives a report, reproduces it, sends a patch, builds an image, and documents the release. That workflow tells you more than a slide deck.

Keep a decision log for accepted limitations. Perhaps hardware video decode does not cover one codec, the second MIPI camera cannot run at full rate, or suspend is intentionally disabled. A known constraint can be engineered around. An undocumented one becomes a field surprise.

Run a five-day BSP evaluation

A compact evaluation can fit into one engineering week if hardware is available.

DayWorkRequired output
1Inventory sources, binaries, licenses, tools, and ownershipBSP bill of materials and gap list
2Build from clean environment and flash two boardsReproducible build record
3Exercise all product interfaces under combined loadInterface acceptance matrix
4Run update, recovery, power-cut, and storage-pressure testsFailure log with recovery result
5Review CTS/VTS, patch policy, release process, and commercial termsGo/no-go report with conditions

Use at least two boards. A single sample can hide marginal memory, connector damage, or an accidental engineering modification. Photograph hardware revisions and store serial numbers with test evidence.

Frequently asked questions

Is a newer Android version always a better BSP?

No. A maintained older branch with working drivers, repeatable builds, and an update commitment may be safer than a recent branch assembled for a trade-show demo. Security support and application requirements still set a deadline, so make the trade-off explicitly.

Who should own the final production image?

The product company should control the release definition, acceptance evidence, signing authority, and archived artifacts even when a supplier performs the build. Outsourcing engineering work is reasonable; outsourcing knowledge of what was shipped is not.

How much source code is enough?

Enough to rebuild all open-source components you are entitled to receive, reproduce configuration, integrate licensed binaries, diagnose product interfaces, and create a signed recovery image. Verify this by building, not by counting gigabytes in an archive.

The decision rule

Buy the board only when the BSP has passed a small production rehearsal. The team should be able to build it, flash it, exercise the real peripherals, update it, break it, recover it, and identify who fixes each layer.

There is a blunt test I like: if your lead Android engineer leaves tomorrow, can another competent engineer reproduce the current image from the release record? If the answer is no, the BSP is not yet a product asset. It is borrowed knowledge.

Primary references