Custom AOSP App for a Biometric Scanner
Overview of Our Client
Our client was a European technology provider developing proprietary hardware solutions for high-security access control, fintech, and biometric identification. Its core product was a custom palm and gesture scanner designed for secure facility management and identity verification.
The client required a production-ready system software layer based on AOSP. The application had to manage dual-spectrum scanning, process large biometric video payloads, operate reliably on low-spec hardware, and support remote device management without relying on Google Mobile Services.
- Region: Europe
- Industry: Biometrics / Security / Access Control / FinTech
- Timeline: ~3 months
Challenge
The project required biometric hardware software development for proprietary scanning equipment with limited computing resources. The main engineering challenges included:
- Optimizing video processing on low-spec hardware without causing overheating or frame drops
- Overcoming the lack of native multimedia codecs in the custom AOSP environment
- Applying AOSP development for custom hardware with platform-specific constraints
- Cross-compiling C/C++ multimedia libraries for the target Android hardware
- Synchronizing RGB and infrared video streams with frame-level accuracy
- Monitoring CPU temperature, storage, scanner configuration, and network connectivity
- Transferring large biometric video files over unstable network connections
- Implementing remote application updates without Google Mobile Services
Main Goals
To deliver the desired biometric scanning application, we established the following objectives:
- Build a lightweight AOSP application optimized for resource-constrained biometric hardware
- Implement a C/C++ video processing pipeline using Android NDK and FFmpeg
- Support synchronization between RGB and infrared scanning streams
- Develop resilient file transmission with automatic recovery after network interruptions
- Implement monitoring of device health and connectivity
- Provide secure remote application updates without GMS dependencies
Project Overview
We developed a custom Kotlin-based AOSP application that served as the operational software layer for the client's palm and gesture scanning hardware.
The application connected to the scanner through RNDIS and received simultaneous RGB and infrared video streams. Since the custom AOSP environment did not provide the required multimedia codecs, we implemented a custom FFmpeg processing pipeline compiled and optimized in C/C++ through Android NDK.
The application also handled device monitoring, configuration, local data management, logging, and transmission of completed scanning sessions. Large biometric files were processed through a resilient chunk-based upload mechanism capable of automatically resuming interrupted transfers.
Solution
The delivered solution combined a lightweight Kotlin application with optimized native C/C++ components to provide reliable biometric data processing on constrained hardware. We implemented the following technical approaches:
- Custom Native Video Pipeline: Built and optimized FFmpeg for the target hardware using C/C++ and Android NDK, providing synchronized RGB and infrared video processing. The implementation included FFmpeg cross-compilation Android NDK workflows to adapt the multimedia stack to the custom AOSP environment.
- Frame-Accurate Video Synchronization: Coordinated two simultaneous video streams received through RNDIS to maintain synchronization during biometric scanning.
- Resilient Chunk-Based Uploads: Split large biometric files into smaller chunks, uploaded them in parallel, and enabled automatic resume after network interruptions.
- Low-Level Hardware Monitoring: Continuously monitored CPU temperature, storage availability, and Wi-Fi/Ethernet connectivity to maintain stable device operation.
- File-Based Data Management: Used lightweight filesystem operations for scanner configuration, logs, and operation queues to minimize database overhead.
- GMS-Independent OTA Updates: Integrated a third-party OTA management platform to enable secure remote application updates on custom AOSP devices.
Core Platform Capabilities
- Lightweight AOSP application optimized for low-spec hardware
- Dual RGB and infrared video capture and synchronization
- Native C/C++ video processing through Android NDK
- Custom FFmpeg pipeline for video encoding and processing
- RNDIS-based communication with proprietary scanning hardware
- Resilient chunked and resumable biometric data uploads
- Real-time CPU, storage, and network monitoring
- File-based configuration and operational logging
- Automated remote application updates without GMS
Technology Stack
To support reliable biometric scanning, native video processing, and resilient device management, we used the following technology stack:
Application
- Kotlin
- Android Open Source Project (AOSP)
Native Development
- C/C++
- Android NDK
- Kotlin
Video Processing
- Custom FFmpeg build
- Command-line integration
Hardware Communication
- RNDIS
- Custom vendor APIs
Networking
- HTTP/REST APIs
- Chunked and parallel file uploads
Data Management
- Low-level file I/O for configuration, logs, and operation queues
Device Management
- Third-party OTA update platform
Results
The AOSP biometric scanning solution provided a stable and production-ready software layer for the client's proprietary hardware. The main outcomes included:
- Production-ready system software: Delivered lightweight custom Android biometric device software optimized for resource-constrained biometric devices.
- Accurate video synchronization: Achieved frame-accurate synchronization between RGB and infrared streams through a custom native FFmpeg pipeline.
- Reliable data transmission: Prevented data loss during unstable network conditions with parallel chunk uploads and automatic transfer recovery.
- Improved device stability: Enabled continuous monitoring of thermal conditions, storage availability, and network connectivity.
- Independent device management: Enabled secure remote application updates without Google Mobile Services.
Core Team
- Solution Architect / Lead AOSP Developer: Designed the AOSP architecture, hardware communication, and Kotlin/C++ integration.
- AOSP / Android Developer: Developed the application, device monitoring, configuration, and operational workflows.
- C/C++ / Embedded Developer: Implemented native components and optimized performance for resource-constrained hardware.
- Video Processing Engineer: Developed the FFmpeg pipeline and RGB/IR video synchronization.
- Backend / Integration Engineer: Implemented resilient biometric data transfers and remote device management.
- QA Engineer: Controlled QA/automated testing, including scanning, synchronization, connectivity, file transfers, device stability, and OTA updates.
Related Cases
- LangChain
- Python
- Computer Vision
- JavaScript