Introduction
When Project Treble launched in Android 8.0, Google introduced HIDL (Hardware Interface Definition Language) to separate framework and vendor code. However, managing two completely distinct IPC languages - AIDL for the framework and HIDL for HALs - proved cumbersome. Starting in Android 11, Google introduced Stable AIDL and began deprecating HIDL entirely.
HIDL Deprecation Strategy
The Android ecosystem is actively unifying under a single IPC language: AIDL. Google's strategy is to freeze existing HIDL interfaces and require all new hardware features to be implemented using AIDL HALs.
If a vendor wants to support a new Android feature (e.g., a new camera capability introduced in Android 13), they cannot simply bump the HIDL version. They are forced to migrate that specific HAL to AIDL. Eventually, old HIDL HALs will be removed from the system compatibility matrix, preventing devices using them from passing VTS (Vendor Test Suite).
AIDL HAL Advantages over HIDL
The transition to AIDL brings significant architectural improvements:
- Single IPC Language: Developers only need to learn one interface language, one set of build rules, and one memory management model.
- Unified Binder Domain: HIDL requires the
/dev/hwbinderkernel driver and thehwservicemanagerdaemon. AIDL HALs use the standard/dev/binderdriver andservicemanager. This reduces kernel overhead, memory footprint, and eliminates the need to maintain two parallel binder infrastructures. - Better Tooling: AIDL has decades of tooling built around it, including advanced Rust support, better IDE integration, and more robust fuzzing infrastructure.
- Versioning Model: HIDL uses rigid major/minor versioning (e.g.,
@1.0,@2.1), leading to an explosion of duplicate interface files and confusing inheritance chains. AIDL uses a flat, incremental versioning model, making it much easier to maintain backwards compatibility.
Migration Timeline per Android Release
- Android 8.0 (Oreo): HIDL introduced. All HALs converted to HIDL (mostly Passthrough).
- Android 11 (R): Stable AIDL introduced. First AIDL HALs (Vibrator, Light) implemented.
- Android 12 (S): Major push for AIDL migration. HIDL versions of many core HALs frozen.
- Android 13/14 (T/U): Almost all active development shifted to AIDL. Audio and Camera HALs began the massive migration process. New device launches are strongly discouraged from using legacy HIDL interfaces.