commit | 09b19ff2fe688c1ce995da967a82095bb87e3e3c | [log] [tgz] |
---|---|---|
author | Steven Moreland <smoreland@google.com> | Tue Mar 30 01:17:30 2021 +0000 |
committer | Steven Moreland <smoreland@google.com> | Tue Mar 30 17:00:16 2021 +0000 |
tree | 6de05bfe396eae00a85cd8dc01a219e0f785dab4 | |
parent | 7821c841209257fb79e603cb26a173a8e64cafab [diff] |
Disallow new HIDL interfaces. This saves a list of all HIDL interfaces and errors if new interfaces are added. The Android T policy is that new AOSP interfaces must be added in AIDL (ideally with full conversions, but optionally as extension interfaces). This error is meant to avoid anyone accidentally wasting time creating a new HIDL interface that cannot be accepted. Now that is past the deadline for new Android S interfaces, adding this in. Ignore-AOSP-First: don't want to expose list of new HALs publicly, since I would want to check w/ all interface OWNERS first Fixes: 182941786 Test: m nothing Change-Id: Ieadef0dea7d30ac5085f8a087b540755f2717a69
Full documentation can be found here: https://source.android.com/devices/architecture/hidl/
hidl-gen is a compiler for the HIDL (HAL Interface Design Language) which generates C++ and Java endpoints for RPC mechanisms. The main userspace libraries which this compiler uses can be found at system/libhidl.
m hidl-gen
Note that options for hidl-gen expected to be invoked by the build system are marked with 'internal' in the help menu.
hidl-gen -h hidl-gen -o output -L c++-impl -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.nfc@1.0
Some defaults for package roots are also provided
hidl-gen -o output -L c++-impl android.hardware.nfc@1.0 hidl-gen -o output -L vts android.hardware.nfc@1.0 hidl-gen -L hash android.hardware.nfc@1.0
Example command for vendor project
hidl-gen -L c++-impl -r vendor.foo:vendor/foo/interfaces vendor.foo.nfc@1.0
See update-makefiles-helper.sh and update-all-google-makefiles.sh for examples of how to generate HIDL makefiles (using the -Landroidbp option).
NOTE: When using the -Landroidbp option, you can force generated modules to be installed in
/system_ext
rather than other partition by putting a marker file.hidl_for_system_ext
alongside*.hal
files.
NOTE: You can also install the vendor variant of the generated modules to be installed in
/odm
rather than/vendor
by putting a marker file.hidl_for_odm
alongside*.hal
files.
This is a helper tool to convert C headers to valid .hal files.
m c2hal && c2hal -h