platform_hardware_libhardware/modules
2019-09-11 20:31:31 +00:00
..
audio audio: Update default audio implementation. 2018-01-30 12:05:24 -08:00
audio_remote_submix Merge "Remote submix: replace include path with module dependency" 2019-08-05 11:08:23 -07:00
camera Remove libBionicGtestMain 2019-06-04 09:18:28 -07:00
consumerir Use -Werror in hardware/libhardware 2017-10-04 11:09:30 -07:00
fingerprint Use -Werror in hardware/libhardware 2017-10-04 11:09:30 -07:00
gralloc Fix a memory leak 2018-02-13 00:33:26 +00:00
hwcomposer Convert to Android.bp 2017-12-27 11:05:29 -08:00
input/evdev Remove custom timestamp from hw/libhw/input 2019-08-13 14:41:47 -05:00
local_time Use -Werror in hardware/libhardware 2017-10-04 11:09:30 -07:00
nfc Use -Werror in hardware/libhardware 2017-10-04 11:09:30 -07:00
nfc-nci Merge "Use -Werror in hardware/libhardware" am: d1a2b9f7c1 am: d67dcc5fc8 2017-10-12 01:58:44 +00:00
power Use -Werror in hardware/libhardware 2017-10-04 11:09:30 -07:00
radio Merge changes from topic "libhardware_vndk" 2017-09-06 15:58:26 +00:00
sensors Merge "Merge qt-r1-dev-plus-aosp-without-vendor (5817612) into stage-aosp-master" into stage-aosp-master 2019-09-11 20:31:31 +00:00
soundtrigger Converting sound trigger v2.2 getModelState to be asynchronous 2018-11-08 08:11:02 +01:00
thermal Convert to Android.bp 2017-12-27 11:05:29 -08:00
tv_input Use -Werror in hardware/libhardware 2017-10-04 11:09:30 -07:00
usbaudio Adding Audio HAL V5: Direction API 2018-12-19 12:00:22 -07:00
usbcamera Convert to Android.bp 2017-12-27 11:05:29 -08:00
vibrator Use -Werror in hardware/libhardware 2017-10-04 11:09:30 -07:00
vr Convert to Android.bp 2017-12-27 11:05:29 -08:00
Android.mk Convert to Android.bp 2017-12-27 11:05:29 -08:00
README.android Move default HAL libraries to vendor 2017-03-07 11:28:32 +08:00

Default (and possibly architecture dependents) HAL modules go here. 


libhardware.so eventually should contain *just* the HAL hub
(hardware.c), everything in it should be rewritten as modules.

Modules are .so in /vendor/lib/hw/ and have a well defined naming
convention:

    /vendor/lib/hw/<*_HARDWARE_MODULE_ID>.<ro.product.board>.so
    /vendor/lib/hw/<*_HARDWARE_MODULE_ID>.<ro.board.platform>.so
    /vendor/lib/hw/<*_HARDWARE_MODULE_ID>.<ro.arch>.so
    /vendor/lib/hw/<*_HARDWARE_MODULE_ID>.default.so

They also have a well defined interface which lives in include/hardware/.

A module can have several variants: "default", "arch" and "board", and they're
loaded in the "board", "arch" and "default" order.
The source code for the "board" variant, usually lives under partners/...

The source code for "default" and "arch" would usually
live under hardware/modules/.