xref: /aosp_15_r20/hardware/libhardware/modules/README.android (revision e01b6f769022e40d0923dee176e8dc7cd1d52984)
1*e01b6f76SAndroid Build Coastguard WorkerDefault (and possibly architecture dependents) HAL modules go here.
2*e01b6f76SAndroid Build Coastguard Worker
3*e01b6f76SAndroid Build Coastguard Worker
4*e01b6f76SAndroid Build Coastguard Workerlibhardware.so eventually should contain *just* the HAL hub
5*e01b6f76SAndroid Build Coastguard Worker(hardware.c), everything in it should be rewritten as modules.
6*e01b6f76SAndroid Build Coastguard Worker
7*e01b6f76SAndroid Build Coastguard WorkerModules are .so in /vendor/lib/hw/ and have a well defined naming
8*e01b6f76SAndroid Build Coastguard Workerconvention:
9*e01b6f76SAndroid Build Coastguard Worker
10*e01b6f76SAndroid Build Coastguard Worker    /vendor/lib/hw/<*_HARDWARE_MODULE_ID>.<ro.product.board>.so
11*e01b6f76SAndroid Build Coastguard Worker    /vendor/lib/hw/<*_HARDWARE_MODULE_ID>.<ro.board.platform>.so
12*e01b6f76SAndroid Build Coastguard Worker    /vendor/lib/hw/<*_HARDWARE_MODULE_ID>.<ro.arch>.so
13*e01b6f76SAndroid Build Coastguard Worker    /vendor/lib/hw/<*_HARDWARE_MODULE_ID>.default.so
14*e01b6f76SAndroid Build Coastguard Worker
15*e01b6f76SAndroid Build Coastguard WorkerThey also have a well defined interface which lives in include/hardware/.
16*e01b6f76SAndroid Build Coastguard Worker
17*e01b6f76SAndroid Build Coastguard WorkerA module can have several variants: "default", "arch" and "board", and they're
18*e01b6f76SAndroid Build Coastguard Workerloaded in the "board", "arch" and "default" order.
19*e01b6f76SAndroid Build Coastguard WorkerThe source code for the "board" variant, usually lives under partners/...
20*e01b6f76SAndroid Build Coastguard Worker
21*e01b6f76SAndroid Build Coastguard WorkerThe source code for "default" and "arch" would usually
22*e01b6f76SAndroid Build Coastguard Workerlive under hardware/modules/.
23*e01b6f76SAndroid Build Coastguard Worker
24