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