b224b363de
Added SPDX-license-identifier-Apache-2.0 to: atrace/1.0/Android.bp atrace/1.0/default/Android.bp atrace/1.0/vts/functional/Android.bp audio/2.0/Android.bp audio/2.0/config/Android.bp audio/4.0/Android.bp audio/4.0/config/Android.bp audio/5.0/Android.bp audio/5.0/config/Android.bp audio/6.0/Android.bp audio/6.0/config/Android.bp audio/7.0/Android.bp audio/7.0/config/Android.bp audio/common/2.0/Android.bp audio/common/4.0/Android.bp audio/common/5.0/Android.bp audio/common/6.0/Android.bp audio/common/7.0/Android.bp audio/common/7.0/example/Android.bp audio/common/all-versions/default/Android.bp audio/common/all-versions/default/service/Android.bp audio/common/all-versions/test/utility/Android.bp audio/common/all-versions/util/Android.bp audio/core/all-versions/default/Android.bp audio/core/all-versions/default/util/Android.bp audio/core/all-versions/vts/functional/Android.bp audio/effect/2.0/Android.bp audio/effect/2.0/xml/Android.bp audio/effect/4.0/Android.bp audio/effect/4.0/xml/Android.bp audio/effect/5.0/Android.bp audio/effect/5.0/xml/Android.bp audio/effect/6.0/Android.bp audio/effect/6.0/xml/Android.bp audio/effect/7.0/Android.bp audio/effect/7.0/xml/Android.bp audio/effect/all-versions/default/Android.bp audio/effect/all-versions/default/util/Android.bp audio/effect/all-versions/vts/functional/Android.bp audio/policy/1.0/vts/functional/Android.bp audio/policy/1.0/xml/Android.bp audio/policy/1.0/xml/pfw_schemas/Android.bp authsecret/1.0/Android.bp authsecret/1.0/default/Android.bp authsecret/1.0/vts/functional/Android.bp authsecret/aidl/Android.bp authsecret/aidl/default/Android.bp authsecret/aidl/vts/Android.bp automotive/audiocontrol/1.0/Android.bp automotive/audiocontrol/1.0/default/Android.bp automotive/audiocontrol/1.0/vts/functional/Android.bp automotive/audiocontrol/2.0/Android.bp automotive/audiocontrol/2.0/default/Android.bp automotive/audiocontrol/2.0/vts/functional/Android.bp automotive/can/1.0/default/libnetdevice/Android.bp automotive/can/1.0/hidl-utils/Android.bp automotive/can/1.0/tools/Android.bp automotive/can/1.0/tools/configurator/Android.bp automotive/can/1.0/tools/configurator/proto/Android.bp automotive/can/1.0/tools/libcanhaltools/Android.bp automotive/can/1.0/vts/functional/Android.bp automotive/can/1.0/vts/utils/Android.bp automotive/evs/1.0/Android.bp automotive/evs/1.0/default/Android.bp automotive/evs/1.0/vts/functional/Android.bp automotive/evs/1.1/Android.bp automotive/evs/1.1/default/Android.bp automotive/evs/1.1/vts/functional/Android.bp automotive/evs/1.1/vts/fuzzing/Android.bp automotive/evs/common/utils/default/Android.bp automotive/evs/common/utils/default/test/fuzz/Android.bp automotive/occupant_awareness/aidl/Android.bp automotive/occupant_awareness/aidl/default/Android.bp automotive/occupant_awareness/aidl/mock/Android.bp automotive/occupant_awareness/aidl/vts/functional/Android.bp automotive/sv/1.0/Android.bp automotive/sv/1.0/default/Android.bp automotive/sv/1.0/vts/functional/Android.bp automotive/vehicle/2.0/Android.bp automotive/vehicle/2.0/default/Android.bp automotive/vehicle/2.0/default/impl/vhal_v2_0/proto/Android.bp automotive/vehicle/2.0/utils/Android.bp biometrics/face/1.0/Android.bp biometrics/face/1.0/default/Android.bp biometrics/face/1.0/vts/functional/Android.bp biometrics/fingerprint/2.1/Android.bp biometrics/fingerprint/2.1/default/Android.bp biometrics/fingerprint/2.1/vts/functional/Android.bp biometrics/fingerprint/2.2/Android.bp biometrics/fingerprint/2.2/vts/functional/Android.bp bluetooth/1.0/Android.bp bluetooth/1.0/default/Android.bp bluetooth/1.0/vts/functional/Android.bp bluetooth/1.1/Android.bp bluetooth/1.1/default/Android.bp bluetooth/1.1/vts/functional/Android.bp bluetooth/a2dp/1.0/Android.bp bluetooth/a2dp/1.0/default/Android.bp bluetooth/a2dp/1.0/vts/functional/Android.bp bluetooth/audio/2.0/Android.bp bluetooth/audio/2.0/default/Android.bp bluetooth/audio/2.0/vts/functional/Android.bp bluetooth/audio/2.1/Android.bp bluetooth/audio/2.1/default/Android.bp bluetooth/audio/2.1/vts/functional/Android.bp bluetooth/audio/utils/Android.bp boot/1.0/Android.bp boot/1.0/default/Android.bp boot/1.0/vts/functional/Android.bp boot/1.1/Android.bp boot/1.1/default/Android.bp boot/1.1/default/boot_control/Android.bp boot/1.1/vts/functional/Android.bp boot/1.2/Android.bp boot/1.2/default/Android.bp boot/1.2/vts/functional/Android.bp broadcastradio/1.0/Android.bp broadcastradio/1.0/default/Android.bp broadcastradio/1.0/vts/functional/Android.bp broadcastradio/1.1/Android.bp broadcastradio/1.1/default/Android.bp broadcastradio/1.1/vts/functional/Android.bp broadcastradio/2.0/Android.bp broadcastradio/2.0/default/Android.bp broadcastradio/2.0/vts/functional/Android.bp broadcastradio/common/tests/Android.bp broadcastradio/common/utils/Android.bp broadcastradio/common/utils1x/Android.bp broadcastradio/common/utils2x/Android.bp broadcastradio/common/vts/utils/Android.bp camera/common/1.0/Android.bp camera/common/1.0/default/Android.bp camera/device/1.0/Android.bp camera/device/1.0/default/Android.bp camera/device/3.2/Android.bp camera/device/3.2/default/Android.bp camera/device/3.3/Android.bp camera/device/3.3/default/Android.bp camera/device/3.4/Android.bp camera/device/3.4/default/Android.bp camera/device/3.5/Android.bp camera/device/3.5/default/Android.bp camera/device/3.6/Android.bp camera/device/3.6/default/Android.bp camera/metadata/3.2/Android.bp camera/metadata/3.3/Android.bp camera/metadata/3.4/Android.bp camera/metadata/3.5/Android.bp camera/provider/2.4/Android.bp camera/provider/2.4/default/Android.bp camera/provider/2.4/vts/functional/Android.bp camera/provider/2.5/Android.bp camera/provider/2.5/default/Android.bp camera/provider/2.6/Android.bp cas/1.0/Android.bp cas/1.0/default/Android.bp cas/1.0/vts/functional/Android.bp cas/1.1/Android.bp cas/1.1/default/Android.bp cas/1.1/vts/functional/Android.bp cas/1.2/Android.bp cas/1.2/default/Android.bp cas/1.2/vts/functional/Android.bp cas/native/1.0/Android.bp common/aidl/Android.bp common/fmq/aidl/Android.bp common/support/Android.bp compatibility_matrices/Android.bp compatibility_matrices/Android.mk compatibility_matrices/build/Android.bp compatibility_matrices/exclude/Android.bp configstore/1.0/Android.bp configstore/1.0/vts/functional/Android.bp configstore/1.1/Android.bp configstore/1.1/default/Android.mk configstore/utils/Android.bp confirmationui/1.0/Android.bp confirmationui/1.0/default/Android.bp confirmationui/1.0/vts/functional/Android.bp confirmationui/support/Android.bp contexthub/1.0/Android.bp contexthub/1.0/default/Android.bp contexthub/1.0/vts/functional/Android.bp contexthub/1.1/Android.bp contexthub/1.1/default/Android.bp contexthub/1.1/vts/functional/Android.bp contexthub/common/vts/Android.bp drm/1.0/Android.bp drm/1.0/default/Android.bp drm/1.0/vts/functional/Android.bp drm/1.1/Android.bp drm/1.1/vts/functional/Android.bp drm/1.2/Android.bp drm/1.2/vts/functional/Android.bp drm/1.3/Android.bp drm/1.3/vts/functional/Android.bp dumpstate/1.0/Android.bp dumpstate/1.0/default/Android.bp dumpstate/1.0/vts/functional/Android.bp dumpstate/1.1/Android.bp dumpstate/1.1/default/Android.bp dumpstate/1.1/vts/functional/Android.bp fastboot/1.0/Android.bp fastboot/1.0/default/Android.bp fastboot/1.1/Android.bp fastboot/1.1/default/Android.bp gatekeeper/1.0/Android.bp gatekeeper/1.0/default/Android.bp gatekeeper/1.0/software/Android.bp gatekeeper/1.0/software/tests/Android.bp gatekeeper/1.0/vts/functional/Android.bp gnss/1.0/Android.bp gnss/1.0/default/Android.bp gnss/1.0/vts/functional/Android.bp gnss/1.1/Android.bp gnss/1.1/default/Android.bp gnss/1.1/vts/functional/Android.bp gnss/2.0/Android.bp gnss/2.0/default/Android.bp gnss/2.0/vts/functional/Android.bp gnss/2.1/Android.bp gnss/2.1/default/Android.bp gnss/2.1/vts/functional/Android.bp gnss/common/utils/default/Android.bp gnss/common/utils/vts/Android.bp gnss/measurement_corrections/1.0/Android.bp gnss/measurement_corrections/1.1/Android.bp gnss/visibility_control/1.0/Android.bp graphics/allocator/2.0/Android.bp graphics/allocator/2.0/default/Android.bp graphics/allocator/2.0/utils/gralloc1-adapter/Android.bp graphics/allocator/2.0/utils/hal/Android.bp graphics/allocator/2.0/utils/passthrough/Android.bp graphics/allocator/3.0/Android.bp graphics/allocator/4.0/Android.bp graphics/bufferqueue/1.0/Android.bp graphics/bufferqueue/2.0/Android.bp graphics/common/1.0/Android.bp graphics/common/1.1/Android.bp graphics/common/1.2/Android.bp graphics/common/aidl/Android.bp graphics/composer/2.1/Android.bp graphics/composer/2.1/default/Android.bp graphics/composer/2.1/utils/command-buffer/Android.bp graphics/composer/2.1/utils/hal/Android.bp graphics/composer/2.1/utils/hwc2on1adapter/Android.bp graphics/composer/2.1/utils/hwc2onfbadapter/Android.bp graphics/composer/2.1/utils/passthrough/Android.bp graphics/composer/2.1/utils/resources/Android.bp graphics/composer/2.1/utils/vts/Android.bp graphics/composer/2.1/vts/functional/Android.bp graphics/composer/2.2/Android.bp graphics/composer/2.2/default/Android.mk graphics/composer/2.2/utils/command-buffer/Android.bp graphics/composer/2.2/utils/hal/Android.bp graphics/composer/2.2/utils/passthrough/Android.bp graphics/composer/2.2/utils/resources/Android.bp graphics/composer/2.2/utils/vts/Android.bp graphics/composer/2.2/vts/functional/Android.bp graphics/composer/2.3/Android.bp graphics/composer/2.3/default/Android.bp graphics/composer/2.3/utils/command-buffer/Android.bp graphics/composer/2.3/utils/hal/Android.bp graphics/composer/2.3/utils/passthrough/Android.bp graphics/composer/2.3/utils/vts/Android.bp graphics/composer/2.3/vts/functional/Android.bp graphics/composer/2.4/Android.bp graphics/composer/2.4/default/Android.bp graphics/composer/2.4/utils/command-buffer/Android.bp graphics/composer/2.4/utils/hal/Android.bp graphics/composer/2.4/utils/passthrough/Android.bp graphics/composer/2.4/utils/vts/Android.bp graphics/composer/2.4/vts/functional/Android.bp graphics/mapper/2.0/Android.bp graphics/mapper/2.0/default/Android.bp graphics/mapper/2.0/utils/hal/Android.bp graphics/mapper/2.0/utils/passthrough/Android.bp graphics/mapper/2.0/utils/vts/Android.bp graphics/mapper/2.0/vts/functional/Android.bp graphics/mapper/2.1/Android.bp graphics/mapper/2.1/default/Android.bp graphics/mapper/2.1/utils/hal/Android.bp graphics/mapper/2.1/utils/passthrough/Android.bp graphics/mapper/2.1/utils/vts/Android.bp graphics/mapper/2.1/vts/functional/Android.bp graphics/mapper/3.0/Android.bp graphics/mapper/3.0/utils/vts/Android.bp graphics/mapper/3.0/vts/functional/Android.bp graphics/mapper/4.0/Android.bp graphics/mapper/4.0/utils/vts/Android.bp graphics/mapper/4.0/vts/functional/Android.bp health/1.0/Android.bp health/1.0/default/Android.bp health/2.0/Android.bp health/2.0/default/Android.bp health/2.0/utils/libhealthhalutils/Android.bp health/2.0/utils/libhealthservice/Android.bp health/2.0/utils/libhealthstoragedefault/Android.bp health/2.0/vts/functional/Android.bp health/2.1/Android.bp health/2.1/default/Android.bp health/2.1/vts/functional/Android.bp health/storage/1.0/Android.bp health/storage/1.0/default/Android.bp health/storage/1.0/vts/functional/Android.bp health/storage/aidl/Android.bp health/storage/aidl/default/Android.bp health/storage/aidl/vts/functional/Android.bp health/storage/impl_common/Android.bp health/storage/test_common/Android.bp health/utils/libhealth2impl/Android.bp health/utils/libhealthloop/Android.bp identity/aidl/Android.bp identity/aidl/default/Android.bp identity/aidl/vts/Android.bp identity/support/Android.bp input/classifier/1.0/Android.bp input/classifier/1.0/default/Android.bp input/classifier/1.0/vts/functional/Android.bp input/common/1.0/Android.bp ir/1.0/Android.bp ir/1.0/default/Android.bp ir/1.0/vts/functional/Android.bp keymaster/3.0/Android.bp keymaster/3.0/default/Android.mk keymaster/3.0/vts/functional/Android.bp keymaster/4.0/Android.bp keymaster/4.0/default/Android.bp keymaster/4.0/support/Android.bp keymaster/4.0/vts/functional/Android.bp keymaster/4.0/vts/performance/Android.bp keymaster/4.1/Android.bp keymaster/4.1/default/Android.bp keymaster/4.1/support/Android.bp keymaster/4.1/vts/functional/Android.bp keymaster/aidl/Android.bp light/2.0/Android.bp light/2.0/default/Android.bp light/2.0/vts/functional/Android.bp light/aidl/Android.bp light/aidl/default/Android.bp light/aidl/vts/functional/Android.bp light/utils/Android.bp media/1.0/Android.bp media/1.0/xml/Android.mk media/Android.bp media/bufferpool/1.0/Android.bp media/bufferpool/2.0/Android.bp media/c2/1.0/Android.bp media/c2/1.1/Android.bp media/omx/1.0/Android.bp media/omx/1.0/vts/functional/audio/Android.bp media/omx/1.0/vts/functional/common/Android.bp media/omx/1.0/vts/functional/component/Android.bp media/omx/1.0/vts/functional/store/Android.bp media/omx/1.0/vts/functional/video/Android.bp memtrack/1.0/Android.bp memtrack/1.0/default/Android.bp memtrack/1.0/vts/functional/Android.bp memtrack/aidl/Android.bp memtrack/aidl/default/Android.bp memtrack/aidl/vts/Android.bp neuralnetworks/1.0/Android.bp neuralnetworks/1.0/utils/Android.bp neuralnetworks/1.0/vts/functional/Android.bp neuralnetworks/1.1/Android.bp neuralnetworks/1.1/utils/Android.bp neuralnetworks/1.1/vts/functional/Android.bp neuralnetworks/1.2/Android.bp neuralnetworks/1.2/utils/Android.bp neuralnetworks/1.2/vts/functional/Android.bp neuralnetworks/1.3/Android.bp neuralnetworks/1.3/utils/Android.bp neuralnetworks/1.3/vts/functional/Android.bp neuralnetworks/aidl/Android.bp neuralnetworks/aidl/utils/Android.bp neuralnetworks/aidl/vts/functional/Android.bp neuralnetworks/utils/common/Android.bp neuralnetworks/utils/service/Android.bp nfc/1.0/Android.bp nfc/1.0/default/Android.bp nfc/1.0/vts/functional/Android.bp nfc/1.1/Android.bp nfc/1.1/vts/functional/Android.bp nfc/1.2/Android.bp nfc/1.2/vts/functional/Android.bp oemlock/1.0/Android.bp oemlock/1.0/vts/functional/Android.bp oemlock/aidl/Android.bp oemlock/aidl/default/Android.bp oemlock/aidl/vts/Android.bp power/1.0/Android.bp power/1.0/default/Android.bp power/1.0/vts/functional/Android.bp power/1.1/Android.bp power/1.1/vts/functional/Android.bp power/1.2/Android.bp power/1.2/vts/functional/Android.bp power/1.3/Android.bp power/1.3/vts/functional/Android.bp power/aidl/Android.bp power/aidl/default/Android.bp power/aidl/vts/Android.bp power/stats/1.0/Android.bp power/stats/1.0/default/Android.bp power/stats/1.0/vts/functional/Android.bp power/stats/aidl/Android.bp power/stats/aidl/default/Android.bp power/stats/aidl/vts/Android.bp radio/1.0/Android.bp radio/1.0/vts/functional/Android.bp radio/1.1/Android.bp radio/1.1/vts/functional/Android.bp radio/1.2/Android.bp radio/1.2/default/Android.bp radio/1.2/vts/functional/Android.bp radio/1.3/Android.bp radio/1.3/vts/functional/Android.bp radio/1.4/Android.bp radio/1.4/vts/functional/Android.bp radio/1.5/Android.bp radio/1.5/vts/functional/Android.bp radio/1.6/Android.bp radio/1.6/vts/functional/Android.bp radio/config/1.0/Android.bp radio/config/1.0/default/Android.bp radio/config/1.0/vts/functional/Android.bp radio/config/1.1/Android.bp radio/config/1.1/vts/functional/Android.bp radio/config/1.2/Android.bp radio/config/1.2/vts/functional/Android.bp radio/config/1.3/Android.bp radio/config/1.3/vts/functional/Android.bp radio/deprecated/1.0/Android.bp rebootescrow/aidl/Android.bp rebootescrow/aidl/default/Android.bp rebootescrow/aidl/vts/functional/Android.bp renderscript/1.0/Android.bp renderscript/1.0/default/Android.bp renderscript/1.0/vts/functional/Android.bp secure_element/1.0/Android.bp secure_element/1.0/vts/functional/Android.bp secure_element/1.1/Android.bp secure_element/1.1/vts/functional/Android.bp secure_element/1.2/Android.bp secure_element/1.2/vts/functional/Android.bp security/keymint/aidl/Android.bp security/keymint/aidl/default/Android.bp security/keymint/aidl/vts/functional/Android.bp security/keymint/support/Android.bp security/secureclock/aidl/Android.bp security/secureclock/aidl/vts/functional/Android.bp security/sharedsecret/aidl/Android.bp security/sharedsecret/aidl/vts/functional/Android.bp sensors/1.0/Android.bp sensors/1.0/default/Android.bp sensors/1.0/vts/functional/Android.bp sensors/2.0/Android.bp sensors/2.0/default/Android.bp sensors/2.0/multihal/Android.bp sensors/2.0/vts/functional/Android.bp sensors/2.1/Android.bp sensors/2.1/default/Android.bp sensors/2.1/multihal/Android.bp sensors/2.1/vts/functional/Android.bp sensors/common/default/2.X/Android.bp sensors/common/default/2.X/multihal/Android.bp sensors/common/default/2.X/multihal/tests/Android.bp sensors/common/utils/Android.bp sensors/common/vts/2_X/Android.bp sensors/common/vts/utils/Android.bp soundtrigger/2.0/Android.bp soundtrigger/2.0/default/Android.bp soundtrigger/2.0/default/Android.mk soundtrigger/2.0/vts/functional/Android.bp soundtrigger/2.1/Android.bp soundtrigger/2.1/default/Android.mk soundtrigger/2.1/vts/functional/Android.bp soundtrigger/2.2/Android.bp soundtrigger/2.2/default/Android.bp soundtrigger/2.2/vts/functional/Android.bp soundtrigger/2.3/Android.bp soundtrigger/2.3/default/Android.bp soundtrigger/2.3/vts/functional/Android.bp tests/bar/1.0/Android.bp tests/bar/1.0/default/Android.bp tests/baz/1.0/Android.bp tests/baz/1.0/default/Android.bp tests/expression/1.0/Android.bp tests/extension/light/2.0/Android.bp tests/extension/light/2.0/default/Android.bp tests/extension/vibrator/aidl/Android.bp tests/extension/vibrator/aidl/client/Android.bp tests/extension/vibrator/aidl/default/Android.bp tests/foo/1.0/Android.bp tests/foo/1.0/default/Android.bp tests/foo/1.0/default/lib/Android.bp tests/hash/1.0/Android.bp tests/hash/1.0/default/Android.bp tests/inheritance/1.0/Android.bp tests/inheritance/1.0/default/Android.bp tests/lazy/1.0/Android.bp tests/lazy/1.1/Android.bp tests/libhwbinder/1.0/Android.bp tests/libhwbinder/1.0/default/Android.bp tests/libhwbinder/aidl/Android.bp tests/memory/1.0/Android.bp tests/memory/1.0/default/Android.bp tests/memory/2.0/Android.bp tests/msgq/1.0/Android.bp tests/msgq/1.0/default/Android.bp tests/multithread/1.0/Android.bp tests/multithread/1.0/default/Android.bp tests/safeunion/1.0/Android.bp tests/safeunion/1.0/default/Android.bp tests/safeunion/cpp/1.0/Android.bp tests/safeunion/cpp/1.0/default/Android.bp tests/trie/1.0/Android.bp tests/trie/1.0/default/Android.bp tetheroffload/config/1.0/Android.bp tetheroffload/config/1.0/vts/functional/Android.bp tetheroffload/control/1.0/Android.bp tetheroffload/control/1.0/vts/functional/Android.bp tetheroffload/control/1.1/Android.bp tetheroffload/control/1.1/vts/functional/Android.bp thermal/1.0/Android.bp thermal/1.0/default/Android.bp thermal/1.0/vts/functional/Android.bp thermal/1.1/Android.bp thermal/1.1/vts/functional/Android.bp thermal/2.0/Android.bp thermal/2.0/default/Android.bp thermal/2.0/vts/functional/Android.bp tv/cec/1.0/Android.bp tv/cec/1.0/default/Android.bp tv/input/1.0/Android.bp tv/input/1.0/default/Android.bp tv/input/1.0/vts/functional/Android.bp tv/tuner/1.0/Android.bp tv/tuner/1.0/default/Android.bp tv/tuner/1.0/vts/functional/Android.bp usb/1.0/Android.bp usb/1.0/default/Android.bp usb/1.0/vts/functional/Android.bp usb/1.1/Android.bp usb/1.1/vts/functional/Android.bp usb/1.2/Android.bp usb/1.2/vts/functional/Android.bp usb/gadget/1.0/Android.bp usb/gadget/1.1/Android.bp usb/gadget/1.1/default/Android.bp usb/gadget/1.1/default/lib/Android.bp vibrator/1.0/Android.bp vibrator/1.0/default/Android.bp vibrator/1.0/vts/functional/Android.bp vibrator/1.1/Android.bp vibrator/1.1/vts/functional/Android.bp vibrator/1.2/Android.bp vibrator/1.2/vts/functional/Android.bp vibrator/1.3/Android.bp vibrator/1.3/example/Android.bp vibrator/1.3/vts/functional/Android.bp vibrator/aidl/Android.bp vibrator/aidl/default/Android.bp vibrator/aidl/vts/Android.bp vr/1.0/Android.bp vr/1.0/default/Android.bp vr/1.0/vts/functional/Android.bp weaver/1.0/Android.bp weaver/1.0/vts/functional/Android.bp weaver/aidl/Android.bp weaver/aidl/default/Android.bp weaver/aidl/vts/Android.bp wifi/1.0/Android.bp wifi/1.0/vts/functional/Android.bp wifi/1.1/Android.bp wifi/1.1/vts/functional/Android.bp wifi/1.2/Android.bp wifi/1.2/vts/functional/Android.bp wifi/1.3/Android.bp wifi/1.3/vts/functional/Android.bp wifi/1.4/Android.bp wifi/1.4/default/Android.mk wifi/1.4/vts/functional/Android.bp wifi/hostapd/1.0/Android.bp wifi/hostapd/1.0/vts/functional/Android.bp wifi/hostapd/1.1/Android.bp wifi/hostapd/1.1/vts/functional/Android.bp wifi/hostapd/1.2/Android.bp wifi/hostapd/1.2/vts/functional/Android.bp wifi/offload/1.0/Android.bp wifi/offload/1.0/vts/functional/Android.bp wifi/supplicant/1.0/Android.bp wifi/supplicant/1.0/vts/functional/Android.bp wifi/supplicant/1.1/Android.bp wifi/supplicant/1.1/vts/functional/Android.bp wifi/supplicant/1.2/Android.bp wifi/supplicant/1.2/vts/functional/Android.bp wifi/supplicant/1.3/Android.bp wifi/supplicant/1.3/vts/functional/Android.bp Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-NCSA to: Android.bp automotive/can/1.0/Android.bp automotive/can/1.0/default/Android.bp Added SPDX-license-identifier-NCSA to: automotive/can/1.0/default/libc++fs/Android.bp Bug: 68860345 Bug: 151177513 Bug: 151953481 Test: m all Exempt-From-Owner-Approval: janitorial work Change-Id: I602b072f77ff41e9eb8d3c36b6b5315d63664006 Merged-in: I602b072f77ff41e9eb8d3c36b6b5315d63664006 |
||
---|---|---|
.. | ||
default | ||
utils | ||
vts | ||
Android.bp | ||
IHealth.hal | ||
IHealthInfoCallback.hal | ||
README | ||
README.md | ||
types.hal |
Implement the 2.1 HAL instead!
It is strongly recommended that you implement the 2.1 HAL directly. See
hardware/interfaces/health/2.1/README.md
for more details.
Upgrading from Health 1.0 HAL
-
Remove
android.hardware.health@1.0*
fromPRODUCT_PACKAGES
indevice/<manufacturer>/<device>/device.mk
-
If the device does not have a vendor-specific
libhealthd
AND does not implement storage-related APIs, just do the following:PRODUCT_PACKAGES += android.hardware.health@2.0-service
Otherwise, continue to the next step.
-
Create directory
device/<manufacturer>/<device>/health
-
Create
device/<manufacturer>/<device>/health/Android.bp
(or equivalentdevice/<manufacturer>/<device>/health/Android.mk
)cc_binary { name: "android.hardware.health@2.0-service.<device>", init_rc: ["android.hardware.health@2.0-service.<device>.rc"], proprietary: true, relative_install_path: "hw", srcs: [ "HealthService.cpp", ], cflags: [ "-Wall", "-Werror", ], static_libs: [ "android.hardware.health@2.0-impl", "android.hardware.health@1.0-convert", "libhealthservice", "libbatterymonitor", ], shared_libs: [ "libbase", "libcutils", "libhidlbase", "libutils", "android.hardware.health@2.0", ], header_libs: ["libhealthd_headers"], overrides: [ "healthd", ], }
- (recommended) To remove
healthd
from the build, keep "overrides" section. - To keep
healthd
in the build, remove "overrides" section.
- (recommended) To remove
-
Create
device/<manufacturer>/<device>/health/android.hardware.health@2.0-service.<device>.rc
service vendor.health-hal-2-0 /vendor/bin/hw/android.hardware.health@2.0-service.<device> class hal user system group system capabilities WAKE_ALARM file /dev/kmsg w
-
Create
device/<manufacturer>/<device>/health/HealthService.cpp
:#include <health2/service.h> int main() { return health_service_main(); }
-
libhealthd
dependency:-
If the device has a vendor-specific
libhealthd.<soc>
, add it to static_libs. -
If the device does not have a vendor-specific
libhealthd
, add the following lines toHealthService.cpp
:#include <healthd/healthd.h> void healthd_board_init(struct healthd_config*) {} int healthd_board_battery_update(struct android::BatteryProperties*) { // return 0 to log periodic polled battery status to kernel log return 0; }
-
-
Storage related APIs:
-
If the device does not implement
IHealth.getDiskStats
andIHealth.getStorageInfo
, addlibhealthstoragedefault
tostatic_libs
. -
If the device implements one of these two APIs, add and implement the following functions in
HealthService.cpp
:void get_storage_info(std::vector<struct StorageInfo>& info) { // ... } void get_disk_stats(std::vector<struct DiskStats>& stats) { // ... }
-
-
Update necessary SELinux permissions. For example,
# device/<manufacturer>/<device>/sepolicy/vendor/file_contexts /vendor/bin/hw/android\.hardware\.health@2\.0-service\.<device> u:object_r:hal_health_default_exec:s0 # device/<manufacturer>/<device>/sepolicy/vendor/hal_health_default.te # Add device specific permissions to hal_health_default domain, especially # if a device-specific libhealthd is used and/or device-specific storage related # APIs are implemented.
-
Implementing health HAL in recovery. The health HAL is used for battery status checks during OTA for non-A/B devices. If the health HAL is not implemented in recovery,
is_battery_ok()
will always returntrue
.-
If the device does not have a vendor-specific
libhealthd
, nothing needs to be done. A "backup" implementation is provided inandroid.hardware.health@2.0-impl-default
, which is always installed to recovery image by default. -
If the device does have a vendor-specific
libhealthd
, implement the following module and include it inPRODUCT_PACKAGES
(replace<device>
with appropriate strings):
// Android.bp cc_library_shared { name: "android.hardware.health@2.0-impl-<device>", recovery_available: true, relative_install_path: "hw", static_libs: [ "android.hardware.health@2.0-impl", "libhealthd.<device>" // Include the following or implement device-specific storage APIs "libhealthstoragedefault", ], srcs: [ "HealthImpl.cpp", ], overrides: [ "android.hardware.health@2.0-impl-default", ], }
// HealthImpl.cpp #include <health2/Health.h> #include <healthd/healthd.h> using android::hardware::health::V2_0::IHealth; using android::hardware::health::V2_0::implementation::Health; extern "C" IHealth* HIDL_FETCH_IHealth(const char* name) { const static std::string providedInstance{"default"}; if (providedInstance != name) return nullptr; return Health::initInstance(&gHealthdConfig).get(); }
# device.mk PRODUCT_PACKAGES += android.hardware.health@2.0-impl-<device>
-