Codec2.0 poolMask:
ION(16)
BUFFERQUEUE(18)
BLOB(19)
V4L2_BUFFERQUEUE(20)
V4L2_BUFFERPOOL(21)
SECURE_LINEAR(22)
SECURE_GRAPHIC(23)
For linear buffer allocation:
If ION is chosen, then the mask should be 0xf50000
If BLOB is chosen, then the mask should be 0xfc0000
0xf50000 -> 11110101 0000000000000000
0xfc0000 -> 11111100 0000000000000000
* When 'jack' is selected using the property, first PCM card that has name
'Headphones' is used.
When 'dac' is selected, first PCM card that is not named 'Headphones',
'vc4hdmi0', or 'vc4hdmi1' is used.
* It's always been intended that changing audio output devices requires
a reboot. Get the PCM card and device once when the HAL is initialized.
Might save a few ms on start_output_stream.
* It's always been intended that changing audio output devices requires
a reboot. Get the ALSA device once when the HAL is initialized.
Might save a few ms on start_output_stream.
* HIDL services are not included on API level 35. Add the services since
we're still using few HIDL HALs.
4ce8327a8f
* FCM level can't be bumped to 202404 until all HALs have been updated to
AIDL i.e. at least following HALs reported by 'make check-vintf-all'.
All HALs in device manifest are declared in FCM <= level 202404
ERROR: files are incompatible:
...
android.hardware.camera.provider@2.5::ICameraProvider/legacy/0 is deprecated in compatibility matrix at FCM Version 202404; it should not be served.
because it matches android.hardware.camera.provider@2.4::ICameraProvider/[^/]+/[0-9]+ from /system/etc/vintf/compatibility_matrix.7.xml
android.hardware.audio@7.1::IDevicesFactory/default is deprecated in compatibility matrix at FCM Version 202404; it should not be served.
because it matches android.hardware.audio@7.0::IDevicesFactory/default from /system/etc/vintf/compatibility_matrix.8.xml
android.hardware.audio.effect@7.0::IEffectsFactory/default is deprecated in compatibility matrix at FCM Version 202404; it should not be served.
because it matches android.hardware.audio.effect@7.0::IEffectsFactory/default from /system/etc/vintf/compatibility_matrix.8.xml: Success
INCOMPATIBLE
* Picked up by 'make check-vintf-all'.
The following instances are in the device manifest but not specified in framework compatibility matrix:
android.hardware.camera.provider@2.5::ICameraProvider/legacy/0
* Needed for AIDL HDMI-CEC HAL to work. Some functions that were in the
HIDL HDMI-CEC HAL have been moved to separate HDMI connection HAL in the
AIDL versions. Only returns connection status of HDMI ports on Pi.
onHotplugEvent is not implemented.
* Use hardware/interfaces/tv/hdmi/connection/aidl/ as reference.
* Use vendor property to allow labeling it for SELinux.
* Remove unneeded properties to set version and vendor id. Using the
default values in any case.
* Start the service later at 'class hal' to avoid making this into bootstrap
APEX. 'class early_hal' is started on trigger 'on late-fs' which is too
early for vendor APEX.
* Use device as an identifier in package names so APEXs on rpi4/rpi5 trees
can co-exist. Somehow apex definitions escape the soong namespace. It
doesn't complain about duplicate package names but dependecies later in
the build after analyzing Android.bp files and generating ninja file.
FAILED: ninja: ... multiple rules generate com.android.hardware.bluetooth.rpi-deps-info [-w dupbuild=err]
https://android.googlesource.com/platform/build/soong/+/refs/heads/main/README.md#namespaces
* Not sure if this is an AOSP bug or intended behaviour for apex targets.
Don't like using the rpi4/rpi5 tags but couldn't come up with better
solution to limit the visibility that worked.
* General cleanups. As APEX package contains all dependencies that are
needed for the service, remove unused shared libraries.
Run 'bpfmt -s -w Android.bp'.
* Doesn't do anything if BOARD_HAVE_BLUETOOTH_BCM is not set.
* Bluetooth device name is parsed from 'ro.product.model' if no default
is provided using 'bluetooth.device.default_name' property.
* Drop Raspberry from model as some hardware information applications
display it after the manufacturer/brand and we'll end up with duplicate
Raspberry in the device name.
* PRODUCT_RELEASE_NAME is long gone.
* Some hardware information applications use this so set actual hardware
platform name.
* Historic reason why this was set to rpi is that this allowed to use same
HALs on rpi3/rpi4 when they were commonized. 'ro.board.platform' this sets
is used in the legacy module load order.
https://android.googlesource.com/platform/hardware/libhardware/+/refs/tags/android-15.0.0_r20/modules/README.android
This has no use with modern HIDL/AIDL/APEX HALs. For legacy HALs name can
be implicitly set using system properties (e.g. 'ro.hardware.audio.primary'
that's still relevant).