Commit Graph

227 Commits

Author SHA1 Message Date
Konsta
ff19fe9878 audio: auto probe pcm card for jack & dac
* 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.
2025-04-02 13:40:23 +03:00
Konsta
66f0ae7d82 audio: cache pcm card and device
* 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.
2025-04-02 13:39:14 +03:00
Konsta
a6ff435674 hdmi audio: cache alsa device
* 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.
2025-04-02 13:39:00 +03:00
Konsta
291b0d0e44 bump shipping api level
* 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
2025-03-31 19:30:45 +03:00
Konsta
9f07c74401 camera: add to framework compatibility matrix
* 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
2025-03-31 19:29:58 +03:00
Konsta
74b3908af7 remove device compatibility matrix
* Use default device compatibility matrix from
  system/libhidl/vintfdata/device_compatibility_matrix.default.xml.
* 282994a8a2
2025-03-31 19:29:48 +03:00
Konsta
608f723562 sepolicy: 64-bit only 2025-03-31 19:28:57 +03:00
Konsta
fea8235247 switch to 64-bit only target 2025-03-31 19:28:49 +03:00
Konsta
f9917417c1 boot: remove start_x
* On Pi 5 firmware is self-contained in the bootloader EEPROM. There's no
  extended firmware files.
2025-03-28 23:44:25 +02:00
Konsta
17fce4b6a0 sepolicy: indent file_context and service_contexts by section 2025-03-28 23:43:52 +02:00
Konsta
b26a4d8c30 sepolicy: move sysfs entries to genfs_contexts
* rfkill nodes are already labeled by default.
2025-03-28 23:42:52 +02:00
Konsta
37863d4b4f sepolicy: label wakeup node 2025-03-28 23:42:42 +02:00
Konsta
22a75c85a4 sepolicy: various fixes for graphics 2025-03-28 23:42:34 +02:00
Konsta
4596a7546d sepolicy: fix label type for hdmi connection nodes
* Gets cought with neverallow rules.
* Fixes 39a71902e0.
2025-03-27 12:40:18 +02:00
Konsta
4dc3e0f0d8 hdmi: connection: convert to apex 2025-03-25 18:05:43 +02:00
Konsta
59af7f93eb hdmi: cec: convert to apex 2025-03-25 18:05:35 +02:00
Konsta
39a71902e0 hdmi: connection: add rpi specific aidl hal
* 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.
2025-03-25 18:05:16 +02:00
Konsta
24aa53a993 hdmi: cec: remove onHotplugEvent
* HDMI connection HAL should manage this.
2025-03-25 18:04:48 +02:00
Konsta
f75f3f933b hdmi: cec: move to subdir 2025-03-25 18:04:41 +02:00
Konsta
32cf720294 cec: add device type property
* e2b6b1cfe2
  e7a511f911
2025-03-25 18:04:32 +02:00
Konsta
e248cd4d77 cec: use vendor property for device & remove unneeded properties
* 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.
2025-03-25 18:04:22 +02:00
Konsta
f200aca4ce cec: convert to aidl
* Use hardware/interfaces/tv/hdmi/cec/aidl/ as reference.
2025-03-25 18:04:13 +02:00
Konsta
e1d92d2183 suspend_blocker: convert to apex
* 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.
2025-03-20 13:37:44 +02:00
Konsta
c692c4354c add chipset properties
* This became needed for CTS some years ago.
  faa63a37c0
2025-03-20 13:36:16 +02:00
Konsta
61e83a2939 sepolicy: add more drm devices
* Pi 5 has independent cards for DSI-0, DSI-1, DPI, and VEC.
  In theory we could have two DSI displays so add two more entries.

avc:  denied  { ioctl } for  path="/dev/dri/card2" dev="tmpfs" ino=749 ioctlcmd=0x64bc scontext=u:r:hal_graphics_composer_default:s0 tcontext=u:object_r:device:s0 tclass=chr_file permissive=1
2025-03-20 13:36:06 +02:00
Konsta
c7eeef4b58 wifi: package hostapd and wpa_supplicant into apex
* This is now possible on Android 15 QPR2. Use cuttlefish as reference.
  https://android.googlesource.com/device/google/cuttlefish/+/refs/tags/android-15.0.0_r20/apex/com.google.cf.wpa_supplicant/
* Create local copies of the service entries. Generally creating the
  directories for wireless subsystem happens on trigger 'on post-fs-data'.
  Since apexd for non-bootstrap APEXs starts 'on post-fs-data', this
  trigger is not available for vendor APEX packages. Use trigger
  'apex.all.ready=true' instead which is later still within post-fs-data.
  https://source.android.com/docs/core/ota/vendor-apex#init-scripts
* Create a local copy of wpa_supplicant_overlay.conf. It hasn't been updated
  in ten years in hardware/broadcom/wlan. TODO: Check relevance.
2025-03-19 12:17:03 +02:00
Konsta
0a67b3fd59 wifi: switch to apex 2025-03-19 12:16:48 +02:00
Konsta
2e3182f4cc usb: convert gadget to apex 2025-03-19 12:16:16 +02:00
Konsta
14b1e06e9d usb: switch to apex 2025-03-19 12:15:59 +02:00
Konsta
aeca9d70ff power: switch to apex
* In addtion to android.hardware.power-service.example,
  com.android.hardware.power APEX also contains
  android.hardware.power.stats-service.example.
2025-03-19 12:15:45 +02:00
Konsta
0106e97a16 light: convert to apex 2025-03-19 12:15:21 +02:00
Konsta
909a21f5d1 health: convert to apex 2025-03-19 12:14:26 +02:00
Konsta
2a653366d0 graphics: switch hwcomposer to apex 2025-03-19 12:14:10 +02:00
Konsta
67ea1fb3ae drm: switch clearkey to apex 2025-03-19 12:13:43 +02:00
Konsta
16d401ff12 bluetooth: convert to 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'.
2025-03-19 12:09:58 +02:00
Konsta
e47f8c6791 bluetooth: remove unused BDROID_BUILDCFG header
* 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.
2025-03-18 23:48:21 +02:00
Konsta
57aaa02c1f set TARGET_BOOTLOADER_BOARD_NAME
* Populate 'ro.product.board' as well.
* Fixes 1bd1c53659.
2025-03-18 20:26:18 +02:00
Konsta
9797a324ca Revert "car: Disabled BT MAP causing cyclic BT reconnect"
* This should be enabled on automotive targets and I can't reprocude any
  connection issues described in https://github.com/raspberry-vanilla/android_local_manifest/issues/33.
* Partially fixes https://github.com/raspberry-vanilla/android_local_manifest/issues/110.

This reverts commit c724e60c78.
2025-03-18 16:34:32 +02:00
Konsta
8ac0967b8c car: device path has car directory
* Fixes c2277d28e8.
2025-03-18 16:34:32 +02:00
Konsta
acfacd0969 cleanup device identifiers
* 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.
2025-03-18 16:34:32 +02:00
Konsta
1bd1c53659 set hardware platform name
* 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).
2025-03-18 16:34:32 +02:00
Konsta
6e3aa4099e reorganize board config 2025-03-18 16:34:27 +02:00
Konsta
47d647f7a5 treble: remove deprecated vndk flag
* Deprecated in Android 15.
  https://source.android.com/docs/whatsnew/android-15-release#deprecate-vndk
  69f5dbb0d0
2025-03-18 16:23:31 +02:00
Konsta
0658026dcf treble: remove unneeded flags
* PRODUCT_FULL_TREBLE gets set on PRODUCT_SHIPPING_API_LEVEL >= 26.
  There's no need to override it.
  2b32469c47
* BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED gets set with PRODUCT_FULL_TREBLE.
  c227ce7c25
2025-03-17 19:34:04 +02:00
Konsta
22f4f46410 sepolicy: remove libglapi
* Fixes 6a128defbc666a7fea920a1dbb01f3fdff4ec657.
2025-03-17 18:48:11 +02:00
Konsta
fff80dc383 Revert "overlay: disable screen dimming by default"
* In practice, doesn't disable dimming.

This reverts commit 822083ba68.
2025-03-16 17:55:23 +02:00
Konsta
aa51dae2c2 suspend_blocker: move service to init fragment 2025-03-16 17:30:06 +02:00
Konsta
9d4665d9c8 memory: remove lmkd properties
* These were added years ago when userspace low memory killer daemon
  was introduced. For most part these match the defaults and ones that
  dont't, shouldn't be set on Android R and above.
  https://android.googlesource.com/platform/system/memory/lmkd/+/refs/tags/android-15.0.0_r20/README.md
  cc5d2cca25
2025-03-16 17:29:57 +02:00
Konsta
7dc457033f keylayout: update for Android 15 QPR2
* Changes from frameworks/base/data/keyboards/Generic.kl
2025-03-16 17:29:46 +02:00
Konsta
484c9906ae keymaster: replace with keymint aidl apex
* 2d24638a3d
* Fixes https://github.com/raspberry-vanilla/android_local_manifest/issues/29.
2025-03-11 18:38:48 +02:00