| <compatibility-matrix version="1.0" type="framework" level="202504"> |
| <hal format="aidl"> |
| <name>android.hardware.audio.core</name> |
| <version>1-2</version> |
| <interface> |
| <name>IModule</name> |
| <instance>default</instance> |
| <instance>a2dp</instance> |
| <instance>bluetooth</instance> |
| <instance>hearing_aid</instance> |
| <instance>msd</instance> |
| <instance>r_submix</instance> |
| <instance>stub</instance> |
| <instance>usb</instance> |
| </interface> |
| <interface> |
| <name>IConfig</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.audio.effect</name> |
| <version>1-2</version> |
| <interface> |
| <name>IFactory</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.audio.sounddose</name> |
| <version>1-2</version> |
| <interface> |
| <name>ISoundDoseFactory</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl" updatable-via-apex="true"> |
| <name>android.hardware.authsecret</name> |
| <version>1</version> |
| <interface> |
| <name>IAuthSecret</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.automotive.audiocontrol</name> |
| <version>2-4</version> |
| <interface> |
| <name>IAudioControl</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.automotive.can</name> |
| <version>1</version> |
| <interface> |
| <name>ICanController</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.automotive.evs</name> |
| <version>1-2</version> |
| <interface> |
| <name>IEvsEnumerator</name> |
| <regex-instance>[a-z]+/[0-9]+</regex-instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.macsec</name> |
| <version>1</version> |
| <interface> |
| <name>IMacsecPskPlugin</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.automotive.occupant_awareness</name> |
| <version>1</version> |
| <interface> |
| <name>IOccupantAwareness</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.automotive.vehicle</name> |
| <version>1-3</version> |
| <interface> |
| <name>IVehicle</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.automotive.remoteaccess</name> |
| <version>1-2</version> |
| <interface> |
| <name>IRemoteAccess</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.automotive.ivn</name> |
| <interface> |
| <name>IIvnAndroidDevice</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl" updatable-via-apex="true"> |
| <name>android.hardware.biometrics.face</name> |
| <version>3-4</version> |
| <interface> |
| <name>IFace</name> |
| <instance>default</instance> |
| <instance>virtual</instance> |
| </interface> |
| </hal> |
| <hal format="aidl" updatable-via-apex="true"> |
| <name>android.hardware.biometrics.fingerprint</name> |
| <version>3-4</version> |
| <interface> |
| <name>IFingerprint</name> |
| <instance>default</instance> |
| <instance>virtual</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.bluetooth</name> |
| <interface> |
| <name>IBluetoothHci</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.bluetooth.audio</name> |
| <version>3-4</version> |
| <interface> |
| <name>IBluetoothAudioProviderFactory</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.bluetooth.ranging</name> |
| <version>1</version> |
| <interface> |
| <name>IBluetoothChannelSounding</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.bluetooth.finder</name> |
| <version>1</version> |
| <interface> |
| <name>IBluetoothFinder</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.bluetooth.lmp_event</name> |
| <version>1</version> |
| <interface> |
| <name>IBluetoothLmpEvent</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.boot</name> |
| <interface> |
| <name>IBootControl</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.broadcastradio</name> |
| <version>1-2</version> |
| <interface> |
| <name>IBroadcastRadio</name> |
| <regex-instance>.*</regex-instance> |
| </interface> |
| </hal> |
| <hal format="aidl" updatable-via-apex="true"> |
| <name>android.hardware.camera.provider</name> |
| <version>1-3</version> |
| <interface> |
| <name>ICameraProvider</name> |
| <regex-instance>[^/]+/[0-9]+</regex-instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.cas</name> |
| <interface> |
| <name>IMediaCasService</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.confirmationui</name> |
| <version>1</version> |
| <interface> |
| <name>IConfirmationUI</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.contexthub</name> |
| <version>3</version> |
| <interface> |
| <name>IContextHub</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl" updatable-via-apex="true"> |
| <name>android.hardware.drm</name> |
| <version>1</version> |
| <interface> |
| <name>IDrmFactory</name> |
| <regex-instance>.*</regex-instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.dumpstate</name> |
| <interface> |
| <name>IDumpstateDevice</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.gatekeeper</name> |
| <version>1</version> |
| <interface> |
| <name>IGatekeeper</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.gnss</name> |
| <version>2-4</version> |
| <interface> |
| <name>IGnss</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.graphics.allocator</name> |
| <version>1-2</version> |
| <interface> |
| <name>IAllocator</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.graphics.composer3</name> |
| <version>3</version> |
| <interface> |
| <name>IComposer</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.health</name> |
| <version>3</version> |
| <interface> |
| <name>IHealth</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.health.storage</name> |
| <version>1</version> |
| <interface> |
| <name>IStorage</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.identity</name> |
| <version>1-5</version> |
| <interface> |
| <name>IIdentityCredentialStore</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.net.nlinterceptor</name> |
| <interface> |
| <name>IInterceptor</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.oemlock</name> |
| <version>1</version> |
| <interface> |
| <name>IOemLock</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.ir</name> |
| <version>1</version> |
| <interface> |
| <name>IConsumerIr</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.input.processor</name> |
| <version>1</version> |
| <interface> |
| <name>IInputProcessor</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.security.secretkeeper</name> |
| <version>1</version> |
| <interface> |
| <name>ISecretkeeper</name> |
| <instance>default</instance> |
| <instance>nonsecure</instance> |
| </interface> |
| </hal> |
| <hal format="aidl" updatable-via-apex="true"> |
| <name>android.hardware.security.keymint</name> |
| <version>1-3</version> |
| <interface> |
| <name>IKeyMintDevice</name> |
| <instance>default</instance> |
| <instance>strongbox</instance> |
| </interface> |
| </hal> |
| <hal format="aidl" updatable-via-apex="true"> |
| <name>android.hardware.security.keymint</name> |
| <version>1-3</version> |
| <interface> |
| <name>IRemotelyProvisionedComponent</name> |
| <instance>default</instance> |
| <instance>strongbox</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.light</name> |
| <version>2</version> |
| <interface> |
| <name>ILights</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.media.c2</name> |
| <version>1</version> |
| <interface> |
| <name>IComponentStore</name> |
| <regex-instance>default[0-9]*</regex-instance> |
| <regex-instance>vendor[0-9]*_software</regex-instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.memtrack</name> |
| <version>1</version> |
| <interface> |
| <name>IMemtrack</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl" updatable-via-apex="true"> |
| <name>android.hardware.neuralnetworks</name> |
| <version>1-4</version> |
| <interface> |
| <name>IDevice</name> |
| <regex-instance>.*</regex-instance> |
| </interface> |
| </hal> |
| <hal format="aidl" updatable-via-apex="true"> |
| <name>android.hardware.nfc</name> |
| <interface> |
| <name>INfc</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.power</name> |
| <version>5</version> |
| <interface> |
| <name>IPower</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.power.stats</name> |
| <version>2</version> |
| <interface> |
| <name>IPowerStats</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.radio.config</name> |
| <version>3</version> |
| <interface> |
| <name>IRadioConfig</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.radio.data</name> |
| <version>3</version> |
| <interface> |
| <name>IRadioData</name> |
| <instance>slot1</instance> |
| <instance>slot2</instance> |
| <instance>slot3</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.radio.messaging</name> |
| <version>3</version> |
| <interface> |
| <name>IRadioMessaging</name> |
| <instance>slot1</instance> |
| <instance>slot2</instance> |
| <instance>slot3</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.radio.modem</name> |
| <version>3</version> |
| <interface> |
| <name>IRadioModem</name> |
| <instance>slot1</instance> |
| <instance>slot2</instance> |
| <instance>slot3</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.radio.network</name> |
| <version>3</version> |
| <interface> |
| <name>IRadioNetwork</name> |
| <instance>slot1</instance> |
| <instance>slot2</instance> |
| <instance>slot3</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.radio.sim</name> |
| <version>3</version> |
| <interface> |
| <name>IRadioSim</name> |
| <instance>slot1</instance> |
| <instance>slot2</instance> |
| <instance>slot3</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.radio.sap</name> |
| <version>1</version> |
| <interface> |
| <name>ISap</name> |
| <instance>slot1</instance> |
| <instance>slot2</instance> |
| <instance>slot3</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.radio.voice</name> |
| <version>3</version> |
| <interface> |
| <name>IRadioVoice</name> |
| <instance>slot1</instance> |
| <instance>slot2</instance> |
| <instance>slot3</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.radio.ims</name> |
| <version>2</version> |
| <interface> |
| <name>IRadioIms</name> |
| <instance>slot1</instance> |
| <instance>slot2</instance> |
| <instance>slot3</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.radio.ims.media</name> |
| <version>2</version> |
| <interface> |
| <name>IImsMedia</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.rebootescrow</name> |
| <version>1</version> |
| <interface> |
| <name>IRebootEscrow</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.secure_element</name> |
| <version>1</version> |
| <interface> |
| <name>ISecureElement</name> |
| <regex-instance>eSE[1-9][0-9]*</regex-instance> |
| <regex-instance>SIM[1-9][0-9]*</regex-instance> |
| </interface> |
| </hal> |
| <hal format="aidl" updatable-via-apex="true"> |
| <name>android.hardware.security.authgraph</name> |
| <version>1</version> |
| <interface> |
| <name>IAuthGraphKeyExchange</name> |
| <instance>nonsecure</instance> |
| </interface> |
| </hal> |
| <hal format="aidl" updatable-via-apex="true"> |
| <name>android.hardware.security.secureclock</name> |
| <version>1</version> |
| <interface> |
| <name>ISecureClock</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl" updatable-via-apex="true"> |
| <name>android.hardware.security.sharedsecret</name> |
| <version>1</version> |
| <interface> |
| <name>ISharedSecret</name> |
| <instance>default</instance> |
| <instance>strongbox</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.sensors</name> |
| <version>2</version> |
| <interface> |
| <name>ISensors</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.soundtrigger3</name> |
| <version>1-2</version> |
| <interface> |
| <name>ISoundTriggerHw</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.tetheroffload</name> |
| <version>1</version> |
| <interface> |
| <name>IOffload</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.thermal</name> |
| <version>2</version> |
| <interface> |
| <name>IThermal</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl" updatable-via-apex="true"> |
| <name>android.hardware.threadnetwork</name> |
| <version>1</version> |
| <interface> |
| <name>IThreadChip</name> |
| <regex-instance>chip[0-9]+</regex-instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.tv.hdmi.cec</name> |
| <version>1</version> |
| <interface> |
| <name>IHdmiCec</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.tv.hdmi.earc</name> |
| <version>1</version> |
| <interface> |
| <name>IEArc</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.tv.hdmi.connection</name> |
| <version>1</version> |
| <interface> |
| <name>IHdmiConnection</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.tv.tuner</name> |
| <version>1-2</version> |
| <interface> |
| <name>ITuner</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.tv.input</name> |
| <version>1-2</version> |
| <interface> |
| <name>ITvInput</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.usb</name> |
| <version>1-3</version> |
| <interface> |
| <name>IUsb</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.usb.gadget</name> |
| <interface> |
| <name>IUsbGadget</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.vibrator</name> |
| <version>1-2</version> |
| <interface> |
| <name>IVibrator</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.vibrator</name> |
| <version>1-2</version> |
| <interface> |
| <name>IVibratorManager</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.weaver</name> |
| <version>2</version> |
| <interface> |
| <name>IWeaver</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl" updatable-via-apex="true"> |
| <name>android.hardware.wifi</name> |
| <version>1-2</version> |
| <interface> |
| <name>IWifi</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl" updatable-via-apex="true"> |
| <name>android.hardware.uwb</name> |
| <version>1</version> |
| <interface> |
| <name>IUwb</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.wifi.hostapd</name> |
| <version>1-2</version> |
| <interface> |
| <name>IHostapd</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <hal format="aidl"> |
| <name>android.hardware.wifi.supplicant</name> |
| <version>2-3</version> |
| <interface> |
| <name>ISupplicant</name> |
| <instance>default</instance> |
| </interface> |
| </hal> |
| <!-- The native mapper HAL must exist on the device --> |
| <hal format="native"> |
| <name>mapper</name> |
| <version>5.0</version> |
| <interface> |
| <regex-instance>.*</regex-instance> |
| </interface> |
| </hal> |
| </compatibility-matrix> |