<compatibility-matrix version="1.0" type="framework" level="8">
    <hal format="hidl" optional="false">
        <name>android.hardware.audio</name>
        <version>6.0</version>
        <version>7.0-1</version>
        <interface>
            <name>IDevicesFactory</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.audio.effect</name>
        <version>6.0</version>
        <version>7.0</version>
        <interface>
            <name>IEffectsFactory</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.audio.core</name>
        <version>1</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" optional="true">
        <name>android.hardware.audio.effect</name>
        <version>1</version>
        <interface>
            <name>IFactory</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.audio.sounddose</name>
        <version>1</version>
        <interface>
            <name>ISoundDoseFactory</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
         <name>android.hardware.authsecret</name>
         <version>1</version>
         <interface>
             <name>IAuthSecret</name>
             <instance>default</instance>
         </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.authsecret</name>
        <version>1.0</version>
        <interface>
            <name>IAuthSecret</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.automotive.audiocontrol</name>
        <interface>
            <name>IAudioControl</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.automotive.can</name>
        <version>1.0</version>
        <interface>
            <name>ICanBus</name>
            <regex-instance>.*</regex-instance>
        </interface>
        <interface>
            <name>ICanController</name>
            <regex-instance>.*</regex-instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.automotive.evs</name>
        <interface>
            <name>IEvsEnumerator</name>
            <instance>default</instance>
            <regex-instance>[a-z]+/[0-9]+</regex-instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.automotive.evs</name>
        <version>1.0-1</version>
        <interface>
            <name>IEvsEnumerator</name>
            <instance>default</instance>
            <regex-instance>[a-z]+/[0-9]+</regex-instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.automotive.occupant_awareness</name>
        <version>1</version>
        <interface>
            <name>IOccupantAwareness</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.automotive.vehicle</name>
        <interface>
            <name>IVehicle</name>
            <regex-instance>.*</regex-instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.automotive.remoteaccess</name>
        <interface>
            <name>IRemoteAccess</name>
            <regex-instance>.*</regex-instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.automotive.vehicle</name>
        <version>2.0</version>
        <interface>
            <name>IVehicle</name>
            <regex-instance>.*</regex-instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.biometrics.face</name>
        <version>2</version>
        <interface>
            <name>IFace</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.biometrics.fingerprint</name>
        <version>2</version>
        <interface>
            <name>IFingerprint</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.bluetooth</name>
        <version>1.0-1</version>
        <interface>
            <name>IBluetoothHci</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.bluetooth</name>
        <interface>
            <name>IBluetoothHci</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.bluetooth.audio</name>
        <version>3</version>
        <interface>
            <name>IBluetoothAudioProviderFactory</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.boot</name>
        <interface>
            <name>IBootControl</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.broadcastradio</name>
        <version>1.0-1</version>
        <interface>
            <name>IBroadcastRadioFactory</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.broadcastradio</name>
        <version>2.0</version>
        <interface>
            <name>IBroadcastRadio</name>
            <regex-instance>.*</regex-instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.camera.provider</name>
        <version>2.4-7</version>
        <interface>
            <name>ICameraProvider</name>
            <regex-instance>[^/]+/[0-9]+</regex-instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true" updatable-via-apex="true">
        <name>android.hardware.camera.provider</name>
        <version>1</version>
        <interface>
            <name>ICameraProvider</name>
            <regex-instance>[^/]+/[0-9]+</regex-instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.cas</name>
        <interface>
            <name>IMediaCasService</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.confirmationui</name>
        <version>1</version>
        <interface>
            <name>IConfirmationUI</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.contexthub</name>
        <interface>
            <name>IContextHub</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true" updatable-via-apex="true">
        <name>android.hardware.drm</name>
        <version>1</version>
        <interface>
            <name>IDrmFactory</name>
            <regex-instance>.*</regex-instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.drm</name>
        <version>1.3-4</version>
        <interface>
            <name>ICryptoFactory</name>
            <regex-instance>.*</regex-instance>
        </interface>
        <interface>
            <name>IDrmFactory</name>
            <regex-instance>.*</regex-instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.dumpstate</name>
        <interface>
            <name>IDumpstateDevice</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.gatekeeper</name>
        <version>1</version>
        <interface>
            <name>IGatekeeper</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.gnss</name>
        <version>2</version>
        <interface>
            <name>IGnss</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.gnss.visibility_control</name>
        <version>1</version>
        <interface>
            <name>IGnssVisibilityControl</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.gnss.measurement_corrections</name>
        <version>1</version>
        <interface>
            <name>IMeasurementCorrectionsInterface</name>
            <instance>default</instance>
        </interface>
    </hal>
    <!-- Either the AIDL or the HIDL allocator HAL must exist on the device.
         If the HIDL composer HAL exists, it must be at least version 2.0.
         See DeviceManifestTest.GrallocHal -->
    <hal format="hidl" optional="true">
        <name>android.hardware.graphics.allocator</name>
        <!-- New, non-Go devices should use 4.0 or the AIDL hal.
             See DeviceManifestTest.GrallocVersionCompatibility. -->
        <version>2.0</version>
        <version>3.0</version>
        <version>4.0</version>
        <interface>
            <name>IAllocator</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.graphics.allocator</name>
        <version>1-2</version>
        <interface>
            <name>IAllocator</name>
            <instance>default</instance>
        </interface>
    </hal>
    <!-- Either the AIDL or the HIDL composer HAL must exist on the device.
         If the HIDL composer HAL exists, it must be at least version 2.1.
         See DeviceManifestTest.ComposerHal -->
    <hal format="hidl" optional="true">
        <name>android.hardware.graphics.composer</name>
        <version>2.1-4</version>
        <interface>
            <name>IComposer</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.graphics.composer3</name>
        <version>1</version>
        <interface>
            <name>IComposer</name>
            <instance>default</instance>
        </interface>
    </hal>
    <!-- Either the native or the HIDL mapper HAL must exist on the device -->
    <hal format="hidl" optional="true">
        <name>android.hardware.graphics.mapper</name>
        <!-- New, non-Go devices should use 4.0, tested in vts_treble_vintf_vendor_test -->
        <version>2.1</version>
        <version>3.0</version>
        <version>4.0</version>
        <interface>
            <name>IMapper</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="false">
        <name>android.hardware.health</name>
        <version>1-2</version>
        <interface>
            <name>IHealth</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.health.storage</name>
        <version>1</version>
        <interface>
            <name>IStorage</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.identity</name>
        <version>1-5</version>
        <interface>
            <name>IIdentityCredentialStore</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.net.nlinterceptor</name>
        <interface>
            <name>IInterceptor</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.oemlock</name>
        <version>1</version>
        <interface>
            <name>IOemLock</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.ir</name>
        <version>1</version>
        <interface>
            <name>IConsumerIr</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.input.processor</name>
        <version>1</version>
        <interface>
            <name>IInputProcessor</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="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" optional="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" optional="true">
        <name>android.hardware.light</name>
        <version>2</version>
        <interface>
            <name>ILights</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.media.c2</name>
        <version>1.0-2</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" optional="true">
        <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" optional="true">
        <name>android.hardware.memtrack</name>
        <version>1</version>
        <interface>
            <name>IMemtrack</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.neuralnetworks</name>
        <version>1.0-3</version>
        <interface>
            <name>IDevice</name>
            <regex-instance>.*</regex-instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.neuralnetworks</name>
        <version>1-4</version>
        <interface>
            <name>IDevice</name>
            <regex-instance>.*</regex-instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.nfc</name>
        <interface>
            <name>INfc</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.oemlock</name>
        <version>1.0</version>
        <interface>
            <name>IOemLock</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="false">
        <name>android.hardware.power</name>
        <version>2-3</version>
        <interface>
            <name>IPower</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.power.stats</name>
        <version>2</version>
        <interface>
            <name>IPowerStats</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.radio.config</name>
        <version>1</version>
        <interface>
            <name>IRadioConfig</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.radio.data</name>
        <version>1</version>
        <interface>
            <name>IRadioData</name>
            <instance>slot1</instance>
            <instance>slot2</instance>
            <instance>slot3</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.radio.messaging</name>
        <version>1</version>
        <interface>
            <name>IRadioMessaging</name>
            <instance>slot1</instance>
            <instance>slot2</instance>
            <instance>slot3</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.radio.modem</name>
        <version>1</version>
        <interface>
            <name>IRadioModem</name>
            <instance>slot1</instance>
            <instance>slot2</instance>
            <instance>slot3</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.radio.network</name>
        <version>1</version>
        <interface>
            <name>IRadioNetwork</name>
            <instance>slot1</instance>
            <instance>slot2</instance>
            <instance>slot3</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.radio.sim</name>
        <version>1</version>
        <interface>
            <name>IRadioSim</name>
            <instance>slot1</instance>
            <instance>slot2</instance>
            <instance>slot3</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <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" optional="true">
        <name>android.hardware.radio.voice</name>
        <version>1</version>
        <interface>
            <name>IRadioVoice</name>
            <instance>slot1</instance>
            <instance>slot2</instance>
            <instance>slot3</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.radio</name>
        <version>1.2</version>
        <interface>
            <name>ISap</name>
            <instance>slot1</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.renderscript</name>
        <version>1.0</version>
        <interface>
            <name>IDevice</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.rebootescrow</name>
        <version>1</version>
        <interface>
            <name>IRebootEscrow</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <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" optional="true">
        <name>android.hardware.security.secureclock</name>
        <version>1</version>
        <interface>
            <name>ISecureClock</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="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" optional="true">
        <name>android.hardware.sensors</name>
        <interface>
            <name>ISensors</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.sensors</name>
        <version>1.0</version>
        <version>2.0-1</version>
        <interface>
            <name>ISensors</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.soundtrigger</name>
        <version>2.3</version>
        <interface>
            <name>ISoundTriggerHw</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
         <name>android.hardware.soundtrigger3</name>
         <version>1</version>
         <interface>
             <name>ISoundTriggerHw</name>
             <instance>default</instance>
         </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.tetheroffload.config</name>
        <version>1.0</version>
        <interface>
            <name>IOffloadConfig</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.tetheroffload.control</name>
        <version>1.1</version>
        <interface>
            <name>IOffloadControl</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.tetheroffload</name>
        <version>1</version>
        <interface>
            <name>IOffload</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.thermal</name>
        <version>1</version>
        <interface>
            <name>IThermal</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.tv.hdmi.cec</name>
        <version>1</version>
        <interface>
            <name>IHdmiCec</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.tv.hdmi.earc</name>
        <version>1</version>
        <interface>
            <name>IEArc</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.tv.hdmi.connection</name>
        <version>1</version>
        <interface>
            <name>IHdmiConnection</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.tv.input</name>
        <version>1.0</version>
        <interface>
            <name>ITvInput</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.tv.tuner</name>
        <version>1.0-1</version>
        <interface>
            <name>ITuner</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.tv.tuner</name>
        <version>1</version>
        <interface>
            <name>ITuner</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.usb</name>
        <interface>
            <name>IUsb</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.usb.gadget</name>
        <interface>
            <name>IUsbGadget</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.vibrator</name>
        <version>1-2</version>
        <interface>
            <name>IVibrator</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.vibrator</name>
        <version>1-2</version>
        <interface>
            <name>IVibratorManager</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.weaver</name>
        <version>1.0</version>
        <interface>
            <name>IWeaver</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.weaver</name>
        <version>1</version>
        <interface>
            <name>IWeaver</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true" updatable-via-apex="true">
        <name>android.hardware.wifi</name>
        <version>1</version>
        <interface>
            <name>IWifi</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl" optional="true" updatable-via-apex="true">
        <name>android.hardware.wifi</name>
        <version>1.3-6</version>
        <interface>
            <name>IWifi</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.uwb</name>
        <version>1</version>
        <interface>
            <name>IUwb</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.wifi.hostapd</name>
        <version>1</version>
        <interface>
            <name>IHostapd</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="aidl" optional="true">
        <name>android.hardware.wifi.supplicant</name>
        <interface>
            <name>ISupplicant</name>
            <instance>default</instance>
        </interface>
    </hal>
    <!-- Either the native or the HIDL mapper HAL must exist on the device -->
    <hal format="native" optional="true">
        <name>mapper</name>
        <version>5.0</version>
        <interface>
            <regex-instance>.*</regex-instance>
        </interface>
    </hal>
</compatibility-matrix>
