<manifest version="1.0" type="framework">
    <hal>
        <name>android.hidl.manager</name>
        <transport>hwbinder</transport>
        <version>1.2</version>
        <interface>
            <name>IServiceManager</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal>
        <name>android.hidl.memory</name>
        <transport arch="32+64">passthrough</transport>
        <version>1.0</version>
        <interface>
            <name>IMapper</name>
            <instance>ashmem</instance>
        </interface>
    </hal>
    <hal>
        <name>android.hidl.token</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>ITokenManager</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal max-level="6">
        <name>android.frameworks.displayservice</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IDisplayService</name>
            <instance>default</instance>
        </interface>
    </hal>
    <!--
        Instead of calling this, prefer to set priority in init .rc files via
        `ioprio <class> <priority>`. For more information, see
        system/core/init/README.md
    -->
    <hal max-level="5">
        <name>android.frameworks.schedulerservice</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>ISchedulingPolicyService</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal>
        <name>android.frameworks.sensorservice</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>ISensorManager</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal>
        <name>android.system.net.netd</name>
        <transport>hwbinder</transport>
        <version>1.1</version>
        <interface>
            <name>INetd</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal>
        <name>android.system.wifi.keystore</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IKeystore</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="native">
        <name>netutils-wrapper</name>
        <!--
            netutils-wrapper versions must be x.0.
            netutils-wrapper next version has less functionalities than
            previous versions, so unlike a HAL, netutils-wrapper are not
            backwards compatible. Hence the major version must be bumped for
            each update.
            If a minor version were bumped instead (say, <version>1.1</version>),
            it would be incorrectly considered compatible with version 1.0 in
            device compatibility matrix.
        -->
        <version>1.0</version>
    </hal>
</manifest>
