<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2024 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<!-- NOTE: The shared UID is left in for legacy reasons, and can be safely
     removed once T is the oldest supported device. It has no impact on T+
     devices.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.nfc.emulator">
    <uses-sdk android:minSdkVersion="35" android:targetSdkVersion="35"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.NFC" />
    <uses-permission android:name="android.permission.NFC_TRANSACTION_EVENT" />
    <uses-permission android:name="android.permission.NFC_PREFERRED_PAYMENT_INFO" />
    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

    <application>
        <!-- Add any classes that implement the Snippet interface as meta-data, whose
         value is a comma-separated string, each section being the package path
         of a snippet class -->
        <meta-data
            android:name="mobly-snippets"
            android:value="com.android.nfc.emulator.NfcEmulatorDeviceSnippet"/>
        <activity
            android:name=".AccessServiceTurnObserveModeOnProcessApduEmulatorActivity"
            android:label="Access Service Observe Mode Emulator"
            android:exported="true">
        </activity>
        <activity android:name=".PollingAndOffHostEmulatorActivity"
            android:label="Polling And Off Host Emulator"
            android:exported="true">
        </activity>
        <activity
            android:name=".PollingLoopEmulatorActivity"
            android:label="Polling Loop Emulator"
            android:exported="true">
        </activity>
        <activity
            android:name=".TwoPollingFrameEmulatorActivity"
            android:label="Two Polling Frame Emulator"
            android:exported="true">
        </activity>
        <activity
            android:name=".SimpleEmulatorActivity"
            android:label="Simple Emulator"
            android:exported="true">
        </activity>
        <activity
            android:name=".OffHostEmulatorActivity"
            android:label="Off Host Emulator"
            android:exported="true">
        </activity>
        <activity
            android:name=".OnAndOffHostEmulatorActivity"
            android:label="On and Off Host Emulator"
            android:exported="true">
        </activity>
        <activity
            android:name=".DynamicAidEmulatorActivity"
            android:label="Dynamic Payment AID emulator"
            android:exported="true">
        </activity>
        <activity
            android:name=".PrefixPaymentEmulatorActivity"
            android:label="Prefix Payment emulator"
            android:exported="true">
        </activity>
        <activity
            android:name=".PrefixPaymentEmulator2Activity"
            android:label="Prefix Payment 2 emulator"
            android:exported="true">
        </activity>
        <activity
            android:name=".DualNonPaymentPrefixEmulatorActivity"
            android:label="Dual Non-Payment Prefix emulator"
            android:exported="true">
        </activity>
        <activity
            android:name=".ThroughputEmulatorActivity"
            android:label="Throughput emulator"
            android:exported="true">
        </activity>
        <activity
            android:name=".LargeNumAidsEmulatorActivity"
            android:label="Large Num Aids emulator"
            android:exported="true">
        </activity>
        <activity
            android:name=".ScreenOffPaymentEmulatorActivity"
            android:label="Screen Off Payment emulator"
            android:exported="true">
        </activity>
        <activity android:name=".ConflictingNonPaymentPrefixEmulatorActivity"
            android:label="Conflicting Non-Payment Prefix Emulator"
            android:exported="true">
        </activity>
        <activity android:name=".ScreenOnOnlyOffHostEmulatorActivity"
            android:label="Screen-On Off Host Emulator"
            android:exported="true">
        </activity>
        <activity
            android:name=".PN532Activity"
            android:label="PN532 Activity"
            android:exported="true">
        </activity>
        <activity
            android:name=".PollingFrameEmulatorActivity"
            android:label="Polling Frame Activity"
            android:exported="true">
        </activity>
        <activity
            android:name=".EventListenerEmulatorActivity"
            android:label="Event Listener Activity"
            android:exported="true">
        </activity>
        <service android:name="com.android.nfc.service.PollingLoopService" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="true">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_aid_list"/>
        </service>
        <service android:name="com.android.nfc.service.PollingLoopService2" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="true">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_aid_list_2"/>
        </service>
        <service android:name="com.android.nfc.service.AccessServiceTurnObserveModeOnProcessApdu" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_aid_list"/>
        </service>
        <service android:name="com.android.nfc.service.TransportService1" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/transport_aid_list_1"/>
        </service>
        <service android:name="com.android.nfc.service.TransportService2" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/transport_aid_list_2"/>
        </service>
        <service android:name="com.android.nfc.service.AccessService" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_aid_list"/>
        </service>
        <service android:name="com.android.nfc.service.PaymentService1" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_aid_list_1"/>
        </service>
        <service android:name="com.android.nfc.service.OffHostService" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.OFF_HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.off_host_apdu_service" android:resource="@xml/offhost_aid_list"/>
        </service>
        <service android:name="com.android.nfc.service.PaymentService2" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_aid_list_2"/>
        </service>
        <service android:name="com.android.nfc.service.PaymentServiceDynamicAids" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_aid_list_1"/>
        </service>
        <service android:name="com.android.nfc.service.PrefixPaymentService1" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_prefix_aid_list"/>
        </service>
        <service android:name="com.android.nfc.service.PrefixPaymentService2" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_prefix_aid_list_2"/>
        </service>
        <service android:name="com.android.nfc.service.PrefixTransportService1" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/transport_prefix_aid_list_1"/>
        </service>
        <service android:name="com.android.nfc.service.PrefixTransportService2" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/transport_prefix_aid_list_2"/>
        </service>
        <service android:name="com.android.nfc.service.PrefixAccessService" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_prefix_aid_list"/>
        </service>
        <service android:name="com.android.nfc.service.ThroughputService" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/throughput_aid_list"/>
        </service>
        <service android:name="com.android.nfc.service.LargeNumAidsService" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_aid_list_1"/>
        </service>
        <service android:name="com.android.nfc.service.ScreenOffPaymentService" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/screen_off_payment_aid_list"/>
        </service>
        <service android:name="com.android.nfc.service.ScreenOnOnlyOffHostService" android:exported="true"
            android:permission="android.permission.BIND_NFC_SERVICE"
            android:enabled="false">
            <intent-filter>
                <action android:name="android.nfc.cardemulation.action.OFF_HOST_APDU_SERVICE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="android.nfc.cardemulation.off_host_apdu_service" android:resource="@xml/screen_on_only_offhost_aid_list"/>
        </service>
    </application>
    <instrumentation android:name="com.google.android.mobly.snippet.SnippetRunner"
        android:targetPackage="com.android.nfc.emulator"
        android:label="NFC Multi Device Emulator Snippet" />
</manifest>
