• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="utf-8"?>
2<!--
3  ~ Copyright (C) 2024 The Android Open Source Project
4  ~
5  ~ Licensed under the Apache License, Version 2.0 (the "License");
6  ~ you may not use this file except in compliance with the License.
7  ~ You may obtain a copy of the License at
8  ~
9  ~      http://www.apache.org/licenses/LICENSE-2.0
10  ~
11  ~ Unless required by applicable law or agreed to in writing, software
12  ~ distributed under the License is distributed on an "AS IS" BASIS,
13  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  ~ See the License for the specific language governing permissions and
15  ~ limitations under the License.
16  -->
17
18<!-- NOTE: The shared UID is left in for legacy reasons, and can be safely
19     removed once T is the oldest supported device. It has no impact on T+
20     devices.
21-->
22<manifest xmlns:android="http://schemas.android.com/apk/res/android"
23    package="com.android.nfc.emulator">
24    <uses-sdk android:minSdkVersion="35" android:targetSdkVersion="35"/>
25    <uses-permission android:name="android.permission.INTERNET" />
26    <uses-permission android:name="android.permission.NFC" />
27    <uses-permission android:name="android.permission.NFC_TRANSACTION_EVENT" />
28    <uses-permission android:name="android.permission.NFC_PREFERRED_PAYMENT_INFO" />
29    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
30
31    <application>
32        <!-- Add any classes that implement the Snippet interface as meta-data, whose
33         value is a comma-separated string, each section being the package path
34         of a snippet class -->
35        <meta-data
36            android:name="mobly-snippets"
37            android:value="com.android.nfc.emulator.NfcEmulatorDeviceSnippet"/>
38        <activity
39            android:name=".AccessServiceTurnObserveModeOnProcessApduEmulatorActivity"
40            android:label="Access Service Observe Mode Emulator"
41            android:exported="true">
42        </activity>
43        <activity android:name=".PollingAndOffHostEmulatorActivity"
44            android:label="Polling And Off Host Emulator"
45            android:exported="true">
46        </activity>
47        <activity
48            android:name=".PollingLoopEmulatorActivity"
49            android:label="Polling Loop Emulator"
50            android:exported="true">
51        </activity>
52        <activity
53            android:name=".TwoPollingFrameEmulatorActivity"
54            android:label="Two Polling Frame Emulator"
55            android:exported="true">
56        </activity>
57        <activity
58            android:name=".SimpleEmulatorActivity"
59            android:label="Simple Emulator"
60            android:exported="true">
61        </activity>
62        <activity
63            android:name=".OffHostEmulatorActivity"
64            android:label="Off Host Emulator"
65            android:exported="true">
66        </activity>
67        <activity
68            android:name=".OnAndOffHostEmulatorActivity"
69            android:label="On and Off Host Emulator"
70            android:exported="true">
71        </activity>
72        <activity
73            android:name=".DynamicAidEmulatorActivity"
74            android:label="Dynamic Payment AID emulator"
75            android:exported="true">
76        </activity>
77        <activity
78            android:name=".PrefixPaymentEmulatorActivity"
79            android:label="Prefix Payment emulator"
80            android:exported="true">
81        </activity>
82        <activity
83            android:name=".PrefixPaymentEmulator2Activity"
84            android:label="Prefix Payment 2 emulator"
85            android:exported="true">
86        </activity>
87        <activity
88            android:name=".DualNonPaymentPrefixEmulatorActivity"
89            android:label="Dual Non-Payment Prefix emulator"
90            android:exported="true">
91        </activity>
92        <activity
93            android:name=".ThroughputEmulatorActivity"
94            android:label="Throughput emulator"
95            android:exported="true">
96        </activity>
97        <activity
98            android:name=".LargeNumAidsEmulatorActivity"
99            android:label="Large Num Aids emulator"
100            android:exported="true">
101        </activity>
102        <activity
103            android:name=".ScreenOffPaymentEmulatorActivity"
104            android:label="Screen Off Payment emulator"
105            android:exported="true">
106        </activity>
107        <activity android:name=".ConflictingNonPaymentPrefixEmulatorActivity"
108            android:label="Conflicting Non-Payment Prefix Emulator"
109            android:exported="true">
110        </activity>
111        <activity android:name=".ScreenOnOnlyOffHostEmulatorActivity"
112            android:label="Screen-On Off Host Emulator"
113            android:exported="true">
114        </activity>
115        <activity
116            android:name=".PN532Activity"
117            android:label="PN532 Activity"
118            android:exported="true">
119        </activity>
120        <activity
121            android:name=".PollingFrameEmulatorActivity"
122            android:label="Polling Frame Activity"
123            android:exported="true">
124        </activity>
125        <activity
126            android:name=".EventListenerEmulatorActivity"
127            android:label="Event Listener Activity"
128            android:exported="true">
129        </activity>
130        <activity
131            android:name=".ExitFrameEmulatorActivity"
132            android:label="Exit Frame Activity"
133            android:exported="true">
134        </activity>
135        <service android:name="com.android.nfc.service.PollingLoopService" android:exported="true"
136            android:permission="android.permission.BIND_NFC_SERVICE"
137            android:enabled="true">
138            <intent-filter>
139                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
140                <category android:name="android.intent.category.DEFAULT"/>
141            </intent-filter>
142            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_aid_list"/>
143        </service>
144        <service android:name="com.android.nfc.service.PollingLoopService2" android:exported="true"
145            android:permission="android.permission.BIND_NFC_SERVICE"
146            android:enabled="true">
147            <intent-filter>
148                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
149                <category android:name="android.intent.category.DEFAULT"/>
150            </intent-filter>
151            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_aid_list_2"/>
152        </service>
153        <service android:name="com.android.nfc.service.AccessServiceTurnObserveModeOnProcessApdu" android:exported="true"
154            android:permission="android.permission.BIND_NFC_SERVICE"
155            android:enabled="false">
156            <intent-filter>
157                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
158                <category android:name="android.intent.category.DEFAULT"/>
159            </intent-filter>
160            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_aid_list"/>
161        </service>
162        <service android:name="com.android.nfc.service.TransportService1" android:exported="true"
163            android:permission="android.permission.BIND_NFC_SERVICE"
164            android:enabled="false">
165            <intent-filter>
166                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
167                <category android:name="android.intent.category.DEFAULT"/>
168            </intent-filter>
169            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/transport_aid_list_1"/>
170        </service>
171        <service android:name="com.android.nfc.service.TransportService2" android:exported="true"
172            android:permission="android.permission.BIND_NFC_SERVICE"
173            android:enabled="false">
174            <intent-filter>
175                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
176                <category android:name="android.intent.category.DEFAULT"/>
177            </intent-filter>
178            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/transport_aid_list_2"/>
179        </service>
180        <service android:name="com.android.nfc.service.AccessService" android:exported="true"
181            android:permission="android.permission.BIND_NFC_SERVICE"
182            android:enabled="false">
183            <intent-filter>
184                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
185                <category android:name="android.intent.category.DEFAULT"/>
186            </intent-filter>
187            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_aid_list"/>
188        </service>
189        <service android:name="com.android.nfc.service.PaymentService1" android:exported="true"
190            android:permission="android.permission.BIND_NFC_SERVICE"
191            android:enabled="false"
192            android:process="com.android.nfc.emulator.payment">
193            <intent-filter>
194                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
195                <category android:name="android.intent.category.DEFAULT"/>
196            </intent-filter>
197            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_aid_list_1"/>
198        </service>
199        <service android:name="com.android.nfc.service.PaymentServiceNoIndexReset" android:exported="true"
200            android:permission="android.permission.BIND_NFC_SERVICE"
201            android:enabled="false">
202            <intent-filter>
203                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
204                <category android:name="android.intent.category.DEFAULT"/>
205            </intent-filter>
206            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_aid_list_1"/>
207        </service>
208        <service android:name="com.android.nfc.service.OffHostService" android:exported="true"
209            android:permission="android.permission.BIND_NFC_SERVICE"
210            android:enabled="false">
211            <intent-filter>
212                <action android:name="android.nfc.cardemulation.action.OFF_HOST_APDU_SERVICE"/>
213                <category android:name="android.intent.category.DEFAULT"/>
214            </intent-filter>
215            <meta-data android:name="android.nfc.cardemulation.off_host_apdu_service" android:resource="@xml/offhost_aid_list"/>
216        </service>
217        <service android:name="com.android.nfc.service.PaymentService2" android:exported="true"
218            android:permission="android.permission.BIND_NFC_SERVICE"
219            android:enabled="false">
220            <intent-filter>
221                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
222                <category android:name="android.intent.category.DEFAULT"/>
223            </intent-filter>
224            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_aid_list_2"/>
225        </service>
226        <service android:name="com.android.nfc.service.PaymentServiceDynamicAids" android:exported="true"
227            android:permission="android.permission.BIND_NFC_SERVICE"
228            android:enabled="false">
229            <intent-filter>
230                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
231                <category android:name="android.intent.category.DEFAULT"/>
232            </intent-filter>
233            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_aid_list_1"/>
234        </service>
235        <service android:name="com.android.nfc.service.PrefixPaymentService1" android:exported="true"
236            android:permission="android.permission.BIND_NFC_SERVICE"
237            android:enabled="false">
238            <intent-filter>
239                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
240                <category android:name="android.intent.category.DEFAULT"/>
241            </intent-filter>
242            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_prefix_aid_list"/>
243        </service>
244        <service android:name="com.android.nfc.service.PrefixPaymentService2" android:exported="true"
245            android:permission="android.permission.BIND_NFC_SERVICE"
246            android:enabled="false">
247            <intent-filter>
248                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
249                <category android:name="android.intent.category.DEFAULT"/>
250            </intent-filter>
251            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_prefix_aid_list_2"/>
252        </service>
253        <service android:name="com.android.nfc.service.PrefixTransportService1" android:exported="true"
254            android:permission="android.permission.BIND_NFC_SERVICE"
255            android:enabled="false">
256            <intent-filter>
257                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
258                <category android:name="android.intent.category.DEFAULT"/>
259            </intent-filter>
260            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/transport_prefix_aid_list_1"/>
261        </service>
262        <service android:name="com.android.nfc.service.PrefixTransportService2" android:exported="true"
263            android:permission="android.permission.BIND_NFC_SERVICE"
264            android:enabled="false">
265            <intent-filter>
266                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
267                <category android:name="android.intent.category.DEFAULT"/>
268            </intent-filter>
269            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/transport_prefix_aid_list_2"/>
270        </service>
271        <service android:name="com.android.nfc.service.PrefixAccessService" android:exported="true"
272            android:permission="android.permission.BIND_NFC_SERVICE"
273            android:enabled="false">
274            <intent-filter>
275                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
276                <category android:name="android.intent.category.DEFAULT"/>
277            </intent-filter>
278            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_prefix_aid_list"/>
279        </service>
280        <service android:name="com.android.nfc.service.ThroughputService" android:exported="true"
281            android:permission="android.permission.BIND_NFC_SERVICE"
282            android:enabled="false">
283            <intent-filter>
284                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
285                <category android:name="android.intent.category.DEFAULT"/>
286            </intent-filter>
287            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/throughput_aid_list"/>
288        </service>
289        <service android:name="com.android.nfc.service.LargeNumAidsService" android:exported="true"
290            android:permission="android.permission.BIND_NFC_SERVICE"
291            android:enabled="false">
292            <intent-filter>
293                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
294                <category android:name="android.intent.category.DEFAULT"/>
295            </intent-filter>
296            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_aid_list_1"/>
297        </service>
298        <service android:name="com.android.nfc.service.ScreenOffPaymentService" android:exported="true"
299            android:permission="android.permission.BIND_NFC_SERVICE"
300            android:enabled="false">
301            <intent-filter>
302                <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
303                <category android:name="android.intent.category.DEFAULT"/>
304            </intent-filter>
305            <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/screen_off_payment_aid_list"/>
306        </service>
307        <service android:name="com.android.nfc.service.ScreenOnOnlyOffHostService" android:exported="true"
308            android:permission="android.permission.BIND_NFC_SERVICE"
309            android:enabled="false">
310            <intent-filter>
311                <action android:name="android.nfc.cardemulation.action.OFF_HOST_APDU_SERVICE"/>
312                <category android:name="android.intent.category.DEFAULT"/>
313            </intent-filter>
314            <meta-data android:name="android.nfc.cardemulation.off_host_apdu_service" android:resource="@xml/screen_on_only_offhost_aid_list"/>
315        </service>
316    </application>
317    <instrumentation android:name="com.google.android.mobly.snippet.SnippetRunner"
318        android:targetPackage="com.android.nfc.emulator"
319        android:label="NFC Multi Device Emulator Snippet" />
320</manifest>
321