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