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 <service android:name="com.android.nfc.service.PollingLoopService" android:exported="true" 131 android:permission="android.permission.BIND_NFC_SERVICE" 132 android:enabled="true"> 133 <intent-filter> 134 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 135 <category android:name="android.intent.category.DEFAULT"/> 136 </intent-filter> 137 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_aid_list"/> 138 </service> 139 <service android:name="com.android.nfc.service.PollingLoopService2" android:exported="true" 140 android:permission="android.permission.BIND_NFC_SERVICE" 141 android:enabled="true"> 142 <intent-filter> 143 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 144 <category android:name="android.intent.category.DEFAULT"/> 145 </intent-filter> 146 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_aid_list_2"/> 147 </service> 148 <service android:name="com.android.nfc.service.AccessServiceTurnObserveModeOnProcessApdu" android:exported="true" 149 android:permission="android.permission.BIND_NFC_SERVICE" 150 android:enabled="false"> 151 <intent-filter> 152 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 153 <category android:name="android.intent.category.DEFAULT"/> 154 </intent-filter> 155 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_aid_list"/> 156 </service> 157 <service android:name="com.android.nfc.service.TransportService1" android:exported="true" 158 android:permission="android.permission.BIND_NFC_SERVICE" 159 android:enabled="false"> 160 <intent-filter> 161 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 162 <category android:name="android.intent.category.DEFAULT"/> 163 </intent-filter> 164 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/transport_aid_list_1"/> 165 </service> 166 <service android:name="com.android.nfc.service.TransportService2" android:exported="true" 167 android:permission="android.permission.BIND_NFC_SERVICE" 168 android:enabled="false"> 169 <intent-filter> 170 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 171 <category android:name="android.intent.category.DEFAULT"/> 172 </intent-filter> 173 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/transport_aid_list_2"/> 174 </service> 175 <service android:name="com.android.nfc.service.AccessService" android:exported="true" 176 android:permission="android.permission.BIND_NFC_SERVICE" 177 android:enabled="false"> 178 <intent-filter> 179 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 180 <category android:name="android.intent.category.DEFAULT"/> 181 </intent-filter> 182 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_aid_list"/> 183 </service> 184 <service android:name="com.android.nfc.service.PaymentService1" android:exported="true" 185 android:permission="android.permission.BIND_NFC_SERVICE" 186 android:enabled="false" 187 android:process="com.android.nfc.emulator.payment"> 188 <intent-filter> 189 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 190 <category android:name="android.intent.category.DEFAULT"/> 191 </intent-filter> 192 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_aid_list_1"/> 193 </service> 194 <service android:name="com.android.nfc.service.PaymentServiceNoIndexReset" android:exported="true" 195 android:permission="android.permission.BIND_NFC_SERVICE" 196 android:enabled="false"> 197 <intent-filter> 198 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 199 <category android:name="android.intent.category.DEFAULT"/> 200 </intent-filter> 201 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_aid_list_1"/> 202 </service> 203 <service android:name="com.android.nfc.service.OffHostService" android:exported="true" 204 android:permission="android.permission.BIND_NFC_SERVICE" 205 android:enabled="false"> 206 <intent-filter> 207 <action android:name="android.nfc.cardemulation.action.OFF_HOST_APDU_SERVICE"/> 208 <category android:name="android.intent.category.DEFAULT"/> 209 </intent-filter> 210 <meta-data android:name="android.nfc.cardemulation.off_host_apdu_service" android:resource="@xml/offhost_aid_list"/> 211 </service> 212 <service android:name="com.android.nfc.service.PaymentService2" android:exported="true" 213 android:permission="android.permission.BIND_NFC_SERVICE" 214 android:enabled="false"> 215 <intent-filter> 216 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 217 <category android:name="android.intent.category.DEFAULT"/> 218 </intent-filter> 219 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_aid_list_2"/> 220 </service> 221 <service android:name="com.android.nfc.service.PaymentServiceDynamicAids" android:exported="true" 222 android:permission="android.permission.BIND_NFC_SERVICE" 223 android:enabled="false"> 224 <intent-filter> 225 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 226 <category android:name="android.intent.category.DEFAULT"/> 227 </intent-filter> 228 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_aid_list_1"/> 229 </service> 230 <service android:name="com.android.nfc.service.PrefixPaymentService1" android:exported="true" 231 android:permission="android.permission.BIND_NFC_SERVICE" 232 android:enabled="false"> 233 <intent-filter> 234 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 235 <category android:name="android.intent.category.DEFAULT"/> 236 </intent-filter> 237 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_prefix_aid_list"/> 238 </service> 239 <service android:name="com.android.nfc.service.PrefixPaymentService2" android:exported="true" 240 android:permission="android.permission.BIND_NFC_SERVICE" 241 android:enabled="false"> 242 <intent-filter> 243 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 244 <category android:name="android.intent.category.DEFAULT"/> 245 </intent-filter> 246 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_prefix_aid_list_2"/> 247 </service> 248 <service android:name="com.android.nfc.service.PrefixTransportService1" android:exported="true" 249 android:permission="android.permission.BIND_NFC_SERVICE" 250 android:enabled="false"> 251 <intent-filter> 252 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 253 <category android:name="android.intent.category.DEFAULT"/> 254 </intent-filter> 255 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/transport_prefix_aid_list_1"/> 256 </service> 257 <service android:name="com.android.nfc.service.PrefixTransportService2" android:exported="true" 258 android:permission="android.permission.BIND_NFC_SERVICE" 259 android:enabled="false"> 260 <intent-filter> 261 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 262 <category android:name="android.intent.category.DEFAULT"/> 263 </intent-filter> 264 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/transport_prefix_aid_list_2"/> 265 </service> 266 <service android:name="com.android.nfc.service.PrefixAccessService" android:exported="true" 267 android:permission="android.permission.BIND_NFC_SERVICE" 268 android:enabled="false"> 269 <intent-filter> 270 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 271 <category android:name="android.intent.category.DEFAULT"/> 272 </intent-filter> 273 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_prefix_aid_list"/> 274 </service> 275 <service android:name="com.android.nfc.service.ThroughputService" android:exported="true" 276 android:permission="android.permission.BIND_NFC_SERVICE" 277 android:enabled="false"> 278 <intent-filter> 279 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 280 <category android:name="android.intent.category.DEFAULT"/> 281 </intent-filter> 282 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/throughput_aid_list"/> 283 </service> 284 <service android:name="com.android.nfc.service.LargeNumAidsService" android:exported="true" 285 android:permission="android.permission.BIND_NFC_SERVICE" 286 android:enabled="false"> 287 <intent-filter> 288 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 289 <category android:name="android.intent.category.DEFAULT"/> 290 </intent-filter> 291 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_aid_list_1"/> 292 </service> 293 <service android:name="com.android.nfc.service.ScreenOffPaymentService" android:exported="true" 294 android:permission="android.permission.BIND_NFC_SERVICE" 295 android:enabled="false"> 296 <intent-filter> 297 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 298 <category android:name="android.intent.category.DEFAULT"/> 299 </intent-filter> 300 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/screen_off_payment_aid_list"/> 301 </service> 302 <service android:name="com.android.nfc.service.ScreenOnOnlyOffHostService" android:exported="true" 303 android:permission="android.permission.BIND_NFC_SERVICE" 304 android:enabled="false"> 305 <intent-filter> 306 <action android:name="android.nfc.cardemulation.action.OFF_HOST_APDU_SERVICE"/> 307 <category android:name="android.intent.category.DEFAULT"/> 308 </intent-filter> 309 <meta-data android:name="android.nfc.cardemulation.off_host_apdu_service" android:resource="@xml/screen_on_only_offhost_aid_list"/> 310 </service> 311 </application> 312 <instrumentation android:name="com.google.android.mobly.snippet.SnippetRunner" 313 android:targetPackage="com.android.nfc.emulator" 314 android:label="NFC Multi Device Emulator Snippet" /> 315</manifest> 316