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=".PollingLoopEmulatorActivity" 40 android:label="Polling Loop Emulator" 41 android:exported="true"> 42 </activity> 43 <activity 44 android:name=".TwoPollingFrameEmulatorActivity" 45 android:label="Two Polling Frame Emulator" 46 android:exported="true"> 47 </activity> 48 <activity 49 android:name=".SingleNonPaymentEmulatorActivity" 50 android:label="Single Non Payment Emulator" 51 android:exported="true"> 52 </activity> 53 <activity 54 android:name=".SinglePaymentEmulatorActivity" 55 android:label="Single Payment Emulator" 56 android:exported="true"> 57 </activity> 58 <activity 59 android:name=".OffHostEmulatorActivity" 60 android:label="Off Host Emulator" 61 android:exported="true"> 62 </activity> 63 <activity 64 android:name=".OnAndOffHostEmulatorActivity" 65 android:label="On and Off Host Emulator" 66 android:exported="true"> 67 </activity> 68 <activity 69 android:name=".DualPaymentEmulatorActivity" 70 android:label="Dual Payment Emulator" 71 android:exported="true"> 72 </activity> 73 <activity 74 android:name=".ForegroundPaymentEmulatorActivity" 75 android:label="Foreground Payment Emulator" 76 android:exported="true"> 77 </activity> 78 <activity 79 android:name=".DynamicAidEmulatorActivity" 80 android:label="Dynamic Payment AID emulator" 81 android:exported="true"> 82 </activity> 83 <activity 84 android:name=".PrefixPaymentEmulatorActivity" 85 android:label="Prefix Payment emulator" 86 android:exported="true"> 87 </activity> 88 <activity 89 android:name=".PrefixPaymentEmulator2Activity" 90 android:label="Prefix Payment 2 emulator" 91 android:exported="true"> 92 </activity> 93 <activity 94 android:name=".DualNonPaymentEmulatorActivity" 95 android:label="Dual Non Payment emulator" 96 android:exported="true"> 97 </activity> 98 <activity 99 android:name=".DualNonPaymentPrefixEmulatorActivity" 100 android:label="Dual Non-Payment Prefix emulator" 101 android:exported="true"> 102 </activity> 103 <activity 104 android:name=".ForegroundNonPaymentEmulatorActivity" 105 android:label="Foreground Non Payment emulator" 106 android:exported="true"> 107 </activity> 108 <activity 109 android:name=".ThroughputEmulatorActivity" 110 android:label="Throughput emulator" 111 android:exported="true"> 112 </activity> 113 <activity 114 android:name=".TapTestEmulatorActivity" 115 android:label="Tap Test emulator" 116 android:exported="true"> 117 </activity> 118 <activity 119 android:name=".LargeNumAidsEmulatorActivity" 120 android:label="Large Num Aids emulator" 121 android:exported="true"> 122 </activity> 123 <activity 124 android:name=".ScreenOffPaymentEmulatorActivity" 125 android:label="Screen Off Payment emulator" 126 android:exported="true"> 127 </activity> 128 <activity 129 android:name=".ProtocolParamsEmulatorActivity" 130 android:label="Protocol Params emulator" 131 android:exported="true"> 132 </activity> 133 <activity android:name=".ConflictingNonPaymentEmulatorActivity" 134 android:label="Conflicting Non-Payment Emulator" 135 android:exported="true"> 136 </activity> 137 <activity android:name=".ConflictingNonPaymentPrefixEmulatorActivity" 138 android:label="Conflicting Non-Payment Prefix Emulator" 139 android:exported="true"> 140 </activity> 141 <activity android:name=".ScreenOnOnlyOffHostEmulatorActivity" 142 android:label="Screen-On Off Host Emulator" 143 android:exported="true"> 144 </activity> 145 <service android:name="com.android.nfc.service.PollingLoopService" android:exported="true" 146 android:permission="android.permission.BIND_NFC_SERVICE" 147 android:enabled="true"> 148 <intent-filter> 149 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 150 <category android:name="android.intent.category.DEFAULT"/> 151 </intent-filter> 152 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_aid_list"/> 153 </service> 154 <service android:name="com.android.nfc.service.PollingLoopService2" android:exported="true" 155 android:permission="android.permission.BIND_NFC_SERVICE" 156 android:enabled="true"> 157 <intent-filter> 158 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 159 <category android:name="android.intent.category.DEFAULT"/> 160 </intent-filter> 161 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_aid_list_2"/> 162 </service> 163 <service android:name="com.android.nfc.service.TransportService1" android:exported="true" 164 android:permission="android.permission.BIND_NFC_SERVICE" 165 android:enabled="false"> 166 <intent-filter> 167 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 168 <category android:name="android.intent.category.DEFAULT"/> 169 </intent-filter> 170 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/transport_aid_list_1"/> 171 </service> 172 <service android:name="com.android.nfc.service.TransportService2" android:exported="true" 173 android:permission="android.permission.BIND_NFC_SERVICE" 174 android:enabled="false"> 175 <intent-filter> 176 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 177 <category android:name="android.intent.category.DEFAULT"/> 178 </intent-filter> 179 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/transport_aid_list_2"/> 180 </service> 181 <service android:name="com.android.nfc.service.AccessService" android:exported="true" 182 android:permission="android.permission.BIND_NFC_SERVICE" 183 android:enabled="false"> 184 <intent-filter> 185 <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/> 186 <category android:name="android.intent.category.DEFAULT"/> 187 </intent-filter> 188 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/access_aid_list"/> 189 </service> 190 <service android:name="com.android.nfc.service.PaymentService1" android:exported="true" 191 android:permission="android.permission.BIND_NFC_SERVICE" 192 android:enabled="false"> 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.OffHostService" 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.OFF_HOST_APDU_SERVICE"/> 204 <category android:name="android.intent.category.DEFAULT"/> 205 </intent-filter> 206 <meta-data android:name="android.nfc.cardemulation.off_host_apdu_service" android:resource="@xml/offhost_aid_list"/> 207 </service> 208 <service android:name="com.android.nfc.service.PaymentService2" 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.HOST_APDU_SERVICE"/> 213 <category android:name="android.intent.category.DEFAULT"/> 214 </intent-filter> 215 <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/payment_aid_list_2"/> 216 </service> 217 <service android:name="com.android.nfc.service.PaymentServiceDynamicAids" 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_1"/> 225 </service> 226 <service android:name="com.android.nfc.service.PrefixPaymentService1" 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_prefix_aid_list"/> 234 </service> 235 <service android:name="com.android.nfc.service.PrefixPaymentService2" 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_2"/> 243 </service> 244 <service android:name="com.android.nfc.service.PrefixTransportService1" 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/transport_prefix_aid_list_1"/> 252 </service> 253 <service android:name="com.android.nfc.service.PrefixTransportService2" 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_2"/> 261 </service> 262 <service android:name="com.android.nfc.service.PrefixAccessService" 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/access_prefix_aid_list"/> 270 </service> 271 <service android:name="com.android.nfc.service.ThroughputService" 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/throughput_aid_list"/> 279 </service> 280 <service android:name="com.android.nfc.service.LargeNumAidsService" 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/payment_aid_list_1"/> 288 </service> 289 <service android:name="com.android.nfc.service.ScreenOffPaymentService" 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/screen_off_payment_aid_list"/> 297 </service> 298 <service android:name="com.android.nfc.service.ScreenOnOnlyOffHostService" 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.OFF_HOST_APDU_SERVICE"/> 303 <category android:name="android.intent.category.DEFAULT"/> 304 </intent-filter> 305 <meta-data android:name="android.nfc.cardemulation.off_host_apdu_service" android:resource="@xml/screen_on_only_offhost_aid_list"/> 306 </service> 307 </application> 308 <instrumentation android:name="com.google.android.mobly.snippet.SnippetRunner" 309 android:targetPackage="com.android.nfc.emulator" 310 android:label="NFC Multi Device Emulator Snippet" /> 311</manifest> 312