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<manifest xmlns:android="http://schemas.android.com/apk/res/android" 19 package="android.autofillservice.cts" 20 android:targetSandboxVersion="2"> 21 22 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 23 <uses-permission android:name="android.permission.INJECT_EVENTS"/> 24 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 25 <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/> 26 <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/> 27 <!-- Some tests use sticky broadcasts to ensure that inline suggestion extras 28 are delivered to the IME even when its process is not running persistently. 29 This can happen when the IME is unbound as a result of enabling 30 the config_preventImeStartupUnlessTextEditor option. --> 31 <uses-permission android:name="android.permission.BROADCAST_STICKY"/> 32 <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS"/> 33 <uses-permission android:name="android.permission.PROVIDE_OWN_AUTOFILL_SUGGESTIONS"/> 34 <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/> 35 <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/> 36 <uses-permission android:name="android.permission.LIST_ENABLED_CREDENTIAL_PROVIDERS"/> 37 <uses-permission android:name="android.permission.CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS"/> 38 39 <queries> 40 <package android:name="com.android.cts.mockime" /> 41 </queries> 42 43 <application> 44 45 <uses-library android:name="android.test.runner"/> 46 47 <activity android:name=".activities.LoginActivity" 48 android:exported="true" 49 android:theme="@style/OptOutEdgeToEdge"> 50 <intent-filter> 51 <!-- This intent filter is not really needed by CTS, but it makes easier to launch 52 this app during CTS development... --> 53 <action android:name="android.intent.action.MAIN"/> 54 <category android:name="android.intent.category.LAUNCHER"/> 55 </intent-filter> 56 </activity> 57 <activity android:name=".activities.PreFilledLoginActivity"/> 58 <activity android:name=".activities.LoginWithCustomHighlightActivity" 59 android:theme="@style/MyAutofilledHighlight"/> 60 <activity android:name=".activities.LoginWithStringsActivity"/> 61 <activity android:name=".activities.LoginNotImportantForAutofillActivity"/> 62 <activity android:name=".activities.LoginNotImportantUsernameImportantPasswordActivity"/> 63 <activity android:name=".activities.MultilineLoginActivity"/> 64 <activity android:name=".activities.ImeOptionActivity"/> 65 <activity android:name=".activities.LoginNotImportantForAutofillWrappedActivityContextActivity"/> 66 <activity android:name=".activities.LoginNotImportantForAutofillWrappedApplicationContextActivity"/> 67 <activity android:name=".activities.LoginImportantForCredentialManagerActivity"/> 68 <activity android:name=".activities.LoginMixedImportantForCredentialManagerActivity"/> 69 <activity android:name=".activities.LoginCredentialMixedActivity" 70 android:theme="@style/OptOutEdgeToEdge"/> 71 <activity android:name=".activities.WelcomeActivity" 72 android:taskAffinity=".WelcomeActivity"/> 73 <activity android:name=".activities.ViewActionActivity" 74 android:taskAffinity=".ViewActionActivity" 75 android:launchMode="singleTask" 76 android:exported="true"> 77 <intent-filter> 78 <action android:name="android.intent.action.VIEW"/> 79 <data android:scheme="autofillcts"/> 80 <category android:name="android.intent.category.DEFAULT"/> 81 </intent-filter> 82 </activity> 83 <activity android:name=".activities.SecondActivity" 84 android:taskAffinity=".SecondActivity"/> 85 <activity android:name=".activities.ViewAttributesTestActivity"/> 86 <activity android:name=".activities.AuthenticationActivity"/> 87 <activity android:name=".activities.ManualAuthenticationActivity" 88 android:theme="@style/OptOutEdgeToEdge"/> 89 <activity android:name=".activities.CheckoutActivity" 90 android:taskAffinity=".CheckoutActivity"/> 91 <activity android:name=".activities.InitializedCheckoutActivity"/> 92 <activity android:name=".activities.DatePickerCalendarActivity"/> 93 <activity android:name=".activities.DatePickerSpinnerActivity"/> 94 <activity android:name=".activities.TimePickerClockActivity"/> 95 <activity android:name=".activities.TimePickerSpinnerActivity"/> 96 <activity android:name=".activities.FatActivity"/> 97 <activity android:name=".activities.VirtualContainerActivity" 98 android:exported="true"> 99 <intent-filter> 100 <!-- This intent filter is not really needed by CTS, but it makes easier to launch 101 this app during CTS development... --> 102 <action android:name="android.intent.action.MAIN"/> 103 <category android:name="android.intent.category.LAUNCHER"/> 104 </intent-filter> 105 </activity> 106 <activity android:name=".activities.OptionalSaveActivity"/> 107 <activity android:name=".activities.GridActivity"/> 108 <activity android:name=".activities.EmptyActivity"/> 109 <activity android:name=".activities.DummyActivity"/> 110 <activity android:name=".activities.OutOfProcessLoginActivity" 111 android:process="android.autofillservice.cts.outside"/> 112 <activity android:name=".activities.FragmentContainerActivity"/> 113 <activity android:name=".activities.DuplicateIdActivity" 114 android:theme="@android:style/Theme.NoTitleBar"/> 115 <activity android:name=".activities.SimpleSaveActivity" 116 android:theme="@style/OptOutEdgeToEdge"/> 117 <activity android:name=".activities.PreSimpleSaveActivity" 118 android:exported="true"> 119 <intent-filter> 120 <!-- This intent filter is not really needed by CTS, but it makes easier to launch 121 this app during CTS development... --> 122 <action android:name="android.intent.action.MAIN"/> 123 <category android:name="android.intent.category.LAUNCHER"/> 124 </intent-filter> 125 </activity> 126 <activity android:name=".activities.WebViewActivity"/> 127 <activity android:name=".activities.WebViewMultiScreenLoginActivity"/> 128 <activity android:name=".activities.TrampolineWelcomeActivity"/> 129 <activity android:name=".activities.AttachedContextActivity"/> 130 <activity android:name=".activities.DialogLauncherActivity" 131 android:exported="true"> 132 <intent-filter> 133 <!-- This intent filter is not really needed by CTS, but it makes easier to launch 134 this app during CTS development... --> 135 <action android:name="android.intent.action.MAIN"/> 136 <category android:name="android.intent.category.LAUNCHER"/> 137 </intent-filter> 138 </activity> 139 <activity android:name=".activities.MultiWindowLoginActivity" 140 android:resizeableActivity="true" 141 android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout"/> 142 <activity android:name=".activities.MultiWindowEmptyActivity" 143 android:resizeableActivity="true" 144 android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout" 145 android:taskAffinity="nobody.but.EmptyActivity" 146 android:exported="true"/> 147 148 <activity android:name=".activities.TrampolineForResultActivity"/> 149 <activity android:name=".activities.OnCreateServiceStatusVerifierActivity"/> 150 <activity android:name=".activities.UsernameOnlyActivity" 151 android:theme="@style/OptOutEdgeToEdge" 152 android:exported="true"> 153 <intent-filter> 154 <!-- This intent filter is not really needed by CTS, but it makes easier to launch 155 this app during CTS development... --> 156 <action android:name="android.intent.action.MAIN"/> 157 <category android:name="android.intent.category.LAUNCHER"/> 158 </intent-filter> 159 </activity> 160 <activity android:name=".activities.PasswordOnlyActivity" 161 android:exported="true"> 162 <intent-filter> 163 <!-- This intent filter is not really needed by CTS, but it makes easier to launch 164 this app during CTS development... --> 165 <action android:name="android.intent.action.MAIN"/> 166 <category android:name="android.intent.category.LAUNCHER"/> 167 </intent-filter> 168 </activity> 169 <activity android:name=".activities.AugmentedLoginActivity" 170 android:exported="true"> 171 <intent-filter> 172 <!-- This intent filter is not really needed by CTS, but it makes easier to launch 173 this app during CTS development... --> 174 <action android:name="android.intent.action.MAIN"/> 175 <category android:name="android.intent.category.LAUNCHER"/> 176 </intent-filter> 177 </activity> 178 <activity android:name=".activities.FadeInActivity"/> 179 <activity android:name=".activities.MultipleStepsSignInActivity"/> 180 <activity android:name=".activities.FieldsNoPasswordActivity"/> 181 <activity android:name=".activities.AugmentedAuthActivity" /> 182 <activity android:name=".activities.SimpleAfterLoginActivity"/> 183 <activity android:name=".activities.SimpleBeforeLoginActivity"/> 184 <activity android:name=".activities.NonAutofillableActivity"/> 185 <activity 186 android:name=".credman.CtsGetPasswordActivity" 187 android:exported="true" 188 android:enabled="true"> 189 <intent-filter> 190 <action android:name="android.autofillservice.cts.credman.GET_PASSWORD" /> 191 <category android:name="android.intent.category.DEFAULT" /> 192 </intent-filter> 193 </activity> 194 195 <receiver android:name=".testcore.SelfDestructReceiver" 196 android:exported="true" 197 android:process="android.autofillservice.cts.outside"/> 198 <receiver android:name=".testcore.OutOfProcessLoginActivityFinisherReceiver" 199 android:exported="true" 200 android:process="android.autofillservice.cts.outside"/> 201 202 <service android:name=".testcore.InstrumentedAutoFillService" 203 android:label="InstrumentedAutoFillService" 204 android:permission="android.permission.BIND_AUTOFILL_SERVICE" 205 android:exported="true"> 206 <intent-filter> 207 <action android:name="android.service.autofill.AutofillService"/> 208 </intent-filter> 209 </service> 210 <service android:name=".testcore.InstrumentedAutoFillServiceCompatMode" 211 android:label="testcore.InstrumentedAutoFillServiceCompatMode" 212 android:permission="android.permission.BIND_AUTOFILL_SERVICE" 213 android:exported="true"> 214 <intent-filter> 215 <action android:name="android.service.autofill.AutofillService"/> 216 </intent-filter> 217 <meta-data android:name="android.autofill" 218 android:resource="@xml/autofill_service_compat_mode_config"> 219 </meta-data> 220 </service> 221 <service android:name=".testcore.InstrumentedAutoFillServiceInlineEnabled" 222 android:label="InstrumentedAutoFillServiceInlineEnabled" 223 android:permission="android.permission.BIND_AUTOFILL_SERVICE" 224 android:exported="true"> 225 <intent-filter> 226 <action android:name="android.service.autofill.AutofillService"/> 227 </intent-filter> 228 <meta-data android:name="android.autofill" 229 android:resource="@xml/autofill_service_inline_enabled"> 230 </meta-data> 231 </service> 232 <service android:name=".testcore.NoOpAutofillService" 233 android:label="NoOpAutofillService" 234 android:permission="android.permission.BIND_AUTOFILL_SERVICE" 235 android:exported="true"> 236 <intent-filter> 237 <action android:name="android.service.autofill.AutofillService"/> 238 </intent-filter> 239 </service> 240 <!-- BadAutofillService does not declare the proper permission --> 241 <service android:name=".testcore.BadAutofillService" 242 android:label="testcore.BadAutofillService" 243 android:exported="true"> 244 <intent-filter> 245 <action android:name="android.service.autofill.AutofillService"/> 246 </intent-filter> 247 </service> 248 249 <service android:name=".testcore.CtsAugmentedAutofillService" 250 android:label="CtsAugmentedAutofillService" 251 android:permission="android.permission.BIND_AUGMENTED_AUTOFILL_SERVICE" 252 android:exported="true"> 253 <intent-filter> 254 <action android:name="android.service.autofill.AutofillService"/> 255 </intent-filter> 256 </service> 257 <service android:name=".testcore.InstrumentedFieldClassificationService" 258 android:label="InstrumentedFieldClassificationService" 259 android:permission="android.permission.BIND_FIELD_CLASSIFICATION_SERVICE" 260 android:exported="true"> 261 <intent-filter> 262 <action android:name="android.service.assist.classification.FieldClassificationService"/> 263 </intent-filter> 264 </service> 265 <service 266 android:exported="true" 267 android:name="android.autofillservice.cts.credman.CtsCredentialProviderService" 268 android:label="Test Provider Service" 269 android:permission="android.permission.BIND_CREDENTIAL_PROVIDER_SERVICE"> 270 <intent-filter> 271 <action android:name="android.service.credentials.CredentialProviderService"/> 272 </intent-filter> 273 <meta-data 274 android:name="android.credentials.provider" 275 android:resource="@xml/provider"/> 276 </service> 277 278 </application> 279 280 <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" 281 android:label="CTS tests for the AutoFill Framework APIs." 282 android:targetPackage="android.autofillservice.cts"> 283 </instrumentation> 284 285</manifest> 286