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