1*b7c941bbSAndroid Build Coastguard Worker<?xml version="1.0" encoding="utf-8"?> 2*b7c941bbSAndroid Build Coastguard Worker<!-- Copyright (C) 2009 The Android Open Source Project 3*b7c941bbSAndroid Build Coastguard Worker 4*b7c941bbSAndroid Build Coastguard Worker Licensed under the Apache License, Version 2.0 (the "License"); 5*b7c941bbSAndroid Build Coastguard Worker you may not use this file except in compliance with the License. 6*b7c941bbSAndroid Build Coastguard Worker You may obtain a copy of the License at 7*b7c941bbSAndroid Build Coastguard Worker 8*b7c941bbSAndroid Build Coastguard Worker http://www.apache.org/licenses/LICENSE-2.0 9*b7c941bbSAndroid Build Coastguard Worker 10*b7c941bbSAndroid Build Coastguard Worker Unless required by applicable law or agreed to in writing, software 11*b7c941bbSAndroid Build Coastguard Worker distributed under the License is distributed on an "AS IS" BASIS, 12*b7c941bbSAndroid Build Coastguard Worker WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*b7c941bbSAndroid Build Coastguard Worker See the License for the specific language governing permissions and 14*b7c941bbSAndroid Build Coastguard Worker limitations under the License. 15*b7c941bbSAndroid Build Coastguard Worker--> 16*b7c941bbSAndroid Build Coastguard Worker<manifest xmlns:android="http://schemas.android.com/apk/res/android" 17*b7c941bbSAndroid Build Coastguard Worker package="com.android.cts.permissiondeclareapp"> 18*b7c941bbSAndroid Build Coastguard Worker 19*b7c941bbSAndroid Build Coastguard Worker <!-- 20*b7c941bbSAndroid Build Coastguard Worker An app that declares a permission that requires a matching signature to 21*b7c941bbSAndroid Build Coastguard Worker access. 22*b7c941bbSAndroid Build Coastguard Worker --> 23*b7c941bbSAndroid Build Coastguard Worker <permission android:name="com.android.cts.permissionWithSignature" 24*b7c941bbSAndroid Build Coastguard Worker android:protectionLevel="signature" /> 25*b7c941bbSAndroid Build Coastguard Worker <uses-permission android:name="com.android.cts.permissionWithSignature" /> 26*b7c941bbSAndroid Build Coastguard Worker <!-- To enable the app to start activities from the background. --> 27*b7c941bbSAndroid Build Coastguard Worker <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 28*b7c941bbSAndroid Build Coastguard Worker 29*b7c941bbSAndroid Build Coastguard Worker <!-- A permission this app will not hold. --> 30*b7c941bbSAndroid Build Coastguard Worker <permission android:name="com.android.cts.permissionNotUsedWithSignature" 31*b7c941bbSAndroid Build Coastguard Worker android:protectionLevel="signature" /> 32*b7c941bbSAndroid Build Coastguard Worker 33*b7c941bbSAndroid Build Coastguard Worker <permission android:name="com.android.cts.permissionNormal" /> 34*b7c941bbSAndroid Build Coastguard Worker 35*b7c941bbSAndroid Build Coastguard Worker <!-- To set package installer --> 36*b7c941bbSAndroid Build Coastguard Worker <uses-permission android:name="android.permission.INSTALL_PACKAGES" /> 37*b7c941bbSAndroid Build Coastguard Worker 38*b7c941bbSAndroid Build Coastguard Worker <instrumentation 39*b7c941bbSAndroid Build Coastguard Worker android:name="androidx.test.runner.AndroidJUnitRunner" 40*b7c941bbSAndroid Build Coastguard Worker android:targetPackage="com.android.cts.permissiondeclareapp" 41*b7c941bbSAndroid Build Coastguard Worker /> 42*b7c941bbSAndroid Build Coastguard Worker 43*b7c941bbSAndroid Build Coastguard Worker <application> 44*b7c941bbSAndroid Build Coastguard Worker <provider android:name="UtilsProvider" 45*b7c941bbSAndroid Build Coastguard Worker android:authorities="com.android.cts.permissiondeclareapp" 46*b7c941bbSAndroid Build Coastguard Worker android:exported="true" /> 47*b7c941bbSAndroid Build Coastguard Worker 48*b7c941bbSAndroid Build Coastguard Worker <!-- Need a way for another app to try to access the permission. So create a content 49*b7c941bbSAndroid Build Coastguard Worker provider which is enforced by the permission --> 50*b7c941bbSAndroid Build Coastguard Worker <provider android:name="PermissionContentProvider" 51*b7c941bbSAndroid Build Coastguard Worker android:authorities="ctspermissionwithsignature" 52*b7c941bbSAndroid Build Coastguard Worker android:readPermission="com.android.cts.permissionWithSignature" 53*b7c941bbSAndroid Build Coastguard Worker android:writePermission="com.android.cts.permissionWithSignature" 54*b7c941bbSAndroid Build Coastguard Worker android:exported="true"> 55*b7c941bbSAndroid Build Coastguard Worker </provider> 56*b7c941bbSAndroid Build Coastguard Worker 57*b7c941bbSAndroid Build Coastguard Worker <!-- Need a way for another app to try to access the permission, but will 58*b7c941bbSAndroid Build Coastguard Worker grant uri access. --> 59*b7c941bbSAndroid Build Coastguard Worker <provider android:name="PermissionContentProviderGranting" 60*b7c941bbSAndroid Build Coastguard Worker android:authorities="ctspermissionwithsignaturegranting" 61*b7c941bbSAndroid Build Coastguard Worker android:readPermission="com.android.cts.permissionWithSignature" 62*b7c941bbSAndroid Build Coastguard Worker android:writePermission="com.android.cts.permissionWithSignature" 63*b7c941bbSAndroid Build Coastguard Worker android:exported="true"> 64*b7c941bbSAndroid Build Coastguard Worker <grant-uri-permission android:pathPattern="/foo.*" /> 65*b7c941bbSAndroid Build Coastguard Worker <grant-uri-permission android:pathPattern="/yes.*" /> 66*b7c941bbSAndroid Build Coastguard Worker </provider> 67*b7c941bbSAndroid Build Coastguard Worker 68*b7c941bbSAndroid Build Coastguard Worker <!-- Nobody else should get access to this --> 69*b7c941bbSAndroid Build Coastguard Worker <provider android:name="PrivateContentProvider" 70*b7c941bbSAndroid Build Coastguard Worker android:authorities="ctsprivateprovider" 71*b7c941bbSAndroid Build Coastguard Worker android:exported="false"> 72*b7c941bbSAndroid Build Coastguard Worker </provider> 73*b7c941bbSAndroid Build Coastguard Worker 74*b7c941bbSAndroid Build Coastguard Worker <!-- Nobody else should get access to this, but we will grant uri access --> 75*b7c941bbSAndroid Build Coastguard Worker <provider android:name="PrivateContentProviderGranting" 76*b7c941bbSAndroid Build Coastguard Worker android:authorities="ctsprivateprovidergranting" 77*b7c941bbSAndroid Build Coastguard Worker android:exported="false"> 78*b7c941bbSAndroid Build Coastguard Worker <grant-uri-permission android:pathPattern="/foo.*" /> 79*b7c941bbSAndroid Build Coastguard Worker <grant-uri-permission android:pathPattern="/yes.*" /> 80*b7c941bbSAndroid Build Coastguard Worker </provider> 81*b7c941bbSAndroid Build Coastguard Worker 82*b7c941bbSAndroid Build Coastguard Worker <!-- An ambiguous content provider, where "exported" was not specified. 83*b7c941bbSAndroid Build Coastguard Worker Nobody should get access to this. --> 84*b7c941bbSAndroid Build Coastguard Worker <provider android:name="AmbiguousContentProvider" 85*b7c941bbSAndroid Build Coastguard Worker android:authorities="ctsambiguousprovider"> 86*b7c941bbSAndroid Build Coastguard Worker </provider> 87*b7c941bbSAndroid Build Coastguard Worker 88*b7c941bbSAndroid Build Coastguard Worker <!-- Target for tests about how path permissions interact with granting 89*b7c941bbSAndroid Build Coastguard Worker URI permissions. --> 90*b7c941bbSAndroid Build Coastguard Worker <provider android:name="PermissionContentProviderPath" 91*b7c941bbSAndroid Build Coastguard Worker android:authorities="ctspermissionwithsignaturepath" 92*b7c941bbSAndroid Build Coastguard Worker android:readPermission="com.android.cts.permissionNotUsedWithSignature" 93*b7c941bbSAndroid Build Coastguard Worker android:writePermission="com.android.cts.permissionNotUsedWithSignature" 94*b7c941bbSAndroid Build Coastguard Worker android:exported="true"> 95*b7c941bbSAndroid Build Coastguard Worker <path-permission 96*b7c941bbSAndroid Build Coastguard Worker android:pathPrefix="/foo" 97*b7c941bbSAndroid Build Coastguard Worker android:readPermission="com.android.cts.permissionWithSignature" 98*b7c941bbSAndroid Build Coastguard Worker android:writePermission="com.android.cts.permissionWithSignature" /> 99*b7c941bbSAndroid Build Coastguard Worker <path-permission 100*b7c941bbSAndroid Build Coastguard Worker android:pathPrefix="/yes" 101*b7c941bbSAndroid Build Coastguard Worker android:readPermission="com.android.cts.permissionWithSignature" 102*b7c941bbSAndroid Build Coastguard Worker android:writePermission="com.android.cts.permissionWithSignature" /> 103*b7c941bbSAndroid Build Coastguard Worker <grant-uri-permission android:pathPattern="/foo.*" /> 104*b7c941bbSAndroid Build Coastguard Worker <grant-uri-permission android:pathPattern="/yes.*" /> 105*b7c941bbSAndroid Build Coastguard Worker </provider> 106*b7c941bbSAndroid Build Coastguard Worker 107*b7c941bbSAndroid Build Coastguard Worker <!-- Target for tests that verify path permissions can restrict access 108*b7c941bbSAndroid Build Coastguard Worker when no default top-level permission. --> 109*b7c941bbSAndroid Build Coastguard Worker <provider android:name="PermissionContentProviderPathRestricting" 110*b7c941bbSAndroid Build Coastguard Worker android:authorities="ctspermissionwithsignaturepathrestricting" 111*b7c941bbSAndroid Build Coastguard Worker android:exported="true"> 112*b7c941bbSAndroid Build Coastguard Worker <!-- Require signature permission to get into path. --> 113*b7c941bbSAndroid Build Coastguard Worker <path-permission 114*b7c941bbSAndroid Build Coastguard Worker android:pathPrefix="/foo" 115*b7c941bbSAndroid Build Coastguard Worker android:readPermission="com.android.cts.permissionWithSignature" 116*b7c941bbSAndroid Build Coastguard Worker android:writePermission="com.android.cts.permissionWithSignature" /> 117*b7c941bbSAndroid Build Coastguard Worker <!-- Allow access to a specific path inside. --> 118*b7c941bbSAndroid Build Coastguard Worker <path-permission 119*b7c941bbSAndroid Build Coastguard Worker android:pathPrefix="/foo/bar" 120*b7c941bbSAndroid Build Coastguard Worker android:readPermission="com.android.cts.permissionNormal" 121*b7c941bbSAndroid Build Coastguard Worker android:writePermission="com.android.cts.permissionNormal" /> 122*b7c941bbSAndroid Build Coastguard Worker </provider> 123*b7c941bbSAndroid Build Coastguard Worker 124*b7c941bbSAndroid Build Coastguard Worker <activity android:name=".SendResultActivity" android:exported="true" /> 125*b7c941bbSAndroid Build Coastguard Worker </application> 126*b7c941bbSAndroid Build Coastguard Worker</manifest> 127