xref: /aosp_15_r20/cts/hostsidetests/appsecurity/test-apps/PermissionDeclareApp/AndroidManifest.xml (revision b7c941bb3fa97aba169d73cee0bed2de8ac964bf)
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