1<?xml version="1.0" encoding="utf-8"?> 2<!-- 3 ~ Copyright (C) 2015 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 xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" 20 package="com.android.traceur" 21 android:versionCode="2" 22 android:versionName="1.0"> 23 <uses-sdk android:minSdkVersion="26" 24 android:targetSdkVersion="34"/> 25 26 <!--- Used to query for Betterbug. --> 27 <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/> 28 29 <!--- Used to save ViewCapture data via LauncherAppsService. --> 30 <uses-permission android:name="android.permission.READ_FRAME_BUFFER"/> 31 32 <!-- Used to trigger the trace start/stop service. --> 33 <uses-permission android:name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"/> 34 35 <!-- Used for receiving BUGREPORT_STARTED intents. --> 36 <uses-permission android:name="android.permission.DUMP"/> 37 38 <!-- Used to initialize tracing on boot. --> 39 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 40 41 <!-- Used to prevent non-system windows from displaying over Traceur. --> 42 <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS"/> 43 44 <!-- Used for adding the Quick Settings tile to the status bar. --> 45 <uses-permission android:name="android.permission.STATUS_BAR"/> 46 47 <!-- Used for brief periods where the trace service is foregrounded. --> 48 <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/> 49 <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE"/> 50 51 <!-- Used to post file-sending notification. --> 52 <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> 53 54 <!-- Used to check that the current user is an admin user. --> 55 <uses-permission android:name="android.permission.QUERY_USERS" /> 56 57 <!-- Used to control IME Winscope tracing (not yet migrated to perfetto). --> 58 <uses-permission android:name="android.permission.CONTROL_UI_TRACING" /> 59 60 <!-- Used to control view capture Winscope tracing (not yet migrated to perfetto). --> 61 <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 62 63 <!-- Used to get a list of apps for heap dumps. --> 64 <uses-permission android:name="android.permission.REAL_GET_TASKS" /> 65 66 <!-- Declare Android TV support. --> 67 <uses-feature android:name="android.software.leanback" 68 android:required="false"/> 69 70 <!-- touch screen is not required for TV --> 71 <uses-feature android:name="android.hardware.touchscreen" 72 android:required="false"/> 73 74 <application android:label="@string/system_tracing" 75 android:banner="@drawable/banner" 76 android:icon="@drawable/ic_launcher_settings" 77 android:backupAgent="com.android.traceur.TraceurBackupAgent"> 78 79 <activity android:name=".MainActivity" 80 android:description="@string/record_system_activity" 81 android:label="@string/system_tracing" 82 android:theme="@style/Theme.SubSettingsBase" 83 android:launchMode="singleTop" 84 android:exported="true"> 85 <intent-filter> 86 <action android:name="android.intent.action.MAIN"/> 87 <category android:name="android.intent.category.INFO"/> 88 </intent-filter> 89 <intent-filter> 90 <action android:name="android.service.quicksettings.action.QS_TILE_PREFERENCES"/> 91 </intent-filter> 92 93 <!-- Mark this activity as a dynamic setting in the development category. --> 94 <intent-filter> 95 <action android:name="com.android.settings.action.IA_SETTINGS"/> 96 </intent-filter> 97 <meta-data android:name="com.android.settings.category" 98 android:value="com.android.settings.category.ia.development"/> 99 <meta-data android:name="com.android.settings.summary" 100 android:resource="@string/record_system_activity"/> 101 <meta-data android:name="com.android.settings.order" 102 android:value="10"/> 103 <meta-data android:name="com.android.settings.profile" 104 android:value="primary_profile_only"/> 105 </activity> 106 107 <activity android:name=".MainTvActivity" 108 android:description="@string/record_system_activity" 109 android:label="@string/system_tracing" 110 android:theme="@style/TvTheme" 111 android:launchMode="singleTop" 112 android:exported="true"> 113 <intent-filter> 114 <action android:name="android.intent.action.MAIN"/> 115 <category android:name="android.intent.category.LEANBACK_LAUNCHER"/> 116 <category android:name="android.intent.category.INFO"/> 117 </intent-filter> 118 </activity> 119 120 <activity android:name=".MainWearActivity" 121 android:description="@string/record_system_activity" 122 android:icon="@drawable/bugfood_icon" 123 android:label="@string/system_tracing" 124 android:theme="@style/WearTheme" 125 android:launchMode="singleTask" 126 android:exported="true"> 127 </activity> 128 129 <activity android:name=".UserConsentActivityDialog" 130 android:theme="@android:style/Theme.DeviceDefault.Light.Dialog.Alert" 131 android:finishOnCloseSystemDialogs="true" 132 android:excludeFromRecents="true" 133 android:exported="false"/> 134 135 <receiver android:name=".Receiver" 136 android:permission="android.permission.DUMP" 137 android:exported="true"> 138 <intent-filter android:priority="2147483647"> 139 <action android:name="android.intent.action.BOOT_COMPLETED"/> 140 <action android:name="android.intent.action.USER_FOREGROUND"/> 141 <action android:name="com.android.internal.intent.action.BUGREPORT_STARTED"/> 142 </intent-filter> 143 </receiver> 144 145 <service android:name=".StopTraceService" 146 android:exported="true" 147 android:foregroundServiceType="specialUse"> 148 <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" 149 android:value="Used for ensuring that Traceur isn't killed while starting or stopping traces."/> 150 </service> 151 152 <service android:name=".BindableTraceService" 153 android:permission="android.permission.CONTROL_UI_TRACING" 154 android:exported="true"/> 155 156 <service android:name=".TraceService" 157 android:exported="false" 158 android:foregroundServiceType="specialUse"> 159 <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" 160 android:value="Used for ensuring that Traceur isn't killed while starting or stopping traces."/> 161 </service> 162 163 <service android:name=".TracingQsService" 164 android:enabled="false" 165 android:icon="@drawable/bugfood_icon" 166 android:label="@string/record_trace" 167 android:permission="android.permission.BIND_QUICK_SETTINGS_TILE" 168 android:exported="true"> 169 <intent-filter> 170 <action android:name="android.service.quicksettings.action.QS_TILE"/> 171 </intent-filter> 172 <meta-data android:name="android.service.quicksettings.TOGGLEABLE_TILE" 173 android:value="true" /> 174 </service> 175 176 <service android:name=".StackSamplingQsService" 177 android:enabled="false" 178 android:icon="@drawable/bugfood_icon" 179 android:label="@string/record_stack_samples" 180 android:permission="android.permission.BIND_QUICK_SETTINGS_TILE" 181 android:exported="true"> 182 <intent-filter> 183 <action android:name="android.service.quicksettings.action.QS_TILE"/> 184 </intent-filter> 185 <meta-data android:name="android.service.quicksettings.TOGGLEABLE_TILE" 186 android:value="true" /> 187 </service> 188 189 <provider android:name="androidx.core.content.FileProvider" 190 android:authorities="com.android.traceur.files" 191 android:grantUriPermissions="true" 192 android:exported="false"> 193 <meta-data android:name="android.support.FILE_PROVIDER_PATHS" 194 android:resource="@xml/file_paths"/> 195 </provider> 196 197 <provider android:name=".StorageProvider" 198 android:enabled="false" 199 android:authorities="com.android.traceur.documents" 200 android:grantUriPermissions="true" 201 android:exported="true" 202 android:permission="android.permission.MANAGE_DOCUMENTS"> 203 <intent-filter> 204 <action android:name="android.content.action.DOCUMENTS_PROVIDER"/> 205 </intent-filter> 206 </provider> 207 208 <provider android:name=".SearchProvider" 209 android:authorities="com.android.traceur" 210 android:multiprocess="false" 211 android:grantUriPermissions="true" 212 android:permission="android.permission.READ_SEARCH_INDEXABLES" 213 android:exported="true"> 214 <intent-filter> 215 <action android:name="android.content.action.SEARCH_INDEXABLES_PROVIDER"/> 216 </intent-filter> 217 </provider> 218 </application> 219</manifest> 220