1 <?xml version="1.0" encoding="utf-8"?>
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="com.android.providers.downloads"
4 android:sharedUserId="android.media">
6 <!-- Allows access to the Download Manager -->
7 <permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"
8 android:label="@string/permlab_downloadManager"
9 android:description="@string/permdesc_downloadManager"
10 android:protectionLevel="signatureOrSystem" />
12 <!-- Allows advanced access to the Download Manager -->
13 <permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED"
14 android:label="@string/permlab_downloadManagerAdvanced"
15 android:description="@string/permdesc_downloadManagerAdvanced"
16 android:protectionLevel="signatureOrSystem" />
18 <!-- Allows to send download completed intents -->
19 <permission android:name="android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS"
20 android:label="@string/permlab_downloadCompletedIntent"
21 android:description="@string/permdesc_downloadCompletedIntent"
22 android:protectionLevel="signature" />
24 <!-- Allows to download non-purgeable files to the cache partition through the public API -->
25 <permission android:name="android.permission.DOWNLOAD_CACHE_NON_PURGEABLE"
26 android:label="@string/permlab_downloadCacheNonPurgeable"
27 android:description="@string/permdesc_downloadCacheNonPurgeable"
28 android:protectionLevel="signatureOrSystem"/>
30 <!-- Allows to queue downloads without a notification shown while the download runs. -->
31 <permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"
32 android:permissionGroup="android.permission-group.NETWORK"
33 android:label="@string/permlab_downloadWithoutNotification"
34 android:description="@string/permdesc_downloadWithoutNotification"
35 android:protectionLevel="normal"/>
37 <!-- Allows an app to access all downloads in the system via the /all_downloads/ URIs. The
38 protection level could be relaxed in the future to support third-party download
40 <permission android:name="android.permission.ACCESS_ALL_DOWNLOADS"
41 android:label="@string/permlab_accessAllDownloads"
42 android:description="@string/permdesc_accessAllDownloads"
43 android:protectionLevel="signature"/>
45 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
46 <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" />
47 <uses-permission android:name="android.permission.ACCESS_CACHE_FILESYSTEM" />
48 <uses-permission android:name="android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS" />
49 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
50 <uses-permission android:name="android.permission.INTERNET" />
51 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
52 <uses-permission android:name="android.permission.ACCESS_ALL_DOWNLOADS" />
53 <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
54 <!-- TODO: replace with READ_NETWORK_POLICY permission when it exists -->
55 <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
56 <uses-permission android:name="android.permission.MODIFY_NETWORK_ACCOUNTING" />
57 <uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
58 <uses-permission android:name="android.permission.WAKE_LOCK" />
60 <application android:process="android.process.media"
61 android:label="@string/app_label"
62 android:icon="@mipmap/ic_launcher_download"
63 android:allowBackup="false">
65 <provider android:name=".DownloadProvider"
66 android:authorities="downloads" android:exported="true">
67 <!-- Anyone can access /my_downloads, the provider internally restricts access by UID for
69 <path-permission android:pathPrefix="/my_downloads"
70 android:permission="android.permission.INTERNET"/>
71 <!-- to access /all_downloads, ACCESS_ALL_DOWNLOADS permission is required -->
72 <path-permission android:pathPrefix="/all_downloads"
73 android:permission="android.permission.ACCESS_ALL_DOWNLOADS"/>
74 <!-- Temporary, for backwards compatibility -->
75 <path-permission android:pathPrefix="/download"
76 android:permission="android.permission.INTERNET"/>
77 <!-- Apps with access to /all_downloads/... can grant permissions, allowing them to share
78 downloaded files with other viewers -->
79 <grant-uri-permission android:pathPrefix="/all_downloads/"/>
80 <!-- Apps with access to /my_downloads/... can grant permissions, allowing them to share
81 downloaded files with other viewers -->
82 <grant-uri-permission android:pathPrefix="/my_downloads/"/>
86 android:name=".DownloadStorageProvider"
87 android:authorities="com.android.providers.downloads.documents"
88 android:grantUriPermissions="true"
89 android:exported="true"
90 android:permission="android.permission.MANAGE_DOCUMENTS">
92 <action android:name="android.content.action.DOCUMENTS_PROVIDER" />
97 android:name=".DownloadService"
98 android:permission="android.permission.ACCESS_DOWNLOAD_MANAGER" />
101 android:name="com.android.providers.downloads.DownloadIdleService"
102 android:exported="true"
103 android:permission="android.permission.BIND_JOB_SERVICE">
106 <receiver android:name=".DownloadReceiver" android:exported="false">
108 <action android:name="android.intent.action.BOOT_COMPLETED" />
109 <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
110 <action android:name="android.intent.action.UID_REMOVED" />
113 <action android:name="android.intent.action.MEDIA_MOUNTED" />
114 <data android:scheme="file" />
118 <activity android:name=".SizeLimitActivity"
119 android:launchMode="singleTask"
120 android:theme="@style/Theme.Translucent"/>