You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
7.0 KiB
132 lines
7.0 KiB
<?xml version="1.0" encoding="utf-8"?>
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
package="com.android.providers.downloads"
|
|
android:sharedUserId="android.media">
|
|
|
|
<!-- Allows access to the Download Manager -->
|
|
<permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"
|
|
android:label="@string/permlab_downloadManager"
|
|
android:description="@string/permdesc_downloadManager"
|
|
android:protectionLevel="signatureOrSystem" />
|
|
|
|
<!-- Allows advanced access to the Download Manager -->
|
|
<permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED"
|
|
android:label="@string/permlab_downloadManagerAdvanced"
|
|
android:description="@string/permdesc_downloadManagerAdvanced"
|
|
android:protectionLevel="signatureOrSystem" />
|
|
|
|
<!-- Allows to send download completed intents -->
|
|
<permission android:name="android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS"
|
|
android:label="@string/permlab_downloadCompletedIntent"
|
|
android:description="@string/permdesc_downloadCompletedIntent"
|
|
android:protectionLevel="signature" />
|
|
|
|
<!-- Allows to download non-purgeable files to the cache partition through the public API -->
|
|
<permission android:name="android.permission.DOWNLOAD_CACHE_NON_PURGEABLE"
|
|
android:label="@string/permlab_downloadCacheNonPurgeable"
|
|
android:description="@string/permdesc_downloadCacheNonPurgeable"
|
|
android:protectionLevel="signatureOrSystem"/>
|
|
|
|
<!-- Allows to queue downloads without a notification shown while the download runs. -->
|
|
<permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"
|
|
android:permissionGroup="android.permission-group.NETWORK"
|
|
android:label="@string/permlab_downloadWithoutNotification"
|
|
android:description="@string/permdesc_downloadWithoutNotification"
|
|
android:protectionLevel="normal"/>
|
|
|
|
<!-- Allows an app to access all downloads in the system via the /all_downloads/ URIs. The
|
|
protection level could be relaxed in the future to support third-party download
|
|
managers. -->
|
|
<permission android:name="android.permission.ACCESS_ALL_DOWNLOADS"
|
|
android:label="@string/permlab_accessAllDownloads"
|
|
android:description="@string/permdesc_accessAllDownloads"
|
|
android:protectionLevel="signature"/>
|
|
|
|
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
|
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
|
<uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" />
|
|
<uses-permission android:name="android.permission.ACCESS_CACHE_FILESYSTEM" />
|
|
<uses-permission android:name="android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS" />
|
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
|
<uses-permission android:name="android.permission.ACCESS_ALL_DOWNLOADS" />
|
|
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
|
|
<!-- TODO: replace with READ_NETWORK_POLICY permission when it exists -->
|
|
<uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
|
|
<uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
|
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
|
<uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
|
|
<uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
|
|
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
|
|
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
|
|
<uses-permission android:name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS"/>
|
|
|
|
<application android:process="android.process.media"
|
|
android:label="@string/app_label"
|
|
android:icon="@mipmap/ic_launcher_download"
|
|
android:allowBackup="false"
|
|
android:supportsRtl="true"
|
|
android:forceQueryable="true"
|
|
android:usesCleartextTraffic="true">
|
|
|
|
<provider android:name=".DownloadProvider"
|
|
android:authorities="downloads" android:exported="true">
|
|
<!-- Anyone can access /my_downloads, the provider internally restricts access by UID for
|
|
these URIs -->
|
|
<path-permission android:pathPrefix="/my_downloads"
|
|
android:permission="android.permission.INTERNET"/>
|
|
<!-- to access /all_downloads, ACCESS_ALL_DOWNLOADS permission is required -->
|
|
<path-permission android:pathPrefix="/all_downloads"
|
|
android:permission="android.permission.ACCESS_ALL_DOWNLOADS"/>
|
|
<!-- Temporary, for backwards compatibility -->
|
|
<path-permission android:pathPrefix="/download"
|
|
android:permission="android.permission.INTERNET"/>
|
|
<!-- Apps with access to /all_downloads/... can grant permissions, allowing them to share
|
|
downloaded files with other viewers -->
|
|
<grant-uri-permission android:pathPrefix="/all_downloads/"/>
|
|
<!-- Apps with access to /my_downloads/... can grant permissions, allowing them to share
|
|
downloaded files with other viewers -->
|
|
<grant-uri-permission android:pathPrefix="/my_downloads/"/>
|
|
</provider>
|
|
|
|
<provider
|
|
android:name=".DownloadStorageProvider"
|
|
android:label="@string/storage_description"
|
|
android:authorities="com.android.providers.downloads.documents"
|
|
android:grantUriPermissions="true"
|
|
android:exported="true"
|
|
android:permission="android.permission.MANAGE_DOCUMENTS">
|
|
<intent-filter>
|
|
<action android:name="android.content.action.DOCUMENTS_PROVIDER" />
|
|
</intent-filter>
|
|
</provider>
|
|
|
|
<service
|
|
android:name=".DownloadJobService"
|
|
android:exported="true"
|
|
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
|
|
<service
|
|
android:name=".DownloadIdleService"
|
|
android:exported="true"
|
|
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
|
|
<service
|
|
android:name=".MediaScanTriggerJob"
|
|
android:exported="true"
|
|
android:permission="android.permission.BIND_JOB_SERVICE" />
|
|
|
|
<receiver android:name=".DownloadReceiver" android:exported="false">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
|
<action android:name="android.intent.action.UID_REMOVED" />
|
|
</intent-filter>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MEDIA_MOUNTED" />
|
|
<data android:scheme="file" />
|
|
</intent-filter>
|
|
</receiver>
|
|
</application>
|
|
</manifest>
|