summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVasu Nori <vnori@google.com>2011-02-02 16:44:46 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-02-02 16:44:46 -0800
commit3e7bb1c5d7e7d1a013df959c1a6947b33df0a0fd (patch)
tree233aa41b4ab13c98a170acabc13f462cdfd2451c /src
parentb2085f61b37ad4a70c799012f25ff62a38173f68 (diff)
parent86c04344cd871e0a443ab3dee86f8f7994f6d429 (diff)
downloadandroid_packages_providers_DownloadProvider-3e7bb1c5d7e7d1a013df959c1a6947b33df0a0fd.tar.gz
android_packages_providers_DownloadProvider-3e7bb1c5d7e7d1a013df959c1a6947b33df0a0fd.tar.bz2
android_packages_providers_DownloadProvider-3e7bb1c5d7e7d1a013df959c1a6947b33df0a0fd.zip
Merge "bug:3341145 if ignore_size_limits flag set, validate caller's perms" into honeycomb
Diffstat (limited to 'src')
-rw-r--r--src/com/android/providers/downloads/Constants.java3
-rw-r--r--src/com/android/providers/downloads/DownloadInfo.java2
-rw-r--r--src/com/android/providers/downloads/DownloadProvider.java14
3 files changed, 10 insertions, 9 deletions
diff --git a/src/com/android/providers/downloads/Constants.java b/src/com/android/providers/downloads/Constants.java
index ef0c6dbb..4b95e765 100644
--- a/src/com/android/providers/downloads/Constants.java
+++ b/src/com/android/providers/downloads/Constants.java
@@ -31,9 +31,6 @@ public class Constants {
/** The column that used to be used for the HTTP method of the request */
public static final String RETRY_AFTER_X_REDIRECT_COUNT = "method";
- /** The column that used to be used for the magic OTA update filename */
- public static final String OTA_UPDATE = "otaupdate";
-
/** The column that used to be used to reject system filetypes */
public static final String NO_SYSTEM_FILES = "no_system";
diff --git a/src/com/android/providers/downloads/DownloadInfo.java b/src/com/android/providers/downloads/DownloadInfo.java
index f375b3f1..4647999f 100644
--- a/src/com/android/providers/downloads/DownloadInfo.java
+++ b/src/com/android/providers/downloads/DownloadInfo.java
@@ -90,7 +90,7 @@ public class DownloadInfo {
info.mDescription = getString(Downloads.Impl.COLUMN_DESCRIPTION);
info.mBypassRecommendedSizeLimit =
getInt(Downloads.Impl.COLUMN_BYPASS_RECOMMENDED_SIZE_LIMIT);
- info.mOtaUpdate = getInt(Constants.OTA_UPDATE) == 1;
+ info.mOtaUpdate = getInt(Downloads.Impl.COLUMN_IGNORE_SIZE_LIMITS) == 1;
synchronized (this) {
info.mControl = getInt(Downloads.Impl.COLUMN_CONTROL);
diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java
index 94b10d53..26b43cdd 100644
--- a/src/com/android/providers/downloads/DownloadProvider.java
+++ b/src/com/android/providers/downloads/DownloadProvider.java
@@ -359,7 +359,7 @@ public final class DownloadProvider extends ContentProvider {
Downloads.Impl.COLUMN_APP_DATA + " TEXT, " +
Downloads.Impl.COLUMN_NO_INTEGRITY + " BOOLEAN, " +
Downloads.Impl.COLUMN_FILE_NAME_HINT + " TEXT, " +
- Constants.OTA_UPDATE + " BOOLEAN, " +
+ Downloads.Impl.COLUMN_IGNORE_SIZE_LIMITS + " BOOLEAN, " +
Downloads.Impl._DATA + " TEXT, " +
Downloads.Impl.COLUMN_MIME_TYPE + " TEXT, " +
Downloads.Impl.COLUMN_DESTINATION + " INTEGER, " +
@@ -588,11 +588,15 @@ public final class DownloadProvider extends ContentProvider {
copyBoolean(Downloads.Impl.COLUMN_ALLOW_ROAMING, values, filteredValues);
}
- // TODO: replace this hack with something cleaner
- if (pckg.equals(GSF_PACKAGE_NAME) &&
+ if (values.containsKey(Downloads.Impl.COLUMN_IGNORE_SIZE_LIMITS)) {
+ boolean ignoreLimits = values.getAsBoolean(Downloads.Impl.COLUMN_IGNORE_SIZE_LIMITS);
+ if (ignoreLimits &&
(getContext().checkCallingPermission(Downloads.Impl.PERMISSION_ACCESS_ADVANCED)
- == PackageManager.PERMISSION_GRANTED)) {
- filteredValues.put(Constants.OTA_UPDATE, Boolean.TRUE);
+ != PackageManager.PERMISSION_GRANTED)) {
+ throw new SecurityException("seting ignore_size_limits flag to true NOT allowed, " +
+ "unless android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED is granted");
+ }
+ filteredValues.put(Downloads.Impl.COLUMN_IGNORE_SIZE_LIMITS, ignoreLimits);
}
if (Constants.LOGVV) {