merge in nougat-cts-release history after reset to nougat-cts-dev
diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java
index d50eedb..d30018f 100644
--- a/src/com/android/providers/downloads/DownloadProvider.java
+++ b/src/com/android/providers/downloads/DownloadProvider.java
@@ -468,19 +468,6 @@
if (appInfo != null) {
mDefContainerUid = appInfo.uid;
}
-
- // Grant access permissions for all known downloads to the owning apps
- final SQLiteDatabase db = mOpenHelper.getReadableDatabase();
- final Cursor cursor = db.query(DB_TABLE, new String[] {
- Downloads.Impl._ID, Constants.UID }, null, null, null, null, null);
- try {
- while (cursor.moveToNext()) {
- grantAllDownloadsPermission(cursor.getLong(0), cursor.getInt(1));
- }
- } finally {
- cursor.close();
- }
-
return true;
}
@@ -703,7 +690,6 @@
}
insertRequestHeaders(db, rowID, values);
- grantAllDownloadsPermission(rowID, Binder.getCallingUid());
notifyContentChanged(uri, match);
final long token = Binder.clearCallingIdentity();
@@ -1225,7 +1211,7 @@
while (cursor.moveToNext()) {
final long id = cursor.getLong(0);
scheduler.cancel((int) id);
- revokeAllDownloadsPermission(id);
+
DownloadStorageProvider.onDownloadProviderDelete(getContext(), id);
final String path = cursor.getString(1);
@@ -1274,19 +1260,6 @@
logVerboseOpenFileInfo(uri, mode);
}
- // Perform normal query to enforce caller identity access before
- // clearing it to reach internal-only columns
- final Cursor probeCursor = query(uri, new String[] {
- Downloads.Impl._DATA }, null, null, null);
- try {
- if ((probeCursor == null) || (probeCursor.getCount() == 0)) {
- throw new FileNotFoundException(
- "No file found for " + uri + " as UID " + Binder.getCallingUid());
- }
- } finally {
- IoUtils.closeQuietly(probeCursor);
- }
-
final Cursor cursor = queryCleared(uri, new String[] {
Downloads.Impl._DATA, Downloads.Impl.COLUMN_STATUS,
Downloads.Impl.COLUMN_DESTINATION, Downloads.Impl.COLUMN_MEDIA_SCANNED }, null,
@@ -1469,20 +1442,4 @@
to.put(key, defaultValue);
}
}
-
- private void grantAllDownloadsPermission(long id, int uid) {
- final String[] packageNames = getContext().getPackageManager().getPackagesForUid(uid);
- if (packageNames == null || packageNames.length == 0) return;
-
- // We only need to grant to the first package, since the
- // platform internally tracks based on UIDs
- final Uri uri = ContentUris.withAppendedId(Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI, id);
- getContext().grantUriPermission(packageNames[0], uri,
- Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
- }
-
- private void revokeAllDownloadsPermission(long id) {
- final Uri uri = ContentUris.withAppendedId(Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI, id);
- getContext().revokeUriPermission(uri, ~0);
- }
}