Merge "Don't use linked mediastore uris in DownloadProvider operations." into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
4344e7c721
@@ -31,11 +31,12 @@ interface IUriGrantsManager {
|
||||
in Uri uri, int mode, int sourceUserId, int targetUserId);
|
||||
/**
|
||||
* Gets the URI permissions granted to an arbitrary package (or all packages if null)
|
||||
* NOTE: this is different from getPersistedUriPermissions(), which returns the URIs the package
|
||||
* NOTE: this is different from getUriPermissions(), which returns the URIs the package
|
||||
* granted to another packages (instead of those granted to it).
|
||||
*/
|
||||
ParceledListSlice getGrantedUriPermissions(in String packageName, int userId);
|
||||
/** Clears the URI permissions granted to an arbitrary package. */
|
||||
void clearGrantedUriPermissions(in String packageName, int userId);
|
||||
ParceledListSlice getPersistedUriPermissions(in String packageName, boolean incoming);
|
||||
ParceledListSlice getUriPermissions(in String packageName, boolean incoming,
|
||||
boolean persistedOnly);
|
||||
}
|
||||
|
||||
@@ -2482,8 +2482,8 @@ public abstract class ContentResolver implements ContentInterface {
|
||||
*/
|
||||
public @NonNull List<UriPermission> getPersistedUriPermissions() {
|
||||
try {
|
||||
return UriGrantsManager.getService()
|
||||
.getPersistedUriPermissions(mPackageName, true).getList();
|
||||
return UriGrantsManager.getService().getUriPermissions(
|
||||
mPackageName, true /* incoming */, true /* persistedOnly */).getList();
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
@@ -2498,8 +2498,18 @@ public abstract class ContentResolver implements ContentInterface {
|
||||
*/
|
||||
public @NonNull List<UriPermission> getOutgoingPersistedUriPermissions() {
|
||||
try {
|
||||
return UriGrantsManager.getService()
|
||||
.getPersistedUriPermissions(mPackageName, false).getList();
|
||||
return UriGrantsManager.getService().getUriPermissions(
|
||||
mPackageName, false /* incoming */, true /* persistedOnly */).getList();
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
public @NonNull List<UriPermission> getOutgoingUriPermissions() {
|
||||
try {
|
||||
return UriGrantsManager.getService().getUriPermissions(
|
||||
mPackageName, false /* incoming */, false /* persistedOnly */).getList();
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
|
||||
@@ -849,6 +849,8 @@ public final class Downloads {
|
||||
public static final String CALL_MEDIASTORE_DOWNLOADS_DELETED = "mediastore_downloads_deleted";
|
||||
/** @hide */
|
||||
public static final String CALL_CREATE_EXTERNAL_PUBLIC_DIR = "create_external_public_dir";
|
||||
/** @hide */
|
||||
public static final String CALL_REVOKE_MEDIASTORE_URI_PERMS = "revoke_mediastore_uri_perms";
|
||||
|
||||
/** @hide */
|
||||
public static final String EXTRA_IDS = "ids";
|
||||
|
||||
@@ -13532,7 +13532,7 @@ HSPLcom/android/server/uri/UriGrantsManagerService;->checkHoldingPermissionsInte
|
||||
HSPLcom/android/server/uri/UriGrantsManagerService;->checkUriPermission(Lcom/android/server/uri/GrantUri;II)Z
|
||||
HSPLcom/android/server/uri/UriGrantsManagerService;->enforceNotIsolatedCaller(Ljava/lang/String;)V
|
||||
HSPLcom/android/server/uri/UriGrantsManagerService;->findOrCreateUriPermission(Ljava/lang/String;Ljava/lang/String;ILcom/android/server/uri/GrantUri;)Lcom/android/server/uri/UriPermission;
|
||||
PLcom/android/server/uri/UriGrantsManagerService;->getPersistedUriPermissions(Ljava/lang/String;Z)Landroid/content/pm/ParceledListSlice;
|
||||
PLcom/android/server/uri/UriGrantsManagerService;->getPersistedUriPermissions(Ljava/lang/String;ZZ)Landroid/content/pm/ParceledListSlice;
|
||||
HSPLcom/android/server/uri/UriGrantsManagerService;->getProviderInfo(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
|
||||
HSPLcom/android/server/uri/UriGrantsManagerService;->grantUriPermission(ILjava/lang/String;Lcom/android/server/uri/GrantUri;ILcom/android/server/uri/UriPermissionOwner;I)V
|
||||
HSPLcom/android/server/uri/UriGrantsManagerService;->grantUriPermissionFromIntent(ILjava/lang/String;Landroid/content/Intent;Lcom/android/server/uri/UriPermissionOwner;I)V
|
||||
|
||||
@@ -211,9 +211,9 @@ public class UriGrantsManagerService extends IUriGrantsManager.Stub {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ParceledListSlice<android.content.UriPermission> getPersistedUriPermissions(
|
||||
String packageName, boolean incoming) {
|
||||
enforceNotIsolatedCaller("getPersistedUriPermissions");
|
||||
public ParceledListSlice<android.content.UriPermission> getUriPermissions(
|
||||
String packageName, boolean incoming, boolean persistedOnly) {
|
||||
enforceNotIsolatedCaller("getUriPermissions");
|
||||
Preconditions.checkNotNull(packageName, "packageName");
|
||||
|
||||
final int callingUid = Binder.getCallingUid();
|
||||
@@ -240,7 +240,8 @@ public class UriGrantsManagerService extends IUriGrantsManager.Stub {
|
||||
} else {
|
||||
for (int j = 0; j < perms.size(); j++) {
|
||||
final UriPermission perm = perms.valueAt(j);
|
||||
if (packageName.equals(perm.targetPkg) && perm.persistedModeFlags != 0) {
|
||||
if (packageName.equals(perm.targetPkg)
|
||||
&& (!persistedOnly || perm.persistedModeFlags != 0)) {
|
||||
result.add(perm.buildPersistedPublicApiObject());
|
||||
}
|
||||
}
|
||||
@@ -252,7 +253,8 @@ public class UriGrantsManagerService extends IUriGrantsManager.Stub {
|
||||
mGrantedUriPermissions.valueAt(i);
|
||||
for (int j = 0; j < perms.size(); j++) {
|
||||
final UriPermission perm = perms.valueAt(j);
|
||||
if (packageName.equals(perm.sourcePkg) && perm.persistedModeFlags != 0) {
|
||||
if (packageName.equals(perm.sourcePkg)
|
||||
&& (!persistedOnly || perm.persistedModeFlags != 0)) {
|
||||
result.add(perm.buildPersistedPublicApiObject());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user