Merge "Fix logic inversion bug for "basicGrant"." into rvc-dev
This commit is contained in:
@@ -21,9 +21,8 @@ import static android.Manifest.permission.FORCE_PERSISTABLE_URI_PERMISSIONS;
|
|||||||
import static android.Manifest.permission.GET_APP_GRANTED_URI_PERMISSIONS;
|
import static android.Manifest.permission.GET_APP_GRANTED_URI_PERMISSIONS;
|
||||||
import static android.Manifest.permission.INTERACT_ACROSS_USERS;
|
import static android.Manifest.permission.INTERACT_ACROSS_USERS;
|
||||||
import static android.app.ActivityManagerInternal.ALLOW_FULL_ONLY;
|
import static android.app.ActivityManagerInternal.ALLOW_FULL_ONLY;
|
||||||
|
import static android.content.Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION;
|
||||||
import static android.content.Intent.FLAG_GRANT_PREFIX_URI_PERMISSION;
|
import static android.content.Intent.FLAG_GRANT_PREFIX_URI_PERMISSION;
|
||||||
import static android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION;
|
|
||||||
import static android.content.Intent.FLAG_GRANT_WRITE_URI_PERMISSION;
|
|
||||||
import static android.content.pm.PackageManager.MATCH_ANY_USER;
|
import static android.content.pm.PackageManager.MATCH_ANY_USER;
|
||||||
import static android.content.pm.PackageManager.MATCH_DEBUG_TRIAGED_MISSING;
|
import static android.content.pm.PackageManager.MATCH_DEBUG_TRIAGED_MISSING;
|
||||||
import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE;
|
import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE;
|
||||||
@@ -1138,8 +1137,8 @@ public class UriGrantsManagerService extends IUriGrantsManager.Stub {
|
|||||||
targetHoldsPermission = false;
|
targetHoldsPermission = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
final boolean basicGrant = (modeFlags & ~(FLAG_GRANT_READ_URI_PERMISSION
|
final boolean basicGrant = (modeFlags
|
||||||
| FLAG_GRANT_WRITE_URI_PERMISSION)) == 0;
|
& (FLAG_GRANT_PERSISTABLE_URI_PERMISSION | FLAG_GRANT_PREFIX_URI_PERMISSION)) == 0;
|
||||||
if (basicGrant && targetHoldsPermission) {
|
if (basicGrant && targetHoldsPermission) {
|
||||||
// When caller holds permission, and this is a simple permission
|
// When caller holds permission, and this is a simple permission
|
||||||
// grant, we can skip generating any bookkeeping; when any advanced
|
// grant, we can skip generating any bookkeeping; when any advanced
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ public class UriGrantsManagerServiceTest {
|
|||||||
final Uri uri = Uri.parse("content://" + PKG_COMPLEX + "/");
|
final Uri uri = Uri.parse("content://" + PKG_COMPLEX + "/");
|
||||||
{
|
{
|
||||||
final Intent intent = new Intent(Intent.ACTION_VIEW, uri)
|
final Intent intent = new Intent(Intent.ACTION_VIEW, uri)
|
||||||
.addFlags(FLAG_READ);
|
.addFlags(FLAG_READ | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||||
assertNull(mService.checkGrantUriPermissionFromIntent(UID_PRIMARY_COMPLEX, PKG_SOCIAL,
|
assertNull(mService.checkGrantUriPermissionFromIntent(UID_PRIMARY_COMPLEX, PKG_SOCIAL,
|
||||||
intent, intent.getFlags(), null, USER_PRIMARY));
|
intent, intent.getFlags(), null, USER_PRIMARY));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user