OSDN Git Service

Implement dual-permission model for storage.
authorPhilip P. Moltmann <moltmann@google.com>
Tue, 5 Mar 2019 00:48:22 +0000 (16:48 -0800)
committerPhilip P. Moltmann <moltmann@google.com>
Fri, 15 Mar 2019 23:48:18 +0000 (16:48 -0700)
commitc94ba820fb881781d0d86648bb637d5c2a0f7c63
treeaddc797c2f8c5e6ac3d4e10f414436fd442e6a8e
parent6983ad3f17566a44d36886affb5e877e7e4ae34c
Implement dual-permission model for storage.

- Pre-Q apps use the legacy READ/WRITE_EXTERNAL_STORAGE permissions
- Post-Q apps use the READ_MEDIA_* permissions
- Grandfathered Q apps have all storage permission granted fixed. In the
  UI they show only the legacy storage permissions
- The OP_LEGACY_STORAGE controls whether an app is grandfathered

Data providers should check both old and new permission model as
permissions that are not used are set as granted.

Test: atest CtsPermissionTestCases:android.permission.cts.DualStoragePermissionModelTest
Fixes: 126785920
Change-Id: I668530e62125d95f122a94ae39f17007391bcaa5
api/system-current.txt
api/test-current.txt
core/java/android/app/AppOpsManager.java
core/java/android/content/pm/PackageManager.java
core/res/AndroidManifest.xml
data/etc/platform.xml
services/core/java/com/android/server/StorageManagerService.java
services/core/java/com/android/server/pm/permission/PermissionManagerService.java
services/core/java/com/android/server/pm/permission/TEST_MAPPING