134 Commits

Author SHA1 Message Date
Jeff Sharkey
9a4a457622 Clear identity to handle ALLOCATE_AGGRESSIVE.
We're not actually clearing any files, only deciding how much free
space is available, so we're fine assuming the remote caller has the
permission.

Test: builds, boots
Bug: 37169076
Change-Id: I6cd42f77c43e9d2de40e2b8b937c7f2145f1b869
2017-04-14 16:29:04 -06:00
Jeff Sharkey
a4daf89f0f Grant Shell ability to clear cached app data.
It already has CLEAR_APP_USER_DATA to clear everything inside app
storage, and clearing cached data is a subset of that.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.StorageHostTest
Bug: 36731175
Change-Id: Iefc5be6c80e2562a95424fd6fe413bdb018201a9
2017-04-11 13:03:54 -06:00
Tony Mak
ea00f16c85 Whitelist DMAgent from bg check
This should be reverted before O is shipped.

Test: Found DMAgent in the whitelist in Settings.

Bug: 36856786

Change-Id: I7828566e4bc93a30457c594471fa43270c0bf3b3
2017-04-03 19:29:51 +01:00
TreeHugger Robot
0c224f9674 Merge "Revert "Whitelist ManagedProvisioning from bg check"" into oc-dev 2017-04-03 11:06:59 +00:00
Tyler Gunn
e0d00e65ce Add SUBSTITUTE_NOTIFICATION_APP_NAME pregrant for Telecom.
Test: Manual
Bug: 36817809
Change-Id: I2d7439e3d0040b617a842812b6ae8bda3c32f1ee
2017-03-31 17:50:56 -07:00
Tony Mak
54479c5e23 Revert "Whitelist ManagedProvisioning from bg check"
This reverts commit bbb551cfb5df58512f6d0df889766887d440eb08.

Reason for revert: <INSERT REASONING HERE>

Change-Id: I1d36b8760aac68fc4d3fca106d20cddfddaa9230
2017-03-30 16:27:49 +00:00
Tony Mak
bbb551cfb5 Whitelist ManagedProvisioning from bg check
Notice that app put in this list is also exempted from doze.
Also, this only exempts us from the service restriction, but not the broadcast one.

Test: adb shell am make-uid-idle  --user 0 com.android.managedprovisioning
      && adb shell am broadcast -a android.intent.action.PRE_BOOT_COMPLETED -n com.android.managedprovisioning/com.android.managedprovisioning.ota.PreBootListener
      Observe there is no crash

Change-Id: Ic0a943a9b66c909a6727f9411af519a8c6cf0157
Fix: 36705375
2017-03-29 20:41:17 +00:00
Chris Tate
b1669bf22b Merge "Give shell the CHANGE_DEVICE_IDLE_TEMP_WHITELIST permission" 2017-03-22 18:07:49 +00:00
Christopher Tate
ec3a9f3346 Give shell the CHANGE_DEVICE_IDLE_TEMP_WHITELIST permission
Shell needs to have this permission in order for the deviceidle
tempwhitelist shell command to exist.

Bug 34715096
Test: cts-tradefed run cts -m CtsAppTestCases \
  -t android.app.cts.ActivityManagerTest#testBackgroundCheckService

Change-Id: Ic1fdd87b6020649705ba0c9349dd00dd096037f3
2017-03-21 17:52:42 -07:00
Conrad Chen
6dad6d41b8 Declare privileged permissions of Live TV app
Test: build
Bug: 35782070
Change-Id: Ia1e39dcf8fdd3345837ebec1729ad4d02699763b
2017-03-21 16:59:50 -07:00
Jeff Sharkey
5517b73726 Revert "Start locking down /data/media access."
Caused b/35926593 because ExternalStorageProvider needs raw
access to underlying devices that aren't mounted visibly, like
USB mass storage devices.

This reverts commit 53d64fc839ad79be28d783f0f14082310a647dd9.
2017-03-07 14:21:30 -07:00
Jeff Davidson
272fe5c338 Merge "Declare new com.android.phone permission in whitelist." 2017-03-06 18:57:48 +00:00
Jeff Davidson
7344159c71 Declare new com.android.phone permission in whitelist.
Bug: 35948554
Test: Will verify T/H build
Change-Id: I41773160aa6515983a15365905a2cbb6b13e10c6
2017-03-03 17:42:35 -08:00
Alex Klyubin
1991f57230 Restrict access from apps to bluetooth_address setting
BluetoothManagerService for some reason leaks the Android's Bluetooth
MAC address via Settings.Secure which is normally readable by all
apps. This lets apps bypass the restriction on access to Bluetooth MAC
address from apps.

This commit fixes the issue by restricting access to bluetooth_address
secure setting (Settings.Secure). Only packages which hold the
android.permission.LOCAL_MAC_ADDRESS permission retain access.

This commit accordingly grants LOCAL_MAC_ADDRESS permission to the
system Shell app because a number of scripts (including Android CTS)
use "adb shell settings get secure bluetooth_address" as a convenient
way to query the device's Bluetooth MAC address over ADB. This is
acceptable because the user of the device can see the Bluetooth MAC
address and thus it's fine for shell to be able to see the address as
well.

Test: See CTS test added in the cts project in this topic.
Test: "adb shell settings get secure bluetooth_address" returns the
      Bluetooth MAC address of the Android.
Test: "adb shell settings list secure | grep bluetooth_address"
      returns the Bluetooth MAC address of the Android.
Test: Bluetooth works (toggling off/on, pairing, file transfer)
Bug: 33701414

Change-Id: I17b110b96eb3794b25c1661e93d29a7a003e3c9a
2017-03-03 14:25:14 -08:00
Adam Lesinski
aea3cf40d6 Whitelist new CHANGE_OVERLAY_PACKAGES permission
The Shell application needs access to change which overlays are
enabled in OverlayManagerService.

Test: Manual: invoke adb exec-out cmd overlay enable some.package.name
when shell is not root (adb unroot on eng builds).
Change-Id: I1849f68e244cfc9b1e13eb0e673dde7be03cba6d
2017-02-23 18:52:30 -08:00
Jeff Sharkey
53d64fc839 Start locking down /data/media access.
The new sdcardfs filesystem requires that we have stricter access
controls around /data/media style locations.  Start by taking away
the "media_rw" GID from apps requesting the WRITE_MEDIA_STORAGE
permission.

Common use-cases like music playback appear to continue working fine,
as clients should only be attempting to use /data/media paths after
calling maybeTranslateEmulatedPathToInternal().

Test: builds, boots, music playback works
Bug: 35447080
Change-Id: Iba9f3ef41d3277c75497f675a1fe6d3406cf4542
2017-02-22 15:48:46 -07:00
Jerry Zhang
f970636072 Allow the shell to set USB functions.
Bug: 25596495
Test: svc usb setFunction mtp true
Change-Id: I4472464a1c7ed100cb257dbad83d1d8cfef88fc7
2017-02-17 11:50:30 -08:00
Christopher Tate
3283079e5e Put shell on the idle/background whitelist
Bug 35229549

Change-Id: I9f7dd66c37af9c28c9f0714be4358b94930c2d32
2017-02-10 11:42:23 -08:00
Dianne Hackborn
3f13c54f14 Fix issue #34592078: Mobile broadcast crash observed randomly...
...when using device on mobile data

Whitelist CellBroadcastReceiver, this is a core OS component anyway
so this probably makes sense.

Test: manual

Change-Id: I1560093640e81064ad123ff0bbcb307583fc47c6
2017-02-09 11:07:18 -08:00
Christopher Tate
4244c91e27 Whitelist LocalTransport here in the framework sysconfig
This shouldn't properly be emplaced as a side-effect of partner-
specific configurations; so now we don't do that any more.

Bug 35151478
Test: verify whitelist contents with 'bmgr whitelist'

Change-Id: I854ddfdbcec1def882b24f5ea7955b28d4789806
2017-02-08 16:37:57 -08:00
TreeHugger Robot
c15add0040 Merge "Extend permissions of cameraserver" 2017-02-07 10:13:09 +00:00
Emilian Peev
bd8851022e Extend permissions of cameraserver
Camera service will need to a way to query
the process state and oom score.

BUG: 34701266
Test: Manual testing + cts-tradefd run cts -m Camera --abi armeabi-v7a --disable-reboot
Change-Id: I4df704817d2fc728d421daeffbbbcee2e61d8c3b
2017-02-06 17:14:20 +00:00
Brad Ebinger
cab1dad44f Add BIND_IMS_SERVICE to permissions whitelist
Adds android.permission.BIND_IMS_SERVICE to the permissions
whitelist xml file.

Bug: 34813244
Test: Manual
Change-Id: I7a7ad1a361c9d2dcc51769bc74a436878ad4adc5
2017-02-03 10:51:05 -08:00
TreeHugger Robot
fffa2eb046 Merge "Deliver MEDIA_SCANNER_SCAN_FILE to background receivers" 2017-01-24 22:40:17 +00:00
Christopher Tate
03a1ba2da4 Deliver MEDIA_SCANNER_SCAN_FILE to background receivers
Bug 34630982
Test: download mp3 file in Chrome, see it taken up in Play Music

Change-Id: Ia2d35d266d0066f0c2bd278bc8b6024ba94261bb
2017-01-24 12:45:09 -08:00
Fyodor Kupolov
02616eaac8 Whitelist CHANGE_DEVICE_IDLE_TEMP_WHITELIST for systemui
Test: device starts without warning
Change-Id: Ia13f7cee3da7eb2ac185415b44b6905f0f28c487
2017-01-24 11:39:23 -08:00
Christopher Tate
42a386b771 Enable background restrictions
Apps that target O+ are always subject to background restrictions.
Legacy apps' background restriction is subject to the OP_RUN_IN_BACKGROUND
app op.

Apps with these properties are exempted from background restrictions:
  - persistent process
  - currently on the idle battery whitelist
  - global whitelist for things like bluetooth services

Bug 30953212

Change-Id: Icc19b2fbc05f40dcf8c3fc4abf718c373dc8d4f6
2017-01-19 16:23:02 -08:00
Chris Tate
9e83cbbc10 Revert "Enable background restrictions"
This reverts commit 21f778060badb1e78bffde05e8de7662d275003d.

Change-Id: I65586f9739da84fb32b51b0ea166b8288c41d1b3
2017-01-19 01:12:19 +00:00
Fyodor Kupolov
5c26dc1b54 Merge "Updated platform privileged permissions" 2017-01-18 22:42:45 +00:00
Christopher Tate
21f778060b Enable background restrictions
Apps that target O+ are always subject to background restrictions.
Legacy apps' background restriction is subject to the OP_RUN_IN_BACKGROUND
app op.

Apps with these properties are exempted from background restrictions:
  - persistent process
  - currently on the idle battery whitelist
  - global whitelist for things like bluetooth services

Bug 30953212

Change-Id: Ib444829a2d222125f64ff19e8218823fa78373f9
2017-01-18 11:30:41 -08:00
Fyodor Kupolov
f9a8bd2828 Updated platform privileged permissions
Change-Id: I84e27ec023b20205bacb026e0a7cc32c12f67a7b
Test: manual
Bug: 33499917
Bug: 34128772
2017-01-12 17:36:53 -08:00
Joe LaPenna
cd54da4595 Add networkrecommendation permissions to privapp perms list.
Bug: 34235587
Test: Flashed and checked logcat for crash.
Change-Id: Ib35070ea87e23a3be8804eb3796e02c76a5628d0
2017-01-11 20:54:03 -08:00
Fyodor Kupolov
964d2ebb94 Control privileged permissions for priv-apps
Added support for privapp-permissions config element. It allows to explicitly
control what privileged permissions applications should be granted.

Feature is controlled by ro.control_privapp_permissions property.
Possible values:
- 0/false, the feature is completely disabled - signature|privileged
  permissions are granted automatically without logging. *Default behavior*
- 1/true, enforce that only whitelisted permissions are granted. Only
  devices with ro.control_privapp_permission=1 will pass CTS tests.

Test: Manual
Bug:31008485
Change-Id: I93a8c2782cc72b3953f32c237086d08d82ac0d5b
2016-11-14 18:06:15 -08:00
Ajay Panicker
35cb698a88 Remove net_bt_stack group and replace it with bluetooth
Bug: 31549206
Change-Id: I4da37bef5cff0e6054e952e6755905a5cc1e2e68
2016-09-20 23:05:50 +00:00
Felipe Leme
05515ae925 Move DownloadsManager to permanent whitelist.
DownloadProvider is now based completely on JobScheduler, and deep
inside the platform we allow foreground
downloads (FLAG_WILL_BE_FOREGROUND) to run even while the device is in
doze, so it doesn't need to be temporarily whitelisted anymore.

BUG: 29056149
Change-Id: I3658bb42aeeee5d5528f91ec990d6e1bc54257b6
2016-05-31 17:50:39 -07:00
Felipe Leme
1d0fbedf45 Whitelist Downloads Manager for Data Saver.
BUG: 28431507

Change-Id: I0478ff48865951a7ebac94434f48ad0e272e0901
2016-04-27 17:11:37 -07:00
Svet Ganov
e5313a842a Keep read/write external storage as built-in permissions
These are permissions that were mapped to gids but we need
to keep them listed event though they are no longer mapped
to gis until an upgrade from L to the current version is to
be supported. These permissions are built-in and in L were
not stored in packages.xml as a result if they are not defined
in the platform.xml while parsing packages.xml we would
ignore these permissions being granted to apps and not
propagate the granted state.

From N we are storing the built-in permissions in packages.xml
as the saved storage is negligible (one tag with the permission)
compared to the fragility as one can remove a built-in permission
which no longer needs to be mapped to gids and break grant
propagation.

bug:27185272

Change-Id: I65e05c4f7edd9a934888b4d0974100aa4e9a9453
2016-04-11 10:03:18 -07:00
Chien-Yu Chen
75cade0a5f Add cameraserver process
Add UID and permissions for cameraserver process.

Bug: 24511454
Change-Id: Iccbda4b42e5584a1f56f9afe5e15a16f40dd2922
2016-01-11 10:56:21 -08:00
Pavlin Radoslavov
7016625473 Use GID "wakelock" to control access to kernel wakelock
* Added GID "wakelock" (3010) to the list of groups the System Server
   belongs to.

 * Added GID "wakelock" to the list of assigned groups for the
   "android.permission.BLUETOOTH_STACK" Android permission.

 * Grant CAP_BLOCK_SUSPEND to processes that belong to GID "wakelock"

Bug: 25864142
Change-Id: I8a9a5f11e4a9ecd1abf2d4f4b90ec89b3101332e
2015-12-28 19:32:48 +00:00
Andy Hung
ed0ea40a41 Add Android permissions for audioserver
audioserver has the same permissions as mediaserver.

TBD: Pare down permissions.

Bug: 24511453
Change-Id: Id7abddd79a730ad95b554a94207df3aa4b676f2a
2015-12-08 15:35:00 -08:00
Chong Zhang
8e4f4b3d94 Add permission to prevent third-parth apps from querying OOM scores
bug: 25853091
Change-Id: Ic1cdbf155e1e930405773fd078dfc57fda2d9afa
2015-12-02 12:20:30 -08:00
Xiaohui Chen
9c990c15ee Add com.android.settings to white list
Bug: 24256521
Change-Id: If315b082960190b3ebea387484f5a00e707ef558
2015-11-23 12:03:08 -08:00
Fyodor Kupolov
7db5af124e Limit the number of apps running as system user
For the system user, enable apps based on the following conditions:
- app has no launcher icons or has INTERACT_ACROSS_USER_FULL permission
- app is whitelisted
- app is not in the blacklist

Bug: 23283899
Change-Id: I90fa266e8cfb28d002e5f792998fdddb6a1e6969
2015-08-26 10:18:10 -07:00
Dianne Hackborn
4a503b1ece Fix issue #22989030: Separate battery whitelists
We now have a new whitelist you can put apps in, which
opts them out of the old battery saver mode and new app idle,
but doesn't keep them from going in to doze.  This is for a few
special cases that we had previously whitelisted for battery saver,
and inherited to the new modes...  ultimately we should figure out
how to get these apps out of the whitelist completely, but this
will help for now.

Apps in this new whitelist are not shown in the UI, because they
are still significantly restricted by not being able to operate
normally in doze.  This also means they are still visible in the
list of all apps for the user to be able to put them on/off the
complete whitelist if that is what they really want.

In the course of doing this, I needed to clean up code in the
network policy manager to better separate management of the
two firewall rules that now have different whitelists applied
to them.  This also hopefully just generally simplifies and cleans
up that code.  Hopefully!

Change-Id: I92e15f2f85899571dd8b049b5e3eb1354f55f353
2015-08-07 14:23:32 -07:00
Jeff Sharkey
32e80d7588 Permission to view shared storage for all users.
Typical apps are restricted so they can only view shared storage
belonging to the user they're running as.  However, a handful of
system components need access to shared storage across all users,
such as DefaultContainerService and SystemUI.

Since WRITE_MEDIA_STORAGE already offers this functionality by
bypassing any FUSE emulation, reuse it to grant the "sdcard_rw" GID
which is no longer handed out to third-party apps.  Then we change
the FUSE daemon to allow the "sdcard_rw" GID to see shared storage
of all users.

Bug: 19995822
Change-Id: I504c2a179ba74f142ed0d32da5baa69f4212cd82
2015-07-06 10:54:28 -07:00
Jeff Sharkey
9527b223a9 Let's reinvent storage, yet again!
Now that we're treating storage as a runtime permission, we need to
grant read/write access without killing the app.  This is really
tricky, since we had been using GIDs for access control, and they're
set in stone once Zygote drops privileges.

The only thing left that can change dynamically is the filesystem
itself, so let's do that.  This means changing the FUSE daemon to
present itself as three different views:

/mnt/runtime_default/foo - view for apps with no access
/mnt/runtime_read/foo - view for apps with read access
/mnt/runtime_write/foo - view for apps with write access

There is still a single location for all the backing files, and
filesystem permissions are derived the same way for each view, but
the file modes are masked off differently for each mountpoint.

During Zygote fork, it wires up the appropriate storage access into
an isolated mount namespace based on the current app permissions.  When
the app is granted permissions dynamically at runtime, the system
asks vold to jump into the existing mount namespace and bind mount
the newly granted access model into place.

Bug: 21858077
Change-Id: I62fb25d126dd815aea699b33d580e3afb90f8fd2
2015-06-25 22:25:48 -07:00
Jeff Sharkey
00f3904629 Introduce per-user GIDs for storage.
This will eventually allow us to have a single unified filesystem
instead of requiring zygote to use bind mounts.

Change-Id: I29b819ab51498b4bab874e0367b1ab4165f84025
2015-03-23 19:14:19 -07:00
Narayan Kamath
3bdd327f85 Move apache specific portions of android.net.http to external/apache-http.
We continue to compile external/apache-http into ext.jar. This contains
a few changes apart fom the classes moving around :

- Makefile changes to build docs and api-stubs for now. A future change
  will revert these changes and remove these classes from stubs and
  docs.
- Hardcode event IDs in legacyerrorstrings to avoid a dependency between
  the frameworks and apache. These strings are on their way out and will
  never change anyway.
- Remove imports due to {@link} tags and use {@code} instead.
- Remove an accidental(?) dependency on apache commons code that's a
  part of apache-http.

bug: 18027885

Change-Id: I51cd038d846ec7d02c283a4541b10a6a9cf62ecf
2015-02-12 11:15:49 +00:00
Narayan Kamath
1ed78fbf28 Add library definition for org.apache.http.legacy.
bug: 18027885
Change-Id: I300ab2eb0f87e004ef20157bd23517865133665c
2015-01-21 12:49:14 +00:00
Benson Huang
981258e5f9 [FM] Add FM permission to support FM radio app
Add FM permission like KK to support FM radio app.

Change-Id: Ifb76f63e3136a5f88306903fd28e9abbb01e69c9
Signed-off-by: Benson Huang <benson.huang@mediatek.com>

Conflicts:
	data/etc/platform.xml
2014-10-01 18:39:16 -07:00