102 Commits

Author SHA1 Message Date
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
Jeff Sharkey
270e1f4297 Give audio GID to MANAGE_VOICE_KEYPHRASES apps.
Some system apps doing hotword training need low-level access to
audio hardware, beyond what the existing HAL offers.  For now, give
them the audio GID.

Bug: 17763721
Change-Id: I8025c3abacae13a6ffec4e10e4976a67ab505bdf
2014-10-01 16:26:49 -07:00
Dianne Hackborn
be7c50e0a1 Add network access blocking when in battery save mode.
The network policy manager now monitors battery save mode and,
when in battery save, uses its facility to block access to metered
networks to block access to all networks.  That is, it tells the
network management service that all networks have an (infinite)
quota, and puts various app uids to be restricted under quota
interfaces as appropriate.

This new network blocking needs a new facility to be able to white
list apps, such as GmsCore.  To do this, I refactored the package
manager's permission configuration stuff into a separate SystemConfig
class that can be used by others, and it now has a new tag to
specify package names that should be white-listed for power save
mode.  These are retrieved by the network policy manager and used
to build a whitelist of uids.

The new general config files can now go in system/etc/config,
though currently everything still remains in the permissions dir.

Still left to be done is changing the semantics of what uids are
allowed in this mode, to include all perceptable uids.  (So that we
can still do things like background music playback.)  This will be
done in a follow-on CL.

Change-Id: I9bb7029f61dae62e6236da5ca60765439f8d76d2
2014-07-01 09:22:57 -07:00
Marco Nelissen
d983ba5cac Add PowerManager method to assign blame to a single uid
Currently used by audioflinger to account for recording wakelocks.
b/10985160

Change-Id: I18fc8487f2a197bf02b5269a4bcae9e75b6c2207
2013-10-03 08:49:36 -07:00
Jeff Sharkey
9c104ab454 Remove deprecated ACCESS_DRM permission.
The permission no longer exists, so don't assign it to media.

Bug: 9967611
Change-Id: I5e11fcfc265310cbc3c2a8812a13e68b717fa476
2013-09-03 12:04:39 -07:00
Jeff Sharkey
02e4d16ed9 Add GIDs to packages.list, update SD card perms.
Write supplementary GIDs to packages.list for lower-level system
components to parse.

WRITE_EXTERNAL_STORAGE also implies sdcard_r GID. Switch to always
enforce READ_EXTERNAL_STORAGE permission. Update permission docs to
mention new behavior.

Change-Id: I316ba4b21beebb387ac05c80980ae9b38235b37d
2013-08-12 20:31:36 -07:00
Eino-Ville Talvala
b8dd91a6b2 Camera: Remove camera gid from apps with camera permission.
This gid is not needed by camera-using apps, since all camera access
is mediated by the camera service, which does not depend on gid for
permission checks.

Bug: 9904186
Change-Id: I859e6cabc905af9d98e2b09f5bbad086b5eb2b26
2013-07-17 22:00:02 +00:00
Eino-Ville Talvala
788717ca59 Camera and MediaRecorder: Support AppOps
- Allow media processes to update AppOps state
- Pass package name to media services

Bug: 8181262
Change-Id: I115d39f0b306cb9eb7cd3d3e663c680b7322fd3f
2013-02-25 09:27:42 -08:00
Dianne Hackborn
514074fae8 App ops: cleanup, handle root and shell, perms.
Rework how the shell user is defined so that it is
associated with an actual apk, instead of being a free
roaming uid with special permissions assigned to it.
This allows us to correctly account for its operations
in app ops.

Implement a special case for the root user in app ops --
it is always allowed, always with the package name "root".

Add various code to take care of cleaning up package state
from app ops -- when packages are uninstalled, and during
boot if any packages currently being stored no longer exist.

Also fix a bug in the activity manager to correctly grant
permissions in all cases when onNewIntent() is being called.

Change-Id: Iae9f6d793ee48b93518c984ad957e46ae4582581
2013-02-11 15:33:48 -08:00
Doug Zongker
b616f0c239 add android.permission.LOOP_RADIO for access to loop radio device
Change-Id: I811d70fa67aa758122678809f32b8aade42ced0f
2013-01-29 10:39:13 -08:00
Guang Zhu
ef48662876 grant shell user EXPAND_STATUS_BAR permission
Bug: 7555251
Change-Id: I68cebb26bcee060c56e124941f3ea9289ab2b3bf
2012-11-15 19:49:42 -08:00
Matthew Xie
fca9d63635 Add multi user support for bluetooth
Create a BLUETOOTH_STACK permission to share between all users of
Bluetooth apk. Bluetooth Manager binds to apk of current user
bug 6925422

Change-Id: I2df5546e977c2d77bc66d97d12479d933826922a
2012-10-04 18:35:42 -07:00
Dianne Hackborn
786b44046a Fix installing applications from non-primary users.
We also now send the correct broadcasts to each user.

You no longer need to be running the shell as root
to be able to create/remove users.

Also added some more man page material to the pm command, and
got rid of a bunch of showUsage() calls that now make error
messages completely buried because of how large the usage info
has become.

And the package manager now shows the user each historical broadcast
was sent to.

Change-Id: Iab42498e1352a0c023069139c80fc04d2d69ab4b
2012-08-27 15:16:33 -07:00
Joe Onorato
bc11e52caf am 406ba831: am 5f61087e: Merge "Get rid of LOCAL_MODULE_TAGS := user"
* commit '406ba83154ba17921bc524c479d3339448306fc5':
  Get rid of LOCAL_MODULE_TAGS := user
2012-08-17 00:50:11 -07:00
Joe Onorato
406ba83154 am 5f61087e: Merge "Get rid of LOCAL_MODULE_TAGS := user"
* commit '5f61087e26013ea2623aecb1783c74a57a9fa49c':
  Get rid of LOCAL_MODULE_TAGS := user
2012-08-17 00:48:03 -07:00
Joe Onorato
0e462950d9 Get rid of LOCAL_MODULE_TAGS := user
Change-Id: I1c4e67f935a7c511cda9980f4475dfd0272617a5
2012-08-16 22:37:58 -07:00
Dianne Hackborn
b497a819b7 am f52dcf32: am da9754e8: Merge "Fix issue #6860828 Non-root shell can\'t grant permissions" into jb-dev
* commit 'f52dcf32f2fba7c89bbd127c22f2ee2b933915c6':
  Fix issue #6860828 Non-root shell can't grant permissions
2012-07-24 22:03:33 -07:00
Dianne Hackborn
4d5f968f41 Fix issue #6860828 Non-root shell can't grant permissions
That, plus a few other permissions.

Bug: 6860828
Change-Id: I69f0360471e4fd46e689388cd993e18c1e0bfb02
2012-07-23 11:46:32 -07:00
fredc
0f42037eb7 Non persistent adapter service
Change-Id: Ib13d5c77416e58161df0e04d7a15ec0dddbde8b5

Conflicts:

	core/java/android/bluetooth/BluetoothInputDevice.java

Conflicts:

	core/java/com/android/internal/app/ShutdownThread.java
	services/java/com/android/server/SystemServer.java

Conflicts:

	services/java/com/android/server/SystemServer.java
	services/java/com/android/server/pm/ShutdownThread.java
2012-07-16 21:20:54 -07:00
Colin Cross
6510b6e8a0 move hardware feature definitions
Move the hardware feature xml files from frameworks/base/data/etc
to frameworks/native/data/etc.

Change-Id: If7dc9d68c0c57516adb8e863b68c8252abd6014c
2012-03-26 16:28:49 -07:00
Dianne Hackborn
7924512aa1 Add new READ_EXTERNAL_STORAGE permission.
Also adds some initial compatibility code for dealing with it.

Change-Id: I104bff11798349e4aaa6da9b7be787b257daa1bb
2012-03-12 15:07:31 -07:00
Svetoslav Ganov
25872aa3ef Adding shell commands for modifying content.
1. Added methods to the ActivityManagerService remote interface
   that allow accessing content providers outside of an application.
   These methods are guarded by an internal signature protected
   permission which is given to the shell user. This enables a
   shell program to access content providers.

2. Implemented a shell command that takes as input as standart
   fagls with values and manipulates content via the content provider
   mechanism.

Change-Id: I2943f8b59fbab33eb623458fa01ea61a077b9845
2012-02-15 14:55:47 -08:00
Dan Morrill
3df2549cb7 Adding a feature to indicate specific support for Bluetooth API. 2012-02-10 12:02:28 -08:00
Dianne Hackborn
7aa6d31240 Whoops, need to acquire lock.
Also increase time between reports to try to reduce the amount
of redundant spam we get.

Change-Id: Iedd7d743826fffa62ee431073cb7dfb49a00cea0
2011-11-15 16:12:30 -08:00
Dianne Hackborn
2c84cfc001 Various performance and other work.
- IME service now switches between visible and perceptible depending on
  whether it is being showm, allowing us to more aggressively free its
  memory when not shown.

- The activity display time is no longer delayed by the activity
  transition animation.

- New -R (repeat) option for launching activities with the am command.

- Improved some documentation on Loader to be clear about some methods
  that apps should not normally call.

- FrameworkPerf test now allows you to select individual tests to run.

Change-Id: Id1f73de66dc93d63212183958a72119ad174318b
2011-10-31 16:52:34 -07:00
Irfan Sheriff
45b8b46499 Add feature definition for Wi-Fi Direct
Bug: 5267396
Change-Id: I4f61b0afd1466420ab951f6d74ec444036772b21
2011-09-07 11:51:48 -07:00
Dianne Hackborn
fc8fa63861 Fix issue #5128639: SystemUI grows by 10MB after taking a screenshot
We now do the screenshot in a separate process.

Also change the recents panel to not use hardware acceleration
on lower-end devices.  And improve how it gets shown to not
load all data up-front which results in a long delay when you have
lots of recents.

Change-Id: Ia309a90f9939e5405758621b3f7114597bd0c02a
2011-08-17 17:45:05 -07:00
Eric Laurent
6dbdc40e9a Fix issue 4604090: notification sound interrupted.
The problem is that the audio HAL fails to acquire the wake lock when playing the notification.
This is because of a change that removed the mediaserver process form the system group for honeycomb.

The fix consists in requesting the wake lock from PowerManagerService when AudioFlinger mixer
wakes up.

A consequence of this change is that audio HALs or pcm drivers do not have to hold wake locks
anymore as in the past.

Change-Id: I4fb3cc84816c9c408ab7fec75886baf801e1ecb5
2011-07-25 18:41:12 -07:00
Jeff Sharkey
9e18fd1a72 Permissions to protect bandwidth statistics.
Introduces new "net_bw_stats" group which will protect reading
detailed bandwidth statistics from the kernel.  Also introduce
"net_bw_acct" group which will enable specific applications to
request that their network traffic be counted against other UIDs.

This change associates manifest permissions with the low-level GIDs.

Change-Id: If3fc28053afda201ff305d798a8878ff1f35b997
2011-06-22 10:15:32 -07:00
Dianne Hackborn
711516d140 resolved conflicts for merge of 77fc8b80 to master
Change-Id: I014f9a886d6f05607d2a5d101ad2052a6841ee8d
2011-06-14 12:17:35 -07:00
Dianne Hackborn
6c0533f994 am c5193c62: Merge "Add new landscape and portrait orientation features." into honeycomb-mr2
* commit 'c5193c6285d7094fb86dcb5cd56f44a3788af7c2':
  Add new landscape and portrait orientation features.
2011-06-14 11:36:05 -07:00
Dianne Hackborn
e289bff0ec Add new landscape and portrait orientation features.
Updates aapt to know about these.  Also updates aapt badging to:

- No longer crash due to the change to how we match unspecified
configuration resources.
- Report the new "smallest screen" supported screen configs.
- Infer old screen size buckets based on new smallest width attrs.
- Report all of the different labels and icons in an app.

Change-Id: I7376042b817391bd070f549cebbc7f03be4635c8
2011-06-14 11:23:52 -07:00
Dianne Hackborn
e6b03d0979 resolved conflicts for merge of 9dfd7d0a to master
Change-Id: I9fbee3209b7fe5c7b5b42b62309eb60dc49bf9e2
2011-06-09 18:39:37 -07:00