History log of /frameworks/base/core/java/android/app/AppOpsManager.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e4cb66fd77084b2642e519bb7f4c27ae7ef95939 02-Oct-2013 Dianne Hackborn <hackbod@google.com> Fix issue #11044267: AppOpsManager.startWatchingMode should take a String

Change-Id: I193a738f2e4ef147c22fb46cfa34ec14ad95d192
/frameworks/base/core/java/android/app/AppOpsManager.java
8828d3a153e28fe631edcd5145e6cc706e0b34c8 26-Sep-2013 Dianne Hackborn <hackbod@google.com> Fix issue #10919261: Don't clear OP_WRITE_SMS when resetting app prefs

Add a new array indicating whether each op allows itself to
be reset, and use it.

Change-Id: I494f630bda170e061196a380563512e9e77b51a8
/frameworks/base/core/java/android/app/AppOpsManager.java
9bb0ee9131b0fa8cf2720f200575ba2ede48a65c 22-Sep-2013 Dianne Hackborn <hackbod@google.com> Issue #10461551: KLP API Review: AppOpsManager

Changed public constants from integers to strings. Internally
everything is still integers, since we want that more efficient
representation for most things.

Changed the Callback interface to OnOpChangedListener. We also
have a private versin that again takes an int, and tricks to
make both work.

Reworked the class documentation to be appropriate to the SDK
(as much as it can be); most of the existing documentation is
moved to the private implementation. Also added documentation
of the MODE constants.

Change-Id: I4f7e73cc99fe66beff9194e960e072e2aa9458f8
/frameworks/base/core/java/android/app/AppOpsManager.java
f5d831915dd11e77cdcf5669228c55fe17a21c5e 16-Sep-2013 David Braun <dabraun@google.com> Implement new method for handling SMS/MMS on the platform

Multi project change:
The changes in this project add the new (hidden) default sms application
setting to Settings.Secure and updates AppOps to support the concept
of an op defaulting to something other than allowed. OP_WRITE_SMS is set
to default to MODE_IGNORED.

Bug: 10449618
Change-Id: I37619784ac70c27cf9fbcbfcac1b263398bc4e01
/frameworks/base/core/java/android/app/AppOpsManager.java
95d785346b4dae808a2d8f77356175e55a572d96 11-Sep-2013 Dianne Hackborn <hackbod@google.com> Fix issue #10688644: Java crash in com.android.phone:

java.lang.SecurityException: Operation not allowed

There was a situation I wasn't taking into account -- components
declared by the system has a special ability to run in the processes
of other uids. This means that if that code loaded into another
process tries to do anything needing an app op verification, it will
fail, because it will say it is calling as the system package name but
it is not actually coming from the system uid.

To fix this, we add a new Context.getOpPackageName() to go along-side
getBasePackageName(). This is a special call for use by all app ops
verification, which will be initialized with either the base package
name, the actual package name, or now the default package name of the
process if we are creating a context for system code being loaded into
a non-system process.

I had to update all of the code doing app ops checks to switch to this
method to get the calling package name.

Also improve the security exception throw to have a more descriptive
error message.

Change-Id: Ic04f77b3938585b02fccabbc12d2f0dc62b9ef25
/frameworks/base/core/java/android/app/AppOpsManager.java
b776122a8aa9fd082fa8aaa216c8a589d709c4c9 10-Sep-2013 David Braun <dabraun@google.com> Merge "Factor out read/write SMS settings seperate from send/receive." into klp-dev
18966a8dd8dfae553eaaafa87a656af3b7518fc6 10-Sep-2013 David Braun <dabraun@google.com> Factor out read/write SMS settings seperate from send/receive.

Change-Id: I161782b1508be433c910ec13c0b18e728bf7d2ba
/frameworks/base/core/java/android/app/AppOpsManager.java
911d7f411f36f2279aae44c89ff1d33a29140046 06-Sep-2013 Jeff Sharkey <jsharkey@android.com> Provide calling package to ContentProviders.

The calling package is important for ContentProviders that want to
grant Uri permissions as a side effect of operations, so offer it
through a new API. Validates the provided package against the
calling UID before returning.

Bug: 10626527
Change-Id: I7277880eebbd48444c024bcf5f69199133cd59e4
/frameworks/base/core/java/android/app/AppOpsManager.java
0770f9ef66f6e0d8724c972fbdce81aae6de2ca1 03-Aug-2013 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of c8911ddd to master

Change-Id: I790b547268a23848577199256fc5abc9bdb7abb8
607b414d0444067e166fa54d8ea37563f2715ea3 03-Aug-2013 Dianne Hackborn <hackbod@google.com> Add new app ops method to reset all op modes.

Change-Id: I5ee6764de8dc31d812e5a788914ab0099bbef4c0
/frameworks/base/core/java/android/app/AppOpsManager.java
0b8374501975aecd7a628336e2f7e53c272ebeea 30-Jul-2013 David Christie <dnchrist@google.com> Add new app op to monitor high power location requests.

This is a new op parallel to the existing OP_MONITOR_LOCATION
but only tracks those requests deemed to be above a
power threshold.

Change-Id: I76fe4d9d2e550293b9da6d5cf902a5b4dd499f0f
/frameworks/base/core/java/android/app/AppOpsManager.java
e98f5dbe6b6f9f2cb6a73ee750faacda2596b34f 18-Jul-2013 Dianne Hackborn <hackbod@google.com> Make it safe to use start/stop app ops outside of system proc

We now keep track of all of the active start operations per
non-system process, so they can be cleaned up if the process
goes away.

Change-Id: I9d05f1e0281c47dbe1213de014f0491f1359685c
/frameworks/base/core/java/android/app/AppOpsManager.java
3e82ba1a67b0c756ab6a289985f4cfc53725b311 16-Jul-2013 Dianne Hackborn <hackbod@google.com> Make ArrayMap public! :)

Also do some tweaking of the various container classes
to synchronize them with the support lib and make it
easier to copy code between the two.

And update activity/fragment to use ArrayMap.

Change-Id: I3cfe82392a17119dfc72c3d9961f64e1914f42be
/frameworks/base/core/java/android/app/AppOpsManager.java
1304f4ae32cf7121fe11e95f2a7151ea208b6cca 10-Jul-2013 Dianne Hackborn <hackbod@google.com> Add new location monitoring op, make some of app ops public.

The new location monitoring op is to tell us when an application
is monitoring for any location changes. It may be useful information
in addition to the more explicitly information about when location
data actually goes to the app.

Also make parts of AppOpsManager public for use by gcore. It is
not available to third party apps.

Change-Id: Ib639f704258ffdd7f3acd7567350ed2539da628a
/frameworks/base/core/java/android/app/AppOpsManager.java
713df150b92a0a5eea877f99405e31eefbf93a09 17-May-2013 Dianne Hackborn <hackbod@google.com> Add app ops for wake locks.

Currently only supports auditing, not disabling.

Change-Id: Ie85f02c29b490d96e073f54d59e165d48c7c00c9
/frameworks/base/core/java/android/app/AppOpsManager.java
ba50b97cff80e73620a0e3d13cae169e095974a7 01-May-2013 Dianne Hackborn <hackbod@google.com> Add new app ops for various interesting audio service things.

Media buttons: note when an application tries to take ownership
of the media buttons.
Audio focus: note when an application tries to take audio focus.
Volume levels: note changes to the volume level of the various
streams.

Maybe we should also have some ops for muting streams, soloing
streams, etc?

Change-Id: I79a5d477b0bad4ff61486cdb73ffb1196a674964
/frameworks/base/core/java/android/app/AppOpsManager.java
efcc1a23a1f731390ef8506b3536b9562d18ed78 26-Feb-2013 Dianne Hackborn <hackbod@google.com> App ops: adding operations for reading/writing clipboard.

Change-Id: Ic4cade153618fe86954754a3b3edde64a52a0a9c
/frameworks/base/core/java/android/app/AppOpsManager.java
d7d28e675ea7aac151c0c302d233b476537af946 12-Feb-2013 Dianne Hackborn <hackbod@google.com> App ops: media ops, set up to be callable from native code.

This is to help implementation of bug #8181262 and maybe
bug #8181261

Adds some definition for media ops (though nothing is yet using
them), and re-arranges things a bit so we can implement native
calling in to the app ops service.

Also add some java docs.

Change-Id: I637959745db820e676f23a35a5d2224f51bc6689
/frameworks/base/core/java/android/app/AppOpsManager.java
fde19b106b2b77bc3540b04445357870caf878b5 17-Jan-2013 Daniel Sandler <dsandler@android.com> New API to request a list of current notifications.

The ACCESS_NOTIFICATIONS permission is signature|system only.

Change-Id: I41338230aee9611117cbdac251c1b6b6c3cebf00
/frameworks/base/core/java/android/app/AppOpsManager.java
c2293025a25e04b26bf53713d71f85fd9ca5e8e9 07-Feb-2013 Dianne Hackborn <hackbod@google.com> App ops: track system windows, monitoring changes.

Change-Id: I273e82bdad66ada3bf0f7ec9176bc304b9ee1ee8
/frameworks/base/core/java/android/app/AppOpsManager.java
961321fe4ed4431a6362d729d9e4ea26bdecde61 06-Feb-2013 Dianne Hackborn <hackbod@google.com> App ops: add op for writing settings.

Also fix a build.

And fix a bug that I think was introduced in the multi-user work
that removed the permission check for writing to settings...!

Change-Id: I5945682faa789ffc78fd3546c0df7d03693f106d
/frameworks/base/core/java/android/app/AppOpsManager.java
f51f61269aacdfcf737b2c32b6b216c48ab61e65 05-Feb-2013 Dianne Hackborn <hackbod@google.com> App ops: new operations for SMS.

Implementation required a new framework feature
to associate an app op with a broadcast.

Change-Id: I4ff41a52f7ad4ee8fd80cbf7b394f04d6c4315b3
/frameworks/base/core/java/android/app/AppOpsManager.java
f265ea9d8307282ff1da3915978625a94fc2859e 01-Feb-2013 Dianne Hackborn <hackbod@google.com> App ops: vibration, neighboring cells, dialing, etc.

Improve handling of vibration op, so that apps are
better blamed (there is now a hidden vibrator API that
supplies the app to blame, and the system now uses this
when vibrating on behalf of an app).

Add operation for retrieving neighboring cell information.

Add a new op for calling a phone number. This required
plumbing information about the launching package name through
the activity manager, which required changing the internal
startActivity class, which required hitting a ton of code that
uses those internal APIs.

Change-Id: I3f8015634fdb296558f07fe654fb8d53e5c94d07
/frameworks/base/core/java/android/app/AppOpsManager.java
4a900acdef4559f9f84ca7e2bce45485215fc130 30-Jan-2013 Daniel Sandler <dsandler@android.com> Migrate package notification restrictions to AppOps.

Change-Id: I23064ce3014d2446d009bbdff92b301280e8b989
/frameworks/base/core/java/android/app/AppOpsManager.java
5e45ee6752528791deb66b83d76250685de15d47 25-Jan-2013 Dianne Hackborn <hackbod@google.com> App ops: you can now turn off operations.

Also add new ops for calendar and wi-fi scans, finish
implementing rejection of content provider calls, fix
issues with rejecting location calls, fix bug in the
new pm call to retrieve apps with permissions.

Change-Id: I29d9f8600bfbbf6561abf6d491907e2bbf6af417
/frameworks/base/core/java/android/app/AppOpsManager.java
72e3983d38f656cfa8c7a038eb80bdd9ea06768e 19-Jan-2013 Dianne Hackborn <hackbod@google.com> New API to get app op information about a single package.

Change-Id: I986453d9bb4161da467fb820b12502464e936483
/frameworks/base/core/java/android/app/AppOpsManager.java
d8e1dbb6bc1fbaf4f2e38c3ba92ced94270deaac 18-Jan-2013 Dianne Hackborn <hackbod@google.com> Rework ParceledListSlice to be much easier to use.

Take advantage of this to return better information about
packages filtered by permissions -- include the permissions
they have in the requested array.

Also fix issue #8026793 (Contact picture shows default pic
while searching for a contact in qsb) by using the base
package name of the Context when reporting the app name
of an operation. Otherwise you could make a resource-only
context for another application and do calls through that
and get reported as the wrong app.

Change-Id: I5e0488bf773acea5a3d22f245641828e1a106fb8
/frameworks/base/core/java/android/app/AppOpsManager.java
35654b61e8fe7bc85afcb076ddbb590d51c5865f 15-Jan-2013 Dianne Hackborn <hackbod@google.com> More work on App Ops service.

Implemented reading and writing state to retain information
across boots, API to retrieve state from it, improved location
manager interaction to monitor both coarse and fine access
and only note operations when location data is being delivered
back to app (not when it is just registering to get the data at
some time in the future).

Also implement tracking of read/write ops on contacts and the
call log. This involved tweaking the content provider protocol
to pass over the name of the calling package, and some
infrastructure in the ContentProvider transport to note incoming
calls with the app ops service. The contacts provider and call
log provider turn this on for themselves.

This also implements some of the mechanics of being able to ignore
incoming provider calls... all that is left are some new APIs for
the real content provider implementation to be involved with
providing the correct behavior for query() (return an empty
cursor with the right columns) and insert() (need to figure out
what URI to return).

Change-Id: I36ebbcd63dee58264a480f3d3786891ca7cbdb4c
/frameworks/base/core/java/android/app/AppOpsManager.java
a06de0f29b58df9246779cc4bfd8f06f7205ddb6 12-Dec-2012 Dianne Hackborn <hackbod@google.com> New "app ops" service.

Initial implementation, tracking use of the vibrator, GPS,
and location reports.

Also includes an update to battery stats to also keep track of
vibrator usage (since I had to be in the vibrator code anyway
to instrument it).

The service itself is only half-done. Currently no API to
retrieve the data (which once there will allow us to show you
which apps are currently causing the GPS to run and who has
recently accessed your location), it doesn't persist its data
like it should, and no way to tell it to reject app requests
for various operations.

But hey, it's a start!

Change-Id: I05b8d76cc4a4f7f37bc758c1701f51f9e0550e15
/frameworks/base/core/java/android/app/AppOpsManager.java