Commit Graph

1861 Commits

Author SHA1 Message Date
Nick Kralevich
98ea19ed24 Merge "Reenable optional permissions parsing and expose APIs" into jb-mr2-dev 2013-03-28 00:13:45 +00:00
Nick Kralevich
5992898755 Merge "Add buildPermissionRequestIntent to PackageManager" into jb-mr2-dev 2013-03-28 00:11:26 +00:00
Nick Kralevich
828c16f140 Reenable optional permissions parsing and expose APIs
Modify the package parsing code to understand optional permissions
(android:required="false"). This is essentially a rollback of
e824120016 with some minor changes.

Expose the requestPermission API to third party apps. This allows
an app to request an Intent which, when passed to
startActivityForResult, will prompt the user to approve permissions
for an app.

In the event we decide to not launch with this feature, this change
can be rolled back.

Change-Id: Ie3626deae9b16e510323f94a2c80377f7c84b26f
2013-03-27 16:57:33 -07:00
Nick Kralevich
035f80d7c7 Add buildPermissionRequestIntent to PackageManager
Add the buildPermissionRequestIntent API to PackageManager. This allows
an app to request an Intent which, when passed to
startActivityForResult, will prompt the user to approve permissions
for an app.

Currently, the API is @hide.  It will be unhidden in a future change.

Change-Id: I4ec677002afa799a6eb5c2657c28452c91012436
2013-03-27 16:55:27 -07:00
Dianne Hackborn
bf20aa767e Merge "Keep track of who has disabled applications." into jb-mr2-dev 2013-03-27 23:32:36 +00:00
Dianne Hackborn
3fa3c28a35 Keep track of who has disabled applications.
Change-Id: I2640d3dc2200b589e2beb42a43cc93efd090f06e
2013-03-27 12:01:52 -07:00
Chiao Cheng
972a9255a7 Merge "Allow leading slash in path argument for addURI() method." into jb-mr2-dev 2013-03-27 17:18:30 +00:00
Chiao Cheng
ef23bf198d Allow leading slash in path argument for addURI() method.
The original documentation for this class indicated a leading slash was possible
but the code did not support it.  Since then, the docs were changed to reflect
what the code does.

The purpose of this change is to allow the use of uri.getPath() as an argument.
With this change, the following can be done

matcher.addURI(ContactsContract.AUTHORITY,
        ContactsContract.CONTENT_FILTER_URI.getPath(), CONTACTS_FILTER)

instead of

matcher.addURI(ContactsContract.AUTHORITY,
        "contacts/filter", CONTACTS_FILTER)

Change-Id: I76a9e3133365be9fe7a8de86eae57f9eea1cd2a3
2013-03-26 11:20:47 -07:00
Robert Craig
0f40dc923c Add seinfo parsing to PackageManagerService.
This patch set allows the PMS to parse the
mac_permissions.xml file which contains the
seinfo values. Each package that is installed
on the device will be assigned an seinfo value
based on policy. This seinfo value will help label
the app process and data directory.  Modifications
include adjustments to ApplicationInfo.java
to store the seinfo tag per package as well as
adjustments to installd to communicate the seinfo
tag to libselinux.

Change-Id: I61ad1ea12fb6a9a6d0b108ec163bc4bf4c954b58
Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>
2013-03-25 17:30:08 -07:00
Dianne Hackborn
37f180b4a5 Merge "App ops: don't crash when provide read access is off." into jb-mr2-dev 2013-03-23 01:43:37 +00:00
Dianne Hackborn
9fa39bd255 App ops: don't crash when provide read access is off.
If the caller supplied an empty selection string (instead
of null) we would crash due to creating a bad SQLite statement.

Change-Id: I462803b80c81815ed9a3a320c23060daa28e8114
2013-03-22 18:42:14 -07:00
Dianne Hackborn
119bbc378d Implement #8323587, #8323342, #8323590: new features.
8323587: Add feature for supporting app widgets
8323342: Add feature for replacing the home screen
8323590: Add feature for supporting input methods

The app widget service looks for the app widget feature
and refuses to work if it doesn't exist.  I didn't do
this for the input method service because some devices
will probably want to still make use of that mechanism
without supporting third party input methods.

Change-Id: Ie3b089105e104f4d767cdb03cdbe4fdb1c17382e
2013-03-22 17:27:25 -07:00
Amith Yamasani
1eab5f2693 Fix javadoc breakage
Change-Id: I72df82a8855322145c870bd8db64da81533be4cc
2013-03-20 23:54:07 -07:00
Amith Yamasani
df2e92a535 Application restrictions API
Adds the ability for apps to export some restrictions. The restrictions
are presented in Settings based on the restriction type. The user's
selections are stored by UserManagerService and provided to the
target user's application as a list of RestrictionEntry objects which
contain the key, value(s).

Also introduce a manifest entry for system apps to request that the
app be automatically installed in all users, so that they cannot be
deselected by the owner user.

Shared account filtering for non-whitelisted apps.

Change-Id: I15b741e3c0f3448883cb364c130783f1f6ea7ce6
2013-03-20 22:29:59 -07:00
Dianne Hackborn
d468df73d5 Merge "Fix a bug where we could lose a loader content change." into jb-mr2-dev 2013-03-15 23:10:47 +00:00
Jeff Sharkey
93b04b91bc Merge "Avoid warnings about synthesized IDs." into jb-mr2-dev 2013-03-15 21:47:58 +00:00
Jeff Sharkey
47b50333c1 Avoid warnings about synthesized IDs.
Bug: 8153518
Change-Id: I5d638e17581f63c6d4a10ff6bc2c1bf9997a78b3
2013-03-15 14:46:52 -07:00
Dianne Hackborn
ca614f78be Fix a bug where we could lose a loader content change.
If AsyncTaskLoader starts a background update due to a
content change, and that update is cancelled, we drop the
data when it finally arrives and forget that the content changed.
If we later come back to the loader, we then end up showing
stale data because we don't know that we still need to update
due to the old content change.

This change adds a couple new APIs to Loader to deal with the
time between when you ask for whether there is a content change
and finally either commit the data or cancel the update.
AsyncTaskLoader is changed to make use of this so that it doesn't
lose changes.

Change-Id: I3866236b1c22bb9138f2d9f6032b126aeaee2e6e
2013-03-14 19:17:00 -07:00
Scott Kennedy
da2223f897 Remove a method
It was only being called in one location, and the parameter was being
ignored.

Change-Id: Ia853dd8d3898ac3e4c4b2fb3a51d103844b57ca1
2013-03-14 10:47:10 -07:00
Dianne Hackborn
5d122d96a5 Better documentation on permission checking in ContentProvider.call().
Change-Id: I4a85fd17362c2a32e2b1365fcc07ef0336521616
2013-03-13 15:48:12 -07:00
Bjorn Bringert
133e2db873 Merge "Hide VOICE_ASSIST intent DO NOT MERGE" into jb-mr2-dev 2013-03-13 13:28:01 +00:00
Dianne Hackborn
c895be7bc6 Implement limited shared libraries in apks.
You can now declare shared libraries in apks that are
on the system image.  This is like the existing mechanism
of using raw jar files as shared libraries, but since they
are contained in an apk the library can actually be updated
from the Play Store.  And this even (mostly) works.

There are some deliberate limitations on this feature.  A
new shared library *must* be declared by an apk on the system
image.  Installing an update to a system image apk does not
allow you to add new shared libraries; they must be defined
by everything on the base system image.  This allows us to
get rid of a lot of ugly edge cases (shared libraries that were
there disappearing after an update is uninstalled for example)
and give some brakes on apps that happen to be pre-installed
on devices from being able to throw in new shared libraries
after the fact.

In working on this, I ran into a recently introduced bug where
uninstalling updated to system apps would fail.  This was done
to allow for the new restricted users that don't have all
system apps, but conflicts with the existing semantics for
uninstalling system apps.  To fix this I added a new uninstall
flag that lets you switch on the new mode if desired.

Also to implement the desired logic for limitations on declaring
new shared libraries in app updates, I needed to slightly tweak
the initial boot to keep the Package object for hidden system
packages associated with their PackageSetting, so we can look at
it to determine which shared libraries are allowed.  I think
this is probably more right than it was before -- we already
need to parse the package anyway, so we have it, and when you
install an update to a system app we are in this same state
until you reboot anyway.

And having this fixed also allowed me to fix another bug where
we wouldn't grant a new permission to an updated app if its
system image version is updated to request the permission but
its version is still older than whatever is currently installed
as an update.  So that's good.

Also add new sample code showing the implementation of an apk
shared library and a client app using it.

Change-Id: I8ccca8f3c3bffd036c5968e22bd7f8a73e69be22
2013-03-12 12:51:38 -07:00
Bjorn Bringert
964e7d2549 Hide VOICE_ASSIST intent DO NOT MERGE
Bug: 8289964
Change-Id: I49874f379647ff4e85402a298b4181923212a0aa
2013-03-12 19:35:57 +00:00
Jeff Sharkey
f2afddb57d Merge "Handle corrupt RegisteredServicesCache XML." into jb-mr2-dev 2013-03-11 20:25:48 +00:00
Jeff Sharkey
293ad6c674 Handle corrupt RegisteredServicesCache XML.
Avoid getting stuck in infinite loop.

Bug: 8360183
Change-Id: I81728dcfbc35b456c9166cf5c5175d0a376df56f
2013-03-11 13:22:29 -07:00
Elliott Hughes
5043dc2063 am bf8a663c: am 3f7a4990: Merge "Improve the Resource.getQuantityString/getQuantityText documentation."
* commit 'bf8a663c53454f8b8cd7e07344316981022efa10':
  Improve the Resource.getQuantityString/getQuantityText documentation.
2013-03-08 14:44:40 -08:00
Elliott Hughes
bf8a663c53 am 3f7a4990: Merge "Improve the Resource.getQuantityString/getQuantityText documentation."
* commit '3f7a49904cef7ea14808590b63b115a4381537a1':
  Improve the Resource.getQuantityString/getQuantityText documentation.
2013-03-08 13:59:59 -08:00
Elliott Hughes
95d5ab30f2 Improve the Resource.getQuantityString/getQuantityText documentation.
Natural languages differ so much and in such odd ways that you can't
use getQuantityString as an "if" statement. It's really just for grammaticality.
This is explained well in
http://developer.android.com/guide/topics/resources/string-resource.html#Plurals
but we need to make more of an effort to motivate people to read that, and to
at least get the most important point across if they don't read it.

Change-Id: I549b9f3563462c45f2dea34c558185e0714127cd
2013-03-08 11:26:57 -08:00
Jeff Sharkey
94c91dca55 ArrayUtils.indexOf(), containsAll() with tests.
Change-Id: I040164d4e45126e4a6c1df54bd114f47951da560
2013-03-06 16:28:36 -08:00
Amith Yamasani
67df64b3a4 Shared accounts and sharing of apps
API and preliminary implementation for sharing primary user accounts with a secondary user.
AbstractAccountAuthenticator has new methods to retrieve and apply a bundle of credentials
to clone an account from the primary to a restricted secondary user. The AccountManagerService
initiates the account clone when it starts up the user and detects that the user has
a shared account registered that hasn't been converted to a real account.

AccountManager also has new hidden APIs to add/remove/get shared accounts. There might be
further improvements to this API to make shared accounts hidden/visible to select apps.

AccountManagerService has a new table to store the shared account information.

Added ability in PackageManager to install and uninstall packages for a secondary user. This
is required when the primary user selects a few apps to share with a restricted user.

Remove shared accounts from secondary users when primary user removes the account.

Change-Id: I9378ed0d8c1cc66baf150a4bec0ede56f6f8b06b
2013-03-06 09:49:44 -08:00
Jeff Sharkey
237940a092 am 2048fbb1: am c807070c: am 1e5e3748: am 67f29573: am bb2aa63b: am a2e929e1: Tighten enforcement of file modes.
* commit '2048fbb1106a639c6b66298b94ab98eb4c650542':
  Tighten enforcement of file modes.
2013-03-01 17:31:54 -08:00
Jeff Sharkey
2048fbb110 am c807070c: am 1e5e3748: am 67f29573: am bb2aa63b: am a2e929e1: Tighten enforcement of file modes.
* commit 'c807070cb54228f1039cd0a3f2fe14efbe46df3e':
  Tighten enforcement of file modes.
2013-03-01 17:30:45 -08:00
Jeff Sharkey
1e5e3748d4 am 67f29573: am bb2aa63b: am a2e929e1: Tighten enforcement of file modes.
* commit '67f2957331a63474879f68bf1a8d17b60b2188cd':
  Tighten enforcement of file modes.
2013-03-01 17:26:07 -08:00
Jeff Sharkey
67f2957331 am bb2aa63b: am a2e929e1: Tighten enforcement of file modes.
* commit 'bb2aa63be4a9328403a4daa2f93b42a4a7b0b65d':
  Tighten enforcement of file modes.
2013-03-01 17:23:40 -08:00
Jeff Sharkey
bb2aa63be4 am a2e929e1: Tighten enforcement of file modes.
* commit 'a2e929e1df62947b7967258f21fd05b27a571878':
  Tighten enforcement of file modes.
2013-03-01 17:20:51 -08:00
Jeff Sharkey
a2e929e1df Tighten enforcement of file modes.
Bug: 8275867
Change-Id: I4da14f2dd0049aca69636999696c1f3c02b3b792
2013-03-01 16:17:09 -08:00
Bjorn Bringert
bc086862e2 Declare VOICE_ASSIST intent
Bug: 8289964
Change-Id: I241b5166a98a7a462691f0169bf1b6f4fe7b2e0f
2013-03-01 12:59:24 +00:00
Jeff Sharkey
f5e0471703 Merge "Tighten enforcement of file modes." into jb-mr2-dev 2013-03-01 00:44:41 +00:00
Jeff Sharkey
ba761979ee Tighten enforcement of file modes.
Bug: 8275867
Change-Id: I4da14f2dd0049aca69636999696c1f3c02b3b792
2013-02-28 15:57:36 -08:00
Dianne Hackborn
334d9aebc2 New ContentProvider initialization for testing.
Using this turns off app ops checks.

Change-Id: If29d4ca2fe9ddf1a1663d3a824b2f0afe7375862
2013-02-26 16:16:14 -08:00
Dianne Hackborn
7e6f976c87 App ops: turn off content provider ops when running under test.
Change-Id: I3a5084d195de29122b2f5f2a13b5d4f92f22fa92
2013-02-26 13:35:11 -08:00
Dianne Hackborn
efcc1a23a1 App ops: adding operations for reading/writing clipboard.
Change-Id: Ic4cade153618fe86954754a3b3edde64a52a0a9c
2013-02-25 18:02:35 -08:00
Jim Miller
ab8e936e85 Merge "Add explicit userId to AppWidget binder calls" 2013-02-21 00:00:49 +00:00
Jim Miller
a75a883fe9 Add explicit userId to AppWidget binder calls
Keyguard currently relies on being in the system process to grab the
given user's widgets.  When we split keyguard into a new process,
it will need to have access to user-specific info to instantiate a
specific user's widgets.  In order to accomplish this, we add an
explicit userid to each binder call as well as new permission
check to allow keyguard access.

This also fixes a potential race condition of having an incorrect user id
due to an async call to change the user.  Every binder call now has a specific
user id. The user id is either the calling process user's id or an explicit
one passed by applications like keyguard. It is created once when an
AppWidgetManager is instantiated and remains for the lifetime of the object.

Fixed bug where widgets sometimes didn't show up for secondary users.

Moved permission check in AppWidgetService into getImplForUser()

Refactored to use userid from context associated AppWidgetManager instance.

Clean up AppWidgetHost to use userId from Context.

Remove redundant userId check in checkPermission since it's handled by
ActivityManager.handleIncomingUser()

Removed redundant userid check.

Upload after rebase...

Change-Id: Iae3e20f2b342c323bb58768b3d22051510f8268b
2013-02-20 15:41:14 -08:00
Dianne Hackborn
c49f47220a Merge "Fix issue #8228463: contradicting public documentation on what..." 2013-02-20 23:13:25 +00:00
Dianne Hackborn
a53ee35754 Fix issue #8228463: contradicting public documentation on what...
...Intents match an IntentFilter that has no action specified

And various other doc improvements.

Change-Id: I6d881c8aed56c552e36d5db5df4f74c6aa718da7
2013-02-20 15:05:39 -08:00
Michael Wright
1fd2ed58da Merge "Add brightness dialog to SystemUI" 2013-02-20 23:03:18 +00:00
Michael Wright
0087a14d4b Add brightness dialog to SystemUI
Change-Id: If31406c9144bb2583876f08dd54b259d1dfa3601
2013-02-20 14:39:03 -08:00
Svetoslav
b3038ec7cf Adding idle maintenance service.
It is beneficial that there is a mechanism on the platform
to notify applications whether it is safe to perform somehow
expensive operations while the user is not using the device.
Thus, user experience will not be degraded. An example is
discarding of unused blocks on a mounted file system instead
of doing this on every write operation.

bug:8056794

Change-Id: I708bad9d3ce6c8f1d5a1c05c0abf46f81a3d464b
2013-02-15 11:04:11 -08:00
Dianne Hackborn
681533e000 Merge "Fix issue #8176917: Stabillity : Native Crash :" 2013-02-12 00:44:26 +00:00