Commit Graph

217 Commits

Author SHA1 Message Date
Carlos Valdivia
91979be880 System Health: Support expiring tokens
In the past android:customTokens=true authenticators were required to handle
their own token caching. This is detrimental for battery when high traffic
authenticators are constantly spinning up processes to start services to do
file io to check their own caches.  This change allows authenticator
implementers to optionally let the framework do some of the work for them by
providing the framework with a expiration time.

The AccountManagerService will make a best effort to re-use the cached
token if possible.

Bug: 21530782

Change-Id: I16a7edba36a220e3891e55cf61c725c2be863323
2015-06-02 09:58:18 -07:00
Simranjit Singh Kohli
734f8fb69d [ChooseAccount/AccountManager.newChooseAccountIntent Bug Fixes]
Fixing lots of bugs related to the ChooseAccount Activities.
1. Fix jank which is seen when no accounts are present on the device.
2. After addition of the account, return to the user.
3. Don't crash when the user provides null to allowableAccountTypes.
4. Updated documentation of AccountManager#newChooseAccountIntent.
5. Fix NPE.

Bug: 13104800
Bug: 17926560
Bug: 9626001

Change-Id: I0d1913e46560cfb458526a7c930a38049602d8f1
2015-05-22 17:19:21 -07:00
Tor Norbye
80b530afdb Add permission annotations on the AccountManager
Also add some @NonNull and @Nullable annotations.

Change-Id: Ia42b1af21ed14691b2268ea8b0f55d1b8b5ea2a3
2015-05-04 06:29:55 -07:00
Simranjit Singh Kohli
1663b44cfd [Update API]:
Rename accountAuthenticated to notifyAccountAuthenticated and other
changes.

Bug: 20642769
Change-Id: I7e69d6a9492691429af0d7c2f405e01e265fcedd
2015-04-28 12:57:28 -07:00
Simranjit Singh Kohli
6c7c4ada8b [Auth:Last Credentials Timing] : Introducing API
Storing last successful sign-in/authentication timings, and providing that
information as extra's in updateCredentials and confirmCredentials.
Also, adding a new api: AccountManager#accountAuthenticated(Account).

Change-Id: Icd0dac35b13d61bc28a2e045b96caefffeb353be
2015-03-30 11:08:18 -07:00
Esteban Talavera
22dc3b7ba1 New AccountManager method to copy accounts between users.
Adding the copyAccountToUser method which copies an account
along with its credentials to a different user.

Also an extra in the public api to identify the account to migrate
during provisioning.

Bug: 17716971
Change-Id: I2f29f1765ba0d360a3894b13ef86253b7c7d3284
2014-11-14 11:09:27 +00:00
Simranjit Singh Kohli
8778f993ae [RemoveAccount API]: Adding support for intent.
Adding support for intent handling provided by authenticators.

Bug: 18292092

Change-Id: I1e94422bc28e5fd54c454ee6542ff2d30f82849f
2014-11-07 18:37:30 -08:00
Alexandra Gherghina
f7f8fd64c8 Update string for account manager failures
Bug: 14642886
Change-Id: I200e38c7a93990787a3d6e01a583fe8ba193a987
2014-07-28 07:41:40 +00:00
Carlos Valdivia
f193b9a61d Allow authenticators to rename accounts.
Bug: 16390602

Change-Id: I4f7250726a2c7677e0ccaa6e5f995153893d8360
2014-07-21 13:56:45 -07:00
Alexandra Gherghina
999d394ade Ads per-user APIs to manage accounts through the AccountManager
Bug: 16056552
Bug: 14642886
Change-Id: I17ff6c2515285e63c84cecf2f861d10666c393c5
2014-07-17 17:08:49 +00:00
Alexandra Gherghina
c1cf161af0 Modifies APIs for retrieving managed profile accounts.
This is needed for Account Settings UI.

Bug: 13656853
Change-Id: I33129e4b7b33b428a7bf670259accacb60f62d9b
2014-06-12 18:39:33 +01:00
Alan Viverette
8eea3ea559 Add APIs for obtaining themed Drawable from Theme, Context
BUG: 12611005
Change-Id: Ic0057be4e4c2d0c61ce02a019b3f7d0625e3a016
2014-02-03 18:42:24 -08:00
John Spurlock
6090995951 Remove unused imports from frameworks/base.
Change-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906
2013-11-20 11:31:47 -05:00
Joe Malin
64f2227bbc am 8811154e: am 423f8a8c: am 2618ac55: am a37bda7b: am 468d82bb: am 6bf45dc7: am b6a35268: B9257437: Typo in javadoc for AccountManager
* commit '8811154e9369ff936c35f355034ec1f6aafa984e':
  B9257437: Typo in javadoc for AccountManager
2013-06-03 14:34:00 -07:00
Joe Malin
423f8a8c21 am 2618ac55: am a37bda7b: am 468d82bb: am 6bf45dc7: am b6a35268: B9257437: Typo in javadoc for AccountManager
* commit '2618ac55a94a97e29abd9defa93dea30e067b4e4':
  B9257437: Typo in javadoc for AccountManager
2013-06-03 14:27:50 -07:00
Joe Malin
b6a35268cc B9257437: Typo in javadoc for AccountManager
Change-Id: I5349c2a0ba7e831d205f2801daecc24fa9a5b5a6
2013-06-03 12:20:08 -07:00
Amith Yamasani
5a3915b06b UX compliance for error messages
Bug: 9122154
Change-Id: I4a64750f11845a230321450bc6a2955cb73e3b6d
2013-05-30 10:37:38 -07:00
Amith Yamasani
e37c8f781a Merge "Improve API and documentation" into jb-mr2-dev 2013-04-19 19:10:02 +00:00
Amith Yamasani
3b458ad9ee Improve API and documentation
API for querying accounts visible to a specific package.

Improve API and docs for device owner.

Bug: 8657158
Change-Id: I01b8701534f64b383391508a49ae93ed21f22ae0
2013-04-19 12:07:46 -07:00
Carlos Valdivia
1b64c9d315 Fix NPE when restarting ChooseTypeAndAccountActiivty.
Note that this change still leaves things in an imperfect state. Now instead
of ANR with an NPE it will reshow the Choose account activity and then on the
second back, it will go away. So the user isn't hosed. But it is still a sloppy
experience.  Basically the bug fix reveals another not quite as bad bug
(see https://b/8661942).

Bug: 8151602
Change-Id: I44b188f5940d464c2dd81dd0b6b7cae3c189becd
2013-04-19 02:57:42 -07:00
Amith Yamasani
23c8b96a7e Show an error dialog when account type is requested on a limited user
This covers the scenario where an app doesn't find an account of the
required type and requests the account manager to add one of that
type.

Bug: 8537648
Change-Id: I4d9c8842c2d90aa668f16034d3db007dc61714b8
2013-04-10 15:36:54 -07:00
Amith Yamasani
27db46850b Block access to accounts for limited users.
Make sure that apps that have access to restricted accounts can see them.
If they don't have access, they shouldn't be able to add a new account either.
Show an error message in the account picker if the user/app is not authorized.

Change-Id: I117c0b14d7d06c5ac4e66506df156b174567f5f3
2013-03-30 18:25:49 -07:00
kmccormick
da160ec313 am 6eebd6e6: am 6f50c846: am d2c1e947: am 39f864b1: am 5018688b: Merge "Doc update: incorrect method name" into jb-mr1.1-docs
* commit '6eebd6e6b44d7688489c430cad933e971530e43d':
  Doc update: incorrect method name
2013-03-29 14:51:25 -07:00
kmccormick
f783ce5bcf Doc update: incorrect method name
"Bug: 8177983"

Change-Id: Ib8f811a8e82dbff9b4e97cb670dec66342a0df00
2013-03-29 14:33:21 -07:00
Jatin Lodhia
3df7d697ca AccountManager changes for profile seeding.
Add a new error code to AccountManager and remove the check for
limited user during add account to allow Authenticators to seed
account during limited profile startup.

Change-Id: I5a73def9fc3baeb8e6de1b42e923829c335e1668
2013-03-28 13:46:58 -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
Amith Yamasani
12b8e134c1 Move the account picker class name to a config resource.
For customization in derived products.

Bug: 8379133
Change-Id: I1dba4734f322455f0b0dd9c009be2ddc8d6b7d22
2013-03-14 11:43:56 -07:00
Amith Yamasani
c8a1ff4036 Make account cloning API public
Change-Id: If48d93dab49afcaaa301a5a3aa514f3d4dd3bab8
2013-03-08 15:29:55 -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
7a96c39c51 Move lingering services to services.jar.
This helps reduce the pressure on framework.jar, and makes it clear
that it should only be used by the system_server.

Bug: 7333397
Change-Id: I0858904239535380fbf30562b793e277d8c3f054
2012-12-11 09:50:50 -08:00
Amith Yamasani
cb2f707f86 am cb5cb740: am aecee8a9: am 717797db: am f763b717: Merge "Authenticate correct user\'s account when pattern fails multiple times." into jb-mr1-dev
* commit 'cb5cb740b587744150df7414bdc2974144e9167a':
  Authenticate correct user's account when pattern fails multiple times.
2012-11-08 06:17:59 -08:00
Amith Yamasani
2c7bc26a74 Authenticate correct user's account when pattern fails multiple times.
Bug: 7473142

Provide hidden methods in AccountManager for querying accounts and
authenticating for a specific user. Lockscreen is running in the
system process. Allow only system process to access accounts across
users.

Also make sure to launch the lock settings screen on the just reset
user using startActivityAsUser()

Change-Id: Ifefc0039ba2b51396b8bd0268f36d5271a3d8676
2012-11-05 18:17:40 -08:00
Jeff Sharkey
b97c91dbdf am 9fb2695c: am 628025fd: am bd4f2181: Merge "Defer more Account actions until user starting." into jb-mr1-dev
* commit '9fb2695c3ed806a4dee755e730b50935c7bb10f6':
  Defer more Account actions until user starting.
2012-10-18 00:12:35 -07:00
Jeff Sharkey
e4996bbd51 Defer more Account actions until user starting.
Instead of explicitly scanning OWNER accounts, move to using the
"user starting" call path for consistency.

Bug: 7358086
Change-Id: Ied3289a074aafa48259d828db1d68804912589b3
2012-10-17 15:05:52 -07:00
Jeff Sharkey
5a5b3b4928 am cd25032d: am 21973701: am 0dd0b144: Merge "Include all accounts in dumpsys." into jb-mr1-dev
* commit 'cd25032d019259ed70490ec9e653a66367766450':
  Include all accounts in dumpsys.
2012-10-10 14:36:47 -07:00
Jeff Sharkey
6eb9620ff2 Include all accounts in dumpsys.
Allow accounts to be loaded when a user is stopped, but always
validate accounts against a freshly queried PMS cache when the user
actually starts.

Bug: 7276595
Change-Id: I0382064c73123c243bc6f6e5da8fc3d0a8b73442
2012-10-10 14:06:23 -07:00
Jeff Sharkey
86e0935a1f am ebb97455: am 62dee3d8: am 0fca2a3e: Merge "Fix build, only invalidate when creating user." into jb-mr1-dev
* commit 'ebb97455327161157432fc0f3effce27990075e5':
  Fix build, only invalidate when creating user.
2012-10-10 08:42:15 -07:00
Jeff Sharkey
4a55653e34 am abd0c099: am 45ed828a: am c85e16ca: Merge "Make RegisteredServicesCache multi-user aware." into jb-mr1-dev
* commit 'abd0c099c75d85ebca9281c7937b5b5b86f6066f':
  Make RegisteredServicesCache multi-user aware.
2012-10-10 08:42:10 -07:00
Jeff Sharkey
9d0791bf6a Fix build, only invalidate when creating user.
Bug: 7276595
Change-Id: I322f9d76a682b2d45fc556e35381442458168fe5
2012-10-10 00:01:26 -07:00
Jeff Sharkey
6ab72d74b8 Make RegisteredServicesCache multi-user aware.
RegisteredServicesCache is used to track account authenticators and
sync adapters, which can vary based on user.  This change requires
that callers now provide a userId when making cache requests.  It
continues persisting into a single file for now, which is keyed based
on UID.

It now watches for package broadcasts from all users, and scans
packages on-demand.  It changes cache callers to provide a relevant
userId, and evicts cache entries when users are stopped.

Changes SyncManager to only work with accounts from running users,
only kicking off pending syncs once a user is started.

Bug: 7276595, 7316150
Change-Id: I79466a84aa69aa37e4bd9691c5d6221d3662ff29
2012-10-09 21:39:19 -07:00
Dianne Hackborn
d6a2666a39 am 1f7a6220: am cd11b223: Merge "Fix issue #7214090: Need to be able to post notifications to all users" into jb-mr1-dev
* commit '1f7a6220c0935f10f2aab6d297ca033b36a33503':
  Fix issue #7214090: Need to be able to post notifications to all users
2012-09-24 11:03:24 -07:00
Dianne Hackborn
50cdf7c306 Fix issue #7214090: Need to be able to post notifications to all users
Also fix a bunch of system services that should be doing this.  And
while doing that, found I needed to fix PendingIntent to evaluate
USER_CURRENT at the point of sending, not creation.

Note that this may end up with us having some notification shown to
non-primary users that lead to settings UI that should only be for
the primary user (such as the vpn notification).  I'm not sure what
to do about this, maybe we need a different UI to come up there or
something, but showing the actual notification for those users at
least seems less broken than not telling them at all.

Change-Id: Iffc51e2d7c847e3d05064d292ab93937646a1ab7
2012-09-24 10:55:46 -07:00
Jatin Lodhia
dbef28ab73 am 4dc67287: am 836033d6: Merge "Update account list on account picker activity resume" into jb-mr1-dev
* commit '4dc67287774495e192193e888fae6603ed85c4be':
  Update account list on account picker activity resume
2012-09-17 11:29:54 -07:00
Jatin Lodhia
8d16778efd Update account list on account picker activity resume
Activities which help select an account gather the list of accounts only during create and dont update it agian. When a user moves out of the account selection activity by clicking home page, deletes an accout in the background and comes back to the earlier accout selection activity, the deleted account still exists as an option. This cl fixes this by updating the account list on resume.

Bug: 7135608
Change-Id: Idc9a2fa6451b032310c0ad66f6db0e2f0967feeb
2012-09-13 18:23:10 -07:00
Mark Fickett
0d42d5424d Merge "Fix docs typo: startActivityWithResult should be startActivityForResult." 2012-09-05 08:14:03 -07:00
Mark Fickett
ab249e08db Fix docs typo: startActivityWithResult should be startActivityForResult.
Change-Id: Ieb75798475fa5cfaa9bf1f1493e03b9ab27f63e3
2012-09-05 09:45:47 -04:00
Dianne Hackborn
2701f325a6 Merge "Remove Binder.getOrigCallingUid()." into jb-mr1-dev 2012-08-31 16:23:47 -07:00
Amith Yamasani
61f57379ca Centralize the creation of the user system directory
Environment.getUserSystemDirectory(int userId)

Use it all relevant places that was hardcoding it.
Also, wipe out the user's system directory when user is removed, otherwise old state
might be transferred to a new user.

Change-Id: I788ce9c4cf9624229e65efa7047bc0c019ccef0a
2012-08-31 15:33:21 -07:00
Dianne Hackborn
4120375d46 Remove Binder.getOrigCallingUid().
Replaced all remaining places that used it with explicit user
specification.

While doing this, I ran into stuff that was creating PendingIntent
objects (that now need to specify the explicit user they are for),
which are also posting notifications...  but have no way to specify
the user for the notification.

So the notification manager in the system process now also gets a
formal concept of a user associated with the notification, which
is passed in to all the necessary aidl calls.  I also removed the
old deprecated aidl interface for posting/cancelling notifications,
since we now always need a user supplied.

There is more work that needs to be done here, though.  For example
I think we need to be able to specify USER_ALL for a notification that
should be shown to all users (such as low storage or low battery).
Along with that, the PendingIntent creation needs to be tweaked to
be able to handle USER_CURRENT by evaluating the user at the point the
pending intent is sent.

That's for another change, however.

Change-Id: I468e14dce8def0e13e0870571e7c31ed32b6310c
2012-08-31 15:11:13 -07:00
Dianne Hackborn
79af1dd54c Switch public APIs to use new UserHandle class for identifying users.
Gets rid of "yet another integer" confusion.

Change-Id: Id07ea7307aea7c62f0087c6663a1f1c08e2e5dee
2012-08-17 10:36:08 -07:00