Commit Graph

232 Commits

Author SHA1 Message Date
Svetoslav
ce852ddcec Add get_accounts app op
For each runtime permission we have an app op to toggle the
permission for legacy apps as they cannot handle permission
revocations. We were lacking an app op for get_accounts
which prevented the user from controlling access to accounts
regardelss that they change the state of the permission
toggle in the UI. Even worse the permission UI is written
with the assumption that every runtime permission has an
app op and as a result revoking the contacts group (if the
app requests the get_accounts permission) is reset back to
allowed in the UI.

bug:23854618

Change-Id: I9e3f9bfeb320bed561d718db99ee285915d5701b
2015-09-08 17:54:37 -07:00
Ian Pedowitz
6cc066df7a Revert "Revert "Permissions: GET_ACCOUNTS permission cleanup""
This reverts commit 845d14db90.

Bug: 22942480
Bug: 22902898
Change-Id: If2d0e11594284414953c3dd45475fc7ba3366295
2015-08-05 14:25:15 +00:00
Ian Pedowitz
845d14db90 Revert "Permissions: GET_ACCOUNTS permission cleanup"
Temporarily revert ag/735253 until b/22902898 can be resolved with a
proper DMAgent prebuilt drop.

This reverts commit e7ed827a10.

Bug: 22902898
2015-08-04 07:47:37 -07:00
Carlos Valdivia
26ae600b5f Merge "Permissions: GET_ACCOUNTS permission cleanup" into mnc-dev 2015-07-30 21:58:16 +00:00
Carlos Valdivia
e7ed827a10 Permissions: GET_ACCOUNTS permission cleanup
First, getAccounts*() will now return all available accounts depending
on both GET_ACCOUNTS grants and signature matching. This is different
from before where a caller of getAccounts() would need GET_ACCOUNTS to
get any accounts, but if that same caller called getAccountsByType, they
might have gotten back accounts if they shared a signature with the same
developer.

Second, cleaned up some NPEs and javadoc.

This change was motivated by progress on the cts tests.

Change-Id: I2f36226780e074fdf58214b46de3b79d8319ace1
2015-07-30 09:18:53 -07:00
Simranjit Singh Kohli
210baceaa1 [Improve docs for AccountManager]
Currently, the docs for AccountManager are somewhat misleading and may
cause developer errors. To avoid them, we are properly documenting it.

Bug: 21924096
Change-Id: If775a54a09219b0f1623d2ff903085b9d12aa863
2015-07-29 19:43:16 -07:00
Craig Lafayette
3c9c71d36e Prevent null allowableAccounts from crashing
The javadoc for newChooseAccountIntent says that a null
value for the allowableAccounts parameter is valid and
an acceptable default. This CL makes sure that when this
parameter is null, a NullPointerException is not thrown.

Bug: 22475546
Change-Id: Ieb0d67dd02628e1ae5629499b3be3c6382efc9aa
2015-07-14 11:09:58 -04:00
Carlos Valdivia
a3db8acf3d Revert "Revert "Security: AccountChooser shouldn't auto reveal accounts.""
Fixes api stuff.

This reverts commit f2d248db80.

Change-Id: I75c05a17ebde4f245e1f3e0cc22e622d06534c4b
2015-07-10 14:47:07 -07:00
Baligh Uddin
f2d248db80 Revert "Security: AccountChooser shouldn't auto reveal accounts."
This reverts commit c3b3f46d5f.

Change-Id: I6d156e1ad82c052606f76644fe6085f14e82a734
2015-07-10 03:01:47 +00:00
Carlos Valdivia
c3b3f46d5f Security: AccountChooser shouldn't auto reveal accounts.
Bug: 9739125
Change-Id: Ib9032271def423aaafdab2505afaf6b1d3fcad06
2015-07-09 18:18:22 -07:00
Carlos Valdivia
c37ee22714 Tweak GET_ACCOUNTS behavior and improve memory.
Related to recent permissions and system health changes. This change
will make it so that calls to AccountManager#getAccountsByType will work
for the owning account authenticator even if they don't have
permissions. This is pretty fundamental to having a working
authenticator and it doesn't make sense to have it be disabled (or have
authenticators hack around the framework).

Also changed how TokenCache works so that memory usage is still
predictable (no more than 64kb) but token caching won't be at the mercy
of garbage collection. This is important for writing stable cts tests.

Change-Id: Ib31b550616b266ee5a04eb26b04ba0023ca0cb83
2015-06-30 19:30:36 -07:00
Simranjit Singh Kohli
0b8a7c00bd [Modify LastAuthenticatedTimestamp behaviour]:
We should not modify lastAuthenticated timestamp in authenticator
specific api's, as some of the calls maybe used by authenticators
for internal maintainance/upgrade. Only modify the timestamp when
calls effecting accounts is made to non-authenticator developer api's.

Bug: 21959561

Change-Id: I7b2d0c875957b263c4d9b203fe1f33042a65a58f
2015-06-19 17:12:38 -07:00
Carlos Valdivia
6eb73a5778 Revert "Revert "Permissions: Fix account related permissions.""
This reverts commit dcddc47665.

Change-Id: Ie2402167fc7cd3d5e57bf2fba704fdf00cfcb4fe
2015-06-11 14:10:04 -07:00
Carlos Valdivia
dcddc47665 Revert "Permissions: Fix account related permissions."
This reverts commit ffb46022b3.

Change-Id: I4c62b1b5a5bd4e2a5fac76244a16730526ed67fc
2015-06-11 20:04:04 +00:00
Carlos Valdivia
ffb46022b3 Permissions: Fix account related permissions.
Requires updating the docs in AccountManaager as well as the logic in
AccountManagerService.

MANAGE_ACCOUNTS, USE_CREDENTIALS, and AUTHENTCATE_ACCOUNTS are going
away. Where AUTHENTCATE_ACCOUNTS was required we now do signature
matching.

GET_ACCOUNTS is kept but has been grouped under contacts.

Bug: 20136477
Change-Id: Iabbb76dce8d1efc607c1f107911d7ddab598a481
2015-06-11 11:07:47 -07:00
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