History log of /frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
3b2297d05f407839b36d3866987d708b80fc9763 20-Jun-2016 Sudheer Shanka <sudheersai@google.com> Allow call addSharedAccountsFromParentUser with CREATE_USERS permission.

Bug: 29189712
Bug: 29500492
Change-Id: I0fca4951d41c14aa1739e01ca15d674b86a15d7c
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
d04aaa323c3a788d26f18fc66e0a59b47e525b38 13-Jun-2016 Amith Yamasani <yamasani@google.com> More thorough cleansing of expired users

If any /data/system_[c|d]e folders were not erased
when the user was removed (maybe due to a reboot),
make sure they're cleaned up on restart as well
as when the userId is recycled later.

Mark the users' system folders with the correct
serial number for later verification.

AccountManager shouldn't be querying accounts of
partially created/destroyed users.

Change-Id: I4313756b7464f34cd5ce4fb296d61daa50b41fcb
Fixes: 29285673
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
627fc2021dd3cfc65fba046f29f467f4c7362ecc 03-Jun-2016 Fyodor Kupolov <fkupolov@google.com> Delete account from DE and CE databases

When authenticator no longer exists and the user is unlocked, we should
remove accounts from both tables in a single transaction.

Bug: 28910995
Change-Id: Ibabf5d3e5ba561ffb3dda03aef99e358e2f71c58
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
06329e5fb214ce6c2179b7fc7740c0fba41f084a 08-May-2016 Carlos Valdivia <carlosvaldivia@google.com> [Security] Prevent malicious notifications from AMS.

There was a hole in the getAuthToken logic that allowed notifications
resulting from getAuthToken requests using notifyOnAuthFailure=true to
launch arbitrary activites on the device. This is because the
getAuthToken session overrode onResult (unlike addAccount, updateCreds,
or confirmCreds).

Bug: 13787929
Change-Id: Ife1d48835f48416c2f0690f1413a076b69215190
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
4ba55dc462b4e43086bef24b064d069df27e7670 30-Apr-2016 Carlos Valdivia <carlosvaldivia@google.com> Merge "Insulate the account.db from updates." into nyc-dev
a46b112d04fdb0c73a529591b9e1a3a12244e7d9 27-Apr-2016 Carlos Valdivia <carlosvaldivia@google.com> Insulate the account.db from updates.

I think we were getting accounts uninstalled on android devices when
SyncManagers called validateAccounts() while GmsCore was updating.

I try to prevent this by not removing accounts unless the data directory
has actually been removed (which shouldn't happen during updates).

Bug: 25611016
Change-Id: Ib526b3000ad741815d48fd020af2cc19d6205166
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
ce18c8167766f92856f94a8e88e19de4698960e6 28-Apr-2016 Jeff Sharkey <jsharkey@android.com> Introduce "unlocking" vs "unlocked" nuance.

There is a narrow window of time during user unlock where we're
reconciling user storage and dispatching the "unlock" status to
various internal system services. While in this "unlocking" state,
apps need to be told that the user still isn't actually "unlocked"
so they don't try making calls to AccountManager, etc.

The majority of internal services are interested in merging together
both the "unlocking" and "unlocked" state, so update them.

Clarify naming in AccountManagerService to make it clear that a local
list is being used, which mirrors the naming in MountService.

To match UX/PM requested behavior, move PRE_BOOT_COMPLETED dispatch
after the user is unlocked, but block BOOT_COMPLETED dispatch until
after all PRE_BOOT receivers are finished to avoid ANRs.

Bug: 28040947, 28164677
Change-Id: I57af2351633d9159f4483f19657ce0b62118d1ce
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
6eb8c15b7e07e320243fbb34999f4a34fa729ed0 25-Apr-2016 Fyodor Kupolov <fkupolov@google.com> Merge "Return null when user is locked" into nyc-dev
714bbd8539b73f9d8cf396b6e0edd03f968ebfbd 22-Apr-2016 Carlos Valdivia <carlosvaldivia@google.com> Rename GET_PASSWORD_PRIVILEGED and make it signature.

Now named GET_PASSWORD. Now it is just a signature, not privileged.

Bug: 28295831
Change-Id: Ice93b527edced9546639b6c7096aad933c517548
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
27bd37ff3aa4a4b0f84341cb576df7b75596450a 21-Apr-2016 Fyodor Kupolov <fkupolov@google.com> Remove pre-N db after successful migration

Bug: 26279712
Change-Id: I53e4bd1b04b4ae6b94e8b5642d7f11a4edd6f1e4
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
c86c3fdd9a0307b8df6e4bed70f9e514f911858b 18-Apr-2016 Fyodor Kupolov <fkupolov@google.com> Return null when user is locked

In getUserData, peekAuthToken return null instead of crashing when a user is
locked. As per JavaDoc authenticators are expected to handle null return values.

Bug: 28217043
Change-Id: I06d5a2965fe685cad21215958d5d94f413f77677
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
1cab76af8537a275d1af38d25f5692a68e48eed6 13-Apr-2016 Jeff Sharkey <jsharkey@android.com> Make wallpapers direct-boot aware.

If the user's wallpaper isn't direct-boot aware, wait around for
the user to be unlocked, instead of clearing the wallpaper.

Also switch a few classes to using SystemService lifecycle, since
events are dispatched faster than through broadcasts. Fix bug where
ContentService.systemReady() was never called, and make sure
EntropyMixer doesn't risk being GC'ed.

Bug: 26280055
Change-Id: I9fff468a439b868baa68cf11bb6ee9f7d52b7b5a
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
eeca6584cff3858e6993dd4b88f1b55418f07ad2 08-Apr-2016 Fyodor Kupolov <fkupolov@google.com> Make AccountManagerServiceTest work again

It was broken for quite a while. Introduced the following changes:
- Use mockito to mock AppOpsManager and UserManager
- Use MockContext directly and override what is necessary.
RenamingDelegatingContext doesn't work with absolute file names for
database paths, which is the case for system server DBs.

Bug: 26279712
Change-Id: I9f2a3892f9bd7a882d78f0bb7beb8669f7dc8c6f
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
f3d241486b17cbfef7ad9b57aef3454ac3e0e769 11-Apr-2016 Fyodor Kupolov <fkupolov@google.com> Merge "Allow deleting accounts when user is locked" into nyc-dev
35f680893d8ea4bb8501382f3c8f19e523429b24 06-Apr-2016 Fyodor Kupolov <fkupolov@google.com> Allow deleting accounts when user is locked

removeAccountInternal now allows removing account regardless of lock state:
- If user is unlocked, the account is remove from both CE and DE tables
- If user is locked, it will only be removed from DE. syncDeCeAccounts will
remove account data from CE once the user is unlocked.

Bug: 26279712
Change-Id: I734aa474d3d98a85459c9795def83c5dbaaa2536
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
1767fcd5040085ffe7c40e9c8b3790a13d068bc1 07-Apr-2016 Sandra Kwan <sandrakwan@google.com> AccountManager: fix updateCredentials API.

Bug: 26157869
Change-Id: Icd2148db6923383263bcce5ad845bcb1411f5c4e
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
1bb269d8fe9adbf41312e2203e08da34634ae863 02-Apr-2016 Simranjit Kohli <simranjit@google.com> Merge "Fix extra data in cache" into nyc-dev
858511cd2dbb3962da843fe40baba03305396159 10-Mar-2016 Simranjit Kohli <simranjit@google.com> Fix extra data in cache

Reverting the revert.
The original CL(commit a666d74d4bc7e1298314c516d1309571fb87c212) had a
bug in it. It was calling accountExistsCacheLocked(), while holding
accounts.cacheLock. The function accountExistsCacheLocked, was in turn
calling into getUserAccounts, which acquires mUsers. And this causes
trouble. mUsers is a a lock on all accounts, and hence calling it after
holding accounts.cachelock is calling for trouble. Since the locks are
acquired in other order, it causes a potential deadlock issue, which we
discovered later on.

That bug was fixed by commit 0e592733ecbde2b7e7f2aa92001656dfbcae9641.
We already have useraccount object and should reuse it.

This reverts commit 27d0e1fd660a7e92644ab6a2893ac1149f0c0488. This
commit was unneeded as the bug had been fixed by that time.

Change-Id: I5328c31fd485fd2c1c652cd0e7c2c4bded38a5fd
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
51b651aea178fcfca8a3219141f0ecfda1504887 30-Mar-2016 Carlos Valdivia <carlosvaldivia@google.com> introduce GET_PASSWORD_PRIVILEDGED permission.

That will be used to filter in passwords for Session based
AccountManager flows.

Bug: 27590532
Change-Id: I4a6d0540bcff186e416351a6f719600ce35d86a0
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
ef73aaa3c33635ab8d5901e83e0471ecd6f03e9b 25-Mar-2016 Fyodor Kupolov <fkupolov@google.com> [FBE] Split accounts.db into two DE/CE databases

Previously the database lived in /data/system/user/X/accounts.db.
It is now split into two databases:
- DE database(/data/system_de/X/accounts_de.db) is opened when the user is
running in the locked state. It contains the following tables:
-- Grants, Shared_Accounts, Debug_Table, Meta.
-- Accounts table only contains name/type/_id
- CE database (/data/system_ce/X/accounts_ce.db) is opened when the user is
unlocked. It contains remaining tables:
-- Authtokens, Extras, Accounts

CE database is attached to the DE database by using ATTACH DATABASE command.
AccountManager code interacts through a single interface of DeDatabaseHelper,
which includes DE, and CE when the user is unlocked.

Bug: 26279712
Change-Id: I66555b46bdc16fa4a6093470d2500af09d1fbf25
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
a04c7a7c6442b8c6f87f5dd11fc5659cdb92decc 18-Mar-2016 Jeff Sharkey <jsharkey@android.com> Mark more Bundles as being defusable.

They're destined for the system, so they're okay to look inside.

Bug: 27726127
Change-Id: Ic85c308a8efe6f9b8652952717c72b3c663d328a
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
a0a58a2fd5cbc1bb8056227bb04f276b364c6e96 17-Mar-2016 Jeff Sharkey <jsharkey@google.com> Merge "Refactoring FBE APIs based on council feedback." into nyc-dev
8a372a0a280127743ce9a7ce4b6198c7a02d2a4f 16-Mar-2016 Jeff Sharkey <jsharkey@android.com> Refactoring FBE APIs based on council feedback.

Mostly consists of removing the word "encryption" from most APIs,
since we can't actually make promises about the data being encrypted.

Bug: 27531029
Change-Id: Iace9d7c4e64716abf86ed11847c40f3947e1d625
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
ec1a918f44d692271ea65cf5ec88bf79b9d1a96d 17-Mar-2016 Erik Wolsheimer <ewol@google.com> Prevent NPE via use of uninitialized mUserManager

BUG: 27718356
BUG: 27336841
Change-Id: Id603835b0463ca32f6a27ec255df7077f2427b06
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
358e51f3d186719a6a5b1f346f55c5426925055f 15-Mar-2016 Ian Pedowitz <ijpedowitz@google.com> Revert "Permissions: Get rid of GET_ACCOUNTS"

This reverts commit d39600585bcb720d739ef6f0091066e3d4f77765.

Bug: 27665091
Change-Id: I7d017ba7062ac594225229436d2877c7d21fb065
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
d39600585bcb720d739ef6f0091066e3d4f77765 11-Feb-2016 Carlos Valdivia <carlosvaldivia@google.com> Permissions: Get rid of GET_ACCOUNTS

Second attempt. Still need to add strict mode violation checks and
logging.

Bug: 21901286

This reverts commit bf33bd4d31cfec895c96990525b0cb856407c8d6.

Change-Id: I5d73343544c32ce4fc4c377ba44db8e677a1287d
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
6ede9c3d2260552f64c487ea4dc7b687f3b9aa58 11-Mar-2016 Carlos Valdivia <carlosvaldivia@google.com> Logging to KEY_INTENT security failure

To help debugging we would like to know the targetPackageName and uid of
the KEY_INTENT that is being rejected.

Bug: 27598664
Change-Id: Idcf1eea82a96913947975b6fe3aa1e9c6e5109a7
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
1c9026de576ba7eab05125328c3ae6379af3db91 23-Feb-2016 Sandra Kwan <sandrakwan@google.com> AccountManager: fix residue data when authenticator is uninstalled.

Bug: 20447341
Change-Id: Ie7bbc0300e1f902f18a826ef45b9cbae445651ec
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
27d0e1fd660a7e92644ab6a2893ac1149f0c0488 25-Feb-2016 Simranjit Kohli <simranjit@google.com> Revert "[Fix extra data in cache]"

This reverts commit a666d74d4bc7e1298314c516d1309571fb87c212.

Bug: 27314050
Change-Id: I1562c51751f983a49a11e1d37d936974e17388ef
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
041232a7f9f1bcd602c0a0dd580c4f603d90a651 23-Feb-2016 Fyodor Kupolov <fkupolov@google.com> Copy shared accounts after the user is unlocked

Previously accounts were copied in onUserStarted. At that stage only
encryption-aware authenticators could run.

Bug: 27274434
Change-Id: I4f2dbdc09e81087d960067e7930ce3b9cff829ab
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
0e592733ecbde2b7e7f2aa92001656dfbcae9641 22-Feb-2016 Benjamin Franz <bfranz@google.com> Use UserAccounts handed into accountExistsCacheLocked

Use the object we get handed rather than obtaining the one for the
calling user. We're previously clearing the caller, so the calling user
might not be the same as the one we used to obtain accounts object.

Bug: 27285299
Change-Id: Ie384bca83779593f6569bccea3c2851083ace31d
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
a666d74d4bc7e1298314c516d1309571fb87c212 07-Aug-2015 Simranjit Singh Kohli <simranjit@google.com> [Fix extra data in cache]

It seems that some account authenticators call getData before account
is added, which initializes the cache for that account.
1. We now don't initialize the cache if the account is not on the device.
2. We now use locking.

Bug: 23018710
Bug: 20071745
Change-Id: Ie59ca6b4e575f524a9d3bf286c3bd95abce4a596
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
8212ae0aee1700b9c287ebadf15af8dacdc8eae6 10-Feb-2016 Jeff Sharkey <jsharkey@android.com> Consistent naming for internal storage APIs.

Also completely remove a few confusingly named deprecated APIs.

Change-Id: Ia7e4ea3190a97f0a7dfa9bebf2118da0866ec38f
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
bf33bd4d31cfec895c96990525b0cb856407c8d6 02-Feb-2016 Carlos Valdivia <carlosvaldivia@google.com> Revert "Permissions: Get rid of GET_ACCOUNTS"

This reverts commit 918c55a67c2bf0cec79f75dec6ca468e914a5fd1.

Change-Id: I995f134336bf61ac1f21052355900ae89d0d6694
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
8a38a136e17a52e821e51c23e9e83f846045173a 27-Jan-2016 Carlos Valdivia <carlosvaldivia@google.com> Need to call getApplicationInfo from System id

Otherwise it trys to enforce INTERACT_ACROSS_USERs when a package is in
a different INTERACT_ACROSS_USERs. Still figuring out why this is
triggering for the regular getApplicationInfo call.

Change-Id: I9b07646aeaf35e2db4a6849e217129077b50b624
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
3cdbc806ff52d02bf215a5aa696b670434d9f401 27-Jan-2016 Carlos Valdivia <carlosvaldivia@google.com> Merge "Permissions: Get rid of GET_ACCOUNTS"
0b84b456a79d83527665a5ac399cba73f1a85821 21-Jan-2016 Sandra Kwan <sandrakwan@google.com> AccountManager: add finishSessionAsUser api.

Change-Id: I9a08d957a9b25be4c6cf12e4ed35cdc0bfbb8605
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
918c55a67c2bf0cec79f75dec6ca468e914a5fd1 14-Jan-2016 Carlos Valdivia <carlosvaldivia@google.com> Permissions: Get rid of GET_ACCOUNTS

Bug: 21901286

Change-Id: Id2c42f4d449a32c88078d80dcf952d15e67d536c
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
390c9d2d91117c767b27e33e906f7830b4c0a4dc 12-Jan-2016 Sandra Kwan <sandrakwan@google.com> AccountManager: add isCredentialsUpdateSuggested API.

Change-Id: I27e0db0345f3431b796a944740dab767b45f7871
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
12747879b0204b9dfee997eddc981d09289e8b77 07-Dec-2015 Amith Yamasani <yamasani@google.com> User creation with an intent

New API for an app to request creating a new user with
a given user name and seed account information for the
SetupWizard to use when that user is switched into.

Also adds system APIs to read the seed account data from
UserManager.

Bug: 22776757
Change-Id: I0bc3f11ee19c15e0ee2a908c88d98b13296cc30d
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
f56a60fab2b51b769130961ddf19e5d79e176bfe 13-Jan-2016 Sandra Kwan <sandrakwan@google.com> Merge "AccountManager: make account session APIs SystemApi."
a578d11470d2c782bc8b54bc2a9154e7f5b68354 17-Dec-2015 Sandra Kwan <sandrakwan@google.com> AccountManager: make account session APIs SystemApi.

Make startAddAccountSession, startUpdateCredentialsSession and
finishSession Apis SystemApi.

Change-Id: Iaedfe546e9b87a2ee8dd2d19e8c28b7f1d59c111
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
cd65448ccd13c4c2d0fe9e9623fec3a898ab9372 09-Jan-2016 Jeff Sharkey <jsharkey@android.com> Even more PackageManager caller triage.

Finish moving all UID/GID callers to single AIDL method that requires
callers to provide flags.

Triage AppWidgets and PrintServices, which currently can only live on
internal storage; we should revisit that later.

Fix two bugs where we'd drop pending install sessions and persisted
Uri grants for apps installed on external storage.

Bug: 26471205
Change-Id: I66fdfc737fda0042050d81ff8839de55c2b4effd
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
b6c0ce4ac915cd5ab9a308cb0a4861c4e2cd7dfb 05-Nov-2015 Benjamin Franz <bfranz@google.com> Allow device and profile owner to modify accounts

The user restriction DISALLOW_MODIFY_ACCOUNTS and the policy
DPM.setAccountManagementDisabled can now be circumvented by a device
or profile owner. This allows the device or profile owner to add
accounts without briefly having to remove the policy.

Bug: 22030831
Change-Id: I2b59c4b3ad354287d7a00f21b2afef072d12517d
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
9b041747d164719dad8c79463b68a97fba751f67 12-Dec-2015 Andreas Gampe <agampe@google.com> Frameworks/base: Fix typo in AccountManagerService

Fix an unintended tautology.

Bug: 19797138
Change-Id: Iec19b5c9c80b9f49a61b0dc3c9a9d5c13c84a992
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
db9df39992ce6a1a09c2f26cde639baf126fa6f5 05-Dec-2015 Sandra Kwan <sandrakwan@google.com> Merge "AccountManager: add finishSession(...) API."
920f6ef983024c15fbd47f7be7fa9204559f2514 10-Nov-2015 Sandra Kwan <sandrakwan@google.com> AccountManager: add finishSession(...) API.

Adding finishSession API to AccountManager and
AbstractAccountAuthenticator.

Change-Id: I153dd2bb6fe01d2e4b10b41e8b553f59da26bd29
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
9d8a1048bb666c68402dce031bebfa07c92a42db 04-Dec-2015 Jeff Sharkey <jsharkey@android.com> Handle non-encryption-aware accounts and sync.

The system can now boot in a "locked" state where only encryption
aware (EA) components can be safely started. When in this state,
PackageManager already filters away non-EA components, but system
services like AccountManager and SyncManager need to carefully handle
these temporarily "missing" components.

As a guiding principle, all known Accounts are still present when
the device is locked, but communication with underlying non-EA
authenticators is blocked.

To keep things simple for now, all SyncManager requests are kept
dormant until the user enters the unlocked state.

The core of this logic is that RegisteredServicesCache now works
with all components regardless of EA status, which prevents us from
accidentally thinking a service was removed when the user is locked.

Bug: 25945136
Change-Id: I8714121f6236b00821769023c4df7de1c8a99944
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
e68c37eead0b7255d307af91ca284eaee419c944 13-Nov-2015 Sandra Kwan <sandrakwan@google.com> AccountManager: add startUpdateCredentials API.

Adding startUpdateCredentials API to AccountManager and
AbstractAccountAuthenticator.

Change-Id: Id9a1ff86764f2fde01fd8482594e4ae34e1f3bd1
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
7881228736fd5f3f4ecf25d4808dc004c03b54d1 04-Nov-2015 Sandra Kwan <sandrakwan@google.com> AccountManager: add startAddAccount API.

Adding startAddAccount API to AccountManager and
AbstractAccountAuthenticator.

Change-Id: I29e1defb2181ece1281534db0e36b28457085148
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
e17ac1569793c333bb4dce86607a342e7c982ae7 07-Nov-2015 Jeff Sharkey <jsharkey@android.com> More APIs for encryption-aware apps.

Apps can mark manifest components as being encryption-aware, which
means they can safely be run before the credential encrypted storage
is available.

Start adding filtering logic so that we only return these components
when a user is running "with amnesia." That is to say, only device
encrypted storage is available, so the user is running but with only
partial knowledge of its data.

To avoid calling into ActivityManager with the PackageManager lock
held, we quickly determine user state and splice the state into the
flags for later per-component evaluation.

Bug: 22358539
Change-Id: Idc56ec29f1ef04da8963e004314d7f5e47400997
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
ddae02634eda922c4ff9355b650032aec7e7d12f 30-Oct-2015 Carlos Valdivia <carlosvaldivia@google.com> Get rid of getTypesVisibleToCaller log spam. am: 02bffab9dc am: 1fd46d1581 am: b45f1b8ad1
am: 30fce1c0ab

* commit '30fce1c0ab4f0d3dc4f927699888165ac9d21706':
Get rid of getTypesVisibleToCaller log spam.
02bffab9dc6cc50dd0efdb4bff4feaa9672de5ea 30-Oct-2015 Carlos Valdivia <carlosvaldivia@google.com> Get rid of getTypesVisibleToCaller log spam.

Bug: 25062620
Change-Id: Ia3080c501a288522a5b1de88d50f365357418ba8
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
02cb6e773b323a0d54b21f43460a23f668b7727c 19-Sep-2015 Fyodor Kupolov <fkupolov@google.com> Added --restricted option for create-user command

Also moved restricted profile create/setup logic from Settings to
UMS.createRestrictedProfile.

Bug: 24212155
Bug: 24303609
Change-Id: I0346a3368de53f4bb4b6e054349f19adac959d7f
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
9249a9097707bb57ae0a7d114eff54bc82ad462d 26-Sep-2015 Bart Sears <bsears@google.com> Revert "Added --restricted option for create-user command"

This reverts commit 737b216b5c28f7d7162f219136d4e8a9eb1a486b.

Change-Id: I4c43967933bb2e46cdb8ad6e643d7037d722cab2
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
737b216b5c28f7d7162f219136d4e8a9eb1a486b 19-Sep-2015 Fyodor Kupolov <fkupolov@google.com> Added --restricted option for create-user command

Also moved restricted profile create/setup logic from Settings to
UMS.createRestrictedProfile.

Bug: 24212155
Bug: 24303609
Change-Id: I5f0d48bcbd3c0b51927926b874fd057c15ac5219
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
6d44e59c96fa491a60a67b585374b54e7a92e3ca 11-Sep-2015 Svetoslav <svetoslavganov@google.com> am 37d0e13a: am 572a78cd: am 9d4cad8b: am b1cebd9e: am 5579e41c: Add op package to the UID special case handling in account manager.

* commit '37d0e13ad3be7fddbce991bef263ac4375e28c22':
Add op package to the UID special case handling in account manager.
5579e41c6f81bba1fc1e8cc53186957e287b5dad 11-Sep-2015 Svetoslav <svetoslavganov@google.com> Add op package to the UID special case handling in account manager.

The account manager has a hardcoded rule to change the calling
UID if the caller is the system and another UID is passed in.
We have to do the same acrobatics for the app op package as if
the UID changes the opPackageName will not match the new UID.
If we used the passed in UID we should also use the passed in
op package name.

bug:23968092

Change-Id: I0c0c2a720e9edbf82001952929d990702f8650ca
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
f3f02ac931d04e6ba4393e27558cd317cb1e6b44 08-Sep-2015 Svetoslav <svetoslavganov@google.com> 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: I12b83dfd22974d130e5b8e7a195421120813e2db
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
ce852ddcecefc6b3e1265462f5c8670bd0e4ace1 08-Sep-2015 Svetoslav <svetoslavganov@google.com> 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
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
06a484adb93c6c969321147b07112684383305f6 22-Aug-2015 Fyodor Kupolov <fkupolov@google.com> Non-system users can now have restricted profiles

In the non split system user, only USER_OWNER is allowed to have restricted
profiles. This is now changed in split user mode, where multiple secondary
users can have restricted profiles.

Added UserInfo.restrictedProfileGroupId field, which defines parent/child
relationship between secondary users and linked restricted profiles. Adjusted
shared accounts handling logic to not assume that USER_OWNER is the only owner.

Bug: 23191995
Change-Id: I5f3fc2aa4f229103d6e75ec2c3dfce866b8007de
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
a3721e1cc855436c6048ca58134997bfce12ad1a 11-Aug-2015 Carlos Valdivia <carlosvaldivia@google.com> Fix deadlock.

AccountManagerService can't ever synchronize on mUsers within a block of
code locked by UserAccounts.cacheLock. That will lead to deadlocks.

This change fixes a case where we were doing that in
getAccountsInternal(). Also I have purgeOldGrantsAll() run off the the
main thread.

Bug: 23036400
Change-Id: I8634691ca54c57a6e83633baba549226fdcd1064
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
b77d8b60857be5f5724b080ca42d2dfb2755e0fb 08-Aug-2015 Simranjit Singh Kohli <simranjit@google.com> [Fix getAccounts MANAGE_USERS permission]

Make code having potential to call userInfo inside clearIdentity.
Bug: 22917218

Change-Id: If95fb7c0ec36a2f5c737f04bc7d8af95b44fea22
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
6cc066df7a79eb9f3cdf7b41dc9307f75c413c09 05-Aug-2015 Ian Pedowitz <ijpedowitz@google.com> Revert "Revert "Permissions: GET_ACCOUNTS permission cleanup""

This reverts commit 845d14db9066c3262f270237b52e315aa71508b2.

Bug: 22942480
Bug: 22902898
Change-Id: If2d0e11594284414953c3dd45475fc7ba3366295
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
845d14db9066c3262f270237b52e315aa71508b2 04-Aug-2015 Ian Pedowitz <ijpedowitz@google.com> 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 e7ed827a104ba005b93faa2edb3bc77f72b240ec.

Bug: 22902898
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
e7ed827a104ba005b93faa2edb3bc77f72b240ec 27-Jul-2015 Carlos Valdivia <carlosvaldivia@google.com> 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
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
2062eeff0156bc4e119398f1736e699d90ad8345 22-Jul-2015 Svet Ganov <svetoslavganov@google.com> Add a privileged permission to get user accounts

bug:22602794

Change-Id: I6e5429f0eb5f2cb274d4740755070e588735e179
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
ba0b10af5ffd568ce7ad180a5c6a833e9419cabe 17-Jul-2015 Simranjit Singh Kohli <simranjit@google.com> [Fix MANAGE_USER permission in AccountManagerService]
It seems that curently there were situations where the init of
Accounts in cache could trigger MANAGE_USER permission needed errors.
The callers should make sure they are calling it after clearing
identity.

Bug: 22492964
Change-Id: I44e890ff03a3bf144c907f2692dc1c6be8816f11
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
c37ee22714ddec1104ba3a2189cf77924ac27812 18-Jun-2015 Carlos Valdivia <carlosvaldivia@google.com> 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
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
0b8a7c00bd9433862e7867f6780fe3cd5771ee7d 19-Jun-2015 Simranjit Singh Kohli <simranjit@google.com> [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
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
17de4b2a73996366ff3d7759793a6809654caebe 12-Jun-2015 Chris Wren <cwren@android.com> Merge "remove usage of deprecated method setLatestEventInfo" into mnc-dev
1ce4b6d3c6cb5b2eb9c9d00472be12245db92427 11-Jun-2015 Chris Wren <cwren@android.com> remove usage of deprecated method setLatestEventInfo

Bug: 18510449
Change-Id: I56a77991c729990e501f402e007dfa79ee57621e
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
6eb73a577850a4b6ddb06fd746f09a6c1d124f34 11-Jun-2015 Carlos Valdivia <carlosvaldivia@google.com> Revert "Revert "Permissions: Fix account related permissions.""

This reverts commit dcddc476651deb72a27798de56eef584e5be5d32.

Change-Id: Ie2402167fc7cd3d5e57bf2fba704fdf00cfcb4fe
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
dcddc476651deb72a27798de56eef584e5be5d32 11-Jun-2015 Carlos Valdivia <carlosvaldivia@google.com> Revert "Permissions: Fix account related permissions."

This reverts commit ffb46022b30dffdf1cc4cbd08d4bcbe51e1f8814.

Change-Id: I4c62b1b5a5bd4e2a5fac76244a16730526ed67fc
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
ffb46022b30dffdf1cc4cbd08d4bcbe51e1f8814 09-Jun-2015 Carlos Valdivia <carlosvaldivia@google.com> 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
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
e736001af9e011f121fdb85c92637796304dea9a 04-Jun-2015 Amith Yamasani <yamasani@google.com> Allow packagemanager checks for secondary user packages

Clear calling identity when calling into package manager for
package info.

Bug: 21613139
Change-Id: I0655122f69cc886a395b7195d108222697769b06
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
91979be8804232a04da2bf36cdd857ee7da04479 22-May-2015 Carlos Valdivia <carlosvaldivia@google.com> 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
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
6a184878f801f8511f25515eda482e8905495f17 19-May-2015 Simranjit Singh Kohli <simranjit@google.com> [Fix Potential for error]:

Init for accounts maybe called when non-system app asks for accounts.
That might lead to deletion of accounts and broadcast from the user,
which requires permission. Hence, we should clear calling identity
before requesting it.

Bug: 21140169

Change-Id: I057ac6778ea53d3f96b3e5c42fe3a2fe60c3cf28
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
490d23bf55360219652d5177baefcba9377e2f4d 30-Apr-2015 Simranjit Singh Kohli <simranjit@google.com> Merge "[Update API]: Rename accountAuthenticated to notifyAccountAuthenticated and other changes." into mnc-dev
1d0c1a6ffc8f172b10f2cdf25e27064db0d25c45 09-Apr-2015 Simranjit Singh Kohli <simranjit@google.com> AccountsDb Logging]: Introducing logging in accountsDb.

This CL introduces logging for various functions like add/remove accounts,
clear/set tokens. It is made sure not to log any PII in the new table.

Bug: 18168971

Change-Id: Iacc3e7e80a640fcb113886443172809e8f7bee21
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
1663b44cfd5fe589183dae5db769c843870cb5db 28-Apr-2015 Simranjit Singh Kohli <simranjit@google.com> [Update API]:
Rename accountAuthenticated to notifyAccountAuthenticated and other
changes.

Bug: 20642769
Change-Id: I7e69d6a9492691429af0d7c2f405e01e265fcedd
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
82d01782b3ca4fa7b0274d4aad300da505de7843 10-Apr-2015 Simranjit Singh Kohli <simranjit@google.com> [Fix confirmCredntials flow]

This CL contains 2 fixes:

1. On a successfult confirm credential, lastAuthenticatedTime was
not getting updated. This gets fixed.

2. Historically, confirmCredential used to work for accounts NOT on
the device. Setting lastAuthenticated time only for existing
accounts and preventing crash if account is not on the device.

Bug: 20141809
Change-Id: I301d49cbc4a594af6110366ef6f55350f74d250d
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
3580cd0b5223837597cdc714180158495a866aa4 31-Mar-2015 Simranjit Singh Kohli <simranjit@google.com> Merge "[Auth:Last Credentials Timing] : Introducing API"
6c7c4ada8b0ce5f7027fd7b87dc8848b42fa5a0c 24-Feb-2015 Simranjit Singh Kohli <simranjit@google.com> [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
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
4a357cd2e55293402d7172766f7f9419815fc1e8 19-Mar-2015 Alan Viverette <alanv@google.com> Replace usages of deprecated Resources.getColor() and getColorStateList()

Change-Id: I8f64fe6c4c44a92ff6d07250223ba590a1d691b0
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
33d3c53da021f0d044028860ace0f4ad817273f5 11-Feb-2015 Alex Klyubin <klyubin@google.com> resolved conflicts for merge of 517e0274 to lmp-mr1-dev-plus-aosp

Change-Id: Ic20b6c8851458483dd73a144bd5ae6e8d141e62a
b9f8a5204a1b0b3919fa921e858d04124c582828 03-Feb-2015 Alex Klyubin <klyubin@google.com> Move hidden ApplicationInfo flags into a separate field.

The public API field android.content.pm.ApplicationInfo.flags can
support only 32 flags. This limit has been reached. As a short term
workaround to enable new public flags to be added, this CL moves flags
which are not public API into a separate new field privateFlags and
renames the affected flags constants accordingly (e.g., FLAG_PRIVILEGED
is now PRIVATE_FLAG_PRIVILEGED).

The new privateFlags field is not public API and should not be used
for flags that are public API.

The flags that are moved out of ApplicationInfo.flags are:
* FLAG_HIDDEN,
* FLAG_CANT_SAVE_STATE,
* FLAG_FORWARD_LOCK, and
* FLAG_PRIVILEGED.

NOTE: This changes the format of packages.xml. Prior to this CL flags
were stored in the "flags" attribute. With this CL, the public flags
are stored in a new "publicFlags" attribute and private flags are
stored in a new "privateFlags" attribute. The old "flags" attribute
is interpreted by using the old values of hidden/private flags.

Change-Id: Ie23eb8ddd5129de3c6e008c5261b639e22182ee5
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
48fcd4e175864a3f0de561d8116637179c0ce489 02-Dec-2014 Marvin Paul <marvinpaul@google.com> Added explicit sort order when fetching accounts.

In SQLite, if a sort order is not specified then the ordering is
undefined. In pre-L, SQLite would order accounts by the primary key.
But in L, the newer SQLite version appears to be ordering accounts by
the name.

Bug 18453759

Change-Id: I6bf2b0de59eca4c69472b4279b9e4194c3d3471e
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
22dc3b7ba111e27bce99a7cce966598e7873508c 31-Oct-2014 Esteban Talavera <etalavera@google.com> 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
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
8778f993aeb7ec3df88aa0b244381253257bafe2 06-Nov-2014 Simranjit Singh Kohli <simranjit@google.com> [RemoveAccount API]: Adding support for intent.

Adding support for intent handling provided by authenticators.

Bug: 18292092

Change-Id: I1e94422bc28e5fd54c454ee6542ff2d30f82849f
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
ae7034aaf092adb52e7d1b5b86b2986e91295b9f 22-Sep-2014 Amith Yamasani <yamasani@google.com> Fix regression in launching CantAddAccountActivity for correct user

This activity should be launched for the user calling addAccount()

Bug: 17608124
Change-Id: I5d7e47bc625442494dc322ccafdc25f5f5c6aa7b
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
23f58260bd70dc9ca2787f54093ec0369dc3f02c 05-Sep-2014 Carlos Valdivia <carlosvaldivia@google.com> We shouldn't delete accounts when a package is being updated.

Bug: 17158237
Change-Id: Icbf9e672a6a698737b08ed39c78a64c161a7b802
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
07ad8dc2087aa02da48353acc19ba82e62d99f82 01-Sep-2014 Kenny Guy <kennyguy@google.com> Use context for user when calling notifyAsUser

Create a context for the user the notification is
being posted for when using NotificationManager.notifyAsUser.

Bug: 17002733
Change-Id: Ie41d27bbb781ca38cc9bc910bd4410b8862edee1
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
255dd04271088590fedc46c8e22b2fd4ab142d39 19-Aug-2014 Selim Cinek <cinek@google.com> Added notification color to all system notifications

Bug: 17128331
Change-Id: I81a94510ef51b99916f314c0dd65852426a1fbeb
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
4e68b6572306fb4a44e78b3cf2b48fb943e69cbe 25-Jul-2014 Adili Muguro <adili.muguro@sonymobile.com> Fixed a NullPointerException in AccountManagerService.

Change-Id: If65d7870c609ae6c7467e26978ffd0ce0d52f518
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
f193b9a61d0b14d13bb7f8aec42a21154672e5ec 18-Jul-2014 Carlos Valdivia <carlosvaldivia@google.com> Allow authenticators to rename accounts.

Bug: 16390602

Change-Id: I4f7250726a2c7677e0ccaa6e5f995153893d8360
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
999d394adee533c55fce38bd632ffd4f1af91362 03-Jul-2014 Alexandra Gherghina <alexgherghina@google.com> Ads per-user APIs to manage accounts through the AccountManager

Bug: 16056552
Bug: 14642886
Change-Id: I17ff6c2515285e63c84cecf2f861d10666c393c5
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
c1cf161af036e0f337b58ef0739a8ff2e42f01e7 05-Jun-2014 Alexandra Gherghina <alexgherghina@google.com> Modifies APIs for retrieving managed profile accounts.

This is needed for Account Settings UI.

Bug: 13656853
Change-Id: I33129e4b7b33b428a7bf670259accacb60f62d9b
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
da1350f28011ef7ed6b02d514c3a86a8cc8007de 08-May-2014 Sander Alewijnse <salewijnse@google.com> AccountManager cannot modify accounts according to device policy.

Change-Id: Ied03b16c31312f7a4a934616c3c25b2481de818e
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
5934dbc9f12936b7faf592660a28b4bbcff0cdd0 21-Feb-2014 Amith Yamasani <yamasani@google.com> Abort removing account if prohibited by policy

Bug: 13077993

If an EDU device was marked as prohibited from adding/removing accounts, it was throwing
an error but still continuing to remove the account. This fixes the problem by aborting
the removeAccount steps.

Change-Id: Ie7f157c5397a7391aab6f37c8a4331479f1b451b
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java
9158825f9c41869689d6b1786d7c7aa8bdd524ce 22-Nov-2013 Amith Yamasani <yamasani@google.com> Move some system services to separate directories

Refactored the directory structure so that services can be optionally
excluded. This is step 1. Will be followed by another change that makes
it possible to remove services from the build.

Change-Id: Ideacedfd34b5e213217ad3ff4ebb21c4a8e73f85
/frameworks/base/services/core/java/com/android/server/accounts/AccountManagerService.java