Fix this long-standing multi-threading issue in Bundle
when multiple threads are trying to read from a Bundle
and conflict to due unparceling.
There are two critical sections this protects: writing
the bundle in to a parcel (when it is doing this from
the bundle's already parcelled representation), and
unparcelling a bundle into its map of entries.
Change-Id: I5470002f090e63dd623a573da6c204d3b5b661f4
The unit for the battery charge counter is in micro-Ampere-hours, not coulombs.
We store the value as uAh but display it in dumpsys as mAh.
Bug:27174034
Change-Id: Ib5cc1ee1c5c191336a3e1f18dbb12c38e833f8d0
GmsCore will use different filenames to distinguish a security update
from a normal update. (update.zip for normal update and update_s.zip for
security update.) So, if framework observes the filename as
"update_s.zip", write command "--security" to BCB. This cmd ask the
recovery image to choose the right background string for update.
Bug: 27837319
Change-Id: I2ef12267a6be57d8a81f7f9f34c09aea54530c1f
Use a holder for an uncommon Pattern instance in FileUtils.
Allows to compile-time initialize:
* android.os.FileUtils
Bug: 28174137
Change-Id: I4a7a388795a96678b4b26e4f2c02b1117d6a67f6
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
Exports SOC specific low power state info to batterystats service.
BatteryStats service queries the powerHAL module whenever and
updates the HistoryStepDetails whenever setBatteryState is called by the
BatteryService. The stats get appended to the battery history whenever
there is a change in the battery level.
Bug: 26564574
Change-Id: I02b4db00aec0c69d1558492224f3a4dc1c386fa6
am: c6002d0
* commit 'c6002d0819a23f25dfc7fc87916d5fd82a7c4a67':
Make "work mode on dialog" show personal challenge in unified work lock
Change-Id: I2170df9c34e825783dd6bfd472b7243422b2a71c
am: 13da561
* commit '13da5613e2fce0ca2d5682fd202234856d2206e9':
Cleanup of the PackageInstaller API - Frameworks
Change-Id: Ibe4a6258c6437a9e86ed25e242301ca6d6635d26
The PackageInstaller app manages side-loading apps as well
as permission management. It should be updatable, hence
should rely on system APIs to talk to the platform. This
is the first step of defining an API boundary.
Change-Id: I9814eafd0b22ae03b4b847a7007cdbf14c9e5466
Adds setSustainedPerformanceMode(boolean) API for applications to set
the mode for a given window. The mode will be disabled automatically when the
window is no longer in focus.
Bug: 28150358
Change-Id: Ibe8bc564eeaaccbcaad5c4f792cda16da931dffd
Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
am: 67288c5
* commit '67288c5b6f05e18e85dd9a520f273d311952276f':
Consolidate the HealthStats UI to only use milliseconds.
Change-Id: I8ea14a4502f124daee32c0ef92130200431f04e7
BatteryStats uses a mix of microseconds and milliseconds, and keeping
which one is which straight is difficult. The internal bookkeeping
is left using us where it already does, for the extra precision. But
having the API be mixed will only make it harder for developers, and
lead them to make the same mistake that I did in the API where I
missed some conversions.
Bug: 28197858
Change-Id: I99114bae259b9bdd47ce5c22e724d87bbd63336d
am: 6797d86
* commit '6797d86d76ee193bc20809f118163a86eaf28b4b':
Address API review for UserManager user creation
Change-Id: Ibfc33fcf16d958272b7dc6cad59e5ee557716706
Instead of calling out to external processes with a blocking IPC,
pass along a Binder on which the external process can pass back
the response. The calling process can then wait for the reply with
a timeout.
This eliminates watchdog restarts of the system_server when an external
process like telephony or bluetooth hangs.
Bug:26842468
Change-Id: I1b242e4ed22a63f1a4a0be8c78de8ac4d7bf56c5
Don't return null from createUserCreationIntent()
Provide a way for apps to query if the device
supports multiple users.
Some additional documentation for UserManager class to
make things clear about the types of users and relationship
with accounts.
Change-Id: I768d816e73a1d7f61cdc415f9e482adc79e2715a
Fixes: 28150359
Preparing and destroying users currently needs to be split across
installd, system_server, and vold, since no single party has all the
required SELinux permissions.
When preparing user directories on a storage device, always enforce
the serial number and destroy data if we run into a mismatch. When
deleting a user, write the updated user list first before we start
destroying data. Also start reconciling users on internal storage
at boot, so we can recover from stale data left behind from partially
destroyed users.
Check both CE and DE user directories when reconciling user storage
on a newly mounted storage device.
Bug: 27896918
Change-Id: I4536c82b0196e2720628c4f73fccb742c233350b