Surface basic StorageManager commands through shell tool, like
simple listing of disks and volumes, and commands like mounting and
partitioning.
The output is designed to be parsed by host-side testing tools,
instead of relying on fragile dumpsys parsing.
Bug: 19993667
Change-Id: I993e92ecf57996678965945f0ae648b392a77ea2
Use screen on time as timebase for idling out apps
that have been inactive.
Store the time when an app was last active as an additional
package state in UsageStats. Compare it to screenOnTime to decide
if it's inactive.
Exclude device idle whitelist from apps that can go inactive.
Bug: 20066058
Change-Id: I709f9f31a9affa7ca6e1ae3e4c5729c5fb221669
When in device idle mode, we now prevent most apps
from being able to hold partial wake locks. The
device idle controller now pushes its white list of
app uids into the power manager, so it can apply this
policy correctly to only apps that are not whitelisted.
The implementation adds a new "disabled" flag to a wake
lock which is set when we want to apply this policy. When
set, we ensure that we tell battery stats that the wake lock
is not being held and ignore that wake lock when computing
the power state summary.
Also add new SDK APIs to schedule alarms that are allowed
to execute while in idle mode.
Finally add new dumpsys commands to the device idle controller
to completely disable and re-enable its operation, to use
for testing.
Change-Id: I1f16672c6ac06d03bb538f9854d5843db9aa6f27
On user switch, kill existing processes of the background user with
android.permission.RECORD_AUDIO permission. Home activity should not be
killed to avoid an expensive restart of the home launcher, when the
user switches back.
Introduced DISALLOW_RECORD_AUDIO user restriction, which is enabled for the
background user, and removed for the foreground user.
Introduced a concept of system controlled user restriction, which can only
be set by the system, rather than device administrator.
Bug: 20346194
Change-Id: Ic942fd565e80d14424230dae612965a8e229c4ef
The 'App Summary' section is shown by default when other memory
details are shown. This adds a new meminfo flag '-s' to show only the
App Summary section.
Change-Id: I66913673cd3afca873a8b13e45abe071d4c57b82
Add a constant to the SDK that apps may use to detect incremental API
changes across prerelease preview builds. APIs newer than the latest
official API level are not guaranteed to be stable or even present
across preview revisions.
Change-Id: I14341e55a3ebc3d872977970b9440c400e71f588
Binder APIs which wish to consume Bitmaps *and* drawable
resources can now do so by using Icon, a kind of union type
that accommodates each of these. Icon also accepts byte
arrays holding compressed Bitmaps (PNG, JPEG, etc), which
saves clients the additional memory cost of decoding and
sending full uncompressed bitmaps through Binder interfaces.
Receiving clients can call loadDrawable{,Async} and then
getDrawable to start immediately using the image in an
ImageView or other Drawable-hosting container.
Bug: 19609468
Change-Id: Ic1343711c2ac0b15876b46f0b6008b0108a49470
Refactor app movement code into the normal install flow as a new
flavor of InstallArgs. It copies both app code and data during the
copy step, and just updates paths during the rename step.
Measure free space before kicking off a move. Spawn a thread to
derive a hacky progress estimate based on free disk space counting
down.
Remove checkFreeStorage() and getLegacyNativeLibraryPath() which
nobody was calling. Fix deadlocks around package broadcasts, and fix
wrong lock ordering when loading packages.
Bug: 19993667, 20275578, 20370140
Change-Id: I7bbf14c924a724d6ebb8a41a02434750fa3302bc
Finish wiring up notifications to jump back into in-progress wizard
flow, using moveId as identifier.
Split move events back into separate creation and progress events,
and pass details as bundle to pass extra stuff like UUID. Null
package still means moving primary storage.
Add explicit "volume forgotten" event for PackageManager to clean
up internal state with.
Plumb through internal path reported by vold, and bring back FUSE
bypass rewriting optimization.
Bug: 19993667
Change-Id: I0f43edbba36c58c5cd33550022c54c4eb9f01a48
Track apps going in and out of idle in the NetworkPolicyManagerService.
Apply DROP rules in firewall controller if app is to be blacklisted
for network access.
Firewall can now be in whitelist (old) or blacklist mode. When in
blacklist, it allows all by default and we can selectively DENY
some uids.
Track app idle in UsageStats and update periodically.
Track charging/discharging states.
TODO: Check for appidle temporary parole state
Bug: 20066058
Change-Id: Ia65d7544204b3bcb78a517310ef4adcc05aac6fb
The whitelist is now maintained by DeviceIdleController,
which is moving out into its own independent system service.
Network stats now queries it for the whitelist, instead of
collecting that itself.
Also did a few improvements in alarm manager -- made the
code for moving alarms out of the pending list more robust,
and fixed the debug output to always print the contents of
the pending list even if we aren't in a pending state. (That
would have helped me identify the problem much earlier.)
Change-Id: I0f7119d4c553c3af4d77b2f71246fa6e2c13c561
VolumeRecord is a historical record of a volume that we've seen in
the past. It's now surfaced outside the framework for SystemUI to
drive the notifications that bug users to reinsert missing private
volumes.
Show progress notifications for both storage and package movement
operations. Notify when an empty disk is inserted (no usable volumes)
which launches into the normal format flow.
Add API to forget volumes.
Bug: 20275424, 20275424
Change-Id: I75602c17fdcd4d1f1f62324e1a08c4a33093eefa