Commit Graph

2299 Commits

Author SHA1 Message Date
Kweku Adams
030980a1fb Fixing issue related to printing out of display state and idle mode in the batterystats checkin.
Change-Id: I533bd53f375bf6d9f818a8e8aa75932986ad779b
2015-04-01 16:07:48 -07:00
Jeff Sharkey
4887789e44 Progress towards dynamic storage support.
Storage devices are no longer hard-coded, and instead bubble up from
whatever Disk and VolumeBase that vold uncovered, turning into
sibling Java objects in MountService.  We now treat vold events as
the source-of-truth for state, and synchronize our state by asking
vold to "reset" whenever we reconnect.

We've now moved to a model where all storage devices are mounted in
the root mount namespace (user boundaries protected with GIDs), so
we no longer need app-to-vold path translation.  This also means that
zygote only needs to bind mount the user-specific /mnt/user/n/ path
onto /storage/self/ to make legacy paths like /sdcard work.  This
grealy simplifies a lot of system code.

Many parts of the platform depend on a primary storage device always
being present, so we hack together a stub StorageVolume when vold
doesn't have a volume ready yet.

StorageVolume isn't really a volume anymore; it's the user-specific
view onto a volume, so MountService now filters and builds them
based on the calling user.  StorageVolume is now immutable, making
it easier to reason about.

Environment now builds all of its paths dynamically based on active
volumes.  Adds utility methods to turn int types and flags into
user-readable strings for debugging purposes.

Remove UMS sharing support for now, since no current devices support
it; MTP is the recommended solution going forward because it offers
better multi-user support.

Simplify unmount logic, since vold will now gladly trigger EJECTING
broadcast and kill stubborn processes.

Bug: 19993667
Change-Id: I9842280e61974c91bae15d764e386969aedcd338
2015-03-30 19:46:23 -07:00
Adam Lesinski
4b6bd8d36b Retrieve WiFi info outside of BatteryStatsImpl
In order to not deadlock the system, we need to retrieve
WiFi energy info outside of the BatteryStats lock. We do this,
then pass that data down to BatteryStatsImpl to process.

b/19729960

Change-Id: Ib8beba1d5ac81d89144d502c4b688d0a88c5b102
2015-03-26 17:49:51 -07:00
Dianne Hackborn
73484d8b66 Merge "Battery stats: wakeup alarm tracking, general cleanup." 2015-03-25 21:27:54 +00:00
Bryce Lee
a223d65830 am 3309be5e: am 21b7e6de: am c831b978: Merge "Add isScreenBrightnessBoosted and a broadcast when underlying value changes." into lmp-mr1-modular-dev
* commit '3309be5e7bc782d89adaf4abca5f1f81649c655f':
  Add isScreenBrightnessBoosted and a broadcast when underlying value changes.
2015-03-25 16:52:30 +00:00
Bryce Lee
21b7e6de94 am c831b978: Merge "Add isScreenBrightnessBoosted and a broadcast when underlying value changes." into lmp-mr1-modular-dev
* commit 'c831b978238d5ed200ca329c540eff00faba77e3':
  Add isScreenBrightnessBoosted and a broadcast when underlying value changes.
2015-03-25 16:09:48 +00:00
Bryce Lee
c831b97823 Merge "Add isScreenBrightnessBoosted and a broadcast when underlying value changes." into lmp-mr1-modular-dev 2015-03-25 16:06:17 +00:00
Dianne Hackborn
1e725a7ec9 Battery stats: wakeup alarm tracking, general cleanup.
Instead of just tracking the total number of wakeup alarms
per package, track a count for each tag.  Note this is only
wakeup alarms, not non-wakeup alarms.

Also tighten up the code a bit by exposing the actual ArrayMap
container through most of the BatteryStats API, so we can more
efficiently iterate over them (which is all we ever want to do
with those containers at that point).

Finally remove all printing of "since unplugged" stats, as
another step towards completely removing that tracking.  If
nobody screams, hopefully soon we can go through and just get
rid of all the extra state we are carrying around that is
tracking that data.

Also note that currently the per-tag wakeup alarm data is
being reported in the human-readable stats, but in the checkin
data it is still being rolled up into a single number.  To fix
this, I need to completely rework the pkg entry line to have
separate data for services and wakeup alarms (so have three
types -- pkg for the start of a package, wal for a wakeup
alarm, svc for a service).

Change-Id: I8033acca8742935cfe95511cdea730a405b17cab
2015-03-24 18:29:18 -07:00
Dianne Hackborn
88e98dfa59 More work on device idle mode.
- There is now an API for people to find out about
  its state.
- Moved DeviceIdleController to be closer to the
  power manager implementation, since they are
  closely related.
- Job scheduler now knows about idle state and doesn't
  run jobs while the device is idle.
- Battery stats now keeps track of "idling" vs "idle mode".
  Idling is when we consider the device to be idle,
  independent of whether we are actually in deep idle mode.
  This allows us to keep track of longer-term changes
  independently of cycling in and out of idle mode.
- Battery stats also now keeps track of package changes in
  its daily stats.
- Small optimization to network policy manager service to
  not touch uids that do not have the NETWORK permission.

Change-Id: I0b3304fb3722c78cdfdd0c1eada7369ece7cbcf9
2015-03-24 11:03:49 -07:00
Jeff Sharkey
bf2673384c Merge "Bring MountService into the SystemService world." 2015-03-22 20:03:55 +00:00
Jeff Sharkey
56e629322f Bring MountService into the SystemService world.
Change-Id: I7f7db49ff373b199f7b81f184a7c62bee682af67
2015-03-21 20:41:00 -07:00
Dianne Hackborn
79ec42e6a3 Merge "First stab at device idle mode." 2015-03-19 23:05:16 +00:00
Dianne Hackborn
8ad2af7e5b First stab at device idle mode.
Introduce a new device idle controller service that
monitor's the device state and determines when to go
in to idle mode.  When in idle mode, all we do right
now is turn off network access the same as we do for
power save mode.  Many more things should come in the
future -- stopping the alarm manager from scheduling
(most) alarms, telling GmsCore for it to stop doing
stuff, etc.

Battery stats now has state tracking for devie idle
mode, as well as events for the reasons we can come
out of idle mode (significant motion or the device
becoming active).  Also added new events noting when
packages are installed.

Renamed the "low power" event in battery stats to
"power save" because the former was just way too
confusing.

Finally, fix buffer size reading kernel wake locks.
(Stupidly, just increasing the buffer size.  Ideally
we should try to be smarter and grow our buffer to
fit the data available, but I'll leave that for
another time.)

Change-Id: I0be2062466c83ee9d890c6cf5a228d9cc4090eca
2015-03-19 11:10:55 -07:00
Benjamin Franz
bff46bac80 Add DO policy to disable safe boot mode.
Bug: 19615843
Change-Id: I14dbe911995ec216c57bd285d6b7b04c9684591a
2015-03-19 09:19:18 +00:00
Mathieu Chartier
75f1ba5a81 am f792e016: am 437ac8f8: Merge "Add JIT late override property"
* commit 'f792e01606b988ab84190217529cca53da8db3f5':
  Add JIT late override property
2015-03-18 23:51:12 +00:00
Mathieu Chartier
f792e01606 am 437ac8f8: Merge "Add JIT late override property"
* commit '437ac8f8445b078041171eff56ce7ffbd1cf6766':
  Add JIT late override property
2015-03-18 23:09:21 +00:00
Mathieu Chartier
7a49028aa2 Add JIT late override property
Required for JIT debug property since user builds can't restart
the shell.

Bug: 19735273

Change-Id: I1983852e80010c344b45e0bb459de47c56adfce8
2015-03-18 15:18:52 -07:00
Filip Gruszczynski
a483a1d85e am 81c47fc2: am 86318d76: Merge "Option for going home when going to sleep for devices without physical button." into lmp-mr1-modular-dev
* commit '81c47fc23a0a15dddf37d96d28305e8b5e5ca2da':
  Option for going home when going to sleep for devices without physical button.
2015-03-17 19:06:58 +00:00
Filip Gruszczynski
81c47fc23a am 86318d76: Merge "Option for going home when going to sleep for devices without physical button." into lmp-mr1-modular-dev
* commit '86318d768a2c5043e1261e9daacf1497d1e4a732':
  Option for going home when going to sleep for devices without physical button.
2015-03-17 18:35:17 +00:00
Bryce Lee
84d6c0fbf6 Add isScreenBrightnessBoosted and a broadcast when underlying
value changes.

Bug: 18334219
Change-Id: I20051e97633017711574a063b8061f95c3b616c5
2015-03-17 10:43:08 -07:00
Dianne Hackborn
3d07c94c39 Add new voice request for picking from a list.
Also add API for voice interaction service to control
whether the system should hold a wake lock while it is
working with an activity (and actually *do* hold a wake
lock while doing so, duh!).

And while in there, clean up the launching wake lock to
correctly give blame to the app that is launching.

Change-Id: I7cc4d566b80f59fe0a9ac51ae9bbb7188a01f433
2015-03-16 11:29:12 -07:00
Andreas Gampe
872d191e61 am 8af305f1: am 6878ee57: Merge "Revert "Frameworks/base: Fix a constructor""
* commit '8af305f17ff0d4b84e5a71777de788e9a6ae2780':
  Revert "Frameworks/base: Fix a constructor"
2015-03-16 18:11:47 +00:00
Andreas Gampe
8af305f17f am 6878ee57: Merge "Revert "Frameworks/base: Fix a constructor""
* commit '6878ee57b438b063fcc09a19a04fba92e113c1d2':
  Revert "Frameworks/base: Fix a constructor"
2015-03-16 18:03:17 +00:00
Andreas Gampe
8c80efeaeb Revert "Frameworks/base: Fix a constructor"
The constructor was public API, doh. Gotta do this differently.

This reverts commit 33c5b2a62f.

Change-Id: Iadca87fe6a8866a8bd9d6f2a91578ec0d4c44691
2015-03-16 17:51:01 +00:00
Andreas Gampe
ebb8922a5b am 19279ec0: am d61cbf9a: Merge "Frameworks/base: Fix a constructor"
* commit '19279ec04845b2a47b90240c9d47bf8fb5ece464':
  Frameworks/base: Fix a constructor
2015-03-16 17:13:26 +00:00
Andreas Gampe
19279ec048 am d61cbf9a: Merge "Frameworks/base: Fix a constructor"
* commit 'd61cbf9a08733b45a6aecafffffa60da269a3e1e':
  Frameworks/base: Fix a constructor
2015-03-16 17:03:02 +00:00
Filip Gruszczynski
9779e128d6 Option for going home when going to sleep for devices without physical button.
Bug: 19623388
Change-Id: Iec16f83c64646ded12ec97d4b540510b7f9dfd47
2015-03-16 08:57:17 -07:00
Andreas Gampe
33c5b2a62f Frameworks/base: Fix a constructor
This was meant to be a constructor, according to the comment.

Change-Id: Ief49011b392e58b37d9acb4a3f754f1828b256af
2015-03-15 14:29:16 -07:00
Vinit Deshpande
f5fabf1542 am "Separate NAT from forwarding."
merged from goog/mirror-m-wireless-internal-release
35e36db Separate NAT from forwarding.
2015-03-15 13:40:20 -07:00
Jeff Brown
3e0045e0df Merge "Avoid rebuilding epoll set when PFD status report is done." 2015-03-13 19:12:04 +00:00
Jeff Brown
031b7feb0f Merge "Revert "Revert "Update ParcelFileDescriptor to use non-blocking I/O.""" 2015-03-13 19:11:39 +00:00
Nick Kralevich
d028356056 am 870110e0: am 30fcd2aa: Merge "Drop unusable SELinux APIs."
* commit '870110e01af5c4875a9cf7134cee7c6842fd31af':
  Drop unusable SELinux APIs.
2015-03-13 18:26:20 +00:00
Nick Kralevich
870110e01a am 30fcd2aa: Merge "Drop unusable SELinux APIs."
* commit '30fcd2aa8a87ca97e1d6dbc3203c3a485a56dac9':
  Drop unusable SELinux APIs.
2015-03-13 18:16:58 +00:00
Stephen Smalley
16d1cce8ff Drop unusable SELinux APIs.
setSELinuxEnforce is not allowed by policy.
get/setBooleanValue and getBooleanNames are moot since SELinux
policy booleans are forbidden by CTS.

Change-Id: I512953edd1c38828efce698ae8475603775c32e8
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-03-13 14:09:26 -04:00
Dianne Hackborn
484bc6e5a7 Merge "More work on collecting assist data." 2015-03-13 16:41:29 +00:00
Jeff Brown
b2a1985b13 Avoid rebuilding epoll set when PFD status report is done.
If we close the PFD status channel before returning, then the Looper
will take care of unregistering it correctly but it will end up
doing extra work to rebuild the epoll set to work around a limitation
of the epoll interface.  If we unregister the FD first then this
extra work will not be required so it's slightly more efficient
this way.

Bug: 19715279
Change-Id: I0f7b90f3458adf1894b7561c05fa842fdb87b498
2015-03-12 19:52:46 -07:00
Jeff Brown
6fd9f9af2e Revert "Revert "Update ParcelFileDescriptor to use non-blocking I/O.""
This reverts commit 0f0b7f2fb3.
2015-03-12 19:45:47 -07:00
Dianne Hackborn
a83ce1dd2a More work on collecting assist data.
Optimize parceling of AssistData (which is now renamed to
AssistStructure) by pooling duplicated class name strings.

Change text associated with a view node to a CharSequence,
so styling information comes along.

Include global text attributes -- size, colors, etc.

Introduce a new AssistContent structure, which allows us
to propagate information about the intent and data the
activity is looking at.  This further allows us to propagate
permission grants, so the assistant can dig in to that data.
The default implementation propagates the base intent of an
activity, so if for example you bring up the assistant while
doing a share the assistant itself has the same information
and access that was given to the share activity (so it could
for example share it in another way if it wanted to).

Did some optimization of loading PersistableBundle from xml,
to avoid duplicating hash maps and such.

Changed how we dispatch ACTION_ASSIST to no longer include
the more detailed AssistStructure (and new AssistContent)
data when launching; now the example code that intercepts
that needs to be sure to ask for assist data when it starts
its session.  This is more like it will finally be, and allows
us to get to the UI more quickly.

Change-Id: I88420a55761bf48d34ce3013e81bd96a0e087637
2015-03-12 17:07:51 -07:00
Jeff Brown
0f0b7f2fb3 Revert "Update ParcelFileDescriptor to use non-blocking I/O."
Bug: 19715279
This reverts commit a34a3bdcbf.

Change-Id: Ief03dee1c0a2b4d906797a5c279663c17439c347
2015-03-12 21:25:00 +00:00
Jeff Brown
a34a3bdcbf Update ParcelFileDescriptor to use non-blocking I/O.
Avoids spinning up a thread just to watch a file descriptor.

Bug: 10349083
Change-Id: I814cb252f075d7a162e1286bbfd1dbec28d17796
2015-03-11 15:37:21 -07:00
Jeff Brown
dc3eb4bf91 Add support for non-blocking I/O with Looper.
Bug: 10349083
Change-Id: I4a94b1eac53df57c05103913bd593d92b1e062d7
2015-03-11 15:00:35 -07:00
Jeff Brown
803c2affcb Expose some useful methods on Looper and clean up docs.
Change-Id: I40796c3ba07d3c50043da56e835f11fbf9852d30
2015-03-11 15:00:35 -07:00
Jeff Brown
3d4e7efe37 Move sync barrier methods into MessageQueue.
The methods were previously defined on Looper but on reflection
they actually make more sense on the MessageQueue instead since
the Looper class is primarily concerned with thread lifecycle
rather than the actual messages themselves.

Change-Id: Iff356b94754fc9960774fa17e3eec9604229cba6
2015-03-11 15:00:34 -07:00
Jeff Brown
6c7b41adf9 Rename Looper::isIdling() to isPolling() to resolve confusion.
The loop isn't technically idle at this time, it's just checking
whether any file descriptors have pending events.  However it's
still a good signal as to whether the loop is alive.

Added a real isIdle() function.

Bug: 19532373
Change-Id: Idd273e8774f469ccafb00d560818cf279dfd6ba6
2015-03-11 15:00:34 -07:00
Adam Lesinski
33dac55935 BatteryStats: Record energy info stats from WiFi and Bluetooth controllers
Surface some of this information in BatteryStatsHelper. If we are given a
total energy from the WiFi controller, we normalize the computed
energy of each app and blame them for a fraction of the real energy.

Change-Id: I64051b600f5d9f6ac4580d56ef0977971eb4be2d
2015-03-09 17:36:13 -07:00
Dianne Hackborn
442361c500 Merge "Battery stats issues: fix jiffy handling, print scan counts." 2015-03-09 20:36:58 +00:00
Dianne Hackborn
62793e4382 Battery stats issues: fix jiffy handling, print scan counts.
Issue #19431959: Framework incorrectly assumes that kernel
clock_ticks are 10ms

We now retrieve the time of a jiffy from the kernel, and all CPU
times are now handled in milliseconds.

Issue #19571810: Add per-app breakdown of number of WiFi scans
in batterystats checkin data

Added to the report (the information was already being tracked).

Change-Id: If1702d6b9bcf851704129f1811471e68ed576a5d
2015-03-09 11:15:41 -07:00
Benjamin Franz
f3ece36535 Block setting wallpapers from managed profiles.
Silently fail when a managed profile app tries to change the
wallpaper and return default values for getters in that case.
This is implemented through a new AppOp that is controlled by
a new user restriction that will be set during provisioning.

Bug: 18725052
Change-Id: I1601852617e738be86560f054daf3435dd9f5a9f
2015-03-09 10:39:21 +00:00
Hiroshi Yamauchi
f045198fb3 Merge "Deprecate things that rely on Debug.startAllocCounting." 2015-03-06 17:43:53 +00:00
Hiroshi Yamauchi
172da26d45 Deprecate things that rely on Debug.startAllocCounting.
android.os.Debug.startAllocCounting() is deprecated but other things
that rely on it or do not make sense without it aren't deprecated.

Bug: 8241521
Change-Id: Ib769cb8f4e96f41ed310e17e7345acb2a630a076
2015-03-05 11:22:37 -08:00