• Home
  • History
  • Annotate
  • only in /frameworks/base/core/java/com/android/internal/os/
History log of /frameworks/base/core/java/com/android/internal/os/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
1a76a62b8d4bfaaa4a40b4dcce1ac88dd3e4f387 22-Jun-2016 Adam Lesinski <adamlesinski@google.com> Prevent early boot crash reading PowerProfile

The PowerProfile in BatteryStatsImpl may not be ready when
resetting stats early in the boot sequence.

Bug:29559031
Change-Id: I51bba762231a08804f1b68505bb1b0523476081d
atteryStatsImpl.java
f9b20a9ec4d92c542a0a38630a8b8c22729c5393 18-Jun-2016 Adam Lesinski <adamlesinski@google.com> BatteryStats: record best estimated battery capacity

Using the coulomb counter, record the estimated max battery
capacity.

Bug:28743761
Change-Id: I1270b062cf4a1e6fd69ea1da3de11a85a81b3663
atteryStatsImpl.java
67c134f849711c30e8cfba375b9e3c8616b4b277 11-Jun-2016 Adam Lesinski <adamlesinski@google.com> BatteryStats: Fix read/write parcel order

Also moves discharge coulomb data to BATTERY_DISCHARGE_DATA checkin line.

Bug:29264326
Bug:28743761
Change-Id: I78881e166c11f40b2397e04d2cab8d5200c71eea
atteryStatsImpl.java
3ee3f63eb88741bb726c1481387ccf8a46fb57fb 08-Jun-2016 Adam Lesinski <adamlesinski@google.com> BatteryStats: Record fine grained battery discharge

For devices that report battery discharge via a coulomb counter,
record how much of the battery was discharged while the screen
was on/off.

Bug:28743761
Change-Id: Ie2d1708864352029ff466c1fed14fc057e19b93b
atteryStatsImpl.java
e7f4f0297fe77fd76f944b9a3134534962833262 08-Jun-2016 Adam Lesinski <adamlesinski@google.com> Consume the first sample of KernelUidCpuTimeReader

If the system_server crashes, when it starts back up
it will assume that the entries in kernelUidCpuTimeReader
are all fresh and we will end up double counting cpu time
and power.

Bug:29163081
Change-Id: I73e693199c170229af57efd610950e90263ac9bc
ernelUidCpuTimeReader.java
a87770828637813dacd176ba3c8d3810f7ed6ab8 25-May-2016 David Sehr <sehr@google.com> Installer connection support for dump_profiles

Bug: 28748264
Change-Id: I22322b5a0716a030d9873edcc6dfd7f3ef2d3bca
nstallerConnection.java
8ce3694181f853701d31ee4eb1dc46dbfab044d7 27-May-2016 Adam Lesinski <adamlesinski@google.com> Fix issue where max idle time > total idle time

If the batterystats were reset while the device was
idling (via command line most likely), then also reset the
last time the device started idling so that the max idle time
calculation is correct.

Bug:28452600
Change-Id: I8a3d5dc3081deda76356c03d891e098baa85f88a
atteryStatsImpl.java
6f0d3992149aa782450667ed750fe0c3cf8ee334 20-May-2016 Adam Lesinski <adamlesinski@google.com> Merge "Fix parsing of kernel wakelocks" into nyc-dev
761f70d5a6b926780db3bba95ee1e01b4d8d95be 20-May-2016 Neil Fuller <nfuller@google.com> Merge "Add support for ICU data pinning in the Zygote" into nyc-dev
d84ad30ee62ee9610ed4a59a8ce4dcbb8eddf7d8 18-May-2016 Adam Lesinski <adamlesinski@google.com> Fix parsing of kernel wakelocks

We handled stale wakelocks (wakelocks that disappear from /d/wakeup_sources)
differently in previous version of Android. They would be set stale, but still be
updated with their previous counts (they would never disappear).

The method setStale has been replaced with endSample(), which is semantically different.
Once a SamplingTimer has endSample() called, it expects any future calls to update() to
be a new sample, meaning the entire amount passed to update() is included in the kernel
wakelock's total. Since stale wakelocks were never removed from the list, this would
increase by large amounts when nothing had actually changed.

This was exacerbated by the fact that there was a bug where the last wakelock in
/d/wakeup_sources was never parsed, so if the order ever changed, this "stale" wakelock
would suddenly re-appear and the entire amount reported would be charged to the wakelock,
instead of just the difference since the last update.

All this was exposed when we added support to handle wakelocks that would disappear and
reappear with smaller values, meaning the kernel had pruned them from its accounting and
reset them.

Bug:28601080
Change-Id: Ic96027f7d580dac5e20aa73d67e5cedac4ccabeb
atteryStatsImpl.java
ernelWakelockReader.java
69de32071c8ca7fa2277e4340a320b7df6fe963d 17-May-2016 Sergio Giro <sgiro@google.com> ZygoteInit: install AndroidKeyStoreProvider in the Zygote

Instead of in activity thread. That way, we can warm up (ie,
precompute cached values) this provider and AndroidBCWorkaroundProvider
(which are installed together) so that the computation doesn't
happen in the app. As a result, the time spent in the first call to
SSLSocketFactory.getDefault() decreases by ~5ms in angler userdebug.
Measured with an app calling SSLSocketFactory.getDefault in onCreate
and timed it with System.currentTimeMillis() .

Bug: 28545496

Change-Id: I73284eccdf6d51dbf55206335d759ccf795c5f41
ygoteInit.java
4f41f6198baf60cdb9992736dc7682ae7e291e0e 09-May-2016 Neil Fuller <nfuller@google.com> Add support for ICU data pinning in the Zygote

Upstream ICU caches use SoftReferences. On Android this means
that useful cached data initialized in the Zygote are "lost" when
the Zygote GCs and cannot be shared with apps. This change makes use
of an Android patch to ICU to ensure References created during
Zygote initialization are "strong". i.e. they are never collected.
This prevents them being GCd and ensures they can be shared between
applications.

After switching ICU to use strong references, this change
also creates DecimalFormatSymbols objects for common ULocales
(ROOT, US and the user's default, if different). DecimalFormatSymbols
makes use of an ICU Reference cache and this alone has been shown to
improve the construction time of java.text.DecimalFormat by 1-1.5
milliseconds on a Seed device. This saving applies the first time one
is created in each app for each locale, and again if SoftReferences
have been cleared.

The cost to the heap size of the Zygote has been measured at ~107k.
This value will change as more caches are switched to use the new
CacheValue class.

Formatting is typically performed on the UI thread and the intention
of this change is to reduce app start up time and jank in apps like
the Dialer which do a lot of formatting when scrolling lists. The
change may also enable more virtual memory page-sharing between
apps, though this is not the specific goal.

Bug: 28326526
(cherry picked from commit 41c9dc3b6938c5674c88ef4bc27b3d95f56efebe)

Change-Id: I48e4d57ecbb207b9a5e17b6caf5e7b282e4a40e3
ygoteInit.java
4c8e542f68c990b76ce13748c719d05e65086329 18-May-2016 Andreas Gampe <agampe@google.com> Frameworks/base: Add more systrace points

Add more systrace points for application startup.

Bug: 28625993
Change-Id: I76dca9e842fb43f1b85981ef94582074d31528c8
athClassLoaderFactory.java
5a68af384037f2980215dd45b91c5165c779d4e8 17-May-2016 Sergio Giro <sgiro@google.com> Merge "ZygoteInit: warm up JCA providers during preload" into nyc-dev
6cb7b1c4765e9bc5175056826523dbd88426e9aa 13-May-2016 Sergio Giro <sgiro@google.com> ZygoteInit: warm up JCA providers during preload

This makes the time spent in the first call of an app to
SSLSocketFactory.getDefault() drop from ~240 ms to ~50 ms. In M
it was around ~6ms. This is due to the fact that, while instantiating
the default factory, all providers are initialized.

In order to obtain the timings above, I created an app calling
SSLSocketFactory.getDefault in onCreate and timed it
with System.currentTimeMillis() .

Bug: 28545496

Change-Id: I650d4b0435e67e481a41e02b0b538ce5cc993fa3
ygoteInit.java
2512ec9e376b0fce213f6d635dfb991c79041031 14-May-2016 Ruchi Kandoi <kandoiruchi@google.com> Merge "network: Adds the functionality to parse uid in netlink messages." into nyc-dev
fa97fcf7b9b9999102bc0c6b298114375b27a1c3 14-May-2016 Ruchi Kandoi <kandoiruchi@google.com> network: Adds the functionality to parse uid in netlink messages.

Netlink notifications about the state of the modem contains uid too.
This patch adds the functionality to add that. It also fixes the bug to
parse the timestamp in the message even in cases where the length is
greater than expected.

Bug: 28527904
Change-Id: I4643bff3eb5b1ffa2dc0b78f1c6947d60487e0d8
Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
atteryStatsImpl.java
7bd0fdd639640f9ddffbffa6a117644134d8be30 29-Apr-2016 Philip Cuadra <philipcuadra@google.com> Pinner service for pinning files into memory

Pin key files into memory to prevent having to fetch from flash
after boot. Improves system performance by preventing page cache
thrash. Retrieves files from a device-specific overlay to allow
specialization.

bug 28251566

Change-Id: I8532f52bd70271794dd7576976d13a524849ce7b
ygoteInit.java
a8018ac47a0c0725882a041a1c42e67f52129f02 03-May-2016 Adam Lesinski <adamlesinski@google.com> BatteryStats: Fix units on battery charge counter

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
atteryStatsImpl.java
4f928358d2a4023dc6ba5a0bbdb1a63a3e1bfa7a 30-Apr-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "BatteryStats: Reset per-User Bluetooth and Modem controller activity" into nyc-dev
1a2b39e61cd52e21b7e51391fa79d400076085ac 30-Apr-2016 Adam Lesinski <adamlesinski@google.com> BatteryStats: Reset per-User Bluetooth and Modem controller activity

Bug:28469956
Change-Id: I4db68ecc5b7bde8dd552caadee489b7bad3d6cbc
atteryStatsImpl.java
926969b411ca52eeefd6b01c0c7970d8a65ee526 29-Apr-2016 Adam Lesinski <adamlesinski@google.com> BatteryStats: Keep track of coulomb counter

Bug:27174034
Change-Id: Ica66817faa20b9788536f28f0e593483f033904b
atteryStatsImpl.java
5149abe73eb52e5b0df16572397a58c295e23da3 28-Apr-2016 Badhri Jagan Sridharan <badhri@google.com> Merge "Add low power stats to batteryhistory" into nyc-dev
0c6e213dc70575d5a29c29bf7eb360b1c482b978 27-Apr-2016 Dimitry Ivanov <dimitry@google.com> Merge changes I12c9448e,I928175a3 into nyc-dev

* changes:
Create linker namespace for the system server classloader
Extract pathclassloader initialization to a separate class
68cdf1997f7b007e4c81089bc402a0356292f4c2 04-Apr-2016 Badhri Jagan Sridharan <Badhri@google.com> Add low power stats to batteryhistory

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
atteryStatsImpl.java
89dad3360ea6ae2fa0c4eb70a760b8d6bcb98b82 21-Apr-2016 Dimitry Ivanov <dimitry@google.com> Create linker namespace for the system server classloader

Bug: http://b/27702070
Change-Id: I12c9448e877202937cf558de75042bcb46f6a933
(cherry picked from commit eb5866d4b05b6c000385be4a536544e27ca13335)
ygoteInit.java
b1ef62bb3834af6bdf8017e56b2cc614a566229e 20-Apr-2016 Dimitry Ivanov <dimitry@google.com> Extract pathclassloader initialization to a separate class

To be able to reuse this code when creating a classloader for
the system_server.

Bug: http://b/27245894
Bug: http://b/27702070
Change-Id: I928175a39a1beb0446d863a5b8f5edf94686e768
(cherry picked from commit 5d7d777fa6f47ade2097e77d3d9ddb52c26d77d6)
athClassLoaderFactory.java
c7b9482b0c4bb2d378e63541b96be45c50094e05 16-Mar-2016 Jeff Hao <jeffhao@google.com> Support to pass <uses-library> option through to dex2oat.

This change takes an app's shared libraries specified by <uses-library>
and passes it through to dex2oat to be used during compilation.

Part of a multi-project change.

Bug: 26880306

(cherry-picked from 7b331b6a8ae8d9f10482b292439457de98abd32a)

Change-Id: I523b1b74775e7ed27072498509e743f1f10b1164
nstallerConnection.java
ygoteInit.java
1a8a717ab517e7b5ace00bb4d3370e0f3a2677b2 23-Apr-2016 Adam Lesinski <adamlesinski@google.com> Merge "BatteryStats: Fix up semantics of SamplingTimer" into nyc-dev
6a4d9a3c9f7cbd30a7093f5088a72271a5e504c7 23-Apr-2016 Adam Lesinski <adamlesinski@google.com> Merge "BatteryStats: use the same timestamp for comparing intervals" into nyc-dev
757c6eacc8114613e2a07a5e68628bf202ce97ab 21-Apr-2016 Adam Lesinski <adamlesinski@google.com> BatteryStats: Fix up semantics of SamplingTimer

SamplingTimer has been losing some data, as well as not correctly handling
entries that have gone away and come back with less data (reset).

This change correctly ends a SamplingTimer sample by adding the accumulated amount
to the total, then reseting the running counter to accept new values.

This is also triggered automatically when the incoming data is less than what is currently
recorded.

Bug:25695597
Change-Id: I6b540906e6be527578d1003485384a75ba211b52
atteryStatsImpl.java
c708cf6340e623202e562992e6ef4062ace84cab 21-Apr-2016 Adam Lesinski <adamlesinski@google.com> Merge "BatteryStatsHelper: Include screen on baseline power draw" into nyc-dev
150553756f89a51cc70b24cd9dbab4bdfba0fc59 21-Apr-2016 Tim Murray <timmurray@google.com> Merge "Increase the max binder thread pool size for system_server." into nyc-dev
76a267bc265340824a394b6b310289f37dae9437 20-Apr-2016 Adam Lesinski <adamlesinski@google.com> BatteryStatsHelper: Include screen on baseline power draw

Calculate the baseline power usage for the device when it is in suspend and idle.
The device is drawing POWER_CPU_IDLE power at its lowest power state.
The device is drawing POWER_CPU_IDLE + POWER_CPU_AWAKE power when a wakelock is held.
The device is drawing POWER_CPU_IDLE + POWER_CPU_AWAKE + POWER_SCREEN_ON when the screen is on.

Bug:27533512
Change-Id: Idcb587390bc8159fcbd6625cca4cb1aca19976d6
atteryStatsHelper.java
owerProfile.java
9acfd8166b140b0c553bac6fdc01c26584a288b3 20-Apr-2016 Adam Lesinski <adamlesinski@google.com> BatteryStats: use the same timestamp for comparing intervals

Use the timestamp provided by the modem to compare time.

Bug:28133571
Change-Id: I046bc1f2b90ba9b8b8245f031925476680ba5275
atteryStatsImpl.java
752434a0ff54ac30b7701292b66361e64b2ae5a0 20-Apr-2016 Adam Lesinski <adamlesinski@google.com> Merge "Record in progress count when parceling Timer" into nyc-dev
98f0d4692c6634ff5d4ffbbc150d405da66c4c38 20-Apr-2016 Adam Lesinski <adamlesinski@google.com> Record in progress count when parceling Timer

The total time is computed before parceling, but the total count is not.

Bug:27747854
Change-Id: If3afdca9605f74d96a54fb9df17f6df761b99e55
atteryStatsImpl.java
eef4a3d53cadaab782944923577d6aca7b7ba5c8 19-Apr-2016 Tim Murray <timmurray@google.com> Increase the max binder thread pool size for system_server.

bug 28201939

Change-Id: Iaade417a26247970b96f0aaacb3844d72de6399c
inderInternal.java
d2bc2ba778514731e1475d4178fe9fc1d782285f 15-Apr-2016 Joe Onorato <joeo@google.com> Add the wall clock time to dumpsys cpuinfo so it's easier to correlate with the logs.

Bug: 28113068
Change-Id: Ifa90192b0aa3f57ba6928f38199beb5b56bca7e6
rocessCpuTracker.java
9a916e5602908f579ac846680270677c5a89e5a4 14-Apr-2016 Joe Onorato <joeo@google.com> Merge "Add support for null tag names from apps." into nyc-dev
0d723a2a4d83db5f01aa5a21f3cbd9d2b608bced 14-Apr-2016 Amith Yamasani <yamasani@google.com> Merge "Multi-window assist callback" into nyc-dev
388fc336b3f5c31df70fa01cf130f86b8c8d545f 13-Apr-2016 Joe Onorato <joeo@google.com> Add support for null tag names from apps.

For Wakelocks and syncs there is no requirement that an app actually
supply a tag/name. Jobs will always have system-supplied tags.

Bug: 26276001
Change-Id: Ie3b8e48a395de1506a2f15d5b9c9eab726bc6d0a
atteryStatsImpl.java
e8222e551f8abd2d82ca4f77ddb275e2e509751e 09-Apr-2016 Amith Yamasani <yamasani@google.com> Multi-window assist callback

Introducing a new callback in VoiceInteractionSession to
provide assist data for additional activities in the
foreground in a multiwindow setup.

PIP, docked windows and free-form windows (top-most)
will be queried for assist data and passed through the
new API to the Voice Interaction service.

Bug: 27718385

Change-Id: Ib4427c304611b75c2078dcb54f1f7e47ae7d9cfa
andlerCaller.java
1ef8aef260c19236be023c429b41a46e7f5da8b0 11-Apr-2016 Andreas Gampe <agampe@google.com> Frameworks/base: Add no-thread marking to zygote

Use ZygoteHooks code to mark zygote initialization to not be
allowed to create threads. This is helpful when new classes are
found to be used by apps but cannot be preloaded as they spawn
threads.

Bug: 27248115
Change-Id: I1dc3620d9e7d0054c672b993d89459fc4b353dfc
ygoteInit.java
4288419787120ce85a241a4b315d7d2123aa2d4a 10-Apr-2016 Jeff Sharkey <jsharkey@android.com> Use inode numbers for CE storage.

Certain operations, such as clearing/destroying app data, or just
counting on-disk size, require us to know the CE storage directory
of a particular app. To facilitate these operations, offer a method
to get the inode of a CE directory, and accept that inode number
for later operations. Collect and store the inode number in
PackageUserState for future use when that user's CE storage is
still locked. This design means it's safe to clear/destroy app
data in both CE/DE storage at the same time.

Move most installd-related methods to a uniform calling convention
that accepts a single parent PackageParser.Package, and internally
fans out to handle all "leaf" packages under that parent.

In previous releases, we started installing apps using a new
directory-based layout, where all app code, unpacked native libraries,
and optimized code is bundled together. So now we only have a single
path to measure for code size. This fixes several outstanding bugs
that were causing sizes to be miscounted for apps supporting multiple
architectures.

Fix a subtle bug in PackageSettings that would cause "notLaunched"
to be parsed incorrectly.

Bug: 27828915, 27197819
Change-Id: Ia582cf3550553292bde4bb4313367111332913ec
nstallerConnection.java
74cd3de6f4889d54a3da930de5e7ad00b97f03e9 07-Apr-2016 Jeff Sharkey <jsharkey@android.com> Automatically trace messages on shared loopers.

There are a handful of looper threads in the system_process that
are shared by dozens of different internal services. To help track
down what these operations are, tag the processing of each message
with a string that tries describing where it originated from: the
class name of the Handler, and the message number or class name of the
Runnable.

Bug: 28046299
Change-Id: I409ec43fea8daaae4fd70df05d4fed929a7249ae
ackgroundThread.java
2a91e4aabccd260655ecd2e3dc7f00044e8ca250 01-Apr-2016 Roshan Pius <rpius@google.com> power_profile: Move all wifi power values

Move over all wifi related power values to power_profile.xml from
config.xml. If these parameters are present in both the xml files, we
ignore the one in config.xml, else we fall back to config.xml value.

Also add wifi tx level battery consumption

BUG: 27227497
Change-Id: I331dcdf5694740b951298b61c3105952b884690a
owerProfile.java
d9b99be587962e5cb696327cf837f8b82ecd6b5c 31-Mar-2016 Adam Lesinski <adamlesinski@google.com> BatteryStats: Add ble scans to checkin data and start global ble scan timer

Bug:27930206
Change-Id: Ieb81eddeb0ac54ad93615f3abdc18cbcab19a729
atteryStatsImpl.java
bdd30d86ef98456161069d11481b2ccd25a11b4e 20-Mar-2016 Andreas Gampe <agampe@google.com> Frameworks/base: Refactor package manager

Introduce a mapping between dexopt reasons and compiler filters. Use
reasons in package manager and other classes, where possible.

Change PackageDexOptimizer to accept a compilation filter. Adapt for
the split-out profile merging. Pass compilation filter to installd.

Bug: 27689078
Change-Id: I8c0ea6f10fbfdbd096adecc52abfd2466d048fdc
nstallerConnection.java
ygoteInit.java
2fefbcf0d1b91f37684387971721c90112a9ac89 18-Mar-2016 Dianne Hackborn <hackbod@google.com> Fix issue #27653326: Sync doesn't work in doze maintenance

Add a (configurable) delay between when we start a maintenance
window until the minimum time we will end it.

Also switch to using the alarm manager callback API. (Yay!)

Also fix a little printing problem in the alarm manager dump
so we put the package name and not some class hash in the
summary string of an alarm entry.

Change-Id: I4281e5c80bc8b26ebc1fb6f603ec33ec0e379daa
atteryStatsImpl.java
910e7726b3c0e6cc62b3e3c8d8fcafd372d70f44 18-Mar-2016 Jeff Sharkey <jsharkey@google.com> Merge "Changes of root storage space unmounting time on Zygote Process" into nyc-dev
885b742bb66660947d8335e9a4f5a4eef2e45ff9 20-Jan-2016 doheon1.lee <doheon1.lee@lge.com> Changes of root storage space unmounting time on Zygote Process

Zygote process forks every child process for launch the SystemServer and other
applications. When child process is forked, unmount storage inherited
from Zygote process is executed before it gains its own root storage
space.
If Zygote have no storage spaces, unmount operations not needed to
get relevant permission storage space.
Thus unmount is executed only once shortly before the SystemServer is forked.
And the child processes do not unmount its inherited root storage space.

Change-Id: I311ca7ea2c93085f42579f8cf8bdc7ef1d570a04
ygote.java
ygoteInit.java
6fdd3afdcc43c1dec03ee82e9e1d69e88170d932 17-Mar-2016 Phil Weaver <pweaver@google.com> Merge "Treat accessibility actions as user activity" into nyc-dev
da80d676c70fa07d4efe566b2c74b3fbc61805b0 16-Mar-2016 Phil Weaver <pweaver@google.com> Treat accessibility actions as user activity

Resurrecting ag/665912.

Bug: 19531976
Change-Id: Ibdddd507215e61b9f4313c36eab8845e9940a7ac
atteryStatsImpl.java
816433093ca816baacd34fa1ac8896af171fe4cd 15-Mar-2016 Roshan Pius <rpius@google.com> Fix a bug in ControllerActivityCounter

We were returning the RxtimeMillis counter instead of idleTimeMillis
counter in |getIdleTimeCounter|.

BUG: 27268322
Change-Id: If08a64095b375e078aef2a935b144c4285ead08b
atteryStatsImpl.java
713fec85b8612256211f09c62b8958a99fe5b9db 04-Mar-2016 Joe Onorato <joeo@google.com> Add an API for apps to get their System Health / Battery Stats data.

Change-Id: Ib27e1be469b826f6d83d73ce6024102bbdb1d47a
atteryStatsImpl.java
0c9ef61944e883219dd167f765a504ab8cdb7710 03-Mar-2016 Calin Juravle <calin@google.com> Merge "Better handling of various types of compilation in DexOptimizer" into nyc-dev
693f997cc8b8c2ba8d3ed29627b2641dd86392a5 25-Feb-2016 Calin Juravle <calin@google.com> Better handling of various types of compilation in DexOptimizer

From the runtime perspective extract-only/profile-guide-compiled/fully-
compiled oat files are up-to-date and don't need dex2oat. However,
wihout knowing the exact "class" of the aot file we are not able to do a
full compilation of something previously only-extracted, or limit
profile-guide compilation to only previously profile-guide or extract-
only oat files.

GetDexOptNeeded now accepts a mask of desired types of compilation
that the runtime takes into account when advising what's needed.

This CL adds the necessary handling in DexOptimizer.

Also:
- removes the contraint to use extract-only oat files only when
profiles are enabled.
- removes mDexOptPerformed which interfere with the different types of
compilation and only saved a call to GetDexOptNeeded.

Bug: 27189430
Change-Id: Iced2bdcc3aa7866ff888a3bace43f4b71fffb353
ygoteInit.java
e9be5da68640507d4986ce4294398da0083b0df5 29-Feb-2016 Nimrod Gileadi <nimrod@google.com> Close InputStream in BatteryStatsHelper

Bug: 17760659
Bug: 27376093
Change-Id: I5e6471f73b3258067fb670a4b66ddc51be62b6ec
(cherry picked from commit e618b53081d9a173305b7c72cab4c2ed6ca2dcec)
atteryStatsHelper.java
4f655de3de5819c1076b83747c135554dfd22708 01-Mar-2016 Andreas Gampe <agampe@google.com> Merge "Frameworks/base: Refactor TextView initialization" into nyc-dev
ddc1397eba25e17591e3491dddb192b3fa38100f 27-Feb-2016 Andreas Gampe <agampe@google.com> Frameworks/base: Refactor TextView initialization

To allow static initialization of a number of View classes based
on TextView, refactor the initialization of the font cache to be
explicit from the zygote.

Bug: 27265238
Change-Id: I1b71086d3f49d8b3e72eea2bf8359351d25fc0fd
ygoteInit.java
f8880561e67e1da246970b49b14285efd4164ab1 26-Feb-2016 Jeff Sharkey <jsharkey@android.com> When system server goes down, crash apps more.

Similar to first patch, but now using new "rethrowFromSystemServer()"
method which internally translates DeadObjectException into
DeadSystemException. New logic over in Log.printlns() now
suppresses the DeadSystemException stack traces, since they're
misleading and just added pressure to the precious log buffer space.

Add some extra RuntimeInit checks to suppress logging-about-logging
when the system server is dead.

Bug: 27364859
Change-Id: I05316b3e8e42416b30a56a76c09cd3113a018123
untimeInit.java
09c09fd345a6b4c9619885428dce9802ad7b8cd8 27-Feb-2016 Adam Lesinski <adamlesinski@google.com> Merge "BatteryStats: Fix issue where network traffic accounting might be lost" into nyc-dev
6cca414de21e515e1db4164b15b33355c724cf1a 26-Feb-2016 Adam Lesinski <adamlesinski@google.com> BatteryStats: Fix issue where network traffic accounting might be lost

Both bytes transmitted and received must be 0 if we are to short circuit and
ignore the UID's network delta.

Change-Id: Ia69f605c7d5954b8f2c3671bab596dc9925f1d02
atteryStatsImpl.java
e1acd636d492f5c828a8abaccfd2fed185ddc0d6 23-Feb-2016 Joe Onorato <joeo@google.com> Make getBatteryUptimeLocked protected so it can be mocked.

Also fix test names.

Change-Id: I43477e61c22cd36735214951c45c52b39095e1b5
atteryStatsImpl.java
abded113bde548734600dc1b6e4ce2e94f48e32e 09-Feb-2016 Joe Onorato <joeo@google.com> Add unit tests for BatteryStatsImpl.

- Add a Clocks interface to wrap SystemClock.uptimeMillis and
SystemClock.elapsedRealtime.
- Make the inner classes static so they can be created independently,
which meant passing explicit pointers to the BatteryStatsImpl and
the Uid objects in a lot of places.
- Make several fields protected so they can be accessed by the tests (they are
still @hidden)
- Add a test suite for the battery stats.
- Add the tests

Change-Id: I4e45afedc64f7050985c28a7eb4f5c1ddbaa63fa
atteryStatsImpl.java
d888beb9bfca2da6bba303cd7db809ccefa7b996 18-Feb-2016 Andreas Gampe <agampe@google.com> Frameworks/base: Use Log.printlns in RuntimeInit

Make printlns in Log public-@hide so it can be used.

Print uncaught exceptions that will terminate the process in
RuntimeInit using printlns, so that long exception traces are not
being truncated.

Bug: 27245306
Change-Id: Ib24635f0ebdd80bd125e367302cab6a78e6a210a
untimeInit.java
25222f55f28221d49a984db465f94e9716635ad8 06-Feb-2016 Tamas Berghammer <tberghammer@google.com> Merge "Add flag to "am start" to enable native debugging"
9f55cc71b9b0a27604d448b5c54e3c377b7a067f 28-Jan-2016 Adam Lesinski <adamlesinski@google.com> Track BLE scans in BatteryStats

Distribute the power used by apps scanning with BLE.

Bug:22718669
Change-Id: I626d8a459fc28fdd7dac682c9ac7c8434945109d
atterySipper.java
atteryStatsImpl.java
luetoothPowerCalculator.java
ifiPowerCalculator.java
df6cb282937e5f804686ebbc952ae9f2290d93c7 29-Jan-2016 Tamas Berghammer <tberghammer@google.com> Add flag to "am start" to enable native debugging

Specifying the new flag will enable several features in the runtime
required by the native debugger to debug Java and C++ code at the same
time.

The enabled features:
* Force JIT (never use the interpreter)
* Debug info generation
* Disbale some optimizations

Change-Id: Iaf5ab649715a0c274bd1b0fc64e483705da53cd0
ygote.java
ygoteConnection.java
9fa3cd3d86102008bbca40b62b0dca86382fcee9 29-Jan-2016 Adam Lesinski <adamlesinski@google.com> Merge "BatteryStats: Fix DivideByZero error"
a426817a06ed228cc52097c866a7d263bddadbb8 29-Jan-2016 Adam Lesinski <adamlesinski@google.com> BatteryStats: Fix DivideByZero error

As we hand out proportional blame to apps for transmitting/receiving
packets, make sure to check that the total packets sent never
becomes zero.
Bug:26873610

Change-Id: I3e0fc3c9e8d4dafce2e88c75d8f44701d8fba0d4
atteryStatsImpl.java
4c79fea9efea7cfa739cf5b5f525ddadb28e52a6 29-Jan-2016 Andreas Gampe <agampe@google.com> Frameworks/base: Stop profiling on uncaught exception

When "handling" an uncaught exception, make an attempt to stop
profiling. In case profiling was active, this will avoid losing
the profiling buffer.

Bug: 26291225
Change-Id: Ie5f5517b46ed89d0456a4aac9d4ff3b713d1d8aa
untimeInit.java
21f76aa77075be5e057c36040d7d6e695c669b72 25-Jan-2016 Adam Lesinski <adamlesinski@google.com> Record ModemActivityInfo and distribute power blame to apps

Telephony expsoses a getModemActivity() method, which BatteryStats
will poll when a change in network activity occurs (on the modem).

The time spent in various states (tx, idle, rx) are distributed amongst
the apps that did rx/tx traffic during that window.

Bug:23147562
Change-Id: I480a85df95786f87c382b96816fe2ed4bb2d5a42
atteryStatsImpl.java
luetoothPowerCalculator.java
owerProfile.java
ifiPowerCalculator.java
38622c30557c03f63eb037f067db8347cfbb87d4 22-Jan-2016 Thierry Strudel <tstrudel@google.com> Merge "Don\'t assume kernel tick is 100Hz" into mnc-dr1.5-dev am: 0064c4c793 am: e8b476e8e8
am: afbf1570ac

* commit 'afbf1570acfac5dfc28196c3f4b424fdaef85508':
Don't assume kernel tick is 100Hz
afbf1570acfac5dfc28196c3f4b424fdaef85508 22-Jan-2016 Thierry Strudel <tstrudel@google.com> Merge "Don\'t assume kernel tick is 100Hz" into mnc-dr1.5-dev am: 0064c4c793
am: e8b476e8e8

* commit 'e8b476e8e81ee8bc4fe70fbc78db2f496b2aa023':
Don't assume kernel tick is 100Hz
e8b476e8e81ee8bc4fe70fbc78db2f496b2aa023 22-Jan-2016 Thierry Strudel <tstrudel@google.com> Merge "Don\'t assume kernel tick is 100Hz" into mnc-dr1.5-dev
am: 0064c4c793

* commit '0064c4c79341bcb47bcb5b9ff568871f34f1dc63':
Don't assume kernel tick is 100Hz
b786aaa5a7596471b4b278019dfef15e6dccccc1 22-Jan-2016 Thierry Strudel <tstrudel@google.com> Don't assume kernel tick is 100Hz

Bug: 26729731
Change-Id: I094d5fd0e611349becb91d4460bc2e4af255d125
ernelCpuSpeedReader.java
rocessCpuTracker.java
e33d41f838cdc73658d1e892bc2207c8191a08b3 21-Jan-2016 Adam Lesinski <adamlesinski@google.com> Merge "Record bytes transferred for bluetooth"
db4a79a5d7d348e9d2286d95d4e5a59dd484456f 23-Dec-2015 Calin Juravle <calin@google.com> Enable profile guided compilation on the framework side

The background compilation service will trigger a profile based
compilation instead of a full one. If no profile information is
available the compilation is skipped (see installd).

Note that the end decision whether or not to compile a package is taken
by dext2oat. We can't make the decision here because this service runs
under system server which cannot read app's profile data.

Bug: 26080105
Change-Id: I457ea8dea0557839c1f7cdc241770055732b0a4a
nstallerConnection.java
ygoteInit.java
50e4760214dc3bab81b5ccf6df4d5ce5fa34d723 05-Dec-2015 Adam Lesinski <adamlesinski@google.com> Record bytes transferred for bluetooth

Bug:26039657
Change-Id: Iec42459d12f4106d5733f55313e8544d58930285
atteryStatsImpl.java
fdeeeea6cfdebdb98dd70a7dd48965743af01750 12-Jan-2016 Jeff Sharkey <jsharkey@android.com> Follow installd changes, throw exceptions.

Start by passing down flags to work on both CE and DE storage areas;
a future change will refine this further.

Force consistent argument checking and null handling for all
installd callers. Throw explicit exceptions instead of returning int
values that can accidentally be ignored.

Bug: 26466827
Change-Id: Iddb591f6b3c7786d210d3f132ff7f9886a97b749
nstallerConnection.java
ygoteInit.java
91fc6d1f9cd5e83eec5753ef92960d03367c33a6 29-Dec-2015 Pavlin Radoslavov <pavlin@google.com> Merge "Use GID "wakelock" to control access to kernel wakelock"
am: 60d142c54b

* commit '60d142c54b16be08d8352c7fd1510538014839f7':
Use GID "wakelock" to control access to kernel wakelock
fbd5904ce690491b813ebf815a7e33083bc59ea0 24-Nov-2015 Pavlin Radoslavov <pavlin@google.com> Use GID "wakelock" to control access to kernel wakelock

* Added GID "wakelock" (3010) to the list of groups the System Server
belongs to.

* Added GID "wakelock" to the list of assigned groups for the
"android.permission.BLUETOOTH_STACK" Android permission.

* Grant CAP_BLOCK_SUSPEND to processes that belong to GID "wakelock"

Bug: 25864142
Change-Id: I8a9a5f11e4a9ecd1abf2d4f4b90ec89b3101332e
ygoteInit.java
701662547341269d610ac5f093e449a4c7078e43 24-Nov-2015 Pavlin Radoslavov <pavlin@google.com> Use GID "wakelock" to control access to kernel wakelock

* Added GID "wakelock" (3010) to the list of groups the System Server
belongs to.

* Added GID "wakelock" to the list of assigned groups for the
"android.permission.BLUETOOTH_STACK" Android permission.

* Grant CAP_BLOCK_SUSPEND to processes that belong to GID "wakelock"

Bug: 25864142
Change-Id: I8a9a5f11e4a9ecd1abf2d4f4b90ec89b3101332e
ygoteInit.java
f59c02a65e9fd529467c4e5083d94ed6453e70f7 24-Dec-2015 Narayan Kamath <narayan@google.com> Merge changes from topic \'aosp-merge-24-12\'
am: e0e81bf407

* commit 'e0e81bf407508ec096c752948f8794af5fd480ca':
Special case system_server to not create the JIT code cache.
Don't use IntegralToString
Track libcore commit 85d69e16fe1e59e50c1ad228e754abf325088362.
Track API changes to java.lang.ref.Reference.
Remove merge markers from preloaded-classes
Move StrictJarFile from libcore to framework
Switch RecoverySystem impl to use sun.security.pkcs
API update for OpenJdk based libcore
Use libcore/known_oj_tags for the javadoc stage.
Stop preloading fortress classes
Use HexDump instead of java.lang.IntegralToString
Add core-oj to the list of core library jars.
a87723515627401f142aec1fd98b8863b726a1a3 11-Dec-2015 Nicolas Geoffray <ngeoffray@google.com> Special case system_server to not create the JIT code cache.

(cherry picked from commit 3c43b3863328e339dff90b216aed15194d129e4a)

Change-Id: Ic7b0887f9edcb950fad98ccbe66cab6949fbdc52
ygote.java
72c1a0a110fc1e5af1dce8f00cf114e7a6ea32b8 16-Dec-2015 Adam Lesinski <adamlesinski@google.com> Merge "DO NOT MERGE: Fix batterystats battery level int packing" into mnc-dr1.5-dev am: 1d6d4c5a69
am: d5808d0d35

* commit 'd5808d0d356c5c7263f1ad0982a221c7a0f1df07':
DO NOT MERGE: Fix batterystats battery level int packing
d5808d0d356c5c7263f1ad0982a221c7a0f1df07 16-Dec-2015 Adam Lesinski <adamlesinski@google.com> Merge "DO NOT MERGE: Fix batterystats battery level int packing" into mnc-dr1.5-dev
am: 1d6d4c5a69

* commit '1d6d4c5a695051ccb9b455306b155bad5d6f136a':
DO NOT MERGE: Fix batterystats battery level int packing
5f8c8186ec608182386ce09b6b4ffc449606f22b 14-Nov-2015 Adam Lesinski <adamlesinski@google.com> DO NOT MERGE: Fix batterystats battery level int packing

We introduced some new flag at the lowest significant bit of the
battery level int but failed to account for it when unpacking.

Bug:25596467
Change-Id: I4320e6fcc208ec6de249b14fe3e399ab2f32d839
(cherry picked from commit 6902052c77bbcb9078b4ced243874f67542f64f9)
atteryStatsImpl.java
3c43b3863328e339dff90b216aed15194d129e4a 11-Dec-2015 Nicolas Geoffray <ngeoffray@google.com> Special case system_server to not create the JIT code cache.

Change-Id: I7d2622f560435b2b6d133b0acd2659f3410acd2e
ygote.java
794a18f5a215787570329018c50e2fa08133f893 11-Dec-2015 Adam Lesinski <adamlesinski@google.com> Prevent DivideByZero error in BatteryStatsImpl am: ba88e68fe4 am: 4e4ff058c1
am: 0b754d122c

* commit '0b754d122c3b9db395a86d9a098f6a29bf042b53':
Prevent DivideByZero error in BatteryStatsImpl
0b754d122c3b9db395a86d9a098f6a29bf042b53 10-Dec-2015 Adam Lesinski <adamlesinski@google.com> Prevent DivideByZero error in BatteryStatsImpl am: ba88e68fe4
am: 4e4ff058c1

* commit '4e4ff058c1a0b4b77f468a206a790bb6f084f616':
Prevent DivideByZero error in BatteryStatsImpl
4e4ff058c1a0b4b77f468a206a790bb6f084f616 10-Dec-2015 Adam Lesinski <adamlesinski@google.com> Prevent DivideByZero error in BatteryStatsImpl
am: ba88e68fe4

* commit 'ba88e68fe47b66f1fc5d10c15f04f20fe662399e':
Prevent DivideByZero error in BatteryStatsImpl
ba88e68fe47b66f1fc5d10c15f04f20fe662399e 08-Dec-2015 Adam Lesinski <adamlesinski@google.com> Prevent DivideByZero error in BatteryStatsImpl

It was assumed that when a UID had either rx or tx bytes/packets that it would
have the other as well.

Bug:25706750
Change-Id: Iefac59a6bd02876aed9a0bac218d187b81807a95
atteryStatsImpl.java
a8d10945a608ac6f85a6ab85b69b9a118d7853d8 20-Nov-2015 Dianne Hackborn <hackbod@google.com> Fix reporting of uid state in battery stats.

Now that the activity manager keeps track of per-uid process states,
we can push that already rolled-up data into battery stats to directly
track the times in those states.

The problem with the reporting was actually that we weren't dealing
correctly with negative process states, which is now fixed. (It was
interpreting them as FOREGROUND rather than not running.)

Also split out a number of new states -- TOP, FOREGROUND_SERVICE,
TOP_SLEEPING -- from FOREGROUND. This should allow us to get a much
better idea of how much an app has been actively in use: TOP is when
it is directly visible to the user or in use by such, FOREGROUND_SERVICE
is when it is running in the background in a way the user is aware of.
Also when reporting these numbers, they are no longer added together as
reported but kept as separate times.

Change-Id: I6d307503a4b4ad5c0d5d49305ef63f8eb858e2c9
atteryStatsImpl.java
811dc3b42b4d3c967a2304bf1e01840147b1a528 23-Nov-2015 Filip Gruszczynski <gruszczy@google.com> Allow preloading of freefore multi window drawables.

Bug: 25081468
Change-Id: Ic6ec6050882e5362e1ab8734962d163fff04b53d
ygoteInit.java
e98c57a829f5f5f54261254c5dd3c5c6c0e32e60 20-Nov-2015 Adam Lesinski <adamlesinski@google.com> Merge "Fix batterystats battery level int packing"
3944c81cd73694e3e1f9658fbb9ebc6e22df02e0 14-Nov-2015 Adam Lesinski <adamlesinski@google.com> Fix batterystats battery level int packing

We introduced some new flag at the lowest significant bit of the
battery level int but failed to account for it when unpacking.

Bug:25596467
Change-Id: I4320e6fcc208ec6de249b14fe3e399ab2f32d839
atteryStatsImpl.java
245ec92b653ce51278498f10fddbb0f089404f1d 05-Nov-2015 Nicolas Geoffray <ngeoffray@google.com> Remove DEBUG_JIT from Zygote flags.

The flag is being obsolete by the move to JIT.

(cherry picked from commit 9abbf45c8dcdb2e5b13b615e5138ad996fe8afa3)

Change-Id: I3ce4577e81f91e9dd55d44116e0f9e2014bd00b8
ygote.java
ygoteConnection.java
0283d44c0856499b5aabc3212487a44d6f4b2f63 17-Nov-2015 Nicolas Geoffray <ngeoffray@google.com> Merge "Remove DEBUG_JIT from Zygote flags."
3b91bd21731de804af29d42d77b5c70d67838a4e 26-Sep-2015 Todd Kennedy <toddke@google.com> resolved conflicts for 7de7e0b0 to stage-aosp-master

(cherry picked from commit 9f8602644418ecfb1a5c9555792ceed285fa72bd)

Change-Id: I4e45e5bbaebb98b0e740167eaf7517f99d917f30
nstallerConnection.java
ygoteInit.java
3cdb56efea044112bfe1b97b3ed78ee05e0dba46 11-Nov-2015 Dianne Hackborn <hackbod@google.com> Some debugging improvements.

- Fix dumping of package manager intent filters so the option
to print the filter detail works again.
- Extend dump resolvers to allow you to specify the specific
types of resolvers you'd like to dump.
- Add new package manager commands for querying activities,
services, receivers.
- Move the code for parsing a command line into an intent to
the framework, so it can be used by the new package manager
commands and later elsewhere.

Change-Id: I56ea2bb8c3dd0e5198ee333be8f41ad9dcdb626f
aseCommand.java
0afcfdca963f4cefcb90ac7061aafe3985875145 09-Nov-2015 Nick Kralevich <nnk@google.com> Merge "system_server: allow /proc read access to other UIDs" am: 51b48b3877 am: 02cc328d9d
am: 7907271af1

* commit '7907271af1f9024b1c5896a2d5006f7c868c771c':
system_server: allow /proc read access to other UIDs
368513fa991c66b63194a68ded444f451c5283ec 08-Nov-2015 Nick Kralevich <nnk@google.com> system_server: allow /proc read access to other UIDs

Add system_server to AID_READPROC, to allow system_server to read
/proc entries associated with other UIDs.

Bug: 23310674
Change-Id: I1602b8ee30670cde4ed56e2f901524c105895352
ygoteInit.java
a7262a8956ae06cb83e26b6b81f4a1ff6f40907e 03-Nov-2015 Jorim Jaggi <jjaggi@google.com> Immediately start resizing when touching docked divider

Before, the surface was made full-screen only after
a certain amount of time. Now, immediately make the surface
full-screen, as soon as the divider is touched, to make
resizing much snappier.

Bug: 24507122
Change-Id: I9425785fca4e62964a959a432c80a81d346602c5
omeArgs.java
9abbf45c8dcdb2e5b13b615e5138ad996fe8afa3 05-Nov-2015 Nicolas Geoffray <ngeoffray@google.com> Remove DEBUG_JIT from Zygote flags.

The flag is being obsolete by the move to JIT.

Change-Id: Ifb9fab7c561c7f5137aa78c34dd55c552a9505f5
ygote.java
ygoteConnection.java
8948c01eb726ec79983472e5597ddac8004f9f44 03-Nov-2015 Jeff Sharkey <jsharkey@android.com> Yell when calling installd with PM lock held.

As a matter of policy, we should never be holding the mPackages lock
while calling down into installd. This little bit of logic helps us
catch accidental cases where this happens.

Change-Id: I676c81df43ef936ffd36290d45a79429630c1b4b
nstallerConnection.java
ccbf4e421189f60f94edbc6957a3ef125fb5e0b4 20-Oct-2015 Dianne Hackborn <hackbod@google.com> Merge "Initial implementation of light-weight idle mode."
08c47a5dece977a55d250d98bda9e2a8df8b6ed0 15-Oct-2015 Dianne Hackborn <hackbod@google.com> Initial implementation of light-weight idle mode.

This mode turns on after the screen has been off for 15 minutes,
and then cycles through 15 minutes of idle and 1 minute of
maintenance, ragardless of whether the device is moving around.

It currently only impacts network access and sync/job scheduling.
It does not remove access to wake locks or alarms for any apps.
It also doesn't report in the public API that the device is in
idle mode (since it isn't modifying the behavior of the power
manager) -- this is probably what we desire, since we don't want
stuff like GCM to be reporting these frequent changes.

We'll probably at least want to have the alarm manager do some
kind of more aggressive batching of alarms in this most (not allowing
more than one wakeup every minute?). That's for the future.

Also updated batterystats to include this new information, which
means the format of some of the data has changed -- device_idle
is no longer a flag, but an enum of (off, light, full), and there
is no information about time spent in light modes.

Also added new data about the maximum duration spent in both light
and full idle modes, to get a better understanding of how those
are behaving.

And did a little cleanup of DeviceIdleController, removing the
sensing alarm which was redundant with the regular alarm.

Change-Id: Ibeea6659577dc02deff58f048f97fcd9b0223307
atteryStatsImpl.java
5dd239a1f8e305013ee782e45e7e789ec531e9d1 06-Oct-2015 Luis Hector Chavez <lhchavez@google.com> Make ZygoteInit not require CAP_BLOCK_SUSPEND

We are dropping CAP_BLOCK_SUSPEND since that prevents correct suspension in
Chrome OS. This change makes it so that it only requests that capability if it
is not running inside a container.

TEST=Android boots correctly
BUG:24952794

(cherry picked from commit 5e38447a9bf81bb7d58d33c71498495e1e0f575f)
(cherry picked from commit dc3943951ee475ef09cc7a4825368f9b707e1344)

Change-Id: If39357f22955442d5532d1408ce74360384521bb
ygoteInit.java
eda63f4bf9f70861972d63080aabd257f8fdb74a 30-Sep-2015 Adam Lesinski <adamlesinski@google.com> am 67ee88e8: am 8b7beaec: am 8197e2de: am ffc6ce00: Merge "Fix asymmetry in parceling/unparceling code for BatteryStats summary" into mnc-dr-dev

* commit '67ee88e8ad19f0dc67add174903f24a7c479e74f':
Fix asymmetry in parceling/unparceling code for BatteryStats summary
67ee88e8ad19f0dc67add174903f24a7c479e74f 30-Sep-2015 Adam Lesinski <adamlesinski@google.com> am 8b7beaec: am 8197e2de: am ffc6ce00: Merge "Fix asymmetry in parceling/unparceling code for BatteryStats summary" into mnc-dr-dev

* commit '8b7beaecffde9a98b50cd33be893b7944f2ab271':
Fix asymmetry in parceling/unparceling code for BatteryStats summary
a57a5404400b8dec5144d275452101e283f772b1 28-Sep-2015 Adam Lesinski <adamlesinski@google.com> Fix asymmetry in parceling/unparceling code for BatteryStats summary

Bug:24434303
Change-Id: I638979e54076004860035396738f6a1281e26c20
atteryStatsImpl.java
f4a09907e9cd2b65dc25b2876fc97f07fcfed61b 28-Sep-2015 Adam Lesinski <adamlesinski@google.com> am 983c6d4d: am b8126531: am d913782f: am d5f10154: Bump BatteryStats version

* commit '983c6d4d39265346a088174482f1f0dc55c0ca31':
Bump BatteryStats version
983c6d4d39265346a088174482f1f0dc55c0ca31 28-Sep-2015 Adam Lesinski <adamlesinski@google.com> am b8126531: am d913782f: am d5f10154: Bump BatteryStats version

* commit 'b8126531c4275b5caf0132930a2cfc14344c20ce':
Bump BatteryStats version
d5f10154c772b925f6527e25aeb8461de8c710cd 27-Sep-2015 Adam Lesinski <adamlesinski@google.com> Bump BatteryStats version

Bug:24434303
Change-Id: I697deb30c211c77c36cdd810259507f965f3b93b
atteryStatsImpl.java
56ebb257085ffed21c98ba98ced959ffe6afaca3 26-Sep-2015 Todd Kennedy <toddke@google.com> resolved conflicts for 389bb7f5 to master

Change-Id: I9c3474577166cc91c50d32d225957fbd13c205bf
389bb7f509fc74de3656492a9c474c11bcc96e5b 26-Sep-2015 Todd Kennedy <toddke@google.com> am 9f860264: resolved conflicts for 7de7e0b0 to stage-aosp-master

* commit '9f8602644418ecfb1a5c9555792ceed285fa72bd':
Pass dexopt flags as integer
9f8602644418ecfb1a5c9555792ceed285fa72bd 26-Sep-2015 Todd Kennedy <toddke@google.com> resolved conflicts for 7de7e0b0 to stage-aosp-master

Change-Id: I4e45e5bbaebb98b0e740167eaf7517f99d917f30
fa54ab7950b7ad7605cb842b47826b71a685bc28 25-Sep-2015 Todd Kennedy <toddke@google.com> Pass dexopt flags as integer

Instead of using a series of booleans, create a single flags integer
that contains all of the dexopt options.

Change-Id: Ia8fa968f64b164267f43dd29cea9dc0413058125
nstallerConnection.java
ygoteInit.java
4e321745173de1eb89343238fadfbcc7ba1a88f9 24-Sep-2015 Todd Kennedy <toddke@google.com> resolved conflicts for cafacef6 to stage-aosp-master

Change-Id: Id02e098a02aede327c5bc1a98aa177d8bf9ec5a9
55fe944f987bcbdea8bbec7ea411684f69623da4 21-Sep-2015 Andreas Gampe <agampe@google.com> Frameworks/base: Propagate boot status to installd

Propagate the boot status explicitly to installd so that we do not
have to rely on dev.bootcomplete, which isn't meaningfully set
when the device needs the decryption screen on boot.

Bug: 23898216
(cherry picked from commit 06bb908b78e3c790d3db52fef9f2ab0a129e53cd)
Change-Id: I9b34298caf70b1e5d40970cc0d04c469016a80a7
nstallerConnection.java
ygoteInit.java
d548da799117a4b34ccfa57a3f9a535dbdba1da4 22-Sep-2015 Adam Lesinski <adamlesinski@google.com> am 112c1dc6: am 6a8d1fd6: am dbca76cd: am 1b57758a: Merge "Fix Array Index Out of Bounds in BatteryStatsImpl" into mnc-dr-dev

* commit '112c1dc63adbc36b1bd50dac24d1ea39959ef0f2':
Fix Array Index Out of Bounds in BatteryStatsImpl
bc68463602b6c26cca8988e55df8dbf48ca653e5 22-Sep-2015 Andreas Gampe <agampe@google.com> resolved conflicts for 5d7b68d4 to master

Change-Id: I6f56e8e11c35733f8d84346ca2b9a201784552e1
cdda4f107082e53192b6a371e3cc8b7d945eb500 22-Sep-2015 Elliott Hughes <enh@google.com> am 776fa57b: am aa311698: am 0361b18e: Merge "WrapperInit: remove dead execStandalone method"

* commit '776fa57b2da75fb508d66cf0339dc7c4df9a5e55':
WrapperInit: remove dead execStandalone method
112c1dc63adbc36b1bd50dac24d1ea39959ef0f2 22-Sep-2015 Adam Lesinski <adamlesinski@google.com> am 6a8d1fd6: am dbca76cd: am 1b57758a: Merge "Fix Array Index Out of Bounds in BatteryStatsImpl" into mnc-dr-dev

* commit '6a8d1fd62f73a241e7962b3baa3720a6dcd0767b':
Fix Array Index Out of Bounds in BatteryStatsImpl
5d7b68d4914c8ddb0171abd1f668716ff682fd84 22-Sep-2015 Andreas Gampe <agampe@google.com> am 53ed452e: am 9ce68b24: am b49245f9: Merge "Frameworks/base: Propagate boot status to installd" into mnc-dr-dev

* commit '53ed452e86aa186b5903b65057b4473629292f0d':
Frameworks/base: Propagate boot status to installd
1b57758a1bb814c3a00ec864fe164bfe7861a9ab 22-Sep-2015 Adam Lesinski <adamlesinski@google.com> Merge "Fix Array Index Out of Bounds in BatteryStatsImpl" into mnc-dr-dev
776fa57b2da75fb508d66cf0339dc7c4df9a5e55 22-Sep-2015 Elliott Hughes <enh@google.com> am aa311698: am 0361b18e: Merge "WrapperInit: remove dead execStandalone method"

* commit 'aa31169804dffa3b36654ccffe67a53f6ff4cdaf':
WrapperInit: remove dead execStandalone method
aa31169804dffa3b36654ccffe67a53f6ff4cdaf 22-Sep-2015 Elliott Hughes <enh@google.com> am 0361b18e: Merge "WrapperInit: remove dead execStandalone method"

* commit '0361b18ea10aa7987dbf8c4217d5f4c7e3a4a610':
WrapperInit: remove dead execStandalone method
52290c9c4fca5bec384382406dd1b4d28b424a89 22-Sep-2015 Adam Lesinski <adamlesinski@google.com> Fix Array Index Out of Bounds in BatteryStatsImpl

If the power profile was not set yet, the default sizes of
cpu freq arrays could have been too small.

Bug:24244089
Change-Id: Ic17a1e8f2058c51fbdda14db35b7b62f4880be00
atteryStatsImpl.java
06bb908b78e3c790d3db52fef9f2ab0a129e53cd 21-Sep-2015 Andreas Gampe <agampe@google.com> Frameworks/base: Propagate boot status to installd

Propagate the boot status explicitly to installd so that we do not
have to rely on dev.bootcomplete, which isn't meaningfully set
when the device needs the decryption screen on boot.

Bug: 23898216
Change-Id: I9b34298caf70b1e5d40970cc0d04c469016a80a7
nstallerConnection.java
ygoteInit.java
13eac10a2689a5595c769e9de6ddaa5d7f0883c7 22-Sep-2015 Daniel Micay <danielmicay@gmail.com> WrapperInit: remove dead execStandalone method

This became dead with the removal of support for the non-runtime-init
code path in f48029f00a66e23d7872a00b56fbcf88528ba476.

Change-Id: Id68e0da4658e83f0d3bfd8645152165faacac5fa
rapperInit.java
ee5584cd3c939e29d8e6356969b6691ba5d2b380 19-Sep-2015 Adam Lesinski <adamlesinski@google.com> am eb1356cc: am 3bdbda78: am dd0238ec: am e54253bd: Merge "Fix crash when no power_profile is specified" into mnc-dr-dev

* commit 'eb1356cc15d4c07e152b5dbc545701c496d7b50f':
Fix crash when no power_profile is specified
eb1356cc15d4c07e152b5dbc545701c496d7b50f 19-Sep-2015 Adam Lesinski <adamlesinski@google.com> am 3bdbda78: am dd0238ec: am e54253bd: Merge "Fix crash when no power_profile is specified" into mnc-dr-dev

* commit '3bdbda780613e1701e4e3e567be8a743a8dedb8f':
Fix crash when no power_profile is specified
8057133d49ab3243de54333012ce5ee8fece5381 18-Sep-2015 Adam Lesinski <adamlesinski@google.com> Fix crash when no power_profile is specified

Always connected devices don't have power_profiles,
so handle the case where the default cpu speed count of
1 is used on a device with more cpu speeds.

Bug:23776983
Change-Id: Ifdddad2f28eea5b730833622a6b6043b3086efd2
ernelCpuSpeedReader.java
ernelUidCpuTimeReader.java
36743412ac6155c063afe8436580466c145d971e 18-Sep-2015 Adam Lesinski <adamlesinski@google.com> am 4092eeb7: am 069594f9: am 4e86aae6: am 68055395: Merge "BatteryStats: Better big-little CPU accounting" into mnc-dr-dev

* commit '4092eeb7f7b079a87c4583c713c0e6d2e208b3c4':
BatteryStats: Better big-little CPU accounting
4092eeb7f7b079a87c4583c713c0e6d2e208b3c4 18-Sep-2015 Adam Lesinski <adamlesinski@google.com> am 069594f9: am 4e86aae6: am 68055395: Merge "BatteryStats: Better big-little CPU accounting" into mnc-dr-dev

* commit '069594f96a3c70b01119f689f2195e0d933c0700':
BatteryStats: Better big-little CPU accounting
6832f39416cbe2cc9655af4eabefe39c5d272254 06-Sep-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Better big-little CPU accounting

Generalize cpu clusters so we can measure frequency
and power usage across heterogeneous cpu clusters.

This also brings back reading of cpu-times for power calculation.

Bug:22773176
Change-Id: I9c794ae9756c782c0e971c7f5fcebbe70374b269
atteryStatsHelper.java
atteryStatsImpl.java
puPowerCalculator.java
ernelCpuSpeedReader.java
owerProfile.java
f9fba9802578adce8a1d0125329f7e4f930a5f84 04-Sep-2015 Yasuhiro Matsuda <mazda@google.com> am e651ee9b: am 10191dd9: am 53f1a815: Merge "Remove unnecessary finally blocks for tracing."

* commit 'e651ee9bef73c00c3ca1f1ed57485a6c06b802fd':
Remove unnecessary finally blocks for tracing.
e651ee9bef73c00c3ca1f1ed57485a6c06b802fd 04-Sep-2015 Yasuhiro Matsuda <mazda@google.com> am 10191dd9: am 53f1a815: Merge "Remove unnecessary finally blocks for tracing."

* commit '10191dd9d20f589fd6f7868a350c104372a57687':
Remove unnecessary finally blocks for tracing.
10191dd9d20f589fd6f7868a350c104372a57687 04-Sep-2015 Yasuhiro Matsuda <mazda@google.com> am 53f1a815: Merge "Remove unnecessary finally blocks for tracing."

* commit '53f1a815b4401f10cd833217143da44ab0408dcc':
Remove unnecessary finally blocks for tracing.
25878b288846831048e157271c635d31d1c7557b 03-Sep-2015 Yasuhiro Matsuda <mazda@google.com> Remove unnecessary finally blocks for tracing.

BUG: 22207144
Change-Id: I2b15bb7c4055a1ad589b433d4f253868813ab311
ygoteInit.java
6d444185e55315a0111162609b1f619ee268bf3a 02-Sep-2015 Yasuhiro Matsuda <mazda@google.com> resolved conflicts for merge of fcf9ab5a to master

Change-Id: I69ad6e525430c5c4fc3c274b8bf6ebf653716124
fcf9ab5ab3e158cea2559ed4e7274dbfeb0a6e77 02-Sep-2015 Yasuhiro Matsuda <mazda@google.com> am ebf9465d: resolved conflicts for merge of ef57e5e0 to stage-aosp-master

* commit 'ebf9465d213336819b15e3b21d02afce64470d4f':
Add trace code to system server.
ebf9465d213336819b15e3b21d02afce64470d4f 02-Sep-2015 Yasuhiro Matsuda <mazda@google.com> resolved conflicts for merge of ef57e5e0 to stage-aosp-master

Change-Id: I1c31b38936dc74619dea27f0d5eecab43360bb8c
54c070ef14b87bdc65cda01172905f701cb92114 01-Sep-2015 Adam Lesinski <adamlesinski@google.com> am f7ce28fa: am d0ce1fbb: am 69e17f59: am da43a3aa: Merge "BatteryStats: Start using cpu power from kernel" into mnc-dr-dev

* commit 'f7ce28fad5d76267a9e69a05f6a2147c6baae827':
BatteryStats: Start using cpu power from kernel
1ab43d5978813f56899dbd3115fd7d9f96b4fe55 30-Jun-2015 Yasuhiro Matsuda <mazda@google.com> Add trace code to system server.

- Add TRACE_TAG_SYSTEM_SERVER for tracing system server code.
- Add a few more tracing code to the code paths related to boot.

BUG: 21739901
BUG: 22207144
Change-Id: I08b424d2f83783f512c3818394099909cd55f327
ygoteInit.java
ab7672d45a66613e23c7769208fc5bc62fe6b363 21-Aug-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Start using cpu power from kernel

This allows us to stop using approximate methods of attributing
cpu frequency time across apps and to use a more precise kernel
method that is aware of the time spent by a process on a given core
at a given frequency.

Bug:22773176
Change-Id: I3c34365fa8c73204f178a5610423901b13453d06
atteryStatsHelper.java
puPowerCalculator.java
e264f9a51ef2158df345c3c4b19dd6098e959141 19-Aug-2015 Dianne Hackborn <hackbod@google.com> am 5a1234fa: am 81b4616f: am aa8c876e: am 5c577bab: am 29cd8808: Merge "Fix issue #23326715: Clarify --checkin/-c options in batterystats" into mnc-dev

* commit '5a1234fabf73224d107ce0715682728b35357203':
Fix issue #23326715: Clarify --checkin/-c options in batterystats
865b79b43b75361fceb3aa1c99ad6f6e7c90e6ac 19-Aug-2015 Dianne Hackborn <hackbod@google.com> Fix issue #23326715: Clarify --checkin/-c options in batterystats

Change-Id: I3f026447ba7c6d2c3f9ef065269c31a78cf73512
atteryStatsImpl.java
4f574285d46c0d3e2b633bfd924b21fb385a0b5f 05-Aug-2015 Mitchell Wills <mwills@google.com> am ebcf99d3: am c439c236: am bf026e68: am b0e9e731: am bce3eb22: Merge "Fix incorrect default wifi power draw values" into mnc-dev

* commit 'ebcf99d310f4121d0cb5edb18cb7c7eddd6e1f6b':
Fix incorrect default wifi power draw values
bce3eb22afcd57b7f1bdde26030f8c44bb885a4b 05-Aug-2015 Mitchell Wills <mwills@google.com> Merge "Fix incorrect default wifi power draw values" into mnc-dev
008cde4da5d861cbeb19bf0d123e9be151e74496 05-Aug-2015 Mitchell Wills <mwills@google.com> am c1d02417: am d9b729c7: am 992ae880: am e8c888c4: am 385dfd34: Merge "Charge apps for wifi tx time while scanning" into mnc-dev

* commit 'c1d02417bbd4df7b3b8273a1fdd4dc7aedfef441':
Charge apps for wifi tx time while scanning
385dfd349ff773c499859ee44552995e9c25759c 04-Aug-2015 Mitchell Wills <mwills@google.com> Merge "Charge apps for wifi tx time while scanning" into mnc-dev
f901649bd920adbc1f956782d0bb0b5f7640afe1 30-Jul-2015 Mitchell Wills <mwills@google.com> Charge apps for wifi tx time while scanning

Bug: 22955562
Change-Id: Ie2c6ab65e7b592272e1cad120ac606fcfd6ea677
atteryStatsImpl.java
083e1d9e4b32dde846b763474152664d62f5b3f1 30-Jul-2015 Mitchell Wills <mwills@google.com> Fix incorrect default wifi power draw values

Bug: 22848679
Change-Id: Ief4e3e05b051b93efbe30fdc8903cce6765d2ed8
ifiPowerCalculator.java
ifiPowerEstimator.java
d3821f3fe53ed751e4b95b39ab0349c169a2486e 04-Aug-2015 Adam Lesinski <adamlesinski@google.com> am 70593fb0: am 347c8850: am 4eb6c10d: am 7608f541: am 59d72c86: Merge "BatteryStats: Add debug logging to find source of b/22716723" into mnc-dev

* commit '70593fb065ad66e7fda971d3e3b70c6e0019bd3a':
BatteryStats: Add debug logging to find source of b/22716723
fbabe7dd6a25f1ed1228ea65a2305f298427a99b 03-Aug-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Add debug logging to find source of b/22716723

Bug:22716723
Change-Id: I97b940b702666b393555622d034e1c694b1e346a
atteryStatsImpl.java
ernelWakelockReader.java
7ca82d915ea92ef74e21a7abb332d74e5fd26a9c 29-Jul-2015 Adam Lesinski <adamlesinski@google.com> am 2a098fe9: am 2529d39d: am 858e4a6f: am 9aae8d9c: am c96e6f19: Merge "BatteryStats: Use proper power calculator when energy data is received" into mnc-dev

* commit '2a098fe90ab0e60c2326e9aedbfdd85529de782f':
BatteryStats: Use proper power calculator when energy data is received
c691d3ccf4eb29376225bcbeb35bc532a3071ed1 29-Jul-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Use proper power calculator when energy data is received

We check for the presence of energy data when determining whether to use
the WiFiPowerCalculator or WiFiPowerEstimator. Since we can receive this data
later, we need to switch to the WiFiPowerCalculator if we weren't using it before.

We can't ask the hardware if it supports energy data because that would involve a call into
WiFiManagerService, which can cause a deadlock if we are holding the BatteryStatsService lock
while using this class.

Bug:22776010
Change-Id: Id685d487c56595eab1d382f49da9417a423bb517
atteryStatsHelper.java
e3a1ea11528381258f78be011d97cbbf0807cdce 24-Jul-2015 Dianne Hackborn <hackbod@google.com> am b365dff5: am bd3d9a0d: am 86f88bc4: am b572b950: am 4a368659: Merge "Fix issue #22414729: Checkin start clock time is different from hsitory reset time" into mnc-dev

* commit 'b365dff5c23b35170f12dd034fa40f911a00b325':
Fix issue #22414729: Checkin start clock time is different from hsitory reset time
e4e691b80206500820205cb9ed3c2ff18d9952dc 24-Jul-2015 Adam Lesinski <adamlesinski@google.com> am a0d43c31: am 602d71db: am 898e3dda: am 92638a0c: am 6625047a: Merge "BatteryStats: Use English locale for dump and checkin data" into mnc-dev

* commit 'a0d43c31df8a5c1d3a52dc28a263cb2c4b1b0092':
BatteryStats: Use English locale for dump and checkin data
4a368659baf8f86b522a6b2679bb2b2a9fd0a997 23-Jul-2015 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #22414729: Checkin start clock time is different from hsitory reset time" into mnc-dev
d48954fb6bd5fb3170ea44b95c87ed2b7a70d535 23-Jul-2015 Dianne Hackborn <hackbod@google.com> Fix issue #22414729: Checkin start clock time is different from hsitory reset time

There was a mistake in the code that was supposed to recover from the
initial time on a new device being bad until the real time ultimately
gets set, which was causing us to update the start clock time every time
there was a time change (instead of just when the original start time
appears bad).

Rework all of this, so we now count the start time as bad if it is more
than one year before the current time, only modifying it in that case.
Also when modifying it, adjust the time we set it to take in to account
how much realtime has actually elapsed so far in the battery stats.

Change-Id: If74bd711d9b7618c8f6148a9935c452aaaa7e257
atteryStatsImpl.java
6625047a3ba26ecc52bb2757eb7576027949e435 22-Jul-2015 Adam Lesinski <adamlesinski@google.com> Merge "BatteryStats: Use English locale for dump and checkin data" into mnc-dev
8a83c614978e66e932de628b8f5e1559893dc3a0 22-Jul-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Use English locale for dump and checkin data

Dump and checkin data is read by tools that expect a consistent
locale.

Bug:22357316
Change-Id: I0d7e6e771c3512278efca7579fe9c4b79b560e28
atteryStatsHelper.java
26bfaa5c9737807b8fbed71a30cf433ac55ff9e2 21-Jul-2015 Adam Lesinski <adamlesinski@google.com> am 208d273e: am e1cd38e9: am ca34b184: am a50f43e0: am 23e19066: Merge "BatteryStats: Read /proc/wakelocks first before trying /d/wakeup_sources" into mnc-dev

* commit '208d273edcaa59470fa1a83d96b0b3cd036dbbf1':
BatteryStats: Read /proc/wakelocks first before trying /d/wakeup_sources
23e19066de2caf1db1fa0759ac49a1118b59f7a5 21-Jul-2015 Adam Lesinski <adamlesinski@google.com> Merge "BatteryStats: Read /proc/wakelocks first before trying /d/wakeup_sources" into mnc-dev
6856964444d0bb0fee6d7f62ae3f443f67244514 21-Jul-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Read /proc/wakelocks first before trying /d/wakeup_sources

Previously we tried to read /d/wakeup_sources to gather kernel wakelock data. If that
fails we used the older sys file /proc/wakelocks.
N7 has both /proc/wakelocks and /d/wakeup_sources, but /proc/wakelocks
has the actual data we need. All other devices are using /d/wakeup_sources, so
only N7 experienced a loss of kernel wakelock data.

The original regression was introduced here: ag/659258

Bug:22556242
Change-Id: I51ec68e957f587bc1466e24f0a1dbc8cd7753ac6
ernelWakelockReader.java
5539adc0dc1847781887227f1d1e10481d750846 16-Jul-2015 Dianne Hackborn <hackbod@google.com> am 335d1f72: am 6af63384: am e12c549b: am 0d04da1f: am 1cf8b0b6: Merge "Fix issue #22124996: VI: Command Request not Active" into mnc-dev

* commit '335d1f7273fd0394cc90402af0365342c245af5c':
Fix issue #22124996: VI: Command Request not Active
aa1a35ba277019827aca33014f1e09d01831fc7d 16-Jul-2015 Jim Miller <jaggies@google.com> am 2e56339a: am bcedcde8: am 204c2de8: am c7b0435c: resolved conflicts for merge of 1d4247c4 to mnc-dr-dev

* commit '2e56339a4a1133e9aface1c851f1ab67cff72109':
Improve tracking of screen on reasons.
d0a159025a06a7400ab3dfca1d754494947092e0 15-Jul-2015 Dianne Hackborn <hackbod@google.com> Fix issue #22124996: VI: Command Request not Active

This stupid thing wasn't even completely implemented
in HandlerCaller! D'oh!

Change-Id: I0dac42c208fa0f08a6e20a6cb17b072f51efcaa7
omeArgs.java
280a64e793d081847c5dcea23ed9be38aa5332d2 13-Jul-2015 Dianne Hackborn <hackbod@google.com> Improve tracking of screen on reasons.

- New screen on app op to record the last time each app has
caused the screen to be turned on.
- New battery stats event that tells us the reason the screen
has been asked to turn on.
- Propagate out power manager API to specify the reason a caller
is asking to have the screen turned on.

Note that currently the window flag to turn the screen on bypasses
much of this because it is being handled in the window manager by
just directly telling the power manager to turn the screen on. To
make this better we need a new API where it can specify who it is
calling the API for.

Change-Id: I667e56cb1f80508d054da004db667efbcc22e971
atteryStatsImpl.java
94e2638e38bc43a7d567b0b7e6536d3e500630e5 15-Jul-2015 Adam Lesinski <adamlesinski@google.com> am f488fc28: am c678d23d: am f96a3386: am e5c0550d: am 267240f2: Merge "BatteryStats: Clear power use when removing a UID from uid_cputime kernel module" into mnc-dev

* commit 'f488fc28102870d8ec943d0a3a78c6d3997711c2':
BatteryStats: Clear power use when removing a UID from uid_cputime kernel module
267240f2ddbaa0ea2828d7466f310c6ffc7c91cd 15-Jul-2015 Adam Lesinski <adamlesinski@google.com> Merge "BatteryStats: Clear power use when removing a UID from uid_cputime kernel module" into mnc-dev
a4359a32ff154a3af28826a5ef842a8158350eec 15-Jul-2015 Adam Lesinski <adamlesinski@google.com> am b6675209: am 9de0c930: am b3b21b46: am d4d190ca: am d4c1861a: Merge "BatteryStats: Fix units in wakelock distribution calculation" into mnc-dev

* commit 'b6675209e21f3f0d12f7323385891e68030baac8':
BatteryStats: Fix units in wakelock distribution calculation
bdb0273455c45bf5534f0f3c5759ddcb8aca3bf0 15-Jul-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Clear power use when removing a UID from uid_cputime kernel module

Bug:22461683
Change-Id: Iffb847268d2872bd2a843e28dc41fa22b1e36828
ernelUidCpuTimeReader.java
d4c1861a536d022b00505c75c30529c50688f26a 15-Jul-2015 Adam Lesinski <adamlesinski@google.com> Merge "BatteryStats: Fix units in wakelock distribution calculation" into mnc-dev
93f8e4e007d338ec911c4e7560a9d743266d5fcd 14-Jul-2015 Adam Lesinski <adamlesinski@google.com> am c6361077: am 8e81f616: am 36ba8b1b: am ba7e39d5: am 92a3914f: Merge "BatteryStats: Remove uid_cputime Slog.wtf for high cpu times" into mnc-dev

* commit 'c63610777100d8ce17a0c2b3db788fe8b0913171':
BatteryStats: Remove uid_cputime Slog.wtf for high cpu times
062e66cb15c856f840ea0806bcf90848c35baa4f 14-Jul-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Fix units in wakelock distribution calculation

This is mostly for checkin stats, this is not used in any computation.

Bug:22468534
Bug:22391540
Change-Id: Ib3d0c86db5044092d3d76acf8f001337272af2ff
atteryStatsImpl.java
92a3914fb353b725646a96185d1c1daaf3977e7b 14-Jul-2015 Adam Lesinski <adamlesinski@google.com> Merge "BatteryStats: Remove uid_cputime Slog.wtf for high cpu times" into mnc-dev
67eea87e0de4ce8a066549420c6e0ca50d46870c 14-Jul-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Remove uid_cputime Slog.wtf for high cpu times

High cpu times are expected as multiple cores can be running at the
same time, so comparing against the time between samples is incorrect.

I am reasonable certain that the values we see now are correct, so disabling this
check. However, checking for negative values (overflows) is still enabled and
will remain enabled because there is no case where we will be ok with negative deltas.

Bug:22461683
Change-Id: If9c7cdbb75ceaed059d1e0f4dd83cfdd3e021a93
ernelUidCpuTimeReader.java
949d16ebd5f4902db8fe79970479fcb1bee4a524 14-Jul-2015 Rubin Xu <rubinxu@google.com> am 5571a986: am afe3c2b3: am 474f987d: am f5d6d432: am cf9aebf1: Merge "Remove ExternalStorageFormatter" into mnc-dev

* commit '5571a986f0a2939248aefc584248d08732c761e4':
Remove ExternalStorageFormatter
cb746a860cc6830a1d7d1762a57a871b100ded77 09-Jul-2015 Rubin Xu <rubinxu@google.com> Remove ExternalStorageFormatter

Bug: 9433509
Change-Id: I815770e0e0314fc7012ebc213f2167a13d6f37d1
torage/ExternalStorageFormatter.java
2878e4e825bad10c5fe2784f0efb8bc545cdde53 09-Jul-2015 Adam Lesinski <adamlesinski@google.com> am 8e82c794: am 3e2b53ff: am 1ad61b33: am 1549adb4: am 7fb1655a: Merge "BatteryStats: Fail gracefully on corrupt battery stats" into mnc-dev

* commit '8e82c794bb944d4a15501854721a476db2dae470':
BatteryStats: Fail gracefully on corrupt battery stats
9ae9cba0209a8baf0a5d7463dc1c9a4831c916f6 09-Jul-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Fail gracefully on corrupt battery stats

Bug:22328963
Change-Id: Id0b4c6334706e58483d5fdfd2c1137bfb821c409
atteryStatsImpl.java
79f96c9d4c51cae6470f062c1c6ed4947471631e 07-Jul-2015 Adam Lesinski <adamlesinski@google.com> am 8f387fc0: am f036847f: am c6c21522: am a5bd0e3a: am fe45b29a: Merge "BatteryStats: Remove isolated UIDs from /proc/uid_cputime when they are not in use anymore" into mnc-dev

* commit '8f387fc09a578e7280bfd1d1247964a02d1d9350':
BatteryStats: Remove isolated UIDs from /proc/uid_cputime when they are not in use anymore
f124aeaf53ac9b248eb1e3868c22eb2f348b8f7b 07-Jul-2015 Adam Lesinski <adamlesinski@google.com> am ebb92a3c: am 92726ca9: am 1fa6846b: am 948ac4fa: am 1a257545: Merge "BatteryStats: Fix issue with method parameter order..." into mnc-dev

* commit 'ebb92a3c4001e943c68acbd3760cdb14eb091eee':
BatteryStats: Fix issue with method parameter order...
61db88fc8b4a5729d9ce6bc1b7bfaac5c09c8f90 02-Jul-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Remove isolated UIDs from /proc/uid_cputime when they are not in use anymore

Bug:22225933
Change-Id: I384a3c37ad45af981cca5fc3e92643da948d48d0
atteryStatsImpl.java
1a257545b2d1e8bd95393ee6637e70be7d230bc6 06-Jul-2015 Adam Lesinski <adamlesinski@google.com> Merge "BatteryStats: Fix issue with method parameter order..." into mnc-dev
f7808b7cf073175eb34a95760ef01e3dd61dd3ee 06-Jul-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Fix issue with method parameter order...

Argh, this explains some weird instances of negative power
given to Wakelock usage. Realtime and uptime were switched in the
parameter list, and since they're both longs, compiler was happy.

Bug:22295225
Change-Id: I6759504f2690baf66af567d8b1a6d0478bc22228
akelockPowerCalculator.java
9d7204a987496f936b299f3f70f126ed6b48518a 01-Jul-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Don't assume every kernel reports a power field in /proc/uid_cputime

Bug:22225706

Change-Id: I4c7d889716345231564c1e96494dc84aab17cf01
(cherry picked from commit 43ae441ad7d0df12f3982fc60406582445d2df4e)
ernelUidCpuTimeReader.java
43ae441ad7d0df12f3982fc60406582445d2df4e 01-Jul-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Don't assume every kernel reports a power field in /proc/uid_cputime

Bug:22225706
Change-Id: I4c7d889716345231564c1e96494dc84aab17cf01
ernelUidCpuTimeReader.java
77fa075e6d90ded2cdbfe50f8fb38c5738d7cbe1 01-Jul-2015 Adam Lesinski <adamlesinski@google.com> am 57a32403: am 4718afcd: am 14b57010: Merge "BatteryStats: Record cpu power usage from /proc/uid_cputime" into mnc-dev

* commit '57a324033bcb348a9c0d4d4774f7d5ebb4b56a41':
BatteryStats: Record cpu power usage from /proc/uid_cputime
14b5701029edc4473921e2a2446ec3151f30b916 01-Jul-2015 Adam Lesinski <adamlesinski@google.com> Merge "BatteryStats: Record cpu power usage from /proc/uid_cputime" into mnc-dev
873bf2c48fc1b8a1f72fb024f16efb9e6bf06d33 30-Jun-2015 Adam Lesinski <adamlesinski@google.com> am 9986350d: am 36eadf9c: am 32ddd534: Merge "BatteryStats: Account for remaining OS wakelock time at the end of processing all apps" into mnc-dev

* commit '9986350d66b6106cabe8c017455561f52a727f2c':
BatteryStats: Account for remaining OS wakelock time at the end of processing all apps
43f222f02fcfb675460a2bbe8e4e8ab3efc1ede1 30-Jun-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Account for remaining OS wakelock time at the end of processing all apps

Bug:18724932
Change-Id: I01cfd18acb3332ad35fd0d48d9c50bc37e5ccd08
atteryStatsHelper.java
a7a4cccf7d90324a049fbfd271d25cad51633922 27-Jun-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Record cpu power usage from /proc/uid_cputime

For now we are just recording the power usage and not using it
to calculate battery power usage or app blame. If it looks like
it is accurate, we'll adopt the values from the kernel instead of
estimating ourselves.

Bug:21498425
Change-Id: I6617e3c0ff279a65f4ff84472082f36fe4beb336
atteryStatsImpl.java
ernelUidCpuTimeReader.java
ab446232be8eca5a60a5fa9f0a937f521f744c14 27-Jun-2015 Rubin Xu <rubinxu@google.com> am ba5c0728: am d1858a7d: am 0a202eac: Merge "Use StorageManager.wipeAdoptableDisks to wipe external disks" into mnc-dev

* commit 'ba5c07286f9980220bda4ed6e9e29f392669c05c':
Use StorageManager.wipeAdoptableDisks to wipe external disks
0a202eac0103cae1c544d6f44bb67b236a3dde8d 27-Jun-2015 Rubin Xu <rubinxu@google.com> Merge "Use StorageManager.wipeAdoptableDisks to wipe external disks" into mnc-dev
aedb56fd18487d7a34b8ea9f09e4a717afa75a1e 26-Jun-2015 Jeff Sharkey <jsharkey@android.com> Merge commit 'b02c73d5' into manualmerge

Change-Id: I3ec37c9d45d685c2393087bdefa6ab512cc70062
e8490f1d78a62826742ddf4af8943e6666a1a8d0 25-Jun-2015 Rubin Xu <rubinxu@google.com> Use StorageManager.wipeAdoptableDisks to wipe external disks

Retire FORMAT_AND_FACTORY_RESET which is more fragile.

Bug: 9433509
Change-Id: I158ee987274bb4db41d466de9f1e3c60ffc1d140
torage/ExternalStorageFormatter.java
9527b223a9d4a4d149bb005afc77148dbeeff785 25-Jun-2015 Jeff Sharkey <jsharkey@android.com> Let's reinvent storage, yet again!

Now that we're treating storage as a runtime permission, we need to
grant read/write access without killing the app. This is really
tricky, since we had been using GIDs for access control, and they're
set in stone once Zygote drops privileges.

The only thing left that can change dynamically is the filesystem
itself, so let's do that. This means changing the FUSE daemon to
present itself as three different views:

/mnt/runtime_default/foo - view for apps with no access
/mnt/runtime_read/foo - view for apps with read access
/mnt/runtime_write/foo - view for apps with write access

There is still a single location for all the backing files, and
filesystem permissions are derived the same way for each view, but
the file modes are masked off differently for each mountpoint.

During Zygote fork, it wires up the appropriate storage access into
an isolated mount namespace based on the current app permissions. When
the app is granted permissions dynamically at runtime, the system
asks vold to jump into the existing mount namespace and bind mount
the newly granted access model into place.

Bug: 21858077
Change-Id: I62fb25d126dd815aea699b33d580e3afb90f8fd2
ygote.java
ygoteConnection.java
2b40e7076dcd898bab87f0817b74a008756e4be5 24-Jun-2015 Makoto Onuki <omakoto@google.com> am 9e2d1ed8: am b96bc804: am 0633ae74: Merge "Actually wait for installd" into mnc-dev

* commit '9e2d1ed898b8e4a4971ddb511e221e3406bf797a':
Actually wait for installd
0633ae7481045b96da09a6c9e1b360d79433a151 24-Jun-2015 Makoto Onuki <omakoto@google.com> Merge "Actually wait for installd" into mnc-dev
53b5f3e68d897028b4dd7ba7a610977187e0f3ff 24-Jun-2015 Adam Lesinski <adamlesinski@google.com> am fe91754e: am 098204fc: am 67f17099: Merge "Fix unit issue in Slog.wtf output" into mnc-dev

* commit 'fe91754edd4b899cf238aae11fb186647fdd4ea2':
Fix unit issue in Slog.wtf output
7b3c7529c73581f360cdcd0243e8c68e1cdedb43 24-Jun-2015 Adam Lesinski <adamlesinski@google.com> Fix unit issue in Slog.wtf output

Bug:22063930
Change-Id: I02add66892eb32b1df7e845b8542beb928d2b3ca
ernelUidCpuTimeReader.java
c8a2cfed0192afc6a408f4bdb77e8a0bdd5d752b 24-Jun-2015 Makoto Onuki <omakoto@google.com> Actually wait for installd

Bug 19337445

Change-Id: I70bdaa0ac3695ac9d03ba34fe9d35fe775a5300d
nstallerConnection.java
ygoteInit.java
e689cca19c0f709b2047dcbc52cfd30cb74509b3 22-Jun-2015 Jeff Brown <jeffbrown@google.com> am 3a9f86a2: am 6903187a: am d63c721e: Merge "Repurpose doze wake lock stats for draw wake lock instead." into mnc-dev

* commit '3a9f86a2df00973b10754fa4011b8e8c32928685':
Repurpose doze wake lock stats for draw wake lock instead.
6a8bd7bc13251fe1710cb529d14ee28b0c4ab5d0 20-Jun-2015 Jeff Brown <jeffbrown@google.com> Repurpose doze wake lock stats for draw wake lock instead.

The doze wake lock is an internal implementation detail with no
power impact. However the draw wake lock is much more interesting
to track because it's essentially like a special purpose partial
wake lock which may be acquired while dozing.

Bug: 21949905
Change-Id: Iedd5f366eb010a47a9691374c5cd3d85ea68173d
atteryStatsImpl.java
d28292f319cbecd839b85aed40b2d8cc0acafaf3 19-Jun-2015 Adam Lesinski <adamlesinski@google.com> am 52e7f8c7: am bd9b25ef: am b6a09299: Merge "BatteryStats: Record doze wake locks" into mnc-dev

* commit '52e7f8c76f78176ae33c22118e2f05626923c724':
BatteryStats: Record doze wake locks
9425fe21c9a8ab894e4a3b12a418564c4349394e 19-Jun-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Record doze wake locks

Doze wake locks don't actually hold the CPU awake, so we should record them
separately from full wakelocks, which is what we did before.

Bug:21949905
Change-Id: Ib4db3399069e0ad11f1f0dc6925a87ad0ad21ff9
atteryStatsImpl.java
f32f7a3ffdbb80fb8d635c1aacaf0c7d2c2dde9f 19-Jun-2015 David Srbecky <dsrbecky@google.com> Merge "Replace --include-cfi with --generate-debug-info." into mnc-dev
15cafc8d92a28a5178f5197eecafab0885f222a0 19-Jun-2015 Adam Lesinski <adamlesinski@google.com> am 8542a49d: am 024d8e2f: am 8b156e37: Merge "BatteryStats: Update external stats individually." into mnc-dev

* commit '8542a49d06b6bfbe80190bc86c76269d4c085b17':
BatteryStats: Update external stats individually.
6c32b58bf1b01f6524fd36af7264414fa214b974 19-Jun-2015 Dianne Hackborn <hackbod@google.com> am 50bf0203: am 1594edce: am 0348ba2e: Merge "Fix issue #20494208: Go out of device idle when headset button is pressed" into mnc-dev

* commit '50bf0203b9ed0ac5c72ad6b2e2fcc1a6737bb565':
Fix issue #20494208: Go out of device idle when headset button is pressed
6c2a8e0da8856b1feb4e9cc495d60d5956a8ccc3 19-Jun-2015 Adam Lesinski <adamlesinski@google.com> am 9f0179cc: am a0578a02: am 00fac635: Merge "BatteryStats: Fix regression in wakelock power distribution" into mnc-dev

* commit '9f0179cc5f6f74a6b9957f60526353898f02ac0b':
BatteryStats: Fix regression in wakelock power distribution
8542a49d06b6bfbe80190bc86c76269d4c085b17 19-Jun-2015 Adam Lesinski <adamlesinski@google.com> am 024d8e2f: am 8b156e37: Merge "BatteryStats: Update external stats individually." into mnc-dev

* commit '024d8e2f49522c661e9fc0afdfa3bf435dc337d0':
BatteryStats: Update external stats individually.
50bf0203b9ed0ac5c72ad6b2e2fcc1a6737bb565 19-Jun-2015 Dianne Hackborn <hackbod@google.com> am 1594edce: am 0348ba2e: Merge "Fix issue #20494208: Go out of device idle when headset button is pressed" into mnc-dev

* commit '1594edcea1e8862827410f2542d19c5edb403cbe':
Fix issue #20494208: Go out of device idle when headset button is pressed
9f0179cc5f6f74a6b9957f60526353898f02ac0b 19-Jun-2015 Adam Lesinski <adamlesinski@google.com> am a0578a02: am 00fac635: Merge "BatteryStats: Fix regression in wakelock power distribution" into mnc-dev

* commit 'a0578a025949b0759dbd6109b60c2c560b03b2d5':
BatteryStats: Fix regression in wakelock power distribution
8b156e37d5238487f1b3742fe9fb8a0632bfd66c 19-Jun-2015 Adam Lesinski <adamlesinski@google.com> Merge "BatteryStats: Update external stats individually." into mnc-dev
065075e1f993a68579ed7f8034ab09d96ec957a9 28-May-2015 David Srbecky <dsrbecky@google.com> Replace --include-cfi with --generate-debug-info.

This follows a change in dex2oat.

(cherry picked from commit f39477b592e6e17fe41ace2e18602a69b2dd1619)

Bug: 21924613
Change-Id: I46b61298ca00bee2e83080456b180d63efd95b8f
ygote.java
ygoteConnection.java
a7c90c84e46501b3afed221a448079d567ed853c 18-Jun-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Update external stats individually.

When wifi traffic causes a stats collection, we shouldn't care about
cpu or bluetooth updates.

Bug:21478443
Change-Id: I177dc0fc09951813cb4a702ad0e5d951d69f8c22
atteryStatsImpl.java
0348ba2e2303d9dce57a6b5d19cc47ecc5089afe 19-Jun-2015 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #20494208: Go out of device idle when headset button is pressed" into mnc-dev
00fac63575349df5ed8c399b83f1f9c7199ff070 19-Jun-2015 Adam Lesinski <adamlesinski@google.com> Merge "BatteryStats: Fix regression in wakelock power distribution" into mnc-dev
b6683c428698105f715985a96066192aa62e9f53 19-Jun-2015 Dianne Hackborn <hackbod@google.com> Fix issue #20494208: Go out of device idle when headset button is pressed

Rework how we record active transitions in battery stats to be
more general, and add an API that others can call in to
DeviceIdleController to request that we go out of idle mode.
use this for VOICE_SEARCH_HANDS_FREE.

Change-Id: Ie58de60e63036a4142881283835961fbcceec892
atteryStatsImpl.java
72478f053f403e29223dba6cc7be9e5bf115f670 18-Jun-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Fix regression in wakelock power distribution

We used to give 50% of the cpu time of each app to any app holding a wakelock
while the screen is off.
Since we switched to the new kernel module for measuring app's cpu time, this distribution
was lost.

Bug:21876567
Change-Id: I42c294547f63d150d9929271ca0e27fedaaa9d77
atteryStatsImpl.java
ernelUidCpuTimeReader.java
f01ffe05d23bfbf43a68f7368a9260257b977690 17-Jun-2015 Narayan Kamath <narayan@google.com> am ba6e9b12: am 2d13fe56: am 275294db: Merge "Better systrace slices for application startup." into mnc-dev

* commit 'ba6e9b12a23657995b7761daf1b83366c652626e':
Better systrace slices for application startup.
ba6e9b12a23657995b7761daf1b83366c652626e 16-Jun-2015 Narayan Kamath <narayan@google.com> am 2d13fe56: am 275294db: Merge "Better systrace slices for application startup." into mnc-dev

* commit '2d13fe56eec54030fe09cae74c7a92be54c8bd19':
Better systrace slices for application startup.
fbb32f6440ed74a4d27eec03569520580d00da42 12-Jun-2015 Narayan Kamath <narayan@google.com> Better systrace slices for application startup.

This change adds three new timeslices :

- PostFork : As soon as possible after the app forks from the
zygote. Can be used in conjunction with the system_server
"Start proc:" event to derive an upper bound on fork() and
zygote overhead.

- RuntimeInit & ActivityThreadMain for ZygoteInit#runtimeInit
and ActivityThread#main.

ActivityThread#handleBindApplication and higher level functions
are already well instrumented in systrace. handleBindApplication
should occur immediately after ActivityThread#main.

Note that we use the Activity manager tag to make it easier to
correlate these new events with surrounding events (Start proc
and handleBindApplication) that are already using the AM tag.

bug: 21632700
Change-Id: Ibc01f1721f962c913f3c02a51763b6feb1eb6a4d
untimeInit.java
ygote.java
ygoteConnection.java
3079bd42f5b5110658665b904e98f531d699dd0c 13-Jun-2015 Adam Lesinski <adamlesinski@google.com> am f0380592: am c32eec37: am 87a79c39: Merge "BatteryStatsHelper: Fix some lost power" into mnc-dev

* commit 'f03805920880c007b443a8a3a0c60efcfc396dc4':
BatteryStatsHelper: Fix some lost power
f03805920880c007b443a8a3a0c60efcfc396dc4 13-Jun-2015 Adam Lesinski <adamlesinski@google.com> am c32eec37: am 87a79c39: Merge "BatteryStatsHelper: Fix some lost power" into mnc-dev

* commit 'c32eec37908a4d45c82bc4984fd9b68cb25949a8':
BatteryStatsHelper: Fix some lost power
57123001a416509ea7680501424d2ddf3ae55088 13-Jun-2015 Adam Lesinski <adamlesinski@google.com> BatteryStatsHelper: Fix some lost power

Looks like we were losing some power calculations from the CPU side of Bluetooth and
WiFi if there was no controller activity ocurring.

Also add finer breakdown of power to BatteryStats dumpsys for WiFi and Bluetooth.

Change-Id: Ic3ce3e4e3b854f17f9a32fd4bdc47a8ea74ca439
atteryStatsHelper.java
29c839ecf3e697059f0676746141c07f5cb6d26f 12-Jun-2015 Navtej Singh Mann <navtejsingh@google.com> am 6d8281cf: am 0ef04dc7: am 3c0ce5ca: fix ArrayIndexOutOfBoundsException while starting WifiScannerScan

* commit '6d8281cf6a6ecd70ea44846490cfb74ac45eb55d':
fix ArrayIndexOutOfBoundsException while starting WifiScannerScan
6d8281cf6a6ecd70ea44846490cfb74ac45eb55d 12-Jun-2015 Navtej Singh Mann <navtejsingh@google.com> am 0ef04dc7: am 3c0ce5ca: fix ArrayIndexOutOfBoundsException while starting WifiScannerScan

* commit '0ef04dc7f231dc69ca89bd5be9e3a5166c270b3d':
fix ArrayIndexOutOfBoundsException while starting WifiScannerScan
3c0ce5ca14ba13f432f4309c001abcb1d7cfc159 12-Jun-2015 Navtej Singh Mann <navtejsingh@google.com> fix ArrayIndexOutOfBoundsException while starting WifiScannerScan

bug: 21663831
Change-Id: I9aea30907aae00c98d8fb1dc1fff3f4935108fa4
atteryStatsImpl.java
b8850932d766007b7a177ad2cbcaf08bfc1dcc9c 11-Jun-2015 Steve Paik <spaik@google.com> Merge "Disable AssetAtlasService when PRELOAD_RESOURCES is turned off"
3c27a2303fdb6b222b7b7628fea7bc3c159990ff 11-Jun-2015 Steve Paik <spaik@google.com> Disable AssetAtlasService when PRELOAD_RESOURCES is turned off

Change-Id: Ie77810219c8d5dbff7e9364b60db2d1ea50bd685
ygoteInit.java
0db2df0c28d39f7957289910bc860e09294ca3ab 09-Jun-2015 Adam Lesinski <adamlesinski@google.com> am 1d050cff: am f17138f0: Merge "Fix calculation of power drain from BT and WiFi" into mnc-dev

* commit '1d050cff93e7784fc66bdb419858b84c6c2922c7':
Fix calculation of power drain from BT and WiFi
8576cf941dc20b64d60b6b7f5d0879b823628393 09-Jun-2015 Adam Lesinski <adamlesinski@google.com> Fix calculation of power drain from BT and WiFi

Unit issue (mV vs V).

Change-Id: I08843312339ccf35a3b55b1c2385c36fdbf61ead
atteryStatsHelper.java
atteryStatsImpl.java
luetoothPowerCalculator.java
ifiPowerCalculator.java
e4768b42072c2bd7d76b0122fc6119e7305b7571 09-Jun-2015 Adam Lesinski <adamlesinski@google.com> am 2ce589b1: am 4cf59747: Merge "Bump the BatteryStats parcel VERSION" into mnc-dev

* commit '2ce589b1dbba5bb25cb00de773a2275cec636829':
Bump the BatteryStats parcel VERSION
df6235cd760738559c829f2fcfee1e659b5e78b1 09-Jun-2015 Adam Lesinski <adamlesinski@google.com> Bump the BatteryStats parcel VERSION

A previous change forgot to bump the version, leading to
corrupt data.

Bug:19683715
Bug:21574065
Change-Id: I30c9039694b02d576909e8f60c25f175986b8c5c
atteryStatsImpl.java
4335fbfe173083bc1be3989beeac74fc02deef37 06-Jun-2015 Ruben Brunk <rubenbrunk@google.com> am 533514c9: am 8f955f89: Merge "Add UI for camera + flashlight battery reporting." into mnc-dev

* commit '533514c9b5bf05bbba33e2499618fa3c47f31451':
Add UI for camera + flashlight battery reporting.
8f955f89c2ff19aac7f3e009c825beda3618f630 06-Jun-2015 Ruben Brunk <rubenbrunk@google.com> Merge "Add UI for camera + flashlight battery reporting." into mnc-dev
c12b8d3c6d4235bd9b07a7cee7f0bbe50a80e30b 06-Jun-2015 Adam Lesinski <adamlesinski@google.com> am f926e3b9: am 8e518c81: Merge "Update docs to reflect correct time units" into mnc-dev

* commit 'f926e3b9bf26318b4b207afb25887165bf12e533':
Update docs to reflect correct time units
8e518c81ea630ca37d373ceb90e3d6c01330cb38 06-Jun-2015 Adam Lesinski <adamlesinski@google.com> Merge "Update docs to reflect correct time units" into mnc-dev
d3c9fc57f7a7132d58035320e7d02184969ac30e 05-Jun-2015 Wei Wang <weiwa@google.com> am 01b8f2cd: am a73c8b6f: Merge "add gps gid to system_server" into mnc-dev

* commit '01b8f2cd62d246d04a24366f20a5ddfcd5f014cf':
add gps gid to system_server
c6432e5c7284f6e15c2601c0725bd1a8f14c7af3 23-Jul-2013 Kevin Tang <zhikait@codeaurora.org> add gps gid to system_server

system_server hosts gps service, it should pocess gps
gid, so it can communicate with native gps daemons.

Change-Id: I59d7e99ec996891b19fa15a3ed66e055e6bccad8
ygoteInit.java
7b83b0c75ca929d29a623f31d8c7006d22176b76 05-Jun-2015 Adam Lesinski <adamlesinski@google.com> Update docs to reflect correct time units

Change-Id: Id2757e45e989b148671cf83d51011984e07cd017
atteryStatsImpl.java
rocessCpuTracker.java
5b1308f02d720808727af61863bd59c227d6fe02 04-Jun-2015 Ruben Brunk <rubenbrunk@google.com> Add UI for camera + flashlight battery reporting.

Bug: 11694505
Change-Id: Ieefa78a1d641851f4141fe666dae7b9fde394f09
atterySipper.java
atteryStatsHelper.java
atteryStatsImpl.java
ameraPowerCalculator.java
lashlightPowerCalculator.java
owerProfile.java
8b2cf64630074d89dbf336741cecf3a54d3ddd2d 02-Jun-2015 Ruben Brunk <rubenbrunk@google.com> am cf4a301f: am 11df5b66: Merge "Track camera and flashlight usage in battery stats." into mnc-dev

* commit 'cf4a301fa94f71e46cccbceeb8e8e9910eeb714a':
Track camera and flashlight usage in battery stats.
11df5b66ef621c4d67f5b4980e879784de43fd70 02-Jun-2015 Ruben Brunk <rubenbrunk@google.com> Merge "Track camera and flashlight usage in battery stats." into mnc-dev
6d2c363fd59af805380622ff7a3ce4c34975aab2 27-May-2015 Ruben Brunk <rubenbrunk@google.com> Track camera and flashlight usage in battery stats.

Bug: 15986092

Change-Id: Idf03981271721c44fd43327d5d90cf6f3fecfacb
atteryStatsImpl.java
183f8fa450ededc74dad717664e02ec804e8fe76 01-Jun-2015 Filip Gruszczynski <gruszczy@google.com> am 21605b33: am 99bcc3ee: Merge "Revert "Revert "resolved conflicts for merge of 47249f2a to mnc-dev""" into mnc-dev

* commit '21605b3395372b1ee1dd645bb8d9e50c7e7e9460':
Revert "Revert "resolved conflicts for merge of 47249f2a to mnc-dev""
9d698acfc487e2e161bc3e56d7ba664c329a57a3 28-May-2015 David Srbecky <dsrbecky@google.com> am efe01cc6: am 3976a569: Merge "Replace --include-cfi with --generate-debug-info."

* commit 'efe01cc62ee49f57c34726ec9c13ddaa9c1b1d8b':
Replace --include-cfi with --generate-debug-info.
f39477b592e6e17fe41ace2e18602a69b2dd1619 28-May-2015 David Srbecky <dsrbecky@google.com> Replace --include-cfi with --generate-debug-info.

This follows a change in dex2oat.

Change-Id: I46b61298ca00bee2e83080456b180d63efd95b8f
ygote.java
ygoteConnection.java
2217f61e51ba4b19c56b19297c1e9cf74d7d860f 26-May-2015 Filip Gruszczynski <gruszczy@google.com> Revert "Revert "resolved conflicts for merge of 47249f2a to mnc-dev""

This includes the fix for the broken dialog windows. The outsets will
only be calculated and applied if the window is full screen, since
they don't make much sense otherwise.

This reverts commit 4bb6b751fbbb218e8a298db4aa008472a0aa8d31.

Change-Id: I977a85a78c990c1840784dc0be0dddd5a6d84e6b
omeArgs.java
4bb6b751fbbb218e8a298db4aa008472a0aa8d31 23-May-2015 Dianne Hackborn <hackbod@google.com> Revert "resolved conflicts for merge of 47249f2a to mnc-dev"

This reverts commit c7becb7ee78881646251ff4846e63eb6b96bf7ec, reversing
changes made to 8562b08f04c1309cf40db1e749d612b6824f1d12.
omeArgs.java
c7becb7ee78881646251ff4846e63eb6b96bf7ec 21-May-2015 Filip Gruszczynski <gruszczy@google.com> resolved conflicts for merge of 47249f2a to mnc-dev

This is a merge of chin support.

Change-Id: I436b751b3c4aaa6b46cfcdb475e02eedfa5a5635
47249f2a9e49aa9626369517315eafc6b42fd8e9 21-May-2015 Filip Gruszczynski <gruszczy@google.com> am cb89ac84: Merge "Support for devices with a chin." into cw-d-mr1-dev

* commit 'cb89ac84c621e047d81873428325dfd747b90a6b':
Support for devices with a chin.
3e11bf33a6094da92d97702213aa12c67b21c4d1 20-Apr-2015 Filip Gruszczynski <gruszczy@google.com> Support for devices with a chin.

Information about the chin is now part of the config.xml instead of the
theme. It is retrieved by WindowManagerService and passed to the clients
as insets. Clients can adjust their behavior in a way that makes it
invisible to the user, that part of the surface doesn't actually exist.

Bug: 19908853

Change-Id: Iedf57bf3c848201b854f91ffeb3b59187d375c1f
omeArgs.java
18f84162fea083fdc958323cf41352637f3df22f 16-May-2015 Adam Lesinski <adamlesinski@google.com> Merge "BatteryStats: Enable bluetooth energy collection" into mnc-dev
719e61fa5fe4776a96fc1a6e4e60550a4b1d72df 16-May-2015 Adam Lesinski <adamlesinski@google.com> BatteryStats: Enable bluetooth energy collection

Device firmware has been fixed and bluetooth energy values
should be correct now.

Change-Id: I9b9eff378d81e8de4a3f475c071a4ef26cc97f21
atteryStatsImpl.java
ee36c2861a53e660c2f4c043aedba83163135960 14-May-2015 Adam Lesinski <adamlesinski@google.com> BatteryStatsHelper: Bluetooth wasn't being included in usage list

Bug:20892246
Change-Id: I6eaf204a2cd970ff75704be22c9006fe4dc696cd
atteryStatsHelper.java
038959e851603500eb39b52fef33cbe75dbd73e3 15-May-2015 Adam Lesinski <adamlesinski@google.com> Merge "Remove UID from kernel cpu accounting when uninstalled" into mnc-dev
b99e6d69c30056520f7cb793e4be1851b3bd8426 15-May-2015 Adam Lesinski <adamlesinski@google.com> Merge "Parse uid_cputime proc file" into mnc-dev
9e9e2e73c6ec7bece20268196dc89ad0c8bafad4 08-May-2015 Wojciech Staszkiewicz <staszkiewicz@google.com> Pass charset to XmlPullParser.setInput instead of null

Passing null to XmlPullParser.setInput forces it to do additional
work, which can be easily avoided if we know the charset beforehand.

bug: b/20849543

Change-Id: Iaff97be9df2d0f99d7af8f19f65934439c9658e2
atteryStatsImpl.java
c352722e8af0a5510144b5f32ea87561db553f42 13-May-2015 Dianne Hackborn <hackbod@google.com> Ignore small time changes in alarm manager.

It turns out switching to the new kernel alarm
reporting causes lots and lots of spurious flags
that the clock has changed. The alarm manager
would blindly trust these, thinking the world has
changed on it and recomputing everything and reporting
this to everyone else. This was expensive.

We now verify that the time has changed sufficiently
that it is worth caring about. This is basically the
same algorithm that battery stats was using to avoid
recording small clock changes, so we are really just
pushing this down into the alarm manager and can now
remove that from battery stats.

Also since we are getting these so much, make use of
the other information in about the wakeup that tells us
if an alarm went off to avoid doing anything if it didn't.

Change-Id: I6f4f4226db6eb2b38ca73860786e7cf7c9136cc3
atteryStatsImpl.java
b83ffee5a40bf00e156152ad85bf8cf6bb96e2f1 12-May-2015 Adam Lesinski <adamlesinski@google.com> Remove UID from kernel cpu accounting when uninstalled

Bug:20182139
Change-Id: I77d41570c6aa0efd927b7beb266ef249ed9abff1
atteryStatsImpl.java
ernelUidCpuTimeReader.java
06af1fac166a83507450b6bbb1f98a8dde68d92e 06-May-2015 Adam Lesinski <adamlesinski@google.com> Parse uid_cputime proc file

Instead of using the ProcessCpuTracker as the source of truth, we
periodically poll the new uid_cputime kernel module for stats
on all UID cpu time.

TODO: Need to tell the kernel when to stop tracking UIDs (aka on package
uninstall).

Change-Id: Id1d251aae23ab53f7acc0aba3bca5118bc2c194a
atteryStatsHelper.java
atteryStatsImpl.java
puPowerCalculator.java
ernelCpuSpeedReader.java
ernelUidCpuTimeReader.java
rocessCpuTracker.java
c9399a80448ddc4a01d5a9c3d738f3077f70233c 06-May-2015 Adam Lesinski <adamlesinski@google.com> Merge "Fix overcounting of mobile radio" into mnc-dev
d9b48d5735dc499d735d28447d5000599a1d3dfd 06-May-2015 Adam Lesinski <adamlesinski@google.com> Fix overcounting of mobile radio

Bug:20438089
Change-Id: Ie8987cf61ef7a0cecab6d730eed7bc47eabb9eec
obileRadioPowerCalculator.java
dfefe2d0434c4f688aa8779f6d7019640499daf9 05-May-2015 Hiroshi Yamauchi <yamauchi@google.com> Fix binder force gc will block binder thread

Symptom: Force gc caused activity launch time took longer
Root Cause: Runtime.getRuntime().gc will block binder thread
Solution: Use VMRuntime.requestConcurrentGC() will not block binder
thread

(cherry pick commit d916c233f0ed615667c1c2338c779e819098d135)

Bug: 20554807
Change-Id: Ia9fecea51d2b0a6635e037b5f2bfcb8eb87f4103
inderInternal.java
d916c233f0ed615667c1c2338c779e819098d135 20-Mar-2015 mark_chen <mark_chen@htc.com> Fix binder force gc will block binder thread

Symptom: Force gc caused activity launch time took longer
Root Cause: Runtime.getRuntime().gc will block binder thread
Solution: Use VMRuntime.requestConcurrentGC() will not block binder
thread

Bug: 20554807
Change-Id: I48a103c8241c4c85ced4d9a0b231d9f1dc200f35
inderInternal.java
27c39f1adeaf1a653fb41a5af64ee815b8048dd6 27-Apr-2015 Andreas Gampe <agampe@google.com> am b6d14a00: resolved conflicts for merge of c29791d5 to mnc-dev-plus-aosp

* commit 'b6d14a009e43a4d61ae2a4f98f6e3b914148d0a9':
Frameworks/base: Add debug.gencfi property

(cherry picked from commit a5b55a017a984608eacdf414bc1cbcd7615f1c13)
ygote.java
ygoteConnection.java
a876b35d485008b690578889d11e69b40d4e7170 25-Apr-2015 Andreas Gampe <agampe@google.com> Frameworks/base: Add debug.gencfi property

Add the debug.gencfi system property that forces generation of
CFI data.

Change-Id: Ida66f8c1567634d05cfdbba1a982be3684e94369
ygote.java
ygoteConnection.java
825af5fba96d9de4a49e57c6a4c97b8f2bb609fa 22-Apr-2015 Andreas Gampe <agampe@google.com> am 5d3aea2e: am c7f9f765: am 189d2785: Merge "Frameworks/base: Fix comment"

* commit '5d3aea2e5d052041a81bf49154ceedb9d96e2918':
Frameworks/base: Fix comment
dd8e5fbe96ecdf95ce8629ca5c6e1d8c520ecff4 21-Apr-2015 Andreas Gampe <agampe@google.com> Frameworks/base: Fix comment

Fix comment in ZygoteInit.

Change-Id: I853581c8d44ee52ee8e113c67ea68621643ecb39
ygoteInit.java
c147278276257ea95fc6999a1bd6f4b64a4d68d9 21-Apr-2015 Andreas Gampe <agampe@google.com> am 3bbd87dd: am 1f4f92ed: am b6feabcf: Merge "Frameworks/base: Use better Class.forName in ZygoteInit"

* commit '3bbd87dd1f6b7f6b767885a56ad062897bb25642':
Frameworks/base: Use better Class.forName in ZygoteInit
c917f74d9235feefd1788a7b9ba34ed8f1215850 21-Apr-2015 Andreas Gampe <agampe@google.com> Frameworks/base: Use better Class.forName in ZygoteInit

Use the three-argument version of Class.forName. This saves an
expensive stack lookup for the caller's class-loader on each
invocation.

Bug: 19498458
Change-Id: I859affde31e580fd2de3f70ee0a9295936c2d9f4
ygoteInit.java
e283d33feda27f54672f90512c25304842cd7eb4 16-Apr-2015 Adam Lesinski <adamlesinski@google.com> Report WiFi and Bluetooth energy collection in checkin stats

Also removed some legacy bluetooth energy collection
that was never invoked.

Also fixed an issue with Wifi scan power estimation.

Bluetooth energy recording is still disabled as strange results
are still reported.

Change-Id: Iafa37eba285fd933ff221116b14af260e904fa4f
atteryStatsHelper.java
atteryStatsImpl.java
ifiPowerCalculator.java
ifiPowerEstimator.java
0c820db22c83808fdb06c7cb06aaf13ef4b559a3 15-Apr-2015 Dianne Hackborn <hackbod@google.com> Some improvements to battery stats data.

History now records when wifi data activity starts and "ends"
based on the triggers we get from the kernel used to determine
when to collect data. (Basically the same as the current cell
data, but of course when it ends is just an arbitrary x seconds
after the last data traffic.)

Re-arranged the state bits to make room for this data in the
right place and move some other things that make more sense to
have in states2.

Try to improve overflow handling, so when it happens we allow
the various bit states to drop to 0 instead of being stuck
active for an indeterminant amount of time.

Added recording of the points where we decide we want to
retrieve new power stats, giving the reason for doing so.
These are only recorded when full logging is turned on.

Change-Id: Ic5d216960a07e0eb658731cdfba7f49ad3acf67e
atteryStatsImpl.java
ca25b8768d1946dbdc3b84fe54b7c4b2888529de 14-Apr-2015 Dianne Hackborn <hackbod@google.com> Merge "Fixes to idle alarm scheduling, package importance."
1e38382b542f5cef9957a89692b02c55a3dd351c 10-Apr-2015 Dianne Hackborn <hackbod@google.com> Fixes to idle alarm scheduling, package importance.

- Add new API to ask the activity manager what the current
importance of a particular package name is (along with a few
new useful importance levels).

- Fix my last alarm manager change to actually execute the
alarms we have now decided should run even while we are idle.

Change-Id: I1f14712b4e390770d53b185c96a1b36f6aadd687
atteryStatsImpl.java
8f87489beb539710a97b4d54a3a672ca76fa7513 14-Apr-2015 Ruchi Kandoi <kandoiruchi@google.com> am 36e53bb8: am 1770f9cf: am 3afca74a: Merge "BatteryStats: Adds an additional condition to avoid ArrayIndexOutOfBounds."

* commit '36e53bb8aa6db4ac101f88a7394f5011643693e2':
BatteryStats: Adds an additional condition to avoid ArrayIndexOutOfBounds.
3afca74a2a40b4e957630909fe5df76aa550da69 14-Apr-2015 Ruchi Kandoi <kandoiruchi@google.com> Merge "BatteryStats: Adds an additional condition to avoid ArrayIndexOutOfBounds."
1739076ef9cc940c54cbde3f0576f0dc228f7d68 10-Apr-2015 Adam Lesinski <adamlesinski@google.com> Fix deadlock issue in BatteryStatsHelper.

It was assumed that BatteryStatsHelper could safely call into system services.
Because it is used when dumping information from the BatteryStatsService,
this assumption was incorrect.

Now the BatteryStats object carries around the state of the energy reporting
for Bluetooth and WiFi, so BatteryStatsHelper avoids a query into WiFiManager.

b/19729960

Change-Id: I8745cf6aafeea8e862e34fe63b20056f6ba54b40
atteryStatsHelper.java
atteryStatsImpl.java
ifiPowerCalculator.java
4870e9d5eba59fb257a87f97f1adf0b734cf48d3 09-Apr-2015 Dianne Hackborn <hackbod@google.com> More work on device idle mode and other power stuff.

Add idle mode support to the alarm manager. Introduce
a new concept of flags associated with alarms to tell
the alarm manager how to treat the alarm -- they allow
everything from the alarm that will bring us out of idle
mode, to alarms that are allowed when idle or should
also bring us out of idle. The standalone boolean is
now also a flag.

(Note there is currently no protection from user space
setting the flags however it wants; I will be working
on that in a follow-up change.)

When in idle mode, the alarm manager pushes all alarms
that shouldn't execute during that time over to a
separate list that is not executed until out of idle.
To help with this, I reworked a bit how Alarm objects
are managed, so that when rebatching or moving between
lists we don't have to allocated new objects but can
just use the same existing instance.

Also tweaked the sync manager to deal with idle mode,
which currently just means doing the same thing as when
low on storage -- turning off sync.

Add new ACTION_CHARGING and ACTION_DISCHARGING broadcasts
that apps can listen for to know when the device is actively
charging and discharging. These are better than the old
POWER_CONNECTED and POWER_DISCONNECTED ones because we only
report charging when we actually see that there is enough
power being provided to charge the battery (and will report
discharging if there is not enough power).

The job controller uses these new actions for scheduling
jobs that want to run while plugged in. Removed the
"stable charging" stuff while doing so, since the new
charging state serves as an even better signal for that.

Introduced two new process states: FOREGROUND_SERVICE and
TOP_SLEEPING. This will allow us to treat foreground services
specially (such as still allowing network access to them for
background music playback) while not mixing them together with
whatever happens to be the top activity while the device is
asleep.

Also some other small cleanup here and there.

Change-Id: I7a9808b578bad6f50deb8e1baf919298512a0d3a
atteryStatsImpl.java
a1b19b7b66b06647501bc80d3002701fd9e59b7a 09-Apr-2015 Richard Uhler <ruhler@google.com> am 00ff42a0: am 7f757130: am f324d245: Merge "Reuse dexopt method for both dex2oat and patchoat."

* commit '00ff42a0ca9d17c4b7ee89d900cf86c9a25c00eb':
Reuse dexopt method for both dex2oat and patchoat.
e08af19fcc7b13d526f3dfd24d58300947cf1146 26-Mar-2015 Adam Lesinski <adamlesinski@google.com> Adding per UID WiFi power distribution.

Change-Id: I88c539074607d7261f6c5cf1dbae47c3cf53f253
atterySipper.java
atteryStatsHelper.java
atteryStatsImpl.java
luetoothPowerCalculator.java
puPowerCalculator.java
obileRadioPowerCalculator.java
owerCalculator.java
owerProfile.java
ensorPowerCalculator.java
akelockPowerCalculator.java
ifiPowerCalculator.java
ifiPowerEstimator.java
e9b9b73ab598a912de04fbd5501bca5924ce8f71 07-Apr-2015 Bart Sears <bsears@google.com> Revert "Adding per UID WiFi power distribution."

This CL is breaking the clockwork settings app in master. Reverting
until Adam has a chance to investigate.

This reverts commit b943fabfc8ddb581dc2fd7288f87428dcb5d27b7.

Change-Id: Ieb11423c11cf9874a6175dce49843d0e1080c590
atterySipper.java
atteryStatsHelper.java
atteryStatsImpl.java
luetoothPowerCalculator.java
puPowerCalculator.java
obileRadioPowerCalculator.java
owerCalculator.java
owerProfile.java
ensorPowerCalculator.java
akelockPowerCalculator.java
ifiPowerCalculator.java
ifiPowerEstimator.java
b943fabfc8ddb581dc2fd7288f87428dcb5d27b7 26-Mar-2015 Adam Lesinski <adamlesinski@google.com> Adding per UID WiFi power distribution.

Change-Id: Ia3d97e0a1c3352127185c18626d8ba8221c9ab40
atterySipper.java
atteryStatsHelper.java
atteryStatsImpl.java
luetoothPowerCalculator.java
puPowerCalculator.java
obileRadioPowerCalculator.java
owerCalculator.java
owerProfile.java
ensorPowerCalculator.java
akelockPowerCalculator.java
ifiPowerCalculator.java
ifiPowerEstimator.java
f1f9902b190992a4366cf48a572a2277d4449da3 06-Apr-2015 Raph Levien <raph@google.com> Merge "Load hyphenation data at Zygote init"
c3dd1c1b91b4e47c3b141944be68037ec2d607d8 06-Apr-2015 Raph Levien <raph@google.com> Load hyphenation data at Zygote init

Loading hyphenation data on demand can cause UI jank (and can be a
strict mode violation). This patch explicitly loads the data at
Zygote init time. It also chooses /system/usr/hyphen-data as the path
for this data.

Bug: 20060770

Change-Id: Idac68e3971f8638f1d70960594bf6c1050bb23d6
ygoteInit.java
16c9c249d5f06014442aa5c78254b702f6a034c5 05-Apr-2015 Jeff Sharkey <jsharkey@android.com> Fix up ExternalStorageFormatter.

It's not going to be around for much longer, so just fix enough to
work correctly.

Also teach about new "unmountable" state from vold.

Bug: 19993667
Change-Id: Ib72c3e134092b2a895389dd5b056f4bb8043709a
torage/ExternalStorageFormatter.java
7b08b35bde3df58816b171b88712bcc6d21dcbe8 26-Mar-2015 Richard Uhler <ruhler@google.com> Reuse dexopt method for both dex2oat and patchoat.

Change-Id: Ib9a6373f98474f1242367b5285086251a9d580e5
nstallerConnection.java
ygoteInit.java
c38a54b1f076b86453041755e15504fd0b4d48af 03-Apr-2015 Fyodor Kupolov <fkupolov@google.com> am 30c688da: am 031898df: am 3d8b7f4d: Merge "Support for storing OAT files in app directory"

* commit '30c688da8bd2b3320446a06424e1cc57b693522a':
Support for storing OAT files in app directory
030980a1fbf0caecfe39722472ae16a8a6987055 02-Apr-2015 Kweku Adams <kwekua@google.com> Fixing issue related to printing out of display state and idle mode in the batterystats checkin.

Change-Id: I533bd53f375bf6d9f818a8e8aa75932986ad779b
atteryStatsImpl.java
4887789e44cdb16b042a35e8ec03983213e88ac6 18-Mar-2015 Jeff Sharkey <jsharkey@android.com> 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
ygote.java
ygoteConnection.java
b94c1657eb0140f7b91f5372a9f76de5a3d87e36 03-Mar-2015 Fyodor Kupolov <fkupolov@google.com> Support for storing OAT files in app directory

In installPackageLI, dexopt is now performed on a staging directory of the app
(dexopt phase 1). For each codepath:
- /oat/<isa> directory is created
- dexopt output goes to the newly created directory. Optimized files have
.odex extension.

Bug: 19550105
Change-Id: Iec59790d97837b78af82b079fd1970de3388c91d
nstallerConnection.java
4b6bd8d36b093d36d9ae80b43e95049c259d7319 19-Mar-2015 Adam Lesinski <adamlesinski@google.com> 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
atteryStatsImpl.java
ernelWakelockReader.java
ernelWakelockStats.java
1e725a7ec9eb79bb447d5171839c453d672a895c 25-Mar-2015 Dianne Hackborn <hackbod@google.com> 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
atteryStatsImpl.java
88e98dfa59e68a860d8c3b462ec03bc0b06d6b5c 23-Mar-2015 Dianne Hackborn <hackbod@google.com> 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
atteryStatsImpl.java
39fa40cbadba3491b537ff2b5660d6507098da19 20-Mar-2015 Adam Lesinski <adamlesinski@google.com> Merge "Disable WiFi energy data collection to avoid deadlock"
cb204c3334efcf0d49e0c9ba307afa7225157004 20-Mar-2015 Adam Lesinski <adamlesinski@google.com> Disable WiFi energy data collection to avoid deadlock

This is a temporary fix to prevent deadlocking in the
system. Need to come up with a better solution for
accessing WiFi and other subsystems from BatteryStats.

b/19729960

Change-Id: I464e7490c9780249d2a3eef05ce084a7d84372c0
atteryStatsImpl.java
79ec42e6a3c6a6f6a00ef3ad92221a5ad2149aa9 20-Mar-2015 Dianne Hackborn <hackbod@google.com> Merge "First stab at device idle mode."
8ad2af7e5b28f71e7bdfc1bb097937c6c1d22b18 18-Mar-2015 Dianne Hackborn <hackbod@google.com> 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
atteryStatsImpl.java
75f1ba5a815ce13caff1faa8e0df7d4ac483507a 19-Mar-2015 Mathieu Chartier <mathieuc@google.com> am f792e016: am 437ac8f8: Merge "Add JIT late override property"

* commit 'f792e01606b988ab84190217529cca53da8db3f5':
Add JIT late override property
7a49028aa2f25364042fae031d95f9283844e645 17-Mar-2015 Mathieu Chartier <mathieuc@google.com> Add JIT late override property

Required for JIT debug property since user builds can't restart
the shell.

Bug: 19735273

Change-Id: I1983852e80010c344b45e0bb459de47c56adfce8
ygote.java
ygoteConnection.java
3d07c94c393831091958fe6a98811843db8973bd 14-Mar-2015 Dianne Hackborn <hackbod@google.com> 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
andlerCaller.java
2c1078fbbd550d8adb7ca0d39447bfebc6092012 10-Mar-2015 Andreas Gampe <agampe@google.com> resolved conflicts for merge of b6d6c04a to master

Change-Id: I5286b9fe2d9bde4b219496e593cf028cc4c75bc7
86bb9ba586dfb4136014d5e3072786d04c8b152e 10-Mar-2015 dcashman <dcashman@google.com> am 4c887ac9: am db7fa51f: am c7446790: Merge "ZygoteConnection: remove obsolete security checks."

* commit '4c887ac9318402b914dbee4462485006395bdfbe':
ZygoteConnection: remove obsolete security checks.
174a44888ec56f688426c80d50b9e0021f47c16f 10-Mar-2015 Andreas Gampe <agampe@google.com> am 7f383873: Merge "Frameworks/base: Pass APK debugability to installd"

* commit '7f383873566024c7121cadae3bbdd2a7c47150bc':
Frameworks/base: Pass APK debugability to installd
33dac5593519a3e9eb83550faf0d55f9f0caefdf 09-Mar-2015 Adam Lesinski <adamlesinski@google.com> 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
atterySipper.java
atteryStatsHelper.java
atteryStatsImpl.java
owerProfile.java
7f383873566024c7121cadae3bbdd2a7c47150bc 09-Mar-2015 Andreas Gampe <agampe@google.com> Merge "Frameworks/base: Pass APK debugability to installd"
db7fa51ff0f330b79b171f03b4304a75affaabce 09-Mar-2015 dcashman <dcashman@google.com> am c7446790: Merge "ZygoteConnection: remove obsolete security checks."

* commit 'c74467902b5a9a7267b6cb8f30b364b8373eac72':
ZygoteConnection: remove obsolete security checks.
fc4c0bf8bc162ada28969bacca9dff668a208399 06-Mar-2015 dcashman <dcashman@google.com> ZygoteConnection: remove obsolete security checks.

SELinux guarantees that only the system_server and permissive domains such as su
are allowed to connect to the zygote socket. Remove obsolete security checks
that were only applicable when other processes could connect.

Bug: 19624279
Change-Id: I1c925d7facf19b3953b5deb85d992415344c4c9f
ygoteConnection.java
62793e4382b4b0b53d7373d92a62dc4e3ccbde05 09-Mar-2015 Dianne Hackborn <hackbod@google.com> 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
atteryStatsHelper.java
atteryStatsImpl.java
rocessCpuTracker.java
735600c1e654ef3d4fe1201aa31d1f4eb33c18e3 05-Mar-2015 Andreas Gampe <agampe@google.com> Frameworks/base: Pass APK debugability to installd

Change-Id: Id17ec72babe2ee88713a0d274eff86508de30666
nstallerConnection.java
7d088428f32a864570d830e45d07a2fe143f6fbd 04-Mar-2015 Dianne Hackborn <hackbod@google.com> Merge "Add new "daily stats" tracking to battery stats."
d4a8af7b6a4dd663cb9c4d993ee41ca82af3c4cd 03-Mar-2015 Dianne Hackborn <hackbod@google.com> Add new "daily stats" tracking to battery stats.

Currently is only used for tracking the daily charge
and discharge rates. We keep up to 10 days of data.

Change-Id: I54e29e35ff60d9277da9e476cdab22f4a6d540bf
atteryStatsImpl.java
08c7116ab9cd04ad6dd3c04aa1017237e7f409ac 28-Feb-2015 John Spurlock <jspurlock@google.com> Remove unused imports in frameworks/base.

Change-Id: I031443de83f93eb57a98863001826671b18f3b17
ygoteConnection.java
ygoteInit.java
5f83382c40a0785d6fde6b6afb4f33c9ed683fba 20-Feb-2015 Dianne Hackborn <hackbod@google.com> Merge "Add some detailed data as part of battery history."
d1eccbea388fde6a575acb4e797efdd07798344a 18-Feb-2015 Dianne Hackborn <hackbod@google.com> Add some detailed data as part of battery history.

Every time the battery level changes, a new extended
detailed use data structure is written to the history.
This currently only contains delta CPU use since the
last detailed entry (total CPU and to three uids), but
it gives us the infrastructure for adding more detailed
data in the future.

A detail entry for regular history looks like:

Details: cpu=15730u+2307s (u0a57=11312u+502s, 1000=2344u+701s, 0=473u+991s)
/proc/stat=15377 usr, 1797 sys, 197 io, 0 irq, 8 sirq, 23103 idle (42.9% of 6m 44s 820ms)

u is user-space cpu time, s is system/kernel time.

The equivalent check-in output is:

9,h,0,Dcpu=15730:2307/10057:11312:502/1000:2344:701/0:473:991
9,h,0,Dpst=15377,1797,197,0,8,23103

Also add a new "unplug" command to the battery service,
to easily put it into a state where it always considers
the device to be running on battery.

Change-Id: Ic76d966f11e592b9dd671879977bf999ebc11eef
atteryStatsImpl.java
rocessCpuTracker.java
4fecab570da64a1956352aedf1b3245d3ba26030 19-Feb-2015 Bill Yi <byi@google.com> Merge commit '32acf753e8989766f67fd5300d3eb467f707cc79' into HEAD
01b50bb06b5cdeef57d7d69870402fb893a70dea 19-Feb-2015 Narayan Kamath <narayan@google.com> am 907bcd96: am 644ebc88: am 0a7936b7: Merge "Fix a couple of issues with system_server forking."

* commit '907bcd96d7f54adaf3b3df6f476e09c636c646cf':
Fix a couple of issues with system_server forking.
907bcd96d7f54adaf3b3df6f476e09c636c646cf 19-Feb-2015 Narayan Kamath <narayan@google.com> am 644ebc88: am 0a7936b7: Merge "Fix a couple of issues with system_server forking."

* commit '644ebc8800ad5e2fa1c239bd65a2cf6a88e6556b':
Fix a couple of issues with system_server forking.
0a7936b7c54fb7dff0406a40452cb0242f66a067 19-Feb-2015 Narayan Kamath <narayan@google.com> Merge "Fix a couple of issues with system_server forking."
cc34625cb76b7a4b551c1460a4f998032825410b 16-Feb-2015 Piotr Jastrzebski <haaawk@google.com> am 07aaff33: am 58524b2a: am e7e92381: Merge "Register DDM handlers at the beginning of main method."

* commit '07aaff33ef0e61dfbb15188c5aae0624dc9524a9':
Register DDM handlers at the beginning of main method.
07aaff33ef0e61dfbb15188c5aae0624dc9524a9 16-Feb-2015 Piotr Jastrzebski <haaawk@google.com> am 58524b2a: am e7e92381: Merge "Register DDM handlers at the beginning of main method."

* commit '58524b2aa620ae1ea709ae48b8b8598548cc7202':
Register DDM handlers at the beginning of main method.
b6b044ae8263d1104e249ad2b857f0c570309990 13-Feb-2015 Narayan Kamath <narayan@google.com> Fix a couple of issues with system_server forking.

- Remove the obsolete --runtime-init arg. its prescence
was preventing other arguments from being parsed.

- Be stricter about unparsed args - throw if we see arguments
we don't expect. This was already implemented but broken
(probably implemented by a crap programmer).

bug: 19378905
Change-Id: Id8b6158db7ef6368dd13ae61f591cdf2b278dfd1
ygoteConnection.java
ygoteInit.java
da74a628f55fe32a8f8d8542689032f4f6f1c44c 12-Feb-2015 Piotr Jastrzebski <haaawk@google.com> Register DDM handlers at the beginning of main method.

Compiler initializes RuntimeInit during compilation and stores an
initialized version of the class in oat file. Same thing happens to
DdmServer which handles DDM packets in JDWP thread started during JVM
creation. This means that after the creation of JVM all
DDM packets are handled by DdmServer.dispatch and since it's already
initialized during compilation it has all framework related handlers
already registered. If a packet arrives before AndroidRuntime.startReg
is called then framework native methods are not yet registered and the
processing of the packet fails with UnsatisfiedLinkError.

To fix this problem the registration of framework related DDM handlers
is moved to the beginning of ZygoteInit.main and RuntimeInit.main. This
means that the handlers won't be registered until main method is called
and that's guaranteed to be after AndroidRuntime.startReg is called. It
also guarantees that DDM packets will be properly handled as soon as
Java code is executed.

Bug: 18081539.
Change-Id: I9c674f53f3f62d58c46886e0b60698182e08f0c3
untimeInit.java
ygoteInit.java
77bb6f179a5495c90470f910d46667d8306ae010 12-Feb-2015 Alan Viverette <alanv@google.com> Stack alert dialog buttons when they are too long

Change-Id: Id1c0b8c0a8fd1c9949b15269fba52e88ef826e6b
ygoteInit.java
9d25fcae8560a2e2bc2e28b08778bd1a94261cd1 04-Feb-2015 Christopher Ferris <cferris@google.com> am 4fb79d14: Merge "Fix comment according to review."
automerge: ff6cebf

* commit 'ff6cebf0a65f9d6e20497295a1a9c290df85052b':
Fix comment according to review.
7254c123a1af6edfe61dfd0a2be111d9e27662fa 04-Feb-2015 Christopher Ferris <cferris@google.com> Fix comment according to review.

Change-Id: I784f2051cd173425e9a9570ac4555cf835dd277d
ygoteConnection.java
0654196fb08fb8c0dfed65ece00f0a4596ed70c2 30-Jan-2015 Christopher Ferris <cferris@google.com> am e7a69cbf: am dbd03924: Merge "Fix wrap property creation when truncating."

* commit 'e7a69cbf920565b4b428459198fd53f193080796':
Fix wrap property creation when truncating.
95b1048d390e79029978efd4654c05816722e17f 29-Jan-2015 Christopher Ferris <cferris@google.com> Fix wrap property creation when truncating.

If a property name gets truncated, make sure it doesn't end in a '.'
since that makes the name illegal.

Bug: 19196358
Bug: https://code.google.com/p/android/issues/detail?id=82947

(cherry picked from commit e32df45fe1a8cb7286bfdad392a0d36e0ddcf8e7)

Change-Id: I126a40ffae76ee6a06926e770ca015fb063a334b
ygoteConnection.java
e32df45fe1a8cb7286bfdad392a0d36e0ddcf8e7 29-Jan-2015 Christopher Ferris <cferris@google.com> Fix wrap property creation when truncating.

If a property name gets truncated, make sure it doesn't end in a '.'
since that makes the name illegal.

Bug: 19196358
Bug: https://code.google.com/p/android/issues/detail?id=82947
Change-Id: Icc1a26593237ca19ad0ebd776a60b3d6290bb355
ygoteConnection.java
ebc57c7471f1ebe56cae091707887be582b0db06 21-Jan-2015 Narayan Kamath <narayan@google.com> Merge "Choose the right executable for wrapped applications." automerge: aa87e89
automerge: 4af0265

* commit '4af0265a35bcd8a0a7513dd85fe371597e2038c5':
Choose the right executable for wrapped applications.
37ad4b0242579d9a7251c8683eb20645be44cea8 19-Jan-2015 Narayan Kamath <narayan@google.com> Choose the right executable for wrapped applications.

64 bit zygotes should exec app_process64, whereas 32 bit
zygotes should exec app_process32.

Change-Id: I63b56400e0478cd2bb206c98da6858be558f0525
rapperInit.java
ygoteConnection.java
ygoteInit.java
66bbfb6b2ccedecba3cbd0843b5a9ae498c68c82 19-Jan-2015 Narayan Kamath <narayan@google.com> am 17f50f81: am d8beca64: Merge "Remove support for --classpath and make --runtime-init the default."

* commit '17f50f8119f4a8bdec304cde527f68ddd0b3bc0a':
Remove support for --classpath and make --runtime-init the default.
1f7d657b43fd7d40c402340c02ece5beb4b28c52 19-Jan-2015 Narayan Kamath <narayan@google.com> am 3e809794: am e315feea: Merge "Fix handling of wrapped processes [part 1]."

* commit '3e809794fe558d8a10851c0ac22a65a2c81fa315':
Fix handling of wrapped processes [part 1].
f48029f00a66e23d7872a00b56fbcf88528ba476 08-Jan-2015 Narayan Kamath <narayan@google.com> Remove support for --classpath and make --runtime-init the default.

--classpath hasn't been properly supported or used for as long as
git history exists, and the non --runtime-init classpath is useless
without it.

Also, forking and exec' a bare dalvikvm instance from the zygote seems
somewhat pointless since we might as well just execute it directly.

Change-Id: Ib07d822d448e7b431d7564381f9cd11735fd1113
ygoteConnection.java
ygoteInit.java
6ac7e67168d89f85f622dd168a05ddfc2644f6d4 16-Jan-2015 Narayan Kamath <narayan@google.com> Fix handling of wrapped processes [part 1].

Change 3fe595108f47fffd changed our pipe creation to CLOEXEC,
which doesn't work so well for wrapper processes that call exec.

Sending down the PID pre-exec won't work so well because wrappers
are arbitrary and might fork themselves before finally starting
the child application process.

Change-Id: I065f0f2150dc1ff04d2b2e8b25f06b4c754809b9
ygoteConnection.java
e05f269bfe17065f5a3d291961700e2d9befc345 19-Jan-2015 Narayan Kamath <narayan@google.com> am 96b87a1d: am 4ac5775d: Merge "Fix handling of wrapped processes [part 2]"

* commit '96b87a1dc0b822a057ad978de1d52990d617be62':
Fix handling of wrapped processes [part 2]
23e68780be581a1bb05110f16ad56d1da2bed1e9 16-Jan-2015 Narayan Kamath <narayan@google.com> Fix handling of wrapped processes [part 2]

Drop privileges only if we're root. Zygote.preloadClasses can
be called from a non-root uid / gid in the case of wrapped classes,
so we shouldn't die from the resulting EPERM.

Change-Id: Ie3fbe50a17ec49bcbcb875c3a2ee1e1a3a62e88d
ygoteInit.java
3968820fc75e1eac03e54cba45b5a0adc28ee87d 08-Jan-2015 Dianne Hackborn <hackbod@google.com> am cb8d8e10: Merge "Fix issue #18827122: system server crashed on broadcasting..." into lmp-mr1-dev
automerge: 16e4324

* commit '16e4324dd967d180f77fb25dbeea77229eaf0511':
Fix issue #18827122: system server crashed on broadcasting...
29cd7f19625a2a2a8528469e55f3aa495107b9e7 08-Jan-2015 Dianne Hackborn <hackbod@google.com> Fix issue #18827122: system server crashed on broadcasting...

...an intent with invalid or null package uri

Also tweak battery stats to record in the history when we shut
down, to understand when restarts are due to clean shutdowns or
crashes.

Change-Id: I6443dafc23e356be9f569906f6081152d4f92d2b
atteryStatsImpl.java
e6f2f9db42632f581d221ece90e1824e114f2f12 18-Dec-2014 Elliott Hughes <enh@google.com> am 5cd79d07: Merge "Move the remaining ZygoteInit native code over to Java."
automerge: e37f3af

* commit 'e37f3af76dc0c876ea7169b9153f79175d0c703d':
Move the remaining ZygoteInit native code over to Java.
26b56e628bd77b1e77137b68aecb194791ec6cf6 17-Dec-2014 Elliott Hughes <enh@google.com> Move the remaining ZygoteInit native code over to Java.

Bug: 18719692
Change-Id: I5f9834edecdbcc065a33a9921c740a53441636a4
ygoteConnection.java
ygoteInit.java
8b3df1f971dec922aba4df766ae25dc16c660445 17-Dec-2014 Elliott Hughes <enh@google.com> am a1beb930: am e6d63b94: Merge "Rewrite selectReadable JNI in Java."

* commit 'a1beb930f59ae88f4386726cdf3a7e5986bd74e1':
Rewrite selectReadable JNI in Java.
894724be3026c84681cdc902cb62eab6ba646e11 15-Dec-2014 Elliott Hughes <enh@google.com> Rewrite selectReadable JNI in Java.

Bug: 18719692
Change-Id: Id4fa95a31f112c720f7a3ac47a3b6c95c3028438
ygoteInit.java
3e8484c3f7f615c4b3f1cb925c4164d513cc0e97 15-Dec-2014 Elliott Hughes <enh@google.com> am 2a6426c9: am e9e1e0d2: Merge "Reimplement reopenStdio in Java."

* commit '2a6426c900d319c7b928242694ad050a73ad324b':
Reimplement reopenStdio in Java.
dac83f5e6ad494f19a17523e56872e1d0870ee57 15-Dec-2014 Elliott Hughes <enh@google.com> Reimplement reopenStdio in Java.

Bug: 18719692
Change-Id: I4ed984cd6148c5cba75d46a60f32a0687a5bcac3
ygoteConnection.java
ygoteInit.java
a95b568f9afcabb067f5ec8ef602800a89d273ee 13-Dec-2014 Elliott Hughes <enh@google.com> am 20c906a8: am a101befb: Merge "Lose some unnecessary JNI from the zygote."

* commit '20c906a8d40aed68ee35095f322739664e1e223a':
Lose some unnecessary JNI from the zygote.
3fe595108f47fffd73cfc2eb48b71a31e5d606d0 12-Dec-2014 Elliott Hughes <enh@google.com> Lose some unnecessary JNI from the zygote.

Bug: 18719692
Change-Id: Ie2d50400f10f3c54cfbf94e54656f6d704eac267
rapperInit.java
ygoteConnection.java
ygoteInit.java
0cfdd810ded6f8486a6b0a61044594f58ab5c052 08-Dec-2014 Dianne Hackborn <hackbod@google.com> am e52a2ea0: am 0029f0ac: Merge "Fix issue #17323751: Additional items in aggregated battery stats" into lmp-mr1-dev

* commit 'e52a2ea03bd7b8ed2f3680c5198e00fb7ad5c34c':
Fix issue #17323751: Additional items in aggregated battery stats
1e01d16982e6b22ec4c0e2d6dc1e261eb6f92c8e 05-Dec-2014 Dianne Hackborn <hackbod@google.com> Fix issue #17323751: Additional items in aggregated battery stats

- Now aggregate number of times each process has crashed and ANRed.
- Now aggregate total number of connectivity changes.
- Now record connectivity changes in the history.

Crash and ANR counts are new entries at the end of "pr" in checkin.

Connectivity change counts is a new entry at the end of "m" in checkin.

Connectivity changes in the history checkin are Ecn and include the
type of connection and its state.

Change-Id: I0c01186446034cf6c3fb97d45f5e3b5c69a0438a
atteryStatsImpl.java
51de927f5ae9b754c4b3927eb8c109ee4dfc602d 02-Dec-2014 Kweku Adams <kwekua@google.com> am fa99c345: am d537987b: Changing AUDIO_TURNED_ON constant.

* commit 'fa99c345c440a37ae0cc74cba6ffd6e88ab9ddb2':
Changing AUDIO_TURNED_ON constant.
d537987b173f6b48f5196a2ae7d445af1a49e2bb 25-Nov-2014 Kweku Adams <kwekua@google.com> Changing AUDIO_TURNED_ON constant.

Changed so that it's set to a different value from WIFI_MULTICAST_ENABLED.

Change-Id: Ied3a2c2bf891f887ec3c7b5249453af4524c099a
atteryStatsImpl.java
b56c4263c73224ea7c0c0580729a5700c1db87d1 25-Nov-2014 Jeff Brown <jeffbrown@google.com> am 8cac7309: am b5686d55: am 3d110b23: Make WallpaperService watch the actual display state.

* commit '8cac73097e3695d22e3529e77048d82f7fa0fb1c':
Make WallpaperService watch the actual display state.
b5686d55963e76c801ca0581a1012c5f4aa8d009 24-Nov-2014 Jeff Brown <jeffbrown@google.com> am 3d110b23: Make WallpaperService watch the actual display state.

* commit '3d110b239153a6c7423a99f02ef859201205eee2':
Make WallpaperService watch the actual display state.
3d110b239153a6c7423a99f02ef859201205eee2 22-Nov-2014 Jeff Brown <jeffbrown@google.com> Make WallpaperService watch the actual display state.

Bug: 18471411
Change-Id: Ie9d2e70e4e105dfbb2cb4d9726f632bcf2cc0a31
andlerCaller.java
d0c45355b96fb55dd1a79ee06d151ce98d959c23 14-Nov-2014 Ying Wang <wangying@google.com> Move preloaded-classes out of framework.jar.

Instead we install preloaded-classes as a standalone configuration file
/system/etc/preloaded-classes, so we can configure different file per product.

Bug: 18305157
Change-Id: I22f1a1dd44f90268d02532bf18405768523c0b1b
ygoteInit.java
c2045047735522f50bc1d2618280bd37306f18d2 17-Nov-2014 Ying Wang <wangying@google.com> resolved conflicts for merge of 5c7bc931 to lmp-mr1-dev-plus-aosp

Change-Id: Id3130cf4a23f07953e06301fe93f1da54b9ca191
0de36e51c5990b1c25c3d0fad3fea7d10aaecce5 14-Nov-2014 Ying Wang <wangying@google.com> Move preloaded-classes out of framework.jar.

Instead we install preloaded-classes as a standalone configuration file
/system/etc/preloaded-classes, so we can configure different file per product.

Bug: 18305157
Change-Id: I22f1a1dd44f90268d02532bf18405768523c0b1b
ygoteInit.java
284ab646d879dcca4bcc287b26e8c50abc56666d 08-Nov-2014 Jeff Sharkey <jsharkey@android.com> am f13fe148: am 001b2e93: Merge "ProcessCpuTracker touching proc is fine." into lmp-mr1-dev

* commit 'f13fe14853ca13830e2bf293f3a24a965570b507':
ProcessCpuTracker touching proc is fine.
ccce016fb18b7c42d69edf9b1ade9a05e749eb4e 07-Nov-2014 Jeff Sharkey <jsharkey@android.com> ProcessCpuTracker touching proc is fine.

Otherwise we spew hundreds of StrictMode violations.

Bug: 18261125
Change-Id: I2e5ff697b99f55bb73e806f04dba8384e6f1b935
rocessCpuTracker.java
63f38a083657a4fa52377362889bef957ebbca82 01-Oct-2014 Dianne Hackborn <hackbod@google.com> am e83f322f: am 30854356: am 29a11523: am c3014c8c: Merge "Fix issue #17705755: Battery stats resets at incorrect times" into lmp-dev

* commit 'e83f322fa91f64844ea24aab2944540ca43a2a01':
Fix issue #17705755: Battery stats resets at incorrect times
f9cd6fa5a34a9ba22eaa47d8c5f9c39b5cd901a2 01-Oct-2014 Dianne Hackborn <hackbod@google.com> am bb527c59: am e26ba8f7: am 069de204: am 38646c19: Merge "Work on issue #17656716: Unhandled exception in Window Manager" into lmp-dev

* commit 'bb527c59d1fb0ad627f44cbb378959fa7d4af2c7':
Work on issue #17656716: Unhandled exception in Window Manager
cc275c58b00df19eb058a6fc1744c715a0ccc0aa 30-Sep-2014 Dianne Hackborn <hackbod@google.com> am c3014c8c: Merge "Fix issue #17705755: Battery stats resets at incorrect times" into lmp-dev

* commit 'c3014c8cf8932cb6a482e985edc7def97c50eede':
Fix issue #17705755: Battery stats resets at incorrect times
ccd08f23b0db358741f3b5c3a9affd0aef432519 30-Sep-2014 Dianne Hackborn <hackbod@google.com> am 38646c19: Merge "Work on issue #17656716: Unhandled exception in Window Manager" into lmp-dev

* commit '38646c19d8badea143113c0dc48ccdacb18badc4':
Work on issue #17656716: Unhandled exception in Window Manager
fb3809ca63c17ac09162e08ee3eef0bdae16dc73 30-Sep-2014 Dianne Hackborn <hackbod@google.com> Fix issue #17705755: Battery stats resets at incorrect times

Revert back to (mostly) KK behavior, fix a problem where we were
collecting some data in an inconsistent state.

Change-Id: Ida3ca3fb734a9d7d61a90fd5044152e927c59e02
atteryStatsImpl.java
73d6a821aeecd6003c70c32f7ae6c38f062c4290 29-Sep-2014 Dianne Hackborn <hackbod@google.com> Work on issue #17656716: Unhandled exception in Window Manager

Remove the checks for large parcel sizes. Those were triggering,
and identifyng the area of the problem, but also cause a lot of
trouble by making the unsafe deadlocky code there much more likely
to deadlock.

Add logging for strict mode IPCs, since those seem to be the
problem. Only log when things look bad.

Also add a log when battery stats are reset, to diagnose why they
are getting reset when they shouldn't be.

Change-Id: I588c858fb8d8c45f3c9c164ae2de9ae01547b304
atteryStatsImpl.java
208678718f9f8db3bc279c7d5bd1445af2831ae3 10-Sep-2014 jgu21 <jinghui.gu@intel.com> Frameworks/base: Early init native bridge

Add the app directory to the arguments for starting a process.
Add a check for NeedsNativeBridge and a call to PreInitializeBridge
in the native fork code.

(cherry picked from commit 2eacd06bfb82b33dfcbccafbcfc0bf1218484bb5)

Bug: 17671501
Change-Id: I970db5b284b0c12e2d8a45df3950c1fff2927a4e
ygote.java
ygoteConnection.java
52e40aaa8a96ec6606b43c3669724f042c28b71c 25-Sep-2014 Jeff Sharkey <jsharkey@android.com> am 1eb1a4fa: am b47a75f2: am b8bbeff0: am 45ef18b6: Merge "Include reason when wiping data." into lmp-dev

* commit '1eb1a4fa28d74312b329daaecd8a81fcf367eea4':
Include reason when wiping data.
c4997a1d9c0d542acc6b40582fd9e3b50ee9d4fb 25-Sep-2014 Jeff Sharkey <jsharkey@android.com> am 45ef18b6: Merge "Include reason when wiping data." into lmp-dev

* commit '45ef18b63e78fd853865f42d9369a5c9b4dd4ba0':
Include reason when wiping data.
a2945aabd91a04c41ced273c2169bd5a74cf3e6f 25-Sep-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of dfdabe37 to lmp-mr1-dev-plus-aosp

Change-Id: I3e9adb5fa67f8ca7ce8151c2dbf5c8fe5b40cb86
a103ebed6e9a44a406b31636791d2970c882ec44 25-Sep-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of dfdabe37 to lmp-dev-plus-aosp

Change-Id: Ia9c350dcfb41f9d04400a86bd7e5f2cf2af656f1
004a4b20f8d3116e6a711525960d433fcfea4ee4 24-Sep-2014 Jeff Sharkey <jsharkey@android.com> Include reason when wiping data.

This will help us track down who requested a data wipe.

Bug: 17412160
Change-Id: If8413e5d6377773f37e8b34ae3d26347226a027c
torage/ExternalStorageFormatter.java
2eacd06bfb82b33dfcbccafbcfc0bf1218484bb5 10-Sep-2014 jgu21 <jinghui.gu@intel.com> Frameworks/base: Early init native bridge

Add the app directory to the arguments for starting a process.
Add a check for NeedsNativeBridge and a call to PreInitializeBridge
in the native fork code.

Change-Id: I0b93da93251c6b4638de786bf98cf99df07c3fc2
ygote.java
ygoteConnection.java
e69028b5de6b763ec287d77b960e20c2c95a9400 22-Sep-2014 Alan Viverette <alanv@google.com> am be2fb16c: am 8ae47443: am 8183ba88: am 0dfa4738: Merge "Pass explicit null theme when preloading drawables" into lmp-dev

* commit 'be2fb16c0c96cea50a83560ffb198e281095842d':
Pass explicit null theme when preloading drawables
05f74b9a6b4985426d94c3e11082c64a931eb69d 22-Sep-2014 Alan Viverette <alanv@google.com> am 2c65386d: am 0dfa4738: Merge "Pass explicit null theme when preloading drawables" into lmp-dev

* commit '2c65386d9bb3d93f39767a284eb3dcc27dd0a2f3':
Pass explicit null theme when preloading drawables
84e001a9f514a047816f27db6ce836966efa481e 22-Sep-2014 Alan Viverette <alanv@google.com> Pass explicit null theme when preloading drawables

Prevents "unresolved theme attributes" warning.

BUG: 17589490
Change-Id: I5217d85b1d5ce8b551315ee8b1ca79eccfac3f10
ygoteInit.java
c116f02a4a3819a91afa646b55af13213d8f728c 14-Sep-2014 Ramanan Rajeswaran <ramanan@google.com> am 232d417a: am 2e9ca0aa: Merge "Fix crash in TranserPipe." into lmp-dev

* commit '232d417a5efc4029d4eebac04d003c73e5b4b65e':
Fix crash in TranserPipe.
5ec679a0fa2e26c058a8094836d80e4e989f74d5 21-Aug-2014 Xin Guan <a18772@motorola.com> Fix crash in TranserPipe.

Sometimes the pipe has been closed when it's thread tries to access

E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: TransferPipe
E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.FileDescriptor android.os.ParcelFileDescriptor.getFileDescriptor()' on a null object reference
E AndroidRuntime: at com.android.internal.os.TransferPipe.run(TransferPipe.java:184)
E AndroidRuntime: at java.lang.Thread.run(Thread.java:818)

Change-Id: I0fcd4a3334b49972903f2cb0edb51323ba3f49e5
ransferPipe.java
47bdb751322b8e750812083b8133ae7317d55d79 13-Sep-2014 Dianne Hackborn <hackbod@google.com> am 61ffa7a2: am f9d92bab: Merge "Work on issue #17477510: Time change notifications sent too often" into lmp-dev

* commit '61ffa7a2754ee6c3b3bb1f836212ddfcb818c56b':
Work on issue #17477510: Time change notifications sent too often
a7d0d557718d0feaa2760666cd95c66e2d88c551 13-Sep-2014 Dianne Hackborn <hackbod@google.com> Work on issue #17477510: Time change notifications sent too often

This gets rid of the spam from the battery history, by not creating
an event unless the wall clock time has changed by more than
+/- 500ms.

We'll do the remaining work in MR1.

Change-Id: I8d1cc41b5504261033d3b0ccdcf9e7cf70df9d04
atteryStatsImpl.java
13b99f368229fd7516042dcbbd68bf660bb22d75 12-Sep-2014 Brian Carlstrom <bdc@google.com> am 3b74850d: am 93468f7c: Merge "Add zygote preloading of shared libraries" into lmp-dev

* commit '3b74850dee7e41991794f778eb2f12b43e453a0d':
Add zygote preloading of shared libraries
6c9af96de59ab2feebe3d0165548591c4f632bc5 12-Sep-2014 Brian Carlstrom <bdc@google.com> Add zygote preloading of shared libraries

Bug: 17459019
Change-Id: I7cb4ecd0ec9542aa9079420fe158cedca7fca028
ygoteInit.java
4bde299148580913eb392585617a6027b407f4b2 11-Sep-2014 Dianne Hackborn <hackbod@google.com> am 14a0ec03: am 022cfcda: Merge "Fix issue #17414533: update batterystats occasionally takes a couple..." into lmp-dev

* commit '14a0ec0324a9aa5ce7bc2c767c744092fd128143':
Fix issue #17414533: update batterystats occasionally takes a couple...
652973fca83c48d8b4622493f10e656b8d86dd17 11-Sep-2014 Dianne Hackborn <hackbod@google.com> Fix issue #17414533: update batterystats occasionally takes a couple...

...hundred milliseconds.

Rework the locking so that no critical paths block on the cpu collection.

Change-Id: Ie615a033f7f8b523b67abee62c581d1a8fce324c
rocessCpuTracker.java
6b0ed64fb868e64684031558cbdeedcd94d40713 05-Sep-2014 Andreas Gampe <agampe@google.com> Frameworks/base: Add native bridge post-fork initialization

(cherry picked from commit d7746a8b65ee4690427ed798816f970218578fa3)

Change-Id: I5a20de1cb68dd1802937b369b14c50c9c1031c67
ygote.java
ygoteConnection.java
95ccfd99503ae250e0c8c44590123ee2b263c063 06-Sep-2014 Dianne Hackborn <hackbod@google.com> am 80cb4a01: am 8c7605b1: Merge "Fix issue #17397177: BatteryStats reporting error on job start/stop" into lmp-dev

* commit '80cb4a012b57110246a17e4110ccadb5bd232c55':
Fix issue #17397177: BatteryStats reporting error on job start/stop
ce78347c37000347c9dbd4487d53a3f4aceff692 06-Sep-2014 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #17397177: BatteryStats reporting error on job start/stop" into lmp-dev
c3940bc1ba753bcbeb9849239ec4b2ec685c40e2 06-Sep-2014 Dianne Hackborn <hackbod@google.com> Fix issue #17397177: BatteryStats reporting error on job start/stop

Dumb, dumb, dumb mistake.

Also fix battery stats wakeup reason tracking to use a SamplingTimer
(like kernel wake locks) so we can track both the duration and count
for each wakeup reason.

Change-Id: I89d69661006dc533622b1b7e68a139166d3a6975
atteryStatsImpl.java
629dc1801331ce89e8ee0ff7ee5dcde1d7512417 04-Sep-2014 Anwar Ghuloum <anwarg@google.com> Timing Hacks DO NOT MERGE

Let's submit to see any lingering effects.

Bug: 17310019
Change-Id: I791bceec0b6aa8b80ac4e6c582a10c3f0ec7a906
ygote.java
ygoteConnection.java
ygoteInit.java
dc84c6ca86290393fec2bb730f125575ee9e168e 05-Sep-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of 82ad9ec3 to lmp-dev-plus-aosp

Change-Id: I7ae05c4f1b072906932a9ed47bdbad881b8e0d37
aec67dcc02362e4d2f7641c6605405b839bd1bd4 03-Sep-2014 Andreas Gampe <agampe@google.com> Frameworks/base: Add native bridge post-fork initialization

Change-Id: I5a20de1cb68dd1802937b369b14c50c9c1031c67
ygote.java
ygoteConnection.java
85facfc1b7d0c97a4a075463f823bd1511d0ed89 28-Aug-2014 Dianne Hackborn <hackbod@google.com> am c297cc71: am f63aa97c: Merge "Fix issue #17289876: startActivityFromRecents appears to launch the wrong task" into lmp-dev

* commit 'c297cc71d1382b3a492087d64205ebe6f13b164a':
Fix issue #17289876: startActivityFromRecents appears to launch the wrong task
2db754ac6e2cddf01801c450bb8200b01cddf410 28-Aug-2014 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #17289876: startActivityFromRecents appears to launch the wrong task" into lmp-dev
93d0678e80868fca067ccf50d5eb8ed4c2424a12 28-Aug-2014 Dianne Hackborn <hackbod@google.com> am 82f7dc78: am c6273338: Merge "Fix issue #16953886: History and batterystats checkin summary..." into lmp-dev

* commit '82f7dc780dc2fb1c877fce19bea9a9e92b0a0bac':
Fix issue #16953886: History and batterystats checkin summary...
d7c9289f935992f4ae2fc032747f9e04bb86a7d0 28-Aug-2014 Dianne Hackborn <hackbod@google.com> Fix issue #17289876: startActivityFromRecents appears to launch the wrong task

It would be good to actually bring the task to the front.

Also, make the flow when inTask is provided better match what happens when
we go looking for a task on our own.

And this includes another fix that was supposed to be part of a different
change but I forgot this class is part of the framework project now.

Change-Id: I3cf05f2e585c0fd7a0dbb7c7cf9fb1655764dd93
atteryStatsHelper.java
7d9eefd871f1cdc5ebc36fa92dae48a737ae2928 28-Aug-2014 Dianne Hackborn <hackbod@google.com> Fix issue #16953886: History and batterystats checkin summary...

...start timestamps are in 1970s

Look for the wall clock time being very small, and try to update
it to a better value if we see one.

Also handle time change events to update the current time we a re
tracking.

Change-Id: Ifbae2b8c43ab5baa75ee4f672a752a542e23b52d
atteryStatsImpl.java
940434def17735e57ba4dfb8cfaf4eada229b9cf 27-Aug-2014 Dianne Hackborn <hackbod@google.com> am eb7a0e4e: am 0d006c60: Fix issue #17146552: system anr

* commit 'eb7a0e4e9bcb6a18655c4f349c90216011406d75':
Fix issue #17146552: system anr
5232271a41323594ae406be7476b6ca2f08af3d8 27-Aug-2014 Dianne Hackborn <hackbod@google.com> Fix issue #17146552: system anr

Add a safe path for Slog.wtf that doesn't acquire an activity manager
lock or block in any way.

Change-Id: I8fef8251a0cb85081442cae55d85063944248d15
untimeInit.java
302da59d8b673499c69efda4078c8927f3f1a1c3 26-Aug-2014 Dianne Hackborn <hackbod@google.com> am f1bb15d2: am 55953caa: Merge "Fix issue #16311398: Limit number of documents a process can open" into lmp-dev

* commit 'f1bb15d214bdb70e348ee7d649c1249a67434534':
Fix issue #16311398: Limit number of documents a process can open
4610545dd28ebf316704e119572521e97dbbd6bd 26-Aug-2014 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #16311398: Limit number of documents a process can open" into lmp-dev
ca989888e2c3fb4712c806b7bf621ec259017390 26-Aug-2014 Calin Juravle <calin@google.com> am e956c7f0: am 2fb4f93e: Merge "Pass vmSafeMode (manifest attribute) to installd." into lmp-dev

* commit 'e956c7f02cd51b577f46105620bb003059a2a87f':
Pass vmSafeMode (manifest attribute) to installd.
89ad456ea49cb62615ebdcac83a2515743bbe5fa 25-Aug-2014 Dianne Hackborn <hackbod@google.com> Fix issue #16311398: Limit number of documents a process can open

In application processes, monitor for when we start getting close
to the Dalvik heap limit, and ask the activity manager to try to
prune old activity instances in that case.

Add an explicit API for apps to ask that they have their own
activity instances cleaned up, if they want.

Fix some bugs in launching activities that were not correctly
applying the "multi task" behavior in the appropriate situations
of document-centric recents.

Clean up the activity manager's process removal code to all share
a common path.

Add a new "Spam" option to ActivityTests, which continually creates
new tasks, checking that the activity manager will now prune old
tasks rather than letting the app run out of RAM.

And while I was was doing this, I found problems with the path
for bringing an empty task to the foreground -- it could make
a new task instead of re-starting the root activity in the
existing task. This is fixed, and some code in the recents
UI for working around the bug is removed.

And as long as I am doing that, we now have nice hooks in to
the activity manager for AppTask to give some APIs for better
managing the task, so add those along with more tests for these
APIs in ActivityTests.

We should look at also having the activity manager try to prune
old tasks when it sees app processes being killed, to better balance
memory use across multiple processes when some processes may host
many documents. That however is for another CL...

Change-Id: I2bb81c3f92819350c868c7a7470b35817eb9bea9
inderInternal.java
feb193085adbdc379ee70dbb7dc6ae4c9f2971dd 21-Aug-2014 Calin Juravle <calin@google.com> Pass vmSafeMode (manifest attribute) to installd.

The flag is used to enforce --interpret-only flag when running dex2oat.

Bug: 12457423
Change-Id: Ifdafcc1afa32996577fa44c5682eeb58c79772ac
nstallerConnection.java
41b07f14135a6ab575d165e89818f7953f3fd7ca 21-Aug-2014 Mathieu Chartier <mathieuc@google.com> am 554bd893: am 8f9ebc8a: Merge "Remove unnecessary explicit GC in ZygoteInit."

* commit '554bd8937b60e8f015f1f46b939dff92c2259790':
Remove unnecessary explicit GC in ZygoteInit.
9a88f10b8996645d7c479df3610c9af1499e741c 20-Aug-2014 Mathieu Chartier <mathieuc@google.com> Remove unnecessary explicit GC in ZygoteInit.

Removes > 1s of GC time and hundreds of GC during device boot.

Zygote size before: 8388608
Zygote size after: 8388608

No increase in zygote space size due to zygote compaction.

Bug: 16398684

Change-Id: I3c6f5a0b26a207ab39bb0a952400d7488e42f00c
ygoteInit.java
acc4a120742eed5905de2c7ee690f251cc32a0ae 19-Aug-2014 Dianne Hackborn <hackbod@google.com> Temporary: raise overflow limit, print all wake locks.

Change-Id: I02baa775b8e0659bd9cd4547b8671730f056cb86
atteryStatsImpl.java
89e4ae2f504b4c55d7823c3f04d4894de0d8e471 18-Aug-2014 Dianne Hackborn <hackbod@google.com> Merge "Work on issue #16629489: Google (Play?) Services eating through battery" into lmp-dev
d953c53d3b04d772bb1b62ede1c2011641ca82b5 17-Aug-2014 Dianne Hackborn <hackbod@google.com> Work on issue #16629489: Google (Play?) Services eating through battery

There is a bug in how we deal with name overflows combined with resetting
the battery stats data. If we do a reset while a wakelock is being
actively held that has been put into the overflow bucket, then we can
end up reducing the number of known wake locks in the list so when after
that it is released we try to release it under its real name rather than
the overflow name.

This means we need to keep track of which wake locks have been placed
in the overflow bucket while they are actively being used, so we can be
sure to properly handle it as part of that bucket until it is eventually
released.

This makes things... somewhat more complicated. So now we have a class
to take care of all these details, and also use it for other places where
we have the same overflow semantics sync and job stats.

Also fix potential deadlock -- BatteryStatsHelper needs to call on to
ConnectivityManager to find out of there is telepohny, however we use
that class when doing a dump while the battery stats lock is held. To
fix this, we check the connectivity state up in the battery stats service
before acquiring the lock and propagate that information through to the
dump code.

Change-Id: Ib452206af5c36f4b0f03cc94d2845d36613d1ba5
atteryStatsHelper.java
atteryStatsImpl.java
29564cd24589867f653cd22cabbaac6493cfc530 07-Aug-2014 Narayan Kamath <narayan@google.com> Remove system_server classes from the boot image.

We set the system_server classpath in the environment
(like we do with BOOTCLASSPATH). After the zygote forks
the system_server, we dexopt the classpath (if needed)
and then launch the system server with the correct
PathClassLoader. This needed several small / medium
refactorings :

- The logic for connecting to installd is now in a separate
class and belongs in the system_server.
- SystemService / SystemServiceManager have now moved to
classes.jar. They are only used from there, and since they
use Class.forName, we want them to be loaded by the
system_server classloader, and not the bootclassloader.
- BootReceiver now moves to frameworks.jar, because it is
used by ActivityThread and friends.

bug: 16555230

Change-Id: Ic84f0b2baf611eeedff6d123cb7191bb0259e600
nstallerConnection.java
untimeInit.java
ygoteConnection.java
ygoteInit.java
9da2f1e007268a42248a1778aa9b560e3ce3b704 14-Aug-2014 Jeff Sharkey <jsharkey@android.com> Some networks may have null ifaces, I guess?

Seems like a bug further upstream, but guard ourselves against it
for now.

Bug: 17033841
Change-Id: Id0e5895c3389b63d4e34b1fb064efef8b72cd609
atteryStatsImpl.java
cd0e335be354d117c553bb87b3432a75d550d21a 08-Aug-2014 Dianne Hackborn <hackbod@google.com> Fix issues #16655104 and #16875776 in battery stats.

Issue #16655104: Android system used 21% of battery

We weren't clearing the current process state when we now retain
process objects across resets.

Issue #16875776: abnormal outliers in screen-off battery life in go/batterystats

The checkin data since charged was using the since unplugged data
for the amount of drain with the screen on/off.

Also added a new version tag in the checkin output containing
the platform build number and internal version format number, to
start moving away from the wasteful version code on every line.

And fixed a bug in figuring out when things have changed over
discharge levels.

Change-Id: I89b89513a748016aacc848f14bbbc8b2400d92ca
atteryStatsImpl.java
0068d3dcf1f1a804554a1a09e3b173ac12651786 07-Aug-2014 Dianne Hackborn <hackbod@google.com> Fix issue @16555033: Battery history overflowing too much

- No longer track process starts/stops normally.
- Increase buffer size to 256KB.
- Buffer size increase requires reworking how battery stats
are retrieved, since it is going to be hitting IPC limits.
- Also, store the last full stats after a reset, to be reported
at the next checkin.
- Also, discharge and charge times are tagged with the screen
and battery save state during that time.

Change-Id: Ie108ac9b626846108a9bb858101ac2b93276ac16
tomicFile.java
atteryStatsHelper.java
atteryStatsImpl.java
10eaa8574bb220e7dddf9a78057f83dc64ee5687 23-Jul-2014 Dianne Hackborn <hackbod@google.com> Fix issue #16467284: Make noteStartVideo and noteStartAudio nesting

Also add new methods to clear these states, so we can avoid any
nesting issues from getting the tracking state stuck.

Change-Id: Iba0eaba2a9a186355c24d392f16118982c5331ed
atteryStatsImpl.java
08cfaf672604422dd355d6703aec78f3aa5ee74e 08-May-2014 Torne (Richard Coles) <torne@google.com> Use the WebView's loader library to load the real library.

Load libwebviewchromiumloader and use it to load the real WebView
library, to enable sharing of the relro segment between different
application processes without requiring that the library be preloaded in
the zygote. A system service is added to track whether the relro segment
file has been prepared, and block loading of the library until it has
been.

Bug: 13005501
Change-Id: I846b37c7b8e2a4eb8a39e4fd455bccbb2048c173
ygoteInit.java
fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7 17-Jul-2014 Dianne Hackborn <hackbod@google.com> Implement issue #16330060: Inform ActivityManager about WebView...

...state changes.

Add a new API to tell the activity manager about a new dependency
one process has on another package. Start using it already for
when apps is Context.createPackageContext() to load code from another
app.

Also do some work on getting the monitoring of proc/uid states
in shape so it can be used by unundled code, along with an
AppImportanceMonitor class for doing so.

Some small fixes and additions to VoiceInteractionService.

Improve handling of unaccounted/overcounted battery use so that
they aren't shown to the user unless they are significant.

Change-Id: I22dd79a73f4e70103d3f8964494aebc8a31f971c
atterySipper.java
atteryStatsHelper.java
fdb1956ff71ff57fcdaafaaeb7f42c19de3d7c2f 12-Jul-2014 Dianne Hackborn <hackbod@google.com> Fix issue #15681802: Missing RESET:TIME in complete battery histories

But wait, there's more!

- Keep track of sync durations in the aggregated stats.
- Add events for users that are running and in the foreground.
- Rework the activity manager's tracking of stuff using
battery in the background to be based on proc stats, which
allows it to be better about determing when it should reset
its tracking of background work.
- Also add tracking of scheduled job execution, like we are
doing for syncs.
- And once I started hooking battery stats in to
JobSchedulerService, I found a few things I couldn't stop myself
from changing: (1) make it very explicit that it doesn't start
scheduling jobs until we have reached the point in system boot
where third party apps are allowed to run, and (2) adjust
the various for loops to not use iterators.

Change-Id: I69d812e27bcfee9e58a614f0f6b1c7545d7530b1
atteryStatsImpl.java
c3b07a0c9ce9b1a2af644112e678f3963226fad2 01-Jul-2014 Zoltan Szatmary-Ban <szatmz@google.com> BatteryStatsHelper.refreshStats for multiple users

Battery usage list is now populated for apps belonging to a list of users or profiles.

Change-Id: Ie899af74a4b3a0f3cd6ae3c93394f01f4f54a5c7
atteryStatsHelper.java
61659e5daaea80104d4d0fd567e78b5f757b5df4 10-Jul-2014 Dianne Hackborn <hackbod@google.com> Add tracking of uid process states in battery stats.

We now keep track of how long each uid had processes in
various states: foreground, active, running. This is based
on a collapse of the various activity manager process states
into these three bins.

You'll see these in a checkin like this:

8,10013,l,st,61504,61504,83109

Also fix issue #16021555: App showing up as on "top" even
when the screen is off. This is "fixed" by just saying we
always report the current app at the top of the activity stack,
regardless of the state of the screen.

Change-Id: I1204904225101243eb00b43425d9806bffdd2ab9
atteryStatsHelper.java
atteryStatsImpl.java
be9cbb12e93c521ff0ef256658422720f5c3f55e 03-Jul-2014 Ruchi Kandoi <kandoiruchi@google.com> BatteryStats: Adds an additional condition to avoid
ArrayIndexOutOfBounds.

This change takes care of the case when the length
of the array is 0.

Bug: 16039301
Change-Id: Ideb3ccc723c5d720069760aeedae8abb91c6420d
owerProfile.java
be520fba1e45c77ca20eb66005a0cf19e10939a1 05-Jul-2014 Jeff Sharkey <jsharkey@android.com> Teach DCS about cluster packages.

For the time being, DCS is going to still be doing heavy lifting for
some install tasks, so it need to know how to handle both monolithic
and cluster packages. This change is mostly plumbing work to
eventually handle any various splits APKs that we may encounter.

Bug: 14975160
Change-Id: I39848d5666f9083cb4eca493e5cdaa868f3f99fb
ParcelFileDescriptorFactory.aidl
abc7c499133fe640d6ece2b28d43b52e66cdaa9a 01-Jul-2014 Dianne Hackborn <hackbod@google.com> Issue #15986092: Add power tracking of flashlight.

Not yet hooked up.

Change-Id: Id95e44ecc365e9f38169c0a629b0a48ddb29aa06
atterySipper.java
atteryStatsHelper.java
atteryStatsImpl.java
owerProfile.java
306af678a5f1938629e1182b46cc43f2da6e7774 25-Jun-2014 Dianne Hackborn <hackbod@google.com> Fix some problems with proc stats collection.

Also start debugging why we aren't being able to open
/proc files.

Change-Id: I4655904691ac22108c29858cbd01153a251ccbf5
rocessCpuTracker.java
3251b9075246841a7b1ddecf10859b1abd858f33 20-Jun-2014 Dianne Hackborn <hackbod@google.com> Add some wifi tracking to battery stats.

Now track supplicant state and wifi signal strength.
Output looks like this:

+12m45s235ms (1) 095 +wifi_full_lock +wifi_running wifi_signal_strength=3 wifi_suppl=scanning
+12m46s095ms (1) 095 -wifi_full_lock wifi_suppl=associated
+12m46s469ms (2) 095 wifi_suppl=completed +proc=u0a74:"com.google.android.videos"
+12m52s103ms (1) 095 +wifi_full_lock wifi_suppl=disconn

Also modify history dump so that when we hit a RESET or START
command, we clear our previous history data, so the next event
will include new data. This means if you are scanning through
the output, you must at this point clear any binary stats you
have like "running" or "wake_lock" or else you will continue to
think they are on until whatever point later they get turned on
and then back off.

And a small bug fix in proc stats that would cause the system
process to crash.

Change-Id: Ibec416a1ef786d428bd0d1d86e6e3296c41f7648
atteryStatsImpl.java
f7097a5b697fedb6976774e55a51471405a23c0e 13-May-2014 Dianne Hackborn <hackbod@google.com> Add kernel and native memory data to procstats.

We now collect memory use data in the kernel and native
application for aggregation in procstats. This should
allows us to do aggregated summaries of how memory use
is distributed across the system -- how much is free vs.
how much is in use.

Fix a bug in how we were tracking per-app version codes:
apps that used a shared user id to have multiple packages
run in the same process could get their version codes
cross-wired. Now we keep track of version codes in the
list of packages associated with a process.

Bumped the checkin version code to 5, so that we can
distinguish checkins that have this corrected data.

Also fix a bug in battery stats monitoring radio state.

Change-Id: I1c849f2df442df679a34ad7b0ca0c5870bfac8df
atteryStatsImpl.java
a798c0a984f29f7180883a61839f68d2cbf0c6ce 15-May-2014 Svetoslav <svetoslavganov@google.com> Refactor printing

Change-Id: I19850154ef2798afff511e4490a268ce38e8cbae
omeArgs.java
fc0641340ff927d9c35d5613723d25858f751118 02-Jun-2014 Dianne Hackborn <hackbod@google.com> Some battery stats history fixes.

- Now the full wake history uses the history tag if it can.
Hopefully this will still result in a consistent history,
since that isn't really want the tag is for... but the
current implementation in places will probably make this work.

- Possibly fix a bug with inconsistent state between partial
history snapshots: after a snapshot is printed, don't allow
any more batching into the most recent history entry, so the
next snapshot will not miss anything that might get placed
into it soon after.

Also rework command line arguments for enable/disable to make these
commands instead of options.

Change-Id: Ia33445cad1538bf8df549cef284f1e736efbc079
atteryStatsImpl.java
20d94749043d0851f1da10c7749fd7eb13a35081 30-May-2014 Dianne Hackborn <hackbod@google.com> More work on voice interaction visuals.

There is now a special theme for voice interaction activities
to use, so they can be a panel that is better intergrated with
the rest of the voice interaction experience. This is still
not completely working, I have some hacks in the demo app to
get it right; I'll fix that in a future change.

Also improve VoiceInteractor to be retained across activity
instances, for things like rotation.

And bump up the number of concurrent broadcasts that are allowed
on non-svelte devices, since they can handle more and this makes
the boot experience better when dispatching BOOT_COMPLETED.

Change-Id: Ie86b5fd09b928da20d645ec2200577dee3e6889d
andlerCaller.java
536456f2d4c0d93bb55950ce5edc24e9bb9547eb 24-May-2014 Dianne Hackborn <hackbod@google.com> Fix issue #15195464: battery history says wakelock held when it's not

Simplify full wake lock logging, so wake_lock_in is a completely
separate event from wake_lock and provides the full real raw log
of wake lock events.

Also attempt to address issue #15018750 (Incorrect wakelock reporting)
by no longer being complicated and rolling up previous state in to a
new history slice.

Bug: 15195464
Bug: 15018750
Change-Id: I32154bdfc2f07113be969f9db5503b2f2807a427
atteryStatsImpl.java
293251318168ad2dbfeb3d18176936fe2cc16325 22-May-2014 Dianne Hackborn <hackbod@google.com> (DO NOT MERGE) Battery monitoring fixes:

- Improve monitoring of level changes to not be confused
when it goes up while draining or down while charging.
- Put back in connectivity service code to tell battery
stats about the interfaces.
- Turn back on reporting of mobile radio active state
from the RIL.
- Fix bug in marshalling/unmarshalling that would cause
the UI to show bad data.

Change-Id: I733ef52702894cca81a0813eccdfc1023e546fce
atteryStatsImpl.java
9a7554300637902bbb25991ffba41a9b8f682eff 16-May-2014 Dianne Hackborn <hackbod@google.com> Fix recording of wake_lock_in.

There was a bug that would allow the nesting count
to get off. Also better documentation of times in
HistoryItem, and new option to disable resetting of
the stats when unplugging.

Change-Id: If1b39a02475c5b620c67b700a323a6d0462d5c61
atteryStatsImpl.java
0a3103e755218c1ee48c7d078892eb6b42cc2081 15-May-2014 Dianne Hackborn <hackbod@google.com> Merge "Battery stats more wake history, power save mode."
cbefd8dd2befcb768f911a63becc427ec4c13250 14-May-2014 Dianne Hackborn <hackbod@google.com> Battery stats more wake history, power save mode.

Add new option for battery stats to record the full wake
lock history, and recording the current power save mode.

Also add in some additional error constants when generating
Binder error exceptions.

And fix issue #14974572: Avoid repeating wakeup_reason at
the beginning of history

Change-Id: I7c1a2ab9569de216634f63d8ad69f1294ef1d235
atteryStatsImpl.java
27a964b54d10bbc2793bb06557f69fef47177ebd 15-May-2014 Narayan Kamath <narayan@google.com> am 35b884f8: am be3dc575: am 402120a2: Merge "Wait for secondary zygote before bringing up the system_server."

* commit '35b884f88e39c97056e71f329e73812a142103b5':
Wait for secondary zygote before bringing up the system_server.
35b884f88e39c97056e71f329e73812a142103b5 15-May-2014 Narayan Kamath <narayan@google.com> am be3dc575: am 402120a2: Merge "Wait for secondary zygote before bringing up the system_server."

* commit 'be3dc5754fd081f54a86df9894763c0da915eed3':
Wait for secondary zygote before bringing up the system_server.
be3dc5754fd081f54a86df9894763c0da915eed3 15-May-2014 Narayan Kamath <narayan@google.com> am 402120a2: Merge "Wait for secondary zygote before bringing up the system_server."

* commit '402120a2236b294dff9a51461cb22400a6ef67f6':
Wait for secondary zygote before bringing up the system_server.
64cd907af99ce9702e8975a657ee437c2626f8b5 13-May-2014 Narayan Kamath <narayan@google.com> Wait for secondary zygote before bringing up the system_server.

The zygote that's responsible for starting up the system server
now checks if there's another zygote on the system, and waits
for it to start up. Also, a few minor clean ups :

- Address a long standing TODO about zygote retries.
- Have functions throw IOException where appropriate and
wrap them in ZygoteStartFailedEx with a filled in cause.

bug: 14869939

Change-Id: I9e514659b79b3d2c98a4c5f93c0c376843f6c881
ygoteInit.java
37de0989359be9c31b91d3608d2cfe63546c38ea 09-May-2014 Dianne Hackborn <hackbod@google.com> Battery stats tweaks.

- Generate currently active events when a partial
history is requested.
- Tag wake lock release with the wake lock name if it is
different than the one that was acquired.
- New RESET mark for the start of the history.

Change-Id: Ic105656649c46f52855946ed0ad7f98f1d24dedc
atteryStatsImpl.java
e22b3b143240f0f18e3d6d3c06686ad3c23b131b 08-May-2014 Dianne Hackborn <hackbod@google.com> Usage stats!

Start reworking the usage stats service to be able
to have an API we can publish.

The basic information it keeps is still the same, though
that will be changing in the future. The one big addition
here is that we are also now collecting configuration usage
stats.

Also introduce the start of an access model for usage stats,
using app ops. There is an new app op that gives an application
access to usage stats even if it normally wouldn't have it,
disabled by default.

Change-Id: I6ead28e18a7f08eafd057d6ff37dd9cb216358f4
kgUsageStats.aidl
kgUsageStats.java
a93369a819c9d4cfd4fe7ce3dd519f1c974bce4d 06-May-2014 Jeff Brown <jeffbrown@google.com> am 84aaf124: Merge "Plumb display state and interactive information to BatteryStats. (DO NOT MERGE)" into klp-modular-dev

* commit '84aaf124b762b9eeb0957aaea9df8424a429b148':
Plumb display state and interactive information to BatteryStats. (DO NOT MERGE)
e95c3cd89591ba586aa8a0f7a17660c6fb8770bc 03-May-2014 Jeff Brown <jeffbrown@google.com> Plumb display state and interactive information to BatteryStats.

Fixes an issue where dozing was treated the same as the screen
being fully on. Now dozing is treated the same as the screen
being fully off which is slightly better. The decision of how
to represent this state is now internal to the battery stats
so it can be improved later.

Removed noteInputEvent() since it is unused.

Bug: 14480844
Change-Id: Iee8cf8dce1a1f91c62678bb6d3d9fe567ad6db42
atteryStatsImpl.java
01ee6f6cf7de9fb98fc3a88509b43416caa71040 03-May-2014 Jeff Brown <jeffbrown@google.com> Plumb display state and interactive information to BatteryStats. (DO NOT MERGE)

Fixes an issue where dozing was treated the same as the screen
being fully on. Now dozing is treated the same as the screen
being fully off which is slightly better. The decision of how
to represent this state is now internal to the battery stats
so it can be improved later.

Removed noteInputEvent() since it is unused.

Bug: 14480844
Change-Id: Iee8cf8dce1a1f91c62678bb6d3d9fe567ad6db42
atteryStatsImpl.java
d21082ca0c116ba737e6e93c2917d0b557cc48fc 30-Apr-2014 Bill Yi <byi@google.com> am 9a76e9ba: Fix build error

* commit '9a76e9ba1adbdf7cc431b1e6fe454cf0c5d900de':
Fix build error
9a76e9ba1adbdf7cc431b1e6fe454cf0c5d900de 30-Apr-2014 Bill Yi <byi@google.com> Fix build error

Change-Id: I6f52954a780b747f1ad2a4e429ef192d58c40e76
ygoteInit.java
293513a59d36cd96a3e474dde5981380d372d8c9 30-Apr-2014 Bill Yi <byi@google.com> Merge commit '0b62467b142b61ee1e449ba958ba37dfd961ef56' into HEAD
ab5c0ea43cf457b20ab4267a14b224f39e0511bf 29-Apr-2014 Dianne Hackborn <hackbod@google.com> Add IBatteryStats API to retrieve current charge times.

Also include charge/discharge information in dumpsys.

Change-Id: Ica1b333ad334dc698d4a67da391b378757662f41
atteryStatsImpl.java
1de6b101e5a6e5c539cca5d9d044f1a28094fae4 29-Apr-2014 Dianne Hackborn <hackbod@google.com> Merge "Implement better computing of battery drain time, actual charge time."
260c5020ae65ddd14668b8ae496c169082aa13f6 29-Apr-2014 Dianne Hackborn <hackbod@google.com> Implement better computing of battery drain time, actual charge time.

Also move time formatter in to framework for use elsewhere.

Change-Id: I42b6a44414b68754af65c522bef5591da5643909
atteryStatsImpl.java
45641ecd2c4be60390319614f519d2313dbd547d 29-Apr-2014 Elliott Hughes <enh@google.com> am 7af8f5ba: am 10d57c4b: Merge "Fix two zygote imports."

* commit '7af8f5ba9cc7801fabe70bcf13e602aaa73dc428':
Fix two zygote imports.
a9569ff70f51a93e134e4d45558884d196b869c3 29-Apr-2014 Elliott Hughes <enh@google.com> Fix two zygote imports.

Change-Id: I5eea2d9f48479c33e1594aaa259274e5e787a1df
ygoteInit.java
c1858228df18528aabe1ff223335f613be2b99d8 29-Apr-2014 Elliott Hughes <enh@google.com> Fix a few more stray libcore.io references.

Change-Id: Id328544bd3a382fec16507d0ae5b699fef44ebd7
ygoteInit.java
33ee1e779d20fba8f8379296641c12cd6982506e 29-Apr-2014 Elliott Hughes <enh@google.com> Fix build.

Change-Id: I9e1a5280d3356e8814e505915bbc74200bc58b40
ygoteInit.java
20cfa1b36cbb6a6ed40a51799683c7b5d02415f6 29-Apr-2014 Elliott Hughes <enh@google.com> am 3e792ef7: am fff28619: am f4a7ac00: Merge "Move the Zygote off libcore.os and onto android.system."

* commit '3e792ef78fbad1df75e97da9a32a5826371b2da9':
Move the Zygote off libcore.os and onto android.system.
3e792ef78fbad1df75e97da9a32a5826371b2da9 29-Apr-2014 Elliott Hughes <enh@google.com> am fff28619: am f4a7ac00: Merge "Move the Zygote off libcore.os and onto android.system."

* commit 'fff28619d8f3b2fa7577c3e101d3fcd45f26f3a4':
Move the Zygote off libcore.os and onto android.system.
860c5911a2437ab2543614e138c98553d0d4ebf7 29-Apr-2014 Elliott Hughes <enh@google.com> Move the Zygote off libcore.os and onto android.system.

Change-Id: Iaa20e50b05fad355bdf15bcfdc58efc9941c400c
ygote.java
ygoteConnection.java
ygoteInit.java
91097de49b0f683b00e26a75dbc0ac6082344137 05-Apr-2014 Dianne Hackborn <hackbod@google.com> Initial implementation of new voice interaction API.

This gives a basic working implementation of a persist
running service that can start a voice interaction when
it wants, with the target activity(s) able to go through
the protocol to interact with it. It may even work when
the screen is off by putting the activity manager in the
correct state to act like the screen is on.

Includes a sample app that is a voice interation service
and also has an activity it can launch.

Now that I have this initial implementation, I think I
want to rework some aspects of the API.

Change-Id: I7646d0af8fb4ac768c63a18fe3de43f8091f60e9
andlerCaller.java
omeArgs.java
2ffa11e4b71c545e34533ef827bdc1a07fbe8246 22-Apr-2014 Dianne Hackborn <hackbod@google.com> Start collecting mobile radio activity from the radio.

Hook in to the new radio API to find out when the radio
is active and use that to track its state in batter stats.
We also still have the data being tracked from the kernel's
emulation, and continue to use that if we don't get data from
the radio.

Currently this monitoring is turned off until some issues
in the radio can be fixed that are providing bad data.

Also add a new API to get estimated drain and charge times.

Change-Id: Ifc4900fabb8f848f9cda361dce698664ea75f175
atteryStatsHelper.java
atteryStatsImpl.java
49cbafad9beb6041aaee773f75473fdb5022888e 20-Dec-2013 Daniel Leung <daniel.leung@intel.com> Zygote: enable CAP_BLOCK_SUSPEND capability for system server

Starting from kernel 3.6, it requires processes to have the capability
CAP_BLOCK_SUSPEND to set/unset wake locks. Adds CAP_BLOCK_SUSPEND
to the list of capabilities for system server, so that PowerManager
can set wake locks.

Change-Id: I3246e6f6e6cb8f0bedb1c0417ed07085ee1f3aaa
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
ygoteInit.java
99009ea7dcc196cd97756d70ed69499025229bd9 19-Apr-2014 Dianne Hackborn <hackbod@google.com> Try to always print time stamp in battery history.

Also fix printing of string pool to quote the strings
and escape characters, and change history time stamps
to print starting at 0 and going up.

Change-Id: I2d0c080f2b5de7b27b20a7357c2c0cf481c82d8c
atteryStatsImpl.java
c726f6b537c5913600bc35ff866f1fb32800b9be 18-Apr-2014 Mark Salyzyn <salyzyn@google.com> am b90e504e: am 649da9b5: am 5a47a9f6: Merge "Native Runtime: Add LOG_ID_CRASH"

* commit 'b90e504ec17a7f509521c21f2b937a2ebefaf6ab':
Native Runtime: Add LOG_ID_CRASH
b90e504ec17a7f509521c21f2b937a2ebefaf6ab 18-Apr-2014 Mark Salyzyn <salyzyn@google.com> am 649da9b5: am 5a47a9f6: Merge "Native Runtime: Add LOG_ID_CRASH"

* commit '649da9b505498ff87d75da56d376d46c22e50782':
Native Runtime: Add LOG_ID_CRASH
69eb6f57e34fb78050adcedcda8479cf2ad0c418 09-Apr-2014 Mark Salyzyn <salyzyn@google.com> Native Runtime: Add LOG_ID_CRASH

Change-Id: I4e3a82636901c5169cc6b714a4fec815cd757c58
untimeInit.java
7be06900a824babd17c5f4e018c08aeca9ba57e3 09-Apr-2014 Narayan Kamath <narayan@google.com> am 9f777008: am 05f980d4: am d4b64409: Merge "Make zygotes aware of their supported ABIs."

* commit '9f777008eaead3cb9cee80d0c00e5a3d55de9de7':
Make zygotes aware of their supported ABIs.
9f777008eaead3cb9cee80d0c00e5a3d55de9de7 09-Apr-2014 Narayan Kamath <narayan@google.com> am 05f980d4: am d4b64409: Merge "Make zygotes aware of their supported ABIs."

* commit '05f980d42d4926ab2130cdcf9e646eb610a7080b':
Make zygotes aware of their supported ABIs.
c41638cb759ce569630ffae4c5c4cdee1b0f3b82 07-Apr-2014 Narayan Kamath <narayan@google.com> Make zygotes aware of their supported ABIs.

Query system properties for the list of ABIs and pass
it as a command line argument to ZygoteInit.

Also add a new Zygote command that returns this list of
ABIs to peers.

Change-Id: I68034c6f63fa626911122579a011a0a25a8cda94
ygoteConnection.java
ygoteInit.java
ef640cdfb29caf9d0abf4aba020afbc3eb3e0443 25-Mar-2014 Dianne Hackborn <hackbod@google.com> Don't allow -1 uids for wake locks.

Change-Id: Ia1b412a166f69247be3b047138349e7b4031bd7d
atteryStatsImpl.java
b69bb445585a083b8e4ff8a13a1a1a63e9c22a6a 02-Apr-2014 Narayan Kamath <narayan@google.com> resolved conflicts for merge of 71ab4f4f to master

Change-Id: I888c231f7579523e12fbd68f820f0775019e51e0
71ab4f4f48a9b8b485d80adf18d568ef6265b1e8 02-Apr-2014 Narayan Kamath <narayan@google.com> am ea9e5eca: am 17b1b8fe: Merge "Move zygote startup logic to the frameworks."

* commit 'ea9e5ecac1e5240370f0e3f998b9c8b159ee9320':
Move zygote startup logic to the frameworks.
973b4663b0b5ee62006522bf4742af076096e548 31-Mar-2014 Narayan Kamath <narayan@google.com> Move zygote startup logic to the frameworks.

The Zygote class is now in com.android.internal.os. It is
responsible for the vast majority of work before and after
the call to fork(). It calls back into the Runtime via
the new dalvik.system.ZygoteHooks class to allow the Runtime
to perform pre fork cleanup and post fork initialization.

The native code in Zygote.cpp is a direct and straightforward
port of the existing code in art. Most differences are
superficial, for example :
- We use C style logging (ALOGE) instead of stream based
logging.
- We call env->FatalError() instead of using LOG(FATAL)

Change-Id: Ia101fb2af12d23894fe57e4134d2bc6d142e5059
rapperInit.java
ygote.java
ygoteConnection.java
ygoteInit.java
4590e52f3d0558e01322fe4dd55bb612afdfb079 24-Mar-2014 Dianne Hackborn <hackbod@google.com> Battery stats: wake locks, radio active, cleanup.

- Improve wake lock work source updates to also update the current
history tag, in case the new work source gets recorded in the
history.

- Fix bug in recording radio active time that was not distributing
any time to apps.

- No longer hold a wake lock while dispatching data conn active call,
since it comes with its own timestamp.

- Fix issue where the top app was not being cleared while the screen
was off.

- Remove obsolete STATS_LAST stats type.

- Fix bug that was not clearing the total run time when resetting
the stats.

Change-Id: Iabe17a9edf34f762374ae09fcffb8a819cf72e30
atteryStatsImpl.java
a1bd79268be693f04f4adee90673d6ed400cc9fd 21-Mar-2014 Dianne Hackborn <hackbod@google.com> Battery stats: track actually running time

Use the uptime while creating the battery stats history to
generate a new event indicating when the CPU is actually running.
We can do this in combination with the new event reporting when
the CPU comes awake, looking at the difference between the
uptime and elapsed time at that point to determine when it last
when to sleep.

Also use this information to generate a new set of aggregated
states, the uptime caused by each wake reason.

Finally use new radio down timestamp to adjust the times we
compute for radio use. Note that this information is not (yet)
being used to adjust how these are recorded in the history.

Change-Id: I723b3b526c8e7d64de0cac9d1193e04132d5a3e4
atteryStatsImpl.java
40c8725804f46c9d53f2815e0ee69e6cfb0152cc 20-Mar-2014 Dianne Hackborn <hackbod@google.com> batstats: fix wake lock tracking, service bug

- Fix bug I introduced in handling wake lock changes where
we weren't iterating over the new work sources correctly.
- Fix bug in ActiveServices that would wtf too much.
- Prepare to start tracking uptime in the battery history.

Change-Id: Ia94316be51bc6eab7b02f214a5c40c08e99cc3b1
atteryStatsImpl.java
bbb7472b8e378a46a1e77747265c19d22bd6968c 13-Mar-2014 Dianne Hackborn <hackbod@google.com> Fix some uid issues in battery stats.

Change-Id: I9f7773568ff12603d51b26d50d758add09bedbb2
atteryStatsImpl.java
e5167ca61e2c5607aad9041b44158581bc61b4d8 08-Mar-2014 Dianne Hackborn <hackbod@google.com> Reduce wake lock noise in battery history.

When the work source of a wake lock was changed, this would
cause the old wake lock to be released in battery stats before
the new one was acquired (the power manager would correctly
keep holding the associated wake lock). This resulted in a
pointless entry in the battery history showing the last wake
lock being released and a new one acquired.

This change adds a new path in to battery stats to report
when a wake lock has changed, allowing it to acquire the
new wake locks first before the old ones, so it can't drop
down to zero wake locks. This also provides better timing
information, as the same current time can be used for both
operations.

In addition, added a new kind of history entry for the
current time, so you can tell when in actual world clock
time the battery data is happening.

Change-Id: Ibbf2eed83bb93f31f60267889b7bc5b9e71e355f
atteryStatsImpl.java
6835033af4f42132337a65eeeb1e4362a36b0465 10-Mar-2014 Benoit Goby <benoit@android.com> am c6f0b54d: Merge "Add CAP_BLOCK_SUSPEND to system server" into klp-modular-dev

* commit 'c6f0b54d695b49966a13bb196800a985ac6ce212':
Add CAP_BLOCK_SUSPEND to system server
a26d08e612ec38c1d0f9d2b9f80d9d558ab26538 20-Feb-2014 Benoit Goby <benoit@android.com> Add CAP_BLOCK_SUSPEND to system server

With linux 3.5 and above, CAP_BLOCK_SUSPEND is needed to take a
suspend blocker.

CAP_BLOCK_SUSPEND has aleady been added in master.

Change-Id: Ibd4b1f8498c3c4a7b69ea9fc68311546a8f0ecda
ygoteInit.java
c51cf03cf2458c8c137f60c7379f2cccf681d16f 03-Mar-2014 Dianne Hackborn <hackbod@google.com> Start recording wakeup reasons in battery history.

Depends on a modification to libsuspend so that we can get
a callback each time the device wakes up, to read the current
wakeup reasons from the kernel. These are then stuffed in
to a new field in the battery history.

Also add new dump options --history-start and --charged
to better control what is dumped.

Finally the alarm manager uses a "*walarm*" tag for history
item wake locks that are coming from a wakeup alarm.

Change-Id: I457571973d5b2b5fdc4e4b63ab16275db20d7edd
atteryStatsImpl.java
9eca7f8fbc52ac5b2bf48528b90743f220ffb3ae 07-Mar-2014 Dave Platt <dplatt@google.com> am 53c7608a: am a3c3533b: Merge "Finish fixing Zygote descriptor leakage problem"

* commit '53c7608aefb0ed754394e571cac02e96ad6fcdb3':
Finish fixing Zygote descriptor leakage problem
97ae538554e5d894774ddd55c266434ce1d67492 06-Mar-2014 Dianne Hackborn <hackbod@google.com> Formalize time bases in battery stats.

Battery stats used to revolve around a single time base
it maintained, "battery uptime and realtime." This is derived
from the system's uptime and realtime, but only increments while
the device is on battery. It is used to update its timers for
things like the screen being on, wake locks, etc only while the
device is not plugged in to power.

This change formalizes that time base into a separate class that
maintains all of its state. This is used to introduce a new
time base, "battery screen off," which only increments while the
device is on battery *and* the screen is off. Wake locks are now
based on this time base, so we don't count them while the screen
is on -- it is misleading to have them increment while the screen
is on because the device is defined to always stay awake anyway
during that time, so what they are doing is irrelevant.

Change-Id: I020e20c930d8dca2953c6c3ddef1dc93c24161a5
atteryStatsHelper.java
atteryStatsImpl.java
77b987f1a1bb6028a871de01065b94c4cfff0b5c 27-Feb-2014 Dianne Hackborn <hackbod@google.com> Hold a wake lock while dispatching network activity events.

Also add new API for determining whether the current data network
is active, and thus better scheduling network operations. This
API is designed to not be tied to a mobile network -- regardless
of the network, apps can use it to determine whether they should
initiate activity or wait. On non-mobile networks, it simply always
reports as the network being active.

This changed involved reworking how the idle timers are done so
that we only register an idle timer with the current default
network. This way, we can know whether we currently expect to
get callbacks about the network being active, or should just always
report that it is active. (Ultimately we need to be getting this
radio active data from the radio itself.)

Change-Id: Iaf6cc91a960d7542a70b72f87a7db26d12c4ea8e
atterySipper.java
atteryStatsHelper.java
atteryStatsImpl.java
7531aa22355cf03f51def61ba67f1636bf85f408 13-Jan-2014 Mike Lockwood <lockwood@google.com> Add support for USB devices with multiple configurations and alternate interfaces

Added UsbConfiguration class, as well as accessors to UsbDevice to get configuration list
Added methods to UsbDeviceConnection to select configurations and alternate interfaces.

Also added accessors for USB descriptor name strings and fixed some memory leaks in the JNI code.

Bug: 12425052
Change-Id: Idb990f4d5c054a8cb997eb3f440f6da9f83bce05
ygoteInit.java
d45665bf0b26fddf5716a0fd43036848d9301960 26-Feb-2014 Dianne Hackborn <hackbod@google.com> Collect per-uid mobile radio usage.

We now compute radio active time per application, by distributing
the active time across all applications each time the radio goes
down, weighting it by the number of packets transferred.

Per-app radio power use is now computed using this radio active
time.

This also gives us a new metric "ms per packet", which give an
idea of how effectively an application is using the radio. This
is collected and reported as a new set of stats in the human-
readable checkin. (It can be computed from the raw checkin data).

Also improve sync reporting to include the sync source as used
in wake locks, not just the component name.

Change-Id: I0b0185fadd1e47ae749090ed36728ab78ac24c5e
atterySipper.java
atteryStatsHelper.java
atteryStatsImpl.java
a1f1a3c573acd91024fda0ceb3b921c73b186963 25-Feb-2014 Dianne Hackborn <hackbod@google.com> More battery stats.

- Add events for sync.
- Add more descriptive tags for wake events.
- Fix battery reset.
- Fix tracking of wifi data.

Change-Id: Ic07f2a86a5ed33e7da57eb1108c31c777ecd801f
atteryStatsImpl.java
fb7b50a0263e500a6a8d2bbd7366b06d1fc91fe3 25-Feb-2014 Dianne Hackborn <hackbod@google.com> Fix some issues with network usage in battery stats.

Change-Id: I8b354872511fcb55cecb2e09aada2eab41a1e202
atteryStatsHelper.java
atteryStatsImpl.java
d0c5b9abed60b7bc056d026bf0f2b2235410fb70 22-Feb-2014 Dianne Hackborn <hackbod@google.com> Improve how battery stats collects network stats.

This optimizes the path for battery stats to collect
per-uid network usage. It now collects wifi and mobile
usage separately, with a path that allows it to recycle
all data structures and filter out stats it isn't
interested in before they come back to java.

This is setting us up for the actual goal, to collect
mobile stats independently each time the mobile radio
goes down, allowing us to distribute mobile radio usage
across uids based on the number of packets they transferred
during a session.

Change-Id: I21a0f517cf087ea5aa8b8dd535e20b46e361a52b
atteryStatsImpl.java
00e2521d2a75c51585795e5c74b5857c543eb120 19-Feb-2014 Dianne Hackborn <hackbod@google.com> Fix issue #13095629: Device is in restart mode for long time...

...during taking OTA

Add some sanity checks.

Change-Id: I6bec1b8d8443c4b3c2a706635acf89c8e5051428
atteryStatsImpl.java
ca1bf21c511dc7d513b631a1af8498b5b08d107a 14-Feb-2014 Dianne Hackborn <hackbod@google.com> Implement wifi part of issue #12973036: Improve power_profile.xml

Add battery stats tracking of wifi state.

Also update when we retrieve the current time to use a more
consistent value across stats tracking.

Change-Id: I6a7c3efd58ff2c8ea86dac141c8f848e7996d63f
atteryStatsImpl.java
d39ccd0ad9cb562b0093eaf78a5273b000c0aa7a 13-Feb-2014 Dianne Hackborn <hackbod@google.com> Merge "Start tracking radio up time."
e13c4c0b664dabdc069ca8f9601d96a337eb02f9 12-Feb-2014 Dianne Hackborn <hackbod@google.com> Start tracking radio up time.

We now always turn on network state tracking for mobile,
and push this information down to battery stats.

In battery stats we use this to both log the changes in
the history and keep track of the total time the mobile
radio was active.

Power computation is switched over to using this information
to help determine power use, which will hopefully make it
more accurate (not counting inaccuracies in knowing when it
actually goes down).

Note yet done is aggregating this data per-uid, to better
emphasize which apps are causing the radio to be up. Right
now we just spread the total time across all uids weighted
by the total number of packets they have sent and received.

Also put in the battery stats infrastructure for bluetooth to
address issue #12973036: Improve power_profile.xml

Change-Id: I39d11b7ff6ae4f336f253d1cba308d8569de7e0d
atteryStatsHelper.java
atteryStatsImpl.java
2c7c0a8527d4ec7c28173ebe51dee684b12fbf3e 13-Feb-2014 Dave Platt <dplatt@google.com> am 5137fa03: am 34cc9f90: am 53c7608a: am a3c3533b: Merge "Finish fixing Zygote descriptor leakage problem"

* commit '5137fa03c3e416c6f68c36f3ec922621853609b1':
Finish fixing Zygote descriptor leakage problem
34cc9f9056e8736143e82891ccd01a85106a4518 13-Feb-2014 Dave Platt <dplatt@google.com> am 53c7608a: am a3c3533b: Merge "Finish fixing Zygote descriptor leakage problem"

* commit '53c7608aefb0ed754394e571cac02e96ad6fcdb3':
Finish fixing Zygote descriptor leakage problem
eaf2ac464b1cd741d7d0fe700771b1b7c00ddb29 07-Feb-2014 Dianne Hackborn <hackbod@google.com> Battery stats: more events, fixes.

Add new history events for top application package and
foreground application packages.

Doing this involved a fair amount of improvement to history
events. The event code is now separated out to have "start"
and "finish" identifies, and we use that to now keep track
of which events are active. With that, when resetting the
stats, we can spit out all of the currently active events at
the front of the new history.

Also fixed some problems when I re-arranged the history delta
int bits that were conflicting with the packing of the battery
status bits. These packing structures are changed to work
together correctly.

Change-Id: Ic8b815060dd8a50ff4a0a209efc2e1044215cd88
atteryStatsHelper.java
atteryStatsImpl.java
89d4c897a0e1bc06688bcb1fd39913ece81fe05f 06-Feb-2014 Dave Platt <dplatt@google.com> Finish fixing Zygote descriptor leakage problem

In order to prevent Zygote descriptors from leaking into the child
environment, they should be closed by the forked-off child process
before the child switches to the application UID. These changes close
the descriptors via dup2(), substituting a descriptor open to
/dev/null in their place; this allows the Zygote Java code to close
the FileDescriptor objects cleanly.

This is a multi-project change: dalvik, art, libcore, frameworks/base,
and external/sepolicy are affected. The CLs need to be approved
together, lest the build break or the software fail to boot.

Round 2: indent change

Bug: 12114500
Change-Id: I090402136a8a8b7d6aad6eb153026e85d7cf6ad3
ygoteConnection.java
ygoteInit.java
3d658bf20e2d56e36941e7407deebeec1276fbcf 05-Feb-2014 Dianne Hackborn <hackbod@google.com> Improve logging of first wake lock, history size.

We now try to have a better label for the first wake lock
that is acquired in the log. This is done in two ways:

- The alarm manager now sorts the alarms it is going to
execute so that wakeup alarms are first, which are more
important w.r.t. which one should be logged.
- There is a new power manager facility to make a wake lock
as "unimportant for logging," which just means in battery
stats that a wake lock acquired after that can be considered
the actual one to log. This is only used by the alarm manager
to mark its TIME_TICK alarms as unimportant for logging.

Also reworked the battery history code to be cleaner and a bit
smaller. There is no longer a separate EVENT command, instead
the event code and tag are just another thing that can be included
in an UPDATE command.

The bits used in the first history int are also re-arrange, so
that only the ones that really change a fair amount in the state
bits are up at the top and there is no longer space used for
the command code (since now it is always just UPDATE). This
allows us to have more room for the time delta at the bottom,
to better avoid situations where we need to write an int delta.

Change-Id: I1bb860ae5b558a248800b090b03a84fbf7acd68a
atteryStatsImpl.java
71fc13eb583eecc677b177b8010538a08aebb43d 03-Feb-2014 Dianne Hackborn <hackbod@google.com> More battery history improvements.

- Better batching of history items. Fixed problems where empty
entries would be created because state toggles got lost.
- The string pool is now a HistoryTag pool, containing both a string
and uid; now an entry only requires 16 bits in the history data.
- Acquiring the first wake lock also now includes a HistoryTag
identifying who did the aquisition.
- Cleaned up printing of signal strengths and cell radio types.
- There was code that tried to allow you to add new history entries
while iterating the history... but these should never happen
together, so turned that into a failure... and fixed an issue
where we could leave the battery stats in a state where it
thinks it is continually iterating.

Change-Id: I1afa57ee2d66b186932c502dbdd633cdd4aed353
atteryStatsImpl.java
5f4a5f9536eb171bf21a9293198d90c9891e7205 25-Jan-2014 Dianne Hackborn <hackbod@google.com> Add "start time" timestamp to battery stats.

Change-Id: I902269b98b40b2421245bfd8971f34df5ff9214e
atteryStatsImpl.java
099bc627c463d9941e23e480f25a78a154429c55 22-Jan-2014 Dianne Hackborn <hackbod@google.com> Battery stats improvements.

- Adjust total power use when there is unaccounted power so that our
percentages don't end up > 100%.
- Fix accounting of isolated uids to be against the owning real app
uids.
- Rework how we put cpu use into the battery stats to no longer need
this uid name cache that can confuse the uid it is associated with.
- Finish implementing events in the history, adding a string pool and
reading/writing/dumping them.
- Add first two events: processes starting and finishing.
- Fix alarm manager reporting of wakeup alarms to be adjusted by the
WorkSource associated with the alarm, so they are blamed on the
correct app.
- New "--history" dump option allows you to perform a checkin of
only the history data.
- Fixed BitDescription bug that would cause incorrect printing of
changes in some states.

Change-Id: Ifbdd0740132ed178033851c58f165adc0d50f716
atteryStatsHelper.java
atteryStatsImpl.java
520e705bf860f048836546a524db3b33af06a38a 17-Jan-2014 Dianne Hackborn <hackbod@google.com> Merge "Whoops, we were counting everything twice in the totals. :("
ae19a06e030e55b4db3cb20f1e564d49a78a395e 17-Jan-2014 Dianne Hackborn <hackbod@google.com> Whoops, we were counting everything twice in the totals. :(

Change-Id: Ia8a5adec4db7d692691b2d7e471c446f963a5c21
atteryStatsHelper.java
09d30981f8e882ffaa336aa4665bfe348557895a 16-Jan-2014 Jeff Brown <jeffbrown@google.com> resolved conflicts for merge of 6f357d32 to master

Change-Id: I1979e6ed1acddbe656f5010114fd900f10865e75
6f357d3284a833cc50a990e14b39f389b8972254 16-Jan-2014 Jeff Brown <jeffbrown@google.com> Start untangling system server early bootstrapping.

Refactored SystemServer to get rid of a bunch of legacy cruft related
to how the ServerThread used to be started up.

Create system context first when system server starts. This removes
the tangled initialization order dependency that forced us to start
the activity manager service before most anything else.

Moved factory test related constants into the FactoryTest class.

Partially migrated Installer, ActivityManagerService, and
PowerManagerService to the new SystemService pattern. There's more
work to be done here, particularly around the lifecycle of the
power manager.

Bug: 12172368
Change-Id: Ia527dd56e3b3fd90f9eeb41289dbe044921230d4
atteryStatsImpl.java
inderInternal.java
a7c837f043c1ca0bdecd42645ba7da8c5717566d 16-Jan-2014 Dianne Hackborn <hackbod@google.com> Add battery power use reporting to batterystats service.

Move the BatteryStatsHelper class (which computes power use based
on the raw battery stats) out of the settings app and in to the
framework. It is now used by batterystats dump output to print
the computed power information from its current stats.

This involved a lot of refactoring of the BatteryStatsHelper code
to remove all of the UI dependencies. I also did a bunch of cleanup
in it, such as making all power computations be in terms of mAh.

Change-Id: I8ccf2c9789dc9ad34904917ef57050371a59dc28
atterySipper.java
atteryStatsHelper.java
atteryStatsImpl.java
bd9acc2218fcf3cd6605554a45db2251753ddd7b 07-Jan-2014 Dave Platt <dplatt@google.com> am e966e577: am 02f042dd: Fix socket descriptor leak from Zygote to child app

* commit 'e966e5774ad8d478bc89b541bcac3740fe267d18':
Fix socket descriptor leak from Zygote to child app
02f042ddd9ddf47ef88c4f174eb19a9bee296a45 13-Dec-2013 Dave Platt <dplatt@google.com> Fix socket descriptor leak from Zygote to child app

Due to an API change in LocalSocket, Zygote must now
manually close the FileDescriptor it created when it
registered a LocalServerSocket. The LocalSocket.close()
routine will no longer do so.

Bug: 12114500

(cherry picked from commit 70ef29b04ee4ef7d7acfec79041dbe800961195e)

Change-Id: Ief23a3c99e007dc4aa6f94dfb47a1b2b6c854dad
ygoteInit.java
57ed6a6440ff010494a03c6c68ce6dc0924b57d6 10-Dec-2013 Dianne Hackborn <hackbod@google.com> Improvements to battery stats.

Now collect per-network packet usage data.

Big reworking of history to be able to start adding more events to it.
Also rework how the checking dump is done to make it more compact, so
maybe we can start uploading it.

Change-Id: I2b29e049ebe073671d0dbe38324223cc2ec0d043
atteryStatsImpl.java
70ef29b04ee4ef7d7acfec79041dbe800961195e 13-Dec-2013 Dave Platt <dplatt@google.com> Fix socket descriptor leak from Zygote to child app

Due to an API change in LocalSocket, Zygote must now
manually close the FileDescriptor it created when it
registered a LocalServerSocket. The LocalSocket.close()
routine will no longer do so.

Bug: 12114500
Change-Id: I8c9fb073924ac33d594bd3bd0eb11d3d1d402506
ygoteInit.java
93f50a1a1865b4cd3f1dfcb45bc2a0cbede9229f 10-Dec-2013 Narayan Kamath <narayan@google.com> am 98f50502: am 57b94b34: am ca9ba160: am bea98dc2: Merge "Fix inconsistency in LoggingPrintStream."

* commit '98f50502ea9ed4bd32f2732dc9ded146fafd2005':
Fix inconsistency in LoggingPrintStream.
bea98dc245bad71eb3b5fd831218b3db1f75ee21 10-Dec-2013 Narayan Kamath <narayan@google.com> Merge "Fix inconsistency in LoggingPrintStream."
b0c7c914eb7ee6ac134beb69bddf2c4791cca410 09-Dec-2013 Narayan Kamath <narayan@google.com> Fix inconsistency in LoggingPrintStream.

LoggingPrintStream prints "null" for null strings from
print(String) but throws an NPE from println(String).

Fix this by delegating to the underlying builder (and avoiding
the "fast" path when the input String == null)

bug: https://code.google.com/p/android/issues/detail?id=63380
Change-Id: I89c5c12db6ed5af8037d46f67369b38c5b4cbc9f
oggingPrintStream.java
dbccd44a638ae8705a5b14bff8b2dd74abc26045 22-Nov-2013 The Android Open Source Project <initial-contribution@android.com> Merge commit 'b873a17ce7be0a9771c24999adca6964431728f6' into HEAD

Change-Id: I938755073e70602cc8f51ce9bd420fdcf870cecd
6090995951c6e2e4dcf38102f01793f8a94166e1 19-Nov-2013 John Spurlock <jspurlock@google.com> Remove unused imports from frameworks/base.

Change-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906
inderInternal.java
rapperInit.java
443e3a209ce0b323fb5165cfe091ffed5c13d565 08-Nov-2013 Elliott Hughes <enh@google.com> am 5c1aa4ef: am ede7f9d3: am 9e71310d: Merge "Remove incorrect (and unused) capget code."

* commit '5c1aa4efa9568d38cd2e8756a274bb30ddd590ba':
Remove incorrect (and unused) capget code.
5c1aa4efa9568d38cd2e8756a274bb30ddd590ba 08-Nov-2013 Elliott Hughes <enh@google.com> am ede7f9d3: am 9e71310d: Merge "Remove incorrect (and unused) capget code."

* commit 'ede7f9d3a39d87f12d58df495f28108784e9b588':
Remove incorrect (and unused) capget code.
42a4bb5730266f80585e67262c73505d0bfffbf8 08-Nov-2013 Elliott Hughes <enh@google.com> Remove incorrect (and unused) capget code.

Note that if you revert this change, the code it removes is incorrect,
and doesn't handle the top 32 bits of capabilities, one of which we're
already using: CAP_BLOCK_SUSPEND.

Bug: 11508244
Change-Id: Ice1f51334bce4941c6d24d6016450a2ebcf92886
ygoteConnection.java
ygoteInit.java
d528d48e5d8444de0730d62b9f621b9cc2df5fbd 08-Nov-2013 Robert Greenwalt <rgreenwalt@google.com> resolved conflicts for merge of c3eef190 to master

Change-Id: I36fd3c7fcbb13e47e27ffc340484c03b5a553bb1
c3eef19047b897bfb6e3cf42220d5146b187c66e 07-Nov-2013 Robert Greenwalt <rgreenwalt@google.com> am f1612bcf: am e8c51298: Merge "Add BatteryStats for Wifi Batched Scanning." into klp-dev

* commit 'f1612bcfdd2cb517948f14369fd0977ceb55d19c':
Add BatteryStats for Wifi Batched Scanning.
a029ea131836725b050e1a7550aa171b68171522 26-Sep-2013 Robert Greenwalt <rgreenwalt@google.com> Add BatteryStats for Wifi Batched Scanning.

bug:10690989
Change-Id: Ia39b715ee6d5733970095bc76de0ed40ff8208c0
atteryStatsImpl.java
owerProfile.java
09e0244f72c6ed61ee205fa85e29e821d4c72b42 06-Nov-2013 Patrick Tjin <pattjin@google.com> am b4328566: am 5eecb9e8: am bd9513f3: Merge "Add HSPA+ to BatteryStats" into klp-dev

* commit 'b4328566fa415b69974a9721ec690a1b74880873':
Add HSPA+ to BatteryStats
b4328566fa415b69974a9721ec690a1b74880873 06-Nov-2013 Patrick Tjin <pattjin@google.com> am 5eecb9e8: am bd9513f3: Merge "Add HSPA+ to BatteryStats" into klp-dev

* commit '5eecb9e8d44b3864a3261a3c5ebfbb9c606e77f5':
Add HSPA+ to BatteryStats
b71703cfdfbac35a6e5afaa437d073cf835c25db 06-Nov-2013 Patrick Tjin <pattjin@google.com> Add HSPA+ to BatteryStats

HSPA+ was being shown as connection type other in battery
statistics because it was not updated when TelephonyManager
was changed.

Bug: 11552902
Change-Id: I85ce7c393bf93010a4ac8437f14684015ad0391a
atteryStatsImpl.java
6f1a44f3de8ae64f6df6ae1984f56396e588f6d5 05-Nov-2013 Brian Carlstrom <bdc@google.com> am 5f4a8948: am c8b01295: am 60999fcb: Merge "Treat UnsatisfiedLinkError as non-fatal" into klp-dev

* commit '5f4a89480a6f5d3eb6ec7f7979f6555ae083c25f':
Treat UnsatisfiedLinkError as non-fatal
6a429f56042f9e6be61e18cb9620444b79dc9b4c 05-Nov-2013 Brian Carlstrom <bdc@google.com> am 94edb339: am 10193b78: am a51052d1: Merge "Move set of persist.sys.dalvik.vm.lib to SystemServer only" into klp-dev

* commit '94edb3390970c302be926b42e0f8a8da0d5d5960':
Move set of persist.sys.dalvik.vm.lib to SystemServer only
5f4a89480a6f5d3eb6ec7f7979f6555ae083c25f 05-Nov-2013 Brian Carlstrom <bdc@google.com> am c8b01295: am 60999fcb: Merge "Treat UnsatisfiedLinkError as non-fatal" into klp-dev

* commit 'c8b01295bc5dcfcd2d9559f366e175db086eae37':
Treat UnsatisfiedLinkError as non-fatal
94edb3390970c302be926b42e0f8a8da0d5d5960 05-Nov-2013 Brian Carlstrom <bdc@google.com> am 10193b78: am a51052d1: Merge "Move set of persist.sys.dalvik.vm.lib to SystemServer only" into klp-dev

* commit '10193b78b87a18e5fee7faa4890a01946934000c':
Move set of persist.sys.dalvik.vm.lib to SystemServer only
ad13bd5c0d83dd87599dbca11b93cd1ea413006d 04-Nov-2013 Brian Carlstrom <bdc@google.com> Treat UnsatisfiedLinkError as non-fatal

Bug: 11466297

(cherry picked from commit e92f19e58caa05f5f4086d12a6396116ce6182aa)

Change-Id: I449474078b9f465f1da26a27bf96f9c35d2bb2fc
ygoteInit.java
e92f19e58caa05f5f4086d12a6396116ce6182aa 04-Nov-2013 Brian Carlstrom <bdc@google.com> Treat UnsatisfiedLinkError as non-fatal

Bug: 11466297
Change-Id: I12be43564da37290b3ee52b1858e44f2229711d9
ygoteInit.java
5637ffced9d0b804f43db0915b2d0f39af2835c0 01-Nov-2013 Brian Carlstrom <bdc@google.com> Move set of persist.sys.dalvik.vm.lib to SystemServer only

Bug: 11463182
Bug: 11479647
Change-Id: I38efdecdd65fe3efc9c33b4dc204a64543ae6377
untimeInit.java
3472338f1290ad010fb2cbd0e141bb2a97238338 01-Nov-2013 Brian Carlstrom <bdc@google.com> am 68724352: am 3a9a2089: am e6411e68: Merge "Set persist.sys.dalvik.vm.lib at system server startup" into klp-dev

* commit '6872435264f720dd5f1471d279f3f2ee938802e5':
Set persist.sys.dalvik.vm.lib at system server startup
6872435264f720dd5f1471d279f3f2ee938802e5 01-Nov-2013 Brian Carlstrom <bdc@google.com> am 3a9a2089: am e6411e68: Merge "Set persist.sys.dalvik.vm.lib at system server startup" into klp-dev

* commit '3a9a2089852d18ef7abbb9476fc3455bfec5a880':
Set persist.sys.dalvik.vm.lib at system server startup
ad464053582bfdc6764aa3f98bc2c00c1ac082e9 31-Oct-2013 Brian Carlstrom <bdc@google.com> Set persist.sys.dalvik.vm.lib at system server startup

Bug: 11463182
Change-Id: I4409e84570c4e27bf8da36d0aca87812a1c032a6
untimeInit.java
aa2f9f01fa820ba93eaff8916b74cbc4a2bf0254 30-Oct-2013 Jeff Brown <jeffbrown@google.com> am 81b7caf0: resolved conflicts for merge of 5214dae4 to klp-dev-plus-aosp

* commit '81b7caf0d12fb56ab40592467d6b1cbcaef8f0b4':
handle negative temperature
81b7caf0d12fb56ab40592467d6b1cbcaef8f0b4 30-Oct-2013 Jeff Brown <jeffbrown@google.com> resolved conflicts for merge of 5214dae4 to klp-dev-plus-aosp

Change-Id: I769e7acbe207b9c3a60ff1576d11b3ab40b8c66d
6dbbba4e9adc3f1c2481698e42f4ffc0c68937f1 29-Oct-2013 Jeff Brown <jeffbrown@android.com> Merge "handle negative temperature"
2172148f159322fd5a175e7220fb70a61af63ff3 09-Oct-2013 Brian Carlstrom <bdc@google.com> am 2d0f1d65: am 19c8b395: am 6c3baf12: Preload DexCaches

* commit '2d0f1d655cc96d34e67e4e6efc2587ef1feabfe3':
Preload DexCaches
2d0f1d655cc96d34e67e4e6efc2587ef1feabfe3 09-Oct-2013 Brian Carlstrom <bdc@google.com> am 19c8b395: am 6c3baf12: Preload DexCaches

* commit '19c8b395dc13732d0642041b81507038190546ca':
Preload DexCaches
6c3baf12e0a6417177793a2e7e95d22721203813 08-Oct-2013 Brian Carlstrom <bdc@google.com> Preload DexCaches

Bug: 11045348
Change-Id: Id27333652d4b3b9ace6c1cdf0566bf39bf0084ed
ygoteInit.java
67774c74186c9fb5fb73bb0126636225010575f8 25-Sep-2013 Michael Wright <michaelwr@google.com> Move EventHub over to using EPOLLWAKEUP when available

Bug: 10901016
Change-Id: If63c0de5cf120cdf1534d63fc2382d2925b35c6a
ygoteInit.java
8715dc1401557f5ec068f9214ab0712291a3b403 25-Sep-2013 Dianne Hackborn <hackbod@android.com> am 4213e68f: am 3a7d5f71: Merge "Replace SEAndroid with SELinux."

* commit '4213e68f67d59c0912d2a8729fcec4539197756a':
Replace SEAndroid with SELinux.
8e69257a9c7e9c1781e1f53d8856358ada38921d 11-Sep-2013 Dianne Hackborn <hackbod@google.com> Implement #10749688: Improve low memory reporting

This significantly reworks the logging we do when
all cached processes are killed:

- We now collect the list of processes in-place so we
have a snapshot of exactly when the low memory situation
happened.
- In that snapshot we include the key process state: oom
adj, proc state, adj reasons.
- The report then asynchronously collects pss information
for those processes.
- The ultimate data printed to the log looks like a mix
between the "dumpsys meminfo" and "dumpsys activity"
output. This code no longer uses "dumpsys meminfo"
itself, so some of that data is no longer included,
in particular pss organized by allocation type.

In doing this, I realized that the existing code that is
supposed to run "procstats" is not currently working. And
at that point I realized, really, when we are collecting
this pss data we'd really like to include all those native
processes using ghod-only-knows how much RAM. And guess
what, we have a list of processes available in
ProcessCpuTracker.

So we now also collect and print information for native
processes, and we also do this for "dumpsys meminfo" which
really seems like a good thing when we are printing summaries
of all pss and such.

I also improved the code for reading /proc/meminfo to be
able to load all the interesting fields from there, and
am now printing that as well.

Change-Id: I9e7d13e9c07a8249c7a7e12e5433973b2c0fdc11
rocessCpuTracker.java
35980b2cf51c06c1bdad66b7f8fb629d9c17052f 03-Sep-2013 Eric Rowe <erowe@google.com> Add PID and application to Java crash printout

Bug: 10568405
Change-Id: I508e89bf7ea58e15a8460099036e270139b2e2a9
untimeInit.java
ae36b236d2b8d040f142bee169742da2f392efaa 04-Sep-2013 Dianne Hackborn <hackbod@google.com> Fix issue #10427108: Google+ has long running process

There was a bug in counting the number of starting services
in a process that would cause it to count too many (it would
increment at any state change while the service is started, not
just when starting/stopping).

Also reduce dumpsys output -- only print summaries for old
data. There is probably no utility in printing the long details
of all that data.

Change-Id: I1c1e901b0214c01eb7d071f23166fc6f3702ca67
rocessCpuTracker.java
941adc95e121332b49aedb5406b6037a6395aea6 27-Aug-2013 Christopher Tate <ctate@google.com> Make sure to actually log when Log.wtf() hiccups

Bug 10494724

Change-Id: I687d7df73a8f4594d42955f100d928e98bbd9b30
untimeInit.java
269403b032f965ff3847eb982c2f697229dc5a92 15-Aug-2013 Svetoslav <svetoslavganov@google.com> Implemented advanced printer selection and API refactoring.

1. Added past printer history tracking and merging favorite printers
with discovered printers.

2. Added save as PDF support.

3. Added all printers activity with search capability and optional
add printers chooser (if any print service provides add printers
activity)

4. Refactored the printer discovery session APIs. Now one session
can have multiple window discovery windows and the session stores
the printers found during past discovery periods.

5. Merged the print spooler and the print spooler service - much
simpler and easier to maintain.

Change-Id: I4830b0eb6367e1c748b768a5ea9ea11baf36cfad
andlerCaller.java
184a0100abc431fc3d6d8dd1b20212b84958cada 11-Jul-2013 Jeff Sharkey <jsharkey@android.com> Allow packages.list access with new GID.

The FUSE daemon is using packages.list to map from package name to
appId after it drops permissions, so create a new "package_info" GID
to grant read access.

Also switches FileUtils to use Libcore.os.

Change-Id: I9451ca4e90e8a985526805c6df0888a244a1db36
ygoteInit.java
d2932243e3313b59e7538641731aa98852bc5ac7 06-Aug-2013 Dianne Hackborn <hackbod@google.com> Refactor ProcessStats, ProcessTracker.

ProcessStats is now called ProcessCpuTracker.

ProcessTracker is now ProcessStatsService, and its inner State
class is broken out into a separate top-level ProcessStats class.
This ProcessStats is moved to the framework, so we will be able
to use it elsewhere.

Change-Id: I6a127bcb835b6b474b72647c0b99b82c2137e5c5
rocessCpuTracker.java
rocessStats.java
bd19b9ee305c11d8aa3cbb105bf2d3a6b06389b5 12-Apr-2013 Stephen Smalley <sds@tycho.nsa.gov> Replace SEAndroid with SELinux.

Change-Id: Ibbe544a9f025d71ad416bc01cee2145b62d7b2d4
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
ygoteConnection.java
c7e9e8b4f3e264375b416eff830739ecf0dc206c 15-Jan-2013 Sungmin Choi <sungmin.choi@lge.com> handle negative temperature

When the battery temperature drops to below zero, BatteryLevelInit()
fails to show negative temperature. Because the type is unsigned
and the size of bit field is 10 bits.
So to handle negative temperature, change the type of battery temperature
from "char" to "short". And extend the size of temperature bit field
from 10 to 11 bits, which first bit is used for the sign bit.

Before:
31 24 14 0
+---------------+---------------------+-----------------+
| Battery Level | Battery temperature | Battery Voltage |
+---------------+---------------------+-----------------+

After:
31 25 14 0
+-------------+-----------------------+-----------------+
|Battery Level| Battery temperature | Battery Voltage |
+-------------+-----------------------+-----------------+

Bits 31..25: battery level percentage (7 bits unsigned)
Bits 24..14: battery temperature (11 bits signed)
First bit is used for the sign and others for the temperature
Bits 13..0: battery voltage in 0.001 volt units (14 bits unsigned)

Becuase of changing the format, let the BatteryStatsImpl.VERSION field
increment.

Bug: 8009514
Change-Id: Iaa12f4d3f14e6cf4d73bc1a23d81c60f9677a499
atteryStatsImpl.java
904a857d5a319e32d1df065b38e3191324b35b0f 29-Jun-2013 Dianne Hackborn <hackbod@google.com> More work on procstats: save/restore state, fixes.

We now persistent the current procstats to storage
to keep them across boots. Still need to do division
and pruning across days; right now they will just keep
collecting forever.

Also fix some bugs in the checkin output.

Change-Id: I4dd9317dbe2ee0642af8f2f0be1f2bd9c4055e80
atteryStatsImpl.java
053f61d6a6e23825e680dc49982e55c5b4299d61 27-Jun-2013 Dianne Hackborn <hackbod@google.com> Work on issue #9586838: Crash after waking up Hammerhead device

I made the power manager more rigid, not allowing different uids
to use the same wake lock. This never should happen. I would
guess there is somewhere that the activity manager is acquiring
the wake lock without clearing the calling identity... but it is
hard to follow all the paths this may happen in. So here we add
some checks when acquiring/releasing the wake lock to make sure
it is being done as the system uid.

Also:

- Protect the new activity stack calls with a permission, and
make sure to clear the calling uid once past that.
- Collect uid data from process stats so we can correctly
associate CPU use with a uid even if we don't know about the
pid for some reason.
- Fix battery stats dump commands to clear calling uid before
executing so they aren't broken.

Change-Id: I0030d4f7b614e3270d794ecfc3669139a5703ce9
rocessStats.java
13ac041b9f21043bc7c848a743be618bfd7a67e9 26-Jun-2013 Dianne Hackborn <hackbod@google.com> Update procstats to start collecting/reporting pss.

Completely reworked how it manages its data, since trying
to keep track of all of the possible pss data with the old
data structures would have made it huge. Now we have a sparse
data structure for pss and process times. (Will switch service
times over to it soon.)

Currently the only thing that collects pss data is running
"dumpsys meminfo". More will be added later.

Modified checkin output to also scale better as more distinct
data categories are added, and added output of pss data. Now
instead of dumping every possible entry as a comma-separated
list, it dumps a comma-separated list of only the entries with
data, tagged with the state they go with.

Also fixed some problems in the checkin reporting of batterystats
(it needs to escape commas), added checkin reporting of the history
list, fixed parsing of kernel wake locks to strip quotes, fixed
wake lock name that the sync manager generates to be more sane.

Change-Id: Ibf4010838a9f685ebe1d93aff86c064ccc52b861
atteryStatsImpl.java
8c84109b9fbbf473b225707a38261ff5f99d95fb 24-Jun-2013 Dianne Hackborn <hackbod@google.com> Use FastPrintWriter... everywhere.

One problem this turned up is, because FastPrintWriter does
its own buffering, a lot of code that used to use PrintWriter
would fail -- if it pointed to a StringWriter, there was no
buffering, so it could just immediately get the result. Now
you need to first flush the FastPrintWriter.

Also added some new constructors to specify the size of buffer
that FastPrintWriter should use.

Change-Id: If48cd28d7be0b6b3278bbb69a8357e6ce88cf54a
atteryStatsImpl.java
rocessStats.java
cbfd23ee6f14445c3e17c5169abbc80c216fa137 11-Jun-2013 Dianne Hackborn <hackbod@google.com> Add new API to retrieve a dumpsys of a single package.

Adds a platform API, and pm command. Fixes some issues with
dumping per-package data in package manager, makes battery
stats able to dump per-package state.

Change-Id: I76ee6d059f0ba17f7a7061886792b1b716d46d2d
atteryStatsImpl.java
ransferPipe.java
7a1c3fce478122b9f03464117dc94d44f7c1995e 04-Jun-2013 Jeff Sharkey <jsharkey@android.com> Accumulate network statistics based on deltas.

Network stats are now read out of the kernel in one sweep, instead of
reading per-UID. We now accumulate the delta traffic between each
stats snapshot using the well-tested SamplingCounter pattern.

Since Wi-Fi and mobile traffic have different costs, track each
separately. Avoids counting misc interfaces like loopback and
ethernet under total.

Bug: 5543387
Change-Id: I642004dc530113c27ef79f2abbae51d8af30117f
atteryStatsImpl.java
84f3c5689cffbfc1e45a0101d5bb636323769f54 05-Jun-2013 Jeff Sharkey <jsharkey@android.com> am ffbbe945: am d293d229: Merge "Create missing Uids when recording network stats." into jb-mr2-dev

* commit 'ffbbe945066bf0b295ff65edfb1c49f7a4311718':
Create missing Uids when recording network stats.
ffbbe945066bf0b295ff65edfb1c49f7a4311718 05-Jun-2013 Jeff Sharkey <jsharkey@android.com> am d293d229: Merge "Create missing Uids when recording network stats." into jb-mr2-dev

* commit 'd293d229493a2d661ebb1776a0915297927a5ca6':
Create missing Uids when recording network stats.
51797ed706e6e30cddfc0c1e3a9865064f8cdd6e 04-Jun-2013 Jeff Sharkey <jsharkey@android.com> Create missing Uids when recording network stats.

Bug: 5543387
Change-Id: I138c8d2f84e6fd737f2f6ef0945e75ca31256e3d
atteryStatsImpl.java
fee8cd75823413a28f004d13e1f25a8954ac2900 10-May-2013 Dianne Hackborn <hackbod@google.com> am e8c9b39e: am 83d6df27: Merge "Help on issue #8863955: Google Services keeping phone awake..." into jb-mr2-dev

* commit 'e8c9b39ec976029d3571f8904a3db21d6514ecf6':
Help on issue #8863955: Google Services keeping phone awake...
e8c9b39ec976029d3571f8904a3db21d6514ecf6 10-May-2013 Dianne Hackborn <hackbod@google.com> am 83d6df27: Merge "Help on issue #8863955: Google Services keeping phone awake..." into jb-mr2-dev

* commit '83d6df27d40aed18a7dc42c9320f83656cc81ea0':
Help on issue #8863955: Google Services keeping phone awake...
af17baa27196e785989e99b0ecbe7f1c98a1f0cb 10-May-2013 Dianne Hackborn <hackbod@google.com> Help on issue #8863955: Google Services keeping phone awake...

...because of Google Play Services

Raise the limit on the number of wake locks we track per uid.

Get rid of the separate limit for the system process, since it
now isn't any larger than the new limit for regular processes.

Change-Id: Ic10c81cad7d4ad4aabf1f53f78191a0973a1d784
atteryStatsImpl.java
ed96ea2a07ae20c186ad9073d8f0b26419eb35f8 09-May-2013 Romain Guy <romainguy@google.com> Merge "Add the ability to disable OpenGL drivers preloading Bug #8888857"
c5e3638c06f30827cdc6eb0d987adb677e900487 09-May-2013 Romain Guy <romainguy@google.com> Add the ability to disable OpenGL drivers preloading
Bug #8888857

Set ro.zygote.disable_gl_preload to true in the build properties.

Change-Id: Idd93ebb4bbd2861ce60af03ed14819a5cfa70dec
ygoteInit.java
dad7bd706a4ecca245b4dbe770862874e1854225 09-May-2013 Romain Guy <romainguy@google.com> Merge "Load OpenGL drivers libraries in Zygote"
74c691221b620d74eafff315bf7c8ed8c4b58f3a 09-May-2013 Romain Guy <romainguy@google.com> Load OpenGL drivers libraries in Zygote

This does not initialize EGL/GL.

Change-Id: I951ae0b7defee86eb06821ea807af3e829f4a73c
ygoteInit.java
dbcf2d7482562eff45ac727cea799b37a260e399 18-Apr-2013 Nick Kralevich <nnk@google.com> PowerManagerService: Don't reboot directly.

Instead of calling the reboot system call ourselves, send
a message to init asking it to reboot the system. Init is in
a better position to make sure the system is cleanly shutdown.

Get rid of CAP_SYS_BOOT from system_server.

Bug: 8646621
Change-Id: I200722412844ad8d99e35a442021c6263c3ebc05
ygoteInit.java
c9dc93e5ca71ce1df792e6ac9fcfe8d9eda4f96c 03-May-2013 Dianne Hackborn <hackbod@google.com> Merge "Start combining threads in system process."
8d044e8bc287c1a567d82aedbe30085b011544c3 01-May-2013 Dianne Hackborn <hackbod@google.com> Start combining threads in system process.

This introduces four generic thread that services can
use in the system process:

- Background: part of the framework for all processes, for
work that is purely background (no timing constraint).
- UI: for time-critical display of UI.
- Foreground: normal foreground work.
- IO: performing IO operations.

I went through and moved services into these threads in the
places I felt relatively comfortable about understanding what
they are doing. There are still a bunch more we need to look
at -- lots of networking stuff left, 3 or so different native
daemon connectors which I didn't know how much would block,
audio stuff, etc.

Also updated Watchdog to be aware of and check these new
threads, with a new API for other threads to also participate
in this checking.

Change-Id: Ie2f11061cebde5f018d7383b3a910fbbd11d5e11
ackgroundThread.java
ec43a6bc17d90058ba2c00e016846c863ab239bc 30-Apr-2013 Jeff Sharkey <jsharkey@android.com> Better --unplugged support when dumping battery.

Also fixes logBatteryStatsLocked() to output valid dump data, instead
of just a usage message.

Bug: 8708665
Change-Id: Ie0d8d90e1a470b7e1e902643333309c2cf7bdb72
atteryStatsImpl.java
3e013e85b0dfb9db58a4401b80d672a7eeb09d47 25-Apr-2013 Jeff Sharkey <jsharkey@android.com> Track foreground activities in battery stats.

To help correlate battery usage against actual foreground app usage,
start tracking time on a per UID basis. It uses the nesting feature
of StopwatchTimer to track multiple PIDs inside the same UID.

Improves units on docs, and persists foreground CPU time with a
consistent ordering. Reports foreground activities time and
foreground CPU time.

Change-Id: I95d12963923e3fd421730f6fbfc842dfd8d3a055
atteryStatsImpl.java
rocessStats.java
50289346b3010e24b6a7b86a774d88b81fc28f3b 24-Apr-2013 Alex Klyubin <klyubin@google.com> am a6436526: Merge "Human-readable POSIX capabilities for SystemServer."

* commit 'a643652680486bd1009248d1bd8fcea7da92d661':
Human-readable POSIX capabilities for SystemServer.
48a06e740782184bd126ab743150b474abc9e6a4 19-Apr-2013 Alex Klyubin <klyubin@google.com> Human-readable POSIX capabilities for SystemServer.

Change-Id: I8fecdc55b2cf0041ceed643eb48df53d22ecd600
ygoteInit.java
6ad0452e6301c0650f58f3991f7c523f6f279ddb 16-Apr-2013 Jamie Gennis <jgennis@google.com> Disable tracing from Zygote

This change disables all atrace tracing in Zygote immediately after it is
initialized. This is necessary because Zygote has no way to receive
notifications that the enabled trace tags have been changed. Tracing is
re-enabled when other processes fork from Zygote.

Change-Id: If2983858fb0c4890ba9ab041849b1c4d98f66c13
ygoteInit.java
79f7ec70ebd5758ce54fd5b6fcd60fd27457cba6 05-Apr-2013 Dianne Hackborn <hackbod@google.com> Have audio service clean up new receivers in crashing processes.

The new media button receiver with only a pending intent (no
component name) could be left hanging if the process that
registered it went away. These semantically need to be tied
to the calling process's lifetime; we now clean them up when
the calling process goes away.

Also added some additional cleanup of media button receivers
when packages change (updated, cleared).

And on top of that, a new "media" command for doing media
things. Currently lets you send media keys and monitor
remote display data.

Oh and finally added a new BaseCommand base class for
implementing these command line utilities.

Change-Id: Iba1d56f10bab1eec4a94a7bb1d1c2ae614c8bcf5
aseCommand.java
c4aad01cbbb69c916ef323693e1fd0560b0eccba 23-Feb-2013 Dianne Hackborn <hackbod@google.com> Formalize overscan metrics.

The window manager now maintains and reports a new formal
"overscan insets" for each window, much like the existing
content and visible insets. This is used to correctly
position the various UI elements in the various combination
of layout options. In particular, this allows us to have
an activity that is using fitSystemWindows to have the content
of its UI extend out to the visible content part of the screen
while still positioning its fixed UI elements inside the
standard content rect (and the entire window extending all
the way into the overscan area to fill the screen as desired).

Okay, maybe that is not written so clearly. Well, it made
my head hurt too, so suffer!

The key thing is that windows now need to know about three
rectangles: the overall rectangle of the window, the rectangle
inside of the overscan area, and the rectangle inside of the
content area. The FLAG_LAYOUT_IN_OVERSCAN option controls
whether the second rectangle is pushed out to fill the entire
overscan area.

Also did some improvements to debug dumping in the window
manager.

Change-Id: Ib2368c4aff5709d00662c799507c37b6826929fd
omeArgs.java
9a2c2a6da90abbcc9a064c20e93ed885651f4ae1 15-Jan-2013 Jeff Sharkey <jsharkey@android.com> Parse network stats using native code.

Switch to parsing detailed network stats with native code, which
is 71% faster than ProcFileReader.

Change-Id: I2525aaee74d227ce187ba3a74dd08a2b06514deb
atteryStatsImpl.java
cae3d9f0ab2756e3659efc7a08830d2d7b43a05e 30-Jan-2013 Nick Kralevich <nnk@google.com> ZygoteInit: more dead code cleanup

ZYGOTE_FORK_MODE has been set to false since 2009, and the
code indicates that runForkMode() was "retained for reference only."
Remove this dead code. There will always be a reference to this code
in git.

Change-Id: Iddfdca8379fdc6521febea81e553de763b6f4fd0
ygoteInit.java
4ec799d4c6de7e626363659508f21ee5c3c173aa 30-Jan-2013 Nick Kralevich <nnk@google.com> Merge "Remove dead code."
40779e50f04b0d03b49836c640308061f88ff0be 30-Jan-2013 Nick Kralevich <nnk@google.com> Remove dead code.

Setting capabiltities is handled by dalvik. This code
is never called.

Change-Id: I903952c43cf60ea59ec954c9168a7604d05ccaf7
ygoteInit.java
468f6c15d2a8d6d1c60c941d7ef77efc30d9cdc1 30-Jan-2013 Nick Kralevich <nnk@google.com> ZygoteConnection.java: Remove dead code --peer-wait

The last caller of this option was removed in
system/core commit b94fd1abcbff1eacb8a2ad79c51de21ecf8f6d65

Change-Id: I9f3540c9e61b4a93038b43983fbb8badac08a2e3
ygoteConnection.java
ec6afcc69ae35a0b1f22f44a70fbe4ce5a17be41 17-Jan-2013 Elliott Hughes <enh@google.com> am 8c27d0b3: am 686fad5e: am b1e16f11: Merge "Track a typo fix in hidden libcore API."

* commit '8c27d0b3093593fe0d2c229ffcc9a35dbaf5fc59':
Track a typo fix in hidden libcore API.
686fad5e2367fe08afe6e219d460be994127fb5e 17-Jan-2013 Elliott Hughes <enh@google.com> am b1e16f11: Merge "Track a typo fix in hidden libcore API."

* commit 'b1e16f11ffd3a391be1a44a352c122b6dad1e8a5':
Track a typo fix in hidden libcore API.
26df61683a6dacc3cf193e647f9de91d683772ca 17-Jan-2013 Elliott Hughes <enh@google.com> Track a typo fix in hidden libcore API.

Change-Id: I6fa3c2ef7f4d73bbf6557560e46c7c11bff74a32
amplingProfilerIntegration.java
a06de0f29b58df9246779cc4bfd8f06f7205ddb6 12-Dec-2012 Dianne Hackborn <hackbod@google.com> New "app ops" service.

Initial implementation, tracking use of the vibrator, GPS,
and location reports.

Also includes an update to battery stats to also keep track of
vibrator usage (since I had to be in the vibrator code anyway
to instrument it).

The service itself is only half-done. Currently no API to
retrieve the data (which once there will allow us to show you
which apps are currently causing the GPS to run and who has
recently accessed your location), it doesn't persist its data
like it should, and no way to tell it to reject app requests
for various operations.

But hey, it's a start!

Change-Id: I05b8d76cc4a4f7f37bc758c1701f51f9e0550e15
atteryStatsImpl.java
ebcbfb3fc7750e2873a3e7c6c707fa4e203089b6 11-Dec-2012 Mita Yun <mitayun@google.com> am a98cd512: Merge "Use asynchronous messages for input method events." into jb-mr1-aah-dev

* commit 'a98cd5122be643a51f563d02069e8f9409d44394':
Use asynchronous messages for input method events.
ed218c706d9e91e75b94c448cee2e6150aaee57f 07-Dec-2012 Mita Yun <mitayun@google.com> Use asynchronous messages for input method events.

Improves the throughput of IME event handling by ensuring that
input events do not get serialized behind UI traversal and
drawing messages such as when the UI is animating.

Added support for creating an asynchronous Handler as part of a
HandlerCaller. It turns out we should be using an asynchronous
Handler not only in IME dispatch but also in accessibility and
wallpaper events where HandlerCaller is used. So fixed those
services to also use an asynchronous Handler.

Change-Id: I0b19140c9d5ca6ee300c1a150c48312fd55ed8eb
andlerCaller.java
58ed5d748c0b9b64845975ef5844ad313de7c3f6 07-Nov-2012 Kenny Root <kroot@google.com> am 768d9e1a: Merge "Correct executable bit for source files"

* commit '768d9e1a72ceee7d4a5f608776b87b62d6ce4a04':
Correct executable bit for source files
3a084af2e90849aaa8beb3a610189e3399c63ea0 07-Nov-2012 Kenny Root <kroot@google.com> Correct executable bit for source files

Many media files and source code files were marked as executable in Git.
Remove those.

Also a shell script and python script were not marked as executable.

Change-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5
kgUsageStats.aidl
kgUsageStats.java
b049e212ab7fe8967893c202efcb30fecfdb82fb 08-Sep-2012 Jeff Sharkey <jsharkey@android.com> Include user identifier in external storage paths.

When building external storage paths, always include user in path
to enable cross-user paths and aid debugging.

Each Zygote process continues to only have access to the appropriate
user-specific emulated storage through bind mounts. A second set of
mounts continue supporting legacy /sdcard-style paths. For example,
a process running as owner has these mount points:

/storage/emulated_legacy
/storage/emulated_legacy/Android/obb
/storage/emulated/0
/storage/emulated/obb

Since Environment is created before Zygote forks, we need to update
its internal paths after each process launches.

Bug: 7131382
Change-Id: I6f8c6971f2a8edfb415c14cb4ed05ff97e587a21
torage/ExternalStorageFormatter.java
e217ee4d7a8223289a1af7363627c69956c46d41 29-Aug-2012 Jeff Sharkey <jsharkey@android.com> Access to all users' external storage.

System services holding this permission have external storage bound
one level higher, giving them access to all users' files.

Bug: 7003520
Change-Id: Ib2bcb8455740c713ebd01f71c9a2b89b4e642832
ygoteConnection.java
2bca868361b41ff6a8228824cbecadc4c5deb44e 22-Aug-2012 Jeff Sharkey <jsharkey@android.com> Iteration on multi-user external storage.

Remove single-user bind mounts, since they need to remain as raw
mounts to correctly propagate when remounted. This means we're back
to using sdcard_r GID to enforce READ_EXTERNAL_STORAGE.

Bug: 6925012
Change-Id: I41b5d7ddc985a5df2e288632a0a80d4724089e00
ygoteConnection.java
80618d66b02d8cce325cdaa184435f43818a062b 20-Aug-2012 Kenny Root <kroot@google.com> am 7d5b22af: am f029c22f: Merge "Use Libcore.os.umask for setting umask"

* commit '7d5b22afae8525cdf80ba1bf8e18b87d597f830d':
Use Libcore.os.umask for setting umask
4c74f8c1713fa82904b10beec4da9ad8ebb97375 17-Aug-2012 Kenny Root <kroot@google.com> Use Libcore.os.umask for setting umask

Libcore.os now provides a umask method call, so just use that since it's
available.

Change-Id: I8826fa40bcab3d61a424ff98a8050d3e44f7ec34
ygoteInit.java
5b1ada2562c17921adf6a62ea62bcb445160983c 15-Aug-2012 Jeff Sharkey <jsharkey@android.com> Multi-user external storage support.

Emulated external storage always has multi-user support using paths
like "/data/media/<user_id>". Creates and destroys these paths along
with user data. Uses new ensure_dir() to create directories while
always ensuring permissions.

Add external storage mount mode to zygote, supporting both single-
and multi-user devices. For example, devices with physical SD cards
are treated as single-user. Begin migrating to mount mode instead
of relying on sdcard_r GID to enforce READ_EXTERNAL_STORAGE.

Bug: 6925012
Change-Id: I9b872ded992cd078e2c013567d59f9f0032ec02b
ygoteConnection.java
86d09388ee1b98513de40dfff5de6e7c3b24cc07 08-Aug-2012 Jean-Baptiste Queru <jbq@google.com> am bce41358: am 9ab84c20: Merge "Fix wrong count return for getPhoneSignalStrengthCount"

* commit 'bce413587973eae29a783d7e273dc2f7db06f7c9':
Fix wrong count return for getPhoneSignalStrengthCount
758143ecfedbe08cc6c4fed0ad8ad7a854194ca4 07-Aug-2012 Svetoslav Ganov <svetoslavganov@google.com> Window position not reported if the window is not moved.

1.If a window is shown but never moved the window window
is never notified for its current location. Therefore,
accessibility nodes do not contain correct bounds in
screen coordinates.

bug:6926295

Change-Id: I7df18b095d33ecafffced75aba9e4f4693b0c393
andlerCaller.java
omeArgs.java
dde331cebd87982faded6818ad5f9927ff994c96 03-Aug-2012 Dianne Hackborn <hackbod@google.com> We can now (kind-of) change screen density on the fly.

Preloaded drawables now have a density associated with them, so we
can load the correct drawable if we are using a different density.

Window manager now formally keeps track of the density for each
screen, allowing it to be overridden like you can already do with
size, and relies on this density to drive itself internally and
the configurations it reports.

There are a new set of Bitmap constructors where you provide a
DisplayMetrics so they can be constructed with the correct density.
(This will be for when you can have different windows in the same
app running at different densities.)

ActivityThread now watches for density changes, and pushes them
to the DENSITY_DEVICE and Bitmap global density values for that
process.

A new am command allows you to change the density.
ygoteInit.java
df693de4fe12f081555b449e2726e205fbd86572 27-Jul-2012 Jeff Brown <jeffbrown@google.com> Fix inconsistency in user activity types.

Looks like BatteryStats was not updated when we reduced the number
of user activity types from 7 to 3.

Change-Id: I7465f86c78baa561a6555c33f681553b870827f2
atteryStatsImpl.java
fb900813511df0706469ad340bfb0810b5a12cd7 17-Jul-2012 Catherine Liu <wlcl05@motorola.com> Fix wrong count return for getPhoneSignalStrengthCount

Test report for the time spent in each signal strength bin, along
with the number of times that bin was entered showed the result
as Bin=3 Time=3211926000 Count=0. With a non-zero Time, the Count
value 0 was wrong.

The cause of the problem was that getPhoneSignalStrengthCount() used
mPhoneDataConnectionsTimer, instead of mPhoneSignalStrengthsTimer,
to get the count.

Change-Id: I55ac1125abfcfdc105605d76d1c706ac315b90cc
atteryStatsImpl.java
287a64af979451fde58148e723ef0ff89824718e 22-Jun-2012 Kenny Root <kroot@android.com> am ae017c55: am a9543a3d: Merge "Pass additional inputs when spawning apps via the Zygote and add SELinux permission checks."

* commit 'ae017c55824ca345186b0c9fc204401153bd8a23':
Pass additional inputs when spawning apps via the Zygote and add SELinux permission checks.
ae017c55824ca345186b0c9fc204401153bd8a23 21-Jun-2012 Kenny Root <kroot@android.com> am a9543a3d: Merge "Pass additional inputs when spawning apps via the Zygote and add SELinux permission checks."

* commit 'a9543a3dad0da58f30580bdf99b76bc2ab97a2df':
Pass additional inputs when spawning apps via the Zygote and add SELinux permission checks.
a9543a3dad0da58f30580bdf99b76bc2ab97a2df 21-Jun-2012 Kenny Root <kroot@android.com> Merge "Pass additional inputs when spawning apps via the Zygote and add SELinux permission checks."
73f534a2dd324d631696ced762f5c0ab1f254f74 19-Jun-2012 Todd Poynor <toddpoynor@google.com> Battery stats: parse wakeup sources stats for android-3.4

Change-Id: I30b2362ca7260d187e8ed4e047b30c446d32ca98
atteryStatsImpl.java
6ccaa540a18a69e5343e3e4d507f341880fcde5a 16-Jun-2012 Nick Pelly <npelly@google.com> Include WIFI scan's in Battery Stats.

Call noteWifiScanStartedFromSource() when a scan is started.
Call noteWifiScanStoppedFromSource() when a scan is finished.

The current implementation tracks to UID that requested the scan, and
correctly tracks the duration of the scan. It ignores scan requests
that occur when a scan is already in progress. It does not distinguish
between active and passive scans.

Repurpose all the noteScanWifiLockAcquired/Released() plumbing
for WIFI scan tracking. The WIFI scan locks were never reported
to the user. Use noteFullWifiLock() when WIFI scan locks are used -
this makes sense because the power draw for a WIFI scan lock
should be about the same as for a full WIFI lock.

Bug: 6642581
Change-Id: Ida6e87992853698545b89f875c973a239218317d
atteryStatsImpl.java
18aa041a62d36b9f2d4ead8ca0945ec87af582b4 06-Jun-2012 Dianne Hackborn <hackbod@google.com> am 6cd19e02: Merge "Fix some divide by zero errors that could crash the system." into jb-dev

* commit '6cd19e0266b3f4277f13dab7e9a86ebdd9905ee9':
Fix some divide by zero errors that could crash the system.
cdadee630e09fc2aa966244a71bf22236f9a30a4 06-Jun-2012 Dianne Hackborn <hackbod@google.com> Fix some divide by zero errors that could crash the system.

Change-Id: I66273df84e45de59b5b161f4d13de67a9e0f46d5
rocessStats.java
3ddb4f80e5cb47173b78430399076c4c3d1bb178 04-May-2012 Jeff Sharkey <jsharkey@android.com> am c065a8af: Merge "Begin collecting xtables iface counters." into jb-dev

* commit 'c065a8af1561544f1557e3f5036e45a4be4a6d7e':
Begin collecting xtables iface counters.
e8914c36276710de50b347c1e6aecfa45d6a56cd 02-May-2012 Jeff Sharkey <jsharkey@android.com> Begin collecting xtables iface counters.

Add method to parse new iface_stat_fmt proc stats, or return null
when kernel support is unavailable. Add test and remove older, unused
parsing code. Create new "xt" recorder to persist the new xtables
counters when available.

Add SSID support to NetworkIdentity to fix policy tests.

Bug: 6422414
Change-Id: I77f70e9acb79a559ab626f3af5c4f3599801ed43
atteryStatsImpl.java
5e4f01f02d25ab921afca33c57b78e55d9e9251c 01-May-2012 Jean-Baptiste Queru <jbq@google.com> am f59d2912: am bfe71c35: Merge "statistics from some cpus don\'t fit"

* commit 'f59d2912354a6be6f6181ec945f6f657a5469fb8':
statistics from some cpus don't fit
83d9eda9c2c411e3480c52f01e192bf3c86be8e9 13-Jan-2012 Stephen Smalley <sds@tycho.nsa.gov> Pass additional inputs when spawning apps via the Zygote and add SELinux permission checks.

When spawning an app process, the ActivityManagerService has additional information
about the app package that may be useful in setting a SELinux security context on the
process. Extend the Process.start() interface to allow passing such information
to the Zygote spawner. We originally considered using the existing zygoteArgs
argument, but found that those arguments are appended after the class name and
left uninterpreted by ZygoteConnection, merely passed along to the class or wrapper.
Thus we introduce a new seInfo argument for this purpose.

Modify the ZygoteConnection to interpret the new option and convey it to
forkAndSpecialize, as well as passing the nice name as a further input.
Also modify the ZygoteConnection to apply SELinux permission checks on
privileged operations.

Change-Id: I66045ffd33ca9898b1d026882bcc1c5baf3adc17
ygoteConnection.java
ca894b396b93344ac255746e12730cb269d4d856 20-Sep-2011 Martin Wallgren <martin.wallgren@sonyericsson.com> statistics from some cpus don't fit

Cpu statistics from time_in_state does not fit
in the data structures in ProcessState.java. The
time_in_state file eventually becomes larger than
the buffer of 256 bytes witch cause missing data
in the result or a NoMoreElementsException when
parsing the data.
The numger of cpu speeds can be larger than the
MAX_SPEEDS limit.

Solution
Make sure that the whole file gets read and increase
the MAX_SPEEDS that the system can handle.

Change-Id: I6dfc127b2934988006649cce321d58750a946017
rocessStats.java
4280c4a93ea17f2e9d3f651e49d8c13dc3fb92aa 16-Mar-2012 Jeff Brown <jeffbrown@google.com> If an application calls System.exit() terminate it immediately.

There is no graceful way to kill Android application processes.
They typically have many threads running doing various things
When System.exit() is called, those threads just keep going
while the cleanup actions run until the process finally.

Performing shutdown actions can easily cause more harm than good.
For example, closing the Binder driver's file descriptor may
cause other threads waiting on Binder to wake up and then crash
in nasty ways after receiving EBADF.

So when an Android application exits, skip the cleanup and just
call _exit() to end it all.

Bug: 6168809
Change-Id: I29790c064426a0bf7dae7cdf444eea3eef1d5275
untimeInit.java
16f5f5cc9d4c480fac3dc7f176f3f1edfbd256f4 16-Mar-2012 Jeff Brown <jeffbrown@google.com> Delete useless JNI methods.

Change-Id: Ie7c7638c79fc9c6a43f45604ad9a40ebc58b93c7
untimeInit.java
14577c4df57004131174fbe435031a18f3e7996b 09-Mar-2012 Jeff Brown <jeffbrown@google.com> Should recycle TypedArray.

Change-Id: Ia318de37c22e4533fff631be816cee539a5cd83d
ygoteInit.java
dc7bf5d8bff86bed7947806c81a28aff5e9a8c3e 23-Jan-2012 Andy McFadden <fadden@android.com> Don't use bootstrap loader directly

The VM is allowed to use null to represent the bootstrap class
loader, so attempting to call methods on it is a bad idea. Use
the system class loader instead.

Change-Id: I9190848945f679d546d5fb30aba10fd27c7e5404
ygoteInit.java
418d12dc8f2c518b673ebc522de4af6f7dbf0bf3 14-Dec-2011 Jeff Sharkey <jsharkey@android.com> Avoid reading network stats when disabled.

Bug: 5518868
Change-Id: Idb5c588b018bf735597ad7ff904ecc69224dd0a0
atteryStatsImpl.java
468996c504f8bddd7c3f3b1aab89c6a561f951dc 22-Nov-2011 Amith Yamasani <yamasani@google.com> am d61b61d6: am 227a64fe: Merge "Fix an NPE on overflow in BatteryStats history." into ics-mr1

* commit 'd61b61d6f97f9f73b86e4a24a747c4451f2bc939':
Fix an NPE on overflow in BatteryStats history.
45f06460e9aeadadad27e6c87817940cd96128ef 22-Nov-2011 Amith Yamasani <yamasani@google.com> Fix an NPE on overflow in BatteryStats history.

When the battery stats buffer hits 128KB, it hits a code path
that causes an NPE. This can happen depending on usage and charging
patterns and manifest in bad ways, such as failure to boot up
or random crashes, or refusing to go to sleep.

Bug: 5645407
Change-Id: I21d5d189431f776f25bcb7d598c86e598ad8cb17
atteryStatsImpl.java
763631cd247e21b167063023e7dd1395e05ebbf6 08-Nov-2011 Jeff Brown <jeffbrown@google.com> Improve JavaDoc on AtomicFile.

Change-Id: I042fa533ea5d4adca8ae6d42dbd8de32adb34cea
tomicFile.java
c24ab866b0d46685f6ddd340b9c84375cf8d6831 19-Oct-2011 Dianne Hackborn <hackbod@google.com> Work on issue #5465917: Wakelock *overflow* held for very long times

- Fix ordering problem in sync manager that would cause its wake
locks to slightly appear in the system process when they should
be fully accounted against the app.
- Allow the system process to have more wake lock names in its
battery stats.
- In the bug report output, print totals of the wake locks for each
process, to make it easier to parse what is being printed for things
like the system process with a huge number of individual wake locks.

Change-Id: I3cf39330f22f3c51c11e65e4124150d73a7da2dd
atteryStatsImpl.java
1059c3c30ad96a15695c1a92ae8896e078a6309f 05-Oct-2011 Jeff Sharkey <jsharkey@android.com> Move battery stats to xt_qtaguid for data stats.

Replace TrafficStats calls by reading values from xt_qtaguid kernel
module. To keep BatteryStatsImpl changes lightweight, cache recently
parsed stats. Tracks mobile ifaces from ConnectivityService.

Refactor xt_qtaguid parsing into factory outside of NMS. Add stats
grouping based on UID, and total based on limiting filters like iface
prefix and UID.

Bug: 4902271
Change-Id: I533f116c434b77f93355bf95b839e7478528505b
atteryStatsImpl.java
13c7197da8a16f77f6398708a6314c80cb01e0d1 08-Sep-2011 Ben Komalo <benkomalo@google.com> Revert encryption mapping for device wipes.

External storage volumes that were emulated+encrypted needed to have
their encryption mapping removed so that it doesn't try to encrypt the
volume after formatting them.

This just wires through an argument through vold, and assumes that vold
will do the right thing even if there is no encryption mapping set.

Bug: 5017638
Change-Id: I858fae3d12cb415bc34637f520f71220ad9daaad
torage/ExternalStorageFormatter.java
e8c88e6f764a77d94b0051ea169a82a61fcc0d0e 18-Aug-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5163456: logspam/tight loop in BatteryStatsImpl

No longer use the old history code.

Change-Id: I878ffe16e0014453c46db6a4f7228a81468d8cb9
atteryStatsImpl.java
b5d55e302d2253e4bfb233ea705caf258cdc4cb9 11-Aug-2011 Jeff Sharkey <jsharkey@android.com> Foreground/background network stats using sets.

Teach NetworkStats about "counter sets" coming from kernel, and use
them to track usage in foreground/background. Add AID_NET_BW_ACCT to
system_server so it can control counter sets.

Move to composite key of NetworkIdentitySet, UID, set, and tag when
recording historical usage. Persisting still clusters by identity,
since that is heaviest object.

Request async stats poll during systemReady() to bootstrap later
delta calculations. Reset kernel counters when UID removed. Update
various tests.

Bug: 5105592, 5146067
Change-Id: Idabec9e3ffcaf212879821515602ecde0a03de8c
ygoteInit.java
8e8d65ff5fdef12c6af3d003dfef19aadc39bea9 12-Aug-2011 Dianne Hackborn <hackbod@google.com> Fix some crashes that are happening in the system process.

- When shutting down, if the screen goes to sleep there is code
that tries to do a notifyAll without holding the lock:

java.lang.IllegalMonitorStateException: object not locked by thread before notifyAll()
at java.lang.Object.notifyAll(Native Method)
at com.android.server.am.ActivityStack.checkReadyForSleepLocked(ActivityStack.java:776)
at com.android.server.am.ActivityStack$1.handleMessage(ActivityStack.java:282)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at com.android.server.ServerThread.run(SystemServer.java:603)

- If an invalid Uri object is sent to the system process it can crash because
the Uri class throws an assertion while unmarshalling. Change this to an
IllegalArgumentException so it gets sent back to the caller:

java.lang.AssertionError
at android.net.Uri$PathPart.readFrom(Uri.java:2224)
at android.net.Uri$HierarchicalUri.readFrom(Uri.java:1106)
at android.net.Uri$1.createFromParcel(Uri.java:1689)
at android.net.Uri$1.createFromParcel(Uri.java:1681)
at android.content.IContentService$Stub.onTransact(IContentService.java:53)
at android.content.ContentService.onTransact(ContentService.java:120)
at android.os.Binder.execTransact(Binder.java:338)
at dalvik.system.NativeStart.run(Native Method)

- StrictMode can try to access the first index in the stack crawl of a stack crawl
array of length 0. Not sure why this happens, but make the code more robust:

java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
at android.app.ApplicationErrorReport$CrashInfo.<init>(ApplicationErrorReport.java:341)
at android.os.StrictMode$ViolationInfo.<init>(StrictMode.java:1978)
at android.os.StrictMode$AndroidBlockGuardPolicy.startHandlingViolationException(StrictMode.java:1097)
at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1068)
at libcore.io.BlockGuardOs.read(BlockGuardOs.java:137)
at libcore.io.IoBridge.read(IoBridge.java:426)
at java.io.FileInputStream.read(FileInputStream.java:179)
at java.io.InputStream.read(InputStream.java:148)
at com.android.internal.os.ProcessStats.readFile(ProcessStats.java:804)
at com.android.internal.os.ProcessStats.getCpuSpeedTimes(ProcessStats.java:564)
at com.android.internal.os.ProcessStats.getLastCpuSpeedTimes(ProcessStats.java:545)
at com.android.server.am.ActivityManagerService.updateCpuStatsNow(ActivityManagerService.java:1470)
at com.android.server.am.ActivityManagerService.batteryNeedsCpuUpdate(ActivityManagerService.java:1522)
at com.android.internal.os.BatteryStatsImpl$MyHandler.handleMessage(BatteryStatsImpl.java:110)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at com.android.server.am.ActivityManagerService$AThread.run(ActivityManagerService.java:1302)

(Also fix this code to not cause strict mode to trigger at all, because there is
no need, because this is just reading stuff from /proc.)

- The system seems to crash during boot if it thinks it needs to rotate
the screen, when it is trying to take the freeze snapshot way too early.
There is no need to freeze the screen during boot or if the screen is off:

java.lang.NullPointerException
at android.view.Surface.init(Native Method)
at android.view.Surface.<init>(Surface.java:256)
at com.android.server.wm.ScreenRotationAnimation.<init>(ScreenRotationAnimation.java:91)
at com.android.server.wm.WindowManagerService.startFreezingDisplayLocked(WindowManagerService.java:8758)
at com.android.server.wm.WindowManagerService.startAppFreezingScreenLocked(WindowManagerService.java:3971)
at com.android.server.wm.WindowManagerService.startAppFreezingScreen(WindowManagerService.java:4003)
at com.android.server.am.ActivityRecord.startFreezingScreenLocked(ActivityRecord.java:515)
at com.android.server.am.ActivityStack.ensureActivityConfigurationLocked(ActivityStack.java:3997)
at com.android.server.am.ActivityManagerService.updateConfigurationLocked(ActivityManagerService.java:12535)
at com.android.server.am.ActivityManagerService.updateConfiguration(ActivityManagerService.java:12439)
at com.android.server.wm.WindowManagerService.systemReady(WindowManagerService.java:6161)
at com.android.server.ServerThread.run(SystemServer.java:521)

Change-Id: I85062bb5f6b0909a0f52feedaa75e7611d9d7fbd
rocessStats.java
e5168930975618a2b2b3f556c6c162a8cf6c9e34 28-Jul-2011 Jeff Sharkey <jsharkey@android.com> Grant AID_NET_BW_STATS to system service.

NetworkManagementService is reading stats /proc/ files, which are now
being protected by GID.

Bug: 5087530
Change-Id: I29b35a97ab621999544b6acc8ad4cf72ee053b79
ygoteInit.java
45ce864ef41ce90938cc34d42a8e1075f69e7a61 15-Jul-2011 Dianne Hackborn <hackbod@google.com> Move LoadAverageService to the SystemUI apk.

Change-Id: I442e264802d1e35cd7d27bae121ae75f932595b6
rocessStats.java
622c03e6cfdd37c05f225434e5b07f8db7d4521e 12-Jul-2011 Mark Brophy <mbrophy@google.com> Merge "Expose app resume times to the ApplicationProvider."
3f9dd287b99340efaaa257759e71a8f81b2ed113 09-Jul-2011 Jeff Brown <jeffbrown@google.com> Increase activity timeouts when using a wrapper process.

This patch enables the Zygote to tell the ActivityManager when
it has started a process with a wrapper attached so that the
ActivityManager can allow it extra time to start up or process
events.

This is useful when wrapping an app with Valgrind or other tools
which add significant runtime overhead.

Bug: 4584468
Change-Id: I5db6f2f15cd30b0ec40f547d2fadfa216de2926d
ygoteConnection.java
2455efebcc1e3d1e19d5de4287ac99818718029e 11-Jul-2011 Elliott Hughes <enh@google.com> SDK_INT is not "current" on unreleased builds.

This change (in combination with a dalvik change) ensures that system_server
doesn't run with JNI app workarounds turned on.

Bug: 4772166
Change-Id: Ia015aa56b5684a176de3c123e8aec7f35e7ecac5
ygoteConnection.java
9fc033083267d0c7f01e083400721b6cddb3a398 01-Jul-2011 Mark Brophy <mbrophy@google.com> Expose app resume times to the ApplicationProvider.

Add ActivityManager.getAllPackageUsageStats which returns
the PkgUsageStats object for all packages.

In UsageStatsService, remember the last resume time of each component, and
add that info to PkgUsageStats instances.

ApplicationProvider will use getAllPackageUsageStats and the new field
in PkgUsageStats to set the new SearchManager column
SUGGEST_COLUMN_LAST_USAGE_HINT for requests with the GLOBAL_SEARCH
permission.

Change-Id: I80e9b127410ed0d528515d2256787f30a953e9b0
kgUsageStats.java
e1dfcb7ab01fb991079ec1f70f75281a0ca9073e 08-Jul-2011 Elliott Hughes <enh@google.com> Pass the targetSdkVersion through to the zygote-forked dalvik.

This will let dalvik implement backwards-compatibile behaviors based on
an app's targetSdkVersion.

Bug: 4772166
Change-Id: I935c5ea9144e8b4e6e21089547287486e2234b7f
untimeInit.java
rapperInit.java
ygoteConnection.java
ygoteInit.java
ae07ecf3766c38af1c12822458b98036b28bd4c0 07-Jul-2011 Elliott Hughes <enh@google.com> Add the "debug.jni.logging" property so third-party developers can debug their JNI problems.

This turns on the super-verbose but indispensible logging of all native method
calls and all calls to JNI functions (for third-party code only). In particular,
if you have a local reference bug, you can search for the reference given in
the crash and see exactly where it came from. In every case I've seen so far,
that's pinpointed the bug exactly.

Change-Id: Ifb7ba02ae637bdd53cd8500febdcb9d4d7799bda
ygoteConnection.java
8568db534118fc14cc28100306d51626464ff319 29-Jun-2011 Jesse Wilson <jessewilson@google.com> Move socket tagging from libcore.

Change-Id: I7515896936c5bbd212c88e2801b831914219a925
untimeInit.java
ae3844527a305cef8bbd1c895b79be45a6c51dbc 28-Jun-2011 Dianne Hackborn <hackbod@google.com> Fix battery history management.

When rebooting the history time offset was not being handled
correctly, causing garbage data.

Change-Id: Ieca5a72c4c7c374bfe7f8673eed87354af148ef0
atteryStatsImpl.java
0c2313dc4f4bfaf6aa0506df4c54f25591a9e4c7 11-Jun-2011 Jeff Brown <jeffbrown@google.com> Mimic Zygote preload steps when using wrappers.

Change-Id: I45f182a952920f328d092e5ac86fc0f1c35eb6c1
rapperInit.java
ygoteInit.java
c6f1f4ac3b3f19222cb72c44e19d5251a3b46831 02-Jun-2011 Gilles Debunne <debunne@google.com> am ca6c3a2b: am 4ce6822b: am 24de44a1: Merge "ExternalStorageFormatter takes an optional StorageVolume target." into honeycomb-mr2

* commit 'ca6c3a2bba4445f492117697cb304a014a185159':
ExternalStorageFormatter takes an optional StorageVolume target.
ca6c3a2bba4445f492117697cb304a014a185159 27-May-2011 Gilles Debunne <debunne@google.com> am 4ce6822b: am 24de44a1: Merge "ExternalStorageFormatter takes an optional StorageVolume target." into honeycomb-mr2

* commit '4ce6822bc63665ca3e9d9984766f367ce4f4d3a7':
ExternalStorageFormatter takes an optional StorageVolume target.
37051cdd8624c4821bb68169be427061c48ad837 26-May-2011 Gilles Debunne <debunne@google.com> ExternalStorageFormatter takes an optional StorageVolume target.

Change-Id: Ic85689659dbf49a7fcc1b7aaf25e4a94e62848b9
torage/ExternalStorageFormatter.java
ebed7d6e35f7f960e6e6add2b8ab7c7a31a511c3 17-May-2011 Jeff Brown <jeffbrown@google.com> Support wrapping app processes to inject debug instrumentation.
Bug: 4437846

Change-Id: I4552501c693716b14714afb5c5248edaca9547ab
untimeInit.java
rapperInit.java
ygoteConnection.java
ygoteInit.java
5e3357fcee2a23a08434873a89e8ada4c6e6d893 02-May-2011 Conley Owens <cco3@android.com> Merge commit '5eb49e0f' into m

Conflicts:
core/java/com/android/internal/os/BatteryStatsImpl.java

Change-Id: Idc9c84c2ca7dec2540ceccead7927fddb912ff12
5eb49e0f1e8e03e8808d8d7da6d5ffb761400e0b 30-Apr-2011 Conley Owens <cco3@android.com> am e321d064: am 2f463ef1: Merge "Adding a sanity test in the while loop in readHistory()"

* commit 'e321d06430304fa93282c765aa6070c908121a16':
Adding a sanity test in the while loop in readHistory()
2f463ef18bb235be57b39cbda536bcd2df2d0908 29-Apr-2011 Conley Owens <cco3@android.com> Merge "Adding a sanity test in the while loop in readHistory()"
1fadab5c36445bb9f0997904dbce44f8e234f847 15-Apr-2011 Dianne Hackborn <hackbod@google.com> More battery stats improvements.

We now write to the parcel using deltas. For common situations,
it only takes 4 bytes to write a delta (new command, time delta,
significant state changes, flags indicating additional state that
follows).

Increasing the buffer size to 128K, this give us 32,768 samples
if they all fit in the smallest delta. A device that is doing
something every minute (like acquiring a wake lock or doing a
wifi scan) for our max target battery life of 30 days would
generate 43,200 samples.

Also some turning to the maximum time between samples at which
we decide to completely collapse two samples.

Change-Id: I074a698d27ccf9389f9585abfc983af2f5ba7a54
atteryStatsImpl.java
0ffc988a7f47013805d5abeed1c20f159b3bd799 14-Apr-2011 Dianne Hackborn <hackbod@google.com> Rewrite battery history storage.

We now write battery history directly into a buffer, instead of
creating objects. This allows for more efficient storage; later
it can be even better because we can only write deltas.

The old code is still there temporarily for validation.

Change-Id: I9707d4d8ff30855be8ebdc93bc078911040d8e0b
atteryStatsImpl.java
ceb889711ff182aa0635f0776fdeeb7185f3a105 08-Apr-2011 Brian Carlstrom <bdc@google.com> Merge "Tolerate missing AccountManager resource, not just missing resource name"
43a17654cf4bfe7f1ec22bd8b7b32daccdf27c09 07-Apr-2011 Joe Onorato <joeo@google.com> Remove the deprecated things from Config.java. These haven't been working since before 1.0.

Change-Id: Ic2e8fa68797ea9d486f4117f3d82c98233cdab1e
inderInternal.java
untimeInit.java
ygoteInit.java
46703b099516c383a6882815bcf9cd4df0ec538d 07-Apr-2011 Brian Carlstrom <bdc@google.com> Tolerate missing AccountManager resource, not just missing resource name

In addition to the primary change in the subject, also some minor cleanup of javadoc, typos, CloseGuard warning, etc found while working on a new AbstractAccountAuthenticator.

Change-Id: I73f3408773a43a0021a15f8d051fd3dbbdf898a5
ygoteInit.java
08065b9f09ead8895d97b2971622af8c179e1768 02-Apr-2011 Brian Carlstrom <bdc@google.com> Tracking merge of dalvik-dev to master

git cherry-pick --no-commit a80febd83c8bf0b6717da2a7136179bdc906a5b7

git cherry-pick --no-commit 5e642b41cf44c5da7afdd95ab3d5e2bdbf7b31dd

git cherry-pick --no-commit 4886db14c9eee4b6fee69bd54c57c5af04709c4c

git cherry-pick --no-commit 560c685e448769904047507b9484ce8111967d7e

git cherry-pick --no-commit 63dde7a2fcfa53dc531558635b64cea613d3cdb4

git cherry-pick --no-commit 74e5cb91060a379d98dd3a333b5f231bfb4f502e

git cherry-pick --no-commit 1cc8c9708b555e2e338b7798d38887a2fefcfea6

git cherry-pick --no-commit 09625a21f5abe0c0db15757f58585d552d62c3d7

git cherry-pick --no-commit fcb02dfe0f5a2bb7c07e6d6fc69f756a484b5458

git cherry-pick --no-commit a68cb7fa3ab42854768b8145ff85231663770292

git cherry-pick --no-commit 716beb1c131dd2c6b805d4f681debaa20075010c

git cherry-pick --no-commit 8c29b1097a7afe3a77e27546a56e396f3620a4ec

git cherry-pick --no-commit 9c6a1a55d1c8086c1cc57464eea43725694ff70c

git cherry-pick --no-commit b14f5ea5c57acdd009ba5b51f1bbe430f3d353b8

Change-Id: I8cc94175441b009e23549762d6baee1dbace4881
ygoteInit.java
ed7e00729f78d11107f0e9a7f0559dfe4be6b560 24-Mar-2011 Brian Carlstrom <bdc@google.com> SamplingProfilerIntegration and SamplingProfiler improvements (3/3)

Summary:

frameworks/base
- fix profiling to collect data beyond the first snapshot
- avoid many small files, accumulate data over process lifetime

libcore:
- add support for VM specific sampling, trying to cut down overhead
- added support for converting snapshot files to text format
- fixed race in profiler when stopping

dalvik
- added VMStack.setThreadStackTrace interface for filling a stack
trace into an existing StackTraceElement[]

Details:

frameworks/base

Changed snapshots from text to binary hprof format (bumping version to 3)
Changed from one file per snapshot to one file per process lifetime.
Restart profiling after snapshot.

core/java/com/android/internal/os/SamplingProfilerIntegration.java

Add quick test in maybeSnapshot to avoid doing work when the
SamplingProfilerIntegration is disabled. Make maybeSnapshot
private. Remove unneeded memory allocation in handleLowMemory.

core/java/android/app/ActivityThread.java

libcore

Added ThreadSampler interface. This allows VM specific thread
sampling optimizations. The portable version continues to use
Thread.getStackTrace().

dalvik/src/main/java/dalvik/system/profiler/ThreadSampler.java
dalvik/src/main/java/dalvik/system/profiler/PortableThreadSampler.java
dalvik/src/main/java/dalvik/system/profiler/SamplingProfiler.java

Add VMStack.setThreadStackTrace and use in new DalvikThreadSampler
to avoid allocating a full stack trace when only a limited depth
is desired.

dalvik/src/main/java/dalvik/system/profiler/DalvikThreadSampler.java
dalvik/src/main/java/dalvik/system/VMStack.java

Refactored BinaryHprof.readMagic out of BinaryHprofReader so it
can be used by HprofBinaryToAscii converter to probing file
types. Added magic number constant to be shared between readMagic
and BinaryHprofWriter.

dalvik/src/main/java/dalvik/system/profiler/BinaryHprof.java
dalvik/src/main/java/dalvik/system/profiler/BinaryHprofReader.java
dalvik/src/main/java/dalvik/system/profiler/BinaryHprofWriter.java
dalvik/src/main/java/dalvik/system/profiler/HprofBinaryToAscii.java

Removed unneeded HprofWriter interface. Changed to simpler static
interface to write HprofData to binary and text formats.

dalvik/src/main/java/dalvik/system/profiler/HprofWriter.java
dalvik/src/main/java/dalvik/system/profiler/AsciiHprofWriter.java
dalvik/src/main/java/dalvik/system/profiler/BinaryHprofWriter.java
dalvik/src/test/java/dalvik/system/profiler/SamplingProfilerTest.java

Added support for reading snapshot files created by
SamplingProfilerIntegration by stripping the text header to allow
easier conversion to the text format.

dalvik/src/main/java/dalvik/system/profiler/HprofBinaryToAscii.java

Fixed race between Sampler and
SamplingProfiler.stop. SamplingProfiler.stop previously simply
called the Sampler's TimerTask.cancel method, but this does not
wait for a currently running Sampler to finish. The TimerTask
documentation says the only reliable way to do this is to have the
run() cancel itself, so that is what is now done, with new code to
ensure that SamplingProfiler.stop does not return until the
Sampler has been terminated.

dalvik/src/main/java/dalvik/system/profiler/SamplingProfiler.java

dalvik

Refactored VMStack_getThreadStackTrace to create helper getTraceBuf
used to implement new VMStack_setThreadStackTrace. The new version
interface fills an existing StackTraceElement[], avoid allocating
unnecessary StackTraceElements.

vm/native/dalvik_system_VMStack.c

Refactor dvmGetStackTraceRaw to create dvmSetStackTraceRaw which
fills in an existing, potentially smaller, StackTraceElement[].

vm/Exception.c
vm/Exception.h

Change stack depths to be unsigned to avoid signed/unsigned comparison warnings.

vm/Ddm.c
vm/Exception.c
vm/Exception.h

Change-Id: I4b90255e4e1d33ea2b569321c4968b0f3369f251
amplingProfilerIntegration.java
a9602db3d5a6c9bc5a7a31b4fe3cc141235ad332 24-Mar-2011 Brian Carlstrom <bdc@google.com> Tracking SamplingProfiler change in libcore

Change-Id: Ic45a1570c01340a5406468a9d0f2a5357175fd80
amplingProfilerIntegration.java
8f4c49d86e38f423ffeccd3ccc0c493246be30d0 22-Mar-2011 Carl Shapiro <cshapiro@google.com> Merge "Remove dead code from the Zygote initialization."
f973eaae0841988e9ea8d51a3e28418d03e2be1c 22-Mar-2011 Carl Shapiro <cshapiro@google.com> Remove dead code from the Zygote initialization.

Change-Id: Iad66437d6dae01ab94cfade86f3f7416a2896728
ygoteInit.java
32de2f67ea8276086ae91cbda1d0ef06caf4b3cb 09-Mar-2011 Dianne Hackborn <hackbod@google.com> Fix issue #4068088: NPE at com.android.internal.os.BatteryStatsImpl...

...addHistoryRecordLocked(BatteryStatsImpl.java:1210)

It was doing a bunch of stuff without holding a lock!

Change-Id: Ie5b56514370e0bfc87ba7737d75e01df0859817e
atteryStatsImpl.java
f41768c5837a078239e92d8fa1d2155394e4b6ac 28-Feb-2011 Mike Lockwood <lockwood@android.com> am f7b99b32: Merge "Give system server permission to access USB. DO NOT MERGE" into gingerbread

* commit 'f7b99b32ad7a4872376355acabb5984142ba5e75':
Give system server permission to access USB. DO NOT MERGE
89e7f9fd70689e08bbaf8ea29e58ece3002414a1 28-Jul-2010 Mike Lockwood <lockwood@android.com> Give system server permission to access USB. DO NOT MERGE

Change-Id: I8d64bcaf2483eaa8690aef7ee2d1bb8ed9453fbe
Signed-off-by: Mike Lockwood <lockwood@android.com>
ygoteInit.java
22577b8d3a39c1373594ba3e4427212eee4cd6d4 24-Feb-2011 Jason Chen <jasonchen@google.com> am 5ff79c3b: Merge "DO NOT MERGE Cherry-pick of Ie4026a7c back to GB" into gingerbread

* commit '5ff79c3b06d7087153617dc973491fc890700af5':
DO NOT MERGE Cherry-pick of Ie4026a7c back to GB
9248e95a2f03afe4cded90f0209ab825f253dd37 06-Jan-2011 Dianne Hackborn <hackbod@google.com> DO NOT MERGE Cherry-pick of Ie4026a7c back to GB

Original change description follows:
-----------------------------------

Implement issue #3326435: Battery stats improvements

Keep track of discharge while screen is on vs. off.

Checkin looks like:

5,0,u,dc,1,1,1,0

The last four numbers are, from left:

- Maximum battery drain over time period.
- Minimum battery drain over time period.
- Battery drain while screen was on.
- Battery drain while screen was off.

Change-Id: Ie3cfe52df29b3f28ba8dc3350abe6cc967c76324
atteryStatsImpl.java
3d865240e776374ced4ea50e6cb7f8ac92a32640 21-Feb-2011 Per Andersson <per.andersson3@sonyericsson.com> Adding a sanity test in the while loop in readHistory()

Adding a sanity test in the while loop in readHistory() which
is useful in case the file read (batterystats.bin), is corrupt.
The file can get corrupt (missing end of file marker -1) if
writeHistory fails for some reason. Without this change
readHistory will continue looping untill an OutOfMemory is
thrown.

Change-Id: I3418d258e7cb99aa2f9d934c9449a19806499ce4
atteryStatsImpl.java
5284090631e638b916d9a453212e9dc802656a67 18-Feb-2011 Wink Saville <wink@google.com> Changes for ril.h version 6.

Change-Id: Iacd9d362c4836546ac277cf3571227d426a721aa
atteryStatsImpl.java
9fa533c26e4597edc3d09bad3bc43bf11313eab6 24-Jan-2011 Jesse Wilson <jessewilson@google.com> am e2be3416: Merge "Don\'t call broken+deprecated SamplingProfiler.writeHprofData" into honeycomb

* commit 'e2be3416f2851a5bc482ad103c771f212e88ef20':
Don't call broken+deprecated SamplingProfiler.writeHprofData
db35269ae4e6a6572156e39557a993d5b730c167 23-Jan-2011 Jesse Wilson <jessewilson@google.com> Don't call broken+deprecated SamplingProfiler.writeHprofData

http://b/3381260
Change-Id: I5cf5ef8fbac2ada3669a0f7eff42f834db6573d7
amplingProfilerIntegration.java
4bc6bb85df4f3d9ebf3d04ecad16aef3307c508f 08-Jan-2011 Dianne Hackborn <hackbod@google.com> am 97b0b7bb: am 3ea5728e: Tweak level at which we reset battery stats to 90%.

* commit '97b0b7bbd41bf3bc6095a513c329e1143300ec3a':
Tweak level at which we reset battery stats to 90%.
97b0b7bbd41bf3bc6095a513c329e1143300ec3a 07-Jan-2011 Dianne Hackborn <hackbod@google.com> am 3ea5728e: Tweak level at which we reset battery stats to 90%.

* commit '3ea5728e703554f8ba0bb3aa1367d6dc45d704bb':
Tweak level at which we reset battery stats to 90%.
c1b40e361c6cd3bdc53499f17ac09f45e6873059 06-Jan-2011 Dianne Hackborn <hackbod@google.com> Implement issue #3326435: Battery stats improvements

Keep track of discharge while screen is on vs. off.

Checkin looks like:

5,0,u,dc,1,1,1,0

The last four numbers are, from left:

- Maximum battery drain over time period.
- Minimum battery drain over time period.
- Battery drain while screen was on.
- Battery drain while screen was off.

Change-Id: Ie4026a7cc8aabb2a6d47d03d2e278aa51c2d5ddf
atteryStatsImpl.java
3ea5728e703554f8ba0bb3aa1367d6dc45d704bb 06-Jan-2011 Dianne Hackborn <hackbod@google.com> Tweak level at which we reset battery stats to 90%.

Change-Id: I81151809100912c7956536d5d47279d2c2fea8c4
atteryStatsImpl.java
f890fab5a6715548e520a6f010a3bfe7607ce56e 20-Dec-2010 Patrick Dubroy <dubroy@google.com> Ensure bitmaps aren't freed while referenced from a display list

Also removes the reference queue finalizers. They aren't necessary
anymore now that Bitmaps are allocated in the heap.
untimeInit.java
ccc714131359eb1022d8c6702b7d82ab9e93f27c 13-Dec-2010 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 78e9f4cb to master

Change-Id: I1135361e6d66f524c3f349e2bf1f31bd4191c634
78e9f4cbaece783b7b87ce3fb0a157dae766012a 13-Dec-2010 Dianne Hackborn <hackbod@google.com> am e4a59519: Fix issue #3154576: battery stats checkin should include UID -> packages+ map

* commit 'e4a5951925f16f18dae91ed65567e96528f17fee':
Fix issue #3154576: battery stats checkin should include UID -> packages+ map
e4a5951925f16f18dae91ed65567e96528f17fee 07-Dec-2010 Dianne Hackborn <hackbod@google.com> Fix issue #3154576: battery stats checkin should include UID -> packages+ map

Includes some other small fixes to battery collection and a few
other things.

Output of package info looks like this:

5,0,i,uid,1000,com.android.settings
5,0,i,uid,1000,com.android.providers.subscribedfeeds
5,0,i,uid,1000,com.android.providers.settings
5,0,i,uid,1000,com.android.server.vpn
5,0,i,uid,1000,android
5,0,i,uid,1000,com.android.systemui
5,0,i,uid,1000,com.google.android.backup
5,0,i,uid,1001,com.android.phone
5,0,i,uid,1001,com.android.providers.telephony
5,0,i,uid,1022,com.android.nfc
5,0,i,uid,10021,com.google.android.location
5,0,i,uid,10021,com.google.android.syncadapters.calendar
5,0,i,uid,10021,com.google.android.gsf
5,0,i,uid,10021,com.google.android.syncadapters.contacts
5,0,i,uid,10026,com.android.providers.downloads.ui
5,0,i,uid,10026,com.android.providers.media
5,0,i,uid,10026,com.android.providers.drm
5,0,i,uid,10026,com.android.providers.downloads
5,0,i,uid,10032,com.android.launcher
5,0,i,uid,10039,com.google.android.gm
5,0,i,uid,10041,com.google.android.gallery3d
5,0,i,uid,10049,com.android.providers.calendar

Change-Id: I9e38f254eef146339113ad270f5c6e8b60fb7a1d
atteryStatsImpl.java
d9c17cc1178bc09d30eead05bf5be7ec5a05cbe7 09-Dec-2010 Jean-Baptiste Queru <jbq@google.com> merge from gingerbread

Change-Id: I12d6ef65986db41e658bf8d476a8e18c4dd89917
e59e0309a1301908eae0075db02413fda90848d5 07-Dec-2010 Dianne Hackborn <hackbod@google.com> Add more checks for bad values to protect from corrupt files.

Change-Id: I5e282099e7c6fcc8756146fc7282eec31937af1f
atteryStatsImpl.java
3fa82a9fe89c55e4217307e06cc185812ad5a8f5 08-Dec-2010 Dianne Hackborn <hackbod@google.com> am c4b7088f: am 42a23783: Merge "Add more checks for bad values to protect from corrupt files." into gingerbread

* commit 'c4b7088f19f8111ea5f34fba41da4a93899708cd':
Add more checks for bad values to protect from corrupt files.
c4b7088f19f8111ea5f34fba41da4a93899708cd 08-Dec-2010 Dianne Hackborn <hackbod@google.com> am 42a23783: Merge "Add more checks for bad values to protect from corrupt files." into gingerbread

* commit '42a23783aaabdb4e6f37ccd822d8c85f31ba8519':
Add more checks for bad values to protect from corrupt files.
7b9c56fe0fb99207218827a569eb12fd24901193 07-Dec-2010 Dianne Hackborn <hackbod@google.com> Add more checks for bad values to protect from corrupt files.

Change-Id: I4174c358c49b93e74920b00fcfd6c68659bf7d08
atteryStatsImpl.java
b7929d654e2a204dac95225913407deeecaecdd7 08-Dec-2010 Carl Shapiro <cshapiro@google.com> Do not attempt to set the minimize heap size in the Zygote.

This parameter is now specified by the product configuration files.

Change-Id: Ia04e4393b778580c206e3122078c999ac8b326a8
ygoteInit.java
def41ec2e88a70e63590117c93476276f8d0bf4c 02-Dec-2010 Brian Carlstrom <bdc@google.com> Resurrect SamplingProfilerIntegration

1.) Change from samples per second (persist.sys.profiler_hz) to
interval between samples (persist.sys.profiler_ms) to match
underlying SamplingProfiler API. This allows samples to be taken
less often than a second, which allows lower overhead for always
on profiling.

2.) Add persist.sys.profiler_depth to control the number of frames
kept. Currently defaults to 4 which is the default hprof depth,
but often 12 is necessary even in benchmarks to get a good idea
where time is being spent.

3.) Moved SNAPSHOT_DIR creation to initialization time instead of
checking it on every sample.

4.) Used ThreadFactory to provide human readable name to writeSnapshot
Executor thread.

5.) Fixed bug where writeZygoteSnapshot was calling wrong variant of
writeSnapshot causing profiling to prevent zygote startup. Renamed
underling private writeSnapshot to writeSnapshotFile to try to
prevent future confusion.

Change-Id: Ifcfc343816b19f13a6eef2cbf25cde334d8adc3b
amplingProfilerIntegration.java
0b91729b8d75668c5593dda1e9f2e79aa7b30c81 12-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> Disable SamplingProfilerIntegration until it's fixed.

Change-Id: I685e0600414836d0caae8e37ee7e97cabeb555ce
amplingProfilerIntegration.java
c60072063823ceeba61889da511a6ae599904752 11-Nov-2010 Dianne Hackborn <hackbod@google.com> am 63f40387: am 34594e75: Merge "Fix issue #3177284: Account for wake lock power usage on Crespo" into gingerbread

* commit '63f40387d931b5cd555b4743a4d8ff4f1ccf9558':
Fix issue #3177284: Account for wake lock power usage on Crespo
63f40387d931b5cd555b4743a4d8ff4f1ccf9558 11-Nov-2010 Dianne Hackborn <hackbod@google.com> am 34594e75: Merge "Fix issue #3177284: Account for wake lock power usage on Crespo" into gingerbread

* commit '34594e75e4a7962840f34c0b57116ecf1497f118':
Fix issue #3177284: Account for wake lock power usage on Crespo
0c8b4d3f7e280da5d981651be13b8966b36bc45c 09-Nov-2010 Dianne Hackborn <hackbod@google.com> Fix issue #3177284: Account for wake lock power usage on Crespo

Change-Id: I5e3d6c4772f08277ee775dba191a5054dd5a4ca2
owerProfile.java
962a990a45a2a9f9c3002064e71f9c2fed86acf1 02-Nov-2010 Robert Greenwalt <rgreenwalt@google.com> Add some network/phone type constants.

Support for LTE (and SIP-based voice) and the stepping-stone eHPRD.

bug:3125398
Change-Id: Ied3d96fa09d9c758a82a2fd1817f55db711d1a4f
atteryStatsImpl.java
504d5e0d1fe5cec7c0398064657dab18196a7427 01-Nov-2010 Brian Carlstrom <bdc@google.com> Change SamplingProfiler to use a sampling interval instead of Hz

Change-Id: I15654f1c080215575347559a16ba40e9630371ba
amplingProfilerIntegration.java
091511b41ba1469bea46e9e56cc8e9c0c16c3a6f 27-Oct-2010 Andy McFadden <fadden@android.com> am e3e8642c: am 001c7d12: Merge "Set capabilities sooner." into gingerbread
e3e8642ce41278cf7b76424faf4c3fb69ca91e4d 27-Oct-2010 Andy McFadden <fadden@android.com> am 001c7d12: Merge "Set capabilities sooner." into gingerbread
1b4c7966b15382e9ffb2bfe6468dcef0b6d090b6 27-Oct-2010 Andy McFadden <fadden@android.com> Set capabilities sooner.

Bug 3135433.

Change-Id: I4e34b60c0a01b85ce0d80eb96ff3510604a68c71
ygoteConnection.java
ygoteInit.java
5a1e4cf83f5be1b5d79e2643fa791aa269b6a4bc 19-Oct-2010 Jaikumar Ganesh <jaikumar@google.com> Update BT APIs return type from Set to List.

Change-Id: Ia27220dd26cde13007f6938c830517ee7f6968ce
atteryStatsImpl.java
6dcab2099bbf1351934a53c05be7e4634b0ae2fd 21-Oct-2010 Dianne Hackborn <hackbod@google.com> am 153bf6c8: am e9e23405: Merge "Fix issue #3113424: Battery stats don\'t reset on Crespo" into gingerbread

Merge commit '153bf6c8d7579abca63909424a8602a0f3b8bcd4'

* commit '153bf6c8d7579abca63909424a8602a0f3b8bcd4':
Fix issue #3113424: Battery stats don't reset on Crespo
153bf6c8d7579abca63909424a8602a0f3b8bcd4 20-Oct-2010 Dianne Hackborn <hackbod@google.com> am e9e23405: Merge "Fix issue #3113424: Battery stats don\'t reset on Crespo" into gingerbread

Merge commit 'e9e23405833a5fedb6a1c2dcec87d84e39d1d13d' into gingerbread-plus-aosp

* commit 'e9e23405833a5fedb6a1c2dcec87d84e39d1d13d':
Fix issue #3113424: Battery stats don't reset on Crespo
266e607bde58aa6ee78ada6e61715c3047568b28 20-Oct-2010 Dianne Hackborn <hackbod@google.com> Fix issue #3113424: Battery stats don't reset on Crespo

Change-Id: I38cc3cdfa9cb1466fe3659f001ee57aecf9df179
atteryStatsImpl.java
027610a76e67f39e3a435d68ec785a1cf09dcf9c 18-Oct-2010 Kenny Root <kroot@google.com> resolved conflicts for merge of 964eb438 to master

Change-Id: I0c54d6b88356d8734d7f51234b0114434414502e
65202242defad10eb33a3b3277af49eb238a3f33 18-Oct-2010 Romain Guy <romainguy@google.com> am 157fa0ac: am 77c011ba: Set default heap size to 5MB.

Merge commit '157fa0aca55b8e4747f00d2b729e5e361dea7ddb'

* commit '157fa0aca55b8e4747f00d2b729e5e361dea7ddb':
Set default heap size to 5MB.
875ecaa511ce36c8044ccdf48ee2a3e69dd633fe 18-Oct-2010 Dianne Hackborn <hackbod@google.com> am 13e46665: am 736f5ec4: Merge "Work on issue #3101415: Crespo apps seem to have their UID changed over time." into gingerbread

Merge commit '13e46665ff69c1a37880762d7d611aacdf02dac7'

* commit '13e46665ff69c1a37880762d7d611aacdf02dac7':
Work on issue #3101415: Crespo apps seem to have their UID changed over time.
964eb4389bb62e4e9e7f65ef7b9307e052053679 17-Oct-2010 Dianne Hackborn <hackbod@google.com> am 42499170: Implement issue #3094621 and #3094609 - wipe sd card

Merge commit '424991704b5fb7a64f6cf0fcc3f4b1aabbf2a2e0' into gingerbread-plus-aosp

* commit '424991704b5fb7a64f6cf0fcc3f4b1aabbf2a2e0':
Implement issue #3094621 and #3094609 - wipe sd card
424991704b5fb7a64f6cf0fcc3f4b1aabbf2a2e0 16-Oct-2010 Dianne Hackborn <hackbod@google.com> Implement issue #3094621 and #3094609 - wipe sd card

3094621: add "wipe sd card" option to factory data reset
3094609: collapse unmount/format into one command

Also since we have decided that it is important to consider
the Crespo storage as internal storage, DevicePolicyManager
gets a new API to be able to wipe it. (No big deal, since
all of the work for this is now done in the implementation
of the new UI.)

Change-Id: I32a77c410f710a87dcdcbf6586c09bd2e48a8807
torage/ExternalStorageFormatter.java
157fa0aca55b8e4747f00d2b729e5e361dea7ddb 16-Oct-2010 Romain Guy <romainguy@google.com> am 77c011ba: Set default heap size to 5MB.

Merge commit '77c011ba75ee1403c9b7626e4676cd3c8746605b' into gingerbread-plus-aosp

* commit '77c011ba75ee1403c9b7626e4676cd3c8746605b':
Set default heap size to 5MB.
77c011ba75ee1403c9b7626e4676cd3c8746605b 16-Oct-2010 Romain Guy <romainguy@google.com> Set default heap size to 5MB.

Change-Id: Iac8ae3cbe6b431767776653c9f430983172cfb6f
ygoteInit.java
13e46665ff69c1a37880762d7d611aacdf02dac7 16-Oct-2010 Dianne Hackborn <hackbod@google.com> am 736f5ec4: Merge "Work on issue #3101415: Crespo apps seem to have their UID changed over time." into gingerbread

Merge commit '736f5ec476526f3431d81dec5fb695bdee27e21a' into gingerbread-plus-aosp

* commit '736f5ec476526f3431d81dec5fb695bdee27e21a':
Work on issue #3101415: Crespo apps seem to have their UID changed over time.
8718a51a5b6daab57fd55f5a6c083aa51c9f0f94 15-Oct-2010 Jesse Wilson <jessewilson@google.com> Close System.out and System.err streams when they are made unreachable.

Change-Id: I295a9b2e5eb2d4e94b042f3a51e2f39b58a47d49
http://b/3072844
untimeInit.java
8bdf5935c0db4a66ab33a10b43398d2523cfa15d 15-Oct-2010 Dianne Hackborn <hackbod@google.com> Work on issue #3101415: Crespo apps seem to have their UID changed over time.

fsync!

Change-Id: Ie6c5397202579935ac69bf61d3e7b3081ecf269c
tomicFile.java
atteryStatsImpl.java
50d3fa72d88aa4dcba4286b77439c60ab5dc7fa9 11-Oct-2010 Dianne Hackborn <hackbod@google.com> am d5423321: am 9934fa77: Merge "Fix issue #3074745: Crash in system process" into gingerbread

Merge commit 'd5423321b920be10c00fbcbc5a702f15e00693a5'

* commit 'd5423321b920be10c00fbcbc5a702f15e00693a5':
Fix issue #3074745: Crash in system process
d5423321b920be10c00fbcbc5a702f15e00693a5 08-Oct-2010 Dianne Hackborn <hackbod@google.com> am 9934fa77: Merge "Fix issue #3074745: Crash in system process" into gingerbread

Merge commit '9934fa77efab362729d0d3cb8aa0bdcd31d63ead' into gingerbread-plus-aosp

* commit '9934fa77efab362729d0d3cb8aa0bdcd31d63ead':
Fix issue #3074745: Crash in system process
f47d8f272c13f0fd264d5a71bcff1c18da10d854 08-Oct-2010 Dianne Hackborn <hackbod@google.com> Fix issue #3074745: Crash in system process

Also some tweaks to battery history collection to hopefully
improve the data we have.

Change-Id: I178a54a8c2d15cf38dcceaeef939406f50059aa4
atteryStatsImpl.java
3f03496ad97b5f60ab432bca2d17a3e07b4ade47 28-Sep-2010 Jaikumar Ganesh <jaikumar@google.com> Update code for new BT APIs.

Change-Id: I53aa17b6c2a5ee50d47df91960a7f997eb7b1107
atteryStatsImpl.java
846df9f5171c4ef32f038cca651b6b9c0b6c3083 24-Sep-2010 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 8952a448 to master

Change-Id: I9c752a5d10ae8d8e5ead1243b6abd4795204fc0b
8952a4488e81205e3013b6b456dec503e05eebd0 24-Sep-2010 Dianne Hackborn <hackbod@google.com> am 287952c3: Fix issue #3022508: Crash during media scan

Merge commit '287952c35e148811c106bc0f5036eabf20f71562' into gingerbread-plus-aosp

* commit '287952c35e148811c106bc0f5036eabf20f71562':
Fix issue #3022508: Crash during media scan
287952c35e148811c106bc0f5036eabf20f71562 23-Sep-2010 Dianne Hackborn <hackbod@google.com> Fix issue #3022508: Crash during media scan

Don't kill processes for excessive wake lock use, even if they
are in the background, as long as they have running services.

Also fix some problems with this, such as not noting the kill
in battery stats.

And add killing of processes for cpu usage as well, along with
some optimizations to computing CPU usage.

And fix BatteryWaster to be better behaving for testing these
cases.

Add new "monitor" command to am to watch as the activity manager
does stuff (so we can catch things at the point of ANR).

Finally some miscellaneous debug output for the stuff here, as
well as in progress debugging of an ANR.

Change-Id: Ib32f55ca50fb7486b4be4eb5e695f8f60c882cd1
atteryStatsImpl.java
48a781a0a5f83da7c81cf0e7230151a751740a09 21-Sep-2010 Dianne Hackborn <hackbod@google.com> am 4b187e80: am 8e1b84e7: Merge "Some battery improvements:" into gingerbread

Merge commit '4b187e804fdfdbc825e17646e82e0218e316a339'

* commit '4b187e804fdfdbc825e17646e82e0218e316a339':
Some battery improvements:
4b187e804fdfdbc825e17646e82e0218e316a339 21-Sep-2010 Dianne Hackborn <hackbod@google.com> am 8e1b84e7: Merge "Some battery improvements:" into gingerbread

Merge commit '8e1b84e7654ddeeb77a03f5eca10c6669b1cb42b' into gingerbread-plus-aosp

* commit '8e1b84e7654ddeeb77a03f5eca10c6669b1cb42b':
Some battery improvements:
ce2ef766cad1bb186ea522f76c4ac6a8bb3dfa87 20-Sep-2010 Dianne Hackborn <hackbod@google.com> Some battery improvements:

- New API for iterating over history that will allow a better implementation
in the future.
- Now do writes asynchronously.

Also improve the documentation for Activity.onRetainNonInstanceState().

Change-Id: Idf67f2796a8868eb62f288bcbb2bad29876c8554
atteryStatsImpl.java
03f3cb083d708d4d3226b80ed42c9d2876a56edc 18-Sep-2010 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 1f377298 to master

Change-Id: I0d92abae3a86792b47777f795143acc0489adfe4
1f377298e2aaf6a1736295c0413d468eb1db5091 18-Sep-2010 Dianne Hackborn <hackbod@google.com> am 58e0eefe: Improve power tracking of WIFI use.

Merge commit '58e0eefeb5e2e270e2b04369bbf29fc22abda8d5' into gingerbread-plus-aosp

* commit '58e0eefeb5e2e270e2b04369bbf29fc22abda8d5':
Improve power tracking of WIFI use.
58e0eefeb5e2e270e2b04369bbf29fc22abda8d5 16-Sep-2010 Dianne Hackborn <hackbod@google.com> Improve power tracking of WIFI use.

We now distribute "wifi started" time across all apps that are
holding WIFI locks that cause it to be started. But only when
WIFI would not normally be running. Also have a mechanism to
distribute other WIFI work that has happened across those processes
based on their use.

Also fixed a bug where we were not retaining the CPU speed step
stats across boots...!

Change-Id: I00e3153b98429166273750512cc37e7975211ab9
atteryStatsImpl.java
e746f03c6c8b8d0897d322ab524d545ace200fcd 14-Sep-2010 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 53686433 to master

Change-Id: I27004dc464f5771d3205ae5757c6eccc5b16854d
53686433a9790bcfe7211a661b26783ee12bb436 13-Sep-2010 Dianne Hackborn <hackbod@google.com> am 7e9f4eb2: Track client requests through location manager.

Merge commit '7e9f4eb2608148436cef36c9969bf8a599b39e72' into gingerbread-plus-aosp

* commit '7e9f4eb2608148436cef36c9969bf8a599b39e72':
Track client requests through location manager.
7e9f4eb2608148436cef36c9969bf8a599b39e72 11-Sep-2010 Dianne Hackborn <hackbod@google.com> Track client requests through location manager.

This fixes a problem where applications could ask the location
manager to do very heavy-weight things (like... say... update
location every minute), which would get accounted against the
system instead of the application because ultimately it is the
system making the heavy calls (wake locks, etc).

To solve this, we introduce a new class WorkSource representing
the source of some work. Wake locks and Wifi locks allow you
to set the source to use (but only if you are system code and thus
can get the permission to do so), which is what will be reported
to the battery stats until the actual caller.

For the initial implementation, the location manager keeps track
of all clients requesting periodic updates, and tells its providers
about them as a WorkSource param when setting their min update time.
The network location provider uses this to set the source on the
wake and wifi locks it acquires, when doing work because of the
update period.

This should also be used elsewhere, such as in the GPS provider,
but this is a good start.

Change-Id: I2b6ffafad9e90ecf15d7c502e2db675fd52ae3cf
atteryStatsImpl.java
8615fdc15146d27cc2d3a8efbe57f0a425b19efb 10-Sep-2010 Dianne Hackborn <hackbod@google.com> am 506d724c: Merge "DO NOT MERGE. I like\'d ctate\'s change so much I\'m doin it myself!" into gingerbread

Merge commit '506d724cc356a7ba73995ef2929c65062277c83d' into gingerbread-plus-aosp

* commit '506d724cc356a7ba73995ef2929c65062277c83d':
DO NOT MERGE. I like'd ctate's change so much I'm doin it myself!
618b8c1e988ac6c8006da66ca9e8a1e1d49c9dd5 10-Sep-2010 Dianne Hackborn <hackbod@google.com> DO NOT MERGE. I like'd ctate's change so much I'm doin it myself!

Change-Id: If571d3ff5e73252a0653c30ec40178ec1591ddd9
atteryStatsImpl.java
c6ded1ba463f78bbb3bf21dc8362d599c7722e65 10-Sep-2010 Dianne Hackborn <hackbod@google.com> am 195dc210: am a4ce31f5: Merge "Small fixes to battery stats." into gingerbread

Merge commit '195dc210cb59ba3f660e31a95334fc3fa4d3ad2c'

* commit '195dc210cb59ba3f660e31a95334fc3fa4d3ad2c':
Small fixes to battery stats.
195dc210cb59ba3f660e31a95334fc3fa4d3ad2c 10-Sep-2010 Dianne Hackborn <hackbod@google.com> am a4ce31f5: Merge "Small fixes to battery stats." into gingerbread

Merge commit 'a4ce31f5e080eae6c97e6f37040db0c7f0fc78f2' into gingerbread-plus-aosp

* commit 'a4ce31f5e080eae6c97e6f37040db0c7f0fc78f2':
Small fixes to battery stats.
b8071d790a32dc715c0fd6d4e7e1bbea6c8f7a02 10-Sep-2010 Dianne Hackborn <hackbod@google.com> Small fixes to battery stats.

Change-Id: Ibbf7c548a8e787a046de3659094cea64908e3deb
atteryStatsImpl.java
898c4dc59fd37e42960dea906ab4a5264b8b135f 09-Sep-2010 Christopher Tate <ctate@google.com> Don't crash in batterystats

The number of timers to allocate time shares to is calculated by
disregarding system-UID execution. However, the actual allocation
of time *was* considering system-UID locks as well. This wound up
trying to share time across more timers than had been counted in the
first pass, leading to divide-by-zero exceptions.

This patch changes the logic to account the time slice only to
non-system-UID entities, in keeping with the commentary.

Change-Id: I7384a3c269aea44e52bc983927f9417e11613ad5
atteryStatsImpl.java
467e8e13327bd9ad2dbabfa0a9b31f860202c7b1 08-Sep-2010 Dianne Hackborn <hackbod@google.com> am 5fdacb8a: am ee455f5a: Merge "People holding partial wake locks now get blamed for CPU usage." into gingerbread

Merge commit '5fdacb8a2818136218afdea4308ad1b10049a201'

* commit '5fdacb8a2818136218afdea4308ad1b10049a201':
People holding partial wake locks now get blamed for CPU usage.
5fdacb8a2818136218afdea4308ad1b10049a201 08-Sep-2010 Dianne Hackborn <hackbod@google.com> am ee455f5a: Merge "People holding partial wake locks now get blamed for CPU usage." into gingerbread

Merge commit 'ee455f5a9572bc0d23c3328f6c22da91dc109a50' into gingerbread-plus-aosp

* commit 'ee455f5a9572bc0d23c3328f6c22da91dc109a50':
People holding partial wake locks now get blamed for CPU usage.
0d903a84d04d241a648ec429e3a0e82c712677fd 08-Sep-2010 Dianne Hackborn <hackbod@google.com> People holding partial wake locks now get blamed for CPU usage.

For the duration of the wake lock, 50% of all CPU usage is now
accounted against the app(s) holding partial wake locks, evenly
distributed between them. This is only while the device is on
battery and screen off.

Change-Id: I3e5c978b792b6ef17bf8540705bfe8343dadd464
atteryStatsImpl.java
d0438da05cbbd0b267421ad9a5c84345c39803b3 08-Sep-2010 Dianne Hackborn <hackbod@google.com> am 75f0024c: am 6e86915e: Merge "Fixes to battery stats debug output." into gingerbread

Merge commit '75f0024cf40eadb2cdaa6ae53409c515b68f21c1'

* commit '75f0024cf40eadb2cdaa6ae53409c515b68f21c1':
Fixes to battery stats debug output.
75f0024cf40eadb2cdaa6ae53409c515b68f21c1 07-Sep-2010 Dianne Hackborn <hackbod@google.com> am 6e86915e: Merge "Fixes to battery stats debug output." into gingerbread

Merge commit '6e86915e8f5dfffa60ae5d1a4ca9aa74912fd026' into gingerbread-plus-aosp

* commit '6e86915e8f5dfffa60ae5d1a4ca9aa74912fd026':
Fixes to battery stats debug output.
b5e3165129a5871cf679a67d9e9323ffad3d4902 07-Sep-2010 Dianne Hackborn <hackbod@google.com> Fixes to battery stats debug output.

Change-Id: I32e7cad9633b8c517a74573069e426d9f835a83d
atteryStatsImpl.java
c9ad7c6dbb1d70b831cd79416cbe493ade50ed2c 01-Sep-2010 Brian Carlstrom <bdc@google.com> resolved conflicts for merge of 41e99538 to master

Change-Id: Idddb72e369f127cd74322c3c7385701c2412e343
41e99538638795e38b0a02711ceb572d67a779a3 01-Sep-2010 Brian Carlstrom <bdc@google.com> am 17510863: New Java-based SamplingProfiler

Merge commit '1751086360056bc60d00f2ed2988bc82be9e7bd9' into gingerbread-plus-aosp

* commit '1751086360056bc60d00f2ed2988bc82be9e7bd9':
New Java-based SamplingProfiler
1751086360056bc60d00f2ed2988bc82be9e7bd9 18-Aug-2010 Brian Carlstrom <bdc@google.com> New Java-based SamplingProfiler

Summary:
- libcore: new Java based SamplingProfiler
- dalvik: remove old SamplingProfiler native bits
- frameworks/base: New placeholder SamplingProfilerIntegration
- vendor/google: remove old profiler snapshot parsing code

Details:

libcore

A new 100% Java SamplingProfiler. While it has more overhead that
the old native one, the new one can actually collect more than the
current PC and frame pointer, so you can get useful context of
where your app is spending time. It currently provides ASCII hprof
format output for use with tools like PerfAnal
dalvik/src/main/java/dalvik/system/SamplingProfiler.java

Unit test for the new SamplingProfiler
dalvik/src/test/java/dalvik/system/SamplingProfilerTest.java

Add core-tests-dalvik
JavaLibrary.mk

dalvik

Removing native code that supported the old SamplingProfiler
vm/Dvm.mk
vm/native/InternalNative.c
vm/native/dalvik_system_SamplingProfiler.c

frameworks/base

Placeholder SamplingProfilerIntegration. Later plans include
generating EventStackTrace protobufs.

New SamplingProfiler does not have a global instance, so
SamplingProfilerIntegration provides one in INSTANCE. Old binary
snapshot format is temporily replaced with ASCII hprof data.
core/java/com/android/internal/os/SamplingProfilerIntegration.java

Simplified interface for zygote profile snapshotting
core/java/com/android/internal/os/ZygoteInit.java

Current SamplingProfilerIntegration does not track event loop
explicitly, but hprof information does include thread information.
core/java/android/app/ActivityThread.java

vendor/google

Removing code for parsing old SamplingProfiler snapshot format
tools/samplingprofiler/Android.mk
tools/samplingprofiler/NOTICE
tools/samplingprofiler/profiler.iml
tools/samplingprofiler/profiler.ipr
tools/samplingprofiler/pull-snapshots.sh
tools/samplingprofiler/sorttable.js
tools/samplingprofiler/src/com/android/profiler/PrintHtml.java
amplingProfilerIntegration.java
ygoteInit.java
37a1e2370f763cb2e4411f81e44857fa55051df6 24-Aug-2010 Dianne Hackborn <hackbod@google.com> am a3ece8bd: am 32519259: Merge "Fix a few small battery stats problems:" into gingerbread

Merge commit 'a3ece8bde37acd81b08c4e3c1cb0e6d006ade3e0'

* commit 'a3ece8bde37acd81b08c4e3c1cb0e6d006ade3e0':
Fix a few small battery stats problems:
a3ece8bde37acd81b08c4e3c1cb0e6d006ade3e0 20-Aug-2010 Dianne Hackborn <hackbod@google.com> am 32519259: Merge "Fix a few small battery stats problems:" into gingerbread

Merge commit '325192593b057f4360e1abddf490b4fae7d60b12' into gingerbread-plus-aosp

* commit '325192593b057f4360e1abddf490b4fae7d60b12':
Fix a few small battery stats problems:
99d0452ddc0a0435030a462bda9f4d57b58bad9a 20-Aug-2010 Dianne Hackborn <hackbod@google.com> Fix a few small battery stats problems:

- Actually aggregate discharge amounts.
- Actually print the unplugged battery info when currently plugged in.

Change-Id: I22dd6feb73ac1364eb169d3239ce403b0755bb6c
atteryStatsImpl.java
a10382b67dc14ffe43cd6da56a5cffebfa470870 17-Aug-2010 Dianne Hackborn <hackbod@google.com> am 2e47052f: am 567722ee: Merge "Fix problems with determining when to kill apps for wake usage." into gingerbread

Merge commit '2e47052fc4ad3439adc2322fd953fd58a85d457c'

* commit '2e47052fc4ad3439adc2322fd953fd58a85d457c':
Fix problems with determining when to kill apps for wake usage.
0a56fdc1400db3d31bff3a18bde7e509111d9b90 17-Aug-2010 Dianne Hackborn <hackbod@google.com> am 66b0343e: am a8d9291d: Merge "Various battery info things:" into gingerbread

Merge commit '66b0343e9e32203cdd39b854852cf575ca2fcd6b'

* commit '66b0343e9e32203cdd39b854852cf575ca2fcd6b':
Various battery info things:
2e47052fc4ad3439adc2322fd953fd58a85d457c 16-Aug-2010 Dianne Hackborn <hackbod@google.com> am 567722ee: Merge "Fix problems with determining when to kill apps for wake usage." into gingerbread

Merge commit '567722eee190f7cf88dc7ea95167db76d5514842' into gingerbread-plus-aosp

* commit '567722eee190f7cf88dc7ea95167db76d5514842':
Fix problems with determining when to kill apps for wake usage.
1ebccf531d1049853b3b0630035434619682c016 15-Aug-2010 Dianne Hackborn <hackbod@google.com> Fix problems with determining when to kill apps for wake usage.

Also improve debug printing of various times.

Change-Id: Ifcc288fd1bcbf44c069875ba97925b9e7ffe9a48
atteryStatsImpl.java
66b0343e9e32203cdd39b854852cf575ca2fcd6b 14-Aug-2010 Dianne Hackborn <hackbod@google.com> am a8d9291d: Merge "Various battery info things:" into gingerbread

Merge commit 'a8d9291d7f93d1aa0d24d71d65c7de2894812177' into gingerbread-plus-aosp

* commit 'a8d9291d7f93d1aa0d24d71d65c7de2894812177':
Various battery info things:
9adb9c3b10991ef315c270993f4155709c8a232d 13-Aug-2010 Dianne Hackborn <hackbod@google.com> Various battery info things:

- Now track wake locks in battery history.
- Now track sensors in battery history.
- Some filtering of sensory data.
- Fixes to some data that wasn't cleared when resetting battery stats.
- Print amount discharged since last charge.

And the big part -- keep track of wake locks held per process,
and kill processes that hold wake locks too much while they are in
the background. This includes information in the battery stats
about the process being killed, which will be available to the
developer if the app is reported.

Change-Id: I97202e94d00aafe0526ba2db74a03212e7539c54
atteryStatsImpl.java
02890fd0f98b3b8d98baf0bda1ea906afd723d8b 07-Aug-2010 Romain Guy <romainguy@google.com> Replace Bitmap's finalizers with PhantomReferences.

This change also removes the use of SoftReferences for View's
drawing cache.

A bitmap now creates a PhantomReference enqueued in a reference
queue provided by the new Finalizers class. This queue is polled
from a thread started after forking zygote. That thread is in charge
of clearing the references after GC runs and of calling reclaim()
on them. The reclaim() method is now how finalizers are run.

Note that a PhantomReference cannot be kept in the instance it
refers to, which is why they are kept in a separate List.

Change-Id: If3c1a5e9dc23fa49e34857860d730f5cf5ad5926
untimeInit.java
90960e87ecae696f73ae18e46c2f003fc3f592cc 06-Aug-2010 Mike Lockwood <lockwood@android.com> Set umask of system server to 0077

This matches the previous behavior of java.io.File file and directory creation.

BUG: 2898660

Change-Id: Ie8978a3fc44abfd22f8046e66742e715354220a8
Signed-off-by: Mike Lockwood <lockwood@android.com>
ygoteInit.java
1b7e4d5adcc2737bc11bfbf42a88a02d6df984e0 05-Aug-2010 Brian Carlstrom <bdc@google.com> am 4ae1e382: Merge "Tracking merge of dalvik-dev to gingerbread" into gingerbread

Merge commit '4ae1e382f4b6c5bb9e757f35f82ad48dc02c32af' into gingerbread-plus-aosp

* commit '4ae1e382f4b6c5bb9e757f35f82ad48dc02c32af':
Tracking merge of dalvik-dev to gingerbread
3c7c351a6217ac48b741740167c201a679a0ca65 05-Aug-2010 Brian Carlstrom <bdc@google.com> Tracking merge of dalvik-dev to gingerbread

git cherry-pick --no-commit f77cf7f0
git cherry-pick --no-commit c8f503b5285e30c1a881d0ba860ba9021f57d113
git cherry-pick --no-commit 570bb561
git cherry-pick --no-commit e2417541
git cherry-pick --no-commit e4d81f25bd4dc1a5c909b56ab56a56406290da30
git cherry-pick --no-commit 5e8a587d

Change-Id: I101a385d43f3e0f4ce5352217f92ef67a3908c88
ygoteInit.java
15d6184be7cd8dc3c0f6b8f703d4d5c30cab2b7b 29-Jul-2010 Romain Guy <romainguy@android.com> am ff74e22b: am ce3ac5f0: Merge "Corrected buffer overflow when parsing /proc/wakelocks"

Merge commit 'ff74e22b59f8157580953fcd69e3c32aa8f68eb2'

* commit 'ff74e22b59f8157580953fcd69e3c32aa8f68eb2':
Corrected buffer overflow when parsing /proc/wakelocks
ff74e22b59f8157580953fcd69e3c32aa8f68eb2 29-Jul-2010 Romain Guy <romainguy@android.com> am ce3ac5f0: Merge "Corrected buffer overflow when parsing /proc/wakelocks"

Merge commit 'ce3ac5f02970fcab91e16ecb573931d209b1985c' into gingerbread-plus-aosp

* commit 'ce3ac5f02970fcab91e16ecb573931d209b1985c':
Corrected buffer overflow when parsing /proc/wakelocks
ce3ac5f02970fcab91e16ecb573931d209b1985c 29-Jul-2010 Romain Guy <romainguy@android.com> Merge "Corrected buffer overflow when parsing /proc/wakelocks"
037a086b164c376d8c428a2a584a3460bf82590f 28-Jul-2010 Mike Lockwood <lockwood@android.com> Give system server permission to access USB.

Change-Id: Id88603a5555b37b437f5333acf78dac3c5ffbce3
Signed-off-by: Mike Lockwood <lockwood@android.com>
ygoteInit.java
48b9cbb046d7fc546e5e4c08f772ddb8ef528ed3 26-Jul-2010 Dianne Hackborn <hackbod@google.com> am 443d884e: am 3bee5af8: Battery stats: start removing last stats, keep total discharge.

Merge commit '443d884e16fad2e01a97aa788d4b30de53c94048'

* commit '443d884e16fad2e01a97aa788d4b30de53c94048':
Battery stats: start removing last stats, keep total discharge.
443d884e16fad2e01a97aa788d4b30de53c94048 26-Jul-2010 Dianne Hackborn <hackbod@google.com> am 3bee5af8: Battery stats: start removing last stats, keep total discharge.

Merge commit '3bee5af8162c177f8c8f4199489a401058ab26a9' into gingerbread-plus-aosp

* commit '3bee5af8162c177f8c8f4199489a401058ab26a9':
Battery stats: start removing last stats, keep total discharge.
3bee5af8162c177f8c8f4199489a401058ab26a9 23-Jul-2010 Dianne Hackborn <hackbod@google.com> Battery stats: start removing last stats, keep total discharge.

Change-Id: I59c4bcbb9893adb237017add76b83c22153f94ef
atteryStatsImpl.java
ca48433afc9fab2a8c0b9913bcf3f525d75ed97f 20-Jul-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: I1901177e8a4bd32a707020c581f25f21349ba571
798e2d3d0c80e269ead1489dbc3f2f762f1e52b5 17-Jun-2010 Christian Mehlmauer <FireFart@gmail.com> Replaced /sdcard with Environment.getExternalStorageDirectory()

Change-Id: Id789f44a8569e307b1b7ab15eb266c9ce7ef2029
amplingProfilerIntegration.java
3372f2e259247810627fd22033406163284f4f64 30-Jun-2010 Johannes Carlsson <johannes.carlsson.x@sonyericsson.com> Corrected buffer overflow when parsing /proc/wakelocks

The android_os_Process_parseProcLineArray in android_util_Process.cpp
writes up to buffer[endIndex]. This sometimes caused an assert to be
triggered in NewStringUTF when the output from /proc/wakelocks was
larger than 4096 bytes. The buffer was also increased in order to be
able to parse all wakelocks completely.

Change-Id: Idf8e66d61ad979377569048f59c3eee278b146db
atteryStatsImpl.java
169741b70880607701d704262dd9b386fcfd083d 27-May-2010 Amith Yamasani <yamasani@google.com> DO NOT MERGE: Add a battery capacity value to the power profile.

Can be accessed through PowerProfile.getBatteryCapacity()

Individual device profiles need to be updated with their capacities.

(merged from master)

Change-Id: Ie76ab6de47c44807a46934331665e077a7226566
owerProfile.java
f92f8686f982c62a609a2087383a77a24d126992 23-Jun-2010 Dianne Hackborn <hackbod@google.com> am 98f7aed6: am 1e4b9f39: Remove InputConsumer, replacing with InputQueue.

Merge commit '98f7aed66b54c365f816fe990de978f61155cde1'

* commit '98f7aed66b54c365f816fe990de978f61155cde1':
Remove InputConsumer, replacing with InputQueue.
1e4b9f3936d6f357e89360293e05a0e16d5fa440 23-Jun-2010 Dianne Hackborn <hackbod@google.com> Remove InputConsumer, replacing with InputQueue.

Change-Id: Ib06907278457aaee842b123adc072840ca3602d8
atteryStatsImpl.java
e2e97ce1161e5bf89ef8b5ce6a12be0f16dea23e 17-Jun-2010 Dianne Hackborn <hackbod@google.com> am 9a1034aa: am 6b7b4845: Various improvements to battery stats collection

Merge commit '9a1034aa9746b94ecb659ea849765a160bdf747e'

* commit '9a1034aa9746b94ecb659ea849765a160bdf747e':
Various improvements to battery stats collection
6b7b4845212b3a439c527f2e1eca205b6b45fceb 15-Jun-2010 Dianne Hackborn <hackbod@google.com> Various improvements to battery stats collection

We now clear the battery stats when unplugging after the
battery is full. This allows us to use the "total" stats as
a new "since last charged" stat. Total is gone. I never used
it, it was worthless. Since last charged is a lot more
interesting.

The battery history now collects a lot more stats, and keeps
control over how much it can collect. Printing is now more
descriptive.

The kinds of stats have been renamed to SINCE_UNPLUGGED and
SINCE_DISCHARGED. The other two stats are still there, but
no longer printed; a future change will eliminate them
completely along with all of their state.

Change-Id: I4e9fcfcf8c30510092c76a8594f6021e9502fbc1
atteryStatsImpl.java
bde75706592c77379fb6546283e733abaca6fe04 28-May-2010 Sen Hu <senhu@google.com> wire up sampling profiler to dropbox

When system property "persist.sys.profiler_hz" > 0, SamplingProfilerService is
loaded to SystemServer. It creates a FileObserver, watching any new file in the snapshot
directory. When a snapshot is found, it is put in dropbox and deleted after that.

SamplingProfilerIntegration writes snapshots with headers. Headers are <name, value> pairs,
instantiated by caller.

Currently header format is (also in source comment):

Version: <version number of profiler>\n
Process: <process name>\n
Package: <package name, if exists>\n
Package-Version: <version number of the package, if exists>\n
Build: <fingerprint>\n
\n
<the actual snapshot content begins here...>

BUG=2732642

Change-Id: I2c1699f1728e603de13dbd38f9d8443cd3eecc06
amplingProfilerIntegration.java
cf0a99910cf87b148fe3143686262a8371d2dbc1 11-Jun-2010 Dianne Hackborn <hackbod@google.com> am 4d4f265e: am 9f8cc518: Merge "Adjust activity manager process OOM adj." into kraken

Merge commit '4d4f265e6b6ccfc239150bd71aa2ce2b8de6237f'

* commit '4d4f265e6b6ccfc239150bd71aa2ce2b8de6237f':
Adjust activity manager process OOM adj.
32907cfb38bda2d3c052cf5139c5b592678fedbb 11-Jun-2010 Dianne Hackborn <hackbod@google.com> Adjust activity manager process OOM adj.

Modify OOM adj classes a bit, to take into account the new
heavy weight app type, and give "foreground services" their
own category to have a bettery chance to manager them when
things go wrong.

Also add some new code to battery stats to keep a history
of changes to the battery level.

Change-Id: I29f5ab6938777e1a7eafd7d8c38b5e564cc9f96a
atteryStatsImpl.java
b60c941811cc15ab34fcc2f038aba56f862659b8 11-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> resolved conflicts for merge of f37cbe6b to master

Change-Id: I529b17e55b9668f900f685f92e9831e14a82db05
438d0595121a7a2cdf19741e76e3c0e21a5c173d 10-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> Introduce "StrictMode"

This is a new public API for developers to opt-in to strict rules
about what they're allowed to do on certain threads. (this is the
public face of the @hide dalvik.system.BlockGuard, added recently...)

In practice this will be used for developers to opt-in to declaring
that they don't want to be allowed to do various operations (such as
disk I/O or network operations) on their main UI threads. (these
operations are often accidental, or even when they are fast come with
a good chance of being slow or very slow in some cases....)

Implementation wise, this is just a thread-local integer that has a
bitmask of the things that aren't allowed, and more bits for saying
what the violation penalty is. The penalties, of which multiple can
be chosen, include:

* logging
* dropbox uploading for analysis/reporting
* annoying dialog
* full-on crashing

These are all only very roughly implemented at this point, but all
parts now minimally work end-to-end now, so this is a good checkpoint
commit before this gets too large.

Future CLs will polish all the above 4 penalties, including
checksumming of stacktraces and minimizing penalties for duplicate
violations.

Change-Id: Icbe61a2e950119519e7364030b10c3c28d243abe
untimeInit.java
e2417541b4c1c0954295dd77d6c95512f99a9f91 03-Jun-2010 Jesse Wilson <jessewilson@google.com> Preloaded class list problems shall no longer break the build.

This list is mechanically generated and its a waste of engineering
effort to manually edit this list when a class is deleted or renamed.

Change-Id: Ia8b6ae004678df2c5e2c268742c3a2d7c6a10db3
ygoteInit.java
bed865932f00eb503c775f03043413e34b0077de 27-May-2010 Amith Yamasani <yamasani@google.com> Add a battery capacity value to the power profile.

Can be accessed through PowerProfile.getBatteryCapacity()

Individual device profiles need to be updated with their capacities.
owerProfile.java
e5795610bdc97aebfaa863b5134294aed5c7c1f2 05-Apr-2010 Amith Yamasani <yamasani@google.com> Fix a crash in BatteryStatsImpl, due to a previous fix.

This is probably the real fix for the original bug. The last line was probably not
well formed and resulted in an overrun in the native code.

Bug: 2564824
Change-Id: I8a9cc267f8045a61eff4b5d532258afa32a8b837
atteryStatsImpl.java
2098eadfba7aba5d667579222f0fac76d1235ff0 02-Apr-2010 Amith Yamasani <yamasani@google.com> Potential fix for bug: 2564824 : Device runtime restart in BatteryService

Look for corrupted bytes and replace with ?

If the problem is in the parsing code, then this will not help.

Change-Id: If33643f126a4099d4113e37760c6ef74683fe97e
atteryStatsImpl.java
4cee725b1fd3958d850fc83214797f76d5f6b468 19-Mar-2010 Christopher Tate <ctate@google.com> Use atomic++ rather than lock/++/unlock in the input dispatch code path

Decouples the input dispatch thread from the battery-stats object lock regime,
to avoid the possibility of ever blocking the input dispatch thread on its
behalf. The stats object is widely used and can sometimes be locked for a
very long time (on the order of seconds) during certain extensive dump
operations.

This change does not alter the data format of the battery stats' externalized
representations.

Fixes bug #2530346

Change-Id: Iee288be3bf4936641b532dceecb8f6de8f552bf0
atteryStatsImpl.java
1afd1c90ebe789b8d3a137004127a50d2db7e3b5 19-Mar-2010 Dianne Hackborn <hackbod@google.com> Maybe fix issue #2457218: Corrupt batterystats.bin file preventing phone boot - LIBtt68127

No steps to repro, but makes the code more robust by using the standard
JournaledFile class and doing sanity checks on the input it reads.

This required moving the JournaledFile class in to the framework (and
we really should get rid of either it or AtomicFile, but they have
different recovery semantics so that is tough). Also went through and
cleaned up the file management in various places.

Change-Id: Ieb7268d8435e77dff66b6e67bb63b62e5dea572e
tomicFile.java
atteryStatsImpl.java
c9421ba1f46d9f9aeee833e1fde2cc263b058411 12-Mar-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2492387: system server crash in WallpaperManagerService

Also move some of the important framework error logs over to Slog.

Change-Id: If6697c3e4f18498612ebd7b0e4e4f042fd713372
untimeInit.java
15a4d2ffd04dc6c70f2cd17dae12ac6bc14c69ab 12-Mar-2010 Kenny Root <kroot@google.com> Add correct copyright headers to multiple files

Format for the list of changes shows the origin commit reference followed
by the file name.

33931-p9 awt/org/apache/harmony/awt/gl/font/AndroidGlyphVector.java
33931-p9 awt/org/apache/harmony/awt/gl/image/PngDecoderJava.java
133776-p9 core/java/android/app/IntentService.java
127013-p9 core/java/android/appwidget/AppWidgetHost.java
27863-p9 core/java/android/bluetooth/BluetoothAudioGateway.java
60765-p9 core/java/android/content/SyncResult.java
43920-p9 core/java/android/content/pm/ActivityInfo.java
43920-p9 core/java/android/content/pm/ApplicationInfo.java
43920-p9 core/java/android/content/pm/InstrumentationInfo.java
43920-p9 core/java/android/content/pm/PackageInfo.java
44103-p9 core/java/android/content/pm/PackageItemInfo.java
68960-p9 core/java/android/content/pm/PackageStats.java
43920-p9 core/java/android/content/pm/ResolveInfo.java
43920-p9 core/java/android/content/pm/ServiceInfo.java
60641-p9 core/java/android/content/res/Configuration.java
60734-p9 core/java/android/content/res/TypedArray.java
137672-p9 core/java/android/inputmethodservice/ExtractButton.java
123112-p9 core/java/android/inputmethodservice/ExtractEditText.java
119291-p9 core/java/android/inputmethodservice/IInputMethodSessionWrapper.java
112946-p9 core/java/android/inputmethodservice/IInputMethodWrapper.java
115078-p9 core/java/android/os/BatteryStats.java
124790-p9 core/java/android/text/style/UpdateAppearance.java
45083-p9 core/java/android/view/RawInputEvent.java
101491-p9 core/java/android/view/inputmethod/EditorInfo.java
114701-p9 core/java/android/view/inputmethod/ExtractedText.java
123112-p9 core/java/android/view/inputmethod/ExtractedTextRequest.java
119291-p9 core/java/com/android/internal/os/HandlerCaller.java
129279-p9 core/java/com/android/internal/os/PkgUsageStats.java
114701-p9 core/java/com/android/internal/view/IInputConnectionWrapper.java
114701-p9 core/java/com/android/internal/view/InputConnectionWrapper.java
84364-p9 opengl/java/android/opengl/EGLLogWrapper.java
11355-p9 opengl/tools/glgen/src/CFunc.java
11355-p9 opengl/tools/glgen/src/CType.java
11355-p9 opengl/tools/glgen/src/CodeEmitter.java
11355-p9 opengl/tools/glgen/src/GenerateGL.java
11355-p9 opengl/tools/glgen/src/JFunc.java
11355-p9 opengl/tools/glgen/src/JType.java
11355-p9 opengl/tools/glgen/src/JniCodeEmitter.java
11355-p9 opengl/tools/glgen/src/ParameterChecker.java
57236-p9 services/java/com/android/server/status/AnimatedImageView.java
66754-p9 services/java/com/android/server/status/CloseDragHandle.java
57188-p9 services/java/com/android/server/status/DateView.java
46928-p9 services/java/com/android/server/status/ExpandedView.java
70590-p9 services/java/com/android/server/status/FixedSizeDrawable.java
45968-p9 services/java/com/android/server/status/IconData.java
57470-p9 services/java/com/android/server/status/IconMerger.java
82719-p9 services/java/com/android/server/status/LatestItemView.java
45968-p9 services/java/com/android/server/status/NotificationData.java
66754-p9 services/java/com/android/server/status/NotificationLinearLayout.java
57458-p9 services/java/com/android/server/status/NotificationViewList.java
45968-p9 services/java/com/android/server/status/StatusBarException.java
45968-p9 services/java/com/android/server/status/StatusBarIcon.java
46130-p9 services/java/com/android/server/status/StatusBarNotification.java
45968-p9 services/java/com/android/server/status/StatusBarView.java
46199-p9 services/java/com/android/server/status/Ticker.java
62286-p9 services/java/com/android/server/status/TickerView.java
57188-p9 services/java/com/android/server/status/TrackingView.java
86041-p9 telephony/java/android/telephony/PhoneStateListener.java
87020-p9 telephony/java/com/android/internal/telephony/TelephonyIntents.java
136269-p9 telephony/java/com/android/internal/telephony/gsm/SpnOverride.java
34409-p9 tests/FrameworkTest/src/com/android/frameworktest/FrameworkTestApplication.java
55717-p9 tests/FrameworkTest/src/com/android/frameworktest/performance/InvalidateCycle.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityLandscape.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityPortrait.java
129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScan.java
129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResize.java
129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScan.java
129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollableResize.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityPanScan.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityResize.java
127341-p9 tests/ImfTest/src/com/android/imftest/samples/ButtonActivity.java
129347-p9 tests/ImfTest/src/com/android/imftest/samples/DialogActivity.java
129372-p9 tests/ImfTest/src/com/android/imftest/samples/EditTextActivityDialog.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScan.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScan.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollResize.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivityNotSelected.java
128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivitySelected.java
25959-p9 tests/framework-tests/src/android/test/FrameworkTests.java
46162-p9 tests/framework-tests/src/com/android/internal/http/multipart/MultipartTest.java
77101-p9 tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/NinePatchTest.java
9788976b1465ce982b5ae7c741345edd0ecd9322 core/java/android/accounts/AuthenticatorDescription.java
53332883543868fb83e111a07306368b7772b340 core/java/android/app/UiModeManager.java
93e7e22ec91dbc641d10ca6d70423e1357a95bba core/java/android/app/FullBackupAgent.java
328c0e7986aa6bb7752ec6de3da9c999920bb55f core/java/android/content/CursorEntityIterator.java
307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncQueue.java
307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncOperation.java
eb034652c2037a47ebfd99779e8383bb8bb528af core/java/android/content/pm/LabeledIntent.java
49237345d83e62fdb9eb8d50b13ad086636a04fa core/java/android/content/pm/FeatureInfo.java
a2b6c3775ed6b8924232d6a01bae4a19740a15f8 core/java/android/content/pm/PackageInfoLite.java
3ecd5f437580e49d80beecd29489d5fb1f7a7db0 core/java/android/content/pm/RegisteredServicesCacheListener.java
5ebbb4a6b3e16f711735ae0615b9a9ea64faad38 core/java/android/content/pm/XmlSerializerAndParser.java
c4516a7b62de525e3d6d5e76851bdfaf12c11f05 core/java/android/database/sqlite/SQLiteTransactionListener.java
9bbc21a773cbdfbef2876a75c32bda5839647751 core/java/com/android/internal/backup/LocalTransport.java
21f1bd17b2dfe361acbb28453b3f3b1a110932fa core/java/com/android/internal/content/PackageMonitor.java
4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseSurfaceHolder.java
4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseIWindow.java
e540833fdff4d58e37c9ba859388e24e2945ed45 core/java/com/android/internal/os/SamplingProfilerIntegration.java
192ab903887bbb8e7c7b6da5c581573850e30f46 core/tests/coretests/src/android/widget/expandablelistview/PositionTesterContextMenuListener.java
1619367ab823150fa8856d419abe02ceb75886f1 media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaProfileReader.java
27f8002e591b5c579f75b2580183b5d1c4219cd4 opengl/tools/glgen/stubs/gles11/glGetString.java
560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.java
560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetShaderInfoLog.java
560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glShaderSource.java
1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GenerateGLES.java
1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/Jsr239CodeEmitter.java
1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GLESCodeEmitter.java
69e21f5f6e0d04539cd92848ea009dd615d88c2c opengl/tests/gldual/src/com/android/gldual/TriangleRenderer.java
c028be4f3b8c7476b46859f66c3f33d528adf181 packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerMeasurement.java
7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestActivity.java
7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestRunner.java
df8a3f31d871db25e952972c2eb346a71186e9e3 tests/BrowserTestPlugin/src/com/android/testplugin/TestPlugin.java
cfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ActivityManagerPermissionTests.java
cfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ServiceManagerPermissionTests.java
cfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java

Copyright header moved to top in following file:

core/tests/coretests/src/android/widget/ListViewTest.java

Change-Id: I3c3198be5a0ba36e18679ed834170432bf0b8418
andlerCaller.java
kgUsageStats.java
amplingProfilerIntegration.java
2269d1572e5fcfb725ea55f5764d8c3280d69f6d 25-Feb-2010 Dianne Hackborn <hackbod@google.com> Re-arrange android-common so framework no longer links with it.

This is the framework part, moving classes around so the framework
no longer needs to link to android-common. Makes some APIs public,
others that didn't need to be public are private in the framework,
some small things are copied.
owerProfile.java
9e0f5d9a63ba88c2bf69df0557f8c9696db370c4 23-Feb-2010 Dianne Hackborn <hackbod@google.com> Fix some random bugs.

2185256: After open &close of device keyboard shortcut does not added to Home desktop.

ActivityThread was losing the last saved state when restarting or launching into
a paused state.

2366174: defaults not cleared when they should be

PackageManagerService now removes any preferred activity records for a package
when it is uninstalled.

2154556: Battery stats can have an unbounded number of wake locks

We now start combining wake locks into one shared record when we hit a
maximum limit (currently 20).

2442519: Foreground services can have no notification by providing a bogus one.

If the notification manager rejects our notification, the service is forced to
no longer be in the foreground.

2442383: Finalization issues in com.android.server.am.PendingIntentRecord.java

Cleaned up finalization to call super class and avoid the big activity manager
lock (we still need to use the locks inside of the message system, but these
are much less likely to be a problem).

2284190: Cannot call a phone number using adb

We weren't getting the calling uid/pid in startActivity() if the caller did not
supply an application record.
atteryStatsImpl.java
1c9131c91f27c8258dfad0a92cee105275f5422a 13-Feb-2010 Dan Egnor <egnor@google.com> Remove all traces of the old checkin service (and its associated parental
control interfaces) from the framework.
untimeInit.java
23085b781e145ed684e7270af1d5ced6800b8eff 09-Feb-2010 Ben Cheng <bccheng@android.com> Support per-application switch to execute the VM in safe mode.

The new attribute can be set by adding android:safeMode="true"
in AndroidManifest.xml with the SDK.

Tested with pairing locally compiled SDK with Eclipse and verified that the JIT
(the only component currently included in the safe mode) is indeed disabled
with the new attribute.

Bug: 2267583
ygoteConnection.java
18d200fd2aa26e4c9b6ca7c38bb5fd6b81e40259 02-Feb-2010 Mike Chan <mike@android.com> BatteryStatsImpl: initalize audio timer

Signed-off-by: Mike Chan <mike@android.com>
atteryStatsImpl.java
0b3533ae838811d15afb1017144dfbf7c41df4a8 20-Jan-2010 Barry Hayes <bhayes@google.com> Check the boolean value for the arg to ZygoteInit to make sure it's either true or false.
Make a slightly more informative usage message.
Give developers a slightly easier way to have their preloaded classes list out of sync without blowing up.
ygoteInit.java
1af33d0ddc2f50ade146e4d48e2feb6f1d553427 05-Jan-2010 Doug Zongker <dougz@android.com> add recovery system interface to API

Adds android.os.RecoverySystem (marked as pending) to replace the
(hidden) com.android.internal.os.RecoverySystem. RecoverySystem
contains methods for:

- verifying the signature of an update package
- rebooting to install a package
- rebooting to wipe user data

(The reboot functions require "android.permission.REBOOT" and
"android.permission.ACCESS_CACHE_FILESYSTEM".) Providing these
simplifies implementation of OTA update for device builders.

Change-Id: I63ce743b156e7a1a0327fd395b0e4a82c0eda79a
ecoverySystem.java
f0108cda21bec61418b24aa6217406072780b5d5 22-Dec-2009 Tom Taylor <tomtaylor@google.com> resolved conflicts for merge of ad2fa35d to master

Change-Id: Ia4362cd48ac0689b91003943a4cd9660da72ff90
f966afa1461c602fb5b50aeb5d6429dc525014be 22-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I34a427a5

* changes:
Adding support for LoggingPrintStream.write(byte[]) and friends.
60d8762413e8daba5f73559786312a9ec5e3b827 17-Dec-2009 Dan Egnor <egnor@google.com> DropBox logging of app & system server crashes.

The crashes are also reported to the event log (and of course the
main logcat, like they always have been). Ordinary Log.e(t,m,e) isn't dropboxed
but there's a new Log.wtf() which always is. (Still @pending in this change.)

Add a hook to IPowerManager to crash the system server on demand
(only for apps with REBOOT permission, since it's basically a restart).
This is not exposed in PowerManager, must be invoked directly -- mostly
this is there so "Bad Behavior" in dev tools can do it.
untimeInit.java
d4a4729c0cac582a2dcec7c8cfb316b81885a0f0 21-Dec-2009 Tom Taylor <tomtaylor@google.com> Update imports to android-common

Several files were moved to android-common. Update all the references
to import those files from the new location.
owerProfile.java
f41de2a4a1c22e3f3ee9a8cd65ec7997c9587cdb 18-Dec-2009 Jesse Wilson <jessewilson@google.com> Adding support for LoggingPrintStream.write(byte[]) and friends.

By default, Android's System.out and System.err are implemented by
the AndroidPrintStream subclass of LoggingPrintStream. Until now,
that class has silently discarded the raw bytes it has received.
This causes two problems:

Applications may be accidentally wasting CPU+memory writing to
System.out. By making this output visible, the developers of such
applications can silence the problem at the source.

Application developers may be purposefully writing to these streams
and perplexed by the data's disappearance. For example, the core
library's own java.util.logging.ConsoleHandler sends its log data
into this black hole. By making the data visible, we save the data
and remove an unnecessary sharp edge from our API.
oggingPrintStream.java
d021302134460efbb596f4a4a2951e75b83d0ede 11-Dec-2009 Dan Egnor <egnor@google.com> resolved conflicts for merge of f6bb01b0 to master
b7f0367cec1c744aa66ef397b0244e25d507491c 10-Dec-2009 Dan Egnor <egnor@google.com> Eliminate CrashData and friends.

(CrashData was a custom-marshalled crash-info class used for a server crash
reporting system I am deprecating). Use ApplicationErrorReport.CrashInfo
instead to report crash details (mostly the stack trace) from RuntimeInfo to
ActivityManagerService, since we're likely to need the crash information in
that form anyway.

Remove the (long-disabled) flags and support for the "Debug" button
in the crash dialog.

Further gut the ICheckinService interface by removing the crash-reporting
APIs (and everything that calls them), plus the synchronous checkin()
method (which has been stubbed out for a while now).

A new dropbox-based crash reporting system is in the works, but not part
of this change.
untimeInit.java
d2169dde42284fa2e56b1b870d4ffcfe824f975d 10-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change If3bafe4f

* changes:
Encrypted File Systems. Recovery changes for framework. Modifications to allow for new call to recovery to toggle EFS settings.
1270e2e22b0b3f0705cee2b82788d8dc3fb03cdb 08-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I96ddd6e2 into eclair-mr2

* changes:
Migration to TrafficStats.
1719a39a4c0ff3afbf9c9e5f03f20ba50f490902 08-Dec-2009 Ken Shirriff <kens@google.com> Migration to TrafficStats.

TrafficStats is the SDK version of NetStat.
atteryStatsImpl.java
887f355f99ff83d568ef2885a4fdcaae475583df 08-Dec-2009 Dianne Hackborn <hackbod@google.com> Propagate background scheduling class across processes.

This is a very simply implementation: upon receiving an IPC, if the handling
thread is at a background priority (the driver will have taken care of
propagating this from the calling thread), then stick it in to the background
scheduling group. Plus an API to turn this off for the process, which is
used by the system process.

This also pulls some of the code for managing scheduling classes out of
the Process JNI wrappers and in to some convenience methods in thread.h.
inderInternal.java
3baf1bf734b6212908486d84b356ed1bc7cd838b 30-Nov-2009 Oscar Montemayor <oam@google.com> Encrypted File Systems. Recovery changes for framework.
Modifications to allow for new call to recovery to toggle EFS settings.
ecoverySystem.java
9335d414bd2af5bb1ad74459de165a3d93a9ca7b 18-Nov-2009 Amith Yamasani <yamasani@google.com> am 778f1e65: Merge change Icfc893d2 into eclair

Merge commit '778f1e65a5ea37bc4adc4725e281a34b775bc72d' into eclair-mr2

* commit '778f1e65a5ea37bc4adc4725e281a34b775bc72d':
Fix for 2267410 : Battery use doesn't show CPU usage on non-wiped devices
cfc893d27a59bddbc5d0da0038e8313f6c379f86 18-Nov-2009 Amith Yamasani <yamasani@google.com> Fix for 2267410 : Battery use doesn't show CPU usage on non-wiped devices

Due to a change in cpu stepping values, the batterystats.bin file needs to
be wiped for Battery Use app to show CPU cost correctly.
Bumping up the version number of the file fixes this.
atteryStatsImpl.java
f18a01c77e78209b74e34d05cfb352fa4a92db5f 12-Nov-2009 Dan Egnor <egnor@google.com> Rename [I]DropBox[Service] to [I]DropBoxManager[Service].

Un-hide the DropBoxManager interface, and update the public API accordingly.
DropBoxManagerService.aidl
DropBoxService.aidl
952402704a175ba27f6c89dff1ada634c5ce5626 28-Oct-2009 Dan Egnor <egnor@google.com> Instead of a raw AIDL interface, give DropBox a Java
interface (android.os.DropBox); move the Binder interface
behind the scenes. Make DropBoxEntry into DropBox.Entry.
Make it possible to get a dropbox from an (Application)Context
with the usual getSystemService(DROPBOX_SERVICE) type thing.
Update the tests accordingly.
DropBoxService.aidl
f37447bad3773b62176baa837908daf6edb44273 09-Oct-2009 Amith Yamasani <yamasani@google.com> Proper fix for zero signal strength and no_service. Fixes #2176141

Track phone service state changes and use a separate timer for out-of-service
since the hunting can timeout on some devices.

Store the timeout value in the config.xml, as it is device/network specific.

Settings App will also change to use the hunting duration to compute the cost
of zero signal.
atteryStatsImpl.java
owerProfile.java
8550f255232eb4e4852466c5297fdc125887f5af 30-Sep-2009 Suchi Amalapurapu <asuchitra@google.com> Check if rename of backed up file fails before persisting new changes.
If not these system services will end up with inconsistent settings files
when the device runs out of storage.
Delete mangled settings file in PackageManager if the current write fails
so that we don't end up overwriting the backed up version with the
mangled version
Include null check when retrieving fwd locked resource for an existing package
atteryStatsImpl.java
53b707ba26055f3b7597db5826dee64987bfb83a 30-Sep-2009 Amith Yamasani <yamasani@google.com> Handle bad lines in /proc/wakelocks : Fix for 2124260

Use the return value from the native parser to skip over bad lines. When
the wakelocks overflow, there could be empty or badly formatted lines.
Skip over them.
atteryStatsImpl.java
c3c6621a2cf2f0d40d062dcad1c9f65485473841 23-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 25879 into eclair

* changes:
Setting the default HTTP user agent at runtime init.
e43530ab571e901f94361078c7c1f970a0bd27f2 21-Aug-2009 Amith Yamasani <yamasani@google.com> Track CPU speed stepping to get more accurate CPU cost per app.

More CPU speed stepping happening with newer devices, so we need
to qualify CPU time with the CPU speed, since power consumption
varies greatly by speed. Apps that peg the CPU should get a higher
penaltly.

Also, fix for 2062930: NPE at VolumePreference.onKey()
atteryStatsImpl.java
owerProfile.java
d0f80d445644bfc08b62339f01766b924e42dc4d 19-Sep-2009 Jesse Wilson <jessewilson@google.com> Setting the default HTTP user agent at runtime init.

I can't do this in HttpURLConnection directly, since that would
cause a forbidden dependency from Dalvik on Android.
untimeInit.java
19382ac1a4e4e7c23a1346d299368763f149de9c 12-Sep-2009 Dianne Hackborn <hackbod@google.com> Some optizations to wallpaper drawing/scrolling.

First, fix some issues with the final wallpaper bitmap
we use: ensure it is always 16bpp, and make sure dithering
of its bitmap is turned off. We take of dithering
when loading, to make sure we don't use it when drawing.

Also add new APIs to return the wallpaper with the equivalent
of Launcher's old FastBitmapDrawable. As doing this, also load
the default wallpaper the same way as custom ones, taking care to
resize it as needed at load time.

Finally implement a mechanism for the window manager to wait
for the wallpaper to redraw at its new position before returning
from the application's call to change the offset. This ensures
that the wallpaper better tracks the application. Note that there
is a timeout in this wait that is relatively short, and if it
expires we will run for a while without waiting.

Change-Id: Ife449437746da85958bd447e0a6cf3d2223b398c
andlerCaller.java
eec2f41d607c3eacba4f7d9cc098b335c7310d23 10-Sep-2009 Bob Lee <crazybob@google.com> Addressed reviewer comments.
amplingProfilerIntegration.java
e540833fdff4d58e37c9ba859388e24e2945ed45 05-Sep-2009 Bob Lee <crazybob@crazybob.org> Integrated the profiler into the framework. We run it all the time if the persist.sampling_profiler
system property is set. Saves snapshots to the SD card.
untimeInit.java
amplingProfilerIntegration.java
ygoteInit.java
b22293590cb10b1d8722dbf9c226cb58f240d7d5 18-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 21748 into eclair

* changes:
Get At command count from Bluetooth headset.
82cb029e2a4907ee55fed4a00493b76b3e11a7a1 18-Aug-2009 Amith Yamasani <yamasani@google.com> Get At command count from Bluetooth headset.

Pass in the BT headset object when available to the BatteryStats.
atteryStatsImpl.java
8df8b2b405c60cacf7a66c4e2ca078dd3d7ec7bd 18-Aug-2009 Dianne Hackborn <hackbod@google.com> Allow wallpapers to get touch events.
andlerCaller.java
72c82ab9923025a91bbabb32e56bfea27bfd083b 12-Aug-2009 Dianne Hackborn <hackbod@google.com> Report wallpaper offset to the wallpaper, use this in the image wallpaper.

Wallpapers can now be just the size of the screen, and get told when their
scroll position should change to do the updating on their own.
andlerCaller.java
45e503ae91d380ebe5158927b7d6aa80e166d096 12-Aug-2009 android-build SharedAccount <android-build@sekiwake.mtv.corp.google.com> resolved conflicts for merge of 802527c6 to master skipping preloaded-classes as pre Bob
2e93f65cab0b4b21a1285b83e985559325e87a3a 11-Aug-2009 Bob Lee <crazybob@google.com> Updated preloaded-classes file.
ygoteInit.java
4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 09-Aug-2009 Dianne Hackborn <hackbod@google.com> Very primitive wallpapers in a surface.

This is all of the basic pieces:

- The WallpaperService now creates a surface with the window manager for its
contents.
- There is a simple service that displays a bitmap.
- The wallpaper manager takes care of starting and stopping the service.
- The window manager knows about wallpaper windows and how to layer them with
the windows that want to be shown on top of wallpaper.

Lots and lots of issues remain, but at this point you can actually write a
wallpaper service, select it in the UI, and see it behind an activity.
andlerCaller.java
a695d185f11b2b03ecf0e0f796621fb00bfe7855 21-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am ef1a92ab: Merge change 7961 into donut

Merge commit 'ef1a92abe1bebe4feba4ba33cd0c7e25ee83fcc0'

* commit 'ef1a92abe1bebe4feba4ba33cd0c7e25ee83fcc0':
Bluetooth at command tracking.
3f7e35c2c7d3d7f08f50c1d93cd16b1f49354ccc 14-Jul-2009 Amith Yamasani <yamasani@google.com> Bluetooth at command tracking.
atteryStatsImpl.java
owerProfile.java
2383415ab982ff156a85929f58029c0b863750c5 25-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am f881762f: Merge change 5351 into donut

Merge commit 'f881762f97c74253bbc7f629380bb65739457041'

* commit 'f881762f97c74253bbc7f629380bb65739457041':
Add a method to Process to get uid for a pid.
819f928f6a9dc3fdf408236f33e17f03a7dfed2c 25-Jun-2009 Amith Yamasani <yamasani@google.com> Add a method to Process to get uid for a pid.

Use the uids to track native processes. Cache the uids to avoid
checking /proc every time.
atteryStatsImpl.java
4c74637833c6dc41f5c51897cd78a037e0cc18ee 25-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am 3e376a74: Merge change 5171 into donut

Merge commit '3e376a74b3edd8c311e8d69ca5baf986c9da4a06'

* commit '3e376a74b3edd8c311e8d69ca5baf986c9da4a06':
Track native processes and airplane mode.
32dbefda71c50bf848da21fb5d1255273439f90d 19-Jun-2009 Amith Yamasani <yamasani@google.com> Track native processes and airplane mode.

Turn signal strengths on/off when toggling airplane mode.
atteryStatsImpl.java
owerProfile.java
3618160a1a10ab7574f14e0e5a45fe79ec660a64 23-Jun-2009 Dianne Hackborn <hackbod@google.com> am 2e418428: Possibly fix an issue where we thought an app was always using GPS.

Merge commit '2e418428987132ea66533cbc05f9c526eb59519a'

* commit '2e418428987132ea66533cbc05f9c526eb59519a':
Possibly fix an issue where we thought an app was always using GPS.
2e418428987132ea66533cbc05f9c526eb59519a 23-Jun-2009 Dianne Hackborn <hackbod@google.com> Possibly fix an issue where we thought an app was always using GPS.

There may be some race conditions in the gps provider where it can cause a uid
to be double booked for gps usage and never released. Address this by tweaking
some locking (so mLocation and the uid array are protected by a lock both when
reading and writing). Also add some code to log a warning if someone tries to
note a particular uid multiple times, since the code will break in that case.

Finally, fix a problem in the battery stats where we weren't allowing a new Uid
structure to be created in many cases for calls coming in.
atteryStatsImpl.java
a50b795161ec8c8d367b94d06afb45e7213614ef 11-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am b6391d63: Merge change 3857 into donut

Merge commit 'b6391d6377883586995127c9926c1b5b8035fd60'

* commit 'b6391d6377883586995127c9926c1b5b8035fd60':
Allow arrays of values for power profile data.
3718aaabe6259dcf86a3666ff92d16e4be5da555 09-Jun-2009 Amith Yamasani <yamasani@google.com> Allow arrays of values for power profile data.

Parse arrays for data that has different levels with non-linear
power increase.
Track radio data awake_time from kernel and mobile/total data
transfers.
Use dummy values for default power_profile.xml. Actual values will
be in a product overlay.
atteryStatsImpl.java
owerProfile.java
1b2e618bdfe5840f450a6899de548a095739e2ba 10-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am 9e09e0f4: Merge change 3724 into donut

Merge commit '9e09e0f439ab30b8856d46827623652d09b7477b'

* commit '9e09e0f439ab30b8856d46827623652d09b7477b':
zygote: Add CAP_SYS_NICE to system server capabilities
1caefa6c40a732dbe75b0782f0aa3147017c38d0 10-Jun-2009 San Mehat <san@google.com> zygote: Add CAP_SYS_NICE to system server capabilities

Signed-off-by: San Mehat <san@google.com>
ygoteInit.java
138197f961b671ff5b48785b0fe61477ebfc7627 04-Jun-2009 Amith Yamasani <yamasani@google.com> am eaeb663b: Track activity foreground CPU usage for battery stats.

Merge commit 'eaeb663bcd7a82b654954b42663232cbd7bef7e7'

* commit 'eaeb663bcd7a82b654954b42663232cbd7bef7e7':
Track activity foreground CPU usage for battery stats.
eaeb663bcd7a82b654954b42663232cbd7bef7e7 04-Jun-2009 Amith Yamasani <yamasani@google.com> Track activity foreground CPU usage for battery stats.

Track the foreground CPU time of an activity so that we can tell if apps are
spending more time in the background compared to foreground.
Update power profile values for screen backlight and GPS.
Fix some javadoc bugs (milliseconds vs. microseconds).
atteryStatsImpl.java
85a2fb07c277ffe00839a522074de0302b8d49b8 28-May-2009 Android (Google) Code Review <android-gerrit@google.com> am 145c989c: Merge change 2569 into donut

Merge commit '145c989cafe72d99af120044fed256ac2f982568'

* commit '145c989cafe72d99af120044fed256ac2f982568':
Fix a hang during bootup.
c33fe6c9a71008d51aab7775532d73a3eaf12370 28-May-2009 Amith Yamasani <yamasani@google.com> Fix a hang during bootup.

Some data was not being written to the battery stats during shutdown. So there was insufficient
data when reading back at bootup.
atteryStatsImpl.java
a742dc421bd17117ec802b944190a1c731e05a91 23-May-2009 Android (Google) Code Review <android-gerrit@google.com> am fea1a459: Merge change 2364 into donut

Merge commit 'fea1a459aaebc5fd66b12520312ddbe09547f094'

* commit 'fea1a459aaebc5fd66b12520312ddbe09547f094':
Initial checkin for App Fuel Gauge infrastructure.
244fa5c05b2cc8c4c0754aeed4ee42c588ea89d1 22-May-2009 Amith Yamasani <yamasani@google.com> Initial checkin for App Fuel Gauge infrastructure.

This adds the PowerProfile class and data file that provides power consumption numbers
for different subsystems. Also added Audio/Video subsystems to track on a per UID basis.
atteryStatsImpl.java
owerProfile.java
681b1de3c7188b33cd02f189d50cb2cadd6af73a 20-May-2009 Android (Google) Code Review <android-gerrit@google.com> am a5ca3425: Merge change 2017 into donut

Merge commit 'a5ca3425f9cbb930dc62559893590432ed29c961'

* commit 'a5ca3425f9cbb930dc62559893590432ed29c961':
Increment BatteryStatsImpl's VERSION.
58ff0217a617d5b03d18f0ef532f254f8ba6de2b 20-May-2009 Robert Greenwalt <robdroid@android.com> Increment BatteryStatsImpl's VERSION.
That'll make it stop trying to interpret older records with the new format.
Also applied other comments involving name changes to remove un-needed 'Wifi' labels in WifiManager API, etc.
atteryStatsImpl.java
ad8195bb0ea9ed087519d899402571c8608c0b48 19-May-2009 Android (Google) Code Review <android-gerrit@google.com> am 2f11599e: Merge change 1579 into donut

Merge commit '2f11599eb317887a8cca14d8e66bfc485e5169e7'

* commit '2f11599eb317887a8cca14d8e66bfc485e5169e7':
Teleca 2b changes
e9b06d754af03faf27012fbed1e7559ec1ba7c79 19-May-2009 Wink Saville <wink@google.com> Teleca 2b changes
atteryStatsImpl.java
aa2b7237d1e8c0c833fc19cd9d25a8d3700244a4 14-May-2009 Android (Google) Code Review <android-gerrit@google.com> am 2a5cfe51: Merge change 1590 into donut

Merge commit '2a5cfe519298702ef71ff8755b14f8daf6a92b2a'

* commit '2a5cfe519298702ef71ff8755b14f8daf6a92b2a':
Add wifi multicast filter api (enable/disable).
5347bd4cda2b6afc18f8acab48e52131f35ed13c 14-May-2009 Robert Greenwalt <robdroid@android.com> Add wifi multicast filter api (enable/disable).
Fixes 1833432. Automatically re-disables any request when the app
exits/crashes. Also hooked into Battery Stats for power managment analysis.
atteryStatsImpl.java
7a1355950172b7a549820e9a2cd4a9b2099ec32f 06-May-2009 Dianne Hackborn <hackbod@google.com> merged 231cc608d06ffc31c24bf8aa8c8275bdd2636581
231cc608d06ffc31c24bf8aa8c8275bdd2636581 28-Apr-2009 Dianne Hackborn <hackbod@google.com> Rewrite SyncStorageEngine to use flat files and in-memory data structures.

The previous implementation used a database for storing all of its state, which could cause
a significant amount of IO activity as its tables were updated through the stages of a sync.
This new implementation replaces that in-memory data structures, with hand-written code
for writing them to persistent storage.

There are now 4 files associated with this class, holding various pieces of its state that
should be consistent. These are everything from a main XML file of account information that
must always be retained, to a binary file of per-day statistics that can be thrown away at
any time. Writes of these files as scheduled at various times based on their importance of
the frequency at which they change.

Because the database no longer exists, there needs to be a new explicit interface for
interacting with the sync manager database. This is provided by new APIs on IContentService,
with a hidden method on ContentResolver to retrieve the IContentService so that various
system entities can use it. Other changes in other projects are required to update to the
new API.

The goal here is to have as little an impact on the code and functionality outside of
SyncStorageEngine, though due to the necessary change in API it is still somewhat extensive.
tomicFile.java
c1ebff063a29446585709ec1396e94fb7ab656a6 01-May-2009 Marco Nelissen <marcone@google.com> am d859331: Don\'t crash when /proc/wakelocks can\'t be opened. Might make

Merge commit 'd8593312296fd2193a070c1a074840d83b7f49cb'

* commit 'd8593312296fd2193a070c1a074840d83b7f49cb':
Don't crash when /proc/wakelocks can't be opened. Might make board bringup easier.
d8593312296fd2193a070c1a074840d83b7f49cb 30-Apr-2009 Marco Nelissen <marcone@google.com> Don't crash when /proc/wakelocks can't be opened. Might make board bringup easier.
Verified with simulator, which doesn't have /proc/wakelocks
atteryStatsImpl.java
137b0c9d6430ccb519c82a1198048cf413e06c5e 29-Apr-2009 Android (Google) Code Review <android-gerrit@google.com> am 0b8ffd1: Merge change 460 into donut

Merge commit '0b8ffd17bc6641fc522db3e842a868b6cdbf6d82'

* commit '0b8ffd17bc6641fc522db3e842a868b6cdbf6d82':
More optimization of dumpsys output.
1d442e0d990b581357f33f5463c7c5cb49b551e8 21-Apr-2009 Dianne Hackborn <hackbod@google.com> More optimization of dumpsys output.

There are three major classes of changes here:

- Avoid writing lines where their values are often empty, false, or some other typical thing.
- Use partial writes to the PrintWriter to avoid creating temporary strings.
- Use StringBuilder where we need to generate real String objects (and where possible cache the result).
atteryStatsImpl.java
74e258d63eccef41da923adad47bd2b20056aa5f 19-Apr-2009 Evan Millar <> AI 146854: am: CL 146853 Add kernel wakelock data to batteryinfo dump.
Original author: emillar

Automated import of CL 146854
atteryStatsImpl.java
c64edde69d18498fb2954f71a546357b07ab996a 18-Apr-2009 Evan Millar <> AI 146853: Add kernel wakelock data to batteryinfo dump.
BUG=1755458

Automated import of CL 146853
atteryStatsImpl.java
599c918d9794b51992de85b42befa0c71d9ec07f 08-Apr-2009 Andy McFadden <> AI 144931: Added a (hidden) way to "pre-cache" register maps.
The 50 methods that appeared on the GC stacks of the most applications
require 13KB of native heap for their uncompressed register maps, and
the full set took 5ms to uncompress. Pre-computation doesn't represent
a significant improvement in space or time, at the cost of a big pile
of strings in ZygoteInit.
I'm leaving the method in ZygoteInit, but it's not called, and the
static final String[] of method descriptors is empty. We may want to
revisit this later.
BUG=1729570

Automated import of CL 144931
ygoteInit.java
0ba31ed95ed7ac9b5627973f0bb1b5d9147ea95f 03-Apr-2009 Evan Millar <> AI 144410: am: CL 144333 Change the way the battery level tracking code works in BatteryStats. Before we simply kept track of the last
2 levels as recorded at plug and unplug events. During charge cycles this would be useful because it would tell us
what the start and end levels were in the last discharge cycle. However during a discharge cycle this information could
be misleading as it would give you the level at the last unplug event (beginning the the discharge cycle) and last plug
event (end of the previous discharge cycle).
Now we are still keeping track of 2 values, but they are "discharge cycle start level" and "discharge cycle current level".
During a discharge cycle this will give you the level the current discharge cycle started at, and the current level. During
a charge cycle the same data will be supplied as before (the start/end of the last discharge cycle).
Original author: emillar

Automated import of CL 144410
atteryStatsImpl.java
633a1740ce5951ccb5d478ba2795f6f4fada1646 03-Apr-2009 Evan Millar <> AI 144333: Change the way the battery level tracking code works in BatteryStats. Before we simply kept track of the last
2 levels as recorded at plug and unplug events. During charge cycles this would be useful because it would tell us
what the start and end levels were in the last discharge cycle. However during a discharge cycle this information could
be misleading as it would give you the level at the last unplug event (beginning the the discharge cycle) and last plug
event (end of the previous discharge cycle).
Now we are still keeping track of 2 values, but they are "discharge cycle start level" and "discharge cycle current level".
During a discharge cycle this will give you the level the current discharge cycle started at, and the current level. During
a charge cycle the same data will be supplied as before (the start/end of the last discharge cycle).
B=144249

Automated import of CL 144333
atteryStatsImpl.java
617f877c06c82584a38f41bb60d836e08c5e3bda 01-Apr-2009 Dianne Hackborn <> AI 143800: am: CL 143748 Fix issue #1743326 (More battery stats)
Adds stats for:
- Number of raw user events that have happened in the system.
- Number of times user activity has been reported, dividied by UID and type of activity.
- Duration of screen brightness levels in 4 buckets.
- Per-UID tracking of who has turned on Wifi and how long we can attribute it being on because of them.
Original author: hackbod
Merged from: //branches/cupcake/...

Automated import of CL 143800
atteryStatsImpl.java
bed30e1b6ea4a1d71dbe5e731c274cc66974283a 31-Mar-2009 Dianne Hackborn <> AI 143823: am: CL 143800 am: CL 143748 Fix issue #1743326 (More battery stats)
Adds stats for:
- Number of raw user events that have happened in the system.
- Number of times user activity has been reported, dividied by UID and type of activity.
- Duration of screen brightness levels in 4 buckets.
- Per-UID tracking of who has turned on Wifi and how long we can attribute it being on because of them.
Original author: hackbod
Merged from: //branches/cupcake/...
Original author: android-build
Merged from: //branches/donutburger/...

Automated import of CL 143823
atteryStatsImpl.java
4840e143df9804e3399a4e0341c0601f80d65d6e 25-Mar-2009 Dianne Hackborn <> Automated import from //branches/master/...@142348,142348
atteryStatsImpl.java
627bba736d022c39696b7c582a6af5592d2b8c33 25-Mar-2009 Dianne Hackborn <> Automated import from //branches/donutburger/...@142347,142347
atteryStatsImpl.java
f93f02fb8a6b6bdbc294085d89e733dcd5078630 25-Mar-2009 Eric Shienbrood <> Automated import from //branches/master/...@140680,140680
atteryStatsImpl.java
d4c5f8919b0522bcaab41a5863c313fec52d3a79 25-Mar-2009 Eric Shienbrood <> Automated import from //branches/donutburger/...@140679,140679
atteryStatsImpl.java
105925376f8d0f6b318c9938c7b83ef7fef094da 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@140373
atteryStatsImpl.java
4df2423a947bcd3f024cc3d3a1a315a8dc428598 05-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@136594
andlerCaller.java
ResultReceiver.aidl
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ndroidPrintStream.java
atteryStatsImpl.aidl
atteryStatsImpl.java
inderInternal.java
andlerCaller.java
oggingPrintStream.java
kgUsageStats.aidl
kgUsageStats.java
ecoverySystem.java
untimeInit.java
ygoteConnection.java
ygoteInit.java
ygoteSecurityException.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ndroidPrintStream.java
atteryStatsImpl.aidl
atteryStatsImpl.java
inderInternal.java
andlerCaller.java
oggingPrintStream.java
kgUsageStats.aidl
kgUsageStats.java
ecoverySystem.java
untimeInit.java
ygoteConnection.java
ygoteInit.java
ygoteSecurityException.java
076357b8567458d4b6dfdcf839ef751634cd2bfb 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
atteryStatsImpl.java
ygoteInit.java
3dec7d563a2f3e1eb967ce2054a00b6620e3558c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
atteryStatsImpl.java
ygoteInit.java
3001a035439d8134a7d70d796376d1dfbff3cdcd 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
atteryStatsImpl.java
andlerHelper.java
andlerThread.java
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
atteryStatsImpl.java
andlerCaller.java
kgUsageStats.aidl
kgUsageStats.java
ecoverySystem.java
22f7dfd23490a3de2f21ff96949ba47003aac8f8 20-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127101
andlerCaller.java
9266c558bf1d21ff647525ff99f7dadbca417309 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
andlerCaller.java
b798689749c64baba81f02e10cf2157c747d6b46 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
andlerCaller.java
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
atteryStatsImpl.aidl
atteryStatsImpl.java
andlerCaller.java
ygoteConnection.java
ygoteInit.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
ndroidPrintStream.java
inderInternal.java
andlerHelper.java
andlerThread.java
oggingPrintStream.java
untimeInit.java
ygoteConnection.java
ygoteInit.java
ygoteSecurityException.java