Commit Graph

4068 Commits

Author SHA1 Message Date
Adam Lesinski
af85d84050 Merge "BatteryStats: Remove reading of cpu power" into oc-dev 2017-04-13 20:09:51 +00:00
TreeHugger Robot
73b54bfd6d Merge "Address API review for ProxyFileDescriptorCallback" into oc-dev 2017-04-13 18:11:48 +00:00
TreeHugger Robot
07d60cce02 Merge "Catch exceptions in Vibrator to maintain compatibility" into oc-dev 2017-04-13 06:48:29 +00:00
Daichi Hirono
e200ae8157 Address API review for ProxyFileDescriptorCallback
The CL revise the documentation for ProxyFileDescriptorCallback.

 * Added explanation to onFsync.
 * Added explanation about offset.
 * Mentioned ErrnoException should contain E constants in OsConstants.

Bug: 35813046
Test: Build succeed
Change-Id: Ied2490b1913445ea8240eb3aaf7c12170ae4e42d
(cherry picked from commit 9555e30288)
2017-04-13 03:40:08 +00:00
Adam Lesinski
d4abd1eeb0 BatteryStats: Remove reading of cpu power
The cpu power reported by the uid_cputime kernel is inaccurate
and has only ever been recorded for dumping to batterystats.
The values have never been used in power blame calculations.

This change removes these power values which just cause noisy
data.

Bug: 36002715
Change-Id: I61bea9992aabb84d099689360fd9377b44b36e2f
Test: run `adb shell dumpsys batterystats`
Test: should not show `p=` for `Total cpu time:` line
2017-04-12 12:25:21 -07:00
Dianne Hackborn
0a0a63c8b1 Merge "Add new "work queue" feature to JobScheduler." into oc-dev 2017-04-12 17:55:56 +00:00
Dianne Hackborn
7da13d7c3e Add new "work queue" feature to JobScheduler.
This gives semantics similar to the start command
queue of services.

The implementation is currently lacking in URI permission
grant handling of the work intents; that will be coming
in a follow-up change.

This includes a first step of adjusting/fixing locking
within JobSchedulerService.  The JobServiceContext class
has a bunch of stuff it does that assumes it doesn't need
locking because it schedules the work on a handler.  However,
to be able to correctly implement the work finish flow (that
takes care of stopping the job when there is no more work),
we can't dispatch these asynchronously so need to get rid of
that and just do explicit locking.

The switch to explicit locking is half-way there (again the
remaining part will be a follow-on CL).  Right now we have
the locking, but still also the handler.  But it turns out
there were a number of things we were doing without a lock
held where we actually should have been holding a lock, so
this is better anyway.

Test: new tests added

Change-Id: Iebd098046209b28e60fd2f4d855d7f91cd3a8b03
2017-04-11 13:57:15 -07:00
Makoto Onuki
cb8936eae9 Expose UserHandle.getIdentifier() to CTS.
This allows CTS to pass user IDs returned by APIs as UserHandle to various
ADB commands.

Test: Exposing as TestApi only; m -j
Change-Id: Iedba6d83b717baacf9e7cf97f1d32f93c191a5ca
2017-04-11 08:42:57 -07:00
TreeHugger Robot
6c171f35be Merge "Log excessive remote callbacks" into oc-dev 2017-04-07 02:58:53 +00:00
TreeHugger Robot
c56d782e13 Merge "Add UPDATE_TZDATA to config updater intents" into oc-dev 2017-04-07 02:28:23 +00:00
Amith Yamasani
18a23f2fd8 Log excessive remote callbacks
Bug: 36778087
Test: N/A
Change-Id: Ifb02fe09e3c0869f7f6c741f886421064e5c1b8a
2017-04-06 16:38:25 -07:00
Joel Fernandes
2d314e15c9 Set android.display thread to top-app cpusets and schedtune group
android.display being in the foreground cpuset group is an issue. As
seen on M/S, during heavily CPU load it is not given core 3 even though
it might be free and causes jank. This patch adds the thread to the
top-app group to ensure it is placed on all cores during scheduling
decisions.

Doing this required a couple of changes:
- new API to set per-thread cpusets
- changes to DisplayManagerService to set the thread to top-app group
- changes to SystemServer to set the policy toward the end, as doing it
  during start of the DisplayManagerService was in issue (issue being
  SystemServer calls setSystemProcess.. -> setProcessGroup which overrides
  the group settings for threads in the system server process, including
  android.display)

Bug: 36631902
Test: Boot and make sure android.display thread is in the top-app group

Change-Id: Icc394ea0ffcf159d11728ad38de114234a29d20f
Signed-off-by: Joel Fernandes <joelaf@google.com>
(cherry picked from commit 474d311cb0)
2017-04-06 21:19:25 +00:00
Chad Brubaker
df9bd4f7b3 Add UPDATE_TZDATA to config updater intents
Change-Id: I5fcd011e0ab030ebf1aa40818a05853117cc6811
Fixes: 36977046
Test: checkbuild
2017-04-06 13:35:23 -07:00
Chad Brubaker
19f98d9707 Expose ConfigUpdater Intents in SystemApi
The Intents are are in the android namespace and should have been
exposed as SystemApi, but were not previously.

Since there are no classes in the framework that reference these Intents
this adds android.os.ConfigUpdate to have them all in one place.

Test: builds
Change-Id: I2086945301f06b28b491ec876652c37e97315e8c
Fixes: 35252508
Fixes: 35266806
Fixes: 35266833
Fixes: 35271111
(cherry picked from commit 987b0fc4a5)
2017-04-06 17:18:13 +00:00
Adam Bookatz
a63e911ad2 Merge "Change wifiScanActualTime csv from usec to msec" into oc-dev 2017-04-05 23:57:00 +00:00
TreeHugger Robot
f68766f666 Merge "Collect background stats: scheduled jobs" into oc-dev 2017-04-05 22:13:10 +00:00
Michael Wright
6a40713e3b Catch exceptions in Vibrator to maintain compatibility
Bug: 36827833
Test: manual
Change-Id: I5ff165c4a1d7ee5c175cf4b50d4899f5e2092b5d
2017-04-05 15:54:25 +01:00
Jeff Sharkey
24403ff054 Just round up the data partition size.
Instead of trying to be clever by poking at underlying flash part
sizes, rely on the fact that device storage printed on retail
packaging is a power-of-two value.

For a typical device with a 23GiB data partition, this will return
a value of "32GB" which matches the retail packaging.

Test: builds, boots
Bug: 34827187
Change-Id: Ib4cf7f637dffc9238252e1fedcd86dc8b5cf656d
2017-04-04 15:10:06 -06:00
Bookatz
aa4594aad2 Collect background stats: scheduled jobs
Added background times and counts for an app's scheduled job usage.
Changes DualTimer to be a subclass of Timer so that background timers
can be easily accessed from the main timer (which is convenient for
jobs, whose ArrayMap of Timers is directly accessed outside of
BatteryStatsImpl).

Bug: 35669746
Test: runtest -x
frameworks/base/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java

Change-Id: Ic1d85db34346ebda94ed39f134fc0794a5877815
(cherry picked from commit d253f537a0)
2017-04-03 17:24:40 +00:00
Bookatz
ce49acad10 Change wifiScanActualTime csv from usec to msec
The wifi scan actual time is desired (in the batterystats.proto) to be
in msec instead of usec. It makes more sense to therefore output the
value in msec rather than convert it when it gets read into the proto.

Bug: 35677312
Test: runtest -x
frameworks/base/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java

Change-Id: I22fce69b6faecd00f79837369344e04b426a1c33
2017-04-03 09:47:05 -07:00
Jeff Sharkey
dafb17e7eb We really want f_frsize and f_bavail.
It's confusing, but f_bsize is not the value you're looking for; the
real block size is f_frsize.  Fix all those bugs.

Also, the vast majority of clients are interested in the usable
disk space, not including reserved space.

Test: builds, boots
Bug: 36840579
Change-Id: Ib1470389afd49c14cab62282ec1e978ebb2c4791
2017-04-02 23:33:38 -06:00
Dianne Hackborn
a47223f99b Implement issue #36590595: Add ability to associated a ClipData with JobInfo
Yum!

Also needed to have a Context.revokeUriPermission() variant that is sane,
so reasonable CTS tests can be written.

Test: new ClipDataJobTest added.

Change-Id: Ia3135ea788a6e32c971bae7dab3a844d0ef4139c
2017-03-31 10:41:50 -07:00
TreeHugger Robot
bb621fd95c Merge "Update ENSURE_VERIFY_APPS javadoc" into oc-dev 2017-03-30 19:31:23 +00:00
Rubin Xu
9f592dbca3 Update ENSURE_VERIFY_APPS javadoc
Make it clear that now this restriction applies across the whole device,
and is settable by profile owner.

Bug: 31000521
Test: None; just javadoc update
Change-Id: If82d8f4167cf1b77d6e10554f1d96b2d3a2a54a0
2017-03-30 16:47:43 +01:00
Tianjie Xu
ea997a038d Merge "Report the temperature during an OTA update" am: 47c7e7f41a am: 022682a721
am: 998c554463

Change-Id: I12a0f4c5fb768bdaa3a4baa4fa5bd7964b80110e
(cherry picked from commit d580a85b20)
2017-03-29 22:58:55 +00:00
Yifan Hong
d658f1c02b Add HidlSupport.java for utility methods for HIDL.
The old .equals code uses Objects.deepEquals,
which does not handle for, e.g. ArrayList<byte[]>.
Create our own recursive HidlSupport.deepEquals
and deepHashCode method to handle these edge cases.

Bug: 36454147
Test: hidl_test_java
Change-Id: I56dc48985486b561263c260cf43aa90f30d581d0
2017-03-29 13:07:15 -07:00
TreeHugger Robot
76c32a35a9 Merge "Allow apps to process ProxyFDCallback asynchrnously." into oc-dev 2017-03-29 04:41:44 +00:00
Daichi Hirono
812c95d37d Allow apps to process ProxyFDCallback asynchrnously.
Previously callback methods of ProxyFileDescriptorCallback were invoked
on a background thread prepared in the framework. So all methods were
invoked and processed synchronously. This was problem because if it took
time to fetch bytes of one file, operations for other files were also
blocked.

The CL changes ProxyFileDescriptorCallback methods to be invoked on
Handler passed by apps. Now application can prepare a Handler per file
so that one file does not block others.

Bug: 35229514
Test: cts-tradefed run cts -m CtsOsTestCases -t android.os.storage.cts.StorageManagerTest#testOpenProxyFileDescriptor_async
Change-Id: Ibadc4aad4c0373a3da586459a8f775e40288c895
(cherry picked from commit 4f156065c8)
2017-03-29 00:14:16 +00:00
Tianjie Xu
b1b38b322c Merge "improve the format of locale argument when calling recovery" am: 032c7a0a18 am: 1cd3a93288
am: bc0865bc78

Change-Id: I65bc4945d0701ecc10fd41f827c4566dfea912f9
(cherry picked from commit ee45a1f3ab)
2017-03-28 22:25:10 +00:00
Makoto Onuki
9957151661 Log a warning if a dispatch on UiThread takes more than
a certain amount of time.

Bug: 34961340
Test: Boot and launch several apps.
Change-Id: I38bd85a1dd9c572242d04f550df4a979f5f3bea5
2017-03-28 21:49:51 +00:00
Torne (Richard Coles)
0452670374 Support loading a stub WebView using a donor package.
Support loading a WebView package which specifies the name of a "donor"
that provides missing files. This allows a preinstalled stub WebView to
function by loading its code and assets from the preinstalled Monochrome
implementation, as long as the versions are close enough that the
manifest contents are compatible, which should be fine since
preinstalled versions will match.

To do this, we replace the stub's code paths in AppplicationInfo with
the donor's, so that all Java and native code and resources are loaded
from the donor APK at runtime instead of from the (mostly empty) stub.

To get the ClassLoader with the modified path cached as if it was the
regular path, we introduce a new "cacheKey" parameter in
ApplicationLoaders.

Bug: 21643067
Test: build "new" stub WebView upstream in chromium and test loading
Change-Id: I08cc9122b1c9def3e1206974f3e0e8973cca3419
2017-03-28 16:21:10 +00:00
TreeHugger Robot
5e01870015 Merge "Unbind from service on app killed and dedup association requests" 2017-03-27 18:43:37 +00:00
Jeff Sharkey
72ba815ca4 Merge "Add a new "virtual disk" feature." 2017-03-27 15:22:52 +00:00
Jeff Sharkey
e53e2d9576 Add a new "virtual disk" feature.
It's extremely difficult to test storage related logic on devices
that don't have physical SD card slots.  So to support better
debugging and testing, add a new "virtual disk" feature which mounts
a 512MB file through loop device.

Also move ParcelFileDescriptor.open() over to using Os.open() so
that it gets StrictMode treatment.

Bug: 34903607
Test: builds, boots, virtual disk works
Change-Id: I072a3a412cfcc8a2a3472919b7273a1ed794fd98
2017-03-25 23:26:21 -06:00
TreeHugger Robot
cb34b96796 Merge "Collect background stats: bluetooth, wifi, sensors" 2017-03-24 23:04:07 +00:00
Eugene Susla
a38fbf63fd Unbind from service on app killed and dedup association requests
1. Listen to calling package binder death stopping the scanning on that.
2. Don't restart scanning when a request with the same values was made.

Bug: 30932767
Test: 1.:
  - Using a test app start scanning and kill the app.
  - In debug mode ensure that DeviceDiscoveryService#stopScan gets triggered
2.:
  - Start scanning and rotate the device while device chooser is visible
  - Ensure no visible loss of state is happening
Change-Id: If126a2c963da90172a956fbd88e6b3dcd7ac8b01
2017-03-24 14:03:17 -07:00
TreeHugger Robot
0795bf8d62 Merge "Hook up data saver to battery saver." 2017-03-24 04:55:15 +00:00
TreeHugger Robot
f2c4c0a08b Merge "Fixes attestation id gathering from secondary android user" 2017-03-23 23:00:25 +00:00
TreeHugger Robot
350948e9d7 Merge "Hide Parcel#readSparseIntArray and Parcel#writeSparseIntArray" 2017-03-23 22:36:59 +00:00
Adam Lesinski
205656d31f Hide Parcel#readSparseIntArray and Parcel#writeSparseIntArray
They were added for a CL that later stopped using them, so there
is no current need for them in public API.

Bug: 35812784
Change-Id: I2a9a30bee65894235f2cc81ab1bd5a37c9296c02
Test: build succeeds
2017-03-23 13:38:26 -07:00
Janis Danisevskis
6ab9bb68ba Fixes attestation id gathering from secondary android user
When Keystore attempts to gather the application attestation
ID for an app that runs not as the primary user/owner of the
device, the PackageManager would deny package manager access
to the required PackageInfo on the grounds that the request
came from a different user
(violates android.permission.INTERACT_ACROSS_USERS)

This patch adds an additional check to
KeyAttestationApplicationIdProviderService, that verifies the
caller is indeed Keystore. Then it drops the caller context
and retrieves the requested PackageInfo, before restoring
the calling context.

Bug: 35719178
Test: install APK [1] and run as secondary user

[1] https://drive.google.com/file/d/0BzV-JgYFLSDIRGY1WENncmFMVW8/view?ts=58d3f3e6
Change-Id: I91f93a56d10498e1ee3bdb983c701033594c3e57
2017-03-23 11:20:48 -07:00
TreeHugger Robot
f3d8d3bd58 Merge "Refactor cache behavior from "atmoic" to "group"." 2017-03-23 06:04:55 +00:00
TreeHugger Robot
d45040ffc7 Merge "Added a UserManager.DISALLOW_AUTOFILL restriction." 2017-03-23 04:44:45 +00:00
Jeff Sharkey
b5a35b8181 Refactor cache behavior from "atmoic" to "group".
Using the word "atomic" has too much baggage relating to locking
guarantees, so move to something softer.

Add isQuotaSupported() for CTS tests.

Move CacheQuotaStrategy over to using SparseLongArray, which has a
more efficient memory footprint inside the system server.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.StorageHostTest
Bug: 35812899, 35684969, 36482620
Change-Id: I894f53e6f3bc76c77d1bb18c51db14833df14a49
2017-03-22 21:33:53 -06:00
Adam Lesinski
615ee4768b Merge "Update IBatteryPropertiesRegistrar.aidl to support force updates" am: 0aae170841 am: e4d926d9af
am: adecfd3e78

Change-Id: I4955b7f35dacd5266a479dc7523e63ed9ea1a527
2017-03-23 01:11:57 +00:00
Adam Lesinski
e4d926d9af Merge "Update IBatteryPropertiesRegistrar.aidl to support force updates"
am: 0aae170841

Change-Id: I8363aab4dbf0690b92988353d9360c713412a0be
2017-03-23 00:48:31 +00:00
Felipe Leme
24d5893b25 Added a UserManager.DISALLOW_AUTOFILL restriction.
bug: 35710740

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases -t android.autofillservice.cts.LoginActivityTest#testUserRestriction
Test: cts-tradefed run commandAndExit cts-dev -m CtsDevicePolicyManagerTestCases -t com.android.cts.devicepolicy.MixedDeviceOwnerTest#testDisallowAutofill_allowed
Test: cts-tradefed run commandAndExit cts-dev -m CtsDevicePolicyManagerTestCases -t com.android.cts.devicepolicy.MixedProfileOwnerTest#testDisallowAutofill_allowed
Test: cts-tradefed run commandAndExit cts-dev -m CtsDevicePolicyManagerTestCases -t com.android.cts.devicepolicy.MixedManagedProfileOwnerTest#testDisallowAutofill_allowed

Change-Id: I41b2bf9fe3bc8df627c6650960bd11346c430a7e
2017-03-22 17:20:48 -07:00
jackqdyulei
29c82ab242 Hook up data saver to battery saver.
1. Add globalBatterySaverEnabled in PowerSaveState, which stores
the real battery saver mode, not the one for specific service.
2. Add "mRestrictBackgroundChangedInBsm" and
"mRestrictBackgroundBeforeBsm" to restore the mRestrictBackground
if necessary.
3. If user toggles the data saver when battery saver is on, don't
restore the data saver when battery saver is off.

Bug: 34693888
Test: FrameworksServicesTests
Change-Id: Ic50c1cae3fb110a228e59e5d1fd04c164e4b7274
2017-03-22 15:55:21 -07:00
Adam Lesinski
2392cbd888 Update IBatteryPropertiesRegistrar.aidl to support force updates
Change-Id: Ic4f705a20db32369d106462c47eb150850a3f638
Test: builds
2017-03-22 19:32:43 +00:00
Bookatz
867c0d72af Collect background stats: bluetooth, wifi, sensors
Added background times and counts for an app's bluetooth scans, wifi
scans, and sensor usage. Note that the original times for these three
are pooled (i.e. represent the blame apportioned to an app for using
these, rather than the actual time an app used these). Since background
times are not pooled, and are therefore incomparable to the original
times, an extra time, to represent the actual time, had to also be added
in the form of 'total duration' to which background times can be
compared.

Note that this total duration is now a feature of all DurationTimers and
can be used, e.g., to track actual wakelock time (not just
apportioned wakelock times). The total duration is the time used since
reset, and does not give other 'which' times (such as 'since
unplugged').

Bug: 35679958
Bug: 35677312
Bug: 35673525
Test: runtest -x
frameworks/base/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java

Change-Id: I4b6943f76517cf5cc9420684857a5592cc7495be
2017-03-22 10:18:43 -07:00