Commit Graph

4891 Commits

Author SHA1 Message Date
TreeHugger Robot
a444dd4fb8 Merge "Updating Batterystats version to 29." 2017-12-22 23:17:53 +00:00
Kweku Adams
a8943cbae9 Updating Batterystats version to 29.
Bug: 70808931
Bug: 63813658
Bug: 62549765
Test: build Android
Change-Id: Ifc3e41d5189e9c21aaad82b13cf7ce7fbf39ade8
2017-12-22 13:21:06 -08:00
yuemingw
5fe75dc26d Add DISALLOW_AIRPLANE_MODE.
Bug: 67675441
Test: cts test will be added for b/67675455

Design doc: https://docs.google.com/document/d/1rvEg5jE3lMhjH-OA0iTLBUY2opM96fg7BrP81MoPnmg/edit#

Change-Id: I902b281695a7e734639c9d6d4852a0e96fea8305
2017-12-21 21:49:03 +00:00
yuemingw
7cc2c4c2ee Add DISALLOW_CONFIG_LOCATION_MODE.
Bug: 67674888
Test: cts test will be added in b/67674901

Design doc: https://docs.google.com/document/d/1rvEg5jE3lMhjH-OA0iTLBUY2opM96fg7BrP81MoPnmg/edit#

Change-Id: I284d421eedfb238084fa61e7661638c22b28734f
2017-12-21 21:48:15 +00:00
Siddharth Ray
331962242a Merge "Obtain cellular related battery statistics" 2017-12-21 19:53:54 +00:00
TreeHugger Robot
af5bac3d23 Merge "Profile lock timeout." 2017-12-21 13:37:42 +00:00
Narayan Kamath
6192f7322d WorkSource: Fix NPE on set(int) / set(int, String).
mChains might be null.

Bug: 62390666
Test: WorkSourceTest
Test: run cts-dev -m CtsOsTestCases -t android.os.cts.WorkSourceTest
Change-Id: I1dbc2abc576c280ad41ad6214745b0d34c5727a0
2017-12-21 10:24:52 +00:00
Sudheer Shanka
fa4bda70c3 Merge "Update BatteryStatsImpl to track per-procstate cpu times." 2017-12-21 03:51:40 +00:00
TreeHugger Robot
da8d32efbb Merge changes from topic "work_mode_api1"
* changes:
  Add access control to trySetWorkModeEnabled and make it public
  Merge setQuietModeEnabled and trySetQuietModeDisabled into one API
2017-12-21 01:20:28 +00:00
Siddharth Ray
a1fd057c85 Obtain cellular related battery statistics
API to obtain cellular battery stats for power
drain diagnostics.

Test: Manual

BUG:67647477
Change-Id: Iffdb1471cd55847b6454313c94497ab2cd6533cc
2017-12-20 14:56:29 -08:00
TreeHugger Robot
2756ddb85d Merge "Communicate relevantEvents=0 for packages excluded from whitelist" 2017-12-20 20:40:57 +00:00
Eugene Susla
4b7c919e72 Communicate relevantEvents=0 for packages excluded from whitelist
Together with checking isObservableEventType this will result in a11y events
not being generated for packages that are excluded form a11y-service(s)
package whitelist

Test: cts-tradefed run singleCommand cts -d --module CtsAccessibilityServiceTestCases
Change-Id: Id65607aaccc7af7d870d009d609917ff3c6d0712
2017-12-20 10:41:12 -08:00
Narayan Kamath
f0202a953f WorkSource: Add support for chaining attribution.
WorkSource objects now hold references to zero or more WorkChain
objects, each of which represent a "chain" of attribution.

This change also changes most WorkSource APIs to be able to
deal with WorkChains. Several APIs do not necessarily make sense with
WorkChains and have been left unmodified :

- boolean diff(WorkSource): Does not account for WorkChains for now.
  This is a public API so we shouln't change it unless we decide to
  make WorkChains public.
- setReturningDiffs(WorkSource): Used internally only, will be removed
  in a future change.
- addReturningNewbs(WorkSource): Used for testing only, fill be removed
  in a future change.

In addition, two new (hidden) APIs have been added to add and query
WorkChains. These APIs have only been added to facilitate testing. They
will most likely change when we add non-test users.

Co-Authored-By: Yang Lu <yanglu@google.com>

Test: WorkSourceTest
Bug: 62390666
Change-Id: Iff361eb98e079c7b2146c092dc27a3618a813c94
2017-12-20 15:13:09 +00:00
Tony Mak
e3d1f65ab6 Add access control to trySetWorkModeEnabled and make it public
Test: Quick Settings -> Toggle work mode
Test: Settings -> Work profile settings -> Toggle work mode
Test: Turn off work mode -> Settings -> Turn on work mode in the suggestion
Test: Turn on work mode through tapping on work app

Test: cts-tradefed run cts-dev --module DevicePolicyManager --test com.android.cts.devicepolicy.QuietModeHostsideTest

BUG: 70212757

Change-Id: I335c3ab2306a3eb794cd35a3a7b0d184dc31f85e
2017-12-20 13:47:53 +00:00
Narayan Kamath
1824f66c1c Merge "WorkSource: Remove unused WorkSource.stripNames." 2017-12-20 12:39:40 +00:00
Sudheer Shanka
b2f83c16d6 Update BatteryStatsImpl to track per-procstate cpu times.
BatteryStatsImpl will track this data by reading from
/proc/uid/<uid>/time_in_state whenever process state changes
and will include this data as part of batterystats dump.

Bug: 66953194
Test: atest core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java
Test: atest hostsidetests/incident/src/com/android/server/cts/BatteryStatsValidationTest.java
Test: atest core/tests/coretests/src/com/android/internal/os/BstatsCpuTimesValidationTest.java

Change-Id: Ibb3e07f518aaf7eea2a00bb95b95dc5f7e09552e
2017-12-19 15:52:25 -08:00
TreeHugger Robot
6348ddcd04 Merge "Make TOP_SLEEPING procstate more like a cached process." 2017-12-19 18:47:19 +00:00
TreeHugger Robot
81bfe137d0 Merge "Remove IIncidentReportCompleted and gmscore WW module would listen to android.intent.action.DROPBOX_ENTRY_ADDED and look up incident tag then upload the report." 2017-12-19 02:30:28 +00:00
TreeHugger Robot
60a3c1e313 Merge "incidentd: Dumping java process meminfo data." 2017-12-19 01:07:49 +00:00
Dianne Hackborn
bad8d91056 Make TOP_SLEEPING procstate more like a cached process.
When an app is on the top of the activity stack but the screen
is not on, this doesn't really count as a top app in the normal
sense.  In particular, we'd really like to apply the normal
restrictions we have on background and cached apps: no network
access, no ability to use wake locks, etc.  (In other words, in
this state the app's activity is stopped, so from its perspective
it is no different than the user leaving it to go to another app.)

To do this, we change the order of the TOP_SLEEPING proc state
out from the range of foreground states down to between the
cached and background states.

Test: ActivityManagerProcessStateTest
Bug: 70808931
Change-Id: I994caba8c27553a452de75efa358be0e683d046f
2017-12-18 17:05:52 -08:00
Kweku Adams
983829fec5 incidentd: Dumping java process meminfo data.
Bug: 65750823
Test: flash device and check incident.proto output
Change-Id: I9b10daddf0580b3fab4ed7970fb838a605eef0e6
2017-12-18 15:19:13 -08:00
TreeHugger Robot
205523d0a2 Merge "Add MtpStorageManager for monitoring filesystem events" 2017-12-18 13:52:14 +00:00
TreeHugger Robot
7221ed9a67 Merge "bugfix: adjust StatsLogEventWrapper length to make sure we don't lose data" 2017-12-16 03:15:59 +00:00
Yi Jin
26ac0306ad Remove IIncidentReportCompleted and gmscore WW module would
listen to android.intent.action.DROPBOX_ENTRY_ADDED and look up
incident tag then upload the report.

Bug: 69860192
Test: N/A
Change-Id: I7f60ad631e8b3243e209aba9408f18bf0bfd4750
2017-12-15 15:35:34 -08:00
Chenjie Yu
8fd80d8178 bugfix: adjust StatsLogEventWrapper length to make sure we don't
lose data

Test: manual test
Change-Id: I7bf014e7e2007e0e065aa7ca99522d9effcf1a68
2017-12-15 14:46:29 -08:00
Tony Mak
b7e6fd49a5 Merge setQuietModeEnabled and trySetQuietModeDisabled into one API
This is the first step to introduce a public API to toggle work mode.

All the callers actually have the similar bit of logic like this:
if (workModeOn) {
    trySetQuietModeDisabled(..)
} else {
    setQuietModeEnabled(...)
}
So, let's merge them into one API.

Test: Quick Settings -> Toggle work mode
Test: Settings -> Work profile settings -> Toggle work mode
Test: Turn off work mode -> Settings -> Turn on work mode in the suggestion
Test: Turn on work mode through tapping on work app

TODO: Allow foreground default Launcher to call the API
TODO: Allow privileged apps to call the API
TODO: Remove @hide
TODO: Write a CTS to toggle the work mode once it is public API

BUG: 70212757

Change-Id: Ibcdd43458c236eca929c5f934fea61be2e2be863
2017-12-15 16:27:48 +00:00
Jerry Zhang
f9c5c2574d Add MtpStorageManager for monitoring filesystem events
MtpStorageManager keeps track of file information and
send notifications for new files. MtpDatabase now uses
this instead of MediaProvider for getting object information,
although some operations are still reflected into MP.

Since MtpStorageManager handles storage ids, remove
that field from StorageVolume and VolumeInfo.

Clean up a lot of the jni code for MtpDatabase.

Bug: 63143623
Test: Test every MtpOperation in a variety of situations on Linux and
Windows. Also use the shell to manipulate files. Verify that the cache
is consistent throughout, and the operations behave as expected. Verify
files created by the shell appear.
Test: adb shell am instrument -w android.mtp /android.support.test.runner.AndroidJUnitRunner
Change-Id: Id4ea810047b0c323399cd833047733e5daafb30a
2017-12-15 00:59:41 +00:00
Pavel Grafov
c4f87e9ceb Introduce DISALLOW_UNIFIED_PASSWORD.
When DISALLOW_UNIFIED_PASSWORD is enforced by managed profile
owner, the user is disallowed to user single lock for both primary
user and the profile.

DMP.isUsingUnifiedPassword() can be called by DPC to check if
this restriction is obeyed.

Test: make cts-verifier
Test: cts-tradefed run cts -m CtsDevicePolicyManagerTestCases -t
  com.android.cts.devicepolicy.ManagedProfileTest#testIsUsingUnifiedPassword
Test: cts-tradefed run cts -m CtsAdminTestCases -t
  android.admin.cts.DevicePolicyManagerTest#testIsUsingUnifiedPassword_failIfNotProfileOwner
Bug: 63909482
Change-Id: Ib758e32d4bf4012d805185bce874f481e17576ba
2017-12-14 20:53:27 +00:00
TreeHugger Robot
895d73105b Merge "Add more IntDef prefixes for auto-documenting." 2017-12-14 07:17:52 +00:00
Jeff Sharkey
ce8db99114 Add more IntDef prefixes for auto-documenting.
Test: builds, boots
Bug: 70177949
Exempt-From-Owner-Approval: annotation-only changes
Change-Id: I76dde6054e06f52240bd4b1a0f196dcb74623608
2017-12-13 20:05:36 -07:00
Jeff Sharkey
8439ac08b1 Start accepting Executors instead of Handlers.
After discussion in API council, our new best-practices are to have
developers provide an Executor to dispatch callbacks/listeners on,
instead of the previous guidance of using a Handler.

Define Context.getMainExecutor() to easily obtain an Executor
associated with the main thread of application.  This allows new
APIs to require a @NonNull Executor.  Also define a new
@CallbackExecutor auto-doc annotation that explains background and
points developers at new Context method above.

Test: cts-tradefed run commandAndExit cts-dev -m CtsContentTestCases -t android.content.cts.ContextTest#testMainLooper
Test: cts-tradefed run commandAndExit cts-dev -m CtsContentTestCases -t android.content.cts.ContextTest#testMainExecutor
Bug: 70348426
Change-Id: I536892bcd80fcfba1bb1ddf67648c08a26d7ddd2
2017-12-13 13:59:04 -07:00
Jeff Sharkey
6cff5c2840 Merge "API that reports first SDK level of the device." 2017-12-13 16:53:55 +00:00
Przemyslaw Szczepaniak
161614e12c Merge changes from topic "deprecated_sdk_1"
* changes:
  Reject apks targeting deprecated sdk
  Add Build.Version.MIN_SUPPORTED_TARGET_SDK_INT field.
2017-12-13 10:15:46 +00:00
Jeff Sharkey
28c660f11a API that reports first SDK level of the device.
This is different from SDK_INT, which can change due to OTA
software updates.

Test: cts-tradefed run commandAndExit cts-dev -m CtsOsTestCases -t android.os.cts.BuildTest
Bug: 69270887
Change-Id: Ic3f4b22b25dc08f3fbdbdf7622c953323447ea01
2017-12-12 14:11:14 -07:00
Alex Chau
b6a9f94d67 Add getDisallowedSystemApps to DevicePolicyManager
- The getDisallowedSystemApps is based on OverlayPacakgesProvider which
  is moved from ManagedProvisinoing
- getDisallowedSystemApps will be used by ManagedProvisioning
- createAndManageUser will now use getDisallowedSystemApps to disable
  disallowed system apps when creating users
- LEAVE_ALL_SYSTEM_APPS_ENABLED can be passed to createAndManageUser to
  enable all system apps
- ACTION_MANAGED_USER_CREATED will be broadcasted to ManagedProvisioning
  after managed user is created to take a system app snapshot

Bug: 65842187
Test: OverlayPackagesProviderTest passes
Test: Disallowed system apps does not appear in device owenr, managed
      profile, and managed users
Test: System app snapshot is created after provisinoing device owner,
      managed profile and managed users
Change-Id: I86f870f7814b5700cf5539e889fb6998514d110f
2017-12-12 18:47:29 +00:00
Przemyslaw Szczepaniak
73b6bc86af Add Build.Version.MIN_SUPPORTED_TARGET_SDK_INT field.
Expose min supported value for app target sdk version.
Curently set to 0.

Test: make
Bug: 63926630
Change-Id: I3af54d33da78f74b6fffba4216fd6a2be25475f6
2017-12-12 11:47:12 +00:00
Kweku Adams
6ccebf2393 incidentd: Removing history from batterystats dump.
Bug: 65750808
Test: N/A
Change-Id: I4790b616791f68833196b50b76d3fd24faa8d46b
2017-12-11 12:30:35 -08:00
Jeff Sharkey
f9b2ef5933 Merge "Guide user towards adoption when card is "empty"." 2017-12-07 03:10:06 +00:00
Chenjie Yu
6842a8c66f bug fix for StatsLogEventWraper tag id
bug fix for ConfigManager fake config

Test: cts test
Change-Id: Ia07992dffb6520074c908151c96da1aa931f97f0
2017-12-06 22:39:56 +00:00
Jeff Sharkey
2035614ade Guide user towards adoption when card is "empty".
When a newly inserted SD card is empty, we'd like to guide the user
towards adopting it.  Similarly, if the card contains personal media
like photos, we'd like to guide the user towards using it as portable
storage.

Do this by quickly hunting around on the card for files under various
well-known directories.  Special logic to ignore bundled "helper"
apps included from the SD card factory.

Test: bit FrameworksCoreTests:android.os.EnvironmentTest
Bug: 69128181
Change-Id: I10e43d2e76379fac5137eb3810742c33f5f57d80
2017-12-06 15:22:09 -07:00
Calin Juravle
fd9f8ae973 Implement ArtManager#snapshotProfile API
Complete the implementation of ArtManager#snapshotProfile. The snapshot is
performed by calling the installer and then return to the caller via the
specified callback.

Bug: 30934496
Test: gts-tradefed -m GtsAndroidRuntimeManagerHostTestCases
Change-Id: I87131487846d91d79a56041445420376b61ca8e7
2017-12-06 18:29:06 +00:00
Pavel Grafov
28939988f0 Profile lock timeout.
When a managed profile has separate lock (a.k.a work challenge)
and maximum screen off timeout set by admin, this timeout will
only cause the profile to get locked, not the whole device.

PowerManagerService now tracks some per-profile state for profiles
that have lock timeout set by admin and have separate lock:
1. timeout set by admin.
2. wake lock summary
3. last activity time
4. whether the profile is considered active
5. whether the profile got locked last time it went inactive.

Wake lock summaries and last activity times are updated at the
same time as global wake lock summary/user activity is updated.

Test: cts-tradefed run commandAndExit cts-dev -a armeabi-v7a -m CtsDevicePolicyManagerTestCases -t com.android.cts.devicepolicy.ManagedProfileTest
Test: runtest -c com.android.server.devicepolicy.DevicePolicyManagerTest frameworks-services
Bug: 63908311
Change-Id: Ief7be4e0bf12bdbedef94a129a13d07a9f98e75c
2017-12-06 17:43:17 +00:00
Narayan Kamath
f0727852f2 WorkSource: Remove unused WorkSource.stripNames.
Used nowhere except in a CTS test. Note that is different from
clearNames, which is different and in active use.

Test: WorkSourceTest
Change-Id: I0f076dfcfba277af720180550e749c69e32436da
2017-12-06 11:20:09 +00:00
TreeHugger Robot
8cb0cf0aa9 Merge "Allow caller to specify target to start in setQuietModeEnabled" 2017-12-06 01:18:52 +00:00
TreeHugger Robot
1523386d85 Merge "PooledLambda" 2017-12-05 20:38:25 +00:00
Dianne Hackborn
d5b9266f01 Merge "Add major version code to platform." 2017-12-05 20:12:17 +00:00
Eugene Susla
2f5ee71ec8 PooledLambda
This introduces PooledLambda - a way of obtaining lambdas without the
allocations overhead.

See PooledLambda javadoc for a guide and PooledLambdaSample for code samples
of useful usages.

Test: ensure samples of PooledLambdaSample work as described.
Change-Id: I46f8ad27bc1de07e19f6e39f89d2cafe4238497a
2017-12-05 10:46:59 -08:00
Tony Mak
64fd8c0bdd Allow caller to specify target to start in setQuietModeEnabled
So, UMS can start the target once user is unlocked.

Test: No secure lock. Try turn off and on work mode by tapping work app.
Test: Have secure lock. Try turn off and on work mode by tapping work app.
Test: Turn off work mode. Reboot. Try to tap on any work app to turn on work mode.

BUG:69926710

Change-Id: Iaaccd5d763f7e36e5a43bad5261f1eb16060f9d6
2017-12-05 15:55:19 +00:00
Dianne Hackborn
3accca05dd Add major version code to platform.
It turns the version code into almost a 64-bit integer, with the
new major part being the upper 32 bits.

The only tricky part about this is the backup manager, since it
stored 32-bit version codes in its backup data sets.  This is dealt
with by, when the major version code is not 0, writing MIN_INT as
the version code and following that by the full long version code,
which we can detect when reading.  Note that this makes backup sets
containing apps with major version codes incompatible with older
versions of the platform.

Bug: 64459786
Test: Added in Change-Id: Iab8a682b62103babd6c16a56b8dc1e97d7078658
Change-Id: Ibfffe235bbfcf358b3741abd3f7197fdb063d3f3
2017-12-04 13:02:10 -08:00
David Chen
2e8f380737 Adds new API to retrieve statsd metadata.
This API can be used by clients to gather stats about statsd, eg.
memory usage, number of metrics/matchers, etc. This data can be used
to debug if devices are not providing expected metrics. The metadata
will be for all configurations, but will not contain the actual
collected metrics since those might have privacy implications.

Test: Tests that statsd and Android still build.
Bug: 69522276
Change-Id: I8e0fedc142f5deed7be6e6309f9444e67d8369ce
2017-12-04 10:23:28 -08:00