Commit Graph

3490 Commits

Author SHA1 Message Date
TreeHugger Robot
18ef0d5bef Merge "Use proper logic operators in package name validation" 2018-01-24 18:38:44 +00:00
Daniel Nishi
1da5ab0183 Merge "Add a new setting for Bluetooth on while driving." 2018-01-24 18:22:15 +00:00
TreeHugger Robot
41584b69fd Merge "Update crash dialog options." 2018-01-24 18:21:54 +00:00
Dianne Hackborn
994b5ad737 Fix issue #72116995: Add permission guarding Service#startForeground
Now requires permission if targeting P.

Note that this is a separate permission from the existing one
that is required for instant apps to use foreground services.  The
reason for this is that their semantics are different (the instant
apps permission is associated with an app op for control over what
the app is allowed, while the regular app permission is just a
normal permission that is always granted and only there for
auditing of apps), and there are probably going to be cases where
a developer will want to use a foreground service in the full
version of their app but not as an instant app.

Bug: 72116995
Test: atest CtsAppTestCases
Change-Id: If5a79e7ed5ab9e0edc77410315eb4d2df8ac850b
2018-01-24 17:58:24 +00:00
Geoffrey Pitsch
d997d191ed Merge "Security model for moving sharesheet to systemui" 2018-01-24 17:33:59 +00:00
Michal Karpinski
6fe6c8ef02 Use proper logic operators in package name validation
And add unit tests for common validators as atonement...

Test: atest frameworks/base/core/tests/coretests/src/android/provider/SettingsValidatorsTest.java
Bug: 64988620
Change-Id: I561319356cbca70da326586c2a762293c4ade9ed
2018-01-24 15:42:15 +00:00
Michal Karpinski
6e39b9556a Merge "Add restore of Settings keys to SettingsBackupAgent.RESTORE_FROM_HIGHER_SDK_INT_SUPPORTED_KEYS" 2018-01-24 10:37:27 +00:00
TreeHugger Robot
19630d165e Merge "Support conditional removal of oahl from bootclasspath" 2018-01-24 09:04:39 +00:00
Chenbo Feng
39937d4b8d Merge changes from topic "bpfStats" am: 6e03224697 am: e041f38289
am: cf4b551fb7

Change-Id: I672efa1221e17d0962ca5702330fc83d75fcac81
2018-01-24 05:46:52 +00:00
Chenbo Feng
cf4b551fb7 Merge changes from topic "bpfStats" am: 6e03224697
am: e041f38289

Change-Id: Ib4790159fd331858ce9f3343a44ccec66fae638c
2018-01-24 05:39:54 +00:00
Maggie Wang
d2c4f7f610 Merge "Deprecate location modes" 2018-01-24 01:47:54 +00:00
Andrew Sapperstein
5b679c4d17 Update crash dialog options.
Add app info to crash dialog. Show close (aka force stop) on all dialogs,
not just the repeat dialog.

Remove showing restart and mute by default. Add Settings.Global
configuration parameters for both in case we want to show those options again.

Also some minor cleanup (converting some members to locals).

Bug: 63703353
Bug: 70640329
Test: manual
Change-Id: I83a2b1a5ea0f6a2a9765d7648dab7c184bfbc43f
2018-01-23 10:52:15 -08:00
Maggie
aa080f9676 Deprecate location modes
1. Mark public fields as deprecated: LOCATION_MODE, LOCATION_MODE_HIGH_ACCURACY, LOCATION_MODE_SENSORS_ONLY,
LOCATION_MODE_BATTERY_SAVING, LOCATION_MODE_OFF.

2. Add new public  methods to LocationManager:
setLocationEnabled(boolean)
isLocationEnabled()
setLocationProviderEnabled(String, boolean)

3. Remove LOCATION_PREVIOUS_MODE and constant
LOCATION_MODE_PREVIOUS. Refactor code that references
LOCATION_MODE_PREVIOUS to use LocationManager.setLocationEnabled or
LOCATION_MODE_HIGH_ACCURACY.

4. Mark deprecated fields and methods as removed: LOCATION_PROVIDERS_ALLOWED, setLocationProviderEnabled(), isLocationProviderEnabled()

5. Refactor logic in Settings app and Quick Settings to call
LocationManager.setLocationEnabled() instead of setting location mode.

Bug: 70990911
Test: Manual
Change-Id: Ia49b385f8b6a358b62291983eb0146af0ecf8e02
2018-01-23 10:45:49 -08:00
Daniel Nishi
7976412772 Add a new setting for Bluetooth on while driving.
This also adds a feature flag to read to see if the feature is enabled
on a given device.

Bug: 66679618
Test: Used in Settings Robotest
Change-Id: Idb892aa78f244d026a8d4b7dc104d47e0f611085
2018-01-23 09:35:02 -08:00
Paul Duffin
beee5dcdfa Support conditional removal of oahl from bootclasspath
This makes the runtime handling of the org.apache.http.legacy library
conditional based on a build flag REMOVE_OAHL_FROM_BCP.

When REMOVE_OAHL_FROM_BCP=true:
* The framework-oahl-backward-compatibility is added to the
  bootclasspath instead of org.apache.http.legacy.
* Any APK that targets pre-P has org.apache.http.legacy added to their
  library list.

Otherwise:
* The org.apache.http.legacy library is added to the bootclasspath.
* Any APK that explicitly specifies that it depends on the
  org.apache.http.legacy library has the library removed as the classes
  are available at runtime.

Tested both cases by building with or without the build flag, flashing,
setting up, adding an account, adding a trusted place. Adding an account
failed when REMOVE_OAHL_FROM_BCP=true.

adb install -r -g out/target/product/marlin/testcases/FrameworksCoreTests/FrameworksCoreTests.apk
adb shell am instrument -w -e class android.content.pm.PackageBackwardCompatibilityTest com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner

Bug: 18027885
Bug: 72375096
Test: as above
Change-Id: Ie88fb79da76d3cbbd27eaf820c872191ecba2b17
2018-01-23 17:09:32 +00:00
Michal Karpinski
b52575c528 Add restore of Settings keys to
SettingsBackupAgent.RESTORE_FROM_HIGHER_SDK_INT_SUPPORTED_KEYS

Now that we have validators in place for all settings that are
backed up.

Also, add a setting to override restoreAnyVersion, which can be
modified by Phenotype.

Bug: 64988620
Bug: 72162887
Test: manual (P->P - master without changes to master with changes)
Test: manual (Q->P = API29 -> API28)
Test: a lot of other scenarios covered by our end-to-end tests
Test: a GTS test with both settings that don't have validators
      and have values that wouldn't pass validation will be added
      in vendor/xts
Change-Id: Ifaf94306984b5204c79648d48fd4056ad403196e
2018-01-23 15:54:33 +00:00
Geoffrey Pitsch
88f3d4dbe1 Security model for moving sharesheet to systemui
ResolverActivity (still in frameworks) now requests a "permission token"
that it hands to a stubbed system ui activity ChooserActivity.

This permission token allows an app (SysUI) with the signed permission
"START_ACTIVITY_AS_CALLER" to call
ActivityManagerService#startActivityAsCaller. Permission tokens are a
one-time use, limited-time offer.

Test: runtest systemui && manual testing
Bug: 69850752
Change-Id: I3600e1a8ff9eea7397f5f59853423c79b6401f98
2018-01-23 10:23:55 -05:00
Chenbo Feng
828f1b45fb Add bpf support for NetworkStatsFactory
Add the native method used to read the detail information of network
stats from bpf maps. The native method of NetworkStatsFactory should
choose the correct implementation to get the stats detail depending on
the kernel version. Currently the bpf result is printed as a reference
and the actual behavior of NetworkStatsFactory should not change.

Test: NetworkStatsFactory related cts test should not fail.
Bug: 30950746
Change-Id: I4715a23559b5b2306bd556cea0431f0ed172a993
2018-01-23 00:34:53 -08:00
Jong Wook Kim
16c5d2c8d2 Merge "Wifi MAC Randomization: Developer option change global settings" 2018-01-23 06:40:51 +00:00
Calin Juravle
cd99c3a17a Merge "Perform a non strict matching of .dm files when computing the size" 2018-01-23 04:11:04 +00:00
Jong Wook Kim
0a20eda58d Wifi MAC Randomization: Developer option change global settings
Enabling/disabling the connected mac randomization toggle in developer options will change Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLE, which the wifi framework can look at to decide whether or not to randomized mac addresses. Also added descriptions for the toggle in developer options.

Bug: 67908229
Bug: 71548421
Test: manual testing of checking that the option correctly displays and
logs to check that the toggle correctly changes values.
Change-Id: I48a2dc34d772b0e4ce7637df904b274c9fe1218f
2018-01-22 18:13:40 -08:00
Calin Juravle
10b27eb2cc Perform a non strict matching of .dm files when computing the size
'adb shell pm install' creates the PackageLite structure without
validating or renaming the input files to '.apk'.

Be more permissive in DexMetadataHeler when computing the size of the
package to allow for this scenario.

Test: atest
core/tests/coretests/src/android/content/pm/dex/DexMetadataHelperTest.java
Bug: 72267410

Change-Id: Ica446b0822be71826d02d01ada015a43d8133c68
2018-01-22 14:14:39 -08:00
Ricky Wai
b7f09acde2 Merge "Use encoder id as insecure DP encoder random seed" 2018-01-22 21:47:38 +00:00
Ricky Wai
875374a494 Use encoder id as insecure DP encoder random seed
Originally all apps that use insecure DP encoder will generate
the same result in IRR encoder as IRR is purely rely on random generator,
hence all apps will return the same IRR result in encodeBoolean() for
insecure encoder.

Now we change insecure encoder to use encoder id as random generator seed,
so different app will have different deterministic insecure encoder result.

Also, this CL fixes some existing failed tests.

Bug: 63908748
Test: runtest frameworks-services -p com.android.server.net.watchlist PASS
Test: bit FrameworksPrivacyLibraryTests:android.privacy.RapporEncoderTest PASS
Test: bit FrameworksPrivacyLibraryTests:android.privacy.LongitudinalReportingEncoderTest PASS
Change-Id: Iab84a2932d8f84da1dd2f880d2c1567dcbf1e090
2018-01-22 18:55:01 +00:00
Nancy Zheng
d57c1df388 Merge "Add setting/experiment for small battery devices to have all forced app standby enabled except for when the device is charging." 2018-01-22 17:59:35 +00:00
Nancy Zheng
525aaa13dc Add setting/experiment for small battery devices to have
all forced app standby enabled except for when the device
is charging.

Reverting the revert of this CL. The only change is to use
EXTRA_PLUGGED instead of EXTRA_STATUS in detecting charging
state. Verified that this passes CTS test for battery saver.

Bug: 69259147
Test: atest frameworks/base/services/tests/servicestests/src/com/android/server/ForceAppStandbyTrackerTest.java
Test: atest CtsBatterySavingTestCases
Change-Id: I4f3ffc0c865a1a3a035b6d9d6838b5056b666eb9
2018-01-19 15:27:42 -08:00
TreeHugger Robot
20220cdb72 Merge "Add validators for all Settings.Secure settings that are backed up" 2018-01-19 21:53:29 +00:00
TreeHugger Robot
51d7925f96 Merge "Add cluster&active cost to cpu power" 2018-01-19 20:41:45 +00:00
Michal Karpinski
964943ab98 Add validators for all Settings.Secure settings that are backed up
A few no longer used settings were removed from SETTINGS_TO_BACKUP.

And extend the unit test to fail if new ones are added without
a validator. Also fail to boot in that case.

Ref: go/android-p-backed-up-settings
Test: atest frameworks/base/core/tests/coretests/src/android/provider/SettingsValidatorsTest.java
Bug: 64988620
Change-Id: I94b4039c9f54c341aec72b62579be3dd8bd84dbb
2018-01-19 19:40:46 +00:00
Makoto Onuki
bd9b0cf9b0 Merge "Make DEBUG_FPS_DIVISOR updatable via setting for possible experiments" 2018-01-19 18:11:01 +00:00
Michal Karpinski
8f0d71e3ee Merge "Add validators for all Settings.Global settings that are backed up" 2018-01-19 11:44:13 +00:00
Michal Karpinski
ebd9998326 Merge "Add SettingsValidators class and a test for validators enforcement" 2018-01-19 11:42:52 +00:00
Mike Ma
3d422c37b7 Add cluster&active cost to cpu power
Add logic to read per UID cluster and active CPU time from the kernel in
BatteryStatsImpl, store them in BatteryStats.Uid, then use these data to
calculate CPU power more accurately in CpuPowerCalculator.

Change-Id: I06a84d2bba8b97445466b310f15092614ff3477f
Bug: 67752294
Test: PowerProfileTest
Test: KernelUidCpuActiveTimeReaderTest
Test: KernelUidCpuClusterTimeReaderTest
Test: BatteryStatsCpuTimesTest
2018-01-19 01:24:13 -08:00
TreeHugger Robot
244c6a65e9 Merge "Treat missing font in fallback chain" 2018-01-19 01:03:55 +00:00
Makoto Onuki
5cc9f721ce Merge "Revert "Add setting/experiment for small battery devices to have"" 2018-01-18 23:10:54 +00:00
Makoto Onuki
12391f22df Revert "Add setting/experiment for small battery devices to have"
This reverts commit 9a60382be1.

Reason for revert: Broke battery saver

Bug: 72168928
Bug: 69259147

Change-Id: I09664653686a51c297224c863c4fc6d1ff7e5caf
Test: Manual test
Test: atest CtsBatterySavingTestCases
2018-01-18 22:05:40 +00:00
TreeHugger Robot
940ba0c8fe Merge "Rename CrossProfileApps API as per API council feedback" 2018-01-18 21:10:18 +00:00
Tony Mak
b0d22627e9 Rename CrossProfileApps API as per API council feedback
Three changes:
1. android.content.pm.crossprofile - > android.content.pm
2. getProfileSwitchingIcon -> getProfileSwitchingIconDrawable
3. startMainActivity “user” parameter should be named “targetUser”

Test: atest FrameworksServicesTests:com.android.server.pm.CrossProfileAppsServiceImplTest
Test: atest frameworks/base/core/tests/coretests/src/android/content/pm/CrossProfileAppsTest.java
Test: atest cts/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/CrossProfileAppsHostSideTest.java

FIXES: 71818128

Change-Id: Icf9a6d1f8b6808935ffd79b43185c7b12235f349
2018-01-18 21:07:50 +00:00
Michal Karpinski
5db1e430f9 Add validators for all Settings.Global settings that are backed up
And extend the unit test to fail if new ones are added without
a validator. Also fail to boot in that case.

Ref: go/android-p-backed-up-settings
Test: atest frameworks/base/core/tests/coretests/src/android/provider/SettingsValidatorsTest.java
Bug: 64988620
Change-Id: Ibd4a2bad0c6a1f2a9e1beec1a4ec8e6972fd86a4
2018-01-18 20:36:39 +00:00
TreeHugger Robot
881a432d08 Merge "Compute hyphenated word pieces in MeasuredText" 2018-01-18 20:32:54 +00:00
Michal Karpinski
2c37b08510 Add SettingsValidators class and a test for validators enforcement
Common validators have been moved out to SettingsValidators class,
as they'll be now shared between Settings.System, Settings.Secure
and Settings.Global.

All validators of Settings.System settings have been verified to be
correct and the missing ones were added.

A unit test that verifies that all settings on SETTINGS_TO_BACKUP
list in Settings.System have validators on VALIDATORS list has been
added. This test will also cover Settings.Secure and Settings.Global
once validators are added for those settings. Also, fail to boot
in that case.

Ref: go/android-p-backed-up-settings
Test: atest frameworks/base/core/tests/coretests/src/android/provider/SettingsValidatorsTest.java
Bug: 64988620
Change-Id: I1fe951604010ab0c3f68a66296885a9766690d69
2018-01-18 20:23:17 +00:00
Calin Juravle
d5d154efcd Merge "Support installation of DexMetadata files (.dm)" 2018-01-18 19:53:54 +00:00
Seigo Nonaka
545faa4c4c Treat missing font in fallback chain
Bug: 72159040
Test: bit FrameworksCoreTests:android.graphics.TypefaceSystemFallbackTest
Change-Id: I481a51811d228b87c9eb07b536a95cb699f1669c
2018-01-18 11:06:34 -08:00
Seigo Nonaka
87b1547c92 Compute hyphenated word pieces in MeasuredText
Bug: 67504091
Test: bit CtsTextTestCases:*
Change-Id: Id1ff5abbf6d433a2d8baad364133fca98d1fe450
2018-01-18 18:30:02 +00:00
Andrew Sapperstein
43643aeed1 Ignore first crash dialog.
By default, no longer show the crash dialog the first time an app
crashes. Instead, only multiple crashes will show by default.

Add Settings.Global and Settings.Secure flags to toggle this behavior.
Settings.Secure value is controlled via a setting in developer options.

Ensure Settings.Secure is backed up but Global value is not.

Bug: 63703353, 70640329
Test: SettingsBackupTest, manual crashing with a test app

Change-Id: Ib0a66cabdf60aad5e60eded9bfb96e3126bf032f
2018-01-17 15:44:33 -08:00
TreeHugger Robot
13ca805084 Merge "Create Settings.Global.ENABLE_SMART_REPLIES_IN_NOTIFICATIONS setting" 2018-01-17 22:15:52 +00:00
Calin Juravle
3fc56c3000 Support installation of DexMetadata files (.dm)
Add support in the package installer to install dex metadata files
alongside the application apks (base or splits).

During installation or update the dex metadata files will need to have a
matching apk file. The matching is done by checking the file extension
(e.g. base.apk -> base.dm, split_a.apk -> split.dm).

On disk, the metadata files are placed next to the apks.

The .dm files will be used during install-time optimizations and passed
verbatim to dex2oat.

Test: adb shell am instrument -w \
1) adb shell am instrument -w \
  -e class android.content.pm.DexMetadataHelperTest

com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner

2) adb install-multiple CtsClassloaderSplitApp.apk
CtsClassloaderSplitApp.dm CtsClassloaderSplitAppFeatureA.apk
CtsClassloaderSplitAppFeatureA.dm CtsClassloaderSplitAppFeatureB.apk

3) gts-tradefed -m GtsAndroidRuntimeManagerHostTestCases

Bug: 30934496

Change-Id: I86f0a8307705ff3d6a5a85c2fcaae085dd62d4af
2018-01-17 12:15:48 -08:00
Nancy Zheng
2baa9ab4be Merge "Add setting/experiment for small battery devices to have all forced app standby enabled except for when the device is charging." 2018-01-17 19:00:10 +00:00
Makoto Onuki
3c9c998ffc Make DEBUG_FPS_DIVISOR updatable via setting for possible experiments
Bug: 70982379
Test: Manual test with "settings put global fps_divisor 4" and reboot

Change-Id: I61437ede907fc387257bf9c07dab46f0032d4e1b
2018-01-17 10:55:16 -08:00
Petr Cermak
9669e90c8d Create Settings.Global.ENABLE_SMART_REPLIES_IN_NOTIFICATIONS setting
This will allow us to toggle and experiment with the feature.

Bug: 67765414
Test: atest SettingsBackupTest
Change-Id: I28d0a817561cb6811966d229e8367adb4eb6d40b
2018-01-17 18:04:04 +00:00