Commit Graph

1396 Commits

Author SHA1 Message Date
Svet Ganov
8455ba2341 Historical app ops.
This change is the main check in for the historical app op feature.
The idea is to store a historical data about past app op rejections,
accesses, and durations per op for any UID state indefinitely.

Keeping all operations on record is not practical as app ops are
very frequently performed. To address this we are storing aggregated
data as snapshots where we store for every UID and its packages
how many times each op was accessed, rejected, lasted as an aggregate.

To allow history scaling indefinitely we are taking a logarithmic
approach with only the most recent state stored in memory and all
preceding state stored on disk. State on disk is stored in separate
files where each preceding file, i.e. for an older period, would
cover X times longer period with X number of snapshots covering
X times longer period. Initially X is ten but can be tweaked. For
example, the first file could contain data for ten days with daily
snapshots, while the file for older period would have data
for a hundred days with snapshots every ten days, etc.

The implementation is optimized for fast history update and no impact
on system runtime performance and minimizing memory footprint. We
are lazily persisting state to disk on a dedicated thread as this is
slow. We are also reading the relevant historical files on a query
as this is very rare as opposed to state updates.

The base snapshot interval, i.e. snapshot time span, in the initial
iteration and the logarithmic step are configurable. These can be
changed dynamically and the history would be rewriten to take this
into account.

Test: atest CtsAppOpsTestCases

bug:111061782

Change-Id: I55c32c79911ba12b2ace58d2a782b8df1e6bff60
2019-01-10 19:31:31 -08:00
Yiwei Zhang
0c9ccbe456 Merge "GUP: Update global property for the new dev opt" 2019-01-10 00:33:39 +00:00
Matt Pape
d6c1bdfe6d Merge "Update DeviceConfigService to pass Settings.AUTHORITY to IContentProvider.call invocations." 2019-01-04 17:46:09 +00:00
Matt Pape
7b1c6cda12 Update DeviceConfigService to pass Settings.AUTHORITY to IContentProvider.call invocations.
Also update SettingsProvider to resolve calling packages based on uids
when receiving calls to put or reset values in the config table. This
was necessary because the command line tool calls the DeviceConfig API,
which calls through to SettingsProvider. That was resulting in a
shell uid with an android package prior to this change.

Test: atest SettingsProviderTest:DeviceConfigServiceTest
Bug: 122304633

Change-Id: Ic80c734eb75dcaac688507c241b0995b7488a84f
2019-01-04 08:10:41 -08:00
Yiwei Zhang
51015a756b GUP: Update global property for the new dev opt
We updated the development opt in mechanism for GUP. Now we have
GUP_DEV_OPT_IN_APPS for applications selected to use GUP and
GUP_DEV_OPT_OUT_APPS for applications selected not to use GUP.

Bug: 119221883
Test: Build, flash and boot, verify with prototype
Change-Id: I52869ecf9e411a8dbdc1146f00c82023ba41bebf
2019-01-04 11:01:19 +08:00
TreeHugger Robot
a449853e6e Merge "Rename updatable graphics driver to Game Update Package." 2019-01-03 23:06:35 +00:00
Beverly
ff9c587cc7 Backup charging sounds enabled toggle correctly
Previously deprecated global settings property was overriding
the secure setting for charging_sounds_enabled. Only use the
global setting if the secure setting is unset (null).

Test: manual (repeat steps from bug)
Change-Id: I0bceab765764662855a053c82cb7251a14d4a1d8
Fixes: 119761984
2019-01-03 18:18:51 +00:00
Peiyong Lin
b33ffca825 Rename updatable graphics driver to Game Update Package.
We have rebranded this project to Game Update Package, and GUP for short.

BUG: 119221883
Test: Build, flash and boot. Verify by going to developer options.
Change-Id: If284bd3e0b29cb025833be29fa33179011c151d7
2019-01-02 17:00:00 -08:00
KOUSHIK PANUGANTI
1cd0f4354b Migrate frameworks/base/packages/SettingsProvider/test to androidx.test
See go/jetpack-test-android-migration

Test: make checkbuild
Change-Id: Ie4e8f36dc8ec8769ccc2a016a1da682adb725966
2018-12-18 14:40:47 -08:00
Matt Pape
1278d1c736 Add the API surface for DeviceConfig.
Update DeviceConfigService to call DeviceConfig API directly for get,
set, and reset. Remove the duplicated content uris from various places
in favor of the single constant exposed in DeviceConfig.

Test: atest FrameworksCoreTests:DeviceConfigTest
      atest FrameworksCoreTests:SettingsProviderTest
      atest SettingsProviderTest:DeviceConfigServiceTest
Bug:109919982
Bug:113100523
Bug:113101834

Change-Id: I46d110c4fd29a89af383629d26de4ee39ca852a6
2018-12-14 15:08:29 -08:00
Matt Pape
c1323dc7db Updates to Settings.Config and SettingsProvider for the DeviceConfig API surface.
Remove tags from Settings.Config, as we don't need them for anything yet. Add resetMode and prefix args to the reset call. Remove references to user IDs for config table methods. Force settings state to stop treating all values set by system packages as the new default value, for the config table only.

Test: atest SettingsProviderTest:DeviceConfigServiceTest
      atest FrameworksCoreTests:SettingsProviderTest
Bug:109919982
Change-Id: Ia80c65ac6c0a91ab2b36742e6d446918acbb2f45
2018-12-11 12:32:42 -08:00
Annie Meng
a6d828755e [Multi-user] Create setting for multi-user backup service support
Whether the backup service supports multi-user is now configured in a
Global setting: backup_multi_user_enabled

This allows us to develop multi-user support hidden behind a flag. In a
future CL, we'll also gate the types of users we support.

Also create basic infrastructure for starting the service for a newly
unlocked user (currently a no-op).

Bug: 120212806
Test: 1) atest TrampolineTest
2) adb shell settings put global backup_multi_user_enabled 0;
   unlock system user -> verify service started;
   unlock user 10 -> verify service not started;
3) adb shell settings put global backup_multi_user_enabled 1;
   unlock system user -> verify service started;
   unlock user 10 -> verify service started;

Change-Id: I048e017cfa6148097cebe2eb2916d1b53c53d3b0
2018-12-10 12:33:28 +00:00
Matt Pape
abb6789b7b Add binder implementation to support device config shell commands from the
command line.

Test: atest SettingsProviderTest:DeviceConfigServiceTest
      Further tested manually from the command line
Bug:109919982
Bug:113101834

Change-Id: I62da11f8be9d24a2e304c10592d689ae007eb7ec
2018-12-09 00:35:04 +00:00
Tim Van Patten
636beebaf0 Merge "Update ANGLE Developer Options" 2018-12-08 22:57:34 +00:00
Jeff Sharkey
633a13e2fa Extract common methods into ContentInterface.
Existing APIs that accept a ContentResolver are too restrictive when
the caller has their own ContentProviderClient already bound and
configured, so we're in the market for a solution to open those
existing APIs to accept a wider range of inputs.

The solution we've come up with is to introduce a super-interface
which contains the common ContentProvider APIs, and then make
ContentProvider, ContentResolver, and ContentProviderClient all
implement that interface for consistency.

After this change lands, we can then safely relax existing APIs to
accept this new ContentInterface, offering a clean path to solving
the problem outlined above.

Bug: 117635768
Test: atest android.content.cts
Test: atest android.provider.cts
Change-Id: Ic5ae08107f7dd3dd23dcaec2df40c16543e0d86e
Exempted-From-Owner-Approval: keep tests working
2018-12-08 11:25:13 -07:00
Nicholas Sauer
1698e02b6c Default settings user to current.
bug: 119821127
Test: Switch User 10, put setting, Switch user 0, get setting.
Change-Id: Ie060155166b919f5e9df0fc488d16556e0b55208
2018-12-08 06:28:51 +00:00
Tim Van Patten
3c61284416 Update ANGLE Developer Options
Update ANGLE developer options to allow selecting the OpenGL driver
(default, ANGLE, native) for each app as well as forcing ANGLE for all
apps.

Bug: 118384925
Test: Verify the default/ANGLE/native values are saved and applied and
used by the loader.

Change-Id: I189889b9b780eabe812298c0dd02838f70f97a03
2018-12-07 21:06:58 +00:00
Matt Pape
f31d03c9cf Merge "Add reset and list for device config flags to SettingsProvider to support command line debug tool." 2018-12-07 16:27:59 +00:00
Milo Sredkov
0b243df366 Merge "Create SMART_SUGGESTIONS_IN_NOTIFICATIONS_FLAGS" 2018-12-07 14:13:47 +00:00
Felipe Leme
749b889889 Yet another (major) refactoring on Content Capture and Augmented Autofill.
Bunch of changes:

- Split public SmartSuggestionsService info ContentCaptureService and
  AugmentedAutofillService
- Renamed 'intelligence' packages to either 'contentcapture' or
  'autofil.augmented'
- Renamed internal packages and classes.
- Changed permissions, resource names, etc...
- Moved Augmented Autofill logic from IntelligeceManagerService (R.I.P.) to
  Autofill.
- Optimized IPCs by passing a String instead of the InteractionSessionId
  (that also solves the view -> service dependency).

Test: atest CtsContentCaptureServiceTestCases \
            CtsAutoFillServiceTestCases \
            FrameworksCoreTests:SettingsBackupTest
Test: manual verification with Augmented Autofill Service

Bug: 119638877
Bug: 117944706

Change-Id: I787fc2a0dbd9ad53e4d5edb0d2a9242346e4652d
2018-12-06 16:56:39 -08:00
Matt Pape
6bfc62e496 Add reset and list for device config flags to SettingsProvider to
support command line debug tool.

Test: atest FrameworksCoreTests:SettingsProviderTest
      Further tested manually via command line (see ag/5613024)
Bug:109919982
Bug:113101834
Change-Id: Ib0d9e4c6d806ec3521ac49b8c05fbdad8b5b13d7
2018-12-06 14:06:37 -08:00
Milo Sredkov
d8cacd5bec Create SMART_SUGGESTIONS_IN_NOTIFICATIONS_FLAGS
Create Global.SMART_SUGGESTIONS_IN_NOTIFICATIONS_FLAGS. This will
contain flags that control the automatic generation of suggestions in
notifications (smart actions and smart replies).

Bug: 111437455
Test: atest SettingsBackupTest
Change-Id: I91252d3e0f3d51000f6115a520d7054832fda1ce
2018-12-06 15:07:39 +00:00
TreeHugger Robot
0492440cd9 Merge "Changed how the Smart Suggestions service is defined." 2018-12-05 16:15:50 +00:00
Edgar Wang
495b657b97 Add USB_ALARM_TEMPERATURE in SettingsProvider
In terms of the feature of USB overheat warning, SettingsProvider needs the implementation for the integration.

Bug: 118794842
Test: Build, flash and boot, verify
Change-Id: I41aacd5a7ed7ab1ce0212e7d2520e3c51d7d3bc1
2018-12-05 02:09:08 +00:00
Felipe Leme
658c8e423f Changed how the Smart Suggestions service is defined.
Initially it was defined as secure Settings, but the proper way is to let the
OEMs set it by overlaying a framework resources, which an option to temporarily
override that setting using a Shell cmd (so it can be changed on CTS tests).

This CL also changes how the service can be explicitly enabled / disabled at
the time the system starts, so it can be disabled by a server-push in case of
emergencies (and also manually enable by developers when running the CTS tests
on AOSP builds).

Bug: 119776618
Bug: 111276913
Bug: 117779333

Test: adb shell settings put global \
   smart_suggestions_service_explicitly_enabled true && \
   sleep 10s && \ adb shell stop && adb shell start \
   atest CtsContentCaptureServiceTestCases
Test: atest FrameworksCoreTests:SettingsBackupTest
Test: atest CtsAutoFillServiceTestCases # to make sure it didn't break
Test: m -j SettingsProvider

Change-Id: Ibd1bba0c0d534b4b6344516d8ff893142785a57a
2018-12-04 17:46:49 -08:00
Philip P. Moltmann
c9907ce3e8 New settings for testing permission controller
The settings are used to reduce the runtime of the location access
permission controller tests.

Bug: 120303361
Test: atest CtsPermissionTestCases:android.permission.cts.LocationAccessCheckTest
      atest --test-mapping frameworks/base/core/java/android/provider/:presubmit
Change-Id: I47ed218dc0a300f73a1c0308fce60b61e6a423b0
2018-12-01 17:03:31 -08:00
Hongyi Zhang
a02118df54 add native_flags_health_check_enabled to Settings.Global
add native_flags_health_check_enabled to Settings.Global. It is used
to receive the corresponding experiment flag from P/H.

Bug: 119627143
Test: manual on device
Change-Id: I980f73925818a5cb6f756d78bad324bafefc3784
2018-11-27 16:52:38 -08:00
Nicholas Sauer
725005329a settings command list by user
bug: 119872843
Test: $ adb -e shell settings list
Bad arguments
$ adb -e shell settings list secure
$ adb -e shell settings list gl
Invalid namespace 'gl'
$ adb -e shell settings list global
...
$ adb -e shell settings list --user 10 global
...
$ adb -e shell settings list --user 0 global
...
$ adb -e shell settings put --user 10 secure zzz.test true
$ adb -e shell settings get --user 10 secure zzz.test
true
$ adb -e shell settings get --user 0 secure zzz.test
null
$ adb -e shell settings list --user 0 secure
... zzz.test not present ...
$ adb -e shell settings list --user 10 secure
...
zzz.test=true

Change-Id: I8ab3d20cbe9221a52f85151d97e0c6d92bf7bb43
2018-11-21 10:33:10 -08:00
TreeHugger Robot
df1d8ea70b Merge "settings command delete by user" 2018-11-21 04:08:00 +00:00
Nicholas Sauer
3d87d1e525 settings command delete by user
bug: 118492733
Test: $ adb shell settings --user 10 put secure autofill_service blah
$ adb shell settings --user 10 get secure autofill_service
blah
$ adb shell settings --user 10 delete secure autofill_service
$ adb shell settings --user 10 get secure autofill_service
null

Change-Id: I771bf8e148898703332ead8162c5f9fe4863ea74
2018-11-20 09:09:58 -08:00
Nicholas Sauer
c1e8c3ca11 Fix SettingsProviderTest.
bug: 119814205
Test: atest -s emulator-5554 frameworks/base/packages/SettingsProvider/test
Change-Id: Ifa57074f492e81897866ddfb4a4bf86d44b2ad74
2018-11-20 08:49:08 -08:00
Salvador Martinez
04b98338f7 Create new battery saver mode
Creates the concept of a "dynamic" battery saver mode controlled by
an external input in the framework. This mode behaves similarly to the
current automatic percentage based battery saver minus the fact that
the trigger is not static and that we might want to disable it at
a different level than when it was triggered.

Test: atest BatterySaverStateMachineTest
Bug: 111450127
Change-Id: Iac0de4f8f0336ed8870d2397574bd8885b7aa6a2
2018-11-13 09:29:36 -08:00
Rhed Jao
651bf6d103 Revert settings proto of a11y recommended timeout.
Bug: 119282240
Test: build pass
Change-Id: I6c3b034556f9c226e0d48dbdec6892d33373b6cd
2018-11-12 17:29:16 +08:00
Peiyong Lin
2d5a2bb0ad Add global property to store opt-in application package name.
We provide a way in developer option to opt-in an application to use updated
graphics driver. To make sure we set up the graphics environment correctly, we
need to access the package name of the selected application. This patch
introduces a global property to store the package name.

BUG: 119221883
Test: Build, flash and boot, verify with prototype
Change-Id: I49dfcccf387169c072fb9345f7a50c00fcdb0737
2018-11-09 11:53:00 -08:00
Andrii Kulian
03faa1467a Merge "Add dev option to force desktop mode" 2018-11-09 19:25:19 +00:00
Rhed Jao
41118f33b1 Update a11y recommended timeout api.
Update api name to getRecommendedTimeoutMillis.
Api returns timeout for interactive or non-interactive controls.
Also provide the options for a11y service to specify two kinds of
timeout.

Bug: 111210981
Test: atest SettingsBackupTest
Test: atest AccessibilityManagerTest
Test: atest AccessibilityServiceInfoTest
Change-Id: I37d35796fd72bb4d6628a6bb33b111987f321552
2018-11-09 10:24:07 +08:00
Andrii Kulian
15cfb42801 Add dev option to force desktop mode
When turned on, this will:
- Enable system decorations on external screens
- Enable freeform windowing mode on external displays
- TODO: Show mouse pointer on external display

Bug: 112451761
Test: DisplaySettingsTests
Test: DesktopModePreferenceControllerTest
Test: FreeformWindowsPreferenceControllerTest
Change-Id: If46399b9d6b8faa2a11fbdf8a4bbfef1284147c8
2018-11-07 15:21:04 -08:00
Ricky Wai
13b0abe1bc Add feature flag for "show hidden launcher icon apps"
and "install app notification"

Bug: 111214100
Test: CTS test will be submitted with flag enabling commit
Change-Id: I604d75dc48e09039619f571d418a700106cbdd5d
2018-11-07 11:28:49 +00:00
Cody Northrop
0fa1d220dc Add GLES specific setting for layers
This allows loading layers for GLES and Vulkan at the
same time by adding a GLES specific setting:

  GPU_DEBUG_LAYERS_GLES

which mirrors the existing setting:

  GPU_DEBUG_LAYERS

The Vulkan and GLES loaders now scan distinct layer
lists, correcting an issue that would prevent Vulkan
from loading when it failed to find GLES layers.

Bug: 110883880
Test: Load a GLES layer when running ANGLE with Vulkan backend
Test: cts-tradefed run singleCommand cts -m CtsGpuToolsHostTestCases
Change-Id: I370be4ce6fdde9e95989eb1f274add8b5790263e
2018-11-01 14:15:44 -06:00
Matt Pape
01a9c15353 Forward 'help' and '-h' to default implementation for ShellCommand.
This makes 'adb shell settings help' and 'adb shell settings -h' work.

Previously:
 $ adb shell settings help
 Invalid command: help

Updated:
 $ adb shell settings help
 Settings provider (settings) commands:
   help
       Print this help text.
   get [--user <USER_ID> | current] NAMESPACE KEY
 ...

Test: adb tested on local devices.

bug: 113100523

Change-Id: Ifc3f541aa12da9c79b9b7e9db0e30d4aace3392a
2018-10-29 17:10:48 +00:00
Matt Pape
ba266c7b7f Merge "Add a new config table to the settings provider for remotely configured parameters. This includes the minimum number of changes necessary to make the table work, but no API surface yet." 2018-10-17 22:02:14 +00:00
Matt Pape
1b31a331b0 Add a new config table to the settings provider for remotely configured parameters. This includes the minimum number of changes necessary to make the table work, but no API surface yet.
Test: local tests

bug: 113100523

Change-Id: I47f89f5e6657a2a347e62cb40924bba4547f7dd9
2018-10-17 09:58:32 -07:00
Matt Pape
7f6aace73a Merge "Stop waiting when elapsed time is equal to or greater than the timeout, rather than strictly greater than. This avoids a rare problem where the loop manages to complete at exactly the timeout time and then makes a call to wait(0), which waits indefinitely until another thread notifies it instead of timing out after 0 ms." 2018-10-16 23:01:22 +00:00
Cody Northrop
ebe6a56f80 Revert "Revert "Rootless GPU Debug for GLES""
This reverts commit 2653e624dc.

Exempt-From-Owner-Approval: This restores a commit that was already
approved and rolled back for unrelated reasons in frameworks/native.

Test: cts-tradefed run singleCommand cts -m CtsGpuToolsHostTestCases
Test: Chromium starts up
Test: CtsDeqpTestCases:include-filter:dEQP-EGL.*
Test: CtsDeqpTestCases:include-filter:dEQP-GLES2.*
Test: CtsDeqpTestCases:include-filter:dEQP-GLES3.*
Test: CtsDeqpTestCases:include-filter:dEQP-GLES31.*
Bug: 110883880
Bug: 117609555
Change-Id: Iab23a5d598986ba34c0ba62dc78299d022924cd9
2018-10-16 18:51:28 +00:00
Matt Pape
990c77c1f8 Stop waiting when elapsed time is equal to or greater than the timeout,
rather than strictly greater than. This avoids a rare problem where the
loop manages to complete at exactly the timeout time and then makes a
call to wait(0), which waits indefinitely until another thread notifies
it instead of timing out after 0 ms.

Test: local unit testing
Bug: 113100523

Change-Id: If23dc50e2bf58d0d928d47807ec792c92ff47ee1
2018-10-16 10:41:53 -07:00
Cody Northrop
2653e624dc Revert "Rootless GPU Debug for GLES"
This reverts commit f41625936f.

Exempt-From-Owner-Approval: Reverting
Bug: 110883880
Test: Chrome no longer crashes
Change-Id: I70c9d4a0376b27059e7759e1b6283903c0cf168b
2018-10-12 21:34:15 +00:00
Cody Northrop
f41625936f Rootless GPU Debug for GLES
This commit adds the ability to enable debug layers for OpenGL ES.

Similar to Rootless Debug for Vulkan, layers can be loaded from the
APK or base directory of selected debuggable applications.

Layers will only be loaded when developers opt-in via settings for a
target application.

A separate application can now be specified as an additional location
for layer discovery.

Example usage:

  adb shell settings put global enable_gpu_debug_layers 1
  adb shell settings put global gpu_debug_app <target_app>
  adb shell settings put global gpu_debug_layers layer1.so:layer2.so
  adb shell settings put global gpu_debug_layer_app <layer_app>

Test: cts-tradefed run singleCommand cts -m CtsGpuToolsHostTestCases
Bug: 110883880
Change-Id: I16df1951be0c06c80a445991e3e6d1636222b17b
2018-10-10 14:50:25 -06:00
TreeHugger Robot
10efed0b49 Merge "Remove SMS access for apps other than current SMS handler" 2018-10-06 20:14:06 +00:00
Eugene Susla
9351985f7a Remove SMS access for apps other than current SMS handler
Bug: 110098858
Test: atest android.telephony.cts.SmsManagerTest#testContentProviderAccessRestrictions
Change-Id: I9da992565b04ca5fa2656801fd2cfe4b196ef9b4
2018-10-05 16:51:13 -07:00
TreeHugger Robot
e1251df8eb Merge "Device-wide unknown sources block option for DPC." 2018-10-02 13:07:25 +00:00