Commit Graph

86517 Commits

Author SHA1 Message Date
Eran Messeri
5cb1e8e636 Merge "Enterprise Policy for Private DNS Setting" 2018-10-17 16:59:57 +00:00
TreeHugger Robot
7c5c113f53 Merge "Snapshot memory state for some native processes" 2018-10-17 16:30:55 +00:00
Mihai Popa
03cc437b08 Merge "Move ViewGroup#mChildren[Count] to dark-grey list" 2018-10-17 15:21:31 +00:00
Rafal Slawik
0862158f13 Snapshot memory state for some native processes
Which processes to snapshot is controlled by a whitelist.

Benchmark for taking the snapshot:
https://docs.google.com/spreadsheets/d/1vG9ku8Uu8104CmKbO4cNeEKVeeByvHY--p0_dK1GAdA/edit?usp=sharing
(The difference between the first two sheets.)
~20ms constant cost plus ~4ms per process.

Bug: 115968899
Test: manually verified that statsd is included in the report
Change-Id: Iba680531c563ba28fae849e44044313866b2103f
2018-10-17 10:34:27 +01:00
TreeHugger Robot
11f07dec94 Merge "Private DNS: Add user restriction" 2018-10-17 08:36:56 +00:00
TreeHugger Robot
a1b9c31cbc Merge "Move displayId into MotionEvent" 2018-10-17 07:34:36 +00:00
TreeHugger Robot
c4b7e853c1 Merge "Change the feature flag for Hearing Aid behavior" 2018-10-17 04:57:55 +00:00
TreeHugger Robot
38d0bd0634 Merge "Set EXTRA_USER instead of EXTRA_USER_ID for ACTION_SHOW_ADMIN_SUPPORT_DETAILS" 2018-10-17 00:26:37 +00:00
TreeHugger Robot
0569538675 Merge "Clean-up removed RecoveryController API" 2018-10-17 00:22:02 +00:00
Peiyong Lin
88c38eb6fe [GraphicsEnvironment] Add whitelist support.
This patch adds the ability to load whitelist from updatable graphcis driver
apk. Typically a whitelist is part of the graphics driver apk, and the name is
set by overwriting ro.gfx.driver.whitelist.0

BUG: 117241379
Test: Build, flash and boot, whitelist an app and verify.
Change-Id: Ie36ca0173a90a8e48acaca2979ab64bbf92eeaed
2018-10-16 12:54:38 -07:00
Cody Northrop
fba8e6342f Merge "Revert "Revert "Rootless GPU Debug for GLES""" 2018-10-16 18:54:42 +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
TreeHugger Robot
e9944aa1dc Merge "Make loadSafeLabel a generic facility as makeSafeForPresentation" 2018-10-16 16:21:10 +00:00
Neil Fuller
91d56c6b3c Merge "Remove usage of StringFactory" 2018-10-16 16:06:32 +00:00
Wale Ogunwale
80d3529acd Merge changes I0d33b4d3,I7034fcb2
* changes:
  Moved some log config. to ActivityTaskManagerDebugConfig (21/n)
  Moved more stuff from AMS to ATMS (20/n)
2018-10-16 12:39:09 +00:00
Neil Fuller
39568a2436 Remove usage of StringFactory
Code outside of the runtime should not use StringFactory.
The java.lang.String API works fine.

Bug: 113148576
Test: build only
Change-Id: I67ce6d7a13afd3ca7c0beffb33289d93e906e4be
2018-10-16 13:24:15 +01:00
Luke Huang
ca4d6f124c Merge "Network-related commands porting" am: 9b20115264 am: 923aa75d75
am: 11454a2163

Change-Id: I61fea40c9659f1eed1638cc196d309289393d6a5
2018-10-16 02:32:50 -07:00
Luke Huang
11454a2163 Merge "Network-related commands porting" am: 9b20115264
am: 923aa75d75

Change-Id: I957050b73afed3e6fde908883568b81198310622
2018-10-16 02:19:35 -07:00
TreeHugger Robot
13635f0ec0 Merge "Fix invalid character access" 2018-10-16 09:08:01 +00:00
Luke Huang
923aa75d75 Merge "Network-related commands porting"
am: 9b20115264

Change-Id: I96b2bb80cca6e9d80f3f0fe08f7b71ce31b67528
2018-10-16 01:09:30 -07:00
TreeHugger Robot
1728c04cae Merge "Instantiate InputMethodManager for each display (2nd try)" 2018-10-16 08:02:49 +00:00
TreeHugger Robot
77f7614558 Merge "Add phsyical activity recognition AppOp" 2018-10-16 07:50:27 +00:00
Luke Huang
9b20115264 Merge "Network-related commands porting" 2018-10-16 07:44:37 +00:00
TreeHugger Robot
ba1a334208 Merge "Stop resetting app drag drop state when startDrag is invoked twice." 2018-10-16 02:14:44 +00:00
Stanley Tng
2350e15f4b Merge "Add Feature Flag for Hearing Aid Profile"
am: e4e653b8bf

Change-Id: I53ba5bf7547b66e29a0fbed7b5d596f010dd8a9b
2018-10-15 18:57:59 -07:00
Wale Ogunwale
98875615dc Moved some log config. to ActivityTaskManagerDebugConfig (21/n)
Test: Existing test pass
Bug: 80414790
Change-Id: I0d33b4d325be805ac49a97ea02ad1a10fd1bf24f
2018-10-15 18:27:14 -07:00
Seigo Nonaka
5783c13806 Fix invalid character access
The invalid access has introduced by
I976df4db63be241af395dd30dd94182f76bdae53

Bug: 114454225
Test: atest StaticLayoutLineBreakingTest
Change-Id: I8ad3d7761c98eb8ace97af3a4794d4bfe04c05e0
2018-10-15 18:03:44 -07:00
Haoyu Zhang
36252bf2bf Merge "Add default implementation for LineBackgroundSpan" 2018-10-16 00:31:40 +00:00
TreeHugger Robot
02f2a315d7 Merge "Add Context.getDisplayId() to avoid possible IPC" 2018-10-16 00:20:52 +00:00
Treehugger Robot
e4e653b8bf Merge "Add Feature Flag for Hearing Aid Profile" 2018-10-15 23:10:41 +00:00
Seigo Nonaka
aa35899430 Merge "Make LineBreaker public" 2018-10-15 21:56:12 +00:00
TreeHugger Robot
bc9ebba7e5 Merge "Suspending app can customize intercepting dialog" 2018-10-15 21:51:52 +00:00
Zimuzo
6cbf9cc6e1 Add phsyical activity recognition AppOp
Add AppOps for physical activity recognition to better track apps detecting physical activity.

Test: AppOpsmanager#noteOp is ALLOWED
Bug: 111411340
Change-Id: I2ee336ead4da11f0a12733b14a63840437c7a2e1
2018-10-15 21:52:16 +01:00
TreeHugger Robot
8aaf27259c Merge "Fixes touch ripples on media buttons." 2018-10-15 17:21:17 +00:00
Philip P. Moltmann
54118289e5 Merge "Use public method in RestrictedLockUtils#isCurrentUserOrProfile" 2018-10-15 16:41:53 +00:00
Mihai Popa
831c1a91da Move ViewGroup#mChildren[Count] to dark-grey list
The CL moves mChildren and mChildrenCount in ViewGroup to the dark-grey
list of APIs, disabling access to them for apps targeting Q. Developers
should probably use ViewGroup#getChildCount() and ViewGroup#getChildAt()
which exist since public API 1.

Bug: 117521014
Bug: 117521406
Test: atest core/tests/coretests/src/android/view/
Change-Id: I14d3ebd1b16edc92cd7b370404b1f05cd304ab7d
2018-10-15 17:35:13 +01:00
Philip P. Moltmann
3e0f1b46e4 Merge "Rename system-api wm flags to SYSTEM_..." 2018-10-15 16:28:39 +00:00
Philip P. Moltmann
c1fda744f0 Make loadSafeLabel a generic facility as makeSafeForPresentation
Any app loading untrusted strings should make the strings face. Hence make
the method publicly available.

Test: atest CtsTextTestCases:MakeSafeForPresentationTest GtsContentTestCases:PackageItemInfoTests
Change-Id: Ib0679fe892181535339dac77583c427e0d64dd05
Fixes: 113856697
2018-10-15 09:11:52 -07:00
Lorenzo Colitti
03fc4a7f68 Merge "Change permissions checks for setAirplaneMode." am: 3889ff53ed am: 10c175041e
am: 3d23e905a9

Change-Id: Icfc55aefa11a5e1dd92382c2be94c7b63889aa8f
2018-10-15 08:49:52 -07:00
Lorenzo Colitti
3d23e905a9 Merge "Change permissions checks for setAirplaneMode." am: 3889ff53ed
am: 10c175041e

Change-Id: Ibe5bbd51adae83e1bfb5a4ab43d29eb2ccd02a8b
2018-10-15 08:29:00 -07:00
Lorenzo Colitti
10c175041e Merge "Change permissions checks for setAirplaneMode."
am: 3889ff53ed

Change-Id: I578923c3f9012055f715e536f5d4d42ed669c5ee
2018-10-15 08:03:52 -07:00
Gus Prevas
9cc966012f Fixes touch ripples on media buttons.
This change makes touch ripples appear correctly on the action buttons
on media notifications.  This involves the following changes:

- NotificationViewWrapper.onReinflated() sets the notification content
root's background to transparent rather than null when transferring the
background color to the NotificationBackgroundView.  This gives the
ripples a surface to draw on.
- The RemoteViews for the media templates are changed to use a fixed
set of buttons instead of removing and re-adding them on every update.
This prevents the update caused by whatever action the tap invokes from
interrupting the ripples.
- A method is added to RemoteViews allowing the ripple color to be
specified.  This allows us to change the ripple color to match the
foreground color of the controls, which is necessary for the ripples to
show up against a dark background.

Test: manual
Change-Id: I907f9a1a75efb48da496133ad357fc5150de4410
Fixes: 35856702
2018-10-15 09:42:06 -04:00
Lorenzo Colitti
3889ff53ed Merge "Change permissions checks for setAirplaneMode." 2018-10-15 13:36:45 +00:00
Stefano Tommasini
6f6e67bcce Merge "Add onCreate method to SystemBackup agent that receives UserHandle." 2018-10-15 12:45:38 +00:00
Eran Messeri
a2e0ca77a8 Enterprise Policy for Private DNS Setting
A new API for setting the Private DNS settings value programatically via
the DevicePolicyManager.

Since there are two separate settings for Private DNS, and the value
provided for the hostname needs to be validated, a new
DevicePolicyManager API is introduced.

Only a Device Policy Client in Device Owner mode may change these
settings.
The DPC may additionally set a user restriction (added in a separate CL)
to prevent the user from changing Private DNS settings.

Bug: 112982691
Test: atest com.android.cts.devicepolicy.DeviceOwnerTest#testPrivateDnsPolicy
Change-Id: I566437e4fe10e1346858149120c50b3c20ca073f
2018-10-15 11:53:22 +01:00
Andrey Kulikov
08aa6fd3e7 Merge "Fix crash in RecyclerView if it's view is animated by Transitions" 2018-10-15 10:24:20 +00:00
Andrey Kulikov
d2d5cdff44 Fix crash in RecyclerView if it's view is animated by Transitions
When it is happening:
a) Disappear Visibility transition is applied to the recyclerview(and it's children)
b) Transition added the View to the ViewOverlay for an animation
c) Transition is first paused before being canceled (for example when the new reversed transition wants to start after user click)
d) In Visibility.onPause() we call suppressLayout(false) for RecyclerView
e) RecyclerView starts layouting and tries to use our view, but it is currently added to the overlay
f) So it crashes on attempt to call addView

Fix: Detach a view from overlay in Visibility transition while it is paused. Attach it back in onTransitionResume if the view is still not used by someone else like RecyclerView.

Bug: 33609996
Fix in AndroidX: I18d8327b338be442ec30b15fe53a99d1a2974888
Test: cts tests for Transitions
Change-Id: I74f138617c8afbac9f6efa4ee9a1f4e961306c9e
2018-10-15 10:24:07 +00:00
Stefanot
14bbdedec0 Add onCreate method to SystemBackup agent that receives UserHandle.
This is done for go/br-framework-multi-user.

Bug:117590564
Test: Builds.
Change-Id: I7af0f7c604979da03efc3d88dbed2b2c9631bace
2018-10-15 10:27:11 +01:00
Yohei Yukawa
4052a10f29 Instantiate InputMethodManager for each display (2nd try)
InputMethodManager has been a per-process singleton object. In order
to support behavior changes for multi-display support in Android Q,
however, InputMethodManager now needs to be per-display objects.

With this CL, context.getSystemService(InputMethodManager.class) will
start returning per-display InputMethodManager (IMM) instance.

  Why?

There are two major reasons.
 1. To support per-display focused window.
 2. To support more simplified API for multi-session IME.

Currently per-process InputMethodManager instance directly receives
callback from ViewRootImpl upon windowFocusChanged, then it keeps
track of which Window is focused by storing its root view into
InputMethodManager#mCurRootView.

This design assumes that (within the same process) at most one Window
can have window focus, which is no longer true once we start
supporting per-display focused window (Bug 111361570).

  Why we need to do this to support per-display focused window:

For traditional non multi-session IME cases (e.g. apps that use
Virtual Display APIs on phones), internal state of IMM can be easily
messed up once the system starts sending per-display
windowFocusChanged events to the same process, because IMM still
doesn't know that now each display has focused window. It is hard to
precisely predict what kind of issues we would see simply because such
a use case is most likely not expected in the original design.

  Why we need to do this for multi-session IME:

For multi-session IME scenarios, in addition to the above concern in
InputMethodManager, the current design allows at most one IME session
per process. This means that if a process X is showing Activities to 3
different displays, only one Activity can interact with the
multi-session IME at the same time. If we do not change the current
design, the only way to work around is to ask app developers to
explicitly use different processes for each Activity, which may
require a lot of work (e.g. SharedPreference is not optimized for
multi-process use cases). This would also make multi-session IME
development complicated because the IME cannot know on which display
the IME is interacting until startInputOrWindowGainedFocus() is
actually called, and needs to do all the preparation and cleanup tasks
whenever startInputOrWindowGainedFocus() is called for a different
display than it's currently interacting with.

  Alternative solutions considered:

Another possible approach is to update InputMethodManager singleton to
be able to maintain multiple mCurRootView and mServedView for each
display. This approach was abandoned because those fields and methods
are already marked as @UnsupportedAppUsage.  I concluded that touching
@UnsupportedAppUsage things would have bigger compatibility risks than
per-display instance model.

  Implementation note:

* Public APIs in IMM that take View instance as the first parameter
  will verify whether the given View and IMM are associated with the
  same display ID or not.  If there is a display ID mismatch, such an
  API call will be automatically forwarded to the correct IMM instance
  IMM with a clear warning in logcat which tells that app developers
  should use the correct IMM instance to avoid unnecessary performance
  overhead.

* As a general rule, system server process cannot trust display ID
  reported from applications.  In order to enable IMMS to verify the
  reported display ID, this CL also exposes display ID verification
  logic from WMS to other system components via WindowManagerInternal.

* isInputMethodClientFocus() in WindowManagerService (WMS) is updated
  to use top-focused-display to determine whether a given IME client
  has IME focus or not.  This is now necessary because with a recent
  change [1] each display can have focused window.  The previous logic
  to check all the displays that belong to the given pid/uid [2] no
  longer makes sense.

* Currently per-display InputMethodManager instances will not be
  garbage collected because InputMethodManager#sInstanceMap keeps
  holding strong references to them.  Freeing those instances is
  technically possible, but we need to be careful because multiple
  processes (app, system, IME) are involved and at least system
  process has a strict verification logic that lets the calling
  process crash with SecurityException.  We need to carefully
  implement such a cleanup logic to avoid random process crash due to
  race condition.  Bug 116699479 will take care of this task.

Also to make sure that the performance regression (Bug 117434607) we
observed after my initial attempt [3] no longer exists, here are the
benchmark results with and without this CL.

  testExpandNotificationsLatency on taimen-userdebug
    without this CL:
      results=[55, 46, 61, 67, 50, 48, 57, 50, 55, 63]
      min:46.0, max:67.0, avg:55.2, median:55.0, std_dev:6.539
    with this CL:
      results=[45, 55, 58, 57, 47, 60, 59, 60, 56, 53]
      min:45.0, max:60.0, avg:55.0, median:56.5, std_dev:4.980

 [1]: I776cabaeaf41ff4240f504fb1430d3e40892023d
      1e5b10a217
 [2]: I8da315936caebdc8b2c16cff4e24192c06743251
      90120a8b5b
 [3]: I7242e765426353672823fcc8277f20ac361930d7
      c53d78e992

Bug: 111364446
Fix: 115893206
Test: atest ActivityManagerMultiDisplayTests
Test: atest CtsInputMethodTestCases CtsInputMethodServiceHostTestCases
Test: atest FrameworksCoreTests:android.view.inputmethod.InputMethodManagerTest
Test: No perf regression in LatencyTests#testExpandNotificationsLatency()
Change-Id: I78ad7cccb9586474c83f7e2f90c0bcabb221c47b
2018-10-15 15:35:55 +08:00
Eran Messeri
09b122daac Private DNS: Add user restriction
Add a user restriction to prevent the user from changing the Private DNS
settings.

This would be used together with the new DevicePolicyManager API to set
the Private DNS settings by the Device Policy Client to enforce Private
DNS settings by the IT admin of the user.

Bug: 112982691
Test: atest com.android.cts.devicepolicy.DeviceOwnerTest#testPrivateDnsPolicy
Test: m -j RunSettingsRoboTests ROBOTEST_FILTER=PrivateDnsModeDialogPreferenceTest
Test: Manual, using TestDPC
Change-Id: Ibec3cfcede7e4082db4068cbdd047ada3f6c227e
2018-10-15 07:52:26 +01:00