Commit Graph

95013 Commits

Author SHA1 Message Date
Philip P. Moltmann
fe460100e7 Deprecate Intent based installation/uninstallation
The android.content.pm.PackageInstaller install + uninstall APIs are
fully functional. No need to try to keep the intent based APIs
feature compatible.

In the future we will be able to restrict app targeting old targetSDK
levels from using the intent-based API. Even further in the future we
can radically simplify the package installer app.

Fixes: 116616700
Test: Built
Change-Id: Ia225d70fbee3fa31a3c1de388dcb05ff1063dccd
2018-10-08 09:03:21 -07:00
TreeHugger Robot
10efed0b49 Merge "Remove SMS access for apps other than current SMS handler" 2018-10-06 20:14:06 +00:00
TreeHugger Robot
ce10f9b15f Merge "Instantiate InputMethodManager for each display" 2018-10-06 17:19:58 +00:00
Wale Ogunwale
2f6c71d781 Merge "Moved startHomeActivity methods from AMS to ATMS (19/n)" 2018-10-06 13:45:13 +00:00
Wale Ogunwale
214f348ebb Moved startHomeActivity methods from AMS to ATMS (19/n)
Bug: 80414790
Test: Existing tests pass.
Change-Id: Ie3354304ea800777bd9ca7a83885b379776704e2
2018-10-05 23:32:49 -07:00
TreeHugger Robot
3121ea3039 Merge "Get correct hasEnrolled for work profiles" 2018-10-06 02:50:45 +00:00
Kevin Chyn
75dbb83fc2 Get correct hasEnrolled for work profiles
The check within BiometricService is done from system server process
so we need to pass in the actual userId.

Bug: 111461540

Test: With normal profile and FP enrolled, with work profile and no
      FP enrolled, launching BiometricPromptDemo for work profile
      and attempting to start authentication shows "none enrolled" message.

Change-Id: I45a1136d2b33bc7c594a3401e2a087103fb839f3
2018-10-05 19:17:28 -07: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
Hyunyoung Song
45c8719e80 Merge "IconFactory should be initialized before mAdapter is created inside ResolverActivity" 2018-10-05 23:18:41 +00:00
Yohei Yukawa
c53d78e992 Instantiate InputMethodManager for each display
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.

 [1]: I776cabaeaf41ff4240f504fb1430d3e40892023d
      1e5b10a217
 [2]: I8da315936caebdc8b2c16cff4e24192c06743251
      90120a8b5b

Bug: 111364446
Fix: 115893206
Test: atest ActivityManagerMultiDisplayTests
Test: atest CtsInputMethodTestCases CtsInputMethodServiceHostTestCases
Test: atest FrameworksCoreTests:android.view.inputmethod.InputMethodManagerTest
Change-Id: I7242e765426353672823fcc8277f20ac361930d7
2018-10-05 15:54:41 -07:00
Hyunyoung Song
16b7af4062 IconFactory should be initialized before mAdapter is created inside ResolverActivity
Bug: 113032889
Test: builds
Change-Id: I9906ee7ec8be64f0a82634796a7e2f3bcbd01800
2018-10-05 14:02:21 -07:00
Kevin Chyn
8d46f7d24c Merge "Add missing BiometricManager constant" 2018-10-05 00:43:11 +00:00
TreeHugger Robot
715b8d6ded Merge "Add @IntDef to BiometricManager" 2018-10-05 00:41:31 +00:00
Andrew Solovay
b577f20c23 Merge "cherry-pick from pi-dev docs: Replacing {#link with {@link" 2018-10-04 18:17:23 +00:00
Andrew Solovay
5c05dedda1 cherry-pick from pi-dev docs: Replacing {#link with {@link
Several java files had the typo {#link (for cross-references to other
Javadocs) instead of the proper {@link format. This was confusing the
new doc publish tool (Mivi) since that's the format used for {# Django
comments #}.

Fixed a couple of links that had other errors (which prevented building
once the {# -> {@ was done) and other typos.

Replaced throughout the frameworks/base project; I'll need a separate CL
for the AndroidX fixes.

(Other files were not in the public Javadocs.)

Bug: 111925950
Test: make ds-docs
Change-Id: Ia06e1fffd814671289a1caebd5962aedc18a28d7
Original Change-Id: Ia06e1fffd814671289a1caebd5962aedc18a28d7
Exempt-From-Owner-Approval: Docs-only change
2018-10-04 18:17:05 +00:00
Neda Topoljanac
746a795b0f Merge "Add DevicePolicyManager constants for enterprise WiFi Provisioning with certificates" 2018-10-04 16:44:56 +00:00
TreeHugger Robot
427b75f8f8 Merge "Introduced ActivityServiceConnectionsHolder (18/n)" 2018-10-04 09:01:25 +00:00
Issei Suzuki
495de00e0a Merge "Refactor DisplayCutout to use Rect instead of Region." 2018-10-04 08:43:54 +00:00
Louis Chang
bddeea865c Merge "Support launching home activity on secondary display" 2018-10-04 07:58:37 +00:00
Wale Ogunwale
c4e63a46a5 Introduced ActivityServiceConnectionsHolder (18/n)
Class for managing the connections to services on the AM side that
activities on the WM side bind with for things like oom score adjustment.

Bug: 80414790
Test: Existing tests pass.
Change-Id: I4ab5140dd7f888f448ce19107bda92c01066a3dc
2018-10-04 00:28:43 -07:00
Kevin Chyn
811ae8b6ad Add missing BiometricManager constant
This constant is being sent from BiometricService but was not exposed
properly.

Fixes: 116823693

Test: atest BiometricManagerTest
Change-Id: I3b80b4908f440b983b4aa68eefb3a785266a4065
2018-10-03 23:24:03 -07:00
Kevin Chyn
b97e9c9350 Add @IntDef to BiometricManager
Bug: 116823693

Test: Builds
Change-Id: Ic800272991f4d4a520627c3e5ff8fdb2cf9b638d
2018-10-03 23:16:14 -07:00
Tiger Huang
e91ae63374 Merge "Track focus changes on external displays (2/4)" 2018-10-04 05:58:00 +00:00
Kevin Chyn
5ff2b1f158 Merge changes from topic "biometric-manager"
* changes:
  Move biometric setting observer from KeyguardUpdateMonitor to BiometricService
  Change BiometricManager#hasEnrolledBiometrics to canAuthenticate
2018-10-04 03:19:25 +00:00
kopriva
af5908b8a9 Merge "docs: bug 37126744, typos" into pi-dev am: 58c7bcf12e
am: d64ab297d5

Change-Id: I51431e6df33efdb59dcda7792cf435cbf513dd13
2018-10-03 18:33:16 -07:00
kopriva
d64ab297d5 Merge "docs: bug 37126744, typos" into pi-dev
am: 58c7bcf12e

Change-Id: I5a7b100cc186e92a16e1572a1cbee3f789e8df58
2018-10-03 18:22:41 -07:00
TreeHugger Robot
58c7bcf12e Merge "docs: bug 37126744, typos" into pi-dev 2018-10-04 00:51:46 +00:00
Louis Chang
bd48dca2d0 Support launching home activity on secondary display
- Add a new flag indicating that the display should show
  system decorations, such as status bar, nav bar, home and IME.
- Automatically launches home activity on secondary display
  if the display support system decorations and home
  activity has multiple instances supports.
- Remove ActivityStackSupervisor#mHomeStack and move several
  home stack related methods to ActivityDisplay.

Bug: 111363427
Test: atest ActivityManagerMultiDisplayTests
      atest com.android.server.am
      Manual test on virtual display and chromecast

Change-Id: I48fe245ad12965a19a6768f5dbb4e974ce94b01a
2018-10-04 00:39:29 +00:00
kopriva
331101321f Merge "docs: fixing several typos, bug 36941887" into pi-dev am: 7640a41654
am: 9c736132c2

Change-Id: Idc9080fb4f2ec58a1817a8e847213f8d6bcbb2fa
2018-10-03 17:16:33 -07:00
kopriva
5569b5757c docs: bug 37077993, object instead of array am: 2cb96ab8a1
am: 434a0a5370

Change-Id: I42ce04dae49f3496c0993e60957137e58abb2d07
2018-10-03 17:09:53 -07:00
kopriva
9c736132c2 Merge "docs: fixing several typos, bug 36941887" into pi-dev
am: 7640a41654

Change-Id: I4e95b8e43ce12a428baa41102260d6b145589a34
2018-10-03 16:58:12 -07:00
kopriva
434a0a5370 docs: bug 37077993, object instead of array
am: 2cb96ab8a1

Change-Id: I527d10e66525810bda0083bed92f4b31ae13bcb9
2018-10-03 16:52:26 -07:00
Dmitry Dementyev
427675a0e6 Merge "Expand isCredentialsUpdateSuggested docs." 2018-10-03 23:49:59 +00:00
TreeHugger Robot
7640a41654 Merge "docs: fixing several typos, bug 36941887" into pi-dev 2018-10-03 23:34:29 +00:00
Chenjie Yu
e388e27e19 Merge "pull PowerProfile into statsd" 2018-10-03 23:28:10 +00:00
kopriva
762a08fe90 docs: bug 37126744, typos
fixing order of import statements to clear repo hooks

Test: make ds-docs

Bug: 37126744

Change-Id: I0ebb3d1d2599a411afd9b8ffd6f2497d821deb2b
Exempt-From-Owner-Approval: Docs-only change
2018-10-03 16:13:19 -07:00
Jeff Sharkey
08a42ed82a Merge "Log when Uris are normalized to help triage." 2018-10-03 21:17:51 +00:00
kopriva
2cb96ab8a1 docs: bug 37077993, object instead of array
also fixing import order to get past repo hooks

Test: make ds-docs

Bug: 37077993

Change-Id: I0a0d6338f714108eb632caacc6dda4b422dc697b
Exempt-From-Owner-Approval: Docs-only change
2018-10-03 14:14:13 -07:00
Fan Zhang
07547c6c58 Merge "Add intent action constant for launching Settings search UI" 2018-10-03 20:46:17 +00:00
kopriva
c5fea19846 docs: fixing several typos, bug 36941887
Test: make ds-docs

Bug: 36941887

Change-Id: Id65c5a6b1cbb214ea46b13a6a68d667c819a2f60
Exempt-From-Owner-Approval: Docs-only change
2018-10-03 13:29:15 -07:00
Phil Weaver
79625e978c Merge "Fix a11y cache correctness bug" into pi-dev
am: 3fbe56647c

Change-Id: Ifb19caaf010adfa2d1ca57f767e4be830b09e4bd
2018-10-03 12:09:18 -07:00
Beverly Tai
64245b443c Merge "Fix potential NPE" 2018-10-03 18:27:33 +00:00
Phil Weaver
3fbe56647c Merge "Fix a11y cache correctness bug" into pi-dev 2018-10-03 18:23:47 +00:00
Michael Groover
68b40294b6 Merge "Add PackageSignatures readXml tests" 2018-10-03 18:21:58 +00:00
Jeff Sharkey
9bf8ba3c69 Merge "Improve docs for CE/DE usages." 2018-10-03 17:55:10 +00:00
Chenjie Yu
ab53020345 pull PowerProfile into statsd
pull constants from PowerProfile into statsd for power model
calculations. The data is mostly from power_profile.xml

power_profile {
  power_profile_proto {
    cpu_suspend: 5.734
    cpu_idle: 1.389
    cpu_active: 18.76
    wifi_controller_idle: 2.0
    wifi_controller_rx: 107.0
    wifi_controller_tx: 371.0
    wifi_controller_operating_voltage: 3700.0
    bluetooth_controller_idle: 0.01
    bluetooth_controller_rx: 8.0
    bluetooth_controller_tx: 7.0
    bluetooth_controller_operating_voltage: 3300.0
    modem_controller_idle: 105.0
    modem_controller_rx: 175.0
    modem_controller_tx: 176.0
    modem_controller_tx: 216.0
    modem_controller_tx: 300.0
    modem_controller_tx: 427.0
    modem_controller_tx: 604.0
    modem_controller_operating_voltage: 3700.0
    gps_signal_quality_based: 49.0
    gps_signal_quality_based: 11.0
    gps_operating_voltage: 3700.0
    screen_on: 178.708
    screen_full: 240.79
    audio: 75.6
    video: 50.93
    flashlight: 298.498
    camera: 1152.292
    battery_capacity: 3450.0
    cpu_cluster {
      cores: 2
      speed: 307200
      speed: 384000
      speed: 460800
      speed: 537600
      speed: 614400
      speed: 691200
      speed: 768000
      speed: 844800
      speed: 902600
      speed: 979200
      speed: 1056000
      speed: 1132800
      speed: 1209600
      speed: 1286400
      speed: 1363200
      speed: 1440000
      speed: 1516800
      speed: 1593600
      core_power: 11.272
      core_power: 14.842
      core_power: 18.497
      core_power: 22.518
      core_power: 25.967
      core_power: 31.694
      core_power: 37.673
      core_power: 42.859
      core_power: 46.872
      core_power: 57.92
      core_power: 67.561
      core_power: 76.303
      core_power: 87.613
      core_power: 97.045
      core_power: 109.544
      core_power: 122.054
      core_power: 136.345
      core_power: 154.435
    }
    cpu_cluster {
      id: 1
      cores: 2
      speed: 307200
      speed: 384000
      speed: 460800
      speed: 537600
      speed: 614400
      speed: 691200
      speed: 748800
      speed: 825600
      speed: 902400
      speed: 979200
      speed: 1056000
      speed: 1132800
      speed: 1209600
      speed: 1286400
      speed: 1363200
      speed: 1440000
      speed: 1516800
      speed: 1593600
      speed: 1670400
      speed: 1747200
      speed: 1824000
      speed: 1900800
      speed: 1977600
      speed: 2054400
      speed: 2150400
      core_power: 7.055
      core_power: 11.483
      core_power: 14.979
      core_power: 19.642
      core_power: 23.167
      core_power: 27.479
      core_power: 31.632
      core_power: 39.192
      core_power: 47.817
      core_power: 55.659
      core_power: 64.908
      core_power: 73.824
      core_power: 85.299
      core_power: 96.036
      core_power: 109.233
      core_power: 118.56
      core_power: 132.959
      core_power: 143.692
      core_power: 161.378
      core_power: 180.616
      core_power: 193.897
      core_power: 214.361
      core_power: 238.338
      core_power: 265.759
      core_power: 297.918
    }
  }
}

Bug: 113353350
Test: manual test on statsd
Change-Id: I1edd4db255c0440ddbff1d40e1515caaccbc73f8
2018-10-03 10:39:49 -07:00
Tiger Huang
1e5b10a217 Track focus changes on external displays (2/4)
Let each DisplayContent has its own focused window and focused app.
This change also moves the last tapped display to the top.

Test: atest ActivityManagerMultiDisplayTests
            ActivityStackSupervisorTests
            ActivityStackTests
            CtsWindowManagerDeviceTestCases
            DisplayContentTests
            PointerCaptureTest
Bug: 111361570
Change-Id: I776cabaeaf41ff4240f504fb1430d3e40892023d
2018-10-04 01:05:49 +08:00
Michael Groover
a117b0d4bd Add PackageSignatures readXml tests
This fix also refactors PackageParser.SigningDetails to move the
pastSigningCertificatesFlags to be a data member of Signature; this
allows the capabilities of a previous signing certificate to be
accessed directly from the Signature object as opposed to relying
on the 1-1 mapping of the past certs and flags in the SigningDetails.

Fixes: 73927696
Fixes: 73925989
Test: adb shell am instrument -w -e class com.android.server.pm.PackageSignaturesTest \
      com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner

Change-Id: I635f2d2209350d066d1fa2ef07460071da0c023e
2018-10-03 09:47:14 -07:00
Jeff Sharkey
3a6a61ef7e Improve docs for CE/DE usages.
Bug: 113343632
Test: none
Change-Id: Ia8bada986fdd69b20a574e2bf1e050f322ae56ec
2018-10-03 10:45:54 -06:00
Jeff Sharkey
4a7b6ac0c4 Log when Uris are normalized to help triage.
Bug: 112555574
Test: manual
Change-Id: Iebf7785e93995f1a2a6d688a2b2aa0ec16c790c6
2018-10-03 10:33:48 -06:00