Commit Graph

73921 Commits

Author SHA1 Message Date
Rubin Xu
f095f8366b Add escrow token support to synthetic password flow
Escrow token provides an alternative way to derive synthetic password for a
given user. In the new flow, a pre-provisioned escrow token
should be able to do anything the user password can do, since they both
derives the synthetici password which is the master key in the new auth flow.

Test: runtest frameworks-services -c com.android.server.SyntheticPasswordTests
Bug: 33126414
Change-Id: Ib5ee38fd61f66de3245427ce992ebc12f1873a26
2017-02-15 19:54:25 +00:00
Rubin Xu
3bf722a8d5 Add synthetic password to authentication flow
The user password is used to unlock a per-user synthetic password which
serves the purpose of what the user password previsouly achieves (protect
keystore, vold disk encryption, auth token generation).

Test: runtest frameworks-services -c com.android.server.SyntheticPasswordTests
Test: manual
    1. Start with fresh device, enable synthetic password with "adb shell cmd lock_settings sp 1"
        1.1 add device lock, reboot and verify (positive & negative); change device lock, reboot and verify.
        1.2 Inflate a work profile, reboot and verify device lock. check SID with "adb shell dumpsys lock_settings"
        1.3 Un-unify and add work challenge, reboot and verify work challenge and SID.
        1.4 Re-unify work challenge, reboot and verify.
        1.5 Clear device lock, reboot and verify lock and SID.

    2. Start with a fresh device, add a device lock and inflate a work profile.
        2.1 Enable synthetic password, note current SID
        2.2 Reboot and unlock device. Verify synthetic password is generated and SID remains.
        2.3 Clear device lock, reboot and verify (SID should be cleared)

    3. Start with a fresh device, inflate a work profile, add separate work challenge
        3.1 Enable synthetic password, not current SID
        3.2 Reboot and unlock device and profile. Verify synthetic password is generated.
        3.3 Clear device lock only, reboot and verify (work profile SID should remain)

    All steps tested on marlin (FBE) and bullhead (FDE)

Bug: 33126414
Change-Id: Idb9ebfc7bba2fe40670c5fee2189e873d9704540
2017-02-15 19:48:33 +00:00
TreeHugger Robot
02761acc67 Merge "Declarative downloadable fonts" 2017-02-14 15:39:04 +00:00
Shreyas Basarge
bf6655b315 Merge "BackupManager#cancelBackups() API" 2017-02-14 13:53:33 +00:00
Shreyas Basarge
c3704427c9 BackupManager#cancelBackups() API
Introduces a cancelBackups() API for
BackupManager. When this function returns,
it is guaranteed that currently running
backup operations won't interact with
the active transport.

Bug: 34760860

Ref: https://docs.google.com/document/d/18MnfwkDfKNtXQBPRmL8vpVgfLgSWJsDja1Nm1QV5hOw/edit#heading=h.9p6yo0wx44k3

Test: GTS tests at ag/1893365

Change-Id: I67f78699bbe763ea71c85937fbc01a5b48694eed
2017-02-14 13:51:59 +00:00
Clara Bayarri
4b5a4d221f Declarative downloadable fonts
Implement support for downloadable font requests in xml. Given the
xml fonts feature in O, this adds support to not only declare
local font files as font resources, but also Downloadable fonts
from a fonts provider.

A provider returns a font family (of one or more files) given a
query, so the new attributes are added to the font-family tag.

Additionally, add support to pre-declare downloadable font resources
in the Android Manifest. These will then be fetched at app startup
time so they are available to use from the Typeface cache asap.

When retrieving downloadable fonts via resources, the cache is
checked to see if the font is already there and is used, otherwise
a request is sent to the provider and the default font is returned
as we need a result synchronously.

To do this, the developer declares an additional fonts xml resource
file with the list of fonts to preload and links it in the manifest
with a meta-data tag.

E.g.:

res/font/mydownloadedfont.xml

<font-family xmlns:android="http://schemas.android.com/apk/res/android"
        android:fontProviderAuthority="com.example.test.fontprovider"
        android:fontProviderQuery="myrequestedfont">
</font-family>

res/font/preloaded_fonts.xml

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
    <font android:font="@font/mydownloadedfont" />
</font-family>

and in the AndroidManifest.xml

<meta-data android:name="preloaded_fonts"
    android:resource="@font/preloaded_fonts" />

Bug: 34660500, 34658116
Test: WIP, need to add more
Change-Id: I1d92555e115e241bf23b59e6f5c6cca6c7361de7
2017-02-14 13:32:41 +00:00
TreeHugger Robot
23a96af523 Merge "AOD: Fix contrast calculation" 2017-02-14 13:18:22 +00:00
Ricky Wai
89c376ed66 Merge "Change "Long pressing work mode in quick settings" to managed profile settings" 2017-02-14 11:14:12 +00:00
TreeHugger Robot
4dba3cdf89 Merge "Refactor auto-fill" 2017-02-14 09:37:53 +00:00
Svet Ganov
782043caf8 Refactor auto-fill
* Fix a layering issue where auto-fill manager which is in view
  depended on activity which is in app

* Moved auto-fill classes to view or service based on their
  purpose and removed dependecy on the classes in view to the
  classes in service

* Push state to local auto-fill manager whether auto-fill is
  enabled to avoid making IPC for every focus transition if
  the user did not enable the feature

* Remove unnecessary offload to messages when handling calls
  to auto-fill manager service as these are made over a oneway
  interface and in general they do almost no work and typically
  we do these on the binder thread

* Removed id from data set and fill response as the provider
  can embed everything it needs to id them in the auth pending
  intent

* Enforce the auth UI to be only an activity as this will work
  with multi-window, recents, and back and also does not require
  draw on top of other app special permission

* Authentication also no longer requires passing a remotable
  callback to the auth activity but the activity handles the
  request as if called for a result

* Handling stopping of a user to clean up in-memory state as
  well as handling when a user gets unlocked as a provider may
  be non-direct boot aware

* User the correct context when creating an auto-fill manager

* Move the receiver that listens for requests to hide system
  windows to the manager service as the UI is a singleton and
  no need every per-user state to register its own

* Removed extras from dataset as the only case a provider needs
  to associate state with a dataset is for auth and the provider
  can embed this data in the auth pending intent

Test: manual and CTS

Change-Id: I4bc54c13cf779d7f6fdb3ab894637f9fac73f603
2017-02-13 21:31:37 -08:00
TreeHugger Robot
858a5d9958 Merge "Ensure network connectivity on app start." 2017-02-14 03:09:36 +00:00
TreeHugger Robot
c2b2d8ee9b Merge "Camera: Update doc to allow unchanged configs in finalizeOutputConfigs" 2017-02-14 02:33:17 +00:00
TreeHugger Robot
3400795aec Merge "Propagate setImeWindowStatus() to WMS" 2017-02-14 01:38:07 +00:00
Sergey Vasilinets
2eaae562fe Merge "DeferredLayerUpdater: clean up Layer lifecycle" 2017-02-14 01:28:26 +00:00
TreeHugger Robot
171ef98df6 Merge "Fix interaction w/ work profile & last chosen" 2017-02-14 01:24:19 +00:00
Sudheer Shanka
27e6931583 Ensure network connectivity on app start.
Bug: 27803922
Test: cts-tradefed run singleCommand cts-dev --module CtsHostsideNetworkTests
Change-Id: Ifd7a52924cd6bbc809c9a3f92d52fe2df09b7fe2
2017-02-13 17:17:41 -08:00
Michael Kwan
321ceda49f Merge "Only modify window layout params when necessary." into cw-f-dev am: 9fbd981f23 am: a26e371c9b
am: 49fa0405b1

Change-Id: Iadf40b31d57157bc1303102b6afc38d23afc3996
2017-02-14 01:06:03 +00:00
Michael Kwan
49fa0405b1 Merge "Only modify window layout params when necessary." into cw-f-dev am: 9fbd981f23
am: a26e371c9b

Change-Id: I72bf9b5fa5dfaaa7573115ed5b6cca23a0be05f4
2017-02-14 01:00:23 +00:00
Michael Kwan
a26e371c9b Merge "Only modify window layout params when necessary." into cw-f-dev
am: 9fbd981f23

Change-Id: I36aa427a3023dcba2a29eccfc0b7aac43748e534
2017-02-14 00:55:32 +00:00
Michael Kwan
9fbd981f23 Merge "Only modify window layout params when necessary." into cw-f-dev 2017-02-14 00:48:12 +00:00
Hakan Seyalioglu
aeb1f1241e DO NOT MERGE - Check exported status in chooser
am: 7bae18232e

Change-Id: Id29e65bd455c704738618f1dacfcad53b8d0b773
2017-02-14 00:41:55 +00:00
Doris Liu
2bf869e97c Merge "Correctly handle infinite start time" 2017-02-13 23:39:52 +00:00
Hakan Seyalioglu
13405c5529 Fix interaction w/ work profile & last chosen
bug: 34677697
Test: New unit tests added
Change-Id: Ibb5c804c16a758ff041ce7165fda561d903b5f31
2017-02-13 15:24:58 -08:00
Hakan Seyalioglu
7bae18232e DO NOT MERGE - Check exported status in chooser
Relevant change in master is ag/1844170

bug: 34147053
Change-Id: Ic9d9d65c66325904c95ab3966bdcc16e7668278b
(cherry picked from commit e3286c3145)
2017-02-13 23:12:28 +00:00
Shuzhen Wang
7d0674ceb1 Camera: Update doc to allow unchanged configs in finalizeOutputConfigs
Bug: 35137641
Test: Compile
Change-Id: I671fc13c005eee27c87041dce23c30f40a394443
2017-02-13 14:55:34 -08:00
sergeyv
00eb43dbc0 DeferredLayerUpdater: clean up Layer lifecycle
Test: refactoring CL, all existent tests should pass
bug:34919311
Change-Id: Ib2889667a5ab8a2aaba443458782bc163467f0ea
2017-02-13 14:41:20 -08:00
Yohei Yukawa
ff54b306de Merge "Track event flow to IMMS#setImeWindowStatus" 2017-02-13 22:08:35 +00:00
Makoto Onuki
0a2b187309 Merge "Do not allow work profile to see main other profiles" 2017-02-13 21:33:22 +00:00
Michael Kwan
134ad6ef3f Only modify window layout params when necessary.
Cancelling swipe-to-dismiss will trigger a check to ensure the window
is reset to its original state. Ensure that the reset is actually
required before setting the new layout attributes.

Bug: 34816397
Change-Id: Idf26ce7c8b63dc44a76effefcb32eb8d8665f605
2017-02-13 13:20:09 -08:00
TreeHugger Robot
4c7a3d1206 Merge "Adding a little more verbose logging." 2017-02-13 21:12:08 +00:00
Dianne Hackborn
3023320d33 Merge "Fix issue #35309312: Background start not allowed: service..." 2017-02-13 21:09:54 +00:00
TreeHugger Robot
9f5ce93549 Merge "Introduce a minimum scrollbar touch target size" 2017-02-13 20:48:14 +00:00
TreeHugger Robot
a21f3e782a Merge "Do not enter touch mode on non-touchscreen events" 2017-02-13 20:44:39 +00:00
Winson Chung
4de191dc1b Merge "Adding PipManager dumps." 2017-02-13 20:40:35 +00:00
Winson Chung
12cb6628db Merge "Create a new stack for the assistant activity." 2017-02-13 20:39:52 +00:00
Selim Cinek
2698d1d1e8 Merge changes Ie3736d80,I52444f4e
* changes:
  Improved collapsed messaging notifications
  Fixed a bug where the heads-up couldn't time out
2017-02-13 20:37:48 +00:00
Yohei Yukawa
69e6802422 Propagate setImeWindowStatus() to WMS
setImeWindowStatus() introduced in the previous CL [1] can help
WindowManagerService (WMS) address Bug 34628091.  As a preparation
this CL has InputMethodManagerService propagate relevant information
to WMS WMS for later use.

 [1]: I9921b381e02106dbffff5e0b3d13f0a1245ce807
      db2afde0e584904ee4ce115ce176a4dfe1773990

Test: Verified the callback in WindowManagerService as follows:
       1. Rebuild the system with DEBUG_INPUT_METHOD=true
       2. adb logcat -s WindowManager:*
            to make sure the visibility passed to
            WindowManagerService#updateInputMethodWindowStatus matches
            to the actual IME window visibility
Bug: 34628091
Bug: 35079353
Change-Id: I54fb1faf513883a54293a756e4c9d2ae9453d778
2017-02-13 12:04:50 -08:00
Yohei Yukawa
6db3bfe33d Track event flow to IMMS#setImeWindowStatus
This is part of work to introduce historical debugging infrastructure
for Android IME.

In this CL, we will focus on the following two event flows.

 A1. IMMS#attachNewInputLocked() queues MSG_(RE)START_INPUT to deliver
     new InputConnection/EditorInfo to the current IME
 A2. The IME triggers IMS#onStartInput()/IMS#onRestartInput() and
     updates the following fields:
      - InputMethodService#mStartedInputConnection
      - InputMethodService#mInputEditorInfo

 B1. IME is expected to call back IMM#setImeWindowStatus() to notify
     its window visibility change to IMMS.
 B2. IMMS updates the following field if the caller is still the
     current IME.
      - InputMethodManagerService#mImeWindowVis

What this CL aims to do is to enable IMMS to access A1 state when it
was in B2 state, by considering that for given a B1 the last A2
happened before B1 is the cause of B1 and B2.

To do this, IMMS issues a binder token in A1 and each IME keeps it
so that it can be passed in B1. By using this Binder token as a key,
IMMS can keep tracking state snapshot taken from each A1. Note that
those state snapshots keep alive until the Binder token's proxy in the
IME process loses strong reference from its GC root.

Test: Make sure `adb shell dumpsys input_method | grep mImeWindowVis`
      matches to the IME window visibility.
Test: Make sure the current IME is not receiving any
      InvalidParameterException from IMMS.
Bug: 35079353
Change-Id: I9921b381e02106dbffff5e0b3d13f0a1245ce807
2017-02-13 12:04:41 -08:00
Dianne Hackborn
b1e7776e2c Fix issue #35309312: Background start not allowed: service...
...Intent { flg=0x100 cmp=com.android.systemui/.SystemUIService }
to com.android.systemui/.SystemUIService from pid=28245 uid=1000 pkg=android

Rework the persistent app check to just directly look at the package
manager (but as efficiently as possible).  My idea for trying to keep
this in the UidRecord was stupid. :p

Test: manually tested it boots
Change-Id: I5a88717a27fa3529048d37a853518a3ec04055db
2017-02-13 12:02:42 -08:00
TreeHugger Robot
fb30f7ca28 Merge "Do not move PopupWindow when its anchor is detached" 2017-02-13 19:59:49 +00:00
Michael Kwan
6853de9729 Add tweaks to smooth out swipe to dismiss. am: 5758a9a94c
am: 2155f773db

Change-Id: Iab07b13f24b7ca32b6bbb6faf788a71fccb969ec
2017-02-13 19:38:32 +00:00
Jeremy Joslin
4ad7ca056f Adding a little more verbose logging.
Log statements to help track the request call path.

Test: manual
Change-Id: I68cfdf68cf8adcece45de2a60bec94e6f06be761
2017-02-13 11:35:03 -08:00
Michael Kwan
2155f773db Add tweaks to smooth out swipe to dismiss.
am: 5758a9a94c

Change-Id: I64b9e88a7efb164b0e0160f8b25f770fb986efd6
2017-02-13 19:32:35 +00:00
TreeHugger Robot
33a119c94f Merge "Fix typo on DISALLOW_UNMUTE_DEVICE" 2017-02-13 18:48:28 +00:00
Vladislav Kaznacheev
75e5029e46 Do not enter touch mode on non-touchscreen events
Currently ACTION_DOWN and ACTION_SCROLL cause
entering touch mode regardless of the event source.
This is especially awkward for mouse.

This should only happen when the event source is
SOURCE_TOUCHSCREEN.

Bug: 35314124
Test: android.cts.view.ViewTest#testTouchMode
Change-Id: I2205d4240be4afcbd9a3ac5558e701f7cac51926
2017-02-13 10:46:05 -08:00
TreeHugger Robot
60bcd2485d Merge "Internationalize subclasses of NumberKeyListener" 2017-02-13 18:41:58 +00:00
Winson Chung
29a786590f Adding PipManager dumps.
Test: adb shell dumpsys activity service com.android.systemui
Change-Id: Id647833f1b4dcb6226517c058d17d1812f022671
2017-02-13 10:23:04 -08:00
TreeHugger Robot
860d17d154 Merge "PendingIntent: Use rethrowFromSystemServer" 2017-02-13 18:16:29 +00:00
Makoto Onuki
de3c16c805 Do not allow work profile to see main other profiles
It won't throw SecurityException, but it'll pretend there's
no apps on the other profile.

- Also log an error about it, in the client side process.

- Also still send WTF() about the reverse access.

Bug: 34650921
Bug: 34340531

Test: adb shell am instrument -e class com.android.server.pm.ShortcutManagerTest1 -w com.android.frameworks.servicestests
Test: adb shell am instrument -e class com.android.server.pm.ShortcutManagerTest2 -w com.android.frameworks.servicestests
Test: adb shell am instrument -e class com.android.server.pm.ShortcutManagerTest3 -w com.android.frameworks.servicestests
Test: adb shell am instrument -e class com.android.server.pm.ShortcutManagerTest4 -w com.android.frameworks.servicestests
Test: adb shell am instrument -e class com.android.server.pm.ShortcutManagerTest5 -w com.android.frameworks.servicestests
Test: adb shell am instrument -e class com.android.server.pm.ShortcutManagerTest6 -w com.android.frameworks.servicestests
Test: adb shell am instrument -e class com.android.server.pm.ShortcutManagerTest7 -w com.android.frameworks.servicestests
Test: adb shell am instrument -e class com.android.server.pm.ShortcutManagerTest8 -w com.android.frameworks.servicestests
Test: adb shell am instrument -e class com.android.server.pm.ShortcutManagerTest9 -w com.android.frameworks.servicestests
Test: adb shell am instrument -e class com.android.server.pm.ShortcutManagerTest10 -w com.android.frameworks.servicestests

Test: cts-tradefed run cts --skip-device-info --skip-preconditions --skip-system-status-check com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker -a armeabi-v7a -m CtsShortcutHostTestCases -t 'android.content.pm.cts.shortcuthost.ShortcutManagerMultiuserTest'
Test: cts-tradefed run cts --skip-device-info --skip-preconditions --skip-system-status-check com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker -a armeabi-v7a -m CtsDevicePolicyManagerTestCases -t 'com.android.cts.devicepolicy.LauncherAppsProfileTest'
Change-Id: I6164014685009db3f34a176a3f12c517766b2b49
2017-02-13 10:07:46 -08:00
Geoffrey Pitsch
7c4f39b856 Merge "Updated Inline Notification Controls" 2017-02-13 17:47:33 +00:00