Commit Graph

62478 Commits

Author SHA1 Message Date
Hui Yu
5c8ceade92 Exempt callingUid that has START_ACTIVITIES_FROM_BACKGROUND
permission.

From background FGS while-in-use permission restriction.

Bug: 149835015, 136219221
Test: adb shell dumpsys activity -a
Change-Id: I1a23689a2939d15101a1d8bb21a85fc9a9cca31f
(cherry picked from commit d731201cac)
2020-02-25 18:40:45 +00:00
Peter Kalauskas
81a320279e Merge changes from topic "new-task-snapshots-rvc-dev" into rvc-dev
* changes:
  Disable reduced scale if reduced scale config is 0
  Store original task width and height instead of scale
2020-02-25 18:29:50 +00:00
Chavi Weingarten
87293fda8d Merge "Fix Display SurfaceControl leak" into rvc-dev 2020-02-25 18:11:54 +00:00
Santhosh Thangaraj
2ae4ec02f9 Merge "Fix the delay time for Assistant" into rvc-dev 2020-02-25 17:26:10 +00:00
Patrick Baumann
cb2d2ec786 Merge "Grants visibility on uri permission grant" into rvc-dev 2020-02-25 15:52:29 +00:00
Patrick Baumann
710d720db7 Grants visibility on uri permission grant
When permission is granted to another app via URI, we implicitly grant
visibility to that app of the app ID that that URI resolves to.

Test: atest AppSecurityTests
Fixes: 149781706
Fixes: 145677500
Exempt-From-Owner-Approval: Owner approved prior to cherry-pick
Change-Id: I7c8967a4464fd821e4f95d8eb6c0bcfadadb912e
2020-02-25 15:48:30 +00:00
Makoto Onuki
9577cd78ff Merge "Squash same ApplicationInfo's in Parcel" into rvc-dev 2020-02-25 15:17:14 +00:00
Galia Peycheva
641e2e6361 Create DreamManager System Server TestApi
Bug: 141771803
Bug: 133216167

Test: atest DreamManagerServiceTests
Test: make checkbuild

Merged-In: I937061138bc8ccaf4475674f00331c3fe1c5a495
Change-Id: I937061138bc8ccaf4475674f00331c3fe1c5a495
(cherry picked from commit 4467c53c11)
2020-02-25 12:32:02 +00:00
Galia Peycheva
a72d7e53e6 Merge changes Id71b4cbc,I8dff0a12,Ife3d1390 into rvc-dev
* changes:
  Add startDreamActivity request verification
  Make DreamService use an Activity
  Clean up dreamland
2020-02-25 10:11:21 +00:00
Galia Peycheva
52e8922e8a Add startDreamActivity request verification
The ActivityTaskManagerTestService has a special method to start a
DreamActivity. This CL adds a verification check before the activity is
started to check that the caller is the currently active dream
component.

Bug: 133216167

Test: atest DreamManagerServiceTest

Merged-In: Id71b4cbc57c6569f58b6d906cc8361c104a507dc
Change-Id: Id71b4cbc57c6569f58b6d906cc8361c104a507dc
(cherry picked from commit 20dc51820a)
2020-02-25 07:57:09 +00:00
Galia Peycheva
6861e91b84 Make DreamService use an Activity
Currently, the DreamService uses a floating Window to display the
content of the dream on the screen. This introduces difficulties in the
interactions with the Assistant application, which is an activity.
By design, if the Assistant is invoked while the device is dreaming, the
Assistant should be shown on top. However, since floating windows are
always drawn on top of all activities, the Assistant can't be shown on
top of the Dream.

Here, we migrate the implementation of the DreamService to use an
Activity (DreamActivity). Since the screensaver application is not part
of the framework, we can't declare the activity in their AndroidManifest.xml.
Therefore, we start the dream activity with a dedicated method in
ActivityTaskManagerService.

Bug: 133216167
Test: 1. m && ./vendor/google/tools/flashall
      2. Go to Settings > Device Preferences > Screensaver > Start now
      3. Verify dream appears
      4. Click any key to wake up the dream
      5. Verify that dream disappears

Merged-In: I8dff0a124cd1b41fb925a73528305431b49ee06d
Change-Id: I8dff0a124cd1b41fb925a73528305431b49ee06d
(cherry picked from commit 148478a85e)
2020-02-25 07:56:28 +00:00
Gavin Corkery
fb7bda9734 Merge "Change checkpointing retry count to 2" into rvc-dev 2020-02-25 07:56:01 +00:00
Winson Chiu
d012f7bee6 Merge "Use correct PackageSetting for dexopt calculation" into rvc-dev 2020-02-25 07:55:52 +00:00
Martijn Coenen
c8a208f571 Merge "Don't crash system_server if fixupAppDir() fails." into rvc-dev 2020-02-25 07:53:57 +00:00
Joshua Duong
b76d7aa6bc Merge "Remove key from adb_keys if user forgets the key." into rvc-dev 2020-02-25 06:10:49 +00:00
TreeHugger Robot
20ea7f5258 Merge "Introduce SoftInputShowHideHistory" into rvc-dev 2020-02-25 05:35:25 +00:00
Amy Zhang
7ff127e897 Merge changes from topic "trm-impl-rvc" into rvc-dev
* changes:
  Fix issues in register/unregister client API implementation
  Add a TRM use case priority hints info object
  Add requestFrontend implementation in TunerResourceManager
  Implement TRM setFrontendInfoList logic with unit tests
2020-02-25 05:02:44 +00:00
TreeHugger Robot
395262cbb4 Merge "Trim "android.permission." from permission name to reduce reporting footprint." into rvc-dev 2020-02-25 04:21:02 +00:00
TreeHugger Robot
0cbb2687ed Merge "Move PiP animation to SysUI package" into rvc-dev 2020-02-25 03:10:24 +00:00
TreeHugger Robot
ba58fd615f Merge "Add Option To Prevent Wake On Back Key Press" into rvc-dev 2020-02-25 02:10:32 +00:00
Winson
03f72240fe Use correct PackageSetting for dexopt calculation
The PackageSetting object is sometimes copied during
scan/install and will not match the reconciledPkg's pkgSetting.

This meant the usesLibrary parsing assigned the values to one
PackageSetting object, but dexopt read from the other, copied
object.

Unfortunately this copy logic leaves the two settings out of
sync and thus the isUpdatedSystemApp flag has to be copied
between them.

All of this would be great to resolve in a future refactor.

Bug: 150142306

Test: adb install -r {out_of_blueline_target}/product/app/CalculatorGooglePrebuilt/CalculatorGooglePrebuilt.apk
    installs correctly, with dexopt run with the correct paths

Change-Id: Ifca3bafcea1b8858baf4a22ddd264d5e07a0f1e5
2020-02-24 18:03:31 -08:00
Joshua Duong
1223bcaf0c Remove key from adb_keys if user forgets the key.
It was being removed from adb_temp_keys.xml but not adb_keys.

Bug: 150138676
Bug: 111434128

Test: atest AdbDebuggingManagerTest

Change-Id: I3c31394e4480e787c771e193b179a472d6ee4a62
2020-02-25 02:01:38 +00:00
TreeHugger Robot
bf2b4a3854 Merge "Fix PinnerService SecurityException at boot" into rvc-dev 2020-02-25 01:44:36 +00:00
Santhosh Thangaraj
b403e7d24f Fix the delay time for Assistant
Bug: 150144102
Test: no new test added Existing is sufficient NotificationManagerServiceTest

Change-Id: Iaa3559b20e69ef57a4a4ddd6665d4d7156bb7dfe
2020-02-24 22:30:27 +00:00
Amy
630fc01bf6 Fix issues in register/unregister client API implementation
Issues include:
1. clientId array size checking too hard
2. missed use case validation
3. missed in use resources update when unregistering client(same in on
binder dead, will be in separate CL)
4. Calling PID should have only be used when tvinputsession id is null
5. Adding resources list to client profile

Test: atest TunerResourceManagerServiceTest
Bug: 147380513
Change-Id: I09b4105659a491b3c07e3b737fe0617b83d24447
(cherry picked from commit 19b71275e0)
2020-02-24 14:27:36 -08:00
Amy
abdf7b6a57 Add a TRM use case priority hints info object
This object includes a parser that reads the vendor config xml

Test: atest UseCasePriorityHintsTest
Bug: 147380513
Change-Id: I4bff0bc196a0c2a78ce4305acec7ce7cc9a4fa70
(cherry picked from commit 2f62bf64ca)
2020-02-24 14:27:36 -08:00
Amy
38ff0181c3 Add requestFrontend implementation in TunerResourceManager
Test: atest TunerResourceManagerServiceTest
Bug: 147380513
Change-Id: Icec048913e2cbe141448c0c322d37c233588dfcd
(cherry picked from commit 9d150f58bd)
2020-02-24 14:27:36 -08:00
Amy
9796ba2f6d Implement TRM setFrontendInfoList logic with unit tests
Note that this CL includes some format changes and redundant
implementation removing in ClientProfile.java and
TunerResourceManagerService.java.

The key change of the CL is the FrontendResource.java object and
the impl of the setFrontendResourceList method in
TunerResourceManagerService.java.

Test: atest TunerResourceManagerServiceTest
Bug: 147380513
Change-Id: I3df8e386ad37bc67694594b07de04cc9f3b88e02
(cherry picked from commit caf201a8e7)
2020-02-24 14:27:36 -08:00
Makoto Onuki
2d80ca09fc Squash same ApplicationInfo's in Parcel
ApplicationInfo now automatically tries to "squash" the same instances in a
Parcel.

NOTE: This CL still does *not* optimize the package manager APIs that return a
list. e.g. PM.queryContentProviders() still return duplicate AppInfo's.
We can optimize them by making ParcelableListSlice call "allowSquashing",
but that *could* have negative side effects, so I'm not doing it in this CL.
I think we can do that for S.

Bug: 148588589
Test: atest CtsContentTestCases # except for two preexsiting failures:
- android.content.pm.cts.PackageManagerTest#testGetIcon
- android.content.pm.cts.PackageManagerTest#testGetPreferredActivities

Test: Use the debugger and make sure bindApplication() is not receiving
duplicate AppInfo's in the provider list.

Change-Id: I3ba2c047a469169340c0f75c36bdfd394bc5d627
(cherry picked from commit 7d09275d70)
2020-02-24 22:22:13 +00:00
Feng Cao
85cbe43d48 Merge "Use context for correct display in the renderer service" into rvc-dev 2020-02-24 22:10:06 +00:00
Hongwei Wang
85cf41fcc3 Move PiP animation to SysUI package
The bounds animation is cleaned up within window manager and it's now
the SysUI component listening on callbacks from TaskOrganizer for
entering to and exiting from PiP mode.

Additionally, the expand and move of the PiP window is now part of SysUI
as well.

Known issues:
- Black background when in transition from PiP to fullscreen. The
wallpaper gets into hidden state too early
- App gets into PiP mode too early when entering PiP, need to defer the
configuration change sent to app in this case

Bug: 146594635
Bug: 148198539
Bug: 138144750
Bug: 149569903
Test: atest PinnedStackTests
Test: atest PipAnimationControllerTest
Test: atest RecentsAnimationTest
Test: atest RecentTasksTest
Test: atest com.android.server.wm.ActivityStarterTests
Merged-In: Id0c8ce03fa26952daf5e3687b18b2eb2375b7d20
Change-Id: Id0c8ce03fa26952daf5e3687b18b2eb2375b7d20
2020-02-24 21:16:20 +00:00
Peter Kalauskas
84f02a81e8 Disable reduced scale if reduced scale config is 0
Change reduced scale implementation to toggle on/off based on
config_lowResTaskSnapshotScale=0 instead of ro.config.low_ram=true

Also, only use _reduced.jpg if reduced scale is enabled.  Previously,
for task snapshots, [0-9]+_reduced.jpg would be used if reduced scale
was disabled, and [0-9]+.jpg would never be used. This patch swaps that
behavior to make the underlying system more intuitive.  Now, if reduced
snapshots are disabled, store the task snapshot in [0-9]+.jpg and never
use [0-9]+_reduced.jpg.

Also, store low-res snapshots at config_lowResTaskSnapshotScale.
Prevously, low-res snapshots were stored at lowResScale * highResScale

Test: TaskSnapshotCacheTest
Test: TaskSnapshotControllerTest
Test: TaskSnapshotPersisterLoaderTest
Test: TaskSnapshotSurfaceTest
Bug: 148099851
Bug: 142063079
Change-Id: I5a0d58766347d875eaec138820323063aa1c2988
2020-02-24 21:02:03 +00:00
Peter Kalauskas
fe0a413a60 Store original task width and height instead of scale
Store the original task snapshot size instead of the scale from which
the bitmap was saved. This simplifies the logic around restoring and
saving from the proto, as both the reduced scale and full scale
snapshots make use and share the same state.

Also remove scale from TaskSnapshot, and remove and reducedScale from
TaskSnapshot.Builder.

Test: TaskSnapshotCacheTest
Test: TaskSnapshotControllerTest
Test: TaskSnapshotPersisterLoaderTest
Test: TaskSnapshotSurfaceTest
Bug: 148491788
Bug: 148617404
Bug: 142063079
Change-Id: I1dccaba87c3d8b95bf4156f41f9fd5d40019f675
2020-02-24 21:01:03 +00:00
Galia Peycheva
a8e4641296 Clean up dreamland
Sort imports and exchange inline Runnables for lambdas

Bug: 133216167
Test: m && ./vendor/google/tools/flashall
Merged-In: Ife3d13904a698efbe0933676b176ac1fbb53d0bd
Change-Id: Ife3d13904a698efbe0933676b176ac1fbb53d0bd
(cherry picked from commit 21cab31b82)
2020-02-24 19:04:25 +00:00
Stanislav Zholnin
dbcf85e576 Trim "android.permission." from permission name to reduce reporting footprint.
Bug: 136134050
Test: ./out/host/linux-x86/bin/statsd_testdrive 10050
Change-Id: I32f4c83f3362ca06cf0893b60f523af86cbcda5c
2020-02-24 18:32:09 +00:00
Winson Chiu
1fd15d2073 Merge "Fix PackageSetting isUpdatedSystemApp and SYSTEM_EXT rescan" into rvc-dev 2020-02-24 18:29:21 +00:00
chaviw
b9c44aae79 Fix Display SurfaceControl leak
The DisplayContent was merging its transaction into the
RootWindowContainer's pendingTransaction. However, that transaction is
never applied so it was stuck in that transaction forever.

There's no need to merge to parent transaction when removing since
calling getPendingTransaction will already return the DisplayContent's
transaction.

Also added a forced Transaction.apply() when removing the DisplayContent
since there's a chance it may no be reachable when
performSurfacePlacement is called to apply all transactions.

Test: EncodeVirtualDisplayWithCompositionTest#testVirtualDisplayRecycles
No longer leaks SurfaceControls
Fixes: 149526716

Change-Id: I14aa5b2e0e14d75fb0285a1b7a511235064f621c
(cherry picked from commit 93938469fc)
2020-02-24 18:09:51 +00:00
Stanislav Zholnin
fd2f367df6 Merge "Add atom and puller for AppOps with FeatureIds" into rvc-dev 2020-02-24 17:37:45 +00:00
Felipe Leme
9fa3a870c6 Merge "Improved user callbacks on SystemService:" into rvc-dev 2020-02-24 16:59:32 +00:00
Nikita Ioffe
2773260387 Merge "UserspaceRebootLogger: query sys.boot.reason.last" into rvc-dev 2020-02-24 16:58:21 +00:00
Felipe Leme
339b7149af Improved user callbacks on SystemService:
* Renamed:

  onStartUser() -> onUserStarting()
  onStopUser() -> onUserStopping()
  onSwitchUser() -> onUserSwitching()
  onUnlockUser() -> onUserUnlocking()
  onCleanupUser() -> onUserStopped()
  isSupportedUser() -> isUserSupported()

* Added:

  onUserUnlocked()

Tested on automotive, which uses the callbacks to dump user metrics:

$ adb shell dumpsys car_service --user-metrics
adb shell dumpsys car_service --user-metrics
* User Metrics *
  no users starting
  no users stopping
Last 10 started users
  2020-02-21T19:44:47.101 - user=0 start=2020-02-21 19:44:45.357 unlocking=+885ms unlocked=+1s122ms
  2020-02-21T19:44:56.376 - user=10 start=2020-02-21 19:44:47.380 switch=+209ms unlocking=+8s262ms unlocked=+8s994ms
  2020-02-21T20:00:08.792 - user=11 start=2020-02-21 20:00:04.634 switch(from 10)=+351ms unlocking=+4s44ms unlocked=+4s156ms
Last 10 stopped users
  2020-02-21T20:00:48.323 - user=10 stop=2020-02-21 20:00:16.741 shutdown=+31s581ms

Test: m update-api
Test: atest BackupManagerServiceTest
Test: manual verification (see above)
Fixes: 150001654

Exempt-From-Owner-Approval: approved on master right before rvc split

Merged-In: I8774c57620030b9aa8e7ec039a6a758ad56db368
Change-Id: I8774c57620030b9aa8e7ec039a6a758ad56db368
(cherry picked from commit 58e7458ac7)
2020-02-24 16:44:52 +00:00
Stanislav Zholnin
7dcc51dc79 Add atom and puller for AppOps with FeatureIds
Bug: 136134050
Test: make statsd_testdrive && ./out/host/linux-x86/bin/statsd_testdrive 10074

Change-Id: Ic1d84b2f91e9b6857dda717ab21208d9f331be2f
2020-02-24 15:30:00 +00:00
Gavin Corkery
025b96ee57 Merge "Ensure staged rollback status is logged on boot" into rvc-dev 2020-02-24 15:23:01 +00:00
Carmen Jackson
37887b2d4c Fix PinnerService SecurityException at boot
We were passing "system" as the callingPackage argument when calling
registerUidObserver, which is apparently invalid. null is a valid option
here and seems to pin everything as expected, so this change updates
this call to avoid the SecurityException.

Note that this SecurityException does not seem to have affected the
actual pinning of the expected files - we still pin the same files
before and after this change.

Bug: 147355976
Test: No longer see the SecurityException at boot. Running dumpsys
pinner at boot shows that the same files are pinned as before this
change, including the Camera app but not including a Launcher app.
After using the four-corner tap to bypass the setup wizard, the Launcher
app is pinned. This indicates that the uid observer worked correctly to
re-pin the Launcher app after it replaces the setup wizard.

Change-Id: I2cd845cb5fad3de251d110141dcd1af9ec3aa234
Merged-In: I2cd845cb5fad3de251d110141dcd1af9ec3aa234
(cherry picked from commit 96f6b2d1d9)
2020-02-24 13:48:07 +00:00
Nikita Ioffe
7bc82dd543 UserspaceRebootLogger: query sys.boot.reason.last
Also did a small refactoring in computeOutcome() method to make it work
for cases when boot reason has a sub-reason, e.g.:
reboot,mount_userdata_failed,no_userdata_in_fstab.

Test: adb shell svc reboot userspace
Bug: 148767783
Change-Id: I13474d8a5be9382f56fdc8f17cf201666492e60d
2020-02-24 12:27:06 +00:00
Patrick Rohr
2faf788151 Add Option To Prevent Wake On Back Key Press
KEYCODE_BACK was previously hardcoded as a wake key in KeyEvent.java.
For TV remotes, we want to make this behavior configurable.

Test: Tested on Android TV Device.
Bug: 144979700
Change-Id: I496c9c283525d5e04325e4bb3d6ab19a571db0c7
2020-02-24 08:17:24 +00:00
lumark
d85e158db8 Introduce SoftInputShowHideHistory
Add SoftInputShowHideHistory class to monitor showSoftInput / hideSoftInput
histories, each entry data contains:
  - ClientState: IME focused client process pid / uid who
  shows / hides soft input
  - Current focused window
  - Target display ID
  - Reason: describes why show / hide input
  - Request show or hide input
  - Timestamp

Bug: 141738570
Test: manual by calling "adb shell dumpsys input_method"
Change-Id: I21ad1708d68eae59dcd3d414248193fb130dadc2
Merged-In: 10ecd64cdd
(cherry picked from commit 10ecd64cdd)
2020-02-24 07:55:29 +00:00
Charles Chen
1ac295ec08 Revert "Revert "Always get window insets from server""
This reverts commit 288e1bd045.

The previous implementation of computeWindowInsets is to
use last view from WM#addView, which may be invalid because
the last added view is removed and throws NPE when getting
property from the invalid view.
In this CL, we change the approach to always obtain window
insets from server.

fixes: 148789183
fixes: 149480577
Test: atest FrameworksCoreTests:WindowMetricsTest
Test: atest WindowMetricsTests

Change-Id: I6db5970d14ac9eebe0ab0df65cb1300515ad1754
(cherry picked from commit 6bb2d4f68c)
2020-02-24 03:46:51 +00:00
Gavin Corkery
ab2544c10b Change checkpointing retry count to 2
Changing the checkpointing retry count to 2 resolves
issues of apex sessions being reverted if a hard reboot takes
place during a userspace reboot. Previously, a revert would
occur based on what stage of the boot sequence a hard reboot
took place in, now the revert will not occur at all.

Bug: 148270009
Test: atest ApexRollbackTests
Change-Id: Idce2d60f0a25f01a7d081420c937e5c9cec12e5d
2020-02-23 18:30:35 +00:00
Gavin Corkery
7c46fe3663 Ensure staged rollback status is logged on boot
In the cases that a logging parent cannot be found for any packages
in a rollback, the watchdog event should still be logged. Ensure
that the state of a rollback is captured on boot by removing the
condition of only saving a rollback id if there is a logging package,
and by adding a symbolic null package to the list of logging packages
on boot if none were found. Expand tests to verify.

Bug: 149957011
Test: atest StagedRollbackTest
Test: atest NetworkStagedRollbackTest
Change-Id: I56f8afb6730e59fbe67ea8747e0da3aca19a0d8a
2020-02-23 17:23:23 +00:00