Commit Graph

16303 Commits

Author SHA1 Message Date
Wilson Wu
92de463629 Merge "Make IInputMethodPrivilegedOperations to async (1/N)" into sc-dev am: 889e3d63bb
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13982587

Change-Id: I22ec69e750da947d529ffc69971966bf965413b6
2021-03-31 10:41:08 +00:00
Wilson Wu
889e3d63bb Merge "Make IInputMethodPrivilegedOperations to async (1/N)" into sc-dev 2021-03-31 10:17:25 +00:00
Ioannis Ilkos
fb2db1932f Merge "Per process DMA-BUF stats" into sc-dev am: 50d4ba03b5
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13988962

Change-Id: Iabb28779cd1a79c60fcf2f0c45b151a5ea0de148
2021-03-31 09:00:01 +00:00
Ioannis Ilkos
50d4ba03b5 Merge "Per process DMA-BUF stats" into sc-dev 2021-03-31 08:48:55 +00:00
Yohei Yukawa
5c0c433891 Merge "Avoid IME restart for configChanges" into sc-dev am: 12e4fde793
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13885361

Change-Id: I25e694142090ece30cb15cde33124e094e0cf944
2021-03-31 02:41:58 +00:00
Yohei Yukawa
12e4fde793 Merge "Avoid IME restart for configChanges" into sc-dev 2021-03-31 02:28:22 +00:00
Rob Carr
7f89042c95 Merge "Expose API for using SurfaceControl with ViewRootImpl" into sc-dev am: 2b434b28b0
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13842193

Change-Id: I991c351464b0b4fa27a68ee065b3057bd6ec3a01
2021-03-31 02:00:38 +00:00
Rob Carr
2b434b28b0 Merge "Expose API for using SurfaceControl with ViewRootImpl" into sc-dev 2021-03-31 01:35:49 +00:00
Ray Essick
6ccf5d7c47 Merge "No longer preload libsfplugin_ccodec in zygote" into sc-dev am: 2d2519e32d
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14008903

Change-Id: I97fc60f5cbeadd2b688054c962e702f17fc14b34
2021-03-30 21:10:08 +00:00
Ray Essick
2d2519e32d Merge "No longer preload libsfplugin_ccodec in zygote" into sc-dev 2021-03-30 21:09:42 +00:00
Daniel Sandler
8af8f8d0f4 Merge "Add INVOCATION_TYPE_POWER_BUTTON_LONG_PRESS." into sc-dev am: ca0ac5e60d
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13732010

Change-Id: I1a4245af72156c77280bc1a0139fa13803c9b8ef
2021-03-30 20:33:40 +00:00
Daniel Sandler
ca0ac5e60d Merge "Add INVOCATION_TYPE_POWER_BUTTON_LONG_PRESS." into sc-dev 2021-03-30 20:23:06 +00:00
Taran Singh
71ab752fc5 Avoid IME restart for configChanges
Handle onConfigurationChanged() in order to prevent restarting
InputMethodService everytime. We introduce a new API attribute
"configChanges" in InputMethod(attrs.xml) which when declared
by IME, will be responsible for handling mentioned
configuration changes.

This CL re-introduces [1] with fix: Use new Configuration instance for
IMS#mLastKnownConfig and also handle followup comments.

[1] Ib94fddadb0dae648cf73a4c1642e51edebd19f50

Note: this change has no impact for devices not using DisplayAreas.

Bug: 167948419
Test: atest InputMethodServiceTest
    Manually:
      1. Patch Ie91e7a8e06b80864ef9409031e8543858552d70d to use dual
         display area.
      2. Open applications with editors on both display areas.
      3. Attach a debug point for IMS#onConfigurationChanged().
      4. Make sure IMS#resetStateForNewConfiguration() is not called
         when IME moves between these two identical DisplayAreas
    Also verify that bug 182604598 don't happen.

Change-Id: I43b6b80cdb35410554412ee1d3b0917ee3198272
2021-03-30 20:03:55 +00:00
Amit Mahajan
a681f374b7 Merge "Notify CellLocation whenever ACTION_USER_SWITCHED" into sc-dev am: 244c071737
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13891835

Change-Id: Ideca245d742325e14d936ca36ddb9716727561ae
2021-03-30 17:45:13 +00:00
Amit Mahajan
244c071737 Merge "Notify CellLocation whenever ACTION_USER_SWITCHED" into sc-dev 2021-03-30 17:42:08 +00:00
Ioannis Ilkos
228fc0293b Per process DMA-BUF stats
In order to detect memory regressions caused by improper handling of
dma-buf buffers we need to measure how this memory is used.

This change:
- Introduces DmabufInfoReader which wraps libmeminfo and provides
per-process DMA-BUF stats.
- Specifically, measures buffers mapped to the process address space
(from /proc/pid/maps). This is supported on all devices.
- For devices running 5.4+ (where the system processes can query fdinfo)
also measures the total retained memory (either by mmap or an open fd).
- Introduces a statsd atom that collects this for all running managed
processes. Non-managed processes will also hold dmabufs, but the
likelihood of them causing issues (post-launch) is smaller so I am
trading them off for cheaper collection (if indeed we encounter such
problems, they will definitely be caught by the total dmabuf counters).

Test: manual
Bug: 183708249
Change-Id: I5e0ef58ac1a66ebe2d280c5733de46ba84f75a46
2021-03-30 10:38:10 +01:00
Robert Carr
ee90cd4871 Expose API for using SurfaceControl with ViewRootImpl
This API is appropriately called "ViewRoot". So far we just expose
an API surface to reparent SurfaceControl to the ViewRoot (but without
exposing the ViewRoot's SurfaceControl, to encourage developers not
to shoot themselves in the foot) and to synchronize with the drawing
of the ViewRoot SurfaceControl.

Bug: 173463039
Test: ViewRootSyncTests
Change-Id: I8ce0ed4b3efe50cdb3b71ae0f05ce25438d42368
2021-03-30 04:10:05 +00:00
Jacky Kao
b599784e05 Merge "Logs magnification feature behavior. (2/2)." into sc-dev 2021-03-29 23:56:22 +00:00
Svetoslav Ganov
77591d9942 Merge "Runtime permission attribution improvements" into sc-dev am: a6c3d6ad39
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13692058

Change-Id: Ibad155ee212f6e71800e288a44bbed6012d32838
2021-03-29 21:05:00 +00:00
Svetoslav Ganov
a6c3d6ad39 Merge "Runtime permission attribution improvements" into sc-dev 2021-03-29 21:03:06 +00:00
Siim Sammul
be6eacd120 Merge "Push the latency histograms to statsd" 2021-03-29 20:50:45 +00:00
Jeff DeCew
b558a615a1 Merge "Fix color filter on NotificationExpandButton's chevron" into sc-dev am: 2ea75ab9ce
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14019045

Change-Id: I4cd18b79696636a228bc3a296fe7e5f44e7d7e7b
2021-03-29 20:32:17 +00:00
Dan Sandler
f44b1709ff Add INVOCATION_TYPE_POWER_BUTTON_LONG_PRESS.
Since this is intended to be used by PhoneWindowManager,
this patch also hoists these internal constants out of
SystemUI and into com.android.internal.app.AssistUtils.

Adds the new UiEvent ASSISTANT_INVOCATION_POWER_LONG_PRESS
for future use by calling code.

This patch also fixes an inconsistency in the existing
constant names (internally to these files).

Fixes: 181601214
Test: atest SystemUITests
Change-Id: Ida860d78ef490e0dc119b37287c6ecdff5b9c0de
2021-03-29 20:23:27 +00:00
Jeff DeCew
2ea75ab9ce Merge "Fix color filter on NotificationExpandButton's chevron" into sc-dev 2021-03-29 19:20:15 +00:00
Siim Sammul
a28ccaf373 Push the latency histograms to statsd
Test: unit tests, verified atom logging with statsd_testdrive
Bug: 180584913

Change-Id: I0b8db72c0cb3b285177bbe402ce37639c468dbf3
2021-03-29 18:04:21 +01:00
Svet Ganov
8d2ed50604 Runtime permission attribution improvements
When an app is proxying access to runtime permission protected
data it needs to check whether the calling app has a permission
to the data it is about to proxy which leaves a trace in app ops
that the requesting app perofmed a data access. However, then the
app doing the work needs to get the protected data itself from the
OS which access gets attributed only to itself. As a result there
are two data accesses in app ops where only the first one is a
proxy one that app A got access to Foo through app B - that is the
one we want to show in the permission tracking UIs - and one
for the data access - that is the one we would want to blame on
the calling app, and in fact, these two accesses should be one -
that app A accessed Foo though B. This limitation requires fragile
one off workarounds where both accesses use the same attribution
tag and sys UI has hardcoded rules to dedupe. Since this is not
documented we cannot expect that the ecosystem would reliably
do this workaround in apps that that the workaround in the OS
would be respected by every OEM.

This change adds a mechaism to resolve this issue. It allows for
an app to create an attribution context for another app and then
any private data access thorugh this context would result in a
single app op blame that A accessed Foo though B, i.e. we no longer
have double accounting. Also this can be nested through apps, e.g.
app A asks app B which asks app C for contacts. In this case app
B creates an attribution context for app A and calls into app C
which creates an attribution context for app B. When app C gets
contacts the entire attribution chain would get a porper, single
blame: that C accessed the data, that B got the data from C, and
that A got the data form B. Furthermore, this mechanism ensures
that apps cannot forget to check permissions for the caller
before proxying private data. In our example B and C don't need
to check the permisisons for A and B, respectively, since the
permisisons for the entire attribution chain are checked before
data delivery. Attribution chains are not forgeable preventing
a bad actor to create an arbitrary one - each attribution is
created by the app it refers to and points to a chain of
attributions created by their corresponding apps.

This change also fixes a bug where all content provider accesses
were double counted in app ops due to double noting. While at
this it also fixes that apps can now access their own last ops.
There was a bug where one could not pass null getting the attributed
ops from a historical package ops while this is a valid use case
since if there is no attribution everything is mapped to the null
tag. There were some app op APIs not being piped thorough the app
ops delegate and by extension through the app ops policy. Also
now that we have nice way to express the permission chain in a
call we no longer need the special casing in activity manager to
handle content provider accesses through the OS. Fixed a bug
where we don't properly handle the android.os.shell calls with
an invlaid tag which was failing while the shell can do any tag.

Finally, to ensure the mechanims is validated and works end-to-end
we are adding support for a voice recognizer to blame the client
app for the mic access. The recognition service can create a blaming
context when opening the mic and if the mic is open, which would
do all permission checks, we would not do so again. Since changes
to PermissionChercker for handling attribution sources were made
the CL also hooks up renounced permissoins in the request permission
flow and in the permission checks.

bug:158792096
bug:180647319

Test:atest CtsPermissionsTestCases
     atest CtsPermissions2TestCases
     atest CtsPermissions3TestCases
     atest CtsPermissions4TestCases
     atest CtsPermissions5TestCases
     atest CtsAppOpsTestCases
     atest CtsAppOps2TestCases

Change-Id: Ib04585515d3dc3956966005ae9d94955b2f3ee08
2021-03-29 16:49:33 +00:00
Jeff DeCew
a29c7b91a6 Fix color filter on NotificationExpandButton's chevron
Bug: 181048615
Test: visual
Change-Id: I7a9a9943e091f8a60b9a77836a946a38f5b570d6
2021-03-29 10:55:20 -04:00
Peter Li
d3b9b7d0f5 Merge "Add callback to report HotwordDetectionService status" into sc-dev am: 378b540fa1
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13974087

Change-Id: Idc441a5d54c25e58803bc4d8e609c57514a5416f
2021-03-29 12:04:21 +00:00
lpeter
6f2a263810 Add callback to report HotwordDetectionService status
Bug: 182788844
Test: Test: atest CtsVoiceInteractionTestCases
Test: atest CtsVoiceInteractionTestCases --instant
Change-Id: I12f0a265fc4fce0bbfe0983f39b4dcd947e3cf64
2021-03-29 17:41:24 +08:00
Wilson Wu
1b8593fdfe Make IInputMethodPrivilegedOperations to async (1/N)
-. Remove VoidResultCallback of setImeWindowStatus
   and let it be asynchronous.
-. Rename function naming to setImeWindowStatusAsync.

Bug: 183587528
Test: atest CtsInputMethodTestCases
Change-Id: Ia9f19ca5ae418089ce43816dcd50487e1b1172f1
2021-03-29 11:53:42 +08:00
Ray Essick
a15689d49f No longer preload libsfplugin_ccodec in zygote
libsfplugin_ccodec was loaded with dlopen() in initial generation.  It has
since been turned to always-linked.  This makes the performance tweak of
pre-loading in Zygote to improve camera startup latency no longer needed.

Bug: 177694783
Bug: 133186424
Test: functional camera
Change-Id: I054787cf9d6992515d3fccb289f041b536639bea
2021-03-27 10:05:38 -07:00
Dmitri Plotnikov
3497fb9b94 Merge "Add SystemBatteryConsumer.getPowerConsumedByApps()" into sc-dev am: eb2a57b807
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13944376

Change-Id: Ibed8bbf53944d2ef88f4cd2224cb4680d1e91494
2021-03-26 14:45:13 +00:00
Dmitri Plotnikov
eb2a57b807 Merge "Add SystemBatteryConsumer.getPowerConsumedByApps()" into sc-dev 2021-03-26 14:31:35 +00:00
Sergey Volnov
06cff513a1 Merge "Introduce the concept of software and external hotword." into sc-dev am: 86d7e7d2e0
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13727287

Change-Id: I45cd1c6be4d6cc14eb52681fdf4f8367d52af031
2021-03-26 13:08:11 +00:00
Sergey Volnov
baceb11e71 Introduce the concept of software and external hotword.
Follow-up: implement circular buffer and integrate with the flows.

Bug: 182788844
Bug: 168305377
CTS-Coverage-Bug: 183425641
Test: atest CtsVoiceInteractionTestCases
Change-Id: I654a06afb27bb961bfb547a6636e08eb72a031fc
2021-03-26 00:10:44 -07:00
Dmitri Plotnikov
c733ef6692 Add SystemBatteryConsumer.getPowerConsumedByApps()
Also, standardize the implementations of getConsumedPower()
to consistently return the total power consumed, not the
power unattributed to apps.

Bug: 183235836
Test: atest FrameworksCoreTests:com.android.internal.os.BatteryStatsTests
Change-Id: Iaedb29b9d7afd9843b0ab871e9b8656963db11ea
2021-03-25 18:45:08 -07:00
Benjamin Franz
001aff2da3 Merge "Create a new permission to override Overridable change ids" into sc-dev am: 16cd2836a3
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13988946

Change-Id: If9fa205c5bdf5d8f37846a84d55653ffd383604d
2021-03-25 15:44:55 +00:00
Benjamin Franz
16cd2836a3 Merge "Create a new permission to override Overridable change ids" into sc-dev 2021-03-25 15:29:21 +00:00
Alison Cichowlas
da20ba6846 More WP chooser/resolver strings am: d19254d3ab
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13986753

Change-Id: Id8218e31198cd5ad70fafcb6ed1afa7a3e7c7117
2021-03-25 13:44:46 +00:00
Alison Cichowlas
d19254d3ab More WP chooser/resolver strings
Bug: 182361692
Test: atest ChooserActivityTest, ResolverActivityTest
Change-Id: I4838ca3a4c861aae3a7bfe3f2396470c3525d3b5
2021-03-25 13:25:50 +00:00
Benjamin Franz
8ee7f9a4c3 Create a new permission to override Overridable change ids
With this change we allow system packages with the new permission to
override ChangeIds specifically annotated as Overridable to set
overrides even on non-debuggable builds.

Bug: 174043039
Bug: 175874108
CTS-Coverage-Bug: 180396382
Test: atest FrameworksServicesTests:CompatConfigTest
Test: atest FrameworksServicesTests:PlatformCompatTest
Change-Id: Ib8d5d83b5fd62acb5808d10f5c413616f29ee65c
2021-03-25 09:45:50 +00:00
Fiona Campbell
4e09a18070 Merge "Store Brightness Per Display" into sc-dev am: acc5fbcb39
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13562253

Change-Id: I3ad4774db8c45229944aacb982a78c82fea58cee
2021-03-25 09:21:56 +00:00
Fiona Campbell
acc5fbcb39 Merge "Store Brightness Per Display" into sc-dev 2021-03-25 08:40:15 +00:00
Tiger Huang
eca9c1e03f Merge "Re-land: Make window stable while resizing" into sc-dev am: 5905279553
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13921805

Change-Id: I62e224b2f5f5f311dc921f27eb9569ec5dc1c85a
2021-03-25 06:32:54 +00:00
Tiger Huang
5905279553 Merge "Re-land: Make window stable while resizing" into sc-dev 2021-03-25 06:24:43 +00:00
TreeHugger Robot
1e605a6f67 Merge "Accept strings for more parameters in Suspend Dialog" into sc-dev am: aeb2ba8da6
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13988109

Change-Id: Ieb2e905795764367f1495bb87dab626409308c14
2021-03-25 04:47:56 +00:00
TreeHugger Robot
aeb2ba8da6 Merge "Accept strings for more parameters in Suspend Dialog" into sc-dev 2021-03-25 04:38:58 +00:00
TreeHugger Robot
e168d1fc6f Merge "Unhide api for setHotwordDetectionServiceConfig" into sc-dev am: d5dc9e47a4
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13958483

Change-Id: Ia43f1abad77acf88cff962cf66844985381f9fe0
2021-03-25 04:26:27 +00:00
TreeHugger Robot
d5dc9e47a4 Merge "Unhide api for setHotwordDetectionServiceConfig" into sc-dev 2021-03-25 03:49:32 +00:00
Suprabh Shukla
241955129a Accept strings for more parameters in Suspend Dialog
Allowing passing raw texts offers more flexibility to callers in some
cases. However, in this case, the callers must handle locale changes on
their own.

Test: atest FrameworksServicesTests:SuspendDialogInfoTest
atest FrameworksServicesTests:PackageManagerSettingsTest
atest CtsSuspendAppsTestCases:DialogTests

Fixes: 170653551
Bug: 170653208
Change-Id: Iaa51e1d3f260ad553db8b33fddc935c478a40c9c
2021-03-24 16:14:47 -07:00