Commit Graph

370 Commits

Author SHA1 Message Date
Eric Biggers
4fb38d5fc3 Merge "Remove broken code for mounting encrypted OBB files" am: a4f24f08b0 am: 56c37e5778 am: 089a351d31
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2003052

Change-Id: I87cbb67af5e1dc62ddbb8ff7d58a256ee4569b44
2022-03-04 22:11:49 +00:00
Eric Biggers
56c37e5778 Merge "Remove broken code for mounting encrypted OBB files" am: a4f24f08b0
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2003052

Change-Id: Id027c555af21e46922a1c0ce29195d95bb7bb876
2022-03-04 21:27:43 +00:00
Eric Biggers
8bc9340b4c Remove broken code for mounting encrypted OBB files
Mounting encrypted OBB files has never worked reliably across devices,
partly due to its reliance on Twofish encryption support in the kernel.
This is because Twofish support (CONFIG_CRYPTO_TWOFISH) has never been
required or even recommended for Android.  It has never been enabled in
GKI, but even before GKI it wasn't required or recommended.  Moreover,
this is now the only Android feature that still uses dm-crypt
(CONFIG_DM_CRYPT), and some devices don't have that enabled either.

Therefore, it appears that this feature is unused.  That's perhaps not
surprising, considering that the documentation for OBBs
(https://developer.android.com/google/play/expansion-files) says that
they are deprecated, and also it explains OBBs as being app files that
are opaque to the platform; the ability of the platform to mount OBBs
that happen to be in a particular format is never mentioned.  That means
that OBB mounting is probably rarely used even with unencrypted OBBs.
Finally, the usefulness of OBBs having their own encryption layer (in
addition to what the platform already provides via FBE) is not clear
either, especially with such an unusual choice of cipher.

To avoid the confusion that is being caused by having the broken code
for mounting encrypted OBBs still sitting around, let's remove it.

Test: atest StorageManagerTest # on Cuttlefish
Test: atest StorageManagerIntegrationTest # on Cuttlefish
Bug: 216475849
Change-Id: I6e6a6462ab8343299dc5e0145b87dc28b16b0bc1
2022-03-04 04:51:54 +00:00
TreeHugger Robot
92553f3ce8 Merge "Use start time in SurfaceControl setFrameTimeline." into tm-dev 2022-03-02 19:17:38 +00:00
Bo Liu
9acc558c29 adpf: Use one client token per process for all hint sessions
So it doesn't leak when gc is delayed in service process.

Update HintManagerService to allow multiple sessions tied to the same
token.

Bug: 218129784
Test: chrome no longer gets killed
Change-Id: I67a66041cc67d01e4cfcd3ded303a1bed6050f60
2022-03-01 12:04:06 -05:00
Rachel Lee
b6c93aa789 Use start time in SurfaceControl setFrameTimeline.
Users of the API will see in the "Actual Timeline" the actual start time
rather than expected start time.

Bug: 210043506
Test: perfetto log of with & w/o CL, using Chromium apk, bug 198192946
Change-Id: I013bf6e28de32c82c9d645cc4cacf0cc01e0dd9f
2022-02-26 01:23:00 +00:00
Rachel Lee
a52e963d38 Merge "Rename to VsyncCallback & presentation time." 2022-02-17 19:49:55 +00:00
Rachel Lee
1a44c62b74 Rename to VsyncCallback & presentation time.
Bug: 217370454
Test: atest ChoreographerNativeTest
Change-Id: Icf460a82c1f59e930bdfc456e4a75ae341ce4394
2022-02-15 18:25:11 -08:00
Vaibhav
e85c348731 Add implementation for new NDK functions added to input.h
Added new methods for getActionButton and getClassification in input.h.
In this CL we are adding implementations for the corresponding functions

Test: atest android.view.cts.MotionEventTest

Bug: 213266814

Change-Id: Ia7c7b83fe19bac7d5e5c7c107e86328e160ba2b5
2022-02-14 16:19:45 +00:00
Xin Li
5ad6db7742 Merge sc-v2-dev-plus-aosp-without-vendor@8084891
Bug: 214455710
Merged-In: I8cfa435bb6233818adb9cc99dadeeb06a03443d5
Change-Id: Ib93992d88fd1704179009a3872798b9e7b83a6d1
2022-02-11 07:25:43 +00:00
Ady Abraham
5f7f72779e Merge "surface_control: handle acquire fence on BLAST callbacks" 2022-02-10 18:29:24 +00:00
Treehugger Robot
5c816689a9 Merge "Adjust base/native/android OWNERs" am: d8f74421fb am: 82e8873cba am: e7eb1dce20 am: 8fb92de72b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1977192

Change-Id: I6ddf92eed85ae95a902fc1d1781e67d157b5d2d8
2022-02-10 17:58:08 +00:00
Treehugger Robot
8fb92de72b Merge "Adjust base/native/android OWNERs" am: d8f74421fb am: 82e8873cba am: e7eb1dce20
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1977192

Change-Id: I19f032cabc787356be291a500e639d223ddf41a2
2022-02-10 17:37:21 +00:00
Treehugger Robot
e7eb1dce20 Merge "Adjust base/native/android OWNERs" am: d8f74421fb am: 82e8873cba
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1977192

Change-Id: Ifc576cf8e977102786755a7abeb0c8686ae5c9c5
2022-02-10 17:22:13 +00:00
John Reck
f91696e2c3 Adjust base/native/android OWNERs
Test: N/A
Change-Id: Ieb263e6b57b5e4495d45e6c22ac1f97cb1ca7913
2022-02-09 10:11:56 -05:00
Erik Staats
13ca5df169 Add ASensorManager_getDynamicSensorList.
Bug: 217890463
Test: Used uhid-sample to add a dynamic sensor and verified it can be
 used with sensor_test.
Change-Id: Ia930c6993c97527381d30e33f817f37632cb8396
2022-02-08 14:20:32 -08:00
Treehugger Robot
7096d45f59 Merge "Really expose the new NDK socket tagging functions added in T." am: cba72fc987 am: fd5bb81c8a am: f30f967e5a am: 4bc8cb7628
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1967301

Change-Id: Ia93a3556b209aa214233952b838c2e0ca3aeaddb
2022-02-02 16:45:01 +00:00
Treehugger Robot
4bc8cb7628 Merge "Really expose the new NDK socket tagging functions added in T." am: cba72fc987 am: fd5bb81c8a am: f30f967e5a
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1967301

Change-Id: Ibf59d43165b336b52030103a3e9e3b95872197c8
2022-02-02 16:24:42 +00:00
Treehugger Robot
f30f967e5a Merge "Really expose the new NDK socket tagging functions added in T." am: cba72fc987 am: fd5bb81c8a
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1967301

Change-Id: Ifd16b2ccf8a2fd85d963aa08243385e094aa7c9b
2022-02-02 16:09:35 +00:00
Lorenzo Colitti
2b9e8860ec Really expose the new NDK socket tagging functions added in T.
These functions were already exposed as part of libandroid_net,
but that is not really part of the NDK.

Expose them in libandroid as well, so apps can actually use them.
This is consistent with all the other native networking APIs,
which are exposed in both libandroid_net and libandroid.

Test: atest CtsNativeNetPlatformTestCases
Test: strings out/target/product/bramble/system/lib64/libandroid.so | grep android_tag
Change-Id: I2273cdd48b30a88b82eb3af838031d9fe8897442
2022-02-02 11:59:41 +00:00
Bo Liu
77f35083d1 Merge "Performance hint ndk APIs" 2022-01-28 18:57:27 +00:00
Rachel Lee
abe5a0016f Merge changes from topic "scdocs"
* changes:
  Use AVsyncId typedef in hwui.
  Use AVsyncId typedef.
2022-01-24 19:54:35 +00:00
Ady Abraham
62e15f0a20 surface_control: handle acquire fence on BLAST callbacks
When latching unsignaled buffers, the acquire fence is
not signaled by the time BLAST callback is invoked. In
that case pass a fence instead. For latch signaled, we still
pass the acquire time itself to avoid sending file descriptors
over binder.

Bug: 198190384
Test: TBD
Change-Id: I949fd396ec36ee759327a952239509d10259be1b
2022-01-21 17:01:03 -08:00
Rachel Lee
7e47b3dd7d Use AVsyncId typedef.
Test: atest ASurfaceControlTest
Bug: 214063411
Change-Id: I5dd6a0e467f3acc46bf4ce65dde0df265b590697
2022-01-14 15:38:18 -08:00
Rachel Lee
4832a69444 Merge changes from topic "achoreonanos"
* changes:
  Update hwui with renamed AChoreographer method.
  Update libandroid renamed AChoreographer methods.
2022-01-13 22:44:31 +00:00
Rachel Lee
545adcd1f7 Update libandroid renamed AChoreographer methods.
Test: atest ChoreographerNativeTest
Bug: 214303753
Change-Id: I32d9703c669b2408dddd199c678fca0564668142
2022-01-13 14:14:25 -08:00
Treehugger Robot
29795b0bf2 Merge "Add tagSocket/untagSocket NDK APIs" am: d992ee2925 am: 358573e8a3 am: cfdc49a491 am: 2a30ec9975
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1938795

Change-Id: If5f98e651be5b59753c15dd19fdedf2d67d034e5
2022-01-13 06:39:20 +00:00
Treehugger Robot
2a30ec9975 Merge "Add tagSocket/untagSocket NDK APIs" am: d992ee2925 am: 358573e8a3 am: cfdc49a491
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1938795

Change-Id: I1c005cbc1d888310e17c6105c0dd2457d4cc1c86
2022-01-13 06:24:56 +00:00
Treehugger Robot
cfdc49a491 Merge "Add tagSocket/untagSocket NDK APIs" am: d992ee2925 am: 358573e8a3
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1938795

Change-Id: Id17914c8247e754e74c9434a6e6843b703ca2daf
2022-01-13 06:10:44 +00:00
Ken Chen
a4a35a92ea Add tagSocket/untagSocket NDK APIs
Provide native APIs to tag the various sockets used for network
transfer, which helps apps tracking down data usage inside their app.

We've had equivalent Java APIs since API level 14.
https://developer.android.com/reference/android/net/TrafficStats.html#tagSocket(java.net.Socket)
https://developer.android.com/reference/android/net/TrafficStats.html#untagSocket(java.net.Socket)

Given that these Java APIs are implemented in native side, providing
NDK APIs directly will be easier for native users to use it.

Bug: 29761778
Bug: 202086915
Test: Tests in change Ic6554d9b98cef9b41b7eae06315d284c574c0a45
Change-Id: I802ce62f82199ce087bf8feb03afb26de1ce526e
2022-01-12 23:21:17 +08:00
Robert Carr
df7c725586 DO NOT MERGE: Track SurfaceComposerClient changes
surfaceControlStats now includes the acquire count.

Bug: 197269223
Bug: 212846697
Test: Existing tests pass
Change-Id: I29f2e9ba1c100a831be5eddce2c2a442d136d98e
2022-01-02 21:55:41 +00:00
TreeHugger Robot
a1320c0a3a Merge "Pass JNIEnv explicitly into AInputQueue_fromJava" 2021-12-16 17:58:05 +00:00
Prabir Pradhan
d0c5dbabd5 Pass JNIEnv explicitly into AInputQueue_fromJava
Instead of assuming a JNIEnv*, the method should have the env passed
into it, which is the standard practice for native APIs.

Bug: 210727635
Test: atest InputQueueTest
Change-Id: Iae5fc5bd39c758c530185694751d6d79715ce31b
2021-12-16 03:37:20 -08:00
Rachel Lee
7834d38d95 Merge changes from topic "surfacectrl"
* changes:
  Pass start time from HWUI canvas context.
  Implement timeline in libandroid ASurfaceControl.
2021-12-15 20:02:30 +00:00
Rachel Lee
e1e77cca8a Implement timeline in libandroid ASurfaceControl.
As part of choreographer project.

Bug: 198192003
Test: atest ASurfaceControlTest
Change-Id: I36fdeae1d2bc07fdbd487fc0a40324fe48baca09
2021-12-09 16:04:06 -08:00
John Reck
7f55b13182 Reduce SurfaceControl feature gap to NDK API
Bug: 200697201
Test: atest android.view.cts.SurfaceControlTest

Change-Id: I1d0cff355714acb5668952b3d7f6fc0c15952523
2021-12-09 17:15:11 -05:00
Xin Li
10d9972786 Merge sc-qpr1-dev-plus-aosp-without-vendor@7810918
Bug: 205056467
Merged-In: I13199bc39e9445929195f3d15579cbffe94e92b0
Change-Id: I35fa3c6c2abf679c51033f1395a08d511ed8739f
2021-11-18 17:00:37 +00:00
Bo Liu
2b739bbb63 Performance hint ndk APIs
Test: atest PerformanceHintNativeTestCases
Change-Id: I8f410cf5ee8cee90465d1ce48a42c9ff8bbe80c4
2021-11-10 19:22:22 -05:00
Jim Blackler
86df7e4214 Give access to the native InputQueue to all native applications.
Bug: 116830907
Test: atest android.view.cts.InputQueueTest#testNativeInputQueue
Change-Id: Ia7741ac4922afeeca334266caef3331b521f87e4
2021-11-01 13:22:27 +00:00
Chavi Weingarten
e55fbe4ea9 Merge "Update setBuffer to use the new setBuffer API" 2021-10-01 17:43:00 +00:00
Rachel Lee
6350ff0b3b Choreographer: new libandroid for CTS.
Bug: 198191651
Test: make, atest ChoreographerNativeTest
Change-Id: I5fd1bbefc77b45ec953e06b0ed5da8521dc08732
2021-09-27 13:25:12 -07:00
chaviw
5513c615e7 Update setBuffer to use the new setBuffer API
Transaction.setAcquireFence is removed and instead the fence can be sent
directly in the setBuffer call.

Test: Chrome works
Fixes: 200065015
Change-Id: I248f07d7ce5a3faa0d7482fe4e0e7b33f3cfea55
2021-09-15 15:26:23 -05:00
Pablo Gamito
14b28ce9ce Get rid of unused ASurfaceControl in frame metrics listener callback
Test: Existing tests
Change-Id: Ia071814dabfc762d00d3324bfaa343ff94ab8338
2021-09-07 16:47:25 +00:00
Pablo Gamito
bc9e529031 Pass surface control id to callback to accurately identify surface metrics belongs to
Avoid getting the wrong frame info when duplicate frame numbers are found in the ring buffer. Will ensure there isn't a mismatch in the metrics data reported.

Test: Existing tests
Bug: 197515602
Change-Id: Iff9ba01f575f94e5a9872ee48c0dd1e5067880c3
2021-09-06 17:23:39 +00:00
Pablo Gamito
88660d77da Stop reporting frame stats from frames completed before observer was attached
Test: Run app from bug report
Fixes: 195699687
Change-Id: If80825dfb41467917b7b9b1e8c9ead1a0dcbffae
2021-08-31 10:33:28 +00:00
Bo Liu
d6a096006a ADPF: Handle preferred interval on unsupported device
The original java implementation just passed along whatever the server
returns which is -1 on unsupported devices. So do that here as well.

Test: PerformanceHintManagerTest passes on unsupported device
Bug: 194691581
Change-Id: I8ac07737e6ce52debf55478880d71f038f258056
2021-07-26 14:49:54 -04:00
Bo Liu
4426772eab Implement native PerformanceHint API
Test: atest PerformanceHintNativeTestCases
Bug: 194204196
Change-Id: Ie26e25e9ecf87046df92346dff54174934a8c73e
2021-07-22 11:31:49 -04:00
John Reck
2b2ba935f8 Remove isDataspaceValid
isDataspaceValid is problematic in that it prevents
applications from being able to pass-through dataspaces
they receive from other APIs, and it also assumes that
the display's capabilities are the only things that are supported.

Although it's recommended that applications stick to dataspaces
that the display can handle, it's not strictly required. RenderEngine
can handle more dataspaces than the display can, applying appropriate
color conversion. Similarly this could be going to a virtual display
instead, in which case the physical display's capabilities are not
necessarily relevant.

Bug: 149931223
Test: make
Change-Id: I475f4e4dcbcdb4765670f6a8eb4cc047a9babb43
2021-07-12 21:53:35 -04:00
Vishnu Nair
6438998d64 Merge "Remove rotation based scaling" into sc-dev 2021-05-12 00:24:59 +00:00
Vishnu Nair
0d7aff7b35 Remove rotation based scaling
In order to simplify some of the geometry logic in BufferStateLayer,
and unify with the rest of the layer in SurfaceFlinger we translate the
concept of source and dest frame into crop, scale and position. This is
currently done on the client side.

But if there is buffer rotation transform, we will generate an
additional scale, to scale the buffer size to the new orientation. This
causes issues with rounded corners because the additional scale
stretches the rounded corner incorrectly. And translating the buffer
rotation into a rotation matrix affects child layers.

This solution only adjusts the buffer size based on the rotation
matrix and the scale is generated based on the rotated buffer.
This cannot be done in the client side because we do not have
the current display orientation to unflip the buffer if the client
sets the transformToDisplayInverse flag.

In the future the plan is to drive the transform hint and the
display orientation down from WM so this calculation can go
back to the client.

Also fixes incorrect additional scaling from source frame to dest frame
in ASurfaceTransaction_setGeometry.

Test: atest SurfaceControlTest ASurfaceControlTest libgui_test SurfaceFlinger_test
Test: go/wm-smoke
Bug: 185597146
Change-Id: I38adbc72c7567510c953cfd362a94b2b38d7fda7
2021-05-11 10:55:24 -07:00