667 Commits

Author SHA1 Message Date
Ken Chen
72d6df3c6f Merge "Update data type and comments on tagSocket/untagSocket APIs" am: ef89731cd3 am: aa82affbc0 am: 292d5f01ec
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2049804

Change-Id: Id759de693eb64fe729c99b141d267790767a806c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-03-31 04:10:28 +00:00
Ken Chen
9c315eb11f Update data type and comments on tagSocket/untagSocket APIs
- Fix comment in version script to say LL-NDK, not NDK
- Use uint32_t for tag

Bug: 223423155
Test: CtsNetTestCases:android.net.TrafficStatsTest
Test: CtsNativeNetPlatformTestCases
Change-Id: Ifb819ed0adeb8f173b98c3f131a4bf2e0715dd4e
2022-03-31 00:28:15 +08:00
Austin Borger
db9165baf2 Add new onUidProcAdjChanged callback to be consumed by the camera
service.

The camera service needs to know when individual process oom adj scores
are changed in order to address bug #124224342. When two separate
processes are displayed in split screen and focus is switched between
them, both proc states will remain the same while their oom scores
change. This is a problem if both have access to the camera - we want
only one owner of the camera stream at any given time and for the app
in focus to be the one to own it.

This patch adds a new IUidObserver registration level for individual
process oom score changes. In addition a new callback has been added to
IUidObserver to track these changes.

Change-Id: I68d964f474d20f819f54b614a4e314ce00aac8fb
Bug: 124224342
Test: -- ActivityManagerServiceTest
      -- ActivityManagerProcessStateTest
      -- ActivityManagerFgsBgStartTest
      -- UidObserverControllerTest
      -- NetworkPolicyManagerServiceTest
      -- ShortcutManagerTest2
      -- HintManagerServiceTest
      -- VibrationSettingsTest
      -- CameraEvictionTest#testCamera2AccessCallbackInSplitMode (x100)
2022-03-28 19:46:45 -07:00
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
TreeHugger Robot
6193b1f659 Merge "Expose 1010102 config for bitmap" 2022-01-29 17:51:09 +00:00
Bo Liu
77f35083d1 Merge "Performance hint ndk APIs" 2022-01-28 18:57:27 +00:00
Alec Mouri
1efd0a5df6 Expose 1010102 config for bitmap
Bug: 200307898
Test: CtsGraphicsTestCases
Change-Id: I33153e080292a95c0cc3d6edada8b274f0b06ac7
2022-01-27 22:55:18 +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
Torne (Richard Coles)
ddd332f72b webview: make relro load failure a warning.
Failing to open the relro file when loading WebView isn't a major
problem (we can still load the library, it just loses a RAM
optimization), and can happen in some edge cases like when the current
address space reservation was not large enough to create the file.

The other messages logged from Java about this are at warning level;
make this native error also a warning. The other errors in this function
are entirely unexpected conditions, so leave them as errors.

Fixes: 197972345
Test: n/a
Change-Id: Iaf0d4a3b6e42ba93ef6782b5b9120cd69cae3002
2021-09-14 14:23:24 -04: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