summaryrefslogtreecommitdiff
path: root/vulkan/libvulkan/api.cpp
diff options
context:
space:
mode:
author Robert Carr <racarr@google.com> 2019-02-19 10:05:00 -0800
committer android-build-team Robot <android-build-team-robot@google.com> 2019-05-15 05:33:12 +0000
commit1cc813bb3b817e20e38ff9cb44533ebc23490ce8 (patch)
tree28ed94fd1bbe4e8ef6a9804004569d8a145c3230 /vulkan/libvulkan/api.cpp
parent4c66d2660cf17605431dbb62006ff934a029142e (diff)
[RESTRICT AUTOMERGE]: Exclude secure layers from most screenshots taken by the system server.
In pre-P versions of Android, it was allowed to screenshot secure layers if the buffer queue producer which was the target of the screenshot was owned by the system (in this case SurfaceFlinger). This really was a synonym for: The screen rotation animation was allowed to capture secure layers, but the other code paths weren't. In O we mistakenly changed this check to always allow the system server to capture secure layers via the captureScreen path (the captureLayers path used for TaskSnapshots was unaffected). This can result in data leakage in cases where the system server takes screenshots on behalf of other parts of the system (e.g. for the assistant). To mitigate this we provide an explicit switch for the system server to specify whether it wishes to capture Secure layers. While this is dangerous, I think it is less dangerous than the previous implicit switch of capturing secure layers based on which type of BufferQueue was passed in. The flag defaults to not capturing secure layers and we set it to true in the one place we need it (for the screen rotation animation). Non privileged clients can still not capture secure layers at all directly. Test: SetFlagsSecureEUidSystem Bug: 120610669 Change-Id: I288ad3bbb0444306e90fe3bb15e51b447539dea5 (cherry picked from commit 5c99901e77437e403ba643c9dc839ee9659acada)
Diffstat (limited to 'vulkan/libvulkan/api.cpp')
0 files changed, 0 insertions, 0 deletions