summaryrefslogtreecommitdiff
path: root/libs/ui/Gralloc.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-14 04:57:31 +0000
commit9085ced4a58bb7a27c51411ab18d3e4a5612649a (patch)
treee5e9f1ac60b2065c331be6073849ea7ac176bc67 /libs/ui/Gralloc.cpp
parent6a2127f162788add4da891fcd22882b9e2b65bad (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 'libs/ui/Gralloc.cpp')
0 files changed, 0 insertions, 0 deletions