Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 58a5a631 authored by Mathias Agopian's avatar Mathias Agopian Committed by Android Git Automerger
Browse files

am 0aaa1927: am 5ff5a84e: allow "system" screenshots even when the secure flag is set

* commit '0aaa1927':
  allow "system" screenshots even when the secure flag is set
parents cf27a6bf 0aaa1927
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -2662,6 +2662,18 @@ status_t SurfaceFlinger::captureScreen(const sp<IBinder>& display,
    if (CC_UNLIKELY(producer == 0))
        return BAD_VALUE;

    // if we have secure windows on this display, never allow the screen capture
    // unless the producer interface is local (i.e.: we can take a screenshot for
    // ourselves).
    if (!producer->asBinder()->localBinder()) {
        Mutex::Autolock _l(mStateLock);
        sp<const DisplayDevice> hw(getDisplayDevice(display));
        if (hw->getSecureLayerVisible()) {
            ALOGW("FB is protected: PERMISSION_DENIED");
            return PERMISSION_DENIED;
        }
    }

    class MessageCaptureScreen : public MessageBase {
        SurfaceFlinger* flinger;
        sp<IBinder> display;
@@ -2786,12 +2798,6 @@ status_t SurfaceFlinger::captureScreenImplLocked(
    const uint32_t hw_w = hw->getWidth();
    const uint32_t hw_h = hw->getHeight();

    // if we have secure windows on this display, never allow the screen capture
    if (hw->getSecureLayerVisible()) {
        ALOGW("FB is protected: PERMISSION_DENIED");
        return PERMISSION_DENIED;
    }

    if ((reqWidth > hw_w) || (reqHeight > hw_h)) {
        ALOGE("size mismatch (%d, %d) > (%d, %d)",
                reqWidth, reqHeight, hw_w, hw_h);