* commit '0aaa19271b8e23cc2d4f686d43b46e2bca9fd28f': allow "system" screenshots even when the secure flag is set
This commit is contained in:
commit
58a5a6317e
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user