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

Commit 92509c77 authored by Mathias Agopian's avatar Mathias Agopian Committed by Android Git Automerger
Browse files

am df6c6e97: am 041a0752: don\'t allow screenshots without the READ_FRAMEBUFFER permission

* commit 'df6c6e97':
  don't allow screenshots without the READ_FRAMEBUFFER permission
parents 17a25a0d df6c6e97
Loading
Loading
Loading
Loading
+9 −2
Original line number Original line Diff line number Diff line
@@ -103,16 +103,23 @@ public:
            uint32_t reqWidth, uint32_t reqHeight,
            uint32_t reqWidth, uint32_t reqHeight,
            uint32_t minLayerZ, uint32_t maxLayerZ) = 0;
            uint32_t minLayerZ, uint32_t maxLayerZ) = 0;


    /* triggers screen off and waits for it to complete */
    /* triggers screen off and waits for it to complete
     * requires ACCESS_SURFACE_FLINGER permission.
     */
    virtual void blank(const sp<IBinder>& display) = 0;
    virtual void blank(const sp<IBinder>& display) = 0;


    /* triggers screen on and waits for it to complete */
    /* triggers screen on and waits for it to complete
     * requires ACCESS_SURFACE_FLINGER permission.
     */
    virtual void unblank(const sp<IBinder>& display) = 0;
    virtual void unblank(const sp<IBinder>& display) = 0;


    /* returns information about a display
    /* returns information about a display
     * intended to be used to get information about built-in displays */
     * intended to be used to get information about built-in displays */
    virtual status_t getDisplayInfo(const sp<IBinder>& display, DisplayInfo* info) = 0;
    virtual status_t getDisplayInfo(const sp<IBinder>& display, DisplayInfo* info) = 0;


    /* Capture the specified screen. requires READ_FRAME_BUFFER permission
     * This function will fail if there is a secure window on screen.
     */
    virtual status_t captureScreen(const sp<IBinder>& display,
    virtual status_t captureScreen(const sp<IBinder>& display,
            const sp<IGraphicBufferProducer>& producer,
            const sp<IGraphicBufferProducer>& producer,
            uint32_t reqWidth, uint32_t reqHeight,
            uint32_t reqWidth, uint32_t reqHeight,
+2 −0
Original line number Original line Diff line number Diff line
@@ -2399,6 +2399,7 @@ status_t SurfaceFlinger::onTransact(
{
{
    switch (code) {
    switch (code) {
        case CREATE_CONNECTION:
        case CREATE_CONNECTION:
        case CREATE_DISPLAY:
        case SET_TRANSACTION_STATE:
        case SET_TRANSACTION_STATE:
        case BOOT_FINISHED:
        case BOOT_FINISHED:
        case BLANK:
        case BLANK:
@@ -2417,6 +2418,7 @@ status_t SurfaceFlinger::onTransact(
            break;
            break;
        }
        }
        case CAPTURE_SCREEN:
        case CAPTURE_SCREEN:
        case CAPTURE_SCREEN_DEPRECATED:
        {
        {
            // codes that require permission check
            // codes that require permission check
            IPCThreadState* ipc = IPCThreadState::self();
            IPCThreadState* ipc = IPCThreadState::self();