don't allow screenshots without the READ_FRAMEBUFFER permission
the recent screenshot rework allowed the older screenshot interface to work without that permission Change-Id: I6c4743f4591c81106e3b823d55a055f7b4907de1
This commit is contained in:
parent
7670d3cb2b
commit
041a075262
@ -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,
|
||||||
|
@ -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();
|
||||||
|
Loading…
Reference in New Issue
Block a user