From 1d17bda0fe0fd327d2cf917e7c2f7c059efbdfda Mon Sep 17 00:00:00 2001 From: jiadexiang Date: Sat, 24 Sep 2022 11:33:18 +0800 Subject: [PATCH] fixed 58223ee from https://gitee.com/piggyguy/graphic_wms/pulls/50 Description: add precheck for dfx sreenshot interface IssueNo:I5SWPU Feature or Bugfix: Feature Binary Source:No Signed-off-by: jiadexiang --- BUILD.gn | 4 ++++ services/wms/lite_wms.cpp | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/BUILD.gn b/BUILD.gn index a3c75e3..971365a 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -79,6 +79,9 @@ executable("wms_server") { include_dirs = [ "frameworks/ims", "interfaces/innerkits", + "//base/security/permission_lite/services/pms_client/include", + "//base/security/permission_lite/interfaces/innerkits", + "//base/security/permission_lite/interfaces/kits", "//drivers/peripheral/input/interfaces/include", "//third_party/FreeBSD/sys/dev/evdev", ] @@ -91,6 +94,7 @@ executable("wms_server") { "-ldisplay_layer", ] deps = [ + "//base/security/permission_lite/services/pms_client:pms_client", "//drivers/peripheral/input/hal:hdi_input", "//foundation/graphic/utils:lite_graphic_hals", ] diff --git a/services/wms/lite_wms.cpp b/services/wms/lite_wms.cpp index 099feb9..8508dc6 100644 --- a/services/wms/lite_wms.cpp +++ b/services/wms/lite_wms.cpp @@ -17,6 +17,7 @@ #include "gfx_utils/graphic_log.h" #include "lite_wm.h" #include "lite_wm_type.h" +#include "pms_interface.h" #include "surface.h" #include "surface_impl.h" @@ -214,6 +215,13 @@ void LiteWMS::GetEventData(IpcIo* req, IpcIo* reply) void LiteWMS::Screenshot(IpcIo* req, IpcIo* reply) { + const char *writeMediaImagePermissionName = "ohos.permission.WRITE_MEDIA_IMAGES"; + pid_t uid = GetCallingUid(); + if (CheckPermission(uid, writeMediaImagePermissionName) != GRANTED) { + GRAPHIC_LOGE("permission denied"); + WriteInt32(reply, LiteWMS_EUNKNOWN); + return; + } Surface* surface = SurfaceImpl::GenericSurfaceByIpcIo(*req); bool ret = LiteWM::GetInstance()->OnScreenshot(surface); WriteInt32(reply, ret ? LiteWMS_EOK : LiteWMS_EUNKNOWN); -- Gitee