From 75ca48321558006ba0e8a5e5aae7ecf1fa874058 Mon Sep 17 00:00:00 2001 From: Alex Klyubin <klyubin@google.com> Date: Mon, 17 Apr 2017 13:08:44 -0700 Subject: [PATCH] surfaceflinger and apps are clients of Configstore HAL This commit marks surfaceflinger and app domain (except isolated_app) as clients of Configstore HAL. This cleans up the policy and will make it easier to restrict access to HwBinder services later. Test: Play YouTube clip in YouTube app and YouTube web page in Chrome Test: Take an HDR+ photo, a normal photo, a video, and slow motion video in Google Camera app. Check that photos show up fine and that videos play back with sound. Test: Play movie using Google Play Movies Test: Google Maps app displays the Android's correct location Bug: 34454312 Change-Id: I0f468a4289132f4eaacfb1d13ce4e61604c2a371 --- private/app.te | 3 --- private/surfaceflinger.te | 1 - private/technical_debt.cil | 5 +++++ public/hal_configstore.te | 2 ++ 4 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 public/hal_configstore.te diff --git a/private/app.te b/private/app.te index 4c5cb380d..c0fdff2aa 100644 --- a/private/app.te +++ b/private/app.te @@ -273,9 +273,6 @@ get_prop({ appdomain -isolated_app }, hwservicemanager_prop); # Allow app access to mediacodec (IOMX HAL) binder_call({ appdomain -isolated_app }, mediacodec) -# App can access configstore HAL which is read only -binder_call({ appdomain -isolated_app }, hal_configstore) - # Allow app to access shared memory created by camera HAL1 allow { appdomain -isolated_app } hal_camera:fd use; diff --git a/private/surfaceflinger.te b/private/surfaceflinger.te index 9f5e4fa69..eeea1852d 100644 --- a/private/surfaceflinger.te +++ b/private/surfaceflinger.te @@ -14,7 +14,6 @@ hwbinder_use(surfaceflinger) hal_client_domain(surfaceflinger, hal_graphics_allocator) binder_call(surfaceflinger, hal_graphics_composer) hal_client_domain(surfaceflinger, hal_graphics_composer) -binder_call(surfaceflinger, hal_configstore) hal_client_domain(surfaceflinger, hal_configstore) # Perform Binder IPC. diff --git a/private/technical_debt.cil b/private/technical_debt.cil index e95e555a6..ccbae1088 100644 --- a/private/technical_debt.cil +++ b/private/technical_debt.cil @@ -12,6 +12,11 @@ (typeattributeset hal_allocator_client ((and (appdomain) ((not (isolated_app)))))) (typeattributeset halclientdomain (hal_allocator_client)) +; Apps, except isolated apps, are clients of Configstore HAL +; Unfortunately, we can't currently express this in module policy language: +; typeattribute { appdomain -isolated_app } hal_configstore_client; +(typeattributeset hal_configstore_client ((and (appdomain) ((not (isolated_app)))))) + ; Apps, except isolated apps, are clients of Graphics Allocator HAL ; Unfortunately, we can't currently express this in module policy language: ; typeattribute { appdomain -isolated_app } hal_graphics_allocator_client; diff --git a/public/hal_configstore.te b/public/hal_configstore.te new file mode 100644 index 000000000..1a8b88b3b --- /dev/null +++ b/public/hal_configstore.te @@ -0,0 +1,2 @@ +# HwBinder IPC from client to server +binder_call(hal_configstore_client, hal_configstore_server) -- GitLab