Skip to content
Snippets Groups Projects
Commit c5bdf47c authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic "app_visible_hals" into oc-mr1-dev

* changes:
  DO NOT MERGE: use 'expandattribute' for untrusted_app_visible_hwservice
  DO NOT MERGE: Add a way to allow untrusted_apps to talk to halserver domains
  DO NOT MERGE: Revert "Revert "Remove neverallow preventing hwservice access for apps.""
parents 282d599f 1f525e23
No related branches found
No related tags found
No related merge requests found
...@@ -137,21 +137,68 @@ neverallow all_untrusted_apps *:hwservice_manager ~find; ...@@ -137,21 +137,68 @@ neverallow all_untrusted_apps *:hwservice_manager ~find;
# incidence rate of security issues than system/core components and have # incidence rate of security issues than system/core components and have
# access to lower layes of the stack (all the way down to hardware) thus # access to lower layes of the stack (all the way down to hardware) thus
# increasing opportunities for bypassing the Android security model. # increasing opportunities for bypassing the Android security model.
#
# Safe services include:
# - same process services: because they by definition run in the process
# of the client and thus have the same access as the client domain in which
# the process runs
# - coredomain_hwservice: are considered safe because they do not pose risks
# associated with reason #2 above.
# - hal_configstore_ISurfaceFlingerConfigs: becuase it has specifically been
# designed for use by any domain.
# - hal_graphics_allocator_hwservice: because these operations are also offered
# by surfaceflinger Binder service, which apps are permitted to access
# - hal_omx_hwservice: because this is a HwBinder version of the mediacodec
# Binder service which apps were permitted to access.
neverallow all_untrusted_apps { neverallow all_untrusted_apps {
hwservice_manager_type hwservice_manager_type
# Same process services are safe because they by definition run in the process
# of the client and thus have the same access as the client domain in which
# the process runs
-same_process_hwservice -same_process_hwservice
-coredomain_hwservice # neverallows for coredomain HwBinder services are below -coredomain_hwservice
-hal_configstore_ISurfaceFlingerConfigs # Designed for use by any domain -hal_configstore_ISurfaceFlingerConfigs
# These operations are also offered by surfaceflinger Binder service which
# apps are permitted to access
-hal_graphics_allocator_hwservice -hal_graphics_allocator_hwservice
# HwBinder version of mediacodec Binder service which apps were permitted to
# access
-hal_omx_hwservice -hal_omx_hwservice
-hal_cas_hwservice -hal_cas_hwservice
-untrusted_app_visible_hwservice
}:hwservice_manager find;
# Make sure that the following services are never accessible by untrusted_apps
neverallow all_untrusted_apps {
default_android_hwservice
hal_audio_hwservice
hal_bluetooth_hwservice
hal_bootctl_hwservice
hal_camera_hwservice
hal_contexthub_hwservice
hal_drm_hwservice
hal_dumpstate_hwservice
hal_fingerprint_hwservice
hal_gatekeeper_hwservice
hal_gnss_hwservice
hal_graphics_composer_hwservice
hal_health_hwservice
hal_ir_hwservice
hal_keymaster_hwservice
hal_light_hwservice
hal_memtrack_hwservice
hal_neuralnetworks_hwservice
hal_nfc_hwservice
hal_oemlock_hwservice
hal_power_hwservice
hal_sensors_hwservice
hal_telephony_hwservice
hal_thermal_hwservice
hal_tv_cec_hwservice
hal_tv_input_hwservice
hal_usb_hwservice
hal_vibrator_hwservice
hal_vr_hwservice
hal_weaver_hwservice
hal_wifi_hwservice
hal_wifi_offload_hwservice
hal_wifi_supplicant_hwservice
hidl_base_hwservice
system_net_netd_hwservice
thermalcallback_hwservice
}:hwservice_manager find; }:hwservice_manager find;
# HwBinder services offered by core components (as opposed to vendor components) # HwBinder services offered by core components (as opposed to vendor components)
# are considered somewhat safer due to point #2 above. # are considered somewhat safer due to point #2 above.
...@@ -178,5 +225,6 @@ full_treble_only(` ...@@ -178,5 +225,6 @@ full_treble_only(`
-hal_graphics_allocator_server -hal_graphics_allocator_server
-hal_cas_server -hal_cas_server
-binder_in_vendor_violators # TODO(b/35870313): Remove once all violations are gone -binder_in_vendor_violators # TODO(b/35870313): Remove once all violations are gone
-untrusted_app_visible_halserver
}:binder { call transfer }; }:binder { call transfer };
') ')
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
(typeattribute hal_wifi_keystore) (typeattribute hal_wifi_keystore)
(typeattribute hal_wifi_keystore_client) (typeattribute hal_wifi_keystore_client)
(typeattribute hal_wifi_keystore_server) (typeattribute hal_wifi_keystore_server)
(typeattribute untrusted_app_visible_hwservice)
;; types removed from current policy ;; types removed from current policy
(type asan_reboot_prop) (type asan_reboot_prop)
......
...@@ -148,6 +148,27 @@ expandattribute socket_between_core_and_vendor_violators false; ...@@ -148,6 +148,27 @@ expandattribute socket_between_core_and_vendor_violators false;
attribute vendor_executes_system_violators; attribute vendor_executes_system_violators;
expandattribute vendor_executes_system_violators false; expandattribute vendor_executes_system_violators false;
# hwservices that are accessible from untrusted applications
# WARNING: Use of this attribute should be avoided unless
# absolutely necessary. It is a temporary allowance to aid the
# transition to treble and will be removed in a future platform
# version, requiring all hwservices that are labeled with this
# attribute to be submitted to AOSP in order to maintain their
# app-visibility.
attribute untrusted_app_visible_hwservice;
expandattribute untrusted_app_visible_hwservice false;
# halserver domains that are accessible to untrusted applications. These
# domains are typically those hosting hwservices attributed by the
# untrusted_app_visible_hwservice.
# WARNING: Use of this attribute should be avoided unless absolutely necessary.
# It is a temporary allowance to aid the transition to treble and will be
# removed in the future platform version, requiring all halserver domains that
# are labeled with this attribute to be submitted to AOSP in order to maintain
# their app-visibility.
attribute untrusted_app_visible_halserver;
expandattribute untrusted_app_visible_halserver false;
# PDX services # PDX services
attribute pdx_endpoint_dir_type; attribute pdx_endpoint_dir_type;
attribute pdx_endpoint_socket_type; attribute pdx_endpoint_socket_type;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment