Inseob Kim | ff43be2 | 2021-06-07 16:56:56 +0900 | [diff] [blame] | 1 | # hwservice types. By default most of the HALs are protected_hwservice, which means |
| 2 | # access from untrusted apps is prohibited. |
| 3 | type default_android_hwservice, hwservice_manager_type, protected_hwservice; |
| 4 | type fwk_camera_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice; |
| 5 | type fwk_display_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice; |
| 6 | type fwk_scheduler_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice; |
| 7 | type fwk_sensor_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice; |
| 8 | type fwk_stats_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice; |
| 9 | type fwk_automotive_display_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice; |
| 10 | type hal_atrace_hwservice, hwservice_manager_type, protected_hwservice; |
| 11 | type hal_audio_hwservice, hwservice_manager_type, protected_hwservice; |
| 12 | type hal_audiocontrol_hwservice, hwservice_manager_type, protected_hwservice; |
| 13 | type hal_authsecret_hwservice, hwservice_manager_type, protected_hwservice; |
| 14 | type hal_bluetooth_hwservice, hwservice_manager_type, protected_hwservice; |
| 15 | type hal_bootctl_hwservice, hwservice_manager_type, protected_hwservice; |
| 16 | type hal_broadcastradio_hwservice, hwservice_manager_type, protected_hwservice; |
| 17 | type hal_camera_hwservice, hwservice_manager_type, protected_hwservice; |
| 18 | type hal_can_bus_hwservice, hwservice_manager_type, protected_hwservice; |
| 19 | type hal_can_controller_hwservice, hwservice_manager_type, protected_hwservice; |
| 20 | type hal_confirmationui_hwservice, hwservice_manager_type, protected_hwservice; |
| 21 | type hal_contexthub_hwservice, hwservice_manager_type, protected_hwservice; |
| 22 | type hal_dumpstate_hwservice, hwservice_manager_type, protected_hwservice; |
| 23 | type hal_evs_hwservice, hwservice_manager_type, protected_hwservice; |
| 24 | type hal_face_hwservice, hwservice_manager_type, protected_hwservice; |
| 25 | type hal_fingerprint_hwservice, hwservice_manager_type, protected_hwservice; |
| 26 | type hal_gatekeeper_hwservice, hwservice_manager_type, protected_hwservice; |
| 27 | type hal_gnss_hwservice, hwservice_manager_type, protected_hwservice; |
| 28 | type hal_graphics_composer_hwservice, hwservice_manager_type, protected_hwservice; |
| 29 | type hal_health_hwservice, hwservice_manager_type, protected_hwservice; |
| 30 | type hal_health_storage_hwservice, hwservice_manager_type, protected_hwservice; |
| 31 | type hal_input_classifier_hwservice, hwservice_manager_type, protected_hwservice; |
| 32 | type hal_ir_hwservice, hwservice_manager_type, protected_hwservice; |
| 33 | type hal_keymaster_hwservice, hwservice_manager_type, protected_hwservice; |
| 34 | type hal_light_hwservice, hwservice_manager_type, protected_hwservice; |
| 35 | type hal_lowpan_hwservice, hwservice_manager_type, protected_hwservice; |
| 36 | type hal_memtrack_hwservice, hwservice_manager_type, protected_hwservice; |
| 37 | type hal_nfc_hwservice, hwservice_manager_type, protected_hwservice; |
| 38 | type hal_oemlock_hwservice, hwservice_manager_type, protected_hwservice; |
| 39 | type hal_power_hwservice, hwservice_manager_type, protected_hwservice; |
| 40 | type hal_power_stats_hwservice, hwservice_manager_type, protected_hwservice; |
| 41 | type hal_secure_element_hwservice, hwservice_manager_type, protected_hwservice; |
| 42 | type hal_sensors_hwservice, hwservice_manager_type, protected_hwservice; |
| 43 | type hal_telephony_hwservice, hwservice_manager_type, protected_hwservice; |
| 44 | type hal_tetheroffload_hwservice, hwservice_manager_type, protected_hwservice; |
| 45 | type hal_thermal_hwservice, hwservice_manager_type, protected_hwservice; |
| 46 | type hal_tv_cec_hwservice, hwservice_manager_type, protected_hwservice; |
| 47 | type hal_tv_input_hwservice, hwservice_manager_type, protected_hwservice; |
| 48 | type hal_tv_tuner_hwservice, hwservice_manager_type, protected_hwservice; |
| 49 | type hal_usb_gadget_hwservice, hwservice_manager_type, protected_hwservice; |
| 50 | type hal_usb_hwservice, hwservice_manager_type, protected_hwservice; |
| 51 | type hal_vehicle_hwservice, hwservice_manager_type, protected_hwservice; |
| 52 | type hal_vibrator_hwservice, hwservice_manager_type, protected_hwservice; |
| 53 | type hal_vr_hwservice, hwservice_manager_type, protected_hwservice; |
| 54 | type hal_weaver_hwservice, hwservice_manager_type, protected_hwservice; |
| 55 | type hal_wifi_hostapd_hwservice, hwservice_manager_type, protected_hwservice; |
| 56 | type hal_wifi_hwservice, hwservice_manager_type, protected_hwservice; |
| 57 | type hal_wifi_supplicant_hwservice, hwservice_manager_type, protected_hwservice; |
| 58 | type system_net_netd_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice; |
| 59 | type system_suspend_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice; |
| 60 | type system_wifi_keystore_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice; |
| 61 | |
| 62 | # Following is the hwservices that are explicitly not marked with protected_hwservice. |
| 63 | # These are directly accessible from untrusted apps. |
| 64 | # - same process services: because they by definition run in the process |
| 65 | # of the client and thus have the same access as the client domain in which |
| 66 | # the process runs |
| 67 | # - coredomain_hwservice: are considered safer than ordinary hwservices which |
| 68 | # are from vendor partition |
| 69 | # - hal_configstore_ISurfaceFlingerConfigs: becuase it has specifically been |
| 70 | # designed for use by any domain. |
| 71 | # - hal_graphics_allocator_hwservice: because these operations are also offered |
| 72 | # by surfaceflinger Binder service, which apps are permitted to access |
| 73 | # - hal_omx_hwservice: because this is a HwBinder version of the mediacodec |
| 74 | # Binder service which apps were permitted to access. |
| 75 | # - hal_codec2_hwservice: because this is a newer version of hal_omx_hwservice. |
| 76 | # - hal_drm_hwservice: versions > API 29 are designed specifically with |
| 77 | # untrusted app access in mind. |
| 78 | type fwk_bufferhub_hwservice, hwservice_manager_type, coredomain_hwservice; |
| 79 | type hal_cas_hwservice, hwservice_manager_type; |
| 80 | type hal_codec2_hwservice, hwservice_manager_type; |
| 81 | type hal_configstore_ISurfaceFlingerConfigs, hwservice_manager_type; |
| 82 | type hal_drm_hwservice, hwservice_manager_type; |
| 83 | type hal_graphics_allocator_hwservice, hwservice_manager_type; |
| 84 | type hal_graphics_mapper_hwservice, hwservice_manager_type, same_process_hwservice; |
| 85 | type hal_neuralnetworks_hwservice, hwservice_manager_type; |
| 86 | type hal_omx_hwservice, hwservice_manager_type; |
| 87 | type hal_renderscript_hwservice, hwservice_manager_type, same_process_hwservice; |
| 88 | type hidl_allocator_hwservice, hwservice_manager_type, coredomain_hwservice; |
| 89 | type hidl_base_hwservice, hwservice_manager_type; |
| 90 | type hidl_manager_hwservice, hwservice_manager_type, coredomain_hwservice; |
| 91 | type hidl_memory_hwservice, hwservice_manager_type, coredomain_hwservice; |
| 92 | type hidl_token_hwservice, hwservice_manager_type, coredomain_hwservice; |
| 93 | |
| 94 | ### |
| 95 | ### Neverallow rules |
| 96 | ### |
| 97 | |
| 98 | # hwservicemanager handles registering or looking up named services. |
| 99 | # It does not make sense to register or lookup something which is not a |
| 100 | # hwservice. Trigger a compile error if this occurs. |
| 101 | neverallow domain ~hwservice_manager_type:hwservice_manager { add find }; |