Home | History | Annotate | Download | only in public
      1 ######################################
      2 # Attribute declarations
      3 #
      4 
      5 # All types used for devices.
      6 # On change, update CHECK_FC_ASSERT_ATTRS
      7 # in tools/checkfc.c
      8 attribute dev_type;
      9 
     10 # All types used for processes.
     11 attribute domain;
     12 
     13 # All types used for filesystems.
     14 # On change, update CHECK_FC_ASSERT_ATTRS
     15 # definition in tools/checkfc.c.
     16 attribute fs_type;
     17 
     18 # All types used for context= mounts.
     19 attribute contextmount_type;
     20 
     21 # All types used for files that can exist on a labeled fs.
     22 # Do not use for pseudo file types.
     23 # On change, update CHECK_FC_ASSERT_ATTRS
     24 # definition in tools/checkfc.c.
     25 attribute file_type;
     26 
     27 # All types used for domain entry points.
     28 attribute exec_type;
     29 
     30 # All types used for /data files.
     31 attribute data_file_type;
     32 expandattribute data_file_type false;
     33 # All types in /data, not in /data/vendor
     34 attribute core_data_file_type;
     35 expandattribute core_data_file_type false;
     36 # All types in /vendor
     37 attribute vendor_file_type;
     38 
     39 # All types used for procfs files.
     40 attribute proc_type;
     41 expandattribute proc_type false;
     42 
     43 # All types used for sysfs files.
     44 attribute sysfs_type;
     45 
     46 # All types use for debugfs files.
     47 attribute debugfs_type;
     48 
     49 # Attribute used for all sdcards
     50 attribute sdcard_type;
     51 
     52 # All types used for nodes/hosts.
     53 attribute node_type;
     54 
     55 # All types used for network interfaces.
     56 attribute netif_type;
     57 
     58 # All types used for network ports.
     59 attribute port_type;
     60 
     61 # All types used for property service
     62 # On change, update CHECK_PC_ASSERT_ATTRS
     63 # definition in tools/checkfc.c.
     64 attribute property_type;
     65 
     66 # All properties defined in core SELinux policy. Should not be
     67 # used by device specific properties
     68 attribute core_property_type;
     69 
     70 # All properties used to configure log filtering.
     71 attribute log_property_type;
     72 
     73 # All properties that are not specific to device but are added from
     74 # outside of AOSP. (e.g. OEM-specific properties)
     75 # These properties are not accessible from device-specific domains
     76 attribute extended_core_property_type;
     77 
     78 # All service_manager types created by system_server
     79 attribute system_server_service;
     80 
     81 # services which should be available to all but isolated apps
     82 attribute app_api_service;
     83 
     84 # services which should be available to all ephemeral apps
     85 attribute ephemeral_app_api_service;
     86 
     87 # services which export only system_api
     88 attribute system_api_service;
     89 
     90 # All types used for services managed by servicemanager.
     91 # On change, update CHECK_SC_ASSERT_ATTRS
     92 # definition in tools/checkfc.c.
     93 attribute service_manager_type;
     94 
     95 # All types used for services managed by hwservicemanager
     96 attribute hwservice_manager_type;
     97 
     98 # All HwBinder services guaranteed to be passthrough. These services always run
     99 # in the process of their clients, and thus operate with the same access as
    100 # their clients.
    101 attribute same_process_hwservice;
    102 
    103 # All HwBinder services guaranteed to be offered only by core domain components
    104 attribute coredomain_hwservice;
    105 
    106 # All types used for services managed by vndservicemanager
    107 attribute vndservice_manager_type;
    108 
    109 
    110 # All domains that can override MLS restrictions.
    111 # i.e. processes that can read up and write down.
    112 attribute mlstrustedsubject;
    113 
    114 # All types that can override MLS restrictions.
    115 # i.e. files that can be read by lower and written by higher
    116 attribute mlstrustedobject;
    117 
    118 # All domains used for apps.
    119 attribute appdomain;
    120 
    121 # All third party apps.
    122 attribute untrusted_app_all;
    123 
    124 # All domains used for apps with network access.
    125 attribute netdomain;
    126 
    127 # All domains used for apps with bluetooth access.
    128 attribute bluetoothdomain;
    129 
    130 # All domains used for binder service domains.
    131 attribute binderservicedomain;
    132 
    133 # update_engine related domains that need to apply an update and run
    134 # postinstall. This includes the background daemon and the sideload tool from
    135 # recovery for A/B devices.
    136 attribute update_engine_common;
    137 
    138 # All core domains (as opposed to vendor/device-specific domains)
    139 attribute coredomain;
    140 
    141 # All socket devices owned by core domain components
    142 attribute coredomain_socket;
    143 expandattribute coredomain_socket false;
    144 
    145 # All vendor domains which violate the requirement of not using Binder
    146 # TODO(b/35870313): Remove this once there are no violations
    147 attribute binder_in_vendor_violators;
    148 expandattribute binder_in_vendor_violators false;
    149 
    150 # All vendor domains which violate the requirement of not using sockets for
    151 # communicating with core components
    152 # TODO(b/36577153): Remove this once there are no violations
    153 attribute socket_between_core_and_vendor_violators;
    154 expandattribute socket_between_core_and_vendor_violators false;
    155 
    156 # All vendor domains which violate the requirement of not executing
    157 # system processes
    158 # TODO(b/36463595)
    159 attribute vendor_executes_system_violators;
    160 expandattribute vendor_executes_system_violators false;
    161 
    162 # All domains which violate the requirement of not sharing files by path
    163 # between between vendor and core domains.
    164 # TODO(b/34980020)
    165 attribute data_between_core_and_vendor_violators;
    166 expandattribute data_between_core_and_vendor_violators false;
    167 
    168 # All system domains which violate the requirement of not executing vendor
    169 # binaries/libraries.
    170 # TODO(b/62041836)
    171 attribute system_executes_vendor_violators;
    172 expandattribute system_executes_vendor_violators false;
    173 
    174 # All system domains which violate the requirement of not writing vendor
    175 # properties.
    176 # TODO(b/78598545): Remove this once there are no violations
    177 attribute system_writes_vendor_properties_violators;
    178 expandattribute system_writes_vendor_properties_violators false;
    179 
    180 # hwservices that are accessible from untrusted applications
    181 # WARNING: Use of this attribute should be avoided unless
    182 # absolutely necessary.  It is a temporary allowance to aid the
    183 # transition to treble and will be removed in a future platform
    184 # version, requiring all hwservices that are labeled with this
    185 # attribute to be submitted to AOSP in order to maintain their
    186 # app-visibility.
    187 attribute untrusted_app_visible_hwservice;
    188 expandattribute untrusted_app_visible_hwservice false;
    189 
    190 # halserver domains that are accessible to untrusted applications.  These
    191 # domains are typically those hosting  hwservices attributed by the
    192 # untrusted_app_visible_hwservice.
    193 # WARNING: Use of this attribute should be avoided unless absolutely necessary.
    194 # It is a temporary allowance to aid the transition to treble and will be
    195 # removed in the future platform version, requiring all halserver domains that
    196 # are labeled with this attribute to be submitted to AOSP in order to maintain
    197 # their app-visibility.
    198 attribute untrusted_app_visible_halserver;
    199 expandattribute untrusted_app_visible_halserver false;
    200 
    201 # PDX services
    202 attribute pdx_endpoint_dir_type;
    203 attribute pdx_endpoint_socket_type;
    204 expandattribute pdx_endpoint_socket_type false;
    205 attribute pdx_channel_socket_type;
    206 expandattribute pdx_channel_socket_type false;
    207 
    208 pdx_service_attributes(display_client)
    209 pdx_service_attributes(display_manager)
    210 pdx_service_attributes(display_screenshot)
    211 pdx_service_attributes(display_vsync)
    212 pdx_service_attributes(performance_client)
    213 pdx_service_attributes(bufferhub_client)
    214 
    215 # All HAL servers
    216 attribute halserverdomain;
    217 # All HAL clients
    218 attribute halclientdomain;
    219 expandattribute halclientdomain true;
    220 
    221 # Exempt for halserverdomain to access sockets. Only builds for automotive
    222 # device types are allowed to use this attribute (enforced by CTS).
    223 # Unlike phone, in a car many modules are external from Android perspective and
    224 # HALs should be able to communicate with those devices through sockets.
    225 attribute hal_automotive_socket_exemption;
    226 
    227 # TODO(b/72757373): Use hal_attribute macro once expandattribute value conflicts
    228 # can be resolve.
    229 attribute hal_audio;
    230 attribute hal_audio_client;
    231 expandattribute hal_audio_client true;
    232 attribute hal_audio_server;
    233 expandattribute hal_audio_server false;
    234 
    235 attribute hal_bootctl;
    236 attribute hal_bootctl_client;
    237 expandattribute hal_bootctl_client true;
    238 attribute hal_bootctl_server;
    239 expandattribute hal_bootctl_server false;
    240 
    241 attribute hal_camera;
    242 attribute hal_camera_client;
    243 expandattribute hal_camera_client true;
    244 attribute hal_camera_server;
    245 expandattribute hal_camera_server false;
    246 
    247 attribute hal_drm;
    248 attribute hal_drm_client;
    249 expandattribute hal_drm_client true;
    250 attribute hal_drm_server;
    251 expandattribute hal_drm_server false;
    252 
    253 attribute hal_cas;
    254 attribute hal_cas_client;
    255 expandattribute hal_cas_client true;
    256 attribute hal_cas_server;
    257 expandattribute hal_cas_server false;
    258 
    259 # HALs
    260 hal_attribute(allocator);
    261 hal_attribute(audiocontrol);
    262 hal_attribute(authsecret);
    263 hal_attribute(bluetooth);
    264 hal_attribute(broadcastradio);
    265 hal_attribute(configstore);
    266 hal_attribute(confirmationui);
    267 hal_attribute(contexthub);
    268 hal_attribute(dumpstate);
    269 hal_attribute(evs);
    270 hal_attribute(fingerprint);
    271 hal_attribute(gatekeeper);
    272 hal_attribute(gnss);
    273 hal_attribute(graphics_allocator);
    274 hal_attribute(graphics_composer);
    275 hal_attribute(health);
    276 hal_attribute(ir);
    277 hal_attribute(keymaster);
    278 hal_attribute(light);
    279 hal_attribute(lowpan);
    280 hal_attribute(memtrack);
    281 hal_attribute(neuralnetworks);
    282 hal_attribute(nfc);
    283 hal_attribute(oemlock);
    284 hal_attribute(power);
    285 hal_attribute(secure_element);
    286 hal_attribute(sensors);
    287 hal_attribute(telephony);
    288 hal_attribute(tetheroffload);
    289 hal_attribute(thermal);
    290 hal_attribute(tv_cec);
    291 hal_attribute(tv_input);
    292 hal_attribute(usb);
    293 hal_attribute(usb_gadget);
    294 hal_attribute(vehicle);
    295 hal_attribute(vibrator);
    296 hal_attribute(vr);
    297 hal_attribute(weaver);
    298 hal_attribute(wifi);
    299 hal_attribute(wifi_hostapd);
    300 hal_attribute(wifi_offload);
    301 hal_attribute(wifi_supplicant);
    302 
    303 # HwBinder services offered across the core-vendor boundary
    304 #
    305 # We annotate server domains with x_server  to loosen the coupling between
    306 # system and vendor images. For example, it should be possible to move a service
    307 # from one core domain to another, without having to update the vendor image
    308 # which contains clients of this service.
    309 
    310 attribute display_service_server;
    311 attribute wifi_keystore_service_server;
    312