623975fa5a
Permissive domains are only intended for development. When a device launches, we want to ensure that all permissive domains are in, at a minimum, unconfined+enforcing. Add FORCE_PERMISSIVE_TO_UNCONFINED to Android.mk. During development, this flag is false, and permissive domains are allowed. When SELinux new feature development has been frozen immediately before release, this flag will be flipped to true. Any previously permissive domains will move into unconfined+enforcing. This will ensure that all SELinux domains have at least a minimal level of protection. Unconditionally enable this flag for all user builds. Change-Id: I1632f0da0022c80170d8eb57c82499ac13fd7858
51 lines
1.7 KiB
Text
51 lines
1.7 KiB
Text
# surfaceflinger - display compositor service
|
|
type surfaceflinger, domain;
|
|
permissive_or_unconfined(surfaceflinger)
|
|
type surfaceflinger_exec, exec_type, file_type;
|
|
|
|
init_daemon_domain(surfaceflinger)
|
|
typeattribute surfaceflinger mlstrustedsubject;
|
|
|
|
# Talk to init over the property socket.
|
|
unix_socket_connect(surfaceflinger, property, init)
|
|
|
|
# Perform Binder IPC.
|
|
binder_use(surfaceflinger)
|
|
binder_call(surfaceflinger, system_server)
|
|
binder_service(surfaceflinger)
|
|
|
|
# Access the GPU.
|
|
allow surfaceflinger gpu_device:chr_file rw_file_perms;
|
|
|
|
# Access /dev/graphics/fb0.
|
|
allow surfaceflinger graphics_device:dir search;
|
|
allow surfaceflinger graphics_device:chr_file rw_file_perms;
|
|
|
|
# Access /dev/video1.
|
|
allow surfaceflinger video_device:dir r_dir_perms;
|
|
allow surfaceflinger video_device:chr_file rw_file_perms;
|
|
|
|
# Create and use netlink kobject uevent sockets.
|
|
allow surfaceflinger self:netlink_kobject_uevent_socket *;
|
|
|
|
# Set properties.
|
|
allow surfaceflinger system_prop:property_service set;
|
|
allow surfaceflinger ctl_default_prop:property_service set;
|
|
|
|
# Use open files supplied by an app.
|
|
allow surfaceflinger appdomain:fd use;
|
|
allow surfaceflinger platform_app_data_file:file { read write };
|
|
allow surfaceflinger app_data_file:file { read write };
|
|
|
|
# Use open file provided by bootanim.
|
|
allow surfaceflinger bootanim:fd use;
|
|
|
|
# Allow a dumpstate triggered screenshot
|
|
binder_call(surfaceflinger, dumpstate)
|
|
binder_call(surfaceflinger, shell)
|
|
allow surfaceflinger shell_data_file:file write;
|
|
|
|
# Needed on some devices for playing DRM protected content,
|
|
# but seems expected and appropriate for all devices.
|
|
allow surfaceflinger tee:unix_stream_socket connectto;
|
|
allow surfaceflinger tee_device:chr_file rw_file_perms;
|