Skip to content
Snippets Groups Projects
unconfined.te 3.65 KiB
Newer Older
  • Learn to ignore specific revisions
  • #######################################################
    #
    # This is the unconfined template. This template is the base policy
    # which is used by daemons and other privileged components of
    # Android.
    #
    # Historically, this template was called "unconfined" because it
    # allowed the domain to do anything it wanted. Over time,
    # this has changed, and will continue to change in the future.
    # The rules in this file will be removed when no remaining
    # unconfined domains require it, or when the rules contradict
    # Android security best practices. Domains which need rules not
    # provided by the unconfined template should add them directly to
    # the relevant policy.
    #
    # The use of this template is discouraged.
    ######################################################
    
    
    allow unconfineddomain self:capability ~{ sys_ptrace sys_rawio mknod sys_module audit_write audit_control linux_immutable };
    
    allow unconfineddomain self:capability2 ~{ mac_override mac_admin };
    
    allow unconfineddomain kernel:security ~{ load_policy setenforce setcheckreqprot setbool setsecparam };
    
    allow unconfineddomain kernel:system ~{ syslog_read syslog_mod syslog_console };
    
    allow unconfineddomain domain:process {
        fork
        sigchld
        sigkill
        sigstop
        signull
        signal
        getsched
        setsched
        getsession
        getpgid
        setpgid
        getcap
        setcap
        share
        getattr
        noatsecure
        siginh
        setrlimit
        rlimitinh
    };
    
    Stephen Smalley's avatar
    Stephen Smalley committed
    allow unconfineddomain domain:fd *;
    allow unconfineddomain domain:dir r_dir_perms;
    allow unconfineddomain domain:lnk_file r_file_perms;
    allow unconfineddomain domain:{ fifo_file file } rw_file_perms;
    allow unconfineddomain domain:socket_class_set *;
    allow unconfineddomain domain:ipc_class_set *;
    allow unconfineddomain domain:key *;
    
    allow unconfineddomain {fs_type -contextmount_type}:{ dir lnk_file sock_file fifo_file } ~relabelto;
    allow unconfineddomain dev_type:{ dir lnk_file sock_file fifo_file } ~relabelto;
    
    allow unconfineddomain {
        file_type
        -keystore_data_file
        -property_data_file
        -system_file
        -exec_type
        -security_file
        -shell_data_file
    }:{ dir lnk_file sock_file fifo_file } ~relabelto;
    
    allow unconfineddomain exec_type:dir r_dir_perms;
    
    allow unconfineddomain exec_type:file { r_file_perms execute execmod };
    
    allow unconfineddomain exec_type:lnk_file r_file_perms;
    allow unconfineddomain system_file:dir r_dir_perms;
    
    allow unconfineddomain system_file:file { r_file_perms execute execmod };
    
    allow unconfineddomain system_file:lnk_file r_file_perms;
    
    allow unconfineddomain {
        fs_type
        -usermodehelper
        -proc_security
        -contextmount_type
    
    }:{ chr_file file } ~{entrypoint execute_no_trans execmod execute relabelto};
    allow unconfineddomain {dev_type -kmem_device}:{ chr_file file } ~{entrypoint execute_no_trans execmod execute relabelto};
    
    allow unconfineddomain {
        file_type
        -keystore_data_file
        -property_data_file
        -system_file
        -exec_type
        -security_file
        -shell_data_file
    
    }:{ chr_file file } ~{entrypoint execute_no_trans execmod execute relabelto};
    
    allow unconfineddomain rootfs:file execute;
    
    allow unconfineddomain contextmount_type:dir r_dir_perms;
    allow unconfineddomain contextmount_type:notdevfile_class_set r_file_perms;
    
    Stephen Smalley's avatar
    Stephen Smalley committed
    allow unconfineddomain node_type:node *;
    
    repo sync's avatar
    repo sync committed
    allow unconfineddomain node_type:{ tcp_socket udp_socket rawip_socket } node_bind;
    
    Stephen Smalley's avatar
    Stephen Smalley committed
    allow unconfineddomain netif_type:netif *;
    allow unconfineddomain port_type:socket_class_set name_bind;
    allow unconfineddomain port_type:{ tcp_socket dccp_socket } name_connect;
    allow unconfineddomain domain:peer recv;
    
    allow unconfineddomain { domain -init }:binder { call transfer set_context_mgr };
    
    allow unconfineddomain { property_type -security_prop }:property_service set;