type phhsu_daemon, domain; type phhsu_exec, exec_type, file_type; typeattribute phhsu_daemon coredomain; permissive phhsu_daemon; tmpfs_domain(phhsu_daemon); domain_auto_trans(init, phhsu_exec, phhsu_daemon); file_type_auto_trans(phhsu_daemon, device, phhsu_daemon); allow { appdomain shell } phhsu_daemon:unix_stream_socket { connectto write read }; allow { appdomain shell } phhsu_daemon:sock_file { write read }; allow { appdomain shell } phhsu_exec:file { getattr read open execute execute_no_trans }; create_pty(shell) allowxperm shell devpts:chr_file ioctl TCSETSF; #allowxperm untrusted_app untrusted_app_devpts:chr_file ioctl TCSETSF; allow servicemanager phhsu_daemon:dir { search read }; allow servicemanager phhsu_daemon:file { open read }; allow servicemanager phhsu_daemon:process { getattr }; allow servicemanager phhsu_daemon:binder { call transfer }; typeattribute phhsu_daemon mlstrustedobject; typeattribute phhsu_daemon mlstrustedsubject; allow shell su_exec:file getattr; typeattribute su mlstrustedsubject; allow phhsu_daemon { system_api_service app_api_service system_server_service }:service_manager find; allow system_server phhsu_daemon:fifo_file { read write }; allow system_server phhsu_daemon:fd use; allow system_server phhsu_daemon:binder { call transfer }; allow system_server shell_devpts:chr_file { read write }; # Add su to various domains net_domain(phhsu_daemon) hwbinder_use(phhsu_daemon) allow phhsu_daemon toolbox_exec:file { read open execute_no_trans }; #allow phhsu_daemon untrusted_app_devpts:chr_file { getattr }; allow phhsu_daemon zygote_exec:file { execute read open execute_no_trans getattr }; #allow phhsu_daemon phhsu_daemon:capability { setuid setgid dac_override chown}; allow appdomain phhsu_daemon:dir { search };