# ============================================== # Common SEPolicy Rule # ============================================== # for debug purpose allow surfaceflinger self:capability { net_admin sys_nice }; allow surfaceflinger self:netlink_socket { read bind create }; allow surfaceflinger anr_data_file:dir { write search create add_name }; allow surfaceflinger anr_data_file:file { create write}; allow surfaceflinger aee_dumpsys_data_file:file write; allow surfaceflinger RT_Monitor_device:chr_file { read ioctl open }; # watch dog use shell to move debug file allow surfaceflinger shell_exec:file rx_file_perms; # for using toolbox allow surfaceflinger system_file:file x_file_perms; # for sf_dump userdebug_or_eng(` allow surfaceflinger sf_bqdump_data_file:{dir file} {relabelto open create read write getattr }; allow surfaceflinger sf_bqdump_data_file:dir {search add_name}; ') # for driver access allow surfaceflinger MTK_SMI_device:chr_file { read write open ioctl }; # for bootanimation allow surfaceflinger bootanim:dir search; allow surfaceflinger bootanim:file { read getattr open }; # for MTK Emulator HW GPU allow surfaceflinger qemu_pipe_device:chr_file rw_file_perms; # for SVP secure memory allocation allow surfaceflinger proc_secmem:file { read write open ioctl }; # for watchdog allow surfaceflinger anr_data_file:dir { relabelfrom read remove_name getattr }; allow surfaceflinger anr_data_file:file { rename getattr unlink open append}; allow surfaceflinger sf_rtt_file:dir { create search write add_name remove_name}; allow surfaceflinger sf_rtt_file:file { open read write create rename append getattr unlink}; allow surfaceflinger sf_rtt_file:dir {relabelto getattr}; allow surfaceflinger crash_dump:process sigchld; # for BufferQueue check process name of em_svr allow surfaceflinger em_svr:dir search; allow surfaceflinger em_svr:file { read getattr open }; allow surfaceflinger mobicore_user_device:chr_file { read write ioctl open }; # take down the boot time for bootprof allow surfaceflinger proc_bootprof:file write; # Add permission for gpu access allow surfaceflinger dri_device:chr_file { read write open ioctl }; # for rtt dump allow surfaceflinger toolbox_exec:file rx_file_perms; # Date : WK17.23 # Stage: O Migration, SQC # Purpose: Allow to use HAL PQ hal_client_domain(surfaceflinger, hal_mtk_pq) # Date : WK17.23 # Stage: O Migration, SQC # Purpose: Allow to use shared memory for HAL PQ hal_client_domain(surfaceflinger, hal_allocator) # Date : WK17.43 # Stage: O Migration, SQC # purpose: Allow to SF communicate with HAL DFPS hal_client_domain(surfaceflinger, hal_dfps) allow surfaceflinger mtk_dfrc_device:chr_file rw_file_perms; # Data: 2019/09/28 # Purpose: SurfaceFlinger need to call MMS to convert buffer format and PQ effect hal_client_domain(surfaceflinger, hal_mtk_mms) #allow get mtk_sec_video_path_support get_prop(surfaceflinger, vendor_mtk_sec_video_path_support_prop) get_prop(surfaceflinger, vendor_mtk_svp_on_mtee_support_prop) # Date: 2021/07/02 # Operation: Allow 'getattr' for unlabeled:filesystem allow surfaceflinger unlabeled:filesystem {getattr}; # Date: 2021/09/01 # Operation: Allow 'r_file_perms_no_map' for dmabuf_system_secure_heap_device:chr_file allow surfaceflinger dmabuf_system_secure_heap_device:chr_file r_file_perms_no_map; # Data: 2021/09/07 # Purpose: Call NpAgent hal_client_domain(surfaceflinger, hal_neuralnetworks) # Purpose: Netflix Widevine allow surfaceflinger teei_client_device:chr_file rw_file_perms;