# nfc subsystem
type nfc, domain;
app_domain(nfc)
net_domain(nfc)
binder_service(nfc)

# Set NFC properties
unix_socket_connect(nfc, property, init)
allow nfc nfc_prop:property_service set;

# NFC device access.
allow nfc nfc_device:chr_file rw_file_perms;

# Data file accesses.
allow nfc nfc_data_file:dir create_dir_perms;
allow nfc nfc_data_file:notdevfile_class_set create_file_perms;

allow nfc sysfs_nfc_power_writable:file rw_file_perms;
allow nfc sysfs:file write;

allow nfc nfc_service:service_manager add;

# Audited locally.
service_manager_local_audit_domain(nfc)
auditallow nfc {
    service_manager_type
    -mediaserver_service
    -surfaceflinger_service
    -system_server_service
}:service_manager find;
