# pixelstats vendor
type pixelstats_vendor, domain;

type pixelstats_vendor_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(pixelstats_vendor)

unix_socket_connect(pixelstats_vendor, chre, chre)

get_prop(pixelstats_vendor, hwservicemanager_prop)
hwbinder_use(pixelstats_vendor)

binder_call(pixelstats_vendor, stats_service_server)
binder_use(pixelstats_vendor);
allow pixelstats_vendor fwk_stats_service:service_manager find;

allow pixelstats_vendor sysfs_scsi_devices_0000:file rw_file_perms;
allow pixelstats_vendor sysfs_pixelstats:file r_file_perms;

allow pixelstats_vendor sysfs_wlc:dir search;
allow pixelstats_vendor sysfs_wlc:file rw_file_perms;

# OrientationCollector
allow pixelstats_vendor fwk_sensor_hwservice:hwservice_manager find;

# Batery history
allow pixelstats_vendor battery_history_device:chr_file r_file_perms;
