Split some device nodes out from device.

Some of these will get factored out into device-specific
configs later.

Change-Id: I7ea9c22a666b13bca2d867e5bcc7084ed7129de3
diff --git a/device.te b/device.te
index d55258a..a44b31e 100644
--- a/device.te
+++ b/device.te
@@ -10,6 +10,9 @@
 type block_device, dev_type;
 type camera_device, dev_type;
 type dm_device, dev_type;
+# XXX may be specific for mako
+type dss_device, dev_type;
+type knvmap_device, dev_type;
 type loop_device, dev_type;
 type radio_device, dev_type;
 type ram_device, dev_type;
@@ -20,6 +23,7 @@
 type input_device, dev_type;
 type kmem_device, dev_type;
 type log_device, dev_type, mlstrustedobject;
+type msm_rotator_device, dev_type;
 type mtd_device, dev_type;
 type mtp_device, dev_type, mlstrustedobject;
 type nfc_device, dev_type;
@@ -27,6 +31,7 @@
 type powervr_device, dev_type, mlstrustedobject;
 type ptmx_device, dev_type, mlstrustedobject;
 type qemu_device, dev_type;
+type sysfs_devices_system_cpu, dev_type;
 type kmsg_device, dev_type;
 type null_device, dev_type, mlstrustedobject;
 type random_device, dev_type;
diff --git a/file_contexts b/file_contexts
index 8906e38..fef8fb2 100644
--- a/file_contexts
+++ b/file_contexts
@@ -46,6 +46,7 @@
 /dev/console		u:object_r:console_device:s0
 /dev/cpuctl(/.*)?	u:object_r:cpuctl_device:s0
 /dev/device-mapper	u:object_r:dm_device:s0
+/dev/dsscomp        u:object_r:dss_device:s0
 /dev/eac		u:object_r:audio_device:s0
 /dev/full		u:object_r:full_device:s0
 /dev/fuse		u:object_r:fuse_device:s0
@@ -53,12 +54,16 @@
 /dev/input(/.*)		u:object_r:input_device:s0
 /dev/iio:device[0-9]+   u:object_r:iio_device:s0
 /dev/ion		u:object_r:ion_device:s0
+/dev/kgsl-3d0       u:object_r:graphics_device:s0
 /dev/kmem		u:object_r:kmem_device:s0
+/dev/knvmap     u:object_r:knvmap_device:s0
 /dev/log(/.*)?		u:object_r:log_device:s0
 /dev/mem		u:object_r:kmem_device:s0
 /dev/modem.*		u:object_r:radio_device:s0
 /dev/mpu		u:object_r:gps_device:s0
 /dev/mpuirq		u:object_r:gps_device:s0
+# XXX move to device-specific
+/dev/msm_rotator    u:object_r:msm_rotator_device:s0
 /dev/mtd(/.*)?		u:object_r:mtd_device:s0
 /dev/mtd/mtd5		u:object_r:radio_device:s0
 /dev/mtd/mtd5ro		u:object_r:radio_device:s0
diff --git a/surfaceflinger.te b/surfaceflinger.te
index a383ec1..3a4b4b7 100644
--- a/surfaceflinger.te
+++ b/surfaceflinger.te
@@ -32,3 +32,9 @@
 allow surfaceflinger appdomain:fd use;
 allow surfaceflinger platform_app_data_file:file { read write };
 allow surfaceflinger app_data_file:file { read write };
+
+# Allow access to special-purpose devices
+# XXX may be device-specific
+allow surfaceflinger dss_device:chr_file { read write };
+allow surfaceflinger knvmap_device:chr_file { ioctl };
+allow surfaceflinger msm_rotator_device:chr_file { open };
\ No newline at end of file
diff --git a/system.te b/system.te
index 9d6d4c1..4086d60 100644
--- a/system.te
+++ b/system.te
@@ -122,6 +122,7 @@
 
 # XXX Label sysfs files with a specific type?
 allow system sysfs:file rw_file_perms;
+allow system sysfs_devices_system_cpu:dir search;
 allow system sysfs_nfc_power_writable:file rw_file_perms;
 
 # Access devices.