diff --git a/init.common.rc b/init.common.rc
index d93f96c..a8a6342 100644
--- a/init.common.rc
+++ b/init.common.rc
@@ -24,8 +24,6 @@
     chmod 777 /sys/kernel/debug/sync/sw_sync
     chown graphics graphics /sys/kernel/debug/sync/info
 
-    chown system system /sys/class/backlight/wled/brightness
-
 on zygote-start
     mkdir /data/vendor/wifi 0770 wifi wifi
     mkdir /data/vendor/wifi/wpa 0770 wifi wifi
diff --git a/liblight/lights.c b/liblight/lights.c
index abda1ff..4c97681 100644
--- a/liblight/lights.c
+++ b/liblight/lights.c
@@ -22,8 +22,11 @@
 #include <log/log.h>
 #include <cutils/properties.h>
 
+#include <dirent.h>
+#include <fcntl.h>
 #include <stdint.h>
 #include <stdlib.h>
+#include <stdio.h>
 #include <string.h>
 #include <unistd.h>
 #include <errno.h>
@@ -42,8 +45,10 @@
 static pthread_mutex_t g_lock = PTHREAD_MUTEX_INITIALIZER;
 static int rgb_brightness_ratio = 255;
 
-char const*const LCD_FILE
-        = "/sys/class/backlight/wled/brightness";
+char const*const BACKLIGHT_CLASS
+        = "/sys/class/backlight";
+char const*const BACKLIGHT_CLASS_FSTRING
+        = "/sys/class/backlight/%s/brightness";
 
 /**
  * device methods
@@ -69,13 +74,37 @@
     }
 }
 
+static bool findFirstBacklightDevice(char *filename) {
+    struct dirent *de;
+    DIR *dir = opendir("/sys/class/backlight");
+    if (dir == NULL)
+        return NULL;
+    while((de = readdir(dir))) {
+        if(de->d_name[0] == '.' &&
+           (de->d_name[1] == '\0' ||
+            (de->d_name[1] == '.' && de->d_name[2] == '\0')))
+            continue;
+        strcpy(filename, de->d_name);
+        closedir(dir);
+        return true;
+    }
+    closedir(dir);
+    return false;
+}
+
 static int
-write_int(char const* path, int value)
+write_brightness(int value)
 {
     int fd;
-    static int already_warned = 0;
+    char brightness_path[4096];
+    char filename[256];
+    if (!findFirstBacklightDevice(filename)) {
+        ALOGE("CA:: Couldn't find backlight brightness path");
+        return -EINVAL;
+    }
 
-    fd = open(path, O_WRONLY);
+    snprintf(brightness_path, 4096, BACKLIGHT_CLASS_FSTRING, filename);
+    fd = open(brightness_path, O_WRONLY);
     if (fd >= 0) {
         char buffer[20];
         ssize_t amt;
@@ -89,10 +118,7 @@
         close(fd);
         return amt == -1 ? -errno : 0;
     } else {
-        if (already_warned == 0) {
-            ALOGE("write_int failed to open %s\n", path);
-            already_warned = 1;
-        }
+        ALOGE("write_brightness failed to open %s, fd = %d, errno = %d\n", brightness_path, fd, errno);
         return -errno;
     }
 }
@@ -114,7 +140,7 @@
     }
 
     int brightness = rgb_to_brightness(state) << 4; // Scale up to 4095
-    write_int(LCD_FILE, brightness);
+    write_brightness(brightness);
 
     return 0;
 }
@@ -140,6 +166,7 @@
 static int open_lights(const struct hw_module_t* module, char const* name,
         struct hw_device_t** device)
 {
+    (void)name;
     pthread_once(&g_init, init_globals);
 
     struct light_device_t *dev = malloc(sizeof(struct light_device_t));
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index 2472171..4764120 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -17,6 +17,8 @@
 /sys/devices/platform/soc@0/ae00000.mdss						u:object_r:sysfs_gpu:s0
 /sys/devices/platform/soc@0/c440000.spmi/spmi-0/0-00/c440000.spmi:pmic@0:rtc@6000/rtc	u:object_r:sysfs_rtc:s0
 
+/sys/class/backlight(/.*)?									u:object_r:sysfs_lights:s0
+
 /sys/class/remoteproc									u:object_r:sysfs_remoteproc:s0
 /sys/devices/platform/remoteproc-adsp/remoteproc					u:object_r:sysfs_remoteproc:s0
 /sys/devices/platform/remoteproc-cdsp/remoteproc					u:object_r:sysfs_remoteproc:s0
diff --git a/sepolicy/genfs_contexts b/sepolicy/genfs_contexts
index 1766cc6..d2248d2 100644
--- a/sepolicy/genfs_contexts
+++ b/sepolicy/genfs_contexts
@@ -5,4 +5,3 @@
 genfscon sysfs   /devices/platform/soc@0/4080000.remoteproc					u:object_r:sysfs_remoteproc:s0
 genfscon sysfs   /devices/platform/soc@0/ae00000.mdss						u:object_r:sysfs_gpu:s0
 genfscon sysfs   /devices/platform/soc@0/c440000.spmi/spmi-0/0-00/c440000.spmi:pmic@0:rtc@6000	u:object_r:sysfs_rtc:s0
-genfscon sysfs   /devices/platform/soc@0/c440000.spmi/spmi-0/0-03/c440000.spmi:pmic@3:wled@d800/backlight/wled/ u:object_r:sysfs_lights:s0
diff --git a/sepolicy/hal_light_default.te b/sepolicy/hal_light_default.te
index 04eaaa6..c8483af 100644
--- a/sepolicy/hal_light_default.te
+++ b/sepolicy/hal_light_default.te
@@ -1,2 +1,6 @@
 # audit2allow
-allow hal_light_default sysfs_lights:file { open write };
+allow hal_light_default sysfs_lights:file { read open write };
+allow hal_light_default sysfs_lights:lnk_file { read };
+allow hal_light_default sysfs_gpu:dir { search };
+allow hal_light_default sysfs_gpu:file { read open write };
+allow hal_light_default sysfs_lights:dir { open search read };
diff --git a/ueventd.common.rc b/ueventd.common.rc
index bde2ad5..1cd2a14 100644
--- a/ueventd.common.rc
+++ b/ueventd.common.rc
@@ -11,3 +11,6 @@
 
 # Input devices
 /dev/input/* 0660 system input
+
+# Backlights
+/sys/class/backlight/* brightness 0660 system system
\ No newline at end of file
