diff --git a/sdm/AdaptiveBacklight.cpp b/sdm/AdaptiveBacklight.cpp
deleted file mode 100644
index 68fc470..0000000
--- a/sdm/AdaptiveBacklight.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2019-2020 The LineageOS Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "livedisplay/sdm/AdaptiveBacklight.h"
-
-#include <android-base/properties.h>
-#include <android-base/unique_fd.h>
-#include <cutils/sockets.h>
-#include <poll.h>
-
-namespace {
-constexpr size_t kDppsBufSize = 10;
-
-constexpr const char* kDaemonSocket = "pps";
-constexpr const char* kFossOff = "foss:off";
-constexpr const char* kFossOn = "foss:on";
-constexpr const char* kFossProperty = "ro.vendor.display.foss.backlight";
-constexpr const char* kSuccess = "Success";
-
-android::status_t SendDppsCommand(const char* cmd) {
-    android::base::unique_fd sock(
-            socket_local_client(kDaemonSocket, ANDROID_SOCKET_NAMESPACE_RESERVED, SOCK_STREAM));
-    if (sock < 0) {
-        return android::NO_INIT;
-    }
-
-    if (TEMP_FAILURE_RETRY(write(sock, cmd, strlen(cmd))) <= 0) {
-        return android::FAILED_TRANSACTION;
-    }
-
-    std::string result(kDppsBufSize, 0);
-    size_t len = result.length();
-    char* buf = &result[0];
-    ssize_t ret;
-    while ((ret = TEMP_FAILURE_RETRY(read(sock, buf, len))) > 0) {
-        if (ret == len) {
-            break;
-        }
-        len -= ret;
-        buf += ret;
-
-        struct pollfd p = {.fd = sock, .events = POLLIN, .revents = 0};
-
-        ret = poll(&p, 1, 20);
-        if ((ret <= 0) || !(p.revents & POLLIN)) {
-            break;
-        }
-    }
-
-    if (result.compare(0, strlen(kSuccess), kSuccess) == 0) {
-        return android::OK;
-    }
-
-    return android::BAD_VALUE;
-}
-}  // anonymous namespace
-
-namespace vendor {
-namespace lineage {
-namespace livedisplay {
-namespace V2_0 {
-namespace sdm {
-
-using ::android::base::GetBoolProperty;
-
-bool AdaptiveBacklight::isSupported() {
-    return GetBoolProperty(kFossProperty, false);
-}
-
-// Methods from ::vendor::lineage::livedisplay::V2_0::IAdaptiveBacklight follow.
-Return<bool> AdaptiveBacklight::isEnabled() {
-    return enabled_;
-}
-
-Return<bool> AdaptiveBacklight::setEnabled(bool enabled) {
-    if (enabled_ == enabled) {
-        return true;
-    }
-
-    if (SendDppsCommand(enabled ? kFossOn : kFossOff) == android::OK) {
-        enabled_ = enabled;
-        return true;
-    }
-
-    return false;
-}
-
-}  // namespace sdm
-}  // namespace V2_0
-}  // namespace livedisplay
-}  // namespace lineage
-}  // namespace vendor
diff --git a/sdm/Android.bp b/sdm/Android.bp
index fdf4dd1..041b41a 100644
--- a/sdm/Android.bp
+++ b/sdm/Android.bp
@@ -1,4 +1,4 @@
-// Copyright (C) 2019-2020 The LineageOS Project
+// Copyright (C) 2019-2021 The LineageOS Project
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -13,13 +13,6 @@
 // limitations under the License.
 
 filegroup {
-    name: "vendor.lineage.livedisplay@2.0-sdm-ab",
-    srcs: [
-        "AdaptiveBacklight.cpp",
-    ],
-}
-
-filegroup {
     name: "vendor.lineage.livedisplay@2.0-sdm-dm",
     srcs: [
         "DisplayModes.cpp",
@@ -52,7 +45,6 @@
     defaults: ["hidl_defaults"],
     relative_install_path: "hw",
     srcs: [
-        ":vendor.lineage.livedisplay@2.0-sdm-ab",
         ":vendor.lineage.livedisplay@2.0-sdm-dm",
         ":vendor.lineage.livedisplay@2.0-sdm-pa",
         ":vendor.lineage.livedisplay@2.0-sdm-utils",
@@ -61,7 +53,6 @@
     shared_libs: [
         "libbase",
         "libbinder",
-        "libcutils",
         "libdl",
         "libhidlbase",
         "libutils",
diff --git a/sdm/include/livedisplay/sdm/AdaptiveBacklight.h b/sdm/include/livedisplay/sdm/AdaptiveBacklight.h
deleted file mode 100644
index 1fa2be1..0000000
--- a/sdm/include/livedisplay/sdm/AdaptiveBacklight.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2019-2020 The LineageOS Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <vendor/lineage/livedisplay/2.0/IAdaptiveBacklight.h>
-
-namespace vendor {
-namespace lineage {
-namespace livedisplay {
-namespace V2_0 {
-namespace sdm {
-
-using ::android::hardware::Return;
-
-class AdaptiveBacklight : public IAdaptiveBacklight {
-  public:
-    static bool isSupported();
-
-    // Methods from ::vendor::lineage::livedisplay::V2_0::IAdaptiveBacklight follow.
-    Return<bool> isEnabled() override;
-    Return<bool> setEnabled(bool enabled) override;
-
-  private:
-    bool enabled_ = false;
-};
-
-}  // namespace sdm
-}  // namespace V2_0
-}  // namespace livedisplay
-}  // namespace lineage
-}  // namespace vendor
diff --git a/sdm/service.cpp b/sdm/service.cpp
index f6f80a1..78a63b6 100644
--- a/sdm/service.cpp
+++ b/sdm/service.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2020 The LineageOS Project
+ * Copyright (C) 2019-2021 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,7 +23,6 @@
 #include <android-base/logging.h>
 #include <binder/ProcessState.h>
 #include <hidl/HidlTransportSupport.h>
-#include <livedisplay/sdm/AdaptiveBacklight.h>
 #include <livedisplay/sdm/DisplayModes.h>
 #include <livedisplay/sdm/PictureAdjustment.h>
 #include <livedisplay/sdm/SDMController.h>
@@ -34,24 +33,12 @@
 using ::android::hardware::configureRpcThreadpool;
 using ::android::hardware::joinRpcThreadpool;
 
-using ::vendor::lineage::livedisplay::V2_0::sdm::AdaptiveBacklight;
 using ::vendor::lineage::livedisplay::V2_0::sdm::DisplayModes;
 using ::vendor::lineage::livedisplay::V2_0::sdm::PictureAdjustment;
 using ::vendor::lineage::livedisplay::V2_0::sdm::SDMController;
 
 status_t RegisterAsServices() {
     status_t status = OK;
-
-    if (AdaptiveBacklight::isSupported()) {
-        sp<AdaptiveBacklight> ab = new AdaptiveBacklight();
-        status = ab->registerAsService();
-        if (status != OK) {
-            LOG(ERROR) << "Could not register service for LiveDisplay HAL AdaptiveBacklight Iface ("
-                       << status << ")";
-            return status;
-        }
-    }
-
     std::shared_ptr<SDMController> controller = std::make_shared<SDMController>();
 
     sp<PictureAdjustment> pa = new PictureAdjustment(controller);
diff --git a/sysfs/AdaptiveBacklight.cpp b/sysfs/AdaptiveBacklight.cpp
index 9a9ac0f..f47a48f 100644
--- a/sysfs/AdaptiveBacklight.cpp
+++ b/sysfs/AdaptiveBacklight.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019-2020 The LineageOS Project
+ * Copyright (C) 2019-2021 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,10 +17,8 @@
 #include "livedisplay/sysfs/AdaptiveBacklight.h"
 
 #include <android-base/file.h>
-#include <android-base/properties.h>
 #include <android-base/strings.h>
 
-using ::android::base::GetBoolProperty;
 using ::android::base::ReadFileToString;
 using ::android::base::Trim;
 using ::android::base::WriteStringToFile;
@@ -28,7 +26,6 @@
 namespace {
 constexpr const char* kFileAcl = "/sys/class/graphics/fb0/acl";
 constexpr const char* kFileCabc = "/sys/class/graphics/fb0/cabc";
-constexpr const char* kFossProperty = "ro.vendor.display.foss.backlight";
 }  // anonymous namespace
 
 namespace vendor {
@@ -48,10 +45,7 @@
 }
 
 bool AdaptiveBacklight::isSupported() {
-    if (GetBoolProperty(kFossProperty, false) || file_ == nullptr) {
-        return false;
-    }
-    return true;
+    return file_ != nullptr;
 }
 
 // Methods from ::vendor::lineage::livedisplay::V2_0::IAdaptiveBacklight follow.
diff --git a/sysfs/Android.bp b/sysfs/Android.bp
index 218e4bc..6f7a8df 100644
--- a/sysfs/Android.bp
+++ b/sysfs/Android.bp
@@ -1,4 +1,4 @@
-// Copyright (C) 2019-2020 The LineageOS Project
+// Copyright (C) 2019-2021 The LineageOS Project
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -52,7 +52,6 @@
     shared_libs: [
         "libbase",
         "libbinder",
-        "libcutils",
         "libhidlbase",
         "libutils",
         "vendor.lineage.livedisplay@2.0",
