diff --git a/sepolicy/ledservice.te b/sepolicy/ledservice.te
index 5770299..6afd94e 100644
--- a/sepolicy/ledservice.te
+++ b/sepolicy/ledservice.te
@@ -5,5 +5,6 @@
 brillo_domain(ledservice)
 allow_crash_reporter(ledservice)
 
+allow ledservice sysfs:dir r_dir_perms;
 allow ledservice sysfs:file rw_file_perms;
 allow ledservice sysfs:lnk_file read;
diff --git a/src/ledflasher/animation.cpp b/src/ledflasher/animation.cpp
index 0dfaad3..dbc891d 100644
--- a/src/ledflasher/animation.cpp
+++ b/src/ledflasher/animation.cpp
@@ -21,8 +21,9 @@
 #include <base/bind.h>
 #include <base/message_loop/message_loop.h>
 
-Animation::Animation(com::android::LEDService::ServiceProxy* service_proxy,
-                     const base::TimeDelta& step_duration)
+Animation::Animation(
+    com::android::LEDService::ServiceProxyInterface* service_proxy,
+    const base::TimeDelta& step_duration)
   : service_proxy_{service_proxy}, step_duration_{step_duration} {
 }
 
@@ -54,7 +55,7 @@
 }
 
 std::unique_ptr<Animation> Animation::Create(
-    com::android::LEDService::ServiceProxy* service_proxy,
+    com::android::LEDService::ServiceProxyInterface* service_proxy,
     const std::string& type,
     const base::TimeDelta& duration) {
   std::unique_ptr<Animation> animation;
diff --git a/src/ledflasher/animation.h b/src/ledflasher/animation.h
index 63cd209..6df53c1 100644
--- a/src/ledflasher/animation.h
+++ b/src/ledflasher/animation.h
@@ -27,7 +27,7 @@
 
 class Animation {
  public:
-  Animation(com::android::LEDService::ServiceProxy* service_proxy,
+  Animation(com::android::LEDService::ServiceProxyInterface* service_proxy,
             const base::TimeDelta& step_duration);
   virtual ~Animation() = default;
 
@@ -35,7 +35,7 @@
   void Stop();
 
   static std::unique_ptr<Animation> Create(
-      com::android::LEDService::ServiceProxy* service_proxy,
+      com::android::LEDService::ServiceProxyInterface* service_proxy,
       const std::string& type,
       const base::TimeDelta& duration);
 
@@ -49,7 +49,7 @@
   void SetAllLEDs(bool on);
 
  private:
-  com::android::LEDService::ServiceProxy* service_proxy_;
+  com::android::LEDService::ServiceProxyInterface* service_proxy_;
   base::TimeDelta step_duration_;
 
   base::WeakPtrFactory<Animation> weak_ptr_factory_{this};
diff --git a/src/ledflasher/animation_blink.cpp b/src/ledflasher/animation_blink.cpp
index af0a736..5bf0978 100644
--- a/src/ledflasher/animation_blink.cpp
+++ b/src/ledflasher/animation_blink.cpp
@@ -17,7 +17,7 @@
 #include "animation_blink.h"
 
 AnimationBlink::AnimationBlink(
-    com::android::LEDService::ServiceProxy* service_proxy,
+    com::android::LEDService::ServiceProxyInterface* service_proxy,
     const base::TimeDelta& duration) : Animation{service_proxy, duration / 2} {
 }
 
diff --git a/src/ledflasher/animation_blink.h b/src/ledflasher/animation_blink.h
index 1509f75..c7ee1b8 100644
--- a/src/ledflasher/animation_blink.h
+++ b/src/ledflasher/animation_blink.h
@@ -21,7 +21,7 @@
 
 class AnimationBlink : public Animation {
  public:
-  AnimationBlink(com::android::LEDService::ServiceProxy* service_proxy,
+  AnimationBlink(com::android::LEDService::ServiceProxyInterface* service_proxy,
                  const base::TimeDelta& duration);
 
  protected:
diff --git a/src/ledflasher/animation_marquee.cpp b/src/ledflasher/animation_marquee.cpp
index cfffe8d..b2ad1e1 100644
--- a/src/ledflasher/animation_marquee.cpp
+++ b/src/ledflasher/animation_marquee.cpp
@@ -17,7 +17,7 @@
 #include "animation_marquee.h"
 
 AnimationMarquee::AnimationMarquee(
-    com::android::LEDService::ServiceProxy* service_proxy,
+    com::android::LEDService::ServiceProxyInterface* service_proxy,
     const base::TimeDelta& duration,
     Direction direction)
   : Animation{service_proxy, duration / num_leds}, direction_{direction} {
diff --git a/src/ledflasher/animation_marquee.h b/src/ledflasher/animation_marquee.h
index ce49e7a..a31382b 100644
--- a/src/ledflasher/animation_marquee.h
+++ b/src/ledflasher/animation_marquee.h
@@ -23,9 +23,10 @@
  public:
   enum class Direction {Left, Right};
 
-  AnimationMarquee(com::android::LEDService::ServiceProxy* service_proxy,
-                   const base::TimeDelta& duration,
-                   Direction direction);
+  AnimationMarquee(
+      com::android::LEDService::ServiceProxyInterface* service_proxy,
+      const base::TimeDelta& duration,
+      Direction direction);
 
  protected:
   void DoAnimationStep() override;
diff --git a/src/ledflasher/ledflasher.cpp b/src/ledflasher/ledflasher.cpp
index 5859647..e9bfa3c 100644
--- a/src/ledflasher/ledflasher.cpp
+++ b/src/ledflasher/ledflasher.cpp
@@ -27,7 +27,7 @@
 #include "animation.h"
 #include "ledservice/dbus-proxies.h"
 
-using com::android::LEDService::ServiceProxy;
+using com::android::LEDService::ServiceProxyInterface;
 
 class Daemon final : public brillo::DBusDaemon {
  public:
@@ -37,7 +37,7 @@
   int OnInit() override;
 
  private:
-  void OnLEDServiceConnected(ServiceProxy* service);
+  void OnLEDServiceConnected(ServiceProxyInterface* service);
   void OnLEDServiceDisconnected(const dbus::ObjectPath& object_path);
 
   // Particular command handlers for various commands.
@@ -58,7 +58,7 @@
   std::string status_{"idle"};
 
   // LED service interface.
-  ServiceProxy* led_service_{nullptr};
+  ServiceProxyInterface* led_service_{nullptr};
 
   // Current animation;
   std::unique_ptr<Animation> animation_;
@@ -93,7 +93,7 @@
   return EX_OK;
 }
 
-void Daemon::OnLEDServiceConnected(ServiceProxy* service) {
+void Daemon::OnLEDServiceConnected(ServiceProxyInterface* service) {
   led_service_ = service;
   UpdateDeviceState();
 }
