diff --git a/service/java/com/android/server/wifi/aware/WifiAwareServiceImpl.java b/service/java/com/android/server/wifi/aware/WifiAwareServiceImpl.java
index 4f6a619..521d7a1 100644
--- a/service/java/com/android/server/wifi/aware/WifiAwareServiceImpl.java
+++ b/service/java/com/android/server/wifi/aware/WifiAwareServiceImpl.java
@@ -94,32 +94,6 @@
     }
 
     @Override
-    public void enableUsage() {
-        enforceAccessPermission();
-        enforceChangePermission();
-        enforceConnectivityInternalPermission();
-
-        mStateManager.enableUsage();
-    }
-
-    @Override
-    public void disableUsage() {
-        enforceAccessPermission();
-        enforceChangePermission();
-        enforceConnectivityInternalPermission();
-
-        mStateManager.disableUsage();
-
-        /*
-         * Potential leak (b/27796984) since we keep app information here (uid,
-         * binder-link-to-death), while clearing all state information. However:
-         * (1) can't clear all information since don't have binder, (2)
-         * information will clear once app dies, (3) allows us to do security
-         * checks in the future.
-         */
-    }
-
-    @Override
     public boolean isUsageEnabled() {
         enforceAccessPermission();
 
diff --git a/tests/wifitests/src/com/android/server/wifi/aware/WifiAwareServiceImplTest.java b/tests/wifitests/src/com/android/server/wifi/aware/WifiAwareServiceImplTest.java
index d0e4aa8..0f75300 100644
--- a/tests/wifitests/src/com/android/server/wifi/aware/WifiAwareServiceImplTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/aware/WifiAwareServiceImplTest.java
@@ -121,28 +121,6 @@
     }
 
     /**
-     * Validate enableUsage() function
-     */
-    @Test
-    public void testEnableUsage() {
-        mDut.enableUsage();
-
-        verify(mAwareStateManagerMock).enableUsage();
-    }
-
-    /**
-     * Validate disableUsage() function
-     */
-    @Test
-    public void testDisableUsage() throws Exception {
-        mDut.enableUsage();
-        doConnect();
-        mDut.disableUsage();
-
-        verify(mAwareStateManagerMock).disableUsage();
-    }
-
-    /**
      * Validate isUsageEnabled() function
      */
     @Test
