diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg
index 5f3e99f..0424122 100644
--- a/PREUPLOAD.cfg
+++ b/PREUPLOAD.cfg
@@ -11,3 +11,4 @@
                       tests/tests/uirendering/
                       tests/tests/view/
                       tests/tests/widget/
+                      common/device-side/util/
diff --git a/common/device-side/util/src/com/android/compatibility/common/util/AdoptShellPermissionsRule.java b/common/device-side/util/src/com/android/compatibility/common/util/AdoptShellPermissionsRule.java
index e9faad3..23e22c6 100644
--- a/common/device-side/util/src/com/android/compatibility/common/util/AdoptShellPermissionsRule.java
+++ b/common/device-side/util/src/com/android/compatibility/common/util/AdoptShellPermissionsRule.java
@@ -16,10 +16,8 @@
 
 package com.android.compatibility.common.util;
 
-import android.app.Instrumentation;
 import android.app.UiAutomation;
 import android.support.test.InstrumentationRegistry;
-import android.util.Log;
 
 import androidx.annotation.NonNull;
 
@@ -31,8 +29,8 @@
  * Custom JUnit4 rule that runs a test adopting Shell's permissions, revoking them at the end.
  *
  * <p>NOTE: should only be used in the cases where *every* test in a class requires the permission.
- * For a more fine-grained access, use {@link SystemUtil#runWithShellPermissions(Runnable)} or
- * {@link SystemUtil#callWithShellPermissions(java.util.concurrent.Callable)} instead.
+ * For a more fine-grained access, use {@link SystemUtil#runWithShellPermissionIdentity(Runnable)}
+ * or {@link SystemUtil#callWithShellPermissionIdentity(java.util.concurrent.Callable)} instead.
  */
 public class AdoptShellPermissionsRule implements TestRule {
 
diff --git a/common/device-side/util/src/com/android/compatibility/common/util/SystemUtil.java b/common/device-side/util/src/com/android/compatibility/common/util/SystemUtil.java
index b6b9ff5..d235c03 100644
--- a/common/device-side/util/src/com/android/compatibility/common/util/SystemUtil.java
+++ b/common/device-side/util/src/com/android/compatibility/common/util/SystemUtil.java
@@ -147,7 +147,7 @@
     /**
      * Runs a {@link Runnable} adopting Shell's permissions.
      */
-    public static void runWithShellPermissions(@NonNull Runnable runnable) {
+    public static void runWithShellPermissionIdentity(@NonNull Runnable runnable) {
         final UiAutomation automan = InstrumentationRegistry.getInstrumentation().getUiAutomation();
         automan.adoptShellPermissionIdentity();
         try {
@@ -160,7 +160,8 @@
     /**
      * Calls a {@link Callable} adopting Shell's permissions.
      */
-    public static <T> T callWithShellPermissions(@NonNull Callable<T> callable) throws Exception {
+    public static <T> T callWithShellPermissionIdentity(@NonNull Callable<T> callable)
+            throws Exception {
         final UiAutomation automan = InstrumentationRegistry.getInstrumentation().getUiAutomation();
         automan.adoptShellPermissionIdentity();
         try {
