diff --git a/VoldNativeService.cpp b/VoldNativeService.cpp
index d1d7d86..0cce561 100644
--- a/VoldNativeService.cpp
+++ b/VoldNativeService.cpp
@@ -53,7 +53,6 @@
 namespace {
 
 constexpr const char* kDump = "android.permission.DUMP";
-constexpr const char* kDataUsageStats = "android.permission.LOADER_USAGE_STATS";
 
 static binder::Status error(const std::string& msg) {
     PLOG(ERROR) << msg;
@@ -920,11 +919,9 @@
 binder::Status VoldNativeService::setIncFsMountOptions(
         const ::android::os::incremental::IncrementalFileSystemControlParcel& control,
         bool enableReadLogs) {
-    auto status = CheckPermission(kDataUsageStats);
-    if (!status.isOk()) {
-        return status;
-    }
+    ENFORCE_SYSTEM_OR_ROOT;
 
+    auto status = Ok();
     auto incfsControl = IncFs_CreateControl(dup(control.cmd.get()), dup(control.pendingReads.get()),
                                             dup(control.log.get()));
     if (auto error = IncFs_SetOptions(
diff --git a/VoldNativeServiceValidation.cpp b/VoldNativeServiceValidation.cpp
index 2e21ace..ee1e65a 100644
--- a/VoldNativeServiceValidation.cpp
+++ b/VoldNativeServiceValidation.cpp
@@ -39,11 +39,10 @@
 }
 
 binder::Status CheckPermission(const char* permission) {
-    pid_t pid;
-    uid_t uid;
+    int32_t pid;
+    int32_t uid;
 
-    if (checkCallingPermission(String16(permission), reinterpret_cast<int32_t*>(&pid),
-                               reinterpret_cast<int32_t*>(&uid))) {
+    if (checkCallingPermission(String16(permission), &pid, &uid)) {
         return Ok();
     } else {
         return Exception(binder::Status::EX_SECURITY,
