From dd83d703712bfa004a6bb71ddd19780b2d0b79ba Mon Sep 17 00:00:00 2001
From: Tej Singh <singhtejinder@google.com>
Date: Tue, 10 Apr 2018 17:24:50 -0700
Subject: [PATCH] Enforce dump permission in stats service

Enforces the dump permission in stats service and fixes a typo in an
enum name.

Bug: b/77723108
Test: adb shell dumpsys stats as root and not root
Test: build success on marlin (and cts build success)
Change-Id: I131f97fe4fd370d50bc4ad369377f6adcca5f6ae
---
 CleanSpec.mk                      | 1 +
 cmds/statsd/src/StatsService.cpp  | 3 +++
 core/proto/android/os/enums.proto | 2 +-
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/CleanSpec.mk b/CleanSpec.mk
index e728897139454..2e949c5c05a98 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -243,6 +243,7 @@ $(call add-clean-step, rm -f $(OUT_DIR)/target/common/obj/APPS/FeatureSplit2_int
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/hardware)
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/core/java/android/os/storage/*)
 $(call add-clean-step, rm -rf $(OUT_DIR)/host/common/obj/JAVA_LIBRARIES/platformprotos_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/statsdprotolite_intermediates)
 # ******************************************************************
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST ABOVE THIS BANNER
 # ******************************************************************
diff --git a/cmds/statsd/src/StatsService.cpp b/cmds/statsd/src/StatsService.cpp
index f7cc00ced6797..6652db609f2fd 100644
--- a/cmds/statsd/src/StatsService.cpp
+++ b/cmds/statsd/src/StatsService.cpp
@@ -172,6 +172,9 @@ status_t StatsService::onTransact(uint32_t code, const Parcel& data, Parcel* rep
  * Write debugging data about statsd.
  */
 status_t StatsService::dump(int fd, const Vector<String16>& args) {
+    if (!checkCallingPermission(String16(kPermissionDump))) {
+        return PERMISSION_DENIED;
+    }
     FILE* out = fdopen(fd, "w");
     if (out == NULL) {
         return NO_MEMORY;  // the fd is already open
diff --git a/core/proto/android/os/enums.proto b/core/proto/android/os/enums.proto
index aa99ac75cbdfb..db4a4c4d836bf 100644
--- a/core/proto/android/os/enums.proto
+++ b/core/proto/android/os/enums.proto
@@ -60,7 +60,7 @@ enum BatteryStatusEnum {
 // They are primarily used by android/os/HardwarePropertiesManager.java.
 // Any change to the types in the thermal hal should be made here as well.
 enum TemperatureTypeEnum {
-    TEMPERATURE_TYPE_UKNOWN = -1;
+    TEMPERATURE_TYPE_UNKNOWN = -1;
     TEMPERATURE_TYPE_CPU = 0;
     TEMPERATURE_TYPE_GPU = 1;
     TEMPERATURE_TYPE_BATTERY = 2;
-- 
GitLab