summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2019-04-22 18:35:27 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-04-22 18:35:27 +0000
commit5c5e22e9108646527f8ce40881d739619b4860c5 (patch)
treec12d2d2ecc851e925ddae8adf99e2afefc2cbb47
parent28dd5f84860145c4c0537ae8642d7ea5a43d226c (diff)
parent56856cea47d9e4f80b79125df4fe1158f8d9c606 (diff)
Merge "Fix UID tracking in ProcessCpuTracker." into qt-dev
-rw-r--r--core/java/com/android/internal/os/ProcessCpuTracker.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/core/java/com/android/internal/os/ProcessCpuTracker.java b/core/java/com/android/internal/os/ProcessCpuTracker.java
index 61799183e595..dcf8d285eca9 100644
--- a/core/java/com/android/internal/os/ProcessCpuTracker.java
+++ b/core/java/com/android/internal/os/ProcessCpuTracker.java
@@ -19,10 +19,10 @@ package com.android.internal.os;
import static android.os.Process.*;
import android.annotation.UnsupportedAppUsage;
-import android.os.FileUtils;
import android.os.Process;
import android.os.StrictMode;
import android.os.SystemClock;
+import android.system.ErrnoException;
import android.system.Os;
import android.system.OsConstants;
import android.util.Slog;
@@ -247,6 +247,7 @@ public class ProcessCpuTracker {
pid = _pid;
if (parentPid < 0) {
final File procDir = new File("/proc", Integer.toString(pid));
+ uid = getUid(procDir.toString());
statFile = new File(procDir, "stat").toString();
cmdlineFile = new File(procDir, "cmdline").toString();
threadsDir = (new File(procDir, "task")).toString();
@@ -262,13 +263,22 @@ public class ProcessCpuTracker {
parentPid));
final File taskDir = new File(
new File(procDir, "task"), Integer.toString(pid));
+ uid = getUid(taskDir.toString());
statFile = new File(taskDir, "stat").toString();
cmdlineFile = null;
threadsDir = null;
threadStats = null;
workingThreads = null;
}
- uid = FileUtils.getUid(statFile.toString());
+ }
+
+ private static int getUid(String path) {
+ try {
+ return Os.stat(path).st_uid;
+ } catch (ErrnoException e) {
+ Slog.w(TAG, "Failed to stat(" + path + "): " + e);
+ return -1;
+ }
}
}