diff options
| author | 2019-04-22 18:35:27 +0000 | |
|---|---|---|
| committer | 2019-04-22 18:35:27 +0000 | |
| commit | 5c5e22e9108646527f8ce40881d739619b4860c5 (patch) | |
| tree | c12d2d2ecc851e925ddae8adf99e2afefc2cbb47 | |
| parent | 28dd5f84860145c4c0537ae8642d7ea5a43d226c (diff) | |
| parent | 56856cea47d9e4f80b79125df4fe1158f8d9c606 (diff) | |
Merge "Fix UID tracking in ProcessCpuTracker." into qt-dev
| -rw-r--r-- | core/java/com/android/internal/os/ProcessCpuTracker.java | 14 |
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; + } } } |