From 62785504f6c1944bfa88bc114c7e5d54d7207d93 Mon Sep 17 00:00:00 2001 From: eunjeongshin Date: Thu, 31 Mar 2022 17:49:30 +0000 Subject: [PATCH] Update LogcatManagerService to call getUidProcessState to retrieve process state Bug fix to retrieve process state by calling getUidProcessState() rather than calling getUidImportance() This codebase is the continuity of the implementation ag/16618162 to obtain user consent. Bug: 193708292 Test: CtsVerifier Ignore-AOSP-First: pending fix for logcat privacy issue Change-Id: I55afc2a11744eeb5da83222b953b539c1bc60b05 --- .../com/android/server/logcat/LogcatManagerService.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/logcat/LogcatManagerService.java b/services/core/java/com/android/server/logcat/LogcatManagerService.java index 7b63fa24088b2..0aa384cedbf12 100644 --- a/services/core/java/com/android/server/logcat/LogcatManagerService.java +++ b/services/core/java/com/android/server/logcat/LogcatManagerService.java @@ -23,7 +23,6 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; -import android.os.Binder; import android.os.ILogd; import android.os.RemoteException; import android.os.ServiceManager; @@ -76,6 +75,7 @@ public final class LogcatManagerService extends SystemService { @Override public void approve(int uid, int gid, int pid, int fd) { try { + Slog.d(TAG, "Allow logd access for uid: " + uid); getLogdService().approve(uid, gid, pid, fd); } catch (RemoteException e) { Slog.e(TAG, "Fails to call remote functions", e); @@ -85,6 +85,7 @@ public final class LogcatManagerService extends SystemService { @Override public void decline(int uid, int gid, int pid, int fd) { try { + Slog.d(TAG, "Decline logd access for uid: " + uid); getLogdService().decline(uid, gid, pid, fd); } catch (RemoteException e) { Slog.e(TAG, "Fails to call remote functions", e); @@ -194,8 +195,9 @@ public final class LogcatManagerService extends SystemService { return; } - final int procState = mActivityManager.getUidImportance(Binder.getCallingUid()); - // If the process is foreground, send a notification for user consent + final int procState = LocalServices.getService(ActivityManagerInternal.class) + .getUidProcessState(mUid); + // If the process is foreground, show a dialog for user consent if (procState <= ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE) { showDialog(mUid, mGid, mPid, mFd); } else {