diff options
| -rw-r--r-- | services/core/java/com/android/server/tracing/TracingServiceProxy.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/tracing/TracingServiceProxy.java b/services/core/java/com/android/server/tracing/TracingServiceProxy.java index 8f227489740f..ff2f08bc4a50 100644 --- a/services/core/java/com/android/server/tracing/TracingServiceProxy.java +++ b/services/core/java/com/android/server/tracing/TracingServiceProxy.java @@ -20,6 +20,7 @@ import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; +import android.os.Binder; import android.os.UserHandle; import android.tracing.ITracingServiceProxy; import android.util.Log; @@ -30,6 +31,8 @@ import com.android.server.SystemService; * TracingServiceProxy is the system_server intermediary between the Perfetto tracing daemon and the * system tracing app Traceur. * + * Access to this service is restricted via SELinux. Normal apps do not have access. + * * @hide */ public class TracingServiceProxy extends SystemService { @@ -87,11 +90,15 @@ public class TracingServiceProxy extends SystemService { intent.setAction(INTENT_ACTION_NOTIFY_SESSION_STOPPED); } + final long identity = Binder.clearCallingIdentity(); try { mContext.startForegroundServiceAsUser(intent, UserHandle.SYSTEM); } catch (RuntimeException e) { Log.e(TAG, "Failed to notifyTraceSessionEnded", e); + } finally { + Binder.restoreCallingIdentity(identity); } + } catch (NameNotFoundException e) { Log.e(TAG, "Failed to locate Traceur", e); } |