Add SystemInterface API to collect the list of processes running on the system.

This API will return a list of (PID, UID) for each process it sees running at the time it is invoked.
The list is gathered by scavenging /proc, and should be treated as an instantaneous snapshot.

There is potential for security vulns associated with /proc access. For this reason, Android defaults
to mounting /proc hidepid=2,gid=readproc, in order to minimize and control the portions of the system
that can gain unrestricted access.

In order to play along with this requirement, the implementation of getRunningProcesses() is backed by
a native service, which has a surface area much smaller than CarService, and access is restricted to
SYSTEM and ROOT users only.

Change-Id: I217cc6a4671187a2ae617fb454477e129c4b7371
Fixes: 68164195
Bug: 65846699
Test: manual
diff --git a/procfs-inspector/server/process.cpp b/procfs-inspector/server/process.cpp
new file mode 100644
index 0000000..3c25ce2
--- /dev/null
+++ b/procfs-inspector/server/process.cpp
@@ -0,0 +1,15 @@
+#include "process.h"
+
+#include <binder/Parcel.h>
+
+status_t procfsinspector::ProcessInfo::writeToParcel(Parcel* parcel) const {
+    parcel->writeUint32(mPid);
+    parcel->writeUint32(mUid);
+    return android::OK;
+}
+
+status_t procfsinspector::ProcessInfo::readFromParcel(const Parcel* parcel) {
+    mPid = parcel->readUint32();
+    mUid = parcel->readUint32();
+    return android::OK;
+}