DO NOT MERGE - Merge pie-platform-release (PPRL.181205.001) into master

Bug: 120502534
Change-Id: I540c4d84dbaa45e59f24edfe3fa96003b6315191
diff --git a/proto/telecom.proto b/proto/telecom.proto
index 5539f7f..2f4fae8 100644
--- a/proto/telecom.proto
+++ b/proto/telecom.proto
@@ -13,6 +13,9 @@
 
   // Timing information for the logging sessions
   repeated LogSessionTiming session_timings = 2;
+
+  // Hardware revision (EVT, DVT, PVT etc.)
+  optional string hardware_revision = 3;
 }
 
 message LogSessionTiming {
diff --git a/src/com/android/server/telecom/Analytics.java b/src/com/android/server/telecom/Analytics.java
index d524c10..61f7a30 100644
--- a/src/com/android/server/telecom/Analytics.java
+++ b/src/com/android/server/telecom/Analytics.java
@@ -16,6 +16,8 @@
 
 package com.android.server.telecom;
 
+import android.os.SystemProperties;
+
 import android.telecom.Connection;
 import android.telecom.DisconnectCause;
 import android.telecom.Logging.EventManager;
@@ -631,6 +633,7 @@
                             .setSessionEntryPoint(timing.getKey())
                             .setTimeMillis(timing.getTime()))
                     .toArray(TelecomLogClass.LogSessionTiming[]::new);
+            result.setHardwareRevision(SystemProperties.get("ro.boot.revision", ""));
             if (args.length > 1 && CLEAR_ANALYTICS_ARG.equals(args[1])) {
                 sCallIdToInfo.clear();
                 sSessionTimings.clear();
@@ -676,6 +679,7 @@
                     .filter(e -> sSessionIdToLogSession.containsKey(e.getKey()))
                     .forEach(e -> writer.printf("%s: %.2f\n",
                             sSessionIdToLogSession.get(e.getKey()), e.getValue()));
+            writer.println("Hardware Version: " + SystemProperties.get("ro.boot.revision", ""));
         }
     }