Statsd atom: add packageName to wakeups

Wakeup alarms in batterystats are tracked by both uid and package name.
This is quite unique in batterystats - most things are only tracked by uid.
But, to make sure statsd gets all the same data, statsd now tracks wakeup
alarms' package name too.

Bug: 115686599
Test: UidAtomTests#testWakeupAlarm

Change-Id: I1d124faf207867e0ba70f19d89ff620b73ac5636
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index 485b91f..7d8cc99 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -753,6 +753,9 @@
 
     // Name of the wakeup alarm.
     optional string tag = 2;
+
+    // Name of source package (for historical reasons, since BatteryStats tracked it).
+    optional string package_name = 3;
 }
 
 /**
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 8c7fc84..790be0a 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -9607,9 +9607,10 @@
 
         mBatteryStatsService.noteWakupAlarm(sourcePkg, sourceUid, workSource, tag);
         if (workSource != null) {
-            StatsLog.write(StatsLog.WAKEUP_ALARM_OCCURRED, workSource, tag);
+            StatsLog.write(StatsLog.WAKEUP_ALARM_OCCURRED, workSource, tag, sourcePkg);
         } else {
-            StatsLog.write_non_chained(StatsLog.WAKEUP_ALARM_OCCURRED, sourceUid, null, tag);
+            StatsLog.write_non_chained(StatsLog.WAKEUP_ALARM_OCCURRED, sourceUid, null, tag,
+                    sourcePkg);
         }
     }