show Build.SERIAL in settings > about > status

For wifi-only devices, this may be the only way we have to identify
the device.

Change-Id: I70c09e4cdb101282e5d085bcab3f57c890bc7a98
Bug: 3490911
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 966dcde..f154892 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1533,6 +1533,8 @@
     <string name="status_wifi_mac_address">Wi-Fi MAC address</string>
     <!-- About phone, status item title.  The bluetooth adapter's hardware address-->
     <string name="status_bt_address">Bluetooth address</string>
+    <!-- About phone, status item title.  The hardware serial number. [CHAR LIMIT=30]-->
+    <string name="status_serial_number">Serial number</string>
     <!-- About phone, status item value if the actual value is not available. -->
     <string name="status_unavailable">Unavailable</string>
     <!-- About phone, status item title.  How long the device has been running since its last reboot. -->
diff --git a/res/xml/device_info_status.xml b/res/xml/device_info_status.xml
index dee606d..92abf9d 100644
--- a/res/xml/device_info_status.xml
+++ b/res/xml/device_info_status.xml
@@ -100,6 +100,11 @@
         android:title="@string/status_bt_address"
         android:summary="@string/device_info_not_available"
         android:persistent="false" />
+    <Preference android:key="serial_number"
+        style="?android:attr/preferenceInformationStyle"
+        android:title="@string/status_serial_number"
+        android:summary="@string/device_info_not_available"
+        android:persistent="false" />
     <Preference android:key="up_time"
         style="?android:attr/preferenceInformationStyle" 
         android:title="@string/status_up_time"
diff --git a/src/com/android/settings/deviceinfo/Status.java b/src/com/android/settings/deviceinfo/Status.java
index f171c81..2dd6ecd 100644
--- a/src/com/android/settings/deviceinfo/Status.java
+++ b/src/com/android/settings/deviceinfo/Status.java
@@ -25,6 +25,7 @@
 import android.net.wifi.WifiInfo;
 import android.net.wifi.WifiManager;
 import android.os.BatteryManager;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
@@ -78,6 +79,7 @@
     private static final String KEY_BATTERY_LEVEL = "battery_level";
     private static final String KEY_WIFI_MAC_ADDRESS = "wifi_mac_address";
     private static final String KEY_BT_ADDRESS = "bt_address";
+    private static final String KEY_SERIAL_NUMBER = "serial_number";
 
     private static final int EVENT_SIGNAL_STRENGTH_CHANGED = 200;
     private static final int EVENT_SERVICE_STATE_CHANGED = 300;
@@ -236,6 +238,13 @@
         
         setWifiStatus();
         setBtStatus();
+
+        String serial = Build.SERIAL;
+        if (serial != null && !serial.equals("")) {
+            setSummaryText(KEY_SERIAL_NUMBER, serial);
+        } else {
+            removePreferenceFromScreen(KEY_SERIAL_NUMBER);
+        }
     }
 
     @Override