Add incremental build ID and build fingerprint as AndroidDevice build info properties (#774)

* Add incremental build ID as an AndroidDevice build info property

* Add build fingerprint (ro.build.fingerprint) to AndroidDevice build_info properties
diff --git a/mobly/controllers/android_device.py b/mobly/controllers/android_device.py
index e793e21..d525d8c 100644
--- a/mobly/controllers/android_device.py
+++ b/mobly/controllers/android_device.py
@@ -48,7 +48,9 @@
 CACHED_SYSTEM_PROPS = [
     'ro.build.id',
     'ro.build.type',
+    'ro.build.fingerprint',
     'ro.build.version.codename',
+    'ro.build.version.incremental',
     'ro.build.version.sdk',
     'ro.build.product',
     'ro.build.characteristics',
@@ -766,8 +768,11 @@
       build_info = self.adb.getprops(CACHED_SYSTEM_PROPS)
       info['build_id'] = build_info['ro.build.id']
       info['build_type'] = build_info['ro.build.type']
+      info['build_fingerprint'] = build_info.get('ro.build.fingerprint', '')
       info['build_version_codename'] = build_info.get(
           'ro.build.version.codename', '')
+      info['build_version_incremental'] = build_info.get(
+          'ro.build.version.incremental', '')
       info['build_version_sdk'] = build_info.get('ro.build.version.sdk', '')
       info['build_product'] = build_info.get('ro.build.product', '')
       info['build_characteristics'] = build_info.get('ro.build.characteristics',
diff --git a/tests/lib/mock_android_device.py b/tests/lib/mock_android_device.py
index ac984d7..dcadbb1 100755
--- a/tests/lib/mock_android_device.py
+++ b/tests/lib/mock_android_device.py
@@ -24,8 +24,10 @@
 DEFAULT_MOCK_PROPERTIES = {
     'ro.build.id': 'AB42',
     'ro.build.type': 'userdebug',
+    'ro.build.fingerprint': 'FakeModel:Dessert/AB42/1234567:userdebug/dev-keys',
     'ro.build.product': 'FakeModel',
     'ro.build.version.codename': 'Z',
+    'ro.build.version.incremental': '1234567',
     'ro.build.version.sdk': '28',
     'ro.product.name': 'FakeModel',
     'ro.debuggable': '1',
diff --git a/tests/mobly/controllers/android_device_test.py b/tests/mobly/controllers/android_device_test.py
index b27d76f..913b889 100755
--- a/tests/mobly/controllers/android_device_test.py
+++ b/tests/mobly/controllers/android_device_test.py
@@ -375,7 +375,10 @@
     build_info = ad.build_info
     self.assertEqual(build_info['build_id'], 'AB42')
     self.assertEqual(build_info['build_type'], 'userdebug')
+    self.assertEqual(build_info['build_fingerprint'],
+                     'FakeModel:Dessert/AB42/1234567:userdebug/dev-keys')
     self.assertEqual(build_info['build_version_codename'], 'Z')
+    self.assertEqual(build_info['build_version_incremental'], '1234567')
     self.assertEqual(build_info['build_version_sdk'], '28')
     self.assertEqual(build_info['build_product'], 'FakeModel')
     self.assertEqual(build_info['build_characteristics'], 'emulator,phone')
@@ -399,7 +402,9 @@
     build_info = ad.build_info
     self.assertEqual(build_info['build_id'], 'AB42')
     self.assertEqual(build_info['build_type'], 'userdebug')
+    self.assertEqual(build_info['build_fingerprint'], '')
     self.assertEqual(build_info['build_version_codename'], '')
+    self.assertEqual(build_info['build_version_incremental'], '')
     self.assertEqual(build_info['build_version_sdk'], '')
     self.assertEqual(build_info['build_product'], '')
     self.assertEqual(build_info['build_characteristics'], '')