update_device.py: Handle the package push without 'adb root'.

When using '--file' (and without '--no-push'), it tries to push the
package to /data/ota_package/debug.zip. However, that's not allowed
directly with 'adb push', unless by restarting adb with 'adb root'.

This CL works around the issue by pushing the file to /data/local/tmp
first, then moving it over to the desired place.

Test: update_device.py --file <marlin-ota.zip>
Change-Id: I608284cc90918fc01cf7584569d4d7d4165148ca
diff --git a/scripts/update_device.py b/scripts/update_device.py
index b2452ac..49de7a1 100755
--- a/scripts/update_device.py
+++ b/scripts/update_device.py
@@ -382,7 +382,12 @@
     device_ota_file = os.path.join(OTA_PACKAGE_PATH, 'debug.zip')
     payload_url = 'file://' + device_ota_file
     if not args.no_push:
-      cmds.append(['push', args.otafile, device_ota_file])
+      data_local_tmp_file = '/data/local/tmp/debug.zip'
+      cmds.append(['push', args.otafile, data_local_tmp_file])
+      cmds.append(['shell', 'su', '0', 'mv', data_local_tmp_file,
+                   device_ota_file])
+      cmds.append(['shell', 'su', '0', 'chcon',
+                   'u:object_r:ota_package_file:s0', device_ota_file])
     cmds.append(['shell', 'su', '0', 'chown', 'system:cache', device_ota_file])
     cmds.append(['shell', 'su', '0', 'chmod', '0660', device_ota_file])
   else: