summaryrefslogtreecommitdiff
path: root/scripts/update_device.py
diff options
context:
space:
mode:
authorTao Bao <tbao@google.com>2017-10-25 11:13:03 -0700
committerTao Bao <tbao@google.com>2017-10-25 21:09:25 +0000
commitabb45a5542fedd2a7c587aa91402b21f606bc259 (patch)
tree03955220412b2bb73fa38a0f2546df7ab4ab8624 /scripts/update_device.py
parentd4c5debc65bb35ee61c2764bda059b7f307fd093 (diff)
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
Diffstat (limited to 'scripts/update_device.py')
-rwxr-xr-xscripts/update_device.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/scripts/update_device.py b/scripts/update_device.py
index b2452ac9..49de7a15 100755
--- a/scripts/update_device.py
+++ b/scripts/update_device.py
@@ -382,7 +382,12 @@ def main():
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: