Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(425)

Side by Side Diff: build/android/install_emulator_deps.py

Issue 23708033: android: Download ARMv7 image for the emulator. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Installs deps for using SDK emulator for testing. 6 """Installs deps for using SDK emulator for testing.
7 7
8 The script will download system images, if they are not present, and 8 The script will download system images, if they are not present, and
9 install and enable KVM, if virtualization has been enabled in the BIOS. 9 install and enable KVM, if virtualization has been enabled in the BIOS.
10 """ 10 """
11 11
12 12
13 import logging 13 import logging
14 import os 14 import os
15 import shutil 15 import shutil
16 import sys 16 import sys
17 17
18 from pylib import cmd_helper 18 from pylib import cmd_helper
19 from pylib import constants 19 from pylib import constants
20 from pylib.utils import run_tests_helper 20 from pylib.utils import run_tests_helper
21 21
22 # Android ARMv7 system image for the SDK.
23 ARMV7_IMG_URL = 'https://dl-ssl.google.com/android/repository/sysimg_armv7a-18_r 01.zip'
24
22 # Android x86 system image from the Intel website: 25 # Android x86 system image from the Intel website:
23 # http://software.intel.com/en-us/articles/intel-eula-x86-android-4-2-jelly-bean -bin 26 # http://software.intel.com/en-us/articles/intel-eula-x86-android-4-2-jelly-bean -bin
24 X86_IMG_URL = 'http://download-software.intel.com/sites/landingpage/android/sysi mg_x86-18_r01.zip' 27 X86_IMG_URL = 'http://download-software.intel.com/sites/landingpage/android/sysi mg_x86-18_r01.zip'
25 28
26 # Android API level 29 # Android API level
27 API_TARGET = 'android-%s' % constants.ANDROID_SDK_VERSION 30 API_TARGET = 'android-%s' % constants.ANDROID_SDK_VERSION
28 31
29 32
30 def CheckSDK(): 33 def CheckSDK():
31 """Check if SDK is already installed. 34 """Check if SDK is already installed.
32 35
33 Returns: 36 Returns:
34 True if android_tools directory exists in current directory. 37 True if android_tools directory exists in current directory.
35 """ 38 """
36 return os.path.exists(os.path.join(constants.EMULATOR_SDK_ROOT, 39 return os.path.exists(os.path.join(constants.EMULATOR_SDK_ROOT,
37 'android_tools')) 40 'android_tools'))
38 41
39 42
43 def CheckARMv7Image():
44 """Check if the ARMv7 system images have been installed.
45
46 Returns:
47 True if the armeabi-v7a directory is present inside the Android SDK
48 checkout directory.
49 """
50 return os.path.exists(os.path.join(constants.EMULATOR_SDK_ROOT,
51 'android_tools', 'sdk', 'system-images',
52 API_TARGET, 'armeabi-v7a'))
53
54
40 def CheckX86Image(): 55 def CheckX86Image():
41 """Check if Android system images have been installed. 56 """Check if Android system images have been installed.
42 57
43 Returns: 58 Returns:
44 True if android_tools/sdk/system-images directory exists. 59 True if android_tools/sdk/system-images directory exists.
45 """ 60 """
46 return os.path.exists(os.path.join(constants.EMULATOR_SDK_ROOT, 61 return os.path.exists(os.path.join(constants.EMULATOR_SDK_ROOT,
47 'android_tools', 'sdk', 'system-images', 62 'android_tools', 'sdk', 'system-images',
48 API_TARGET, 'x86')) 63 API_TARGET, 'x86'))
49 64
(...skipping 24 matching lines...) Expand all
74 logging.critical('ERROR: Did not add KVM module to Linux Kernal. Make sure ' 89 logging.critical('ERROR: Did not add KVM module to Linux Kernal. Make sure '
75 'hardware virtualization is enabled in BIOS.') 90 'hardware virtualization is enabled in BIOS.')
76 # Now check to ensure KVM acceleration can be used. 91 # Now check to ensure KVM acceleration can be used.
77 rc = cmd_helper.RunCmd(['kvm-ok']) 92 rc = cmd_helper.RunCmd(['kvm-ok'])
78 if rc: 93 if rc:
79 logging.critical('ERROR: Can not use KVM acceleration. Make sure hardware ' 94 logging.critical('ERROR: Can not use KVM acceleration. Make sure hardware '
80 'virtualization is enabled in BIOS (i.e. Intel VT-x or ' 95 'virtualization is enabled in BIOS (i.e. Intel VT-x or '
81 'AMD SVM).') 96 'AMD SVM).')
82 97
83 98
99 def GetARMv7Image():
100 """Download and install the ARMv7 system image."""
101 logging.info('Download ARMv7 system image directory into sdk directory.')
102 try:
103 cmd_helper.RunCmd(['curl', '-o', '/tmp/armv7_img.zip', ARMV7_IMG_URL])
104 rc = cmd_helper.RunCmd(['unzip', '-o', '/tmp/armv7_img.zip', '-d', '/tmp/'])
105 if rc:
106 logging.critical('ERROR: Could not download/unzip image zip.')
107 raise
Paweł Hajdan Jr. 2013/09/12 17:44:43 This is suspect. You're not catching any exception
108 sys_imgs = os.path.join(constants.EMULATOR_SDK_ROOT, 'android_tools', 'sdk',
109 'system-images', API_TARGET, 'armeabi-v7a')
110 shutil.move('/tmp/armeabi-v7a', sys_imgs)
111 finally:
112 os.unlink('/tmp/armv7_img.zip')
113
114
84 def GetX86Image(): 115 def GetX86Image():
85 """Download x86 system image from Intel's website.""" 116 """Download x86 system image from Intel's website."""
86 logging.info('Download x86 system image directory into sdk directory.') 117 logging.info('Download x86 system image directory into sdk directory.')
87 try: 118 try:
88 cmd_helper.RunCmd(['curl', '-o', '/tmp/x86_img.zip', X86_IMG_URL]) 119 cmd_helper.RunCmd(['curl', '-o', '/tmp/x86_img.zip', X86_IMG_URL])
89 rc = cmd_helper.RunCmd(['unzip', '-o', '/tmp/x86_img.zip', '-d', '/tmp/']) 120 rc = cmd_helper.RunCmd(['unzip', '-o', '/tmp/x86_img.zip', '-d', '/tmp/'])
90 if rc: 121 if rc:
91 logging.critical('ERROR: Could not download/unzip image zip.') 122 logging.critical('ERROR: Could not download/unzip image zip.')
92 raise 123 raise
93 sys_imgs = os.path.join(constants.EMULATOR_SDK_ROOT, 'android_tools', 'sdk', 124 sys_imgs = os.path.join(constants.EMULATOR_SDK_ROOT, 'android_tools', 'sdk',
94 'system-images', API_TARGET, 'x86') 125 'system-images', API_TARGET, 'x86')
95 shutil.move('/tmp/x86', sys_imgs) 126 shutil.move('/tmp/x86', sys_imgs)
96 finally: 127 finally:
97 os.unlink('/tmp/x86_img.zip') 128 os.unlink('/tmp/x86_img.zip')
98 129
99 130
100 def main(argv): 131 def main(argv):
101 logging.basicConfig(level=logging.INFO, 132 logging.basicConfig(level=logging.INFO,
102 format='# %(asctime)-15s: %(message)s') 133 format='# %(asctime)-15s: %(message)s')
103 run_tests_helper.SetLogLevel(verbose_count=1) 134 run_tests_helper.SetLogLevel(verbose_count=1)
104 135
105 if not CheckSDK(): 136 if not CheckSDK():
106 logging.critical( 137 logging.critical(
107 'ERROR: android_tools does not exist. Make sure your .gclient file ' 138 'ERROR: android_tools does not exist. Make sure your .gclient file '
108 'contains the right \'target_os\' entry. See ' 139 'contains the right \'target_os\' entry. See '
109 'https://code.google.com/p/chromium/wiki/AndroidBuildInstructions for ' 140 'https://code.google.com/p/chromium/wiki/AndroidBuildInstructions for '
110 'more information.') 141 'more information.')
111 return 1 142 return 1
112 143
113 logging.info('Emulator deps for ARM emulator complete.') 144 # Download system images only if needed.
145 if CheckARMv7Image():
146 logging.info('The ARMv7 image is already present.')
147 else:
148 GetARMv7Image()
114 149
115 # Download system images only if needed.
116 if CheckX86Image(): 150 if CheckX86Image():
117 logging.info('system-images directory already exists.') 151 logging.info('The x86 image is already present.')
118 else: 152 else:
119 GetX86Image() 153 GetX86Image()
120 154
121 # Make sure KVM packages are installed and enabled. 155 # Make sure KVM packages are installed and enabled.
122 if CheckKVM(): 156 if CheckKVM():
123 logging.info('KVM already installed and enabled.') 157 logging.info('KVM already installed and enabled.')
124 else: 158 else:
125 InstallKVM() 159 InstallKVM()
126 160
127 161
128 if __name__ == '__main__': 162 if __name__ == '__main__':
129 sys.exit(main(sys.argv)) 163 sys.exit(main(sys.argv))
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698