def final_step(self): if self.gaia and not self.keep_profile: # reset phone when flash gaia and not keep profile logger.info('Reset device after shallow flash the Gaia.') PhoneReseter().reset_phone(serial=self.serial) else: # adb shell reboot logger.info('Reboot device.') AdbWrapper.adb_shell('sync', serial=self.serial) AdbWrapper.adb_shell('reboot', serial=self.serial) # wait for device, and then check version AdbWrapper.adb_wait_for_device(timeout=120) logger.info('Check versions.') checker = VersionChecker() checker.set_serial(self.serial) checker.run()
def flash_image(self, image): try: temp_dir = tempfile.mkdtemp() logger.debug("Temporary folder: {}".format(temp_dir)) Decompressor().unzip(image, temp_dir) # set the permissions to rwxrwxr-x (509 in python's os.chmod) os.chmod( temp_dir + "/b2g-distro/flash.sh", stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH, ) os.chmod( temp_dir + "/b2g-distro/load-config.sh", stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH, ) while True: os.system("cd " + temp_dir + "/b2g-distro; ./flash.sh -f") # wait for device, and then check version AdbWrapper.adb_wait_for_device(timeout=120) logger.info("Check versions.") checker = VersionChecker() checker.run() # flash more than one device if not self._flash_again(): break finally: try: shutil.rmtree(temp_dir) # delete directory except OSError: logger.debug("Cannot remove temporary folder: {}".format(temp_dir))