def populate(self, parameters): self.internal_pipeline = Pipeline( parent=self, job=self.job, parameters=parameters ) # establish a new connection before trying the reset self.internal_pipeline.add_action(ResetDevice()) # need to look for Hit any key to stop autoboot self.internal_pipeline.add_action(BootloaderInterruptAction()) self.internal_pipeline.add_action(ConnectLxc())
def populate(self, parameters): self.internal_pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) if self.job.device.hard_reset_command: self.internal_pipeline.add_action(ResetDevice()) self.internal_pipeline.add_action( WaitDeviceBoardID(self.job.device.get("board_id"))) self.internal_pipeline.add_action(FlashOpenOCDAction()) self.internal_pipeline.add_action(ConnectDevice())
def populate(self, parameters): self.internal_pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) self.internal_pipeline.add_action(ResetDevice()) self.internal_pipeline.add_action( BootloaderInterruptAction(method=parameters["bootloader"])) self.internal_pipeline.add_action( BootloaderCommandsAction(expect_final=False, method=parameters["bootloader"]))
def populate(self, parameters): self.pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) self.pipeline.add_action(ConnectDevice()) if parameters.get("reset", True): self.pipeline.add_action(ResetDevice()) if self.has_prompts(parameters): self.pipeline.add_action(AutoLoginAction()) if self.test_has_shell(parameters): self.pipeline.add_action(ExpectShellSession()) if "transfer_overlay" in parameters: self.pipeline.add_action(OverlayUnpack()) self.pipeline.add_action(ExportDeviceEnvironment())
def populate(self, parameters): self.pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) self.pipeline.add_action(ResetDevice()) self.pipeline.add_action(DepthchargeStart()) self.pipeline.add_action(BootloaderCommandsAction()) if self.has_prompts(parameters): self.pipeline.add_action(AutoLoginAction()) if self.test_has_shell(parameters): self.pipeline.add_action(ExpectShellSession()) if "transfer_overlay" in parameters: self.pipeline.add_action(OverlayUnpack()) self.pipeline.add_action(ExportDeviceEnvironment())
def populate(self, parameters): self.internal_pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) method_params = self.job.device['actions']['boot']['methods']['cmsis-dap']['parameters'] usb_mass_device = method_params.get('usb_mass_device') resets_after_flash = method_params.get('resets_after_flash', True) if self.job.device.hard_reset_command: self.internal_pipeline.add_action(ResetDevice()) self.internal_pipeline.add_action(WaitDevicePathAction(usb_mass_device)) self.internal_pipeline.add_action(FlashCMSISAction()) if resets_after_flash: self.internal_pipeline.add_action(WaitUSBSerialDeviceAction()) self.internal_pipeline.add_action(ConnectDevice())
def populate(self, parameters): self.pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) method_params = self.job.device["actions"]["boot"]["methods"]["pyocd"][ "parameters" ] if self.job.device.hard_reset_command: self.pipeline.add_action(ResetDevice()) self.pipeline.add_action(WaitDeviceBoardID(self.job.device.get("board_id"))) if method_params.get("connect_before_flash", False): self.pipeline.add_action(ConnectDevice()) self.pipeline.add_action(FlashPyOCDAction()) if not method_params.get("connect_before_flash", False): self.pipeline.add_action(ConnectDevice())
def populate(self, parameters): self.pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) # establish a new connection before trying the reset self.pipeline.add_action(ResetDevice()) self.pipeline.add_action(BootloaderInterruptAction()) self.pipeline.add_action(BootloaderCommandsAction()) if self.has_prompts(parameters): self.pipeline.add_action(AutoLoginAction()) if self.test_has_shell(parameters): self.pipeline.add_action(ExpectShellSession()) if "transfer_overlay" in parameters: self.pipeline.add_action(OverlayUnpack()) self.pipeline.add_action(ExportDeviceEnvironment())
def populate(self, parameters): self.pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) self.method_params = self.job.device["actions"]["boot"]["methods"]["u-boot"][ "parameters" ] self.usb_mass_device = self.method_params.get("uboot_mass_storage_device") # establish a new connection before trying the reset self.pipeline.add_action(ResetDevice()) self.pipeline.add_action(BootloaderInterruptAction()) if self.method_params.get("uboot_ums_flash", False): self.pipeline.add_action(BootloaderCommandsAction(expect_final=False)) self.pipeline.add_action(WaitDevicePathAction(self.usb_mass_device)) self.pipeline.add_action(FlashUBootUMSAction(self.usb_mass_device)) self.pipeline.add_action(ResetDevice()) else: self.pipeline.add_action(BootloaderCommandsAction()) if self.has_prompts(parameters): self.pipeline.add_action(AutoLoginAction()) if self.test_has_shell(parameters): self.pipeline.add_action(ExpectShellSession()) if "transfer_overlay" in parameters: self.pipeline.add_action(OverlayUnpack()) self.pipeline.add_action(ExportDeviceEnvironment())
def populate(self, parameters): self.parameters = parameters self.pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) if parameters.get("commands"): self.pipeline.add_action(BootFastbootCommands()) board_id = self.job.device["fastboot_serial_number"] # Always ensure the device is in fastboot mode before trying to boot. # Check if the device has a power command such as HiKey, Dragonboard, # etc. against device that doesn't like Nexus, etc. if self.job.device.get("fastboot_via_uboot", False): self.pipeline.add_action(ConnectDevice()) self.pipeline.add_action(UBootEnterFastbootAction()) elif self.job.device.hard_reset_command: self.force_prompt = True self.pipeline.add_action(ConnectDevice()) self.pipeline.add_action(ResetDevice()) else: self.pipeline.add_action(WaitDeviceBoardID(board_id)) self.pipeline.add_action(EnterFastbootAction()) # Based on the boot sequence defined in the device configuration, add # the required pipeline actions. sequences = self.job.device["actions"]["boot"]["methods"].get( "fastboot", []) for sequence in sequences: mapped = _fastboot_sequence_map(sequence) self.pipeline.add_action(WaitDeviceBoardID(board_id)) if mapped[1]: self.pipeline.add_action(mapped[0](device_actions=mapped[1])) elif mapped[0]: self.pipeline.add_action(mapped[0]()) if self.job.device.hard_reset_command: if not self.is_container(): self.pipeline.add_action(PreOs()) if self.has_prompts(parameters): self.pipeline.add_action(AutoLoginAction()) if self.test_has_shell(parameters): self.pipeline.add_action(ExpectShellSession()) if "transfer_overlay" in parameters: self.pipeline.add_action(OverlayUnpack()) self.pipeline.add_action(ExportDeviceEnvironment()) else: if not self.is_container(): self.pipeline.add_action(ConnectAdb()) self.pipeline.add_action(AdbOverlayUnpack())
def populate(self, parameters): self.pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) method_params = self.job.device["actions"]["boot"]["methods"]["cmsis-dap"][ "parameters" ] usb_mass_device = method_params.get("usb_mass_device") resets_after_flash = method_params.get("resets_after_flash", True) if self.job.device.hard_reset_command: self.pipeline.add_action(ResetDevice()) self.pipeline.add_action(WaitDevicePathAction(usb_mass_device)) self.pipeline.add_action(FlashCMSISAction()) if resets_after_flash: self.pipeline.add_action(WaitUSBSerialDeviceAction()) self.pipeline.add_action(ConnectDevice())
def populate(self, parameters): dfu = self.job.device["actions"]["boot"]["methods"]["dfu"] parameters = dfu["parameters"] self.pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) self.pipeline.add_action(ConnectDevice()) self.pipeline.add_action(ResetDevice()) if dfu.get("implementation") == "u-boot": self.pipeline.add_action( BootloaderInterruptAction(method="u-boot")) self.pipeline.add_action(EnterDFU()) self.pipeline.add_action(WaitDFUDeviceAction()) self.pipeline.add_action(FlashDFUAction())
def populate(self, parameters): download_dir = self.mkdtemp() self.internal_pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) if 'recovery_image' in parameters: self.internal_pipeline.add_action(DownloaderAction('recovery_image', path=download_dir)) self.internal_pipeline.add_action(LxcCreateUdevRuleAction()) self.force_prompt = True self.internal_pipeline.add_action(ConnectDevice()) self.internal_pipeline.add_action(ResetDevice()) self.internal_pipeline.add_action(ExtractVExpressRecoveryImage()) self.internal_pipeline.add_action(EnterVExpressMCC()) self.internal_pipeline.add_action(EnableVExpressMassStorage()) self.internal_pipeline.add_action(WaitUSBMassStorageDeviceAction()) self.internal_pipeline.add_action(MountVExpressMassStorageDevice()) self.internal_pipeline.add_action(DeployVExpressRecoveryImage()) self.internal_pipeline.add_action(UnmountVExpressMassStorageDevice()) self.internal_pipeline.add_action(VExpressFlashErase())
def populate(self, parameters): self.pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) if "commands" in parameters and "fastboot" in parameters["commands"]: self.pipeline.add_action(UefiSubstituteCommands()) self.pipeline.add_action(UEFIMenuInterrupt()) self.pipeline.add_action(UefiMenuSelector()) self.pipeline.add_action(MenuReset()) self.pipeline.add_action(AutoLoginAction()) self.pipeline.add_action(ExportDeviceEnvironment()) else: self.pipeline.add_action(UefiSubstituteCommands()) self.pipeline.add_action(MenuConnect()) self.pipeline.add_action(ResetDevice()) self.pipeline.add_action(UEFIMenuInterrupt()) self.pipeline.add_action(UefiMenuSelector()) self.pipeline.add_action(MenuReset()) self.pipeline.add_action(AutoLoginAction()) self.pipeline.add_action(ExportDeviceEnvironment())
def populate(self, parameters): download_dir = self.mkdtemp() self.internal_pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) self.internal_pipeline.add_action(ConnectDevice()) self.internal_pipeline.add_action(ResetDevice()) self.internal_pipeline.add_action(WaitUSBMassStorageDeviceAction()) for image in parameters['images'].keys(): if image != 'yaml_line': self.internal_pipeline.add_action( DownloaderAction(image, path=download_dir)) self.internal_pipeline.add_action(MountVExpressMassStorageDevice()) if 'recovery_image' in parameters['images'].keys(): self.internal_pipeline.add_action(ExtractVExpressRecoveryImage()) self.internal_pipeline.add_action(DeployVExpressRecoveryImage()) if 'test_binary' in parameters['images'].keys(): self.internal_pipeline.add_action(DeployMPSTestBinary()) self.internal_pipeline.add_action(UnmountVExpressMassStorageDevice())
def populate(self, parameters): self.pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) if self.test_needs_overlay(parameters): self.pipeline.add_action(OverlayAction()) # Check if the device has a power command such as HiKey, Dragonboard, # etc. against device that doesn't like Nexus, etc. if self.job.device.get("fastboot_via_uboot", False): self.pipeline.add_action(ConnectDevice()) self.pipeline.add_action(UBootEnterFastbootAction()) elif self.job.device.hard_reset_command: self.force_prompt = True self.pipeline.add_action(ConnectDevice()) if not is_lxc_requested(self.job): self.pipeline.add_action(PrePower()) self.pipeline.add_action(ResetDevice()) else: self.pipeline.add_action(EnterFastbootAction()) fastboot_dir = self.mkdtemp() for image in sorted(parameters["images"].keys()): self.pipeline.add_action( DownloaderAction( image, fastboot_dir, params=parameters["images"][image] ) ) if parameters["images"][image].get("apply-overlay", False): if self.test_needs_overlay(parameters): if parameters["images"][image].get("sparse", True): self.pipeline.add_action(ApplyOverlaySparseImage(image)) else: use_root_part = parameters["images"][image].get( "root_partition", False ) self.pipeline.add_action( ApplyOverlayImage(image, use_root_partition=use_root_part) ) if self.test_needs_overlay(parameters) and self.test_needs_deployment( parameters ): self.pipeline.add_action(DeployDeviceEnvironment()) self.pipeline.add_action(FastbootFlashOrderAction())
def populate(self, parameters): self.internal_pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) # Always ensure the device is in fastboot mode before trying to boot. # Check if the device has a power command such as HiKey, Dragonboard, # etc. against device that doesn't like Nexus, etc. if self.job.device.get('fastboot_via_uboot', False): self.internal_pipeline.add_action(ConnectDevice()) self.internal_pipeline.add_action(UBootEnterFastbootAction()) elif self.job.device.hard_reset_command: self.force_prompt = True self.internal_pipeline.add_action(ConnectDevice()) self.internal_pipeline.add_action(ResetDevice()) else: self.internal_pipeline.add_action(EnterFastbootAction()) # Based on the boot sequence defined in the device configuration, add # the required pipeline actions. sequences = self.job.device['actions']['boot']['methods'].get( 'fastboot', []) for sequence in sequences: mapped = _fastboot_sequence_map(sequence) if mapped[1]: self.internal_pipeline.add_action( mapped[0](device_actions=mapped[1])) elif mapped[0]: self.internal_pipeline.add_action(mapped[0]()) if self.job.device.hard_reset_command: if not is_lxc_requested(self.job): self.internal_pipeline.add_action(PreOs()) if self.has_prompts(parameters): self.internal_pipeline.add_action(AutoLoginAction()) if self.test_has_shell(parameters): self.internal_pipeline.add_action(ExpectShellSession()) if 'transfer_overlay' in parameters: self.internal_pipeline.add_action(OverlayUnpack()) self.internal_pipeline.add_action(ExportDeviceEnvironment()) else: if not is_lxc_requested(self.job): self.internal_pipeline.add_action(ConnectAdb()) self.internal_pipeline.add_action(AdbOverlayUnpack())
def populate(self, parameters): self.internal_pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) self.internal_pipeline.add_action(BootloaderCommandOverlay()) self.internal_pipeline.add_action(MenuConnect()) self.internal_pipeline.add_action(ResetDevice()) # Newer firmware often needs no menu interaction, just press to drop to shell if not self._skip_menu(parameters): # Some older firmware, UEFI Shell has to be selected from a menu. self.internal_pipeline.add_action(UefiShellMenuInterrupt()) self.internal_pipeline.add_action(UefiShellMenuSelector()) self.internal_pipeline.add_action(UefiShellInterrupt()) self.internal_pipeline.add_action(UefiBootloaderCommandsAction()) if self.has_prompts(parameters): self.internal_pipeline.add_action(AutoLoginAction()) if self.test_has_shell(parameters): self.internal_pipeline.add_action(ExpectShellSession()) if 'transfer_overlay' in parameters: self.internal_pipeline.add_action(OverlayUnpack()) self.internal_pipeline.add_action(ExportDeviceEnvironment())
def populate(self, parameters): self.internal_pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) if self.test_needs_overlay(parameters): self.internal_pipeline.add_action(OverlayAction()) # Check if the device has a power command such as HiKey, Dragonboard, # etc. against device that doesn't like Nexus, etc. if self.job.device.get('fastboot_via_uboot', False): self.internal_pipeline.add_action(ConnectDevice()) self.internal_pipeline.add_action(UBootEnterFastbootAction()) elif self.job.device.hard_reset_command: self.force_prompt = True self.internal_pipeline.add_action(ConnectDevice()) self.internal_pipeline.add_action(ResetDevice()) else: self.internal_pipeline.add_action(EnterFastbootAction()) fastboot_dir = self.mkdtemp() image_keys = sorted(parameters['images'].keys()) for image in image_keys: if image != 'yaml_line': self.internal_pipeline.add_action( DownloaderAction(image, fastboot_dir)) if parameters['images'][image].get('apply-overlay', False): if self.test_needs_overlay(parameters): if parameters['images'][image].get('sparse', True): self.internal_pipeline.add_action( ApplyOverlaySparseImage(image)) else: self.internal_pipeline.add_action( ApplyOverlayImage(image, use_root_partition=False)) if self.test_needs_overlay(parameters) and \ self.test_needs_deployment(parameters): self.internal_pipeline.add_action( DeployDeviceEnvironment()) self.internal_pipeline.add_action(FastbootFlashOrderAction())
def populate(self, parameters): download_dir = self.mkdtemp() self.pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) self.pipeline.add_action( DownloaderAction("recovery_image", path=download_dir, params=parameters["recovery_image"])) self.pipeline.add_action(LxcCreateUdevRuleAction()) self.force_prompt = True self.pipeline.add_action(ConnectDevice()) self.pipeline.add_action(ResetDevice()) self.pipeline.add_action(ExtractVExpressRecoveryImage()) self.pipeline.add_action(EnterVExpressMCC()) self.pipeline.add_action(EnableVExpressMassStorage()) self.pipeline.add_action(WaitUSBMassStorageDeviceAction()) self.pipeline.add_action(MountVExpressMassStorageDevice()) self.pipeline.add_action(DeployVExpressRecoveryImage()) self.pipeline.add_action(UnmountVExpressMassStorageDevice()) if self.job.device["actions"]["deploy"]["methods"]["vemsd"][ "parameters"].get("flash_prompt", False): self.pipeline.add_action(VExpressFlashErase())
def populate(self, parameters): self.internal_pipeline = Pipeline(parent=self, job=self.job, parameters=parameters) image_keys = list(parameters['images'].keys()) if self.test_needs_overlay(parameters): self.logger.debug("[SEOJI] add OverlayAction") self.internal_pipeline.add_action(OverlayAction()) # Check if the device has a power command such as HiKey, Dragonboard, # etc. against device that doesn't like Nexus, etc. if self.job.device.get('fastboot_via_uboot', False): self.internal_pipeline.add_action(ConnectDevice()) self.internal_pipeline.add_action(UBootEnterFastbootAction()) elif self.job.device.hard_reset_command: self.force_prompt = True self.internal_pipeline.add_action(ConnectDevice()) if not is_lxc_requested(self.job): self.internal_pipeline.add_action(PrePower()) self.internal_pipeline.add_action(ResetDevice()) elif 'nexell_ext' in image_keys: # Nexell extension #self.internal_pipeline.add_action(OverlayAction()) # download build result if 'url' in parameters['images']['nexell_ext']: self.logger.debug( "[SEOJI] url:" + str(parameters['images']['nexell_ext']['url'])) self.path = '/opt/share' self.internal_pipeline.add_action( DownloaderAction('nexell_ext', self.path)) #if 'compression' in parameters['images']['nexell_ext]: #self.logger.debug("[SEOJI] yes compression param exist") self.logger.debug("SUKER: parameters in deploy/fastboot.py : " + str(parameters)) self.internal_pipeline.add_action( EnterNexellFastbootAction(parameters, 'deploy_script', 'deploy_command1', 'dir_name')) self.internal_pipeline.add_action( ApplyNexellDeployAction(parameters, 'deploy_script', 'deploy_command2', 'dir_name')) else: self.internal_pipeline.add_action(EnterFastbootAction()) fastboot_dir = self.mkdtemp() image_keys = sorted(parameters['images'].keys()) # Nexell extension if 'nexell_ext' in image_keys: self.logger.debug("[SEOJI] pass adding DownloaderAction") #self.internal_pipeline.add_action(DeployDeviceEnvironment()) else: for image in image_keys: if image != 'yaml_line': self.internal_pipeline.add_action( DownloaderAction(image, fastboot_dir)) if parameters['images'][image].get('apply-overlay', False): if self.test_needs_overlay(parameters): if parameters['images'][image].get('sparse', True): self.internal_pipeline.add_action( ApplyOverlaySparseImage(image)) else: self.internal_pipeline.add_action( ApplyOverlayImage( image, use_root_partition=False)) if self.test_needs_overlay(parameters) and \ self.test_needs_deployment(parameters): self.internal_pipeline.add_action( DeployDeviceEnvironment()) self.internal_pipeline.add_action(FastbootFlashOrderAction()) '''