def fake_rma_open(self): """Use individual commands to enter the same state as factory mode""" self.cr50.send_command('ccd testlab open') self.cr50.send_command('ccd reset factory') self.cr50.send_command('wp disable atboot') # TODO(b/119626285): Change the command to use --tpm_mode instead of -m # once --tpm_mode can process the 'disable' arg correctly. cr50_utils.GSCTool(self.host, ['gsctool', '--any', '-m', 'disable'])
def get_tpm_mode(self, long_opt): """Query the current TPM mode. Args: long_opt: Boolean to decide whether to use long opt for gsctool command. """ opt_text = '--tpm_mode' if long_opt else '-m' return cr50_utils.GSCTool(self.host, ['-a', opt_text]).stdout.strip()
def set_tpm_mode(self, disable_tpm, long_opt): """Disable or Enable TPM mode. Args: disable_tpm: Disable TPM if True. Enable (or Confirm Enabling) otherwise. long_opt: Boolean to decide whether to use long opt for gsctool command. """ mode_param = 'disable' if disable_tpm else 'enable' opt_text = '--tpm_mode' if long_opt else '-m' return cr50_utils.GSCTool(self.host, ['-a', opt_text, mode_param]).stdout.strip()
def _cr50_run_update(self, path): """Install the image at path onto cr50. Args: path: the location of the image to update to Returns: the rw version of the image """ tmp_dest = '/tmp/' + os.path.basename(path) dest, image_ver = cr50_utils.InstallImage(self.host, path, tmp_dest) cr50_utils.GSCTool(self.host, ['-a', dest]) return image_ver[1]
def rma_ap(self, authcode='', disable=False, expected_exit_status=SUCCESS): """Run RMA commands using vendor commands from the ap. Args: authcode: the authcode string. disable: True if RMA open should be disabled. expected_exit_status: the expected exit status Returns: The entire stdout from the command or the RMA challenge Raises: error.TestFail if there is an unexpected gsctool response """ if disable: cmd = '-a -F disable' else: cmd = '-a -r ' + authcode get_challenge = not (authcode or disable) expected_stderr = '' if expected_exit_status: if authcode: expected_stderr = self.MISMATCH_AP elif disable: expected_stderr = self.ERR_DISABLE_AP else: expected_stderr = self.LIMIT_AP result = cr50_utils.GSCTool(self.host, cmd.split(), ignore_status=expected_stderr) logging.info(result) # Various connection issues result in warnings. If there is a real issue # the expected_exit_status will raise it. Ignore any warning messages in # stderr. ignore_stderr = 'WARNING' in result.stderr and not expected_stderr if not ignore_stderr and expected_stderr not in result.stderr.strip(): raise error.TestFail('Unexpected stderr: expected %s got %s' % (expected_stderr, result.stderr.strip())) if result.exit_status != expected_exit_status: raise error.TestFail('Unexpected exit_status: expected %s got %s' % (expected_exit_status, result.exit_status)) if get_challenge: return self.parse_challenge(result.stdout.split('Challenge:')[-1]) return result.stdout