mirror of
				https://github.com/ARM-software/workload-automation.git
				synced 2025-10-31 15:12:25 +00:00 
			
		
		
		
	AndroidDevice: kick-off no longer requires root
kick off will now use root if the device is rooted or if manually specified otherwise its run without root.
This commit is contained in:
		| @@ -446,22 +446,20 @@ class AndroidDevice(BaseLinuxDevice):  # pylint: disable=W0223 | ||||
|         else: | ||||
|             return adb_shell(self.adb_name, command, timeout, check_exit_code, as_root) | ||||
|  | ||||
|     def kick_off(self, command, as_root=True): | ||||
|     def kick_off(self, command, as_root=None): | ||||
|         """ | ||||
|         Like execute but closes adb session and returns immediately, leaving the command running on the | ||||
|         device (this is different from execute(background=True) which keeps adb connection open and returns | ||||
|         a subprocess object). | ||||
|  | ||||
|         .. note:: This relies on busybox's nohup applet and so won't work on unrooted devices. | ||||
|  | ||||
|         Added in version 2.1.4 | ||||
|  | ||||
|         """ | ||||
|         if not self.is_rooted or not as_root: | ||||
|             raise DeviceError('kick_off uses busybox\'s nohup applet and so can only be run a rooted device.') | ||||
|         if as_root is None: | ||||
|             as_root = self.is_rooted | ||||
|         try: | ||||
|             command = 'cd {} && busybox nohup {}'.format(self.working_directory, command) | ||||
|             output = self.execute(command, timeout=1, as_root=True) | ||||
|             command = 'cd {} && {} nohup {}'.format(self.working_directory, self.busybox, command) | ||||
|             output = self.execute(command, timeout=1, as_root=as_root) | ||||
|         except TimeoutError: | ||||
|             pass | ||||
|         else: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user