{% setvar book_path %}/reference/kotlin/androidx/_book.yaml{% endsetvar %} {% include "_shared/_reference-head-tags.html" %}

ShellExecutor

interface ShellExecutor

Known direct subclasses

Executes a shell command in a similar manner and environment as #executeShellCommand , (i.e. as either root or shell user).

Unlike UiAutomation this is available on all API levels and will not conflict with other instances of UiAutomation.

Summary

Public functions

InputStream!
executeShellCommand(
    command: String!,
    parameters: (Mutable)List<String!>!,
    shellEnv: (Mutable)Map<String!, String!>!,
    executeThroughShell: Boolean,
    timeoutMs: Long
)

Execute a command with elevated permissions and return immediately.

InputStream!
executeShellCommand(
    command: String!,
    parameters: (Mutable)List<String!>!,
    shellEnv: (Mutable)Map<String!, String!>!,
    executeThroughShell: Boolean
)

Execute a command with elevated permissions and return immediately.

String!
executeShellCommandSync(
    command: String!,
    parameters: (Mutable)List<String!>!,
    shellEnv: (Mutable)Map<String!, String!>!,
    executeThroughShell: Boolean,
    timeoutMs: Long
)

Execute a command with elevated permissions and block.

String!
executeShellCommandSync(
    command: String!,
    parameters: (Mutable)List<String!>!,
    shellEnv: (Mutable)Map<String!, String!>!,
    executeThroughShell: Boolean
)

Execute a command with elevated permissions and block.

String!

Public functions

executeShellCommand

fun executeShellCommand(
    command: String!,
    parameters: (Mutable)List<String!>!,
    shellEnv: (Mutable)Map<String!, String!>!,
    executeThroughShell: Boolean,
    timeoutMs: Long
): InputStream!

Execute a command with elevated permissions and return immediately.

Parameters
command: String!

The shell command to be executed.

parameters: (Mutable)List<String!>!

A Map parameters to be given to the shell command

shellEnv: (Mutable)Map<String!, String!>!

A Map of shell environment variables to be set

executeThroughShell: Boolean

If set to true, the command string will be executed through the shell with parameters given as additional shell arguments.

timeoutMs: Long

Optional, destroys the executing subprocess if it runs longer than this timeout.

Returns
InputStream!

java.io.InputStream representing the shell output of the command.

Throws
java.io.IOException: java.io.IOException

if cannot execute command on executor service.

androidx.test.services.shellexecutor.ClientNotConnected: androidx.test.services.shellexecutor.ClientNotConnected

executeShellCommand

fun executeShellCommand(
    command: String!,
    parameters: (Mutable)List<String!>!,
    shellEnv: (Mutable)Map<String!, String!>!,
    executeThroughShell: Boolean
): InputStream!

Execute a command with elevated permissions and return immediately.

Parameters
command: String!

The shell command to be executed.

parameters: (Mutable)List<String!>!

A Map parameters to be given to the shell command

shellEnv: (Mutable)Map<String!, String!>!

A Map of shell environment variables to be set

executeThroughShell: Boolean

If set to true, the command string will be executed through the shell with parameters given as additional shell arguments.

Returns
InputStream!

java.io.InputStream representing the shell output of the command.

Throws
java.io.IOException: java.io.IOException

if cannot execute command on executor service.

androidx.test.services.shellexecutor.ClientNotConnected: androidx.test.services.shellexecutor.ClientNotConnected

executeShellCommandSync

fun executeShellCommandSync(
    command: String!,
    parameters: (Mutable)List<String!>!,
    shellEnv: (Mutable)Map<String!, String!>!,
    executeThroughShell: Boolean,
    timeoutMs: Long
): String!

Execute a command with elevated permissions and block.

Parameters
command: String!

The shell command to be executed.

parameters: (Mutable)List<String!>!

A Map parameters to be given to the shell command

shellEnv: (Mutable)Map<String!, String!>!

A Map of shell environment variables to be set

executeThroughShell: Boolean

If set to true, the command string will be executed through the shell with parameters given as additional shell arguments.

timeoutMs: Long

Optional, destroys the executing subprocess if it runs longer than this timeout.

Returns
String!

String representing the contents of the shell output of the command.

Throws
java.io.IOException: java.io.IOException

if cannot execute command on executor service.

androidx.test.services.shellexecutor.ClientNotConnected: androidx.test.services.shellexecutor.ClientNotConnected

executeShellCommandSync

fun executeShellCommandSync(
    command: String!,
    parameters: (Mutable)List<String!>!,
    shellEnv: (Mutable)Map<String!, String!>!,
    executeThroughShell: Boolean
): String!

Execute a command with elevated permissions and block.

Parameters
command: String!

The shell command to be executed.

parameters: (Mutable)List<String!>!

A Map parameters to be given to the shell command

shellEnv: (Mutable)Map<String!, String!>!

A Map of shell environment variables to be set

executeThroughShell: Boolean

If set to true, the command string will be executed through the shell with parameters given as additional shell arguments.

Returns
String!

String representing the contents of the shell output of the command.

Throws
java.io.IOException: java.io.IOException

if cannot execute command on executor service.

androidx.test.services.shellexecutor.ClientNotConnected: androidx.test.services.shellexecutor.ClientNotConnected

getBinderKey

fun getBinderKey(): String!