NativePoc.Builder
  public
  static
  
  abstract
  class
  NativePoc.Builder
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | com.android.sts.common.NativePoc.Builder | 
Summary
| Public constructors | |
|---|---|
| 
      Builder()
       | |
| Public methods | |
|---|---|
| 
        abstract
        
        
        
        
        NativePoc.Builder | 
      after(NativePoc.AfterFunction value)
      Function to run after the PoC finishes executing but before assertion or cleanups. | 
| 
        abstract
        
        
        
        
        NativePoc.Builder | 
      args(List<String> value)
      List of arguments to be passed to the executable PoC | 
| 
        abstract
        
        
        
        
        NativePoc.Builder | 
      args(String... value)
      List of arguments to be passed to the executable PoC | 
| 
        abstract
        
        
        
        
        NativePoc.Builder | 
      asserter(NativePocAsserter value)
      A  | 
| 
        abstract
        
        
        
        
        NativePoc.Builder | 
      assumePocExitSuccess(boolean value)
      Whether to throw an assumption failure when PoC does not return 0. | 
| 
        
        
        
        
        
        NativePoc | 
      build()
      Build an immutable NativePoc object | 
| 
        abstract
        
        
        
        
        NativePoc.Builder | 
      envVars(Map<String, String> value)
      Map of environment variables to be set before running the PoC | 
| 
        
        
        
        
        
        NativePoc.Builder | 
      only32()
      Force using 32-bit version of the PoC executable | 
| 
        
        
        
        
        
        NativePoc.Builder | 
      only64()
      Force using 64-bit version of the PoC executable | 
| 
        abstract
        
        
        
        
        NativePoc.Builder | 
      pocName(String value)
      Name of executable to be uploaded and run. | 
| 
        abstract
        
        
        
        
        NativePoc.Builder | 
      resourcePushLocation(String value)
      Where to upload extracted Java resources to. | 
| 
        abstract
        
        
        
        
        NativePoc.Builder | 
      resources(String... value)
      List of java resources to extract and upload to the device | 
| 
        abstract
        
        
        
        
        NativePoc.Builder | 
      resources(List<String> value)
      List of java resources to extract and upload to the device | 
| 
        
        
        
        
        
        NativePoc.Builder | 
      timeoutSeconds(long value, String reason)
      How long to let the PoC run before terminating | 
| 
        abstract
        
        
        
        
        NativePoc.Builder | 
      useDefaultLdLibraryPath(boolean value)
      Whether to include /system/lib64 and /system/lib in LD_LIBRARY_PATH | 
Public constructors
Builder
public Builder ()
Public methods
after
public abstract NativePoc.Builder after (NativePoc.AfterFunction value)
Function to run after the PoC finishes executing but before assertion or cleanups.
This is typically used to wait for side effects of the PoC that may happen after the PoC process itself finished, e.g. waiting for a crashdump to be written to file or for a service to crash.
| Parameters | |
|---|---|
| value | NativePoc.AfterFunction | 
| Returns | |
|---|---|
| NativePoc.Builder | |
args
public abstract NativePoc.Builder args (List<String> value)
List of arguments to be passed to the executable PoC
| Parameters | |
|---|---|
| value | List | 
| Returns | |
|---|---|
| NativePoc.Builder | |
args
public abstract NativePoc.Builder args (String... value)
List of arguments to be passed to the executable PoC
| Parameters | |
|---|---|
| value | String | 
| Returns | |
|---|---|
| NativePoc.Builder | |
asserter
public abstract NativePoc.Builder asserter (NativePocAsserter value)
A NativePocAsserter to check PoC execution results or side-effect 
| Parameters | |
|---|---|
| value | NativePocAsserter | 
| Returns | |
|---|---|
| NativePoc.Builder | |
assumePocExitSuccess
public abstract NativePoc.Builder assumePocExitSuccess (boolean value)
Whether to throw an assumption failure when PoC does not return 0. Defaults true
| Parameters | |
|---|---|
| value | boolean | 
| Returns | |
|---|---|
| NativePoc.Builder | |
envVars
public abstract NativePoc.Builder envVars (Map<String, String> value)
Map of environment variables to be set before running the PoC
| Parameters | |
|---|---|
| value | Map | 
| Returns | |
|---|---|
| NativePoc.Builder | |
only32
public NativePoc.Builder only32 ()
Force using 32-bit version of the PoC executable
| Returns | |
|---|---|
| NativePoc.Builder | |
only64
public NativePoc.Builder only64 ()
Force using 64-bit version of the PoC executable
| Returns | |
|---|---|
| NativePoc.Builder | |
pocName
public abstract NativePoc.Builder pocName (String value)
Name of executable to be uploaded and run. Do not include "_sts??" suffix.
| Parameters | |
|---|---|
| value | String | 
| Returns | |
|---|---|
| NativePoc.Builder | |
resourcePushLocation
public abstract NativePoc.Builder resourcePushLocation (String value)
Where to upload extracted Java resources to. Defaults to where the PoC is uploaded
| Parameters | |
|---|---|
| value | String | 
| Returns | |
|---|---|
| NativePoc.Builder | |
resources
public abstract NativePoc.Builder resources (String... value)
List of java resources to extract and upload to the device
| Parameters | |
|---|---|
| value | String | 
| Returns | |
|---|---|
| NativePoc.Builder | |
resources
public abstract NativePoc.Builder resources (List<String> value)
List of java resources to extract and upload to the device
| Parameters | |
|---|---|
| value | List | 
| Returns | |
|---|---|
| NativePoc.Builder | |
timeoutSeconds
public NativePoc.Builder timeoutSeconds (long value, String reason)
How long to let the PoC run before terminating
| Parameters | |
|---|---|
| value | long: how many seconds to let the native PoC run before it's terminated | 
| reason | String: explain why a different timeout amount is needed instead of the defaultNativePoc.DEFAULT_POC_TIMEOUT_SECONDS. Generally used for PoCs that tries to exploit
     race conditions. | 
| Returns | |
|---|---|
| NativePoc.Builder | this Builder instance | 
useDefaultLdLibraryPath
public abstract NativePoc.Builder useDefaultLdLibraryPath (boolean value)
Whether to include /system/lib64 and /system/lib in LD_LIBRARY_PATH
| Parameters | |
|---|---|
| value | boolean | 
| Returns | |
|---|---|
| NativePoc.Builder | |
