Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8395ec9e authored by Charlie Boutier's avatar Charlie Boutier
Browse files

[Pandora] - Add shell functionality

Bug: 240197728
Test: manual
Change-Id: Idb86d4331e385c58e8221b144dced4dfa49d615a
parent 4d3dbc77
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -5,6 +5,10 @@
        <option name="install-arg" value="-g" />
    </target_preparer>

    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer">
      <option name="force-root" value="true"/>
    </target_preparer>

    <target_preparer class="com.android.tradefed.targetprep.RunHostCommandTargetPreparer">
        <option name="host-background-command" value="adb -s $SERIAL shell am instrument --no-hidden-api-checks -w com.android.pandora/.Main" />
    </target_preparer>
+4 −0
Original line number Diff line number Diff line
@@ -5,6 +5,10 @@
        <option name="install-arg" value="-g" />
    </target_preparer>

    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer">
      <option name="force-root" value="true"/>
    </target_preparer>

    <target_preparer class="com.android.tradefed.targetprep.RunHostCommandTargetPreparer">
        <option name="host-background-command" value="adb -s $SERIAL shell am instrument --no-hidden-api-checks -w com.android.pandora/.Main" />
    </target_preparer>
+11 −0
Original line number Diff line number Diff line
@@ -25,9 +25,14 @@ import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.net.MacAddress
import android.os.ParcelFileDescriptor
import androidx.test.platform.app.InstrumentationRegistry
import com.google.protobuf.ByteString
import io.grpc.stub.StreamObserver
import java.io.BufferedReader
import java.io.InputStreamReader
import java.util.concurrent.CancellationException
import java.util.stream.Collectors
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Job
import kotlinx.coroutines.channels.Channel
@@ -47,6 +52,12 @@ import kotlinx.coroutines.withTimeout
import kotlinx.coroutines.withTimeoutOrNull
import pandora.HostProto.Connection

fun shell(cmd: String): String {
  val fd = InstrumentationRegistry.getInstrumentation().getUiAutomation().executeShellCommand(cmd)
  val input_stream = ParcelFileDescriptor.AutoCloseInputStream(fd)
  return BufferedReader(InputStreamReader(input_stream)).lines().collect(Collectors.joining("\n"))
}

/**
 * Creates a cold flow of intents based on an intent filter. If used multiple times in a same class,
 * this flow should be transformed into a shared flow.