adb: avoid consuming input in `adb remount`.
Bug: https://issuetracker.google.com/146163747 Test: dd if=/dev/zero bs=1024 count=1 | (adb remount; wc) Change-Id: I700090cd0bbae2d76569008f3c1a116336951c0a
This commit is contained in:
parent
aceb837ced
commit
9e75634082
|
@ -790,6 +790,15 @@ static int adb_abb(int argc, const char** argv) {
|
|||
service_string);
|
||||
}
|
||||
|
||||
static int adb_shell_noinput(int argc, const char** argv) {
|
||||
#if !defined(_WIN32)
|
||||
unique_fd fd(adb_open("/dev/null", O_RDONLY));
|
||||
CHECK_NE(STDIN_FILENO, fd.get());
|
||||
dup2(fd.get(), STDIN_FILENO);
|
||||
#endif
|
||||
return adb_shell(argc, argv);
|
||||
}
|
||||
|
||||
static int adb_sideload_legacy(const char* filename, int in_fd, int size) {
|
||||
std::string error;
|
||||
unique_fd out_fd(adb_connect(android::base::StringPrintf("sideload:%d", size), &error));
|
||||
|
@ -1711,7 +1720,7 @@ int adb_commandline(int argc, const char** argv) {
|
|||
if (CanUseFeature(features, kFeatureRemountShell)) {
|
||||
std::vector<const char*> args = {"shell"};
|
||||
args.insert(args.cend(), argv, argv + argc);
|
||||
return adb_shell(args.size(), args.data());
|
||||
return adb_shell_noinput(args.size(), args.data());
|
||||
} else if (argc > 1) {
|
||||
auto command = android::base::StringPrintf("%s:%s", argv[0], argv[1]);
|
||||
return adb_connect_command(command);
|
||||
|
|
Loading…
Reference in New Issue