Как пообщаться с ADBD через порт 5037 в устройстве?Linux

Ответить
Anonymous
 Как пообщаться с ADBD через порт 5037 в устройстве?

Сообщение Anonymous »

Я работаю над встроенной системой Linux (Kernel-5.10.188) с Busybox и ADBD в файловой системе. Чтобы войти в систему через ADB Shell с ошибкой ошибки: устройства/эмуляторы не найдены . Я должен перезагрузить ADBD из серийной консоли, чтобы сделать ADB Shell работать. не работает и должен быть перезапущен.

Вот другая информация об ADBD < /code> в моей системе (получено от Adb Shell < /code>) < /p>

Код: Выделить всё

# lsof | grep adbd
201     /usr/bin/adbd   0       /dev/null
201     /usr/bin/adbd   1       /dev/console
201     /usr/bin/adbd   2       /dev/console
201     /usr/bin/adbd   3       socket:[3341]
201     /usr/bin/adbd   4       socket:[3342]
201     /usr/bin/adbd   5       socket:[3343]
201     /usr/bin/adbd   6       socket:[3344]
201     /usr/bin/adbd   7       socket:[3345]
201     /usr/bin/adbd   8       socket:[3346]
201     /usr/bin/adbd   9       /dev/usb-ffs/adb/ep0
201     /usr/bin/adbd   10      /dev/usb-ffs/adb/ep1
201     /usr/bin/adbd   11      /dev/usb-ffs/adb/ep2
201     /usr/bin/adbd   12      socket:[3943]
201     /usr/bin/adbd   13      socket:[3944]
201     /usr/bin/adbd   14      /dev/ptmx

# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 192.168.0.1:www         0.0.0.0:*               LISTEN
tcp        0      0 192.168.0.1:domain      0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:56797           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:56800           0.0.0.0:*               LISTEN
tcp        0      0 localhost:5037          0.0.0.0:*               LISTEN
udp        0      0 0.0.0.0:56797           0.0.0.0:*
udp        0      0 192.168.0.1:domain      0.0.0.0:*
udp        0      0 0.0.0.0:bootps          0.0.0.0:*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ]         DGRAM                      1565 /var/run/hostapd/wlan0
unix  5      [ ]         DGRAM                      1212 /dev/log
unix  2      [ ACC ]     STREAM     LISTENING       3344 @jdwp-control
unix  3      [ ]         STREAM     CONNECTED       3346
unix  2      [ ]         DGRAM                      1553
unix  3      [ ]         STREAM     CONNECTED       3944
unix  3      [ ]         STREAM     CONNECTED       3341
unix  3      [ ]         STREAM     CONNECTED       3342
unix  2      [ ]         DGRAM                      1213
unix  3      [ ]         STREAM     CONNECTED       3345
unix  3      [ ]         STREAM     CONNECTED       3943
unix  2      [ ]         DGRAM                      1541
Я попытался общаться с ADBD в том же устройстве до 127.0.0.1:5037 следующим образом, чтобы отправить хост: устройства , он не удался (как и ожидалось). < /p>

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define ADB_HOST "127.0.0.1"
#define ADB_PORT 5037

void send_adb_command(const char *command) {
int sock = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in addr = {
.sin_family = AF_INET,
.sin_port = htons(ADB_PORT),
.sin_addr.s_addr = inet_addr(ADB_HOST)
};

struct timeval timeout = {2, 0};
setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));

connect(sock, (struct sockaddr*)&addr, sizeof(addr));

char header[5];
snprintf(header, sizeof(header), "%04X", (unsigned int)strlen(command));
send(sock, header, 4, 0);
send(sock, command, strlen(command), 0);

char response[1024];
recv(sock, response, sizeof(response)-1, 0);
printf("Response: %s\n", response);

close(sock);
}

int main() {
send_adb_command("host:version");
send_adb_command("host:devices");
return 0;
}
Вышеприведенные коды не могли получить ожидаемые результаты при запуске его в том же устройстве, что и ADBD для ADBD , создан с ADB_HOST = 0 , Таким образом, он не примет команды host , такие как хост: версия .
Я хочу Ping Adbd , так что какая команда (и в каком формате) действительна для ADBD в то же устройство?

Подробнее здесь: https://stackoverflow.com/questions/794 ... the-device
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»