Как получить имя пакета с помощью Android Toolchain на C ++?

У меня есть процесс, который пытается получить имя пакета от другого процесса.
Я использую код C ++ и компилирую его с помощью Android toolchain.
У меня есть сокет FD и IP-адрес, однако я не нашел в API функции, которая будет возвращать строку, содержащую имя пакета.
У меня есть сокет FD и адрес, если это помогает:

uid_t GetSocketID(int sockfd)
{
int err;
socklen_t len;
struct sockaddr_in addr;
len = sizeof(addr);
int res = getpeername(sockfd, (struct sockaddr*)&addr, &len);

if (res < 0)
{
err = errno;
return -1;
}

int iSockIp = addr.sin_addr.s_addr;
int iSockPort = ntohs(addr.sin_port);
int iUid = -1;

if (iSockIp == 0 || iSockPort == 0)
{
return -1;

}
}

пример взят из:
https://github.com/android/platform_system_core/blob/master/libcutils/qtaguid.c

Кто-нибудь знает, как я могу получить имя пакета?

Спасибо!

0

Решение

Чтобы сделать это в 3 шага:

  • использование netstat найти процесс из сокета
  • использование ps найти исполняемый файл из информации о процессе
  • Поиск AndroidManifest.xml в корневом каталоге приложения найдите APK, которому принадлежит исполняемый файл.
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]