У меня есть требование для аналогичной задачи, как указано в this link.. Пассивный мониторинг сокетов в Android. Один из способов - синтаксический анализ таблиц/proc/net/{tcp, udp, ...}. Но нам нужно постоянно следить за продолжением мониторинга; что не является эффективным способом. Поскольку это будет приложение для мобильных устройств, оно будет потреблять батарею, так как для этого требуется время процессора, чтобы отслеживать временной интервал (скажем, 1 секунду).Реализация Netlink для Android NDK
Но, я ищу подход, основанный на событиях. Поскольку я googled примерно то же самое, я закончил NETLINK для мониторинга сокетов. Но я замечаю, что Android NDK не поддерживает для
#include <linux/sock_diag.h>
#include <linux/inet_diag.h>
#include <linux/unix_diag.h>
#include <linux/packet_diag.h>
#include <linux/netlink_diag.h>
Кто-нибудь пробовал использовать NETLINK в Android для мониторинга INET сокеты? Если да, пожалуйста, поделитесь информацией.
Спасибо.
UPDATE: Я пытался копировать вставляя выше файлы в «JNI» папку и построен с использованием NDK-сборки. Строительство было успешным, а также без сбоев во время выполнения. Но, создание сокета типа
socket(AF_NETLINK, SOCK_DGRAM, NETLINK_INET_DIAG)
терпит неудачу с EACCES ошибки (13) - разрешение на создание сокета указанного типа и/или протокола отрицается.
Любые предложения по дальнейшему продвижению?
Это уже не так, что приложения не могут создавать NETLINK сокет. Источник: https://android.googlesource.com/platform/system/sepolicy/+/d31936f89c49bc5c54b84bd5095f3c417da14935%5E%21/#F1 – Mygod