mirror of
https://github.com/openwrt/packages.git
synced 2025-12-21 21:24:31 +04:00
ufp: add a device fingerprinting daemon
Add a daemon that can fingerprint devices based on DHCP, MDNS and WiFi
signatures.
Sample output looks like the following.
{
"04:99:b9:XX:YY:ZZ": {
"device": "HomePod mini",
"vendor": "Apple",
"class": "speaker",
"device_name": "Kitchen"
},
"c4:65:16:XX:YY:ZZ": {
"vendor": "HP",
"device": "OfficeJet Pro 9010 series",
"class": "Printer"
}
}
Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
committed by
Felix Fietkau
parent
9bdefa0226
commit
d71e6ac14d
64
utils/ufp/Makefile
Normal file
64
utils/ufp/Makefile
Normal file
@@ -0,0 +1,64 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ufp
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
PKG_SOURCE_URL=https://git.openwrt.org/project/ufp.git
|
||||
PKG_MIRROR_HASH:=fcd87491f3a1bbfc3545e7c418355e1e7d30bf08b51370507b761b33907a6e84
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2025-06-21
|
||||
PKG_SOURCE_VERSION:=0b867c8cf579389bcb7d0eb89aa9668a0ad9b6c5
|
||||
|
||||
HOST_BUILD_DEPENDS:=ucode/host libubox/host
|
||||
PKG_BUILD_DEPENDS:=bpf-headers ufp/host
|
||||
UCODE:=LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):$(STAGING_DIR_HOSTPKG)/lib/:$(STAGING_DIR_HOST)/lib/ $(STAGING_DIR_HOSTPKG)/bin/ucode
|
||||
|
||||
CMAKE_SOURCE_SUBDIR:=src
|
||||
|
||||
include $(INCLUDE_DIR)/host-build.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/cmake.mk
|
||||
|
||||
define Package/ufp
|
||||
SECTION:=utils
|
||||
CATEGORY:=Utilities
|
||||
TITLE:=Device fingerprinting daemon
|
||||
DEPENDS:=+ucode +ucode-mod-fs +ucode-mod-struct +libubox +udhcpsnoop +unetmsg
|
||||
endef
|
||||
|
||||
define Package/ufp-neigh
|
||||
SECTION:=utils
|
||||
CATEGORY:=Utilities
|
||||
TITLE:=Device fingerprinting daemon (OUI plugin)
|
||||
DEPENDS:=+ufp
|
||||
endef
|
||||
|
||||
define Package/ufp/conffiles
|
||||
/etc/config/ufp
|
||||
endef
|
||||
|
||||
CMAKE_HOST_OPTIONS += \
|
||||
-DCMAKE_SKIP_RPATH=FALSE \
|
||||
-DCMAKE_INSTALL_RPATH="${STAGING_DIR_HOST}/lib"
|
||||
|
||||
define Package/ufp/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib/ucode $(1)/usr/share/ufp $(1)/usr/sbin/
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/ucode/uht.so $(1)/usr/lib/ucode/
|
||||
$(UCODE) $(PKG_BUILD_DIR)/scripts/convert-devices.uc $(1)/usr/share/ufp/devices.bin $(PKG_BUILD_DIR)/data/*.json
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ufpd $(1)/usr/sbin
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/plugins/* $(1)/usr/share/ufp
|
||||
$(CP) ./files/* $(1)/
|
||||
endef
|
||||
|
||||
define Package/ufp-neigh/install
|
||||
$(INSTALL_DIR) $(1)/usr/share/ufp/db/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/modules/plugin_neigh.uc $(1)/usr/share/ufp
|
||||
$(UCODE) $(PKG_BUILD_DIR)/scripts/convert-devices.uc $(1)/usr/share/ufp/db/oui.bin $(PKG_BUILD_DIR)/modules/oui.json
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,ufp))
|
||||
$(eval $(call BuildPackage,ufp-neigh))
|
||||
$(eval $(call HostBuild))
|
||||
14
utils/ufp/files/etc/init.d/ufp
Executable file
14
utils/ufp/files/etc/init.d/ufp
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (c) 2021 OpenWrt.org
|
||||
|
||||
START=80
|
||||
|
||||
USE_PROCD=1
|
||||
PROG=/usr/sbin/ufpd
|
||||
|
||||
start_service() {
|
||||
procd_open_instance
|
||||
procd_set_param command "$PROG"
|
||||
procd_set_param respawn
|
||||
procd_close_instance
|
||||
}
|
||||
Reference in New Issue
Block a user