Если у вас работает libhid, возможно, вам стоит написать приложение (которое вы бы назвали GPL), которое использует libhid для связи с устройствами, а затем предоставляет все, что вам нужно, через соединение TCP. Ваше реальное приложение будет подключаться через TCP, чтобы делать то, что ему нужно. Это, очевидно, станет огромным ударом по производительности.
Это приложение, по сути, станет «прокладкой» между libhid и вашим приложением. В этом случае прокладка будет существовать по юридическим, а не техническим причинам.
Я не говорю, что это хорошая идея, просто это идея.