How could I distinguish different Joystick?

I have some problem with joysticks

I have a game that used joysticks and can change buttons in game ,
but joystick have so many brand … xbox one , xbox 360 , PS4 …Other
(Because of different driver’s key-code were have some different)

I had use ““Input.GetJoystickNames”” Unity - Scripting API: Input.GetJoystickNames

to find joystick’s describing which were connected
I testing on Windows and Mac that I find the describing were different

Have other method to distinguish that more correctly ?

Input.GetJoystickNames is really meant to just display the user-friendly name of the joystick, What do we do when there’s too many options out there? We have maybe 2 defaults (XBox controller setup / PS controller setup) and then allow the user to select and customize.

Here’s a free system that will help with that