I have a Buffalo WLI-UC-GNHP adapter, which use a Ralink RT3070 chipset (https://wikidevi.com/wiki/Buffalo_WLI-UC-GNHP). But this adapter cannot work out-of-box on Windows and Linux, and it don't even accept new driver from Mediatek, instead, it can only use the driver from Buffalo. (A normal RT3070 adapter should work out-of-box on Windows and Linux, and I can update the driver to the latest one from 2016: http://topics.mediatek.com/en/downloads1/downloads/)
I think it's because it use a special VID/PID for buffalo(VID=0411, PID=0158) instead of the Ralink ones (VID=148f, PID=3070) (http://www.linux-usb.org/usb.ids). Thus I'm stuck to use it on Windows only, and use the old vendor driver from 2009, and have to install it separately.
I thought a few ways to solve this:
Modify the VID and PID on the adapter. This is the best way, but I don't know how to do this.
Modify a general chipset driver's inf, so it will accept the Buffalo's VID/PID. But the latest driver is a EXE packed with Installshield, I run it without install, and found a .CAB file in my temp folder, I think the driver is inside that, but I cannot unpack it. (Update: I got the original driver files with INF inside.)
Or what else can I do?