Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Microsoft usb descriptors for auto device install (win 7, 8.0, 8.1) #32

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

tonynaggs
Copy link
Contributor

Add USB descriptors per "Microsoft OS Descriptors", these should allow the RFIDler-LF to automatically install on Windows 7, 8.0 and 8.1 without needing the .inf install files.
(Windows 10 should recognise the original device as a serial port from the USB descriptors, and automatically install port. But Microsoft has never shipped this capability to Windows 7, or 8.x.)

Note changes the RFIDler-LF hardware version reported to the USB host, to force Windows to read the new device descriptors. (If older firmware had been connected previously then Windows caches the detail that the extra descriptors were missing.)

Tested that Windows 7 can read the descriptors.
Remove some conditional compilation stuff.
@iceman1001
Copy link

Very interesting, I tried to do the same for PM3 and windows recoqnise it but doesn't hook it up as a serial port. Which I never got solved. Does your implementation make the RFIDler appear as a comport?

@tonynaggs
Copy link
Contributor Author

@iceman1001 The intention is that it should autorecognise/install - but it needs testing with a Windows install that has not had the rfidler .inf installed previously - since Vista Windows seems to hide a copy away somewhere & restore it if the obvious oemXX.inf file is deleted.

@iceman1001
Copy link

yeah, the intention I know of and I got windows to recognise it and make it auto install. However I couldn't make it assign "usb-serial port" to it. Utterly annoying and I thought somewhere the usb_descriptors was wrong. I would need to debug the usb-setup process on a vmware host. Doable but still wouldn't explain why windows didn't assign it as usb-serial.

https://github.com/iceman1001/proxmark3/blob/master/common/usb_cdc.c#L184
The OSPropertyDescriptor is set to trigger the modemmanager but still fails.
I have disabled it, but I loved to get it working. So I'm very curious on your progress now.

@iceman1001
Copy link

And I did the other day the removing of inf-files. I turned out I had 4+ different inf-files installed.

there is about three locations to fiddle with;

  1. COM Name Arbiter (registry)
  2. DeviceManager - shownonpresent devices trick,
  3. pnputil.exe

@tonynaggs
Copy link
Contributor Author

@iceman1001 I created the pull request so that someone with a Win 8.x sysem can test. Even if I test further with Win 7 systems I can potentially access it still needs testing with Win 8.x.

Re PM3 I haven't used mine in ages, and not with this PC. I don't remember how to reflash this, presumably I have to install it as a COM port first, but as I only have one PC I can't then test descriptor changes easily? The only difference I see is that I'm using the GUID for COM ports rather than modems, {4d36e978-e325-11ce-bfc1-08002be10318}

@tonynaggs
Copy link
Contributor Author

Test Status: fails to install on a clean Win 7 system. Untested on Win 8.x.

Fixes & suggestions welcome!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants