Skip to content
/ vcam Public

Reimplementation of Canon and Fujifiilm PTP server/responder

License

Notifications You must be signed in to change notification settings

petabyt/vcam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vcam

This is a virtual camera emulator to spoof and communicate with official vendor software. It currently emulates the responder (server) side of PTP/USB, PTP/IP, UPnP, and (eventually) Bluetooth. It also perfectly emulates the networking too (requires a recent WiFi card) so that means it can spoof official vendor apps:

Roadmap

  • Basic PTP responder implementation (thanks Marcus Meissner)
  • libusb-v1.0.so drop-in replacement - spoof Linux PTP apps
  • PTP/IP packet & behavior support
  • Complete Fujifilm X implementation (2015-2020)
  • Spoof Fujifilm Camera Connect
  • Spoof EOS Connect
  • Complete Canon EOS implementation (Digic 4+)
  • Complete ISO MTP implementation
  • OTG raspberry pi zero device - works in explorer.exe

Why

  • For regression testing - link a PTP client against the fake libusb.so and test functionality in CI
  • For easier prototyping - vcam can be used instead of a physical camera (no need to wait for a camera to recharge to continue testing)
  • Black box testing - test against vendor software without disassembling
  • Note that this tool is very experimental, and the code quality reflects that.

Compiling

Run on linux. It can work on WSL if you can figure out networking.

make vcam
./vcam canon_1300d

To compile libusb shared object:

make libusb.so

Helper targets for Canon PTP/IP spoofer:

  • make setup-canon - setup dummy net device
  • make ip-canon - start wireless AP on device $(WIFI_DEV)
  • make test-canon - starts program in a loop - will accept another connection after disconnect

Fuji test images: https://s1.danielc.dev/filedump/fuji_sd.tar.gz

Credits

Original Author (vusb): Marcus Meissner marcus@jet.franken.de
Forked from https://github.com/gphoto/libgphoto2/tree/master/libgphoto2_port/vusb
create_ap scripts from https://github.com/oblique/create_ap
Licensed under the GNU Lesser General Public License v2.1

About

Reimplementation of Canon and Fujifiilm PTP server/responder

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published