All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
3.0.6 - 2024-11-27
- Updated Keyboard device / rubber-ducky to work with new descriptor handling features.
3.0.5 - 2024-11-25
- Support switching between alternate interface settings.
- Improved Facedancer descriptor functionality.
- Log a warning when Moondancer needs system permissions for the interface.
- Group Facedancer request handler suggestions by their recipients.
- Implement the
raw
field inHIDReportDescriptor
. (tx @jalmeroth!)
- Moondancer: Only prime control endpoints on receipt of a setup packet.
- Moondancer: Use
ep_out_interface_enable
instead ofep_out_prime_endpoint
where appropriate.
3.0.4 - 2024-10-10
- Example:
examples/coroutine.py
demonstrates how to create a custom main function and the use of coroutines. - Keyboard shortcut:
Ctrl-C
will now gracefully exit a Facedancer emulation.
3.0.3 - 2024-09-19
- Support for specifying string descriptor indices.
- Allow
supported_languages = None
for device definitions. - Provide an error message when device claim/release fails.
- New backend method:
clear_halt()
- New backend method:
send_on_control_endpoint()
- HydraDancer backend. (tx @kauwua!)
- Correct byteorder for bcdUSB and bcdDevice.
- Older facedancer backends were not derived from
FacedancerBackend
. - Log message in
handle_set_interface_request
was using the incorrect logging method. (tx @kawua!)
3.0.2 - 2024-08-20
- Added support for Cynthion on Windows.
- Update docs to reflect current status of GreatFET support on Windows.
3.0.1 - 2024-08-19
- USBProxy now auto-detaches kernel drivers for the device being proxied.
- Updated documentation with current status of Facedancer support on Windows.
- Clarify the explanatory text for endpoint numbers in the app template. (tx @salcho!)
- Shutting down Facedancer proxy devices could result in a
LIBUSB_ERROR_BUSY
(tx @mipek!) - Facedancer devices would be incorrectly identified as
goodfet
when/dev/ttyUSB0
exists on the host device. - Fixed ambiguous documentation terminology to always use one of "Target Host", "Control Host".
3.0.0 - 2024-06-18
- Facedancer documentation has been updated and can be found at: https://facedancer.readthedocs.io
- A new backend has been added for the Great Scott Gadgets Cynthion.
- Emulations can now set USB device speed on supported boards.
- The Facedancer core API has been rewritten. See the Facedancer documentation for details.
- Some legacy applets have been replaced with new examples based on the modern Facedancer core:
facedancer-ftdi.py
=>ftdi-echo.py
facedancer-keyboard.py
=>rubber-ducky.py
facedancer-umass.py
=>mass-storage.py
- 64bit LBA support has been added to the
mass-storage.py
example. (Tx @shutingrz!)
- The legacy Facedancer core has been removed. If you're using scripts or training materials that depend on features or APIs removed in
v3.0.x
please usev2.9.x
. - All legacy applets not ported to the modern Facedancer core have been removed.
2.9.0 - 2024-02-09
This release is intended as a reference point for anyone who has scripts, training materials etc. that are based on Facedancer v2.x
features or API's that have been deprecated from v3
onwards.
Any future bug-fixes or backports to Facedancer 2.9.x
should use the v2.9.x branch
as the starting point for forks or PR's.
- The current Facedancer core will be supersed by the implementation in
future/
with thev3.0
release.