Releases: greatscottgadgets/facedancer
Releases · greatscottgadgets/facedancer
3.1.2
3.1.1
3.1.0
This is a breaking release which may require updates to your usage of Facedancer API's.
Changed
- Dropped support for Python 3.8 and 3.9. The minimum supported Python version is now Python 3.10.
- The descriptor API has been changed and expanded to handle more complex device definitions:
- New USBDescriptor property:
include_in_config, which specifies whether the descriptor should be included in a
GET_CONFIGURATION response. - Descriptors attached to endpoints are now instantiated (replaces #139)
- The
instantiate_subordinatesfunction is redesigned to avoid silent dropping of subordinates with duplicate
identifiers. - Orderings of declaration/insertion of subordinates are preserved, allowing control of ordering in binary
configurations. - Fixes to convert some fields to the right types in
from_binary_descriptormethods. - A dictionary of known strings and their indexes may be passed to
from_binary_descriptormethods. - The
numberfield ofUSBDescriptoris made optional, as it is not required for descriptors attached in a
configuration. - The
type_numberfield will now be inferred from therawbytes if not otherwise specified. - Add
@include_in_configand@requestable(number=N)decorators for use on declared descriptor classes. - Add docstrings for all
USBDescriptorfields. - More information: #126 #141
- New USBDescriptor property:
Fixed
- USBProxy errors after changes for alternate interface settings.
Added
- Round-trip support for creating Facedancer devices, configurations, interfaces, endpoints and descriptors from
binary data to objects, to code, to objects and back to binary data. - New backend method:
validate_configurationfor rejecting USB device configurations that are not supported by a
given backend.
3.0.6
3.0.5
Added
- 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
rawfield inHIDReportDescriptor. (tx @jalmeroth!)
Fixed
- Moondancer: Only prime control endpoints on receipt of a setup packet.
- Moondancer: Use
ep_out_interface_enableinstead ofep_out_prime_endpointwhere appropriate.
3.0.4
3.0.3
Added
- Support for specifying string descriptor indices.
- Allow
supported_languages = Nonefor 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!)
Fixed
- Correct byteorder for bcdUSB and bcdDevice.
- Older facedancer backends were not derived from
FacedancerBackend. - Log message in
handle_set_interface_requestwas using the incorrect logging method. (tx @kawua!)
3.0.2
3.0.1
Changed
- USBProxy now auto-detaches kernel drivers for the device being proxied.
- Updated documentation with current status of Facedancer support on Windows.
Fixed
- 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
goodfetwhen/dev/ttyUSB0exists on the host device. - Fixed ambiguous documentation terminology to always use one of "Target Host", "Control Host".
3.0.0
Added
- 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.
Changed
- 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.pyfacedancer-keyboard.py=>rubber-ducky.pyfacedancer-umass.py=>mass-storage.py
Fixed
- 64bit LBA support has been added to the
mass-storage.pyexample. (Tx @shutingrz!)
Removed
- 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.xplease use
v2.9.x. - All legacy applets not ported to the modern Facedancer core have been removed.