
History of USB_ModeSwitch
=========================

Version 1.1.7, 2011/02/27
    Attention: paths for runtime files and database have changed! Old places
    will be found but are deprecated; /usr/share/usb_modeswitch for database,
    /var/lib/usb_modeswitch for "remembered" IDs;
    fix for configuration setting race (thanks to Amit Mendapara); discovered
    incompatibility between Tcl versions <= 8.3 and >=8.4, so 8.4 is the
    minimum prerequisite now;
    first availability of an alternative source pack which includes "jimsh",
    a fast Tcl mini shell, intended for resource-constrained systems
Version 1.1.6, 2010/12/22
    Moved warm-boot driver binding to sh wrapper, was unreliable in 1.1.5;
    sh wrapper overhaul, made compatible with Ubuntu's "dash" shell, tclsh
    calls reduced further; initial device checking includes current
    bConfigurationValue now, should work with config setting for multiple
    devices; made tcl script conform to limitations of "jimsh", the minimal
    tcl shell (hint from Barry Kauler); fixes for "usbserial" fallback
    (driver binding for old systems); in the C program, changed parameter
    "MessageDelay" (hitherto unused) to "ReleaseDelay", to be used in one
    device configuration (delay interface release after bulk message sending)
Version 1.1.5, 2010/11/28
    Added special control message for Kobil devices (patch from Filip Aben);
    try to get active configuration for interface class checking (there are
    some new devices 'switching' via configuration selection);
    fixed "0000" target product ID - again; new bash and tcl wrapper logic:
    the convenience functions for driver binding and symlinking will now
    start the tcl shell ONLY for known devices; changed and appended logging
    capabilities of said convenience functions; add loading of "usbserial"
    as a fallback for older systems to support new devices;
    add workaround for bug in libusb1 which affects device search during
    success check
Version 1.1.4, 2010/08/17
    The package should work at boot time now (cold and warm);
    product IDs of "0000" do exist but were not accepted, fixed (thanks to
    Sakis Dimopoulos); response endpoint is now always detected (led to
    possible error report when resetting all endpoints in version 1.1.3);
    wrapper script can now work with a packed collection of config files as
    well as with the plain folder of files; use with the "install-packed"
    make target of the data package (for use on systems with resource
    constraints); wrapper fix for the symlink feature: handling of multiple
    interrupt ports was incomplete; wrapper does not longer use a temporary
    file for the symlink feature (security considerations, Marco d'Itri)
Version 1.1.3, 2010/06/21
    Added delay option to separate multiple message transfers by millisecs;
    fixed (possibly dangerous) sloppy string handling (thanks to Christophe
    Fergeau); added "clear_halt" for response endpoint; small additions in
    Makefile (install with -D); changes in option handling (NO MORE DEFAULT
    CONFIG FILE!) and help text; symlink feature in wrapper can now cope
    with devices providing more than one interrupt port; wrapper now ignores
    package manager leftovers in config folder; replaced bash-specific syntax
    in wrapper; changed ZTE skipping (if existing rules are found) to warning
Version 1.1.2, 2010/04/18
    Added support for two additional bulk messages; wrapper handles special
    ZTE case; generalized driver loading, new parameter "DriverModule" and
    "DriverIDPath"; new wrapper facility to add symlink pointing to interrupt
    port (used in rule file from data pack >= 20100418)
Version 1.1.1, 2010/03/17
    Attention: old usb_modeswitch.conf renamed to usb_modeswitch.setup!
    Add separate config file for wrapper (global settings for switching and
    logging); add config file option to disable driver loading; handling of
    kernel attribute AVOID_RESET_QUIRK added; bug fixed in SonyMode (reported
    by "no-0n3"); bug fixed in SuccessCheck logic; minor flow alignments and
    fixes; new devices
Version 1.1.0, 2010/01/24
    Attention: wrapper script location changed, uninstall old versions!
    Major fixes in the wrapper script (stabilizing and time-saving);
    back to unified installation, defaults to "integrated" approach;
    new -D parameter to enable "integrated" behaviour; bugs fixed in
    success check; man file included (borrowed from the Debian package);
    C code and binary works with the compat library from libusb-1.0;
    some new devices
Version 1.0.7, 2010/01/06
    Bug fixed for Sony mode, thanks to Marco Chiaranda; fix for parameter
    substitution in newer udev versions, fix for bad bug in wrapper script
    practically disabling automatic mode
Version 1.0.6, 2009/12/21
    New "GCT Mode", fixes for device quirks (NXP Dragonfly), fix for multiple
    Huawei devices, cleanups, loads of new devices in config file and database,
    minor tcl script changes
Version 1.0.5, 2009/08/26
    More changes and fixes regarding success check; "--version" option;
    config "database" updated
Version 1.0.4, 2009/08/23
    Success check bugs (and others) fixed
Version 1.0.3, 2009/08/20
    Success check improved; experimental system integration (fully automated),
    optional; new parameter "TargetProductList" needed for this; other
    necessary small adaptations; more devices
Version 1.0.2, 2009/06/10
    Output bugs fixed
Version 1.0.1, 2009/06/08
    Added output of descriptor strings for further identification
Version 1.0.0, 2009/06/01
    Attention: possible incompatibilities for command line control!
    On/off flags don't require arguments anymore (-H, -S, -O, -d, -R,
    -n, new: -I), meaning "-R 0" does a reset like "-R 1" or "-R";
    long option names changed to standard format (e.g. --HuaweiMode to
    --huawei-mode); added device inquiry, for future help with device
    identification; catch error -19 as possible success; send and response
    endpoints now autoselected (consequently NeedResponse is back);
    new devices
Version 0.9.7, 2009/04/15
    Updated SonyMode, MD 400 now stable; automatic default endpoint
    detection from Andrew Bird
Version 0.9.7beta, 2009/03/15
    Major code clean up, optional success control (both suggested
    by Daniel Cooper), new devices
Version 0.9.6, 2009/01/08
    Special modes added for Sierra and Sony Ericsson, new devices
Version 0.9.5, 2008/10/27
    New options for USB tuning (jokedst), lots of new devices, clean up
Version 0.9.4, 2008/06/09
    Compat fix for libusb on FreeBSD quirks, more devices
Version 0.9.4beta2, 2008/03/19
    Successful udev device release fix
Version 0.9.4beta, 2008/03/16
    Multiple device support
Version 0.9.3, 2008/03/09
    More devices, no changes from beta version
Version 0.9.3beta, 2007/12/30
    New TargetClass parameter for recent Option firmware (Paul Hardwick), more
    devices
Version 0.9.2, 2007/11/02
    New Huawei mode (code from Miroslav Bobovsky, added by Denis Sutter), more
    devices
Version 0.9.1beta, 2007/09/04 (jokedst)
    Added command line parsing, cleaned up config stuff, doc updates
Version 0.9beta, 2007/08/15
    Name change from "icon_switch", parameter file and generalizing
Version 0.2, 2006/09/25
    Code cleaning, more messages
Version 0.1, 2006/09/24
    (as "icon_switch") Just very basic functionality ...
