2 History of USB_ModeSwitch
3 =========================
5 Version 1.1.9, 2011/08/05
6 Added CiscoMode for Valet device; additional checking for CDC ACM device
7 to prevent erroneous driver loading after switching; no more post-switch
8 check for access to initial device if target parameters are given
9 Version 1.1.8, 2011/06/19
10 Cleaned up switchSendMessage(); added workaround for quirky devices not
11 reporting configuration setting; added non-CSW response for arbitrary
12 bulk transfers; added SequansMode and MobileActionMode; check for active
13 configuration will be skipped if bNumConfigurations is 1 (most cases)
14 Version 1.1.7, 2011/02/27
15 Attention: paths for runtime files and database have changed! Old places
16 will be found but are deprecated; /usr/share/usb_modeswitch for database,
17 /var/lib/usb_modeswitch for "remembered" IDs;
18 fix for configuration setting race (thanks to Amit Mendapara); discovered
19 incompatibility between Tcl versions <= 8.3 and >=8.4, so 8.4 is the
20 minimum prerequisite now;
21 first availability of an alternative source pack which includes "jimsh",
22 a fast Tcl mini shell, intended for resource-constrained systems
23 Version 1.1.6, 2010/12/22
24 Moved warm-boot driver binding to sh wrapper, was unreliable in 1.1.5;
25 sh wrapper overhaul, made compatible with Ubuntu's "dash" shell, tclsh
26 calls reduced further; initial device checking includes current
27 bConfigurationValue now, should work with config setting for multiple
28 devices; made tcl script conform to limitations of "jimsh", the minimal
29 tcl shell (hint from Barry Kauler); fixes for "usbserial" fallback
30 (driver binding for old systems); in the C program, changed parameter
31 "MessageDelay" (hitherto unused) to "ReleaseDelay", to be used in one
32 device configuration (delay interface release after bulk message sending)
33 Version 1.1.5, 2010/11/28
34 Added special control message for Kobil devices (patch from Filip Aben);
35 try to get active configuration for interface class checking (there are
36 some new devices 'switching' via configuration selection);
37 fixed "0000" target product ID - again; new bash and tcl wrapper logic:
38 the convenience functions for driver binding and symlinking will now
39 start the tcl shell ONLY for known devices; changed and appended logging
40 capabilities of said convenience functions; add loading of "usbserial"
41 as a fallback for older systems to support new devices;
42 add workaround for bug in libusb1 which affects device search during
44 Version 1.1.4, 2010/08/17
45 The package should work at boot time now (cold and warm);
46 product IDs of "0000" do exist but were not accepted, fixed (thanks to
47 Sakis Dimopoulos); response endpoint is now always detected (led to
48 possible error report when resetting all endpoints in version 1.1.3);
49 wrapper script can now work with a packed collection of config files as
50 well as with the plain folder of files; use with the "install-packed"
51 make target of the data package (for use on systems with resource
52 constraints); wrapper fix for the symlink feature: handling of multiple
53 interrupt ports was incomplete; wrapper does not longer use a temporary
54 file for the symlink feature (security considerations, Marco d'Itri)
55 Version 1.1.3, 2010/06/21
56 Added delay option to separate multiple message transfers by millisecs;
57 fixed (possibly dangerous) sloppy string handling (thanks to Christophe
58 Fergeau); added "clear_halt" for response endpoint; small additions in
59 Makefile (install with -D); changes in option handling (NO MORE DEFAULT
60 CONFIG FILE!) and help text; symlink feature in wrapper can now cope
61 with devices providing more than one interrupt port; wrapper now ignores
62 package manager leftovers in config folder; replaced bash-specific syntax
63 in wrapper; changed ZTE skipping (if existing rules are found) to warning
64 Version 1.1.2, 2010/04/18
65 Added support for two additional bulk messages; wrapper handles special
66 ZTE case; generalized driver loading, new parameter "DriverModule" and
67 "DriverIDPath"; new wrapper facility to add symlink pointing to interrupt
68 port (used in rule file from data pack >= 20100418)
69 Version 1.1.1, 2010/03/17
70 Attention: old usb_modeswitch.conf renamed to usb_modeswitch.setup!
71 Add separate config file for wrapper (global settings for switching and
72 logging); add config file option to disable driver loading; handling of
73 kernel attribute AVOID_RESET_QUIRK added; bug fixed in SonyMode (reported
74 by "no-0n3"); bug fixed in SuccessCheck logic; minor flow alignments and
76 Version 1.1.0, 2010/01/24
77 Attention: wrapper script location changed, uninstall old versions!
78 Major fixes in the wrapper script (stabilizing and time-saving);
79 back to unified installation, defaults to "integrated" approach;
80 new -D parameter to enable "integrated" behaviour; bugs fixed in
81 success check; man file included (borrowed from the Debian package);
82 C code and binary works with the compat library from libusb-1.0;
84 Version 1.0.7, 2010/01/06
85 Bug fixed for Sony mode, thanks to Marco Chiaranda; fix for parameter
86 substitution in newer udev versions, fix for bad bug in wrapper script
87 practically disabling automatic mode
88 Version 1.0.6, 2009/12/21
89 New "GCT Mode", fixes for device quirks (NXP Dragonfly), fix for multiple
90 Huawei devices, cleanups, loads of new devices in config file and database,
91 minor tcl script changes
92 Version 1.0.5, 2009/08/26
93 More changes and fixes regarding success check; "--version" option;
94 config "database" updated
95 Version 1.0.4, 2009/08/23
96 Success check bugs (and others) fixed
97 Version 1.0.3, 2009/08/20
98 Success check improved; experimental system integration (fully automated),
99 optional; new parameter "TargetProductList" needed for this; other
100 necessary small adaptations; more devices
101 Version 1.0.2, 2009/06/10
103 Version 1.0.1, 2009/06/08
104 Added output of descriptor strings for further identification
105 Version 1.0.0, 2009/06/01
106 Attention: possible incompatibilities for command line control!
107 On/off flags don't require arguments anymore (-H, -S, -O, -d, -R,
108 -n, new: -I), meaning "-R 0" does a reset like "-R 1" or "-R";
109 long option names changed to standard format (e.g. --HuaweiMode to
110 --huawei-mode); added device inquiry, for future help with device
111 identification; catch error -19 as possible success; send and response
112 endpoints now autoselected (consequently NeedResponse is back);
114 Version 0.9.7, 2009/04/15
115 Updated SonyMode, MD 400 now stable; automatic default endpoint
116 detection from Andrew Bird
117 Version 0.9.7beta, 2009/03/15
118 Major code clean up, optional success control (both suggested
119 by Daniel Cooper), new devices
120 Version 0.9.6, 2009/01/08
121 Special modes added for Sierra and Sony Ericsson, new devices
122 Version 0.9.5, 2008/10/27
123 New options for USB tuning (jokedst), lots of new devices, clean up
124 Version 0.9.4, 2008/06/09
125 Compat fix for libusb on FreeBSD quirks, more devices
126 Version 0.9.4beta2, 2008/03/19
127 Successful udev device release fix
128 Version 0.9.4beta, 2008/03/16
129 Multiple device support
130 Version 0.9.3, 2008/03/09
131 More devices, no changes from beta version
132 Version 0.9.3beta, 2007/12/30
133 New TargetClass parameter for recent Option firmware (Paul Hardwick), more
135 Version 0.9.2, 2007/11/02
136 New Huawei mode (code from Miroslav Bobovsky, added by Denis Sutter), more
138 Version 0.9.1beta, 2007/09/04 (jokedst)
139 Added command line parsing, cleaned up config stuff, doc updates
140 Version 0.9beta, 2007/08/15
141 Name change from "icon_switch", parameter file and generalizing
142 Version 0.2, 2006/09/25
143 Code cleaning, more messages
144 Version 0.1, 2006/09/24
145 (as "icon_switch") Just very basic functionality ...