-
Notifications
You must be signed in to change notification settings - Fork 2
/
ChangeLog
235 lines (233 loc) · 13.2 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
History of USB_ModeSwitch
=========================
Version 2.2.0, 2014/05/29
Introduction of parameter "HuaweiNewMode", wrapping the standard bulk
message for all newer Huawei devices; support for generic fall-back
config files, combined with OS switch (per vendor ID), implementation
to use a specific switching command on Android for all Huawei devices
(see README of data package for details); this change was suggested
by Huawei
Version 2.1.1, 2014/03/27
Code cleanup, better use of libusb1; this also fixes problems with
determination of the active USB configuration (Samsung, Option modems);
"Interface" parameter was not working as expected, fixed (see also:
https://bugs.launchpad.net/bugs/1261923 ); fixed bogus interface release
in "inquire" function, again a report by "Sonya@zte"
Version 2.1.0, 2014/01/28
ATTENTION: -I flag meaning reversed, default is to skip SCSI inquiry;
introduction of StandardEject, replacing many MessageContents with the
same function, reducing size of device config files, and always including
the 'Allow Medium Removal' before ejecting (thanks to Lars Melin for
the idea); fix in "bulk_read", removing bogus CSW request (report from
"Sonya@zte")
Version 2.0.1, 2013/09/03
Fixed stupid string size bug which could lead to memory corruption
(thanks to Leonid Myravjev)
Version 2.0.0, 2013/09/01
Switched to libusb1.0, with much help from folks of the wl500g project
(http://wl500g.googlecode.com): Vladislav Grishenko, Leonid Lisovskiy,
Roman Samarev, Andrey Tikhomirov;
major code and debug output cleanup; man page corrections and additions
(thanks to Thomas Haller);
experimental systemd and upstart integration, if present
(Explanation: newer udev versions kill all subprocesses, detached or
not. The suggested way to handle longer running processes like the
usb_modeswitch_dispatcher is to add simple services or tasks and start
these by sending signals from the udev rule)
!! Attention, system integrators: a crude install facility is included
in the Makefile to check if "upstart" or "systemd" is active and to
install the matching service file; you may want to adapt it better to
your respective system, possibly adding dependencies/targets to the
services. Note that the udev starter script usb_modeswitch.sh also
checks for the existence of the service files
Version 1.2.7, 2013/08/07
Two new dedicated control message functions to support Pantech LTE
(thanks to Adam Goode) and Blackberry Q10/Z10 (thanks to Daniel Mende)
Version 1.2.6, 2013/06/02
Several changes to streamline compiling as part of larger projects
(thanks to Nicolas Carrier), mostly in Makefile; fix compiler warnings
appearing in certain build environments (N. Carrier); new Quanta
procedure (thanks to Andrey Tikhomirov) for Quanta 1K3 LTE; fix for
error with cascaded hubs in dispatcher script (hint from N. Carrier)
Version 1.2.5, 2012/11/09
Initial support for MBIM devices, use with data package >= 20121109;
checking for these is the automatic default, new parameter NoMBIMCheck
prevents the check per device in case of problems; new global option
to set "delay_use" of usb-storage (as low values may prevent
mode-switching); fix for handling multi-configuration devices (thanks
to Bjørn Mork for advice)
Version 1.2.4, 2012/08/12
Additional interface checks to prevent sending UFI commands to non-
storage interfaces (prompted by more ambiguous device IDs popping up);
change in SierraMode for handling newer devices which caused an error
abort before; Makefile fix for parallelized make runs
Version 1.2.3, 2012/01/28
Fixed two bugs both causing the embedded-jimsh install variant of the
dispatcher crash (the "pure-script" install variant was NOT affected);
fixed some "regexp" incompatibilities with Debian's libjim
Version 1.2.2, 2012/01/19
Fixed bad bug preventing mode switch for devices using TargetClass;
improved logging in case of negative success check
Version 1.2.1, 2011/12/26
Fixed possible ambiguities when multiple identical modems are plugged
synchronously; this is achieved by adding -b and -g parameter (busnum
and devnum) for proper id'ing; some resulting workflow changes and
shortcuts in "system integration" mode (use sysfs/wrapper for success
control, reduce informative checks); improved hub usage robustness;
future data packages can be ridded of redundancies (default ID, success
check parameters), resulting in smaller files;
fixed bad bug which may prevent switching completely when logging is
not activated; fixed possible overflow in dispatcher C code (thanks to
Gilles Espinasse)
Version 1.2.0, 2011/10/23
Added QisdaMode for Qisda H21 (thanks to Chi-Hang Long for the code);
dispatcher can now be installed with an embedded interpreter, so that
Tcl is no longer required; added command line options for binary program
to accept configuration data via stdin or as a long string parameter -
this fixes the bug with non-writable temporary file during boot;
reversed skipping of pre-switching delay, which has caused problems;
fixed potential buffer overflow (thanks to Rafael Silva for the find);
get first interface right even on some broken devices (thanks to
Alexander Gordeev for the patch); increased post-switch delay before
driver binding to avoid possible conflict with usb-storage
Version 1.1.9, 2011/08/05
Added CiscoMode for Valet device; additional checking for CDC ACM device
to prevent erroneous driver loading after switching; no more post-switch
check for access to initial device if target parameters are given
Version 1.1.8, 2011/06/19
Cleaned up switchSendMessage(); added workaround for quirky devices not
reporting configuration setting; added non-CSW response for arbitrary
bulk transfers; added SequansMode and MobileActionMode; check for active
configuration will be skipped if bNumConfigurations is 1 (most cases)
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 ...