Hello community,

here is the log from the commit of package usb_modeswitch for openSUSE:Factory 
checked in at 2017-08-24 18:19:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/usb_modeswitch (Old)
 and      /work/SRC/openSUSE:Factory/.usb_modeswitch.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "usb_modeswitch"

Thu Aug 24 18:19:00 2017 rev:42 rq:518379 version:2.5.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/usb_modeswitch/usb_modeswitch.changes    
2017-02-26 17:04:33.462663870 +0100
+++ /work/SRC/openSUSE:Factory/.usb_modeswitch.new/usb_modeswitch.changes       
2017-08-24 18:19:03.643160854 +0200
@@ -1,0 +2,26 @@
+Tue Aug 22 20:27:49 UTC 2017 - [email protected]
+
+- Update to version 2.5.1
+  * New parameter "HuaweiAltMode", uses an alternative Huawei
+    standard bulk message which will either provide NCM
+    (newer modems) or plain PPP ports (older modems).
+  * New option in the global configuration file
+    "HuaweiAltModeGlobal", allowing easy override of
+    "HuwaeiNewMode" with "HuaweiAltMode".
+  * Reworked USB configuration switching, configuring a device
+    reset first before setting the target configuration.
+  * Improved driver detachment, now taking all configured
+    interfaces into account.
+- Update usb-modeswitch-data package to version 20170806
+  * Added devices: [03f0:371d] HP un2430, [03f0:4b1d] HP hs2434,
+    [03f0:4e1d] HP lt4111, [03f0:a31d] HP lt4132,
+    [0846:0fff] Netgear AirCard 779S,
+    [12d1:15ec] Vodafone/Huawei K5150.
+  * Corrected/amended configs: [0922:1003] Dymo LabelManager 420P,
+    [0922:1007] Dymo LabelManager Wireless PnP,
+    [1199:0fff] Sierra devices.
+  * Removed configs: [1004:61aa] LG VL600.
+- Updated file device_reference.txt.
+- Added file parameter_reference.txt
+
+-------------------------------------------------------------------

Old:
----
  usb-modeswitch-2.5.0.tar.bz2
  usb-modeswitch-data-20170205.tar.bz2

New:
----
  parameter_reference.txt
  usb-modeswitch-2.5.1.tar.bz2
  usb-modeswitch-data-20170806.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ usb_modeswitch.spec ++++++
--- /var/tmp/diff_new_pack.Cle0n5/_old  2017-08-24 18:19:04.399054422 +0200
+++ /var/tmp/diff_new_pack.Cle0n5/_new  2017-08-24 18:19:04.403053859 +0200
@@ -17,10 +17,10 @@
 
 
 %define source_name    usb-modeswitch
-%define date           20170205
+%define date           20170806
 %define _udevdir %(pkg-config --variable=udevdir udev)
 Name:           usb_modeswitch
-Version:        2.5.0
+Version:        2.5.1
 Release:        0
 Summary:        A mode switching tool for controlling multiple-device USB gear
 License:        GPL-2.0+
@@ -29,6 +29,7 @@
 Source0:        
http://www.draisberghof.de/usb_modeswitch/%{source_name}-%{version}.tar.bz2
 Source1:        
http://www.draisberghof.de/usb_modeswitch/%{source_name}-data-%{date}.tar.bz2
 Source2:        http://www.draisberghof.de/usb_modeswitch/device_reference.txt
+Source3:        
http://www.draisberghof.de/usb_modeswitch/parameter_reference.txt
 Patch1:         usb_modeswitch-fix_fsf_address.patch
 BuildRequires:  fdupes
 BuildRequires:  pkg-config
@@ -62,6 +63,7 @@
 %patch1
 
 cp %{SOURCE2} .
+cp %{SOURCE3} .
 
 %build
 CFLAGS="%{optflags}" make
@@ -91,7 +93,7 @@
 
 %files
 %defattr(-,root,root,-)
-%doc README COPYING device_reference.txt
+%doc README COPYING device_reference.txt parameter_reference.txt
 %{_sbindir}/usb_modeswitch
 %{_sbindir}/usb_modeswitch_dispatcher
 %{_udevdir}/usb_modeswitch

++++++ device_reference.txt ++++++
--- /var/tmp/diff_new_pack.Cle0n5/_old  2017-08-24 18:19:04.439048791 +0200
+++ /var/tmp/diff_new_pack.Cle0n5/_new  2017-08-24 18:19:04.443048227 +0200
@@ -1,16 +1,16 @@
 #
 # Device Reference (UTF-8 encoding used)
 #
-# Last modified: 2014-05-29
+# Last modified: 2017-02-05
 #
 # Collection of configurations for usb_modeswitch, a mode switching
 # tool for controlling flip flop (multiple mode) USB devices
 #
 # Detailed instructions and a friendly forum on the homepage:
 # http://www.draisberghof.de/usb_modeswitch
-#
-# You may want to check for a newer version of this file at:
-# http://www.draisberghof.de/usb_modeswitch/device_reference.txt
+# 
+# Note that new devices are no longer added to this file. See the
+# config files included with the data package for these
 
 
 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
@@ -21,9 +21,10 @@
 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
 
 
-# For a parameter reference see file REFERENCE in the data package
+# For a parameter reference see file REFERENCE in the data package or
+# http://www.draisberghof.de/usb_modeswitch/parameter_reference.txt
 #
-# If you find working codes and configurations, please contribute
+# If you find new working codes and configurations, please report
 # them!
 
 
@@ -31,6 +32,7 @@
 
 #######################################################
 # Option GlobeSurfer Icon (aka "Vodafone EasyBox")
+# This is the thing that started it all ...
 #
 # The MessageContent is identical for all Option devices
 
@@ -60,7 +62,7 @@
 ########################################################
 # Option GlobeTrotter GT MAX 3.6 (aka "T-Mobile Web'n'walk Card Compact II")
 #
-# Contributor: Bernd Holzmüller
+# Contributor: Bernd Holzmüller
 
 DefaultVendor=  0x05c6
 DefaultProduct= 0x1000
@@ -279,7 +281,7 @@
 #
 # Probably works with DetachStorageOnly too
 #
-# Contributor: Flávio Moringa and others
+# Contributor: Flávio Moringa and others
 
 DefaultVendor=  0x19d2
 DefaultProduct= 0x2000
@@ -777,7 +779,7 @@
 #
 # Recommended init command: ATE0V1&D2&C1S0=0
 #
-# Contributor: Jérôme Oufella
+# Contributor: Jérôme Oufella
 
 DefaultVendor=  0x1004
 DefaultProduct= 0x1000
@@ -1336,7 +1338,7 @@
 ########################################################
 # LG HDM-2100 (EVDO Rev.A USB modem)
 #
-# Contributor: Jérôme Oufella
+# Contributor: Jérôme Oufella
 
 DefaultVendor= 0x1004
 DefaultProduct=0x607f
@@ -1641,7 +1643,7 @@
 ########################################################
 # Huawei U8110 / U8300 / Joy, Vodafone 845 (Android smartphone)
 #
-# Contributor: David Erosa García
+# Contributor: David Erosa García
 
 DefaultVendor= 0x12d1
 DefaultProduct=0x1031
@@ -1658,7 +1660,7 @@
 ########################################################
 # Nokia CS-10
 #
-# Contributor: Wacław Sierek
+# Contributor: Wacław Sierek
 
 DefaultVendor= 0x0421
 DefaultProduct=0x060c
@@ -1700,7 +1702,7 @@
 #######################################################
 # Samsung GT-B3730
 #
-# Contributor: Per Øyvind Karlsen
+# Contributor: Per Øyvind Karlsen
 
 DefaultVendor= 0x04e8
 DefaultProduct=0x689a
@@ -1771,7 +1773,7 @@
 #######################################################
 # Huawei EC168C (from Zantel)
 #
-# Contributor: Ã…smund Hjulstad
+# Contributor: Ã…smund Hjulstad
 
 DefaultVendor= 0x12d1
 DefaultProduct=0x1446
@@ -2754,7 +2756,7 @@
 ######################################################## 
 # ZTE MF652
 #
-# Contributor: Björn Andreas Höfer
+# Contributor: Björn Andreas Höfer
 
 DefaultVendor= 0x19d2
 DefaultProduct=0x1520
@@ -3065,7 +3067,7 @@
 ########################################################
 # ZTE MF821D
 #
-# Contributor: Thomas Schäfer
+# Contributor: Thomas Schäfer
 
 DefaultVendor= 0x19d2
 DefaultProduct=0x0325
@@ -3111,7 +3113,7 @@
 ########################################################
 # Vodafone K5006Z (MF821)
 #
-# Contributor: Thomas Schäfer
+# Contributor: Thomas Schäfer
 
 DefaultVendor= 0x19d2
 DefaultProduct=0x1017
@@ -3295,7 +3297,7 @@
 #######################################################
 # Option Beemo / Pantech P4200 LTE
 #
-# Contributor: Thomas Schäfer
+# Contributor: Thomas Schäfer
 
 DefaultVendor= 0x106c
 DefaultProduct=0x3b14
@@ -3475,7 +3477,7 @@
 ########################################################
 # D-Link DWM-156 (Variant)
 #
-# Contributor: Bjørn Mork
+# Contributor: Bjørn Mork
 
 DefaultVendor= 0x2001
 DefaultProduct=0xa706
@@ -3489,7 +3491,7 @@
 ########################################################
 # D-Link DWM-156 (Variant)
 #
-# Contributor: Bjørn Mork
+# Contributor: Bjørn Mork
 
 DefaultVendor= 0x2001
 DefaultProduct=0xa707
@@ -3503,7 +3505,7 @@
 ########################################################
 # D-Link DWM-156 (Variant)
 #
-# Contributor: Bjørn Mork
+# Contributor: Bjørn Mork
 
 DefaultVendor= 0x2001
 DefaultProduct=0xa708
@@ -3716,7 +3718,7 @@
 #######################################################
 # TP-Link MA260
 #
-# Contributor: Bjørn Mork
+# Contributor: Bjørn Mork
 
 DefaultVendor= 0x2357
 DefaultProduct=0xf000

++++++ parameter_reference.txt ++++++
Configuration File Reference for USB_ModeSwitch
-----------------------------------------------

Last modified: 2017-08-06



General Rules:

Numbers can be decimal or hexadecimal, Bulk message strings must be
hexadecimal without prepended "0x". Digits 9-16 (message tag) in
mass storage messages (which start with "55534243") are random; I set
them to "12345678". Note that you must make them unique if more than
one MessageContent is used.

-> ALL MISTYPED PARAMETERS AND OTHER ENTRIES ARE SILENTLY IGNORED <-



Parameter Reference:

Note: if there is a short command line flag for a parameter, then it
is appended to the line. For the full command line parameter reference
see the usb_modeswitch(1) man page.


* DefaultVendor            -v <hex number>
* DefaultProduct           -p <hex number>

This is the ID the USB device shows after having been plugged in.
The program needs this, either on the command line or in the config
file; if not found -> no action.

Note: newer config files do not contain these parameters because of
the redundancy with regard to the config file name.


* TargetVendor             -V <hex number>
* TargetProduct            -P <hex number>

These are the IDs of the USB device after successful mode switching.
They are optional, but required for a proper success check


* TargetProductList        <comma separated hex strings without "0x">

Like TargetProduct, but multiple targets


* TargetClass              -C <hex number>

Some devices don't change their ID, only their layout. To check for a 
successfull mode switch, the class of the first interface is checked


* MessageEndpoint          -m <hex number>
* ResponseEndpoint         -r <hex number>

A kind of address inside the interface to which the "message"
(the sequence that does the actual switching) is directed or
from which the reply is read if NeedResponse is active.
OBSOLETE since version 0.9.7 due to autodetection, only useful for
testing


* MessageContent           -M <hex string>

A hex string containing the "message" sequence; it will be
sent as a USB bulk transfer


* MessageContent2, ...3    -2/-3 <hex string>

Additional "messages". Use with "NeedResponse"!


* ReleaseDelay             -w <milliseconds>

Waiting time after message transfers. Helps with some sensitive devices
that don't want any traffic after the mode switch initialisation


* NeedResponse <0/1>       -n

Some devices were reported to require receiving the response of the
bulk transfer to do the switching properly. Usually not needed.


* DetachStorageOnly <0/1>  -d

Some early devices just needed to be detached from the usb-storage
driver to initiate the mode switching. Now practically obsolete for
switching, but still comes handy sometimes


* StandardEject <0/1>      -K

Sends a specific bulk message sequence representing the SCSI commands
"ALLOW MEDIUM REMOVAL" and "START STOP UNIT", basically an eject
action. Many modems are using this for mode switching.
Can be combined with one additional 'MessageContent'


* HuaweiMode <0/1>         -H

Some early Huawei devices can be switched by a special control
message. Don't use with recent devices


* HuaweiNewMode <0/1>      -J

The standard for many newer Huawei devices. Sends a specific bulk message,
but different target layouts may be reached with variants of that
message; use MessageContent for these


* HuaweiAltMode <0/1>      -X

An alternative to the Huawei standard, recommended by the manufacturer for
the Android OS. Sends a different bulk message which brings newer modems
into NCM mode (well supported in Linux) and older ones into plain PPP mode.
Also globally settable with HuaweiAltModeGlobal in /etc/usb_modeswitch.conf


* OptionMode <0/1>         -U

The standard for all devices by Option. Sends a specific bulk message


* SonyMode <0/1>           -O

Some Sony-Ericsson devices can be switched by a special control
message. May take a long time (20+ seconds).


* SierraMode <0/1>         -S
* KobilMode <0/1>          -T
* GCTMode <0/1>            -G
* SequansMode <0/1>        -N
* MobileActionMode <0/1>   -A
* QisdaMode <0/1>          -B
* QuantaMode <0/1>         -E
* BlackberryMode <0/1>     -Z
* CiscoMode <0/1>          -L


Flags to support devices that need special control messages.
The names are referring to the respective manufacturers.


* PantechMode              -F <num value>

Extended flag for Pantech devices offering multiple target modes. Not
all models were confirmed to support all modes. Possible values are:

    1 - Automatic choice, checks for MBIM driver availability (recomm.)
    2 - forced RNDIS mode
    3 - forced CDC Ether mode (internal switch, no usb_modeswitch action)
    4 - forced MBIM mode

Note: the -F parameter value for usb_modeswitch is directly used as
wValue in the control message!


* ResetUSB <0/1>           -R

Few devices or systems need a rougher treatment. If the switching seems
to do something but your system does not reflect it, try this somewhat
brutal method to do a reset after switching. May also be useful for
all kinds of experiments


* Configuration            -u <hex number>

Some devices are doing the "right" thing and provide different layouts
in the standard-compliant way. They don't "restart", so don't have to be
rediscovered by the system after the change. Strictly speaking, they are
not doing a mode switch


* Interface                -i <hex number>
* AltSetting               -a <hex number>

More USB parameter to help with tricky devices and for doing lots
of cruel experiments; usually not needed ...


Note:
AltSetting/Configuration changes and ResetUSB are executed after all
other steps and can be combined or used on their own (e.g. a reset
might have the same effect as a manual replug)


* InquireDevice <0|1>      -I (enables inquiry)

Formerly printed out SCSI device attributes. Obsolete and ignored since
usb_modeswitch version 2.3.0.


* CheckSuccess             -s <number>

Check continuously if the switch succeeded for max <number> seconds.
If the target ID is given, the check waits for it to appear.
Otherwise, the check waits for the device to "go away"; most devices
vanish after switching and can't be accessed anymore. It also checks
the bus/device count, trying to determine if the device "came back"

Note: this feature is not used in the full-featured Linux package of
usb_modeswitch where the success check is done by the wrapper script


* NoDriverLoading <0|1>    (no command line parameter)

(Obsolete, ignored since usb_modeswitch 2.4.0)
The binary tells the wrapper script NOT to check for and initiate
binding of the serial driver after switching.
Mostly useful for non-modem devices and newer modems which do not use
the serial driver.


* WaitBefore <seconds>     (no command line parameter)

Waiting time before taking any action. Helps with some sensitive setups.


* NoMBIMCheck <0|1>        (no command line parameter)

Disable the check for devices providing the MBIM standard; this check
is otherwise done by default. See /etc/usb_modeswitch.conf from the
program package for a global setting regarding this.
The usb_modeswitch wrapper will test if a device has a configuration
according to the MBIM standard. If so, it will search for the matching
kernel driver. It it's available, the device will be configured for
MBIM usage which is preferable to other modes and configurations

--
++++++ usb-modeswitch-2.5.0.tar.bz2 -> usb-modeswitch-2.5.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usb-modeswitch-2.5.0/ChangeLog 
new/usb-modeswitch-2.5.1/ChangeLog
--- old/usb-modeswitch-2.5.0/ChangeLog  2017-01-17 19:22:01.000000000 +0100
+++ new/usb-modeswitch-2.5.1/ChangeLog  2017-08-06 14:29:01.000000000 +0200
@@ -2,6 +2,14 @@
 History of USB_ModeSwitch
 =========================
 
+Version 2.5.1, 2017/08/06
+    New parameter "HuaweiAltMode", uses an alternative Huawei standard bulk
+    message which will either provide NCM (newer modems) or plain PPP ports
+    (older modems); new option in the global configuration file
+    "HuaweiAltModeGlobal", allowing easy override of "HuwaeiNewMode" with
+    "HuaweiAltMode"; reworked USB configuration switching, configuring a
+    device reset first before setting the target configuration; improved
+    driver detachment, now taking all configured interfaces into account
 Version 2.5.0, 2017/01/17
     ATTENTION: Parameter transmitted from udev now reduced to %k (kernel
     name), however, rules file parameters can be '%b/%k' or '%k' - this
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usb-modeswitch-2.5.0/Makefile 
new/usb-modeswitch-2.5.1/Makefile
--- old/usb-modeswitch-2.5.0/Makefile   2017-01-16 22:15:46.000000000 +0100
+++ new/usb-modeswitch-2.5.1/Makefile   2017-08-02 22:31:05.000000000 +0200
@@ -1,5 +1,5 @@
 PROG        = usb_modeswitch
-VERS        = 2.5.0
+VERS        = 2.5.1
 CC          ?= gcc
 CFLAGS      += -Wall
 LIBS        = `pkg-config --libs --cflags libusb-1.0`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usb-modeswitch-2.5.0/README 
new/usb-modeswitch-2.5.1/README
--- old/usb-modeswitch-2.5.0/README     2017-01-17 20:39:16.000000000 +0100
+++ new/usb-modeswitch-2.5.1/README     2017-08-02 22:30:52.000000000 +0200
@@ -7,7 +7,7 @@
 What it is
 ==========
 
-USB_ModeSwitch is - hardly surprising -  a mode switching tool for controlling
+USB_ModeSwitch is - hardly surprising - a mode switching tool for controlling
 USB devices with multiple "modes". Now, what does THAT mean?
 
 More and more USB devices have their MS Windows drivers onboard; when plugged
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usb-modeswitch-2.5.0/usb_modeswitch.1 
new/usb-modeswitch-2.5.1/usb_modeswitch.1
--- old/usb-modeswitch-2.5.0/usb_modeswitch.1   2016-03-05 11:08:29.000000000 
+0100
+++ new/usb-modeswitch-2.5.1/usb_modeswitch.1   2017-08-06 14:05:15.000000000 
+0200
@@ -9,8 +9,8 @@
 Several new USB devices have their proprietary Windows drivers onboard,
 most of them WWAN and WLAN  dongles. When plugged in for the first time,
 they act like a flash storage and start installing the Windows driver from
-there. If the driver is already installed, it makes the storage device
-disappear and a new device, mainly composite with modem ports, shows up.
+there. If the driver is installed, it makes the storage device disappear
+and a new device, mainly composite (e.g. with modem ports), shows up.
 .PP
 On Linux, in most cases the drivers are available as kernel modules,
 such as "usbserial" or "option". However, the device initially binds to
@@ -24,7 +24,8 @@
 Usually, the program is distributed with a set of configurations for many
 known devices, which allows a fully automatic handling of a device upon
 insertion, made possible by combining usb_modeswitch with the wrapper script
-\fBusb_modeswitch_dispatcher\fR which is launched by the udev daemon.
+\fBusb_modeswitch_dispatcher\fR which is launched by the udev daemon. This
+requires a Linux-flavoured system though.
 .PP
 Note that \fBusb_modeswitch\fR itself has no specific Linux dependencies.
 
@@ -94,6 +95,8 @@
 Send a special control message used by older Huawei devices
 .IP "\fB-J\fP \fB\-\-huawei-new-mode\fP         " 10
 Send a specific bulk message used by all newer Huawei devices
+.IP "\fB-X\fP \fB\-\-huawei-alt-mode\fP         " 10
+Send an alternative bulk message to Huawei devices
 .IP "\fB-S\fP \fB\-\-sierra-mode\fP         " 10
 Send a special control message used by Sierra devices
 .IP "\fB-G\fP \fB\-\-gct-mode\fP         " 10
@@ -169,4 +172,4 @@
 The complete text of the current GNU General Public
 License can be found in http://www.gnu.org/licenses/gpl.txt
 
-.\" last edited 2016-01-11 for version 2.3.0
+.\" last edited 2017-08-06 for version 2.5.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usb-modeswitch-2.5.0/usb_modeswitch.c 
new/usb-modeswitch-2.5.1/usb_modeswitch.c
--- old/usb-modeswitch-2.5.0/usb_modeswitch.c   2017-01-17 08:33:45.000000000 
+0100
+++ new/usb-modeswitch-2.5.1/usb_modeswitch.c   2017-08-06 14:05:37.000000000 
+0200
@@ -1,6 +1,6 @@
 /*
   Mode switching tool for controlling mode of 'multi-state' USB devices
-  Version 2.5.0, 2017/01/17
+  Version 2.5.1, 2017/08/06
 
   Copyright (C) 2007 - 2017 Josua Dietze (mail to "usb_admin" at the domain
   of the home page; or write a personal message through the forum to "Josh".
@@ -45,7 +45,7 @@
 
 /* Recommended tab size: 4 */
 
-#define VERSION "2.5.0"
+#define VERSION "2.5.1"
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -139,6 +139,7 @@
 #define PANTECH_MODE           0x00001000
 #define HUAWEINEW_MODE         0x00002000
 #define OPTION_MODE                    0x00004000
+#define HUAWEIALT_MODE         0x00008000
 
 
 int PantechMode=0;
@@ -158,7 +159,7 @@
 FILE *output;
 
 
-/* Settable Interface and Configuration (for debugging mostly) (jmw) */
+/* Settable interface, altsetting (for debugging mostly) and configuration */
 int Interface = -1, Configuration = 0, AltSetting = -1;
 
 
@@ -181,6 +182,7 @@
        {"detach-only",                 no_argument, 0, 'd'},
        {"huawei-mode",                 no_argument, 0, 'H'},
        {"huawei-new-mode",             no_argument, 0, 'J'},
+       {"huawei-alt-mode",             no_argument, 0, 'X'},
        {"sierra-mode",                 no_argument, 0, 'S'},
        {"sony-mode",                   no_argument, 0, 'O'},
        {"qisda-mode",                  no_argument, 0, 'B'},
@@ -223,6 +225,7 @@
        ParseParamBoolMap(configFilename, DetachStorageOnly, ModeMap, 
DETACHONLY_MODE);
        ParseParamBoolMap(configFilename, HuaweiMode, ModeMap, HUAWEI_MODE);
        ParseParamBoolMap(configFilename, HuaweiNewMode, ModeMap, 
HUAWEINEW_MODE);
+       ParseParamBoolMap(configFilename, HuaweiAltMode, ModeMap, 
HUAWEIALT_MODE);
        ParseParamBoolMap(configFilename, SierraMode, ModeMap, SIERRA_MODE);
        ParseParamBoolMap(configFilename, SonyMode, ModeMap, SONY_MODE);
        ParseParamBoolMap(configFilename, GCTMode, ModeMap, GCT_MODE);
@@ -283,6 +286,8 @@
                fprintf (output,"HuaweiMode=1\n");
        if (ModeMap & HUAWEINEW_MODE)
                fprintf (output,"HuaweiNewMode=1\n");
+       if (ModeMap & HUAWEIALT_MODE)
+               fprintf (output,"HuaweiAltMode=1\n");
        if (ModeMap & SIERRA_MODE)
                fprintf (output,"SierraMode=1\n");
        if (ModeMap & SONY_MODE)
@@ -343,7 +348,7 @@
 
        while (1)
        {
-               c = getopt_long (argc, argv, 
"hejWQDndKHJSOBEGTNALZUF:RItv:p:V:P:C:m:M:2:3:w:r:c:i:u:a:s:f:b:g:",
+               c = getopt_long (argc, argv, 
"hejWQDndKHJSOBEGTNALZUXF:RItv:p:V:P:C:m:M:2:3:w:r:c:i:u:a:s:f:b:g:",
                                        long_options, &option_index);
 
                /* Detect the end of the options. */
@@ -369,6 +374,7 @@
                        case 'd': ModeMap = ModeMap + DETACHONLY_MODE; break;
                        case 'H': ModeMap = ModeMap + HUAWEI_MODE; break;
                        case 'J': ModeMap = ModeMap + HUAWEINEW_MODE; break;
+                       case 'X': ModeMap = ModeMap + HUAWEIALT_MODE; break;
                        case 'S': ModeMap = ModeMap + SIERRA_MODE; break;
                        case 'O': ModeMap = ModeMap + SONY_MODE; break;; break;
                        case 'B': ModeMap = ModeMap + QISDA_MODE; break;
@@ -429,7 +435,7 @@
 int main(int argc, char **argv)
 {
        int ret=0, numDefaults=0, sonySuccess=0, i;
-       int currentConfigVal=0, defaultClass=0, interfaceClass=0;
+       int defaultClass=0, interfaceClass=0, currentConfigVal=0;
        struct libusb_device_descriptor descriptor;
        enum libusb_error libusbError;
 
@@ -598,8 +604,8 @@
                }
 
        if ((strlen(MessageContent) && strncmp("55534243",MessageContent,8) == 
0)
-                       || StandardEject || ModeMap & HUAWEINEW_MODE || ModeMap 
& CISCO_MODE
-                       || ModeMap & OPTION_MODE)
+                       || StandardEject || ModeMap & HUAWEINEW_MODE || ModeMap 
& HUAWEIALT_MODE
+                       || ModeMap & CISCO_MODE || ModeMap & OPTION_MODE)
                if (defaultClass != 8) {
                        fprintf(stderr, "Error: can't use storage command in 
MessageContent with interface %d; "
                                "interface class is %d, expected 8. Abort\n\n", 
Interface, defaultClass);
@@ -608,7 +614,8 @@
 
        /* Check or get endpoints and alloc message list if needed*/
        if (strlen(MessageContent) || StandardEject || ModeMap & CISCO_MODE
-                               || ModeMap & HUAWEINEW_MODE || ModeMap & 
OPTION_MODE) {
+                               || ModeMap & HUAWEINEW_MODE || ModeMap & 
HUAWEIALT_MODE
+                               || ModeMap & OPTION_MODE) {
 
                Messages = (char**) calloc(MSG_DIM, sizeof(char*));
                for (i = 0; i < MSG_DIM; i++) {
@@ -633,7 +640,7 @@
 
        }
 
-       if (show_progress) {
+       if (verbose) {
                fprintf(output,"\nUSB description data (for identification)\n");
                deviceDescription();
        }
@@ -672,7 +679,7 @@
 
        if (ModeMap & DETACHONLY_MODE) {
                SHOW_PROGRESS(output,"Detach storage driver as switching method 
...\n");
-               ret = detachDriver();
+               ret = detachDrivers();
                if (ret == 2)
                        SHOW_PROGRESS(output," You may want to remove the 
storage driver manually\n");
        }
@@ -684,14 +691,14 @@
                switchSierraMode();
        }
        if(ModeMap & GCT_MODE) {
-               detachDriver();
+               detachDrivers();
                switchGCTMode();
        }
        if(ModeMap & QISDA_MODE) {
                switchQisdaMode();
        }
        if(ModeMap & KOBIL_MODE) {
-               detachDriver();
+               detachDrivers();
                switchKobilMode();
        }
        if(ModeMap & QUANTA_MODE) {
@@ -704,15 +711,15 @@
                switchActionMode();
        }
        if(ModeMap & CISCO_MODE) {
-               detachDriver();
+               detachDrivers();
                switchCiscoMode();
        }
        if(ModeMap & BLACKBERRY_MODE) {
-               detachDriver();
+               detachDrivers();
            switchBlackberryMode();
        }
        if(ModeMap & PANTECH_MODE) {
-               detachDriver();
+               detachDrivers();
                if (PantechMode > 1)
                        switchPantechMode();
                else
@@ -727,7 +734,7 @@
 
        if (StandardEject) {
                SHOW_PROGRESS(output,"Sending standard EJECT sequence\n");
-               detachDriver();
+               detachDrivers();
 
                
strcpy(Messages[0],"5553424387654321000000000000061e000000000000000000000000000000");
                
strcpy(Messages[1],"5553424397654321000000000000061b000000020000000000000000000000");
@@ -739,17 +746,21 @@
                switchSendMessage();
        } else if (ModeMap & HUAWEINEW_MODE) {
                SHOW_PROGRESS(output,"Using standard Huawei switching 
message\n");
-               detachDriver();
+               detachDrivers();
                
strcpy(Messages[0],"55534243123456780000000000000011062000000101000100000000000000");
                switchSendMessage();
+       } else if (ModeMap & HUAWEIALT_MODE) {
+               SHOW_PROGRESS(output,"Using alternative Huawei switching 
message\n");
+               detachDrivers();
+               
strcpy(Messages[0],"55534243123456780000000000000011063000000000010000000000000000");
+               switchSendMessage();
        } else if (ModeMap & OPTION_MODE) {
                SHOW_PROGRESS(output,"Using standard Option switching 
message\n");
-               detachDriver();
-//             
strcpy(MessageContent,"55534243123456780100000080000601000000000000000000000000000000");
+               detachDrivers();
                
strcpy(Messages[0],"55534243123456780000000000000601000000000000000000000000000000");
                switchSendMessage();
        } else if (strlen(MessageContent)) {
-               detachDriver();
+               detachDrivers();
                strcpy(Messages[0],MessageContent);
                switchSendMessage();
        }
@@ -765,7 +776,9 @@
                                }
                        }
                } else {
-                       SHOW_PROGRESS(output,"Target configuration %d found. Do 
nothing\n", currentConfigVal);
+                       SHOW_PROGRESS(output,"Target configuration %d already 
active. Nothing to do. Bye!\n\n", currentConfigVal);
+                       close_all();
+                       exit(0);
                }
        }
 
@@ -1006,13 +1019,14 @@
                        // UFI command
                        SHOW_PROGRESS(output,"Read the response to message %d 
(CSW) ...\n", i+1);
                        ret = read_bulk(ResponseEndpoint, ByteString, 13);
-                       if (ret >= 0)
+                       if (ret >= 0) {
                                SHOW_PROGRESS(output,", status 
%d",ByteString[12]);
-               } else {
+                       }
+               } /* else {
                        // Other bulk transfer
                        SHOW_PROGRESS(output,"Read the response to message %d 
...\n", i+1);
                        ret = read_bulk(ResponseEndpoint, ByteString, 
strlen(Messages[i])/2 );
-               }
+               }*/
                SHOW_PROGRESS(output,"\n");
                if (ret == LIBUSB_TRANSFER_STALL && retries--) {
                        SHOW_PROGRESS(output,"Endpoint stalled. Resetting 
...\n");
@@ -1052,14 +1066,18 @@
 
 int switchConfiguration ()
 {
-       int ret, count = SWITCH_CONFIG_MAXTRIES;
+       int ret;
 
        SHOW_PROGRESS(output,"Change configuration to %i ...\n", Configuration);
-       while (((ret = libusb_set_configuration(devh, Configuration)) < 0) && 
--count) {
-               SHOW_PROGRESS(output," Device is busy, try to detach kernel 
driver\n");
-               detachDriver();
+       detachDrivers();
+       ret = libusb_set_configuration(devh, -1);
+       if (ret < 0) {
+               SHOW_PROGRESS(output," Resetting the configuration failed 
(error %d). Try to continue\n", ret);
        }
-       if (ret < 0 ) {
+       /* Empirically tested wait period, improves reliability of 
configuration change */
+       usleep(100000);
+       ret = libusb_set_configuration(devh, Configuration);
+       if (ret < 0) {
                SHOW_PROGRESS(output," Changing the configuration failed (error 
%d). Try to continue\n", ret);
                return 0;
        } else {
@@ -1374,7 +1392,7 @@
 int switchSonyMode ()
 {
        int ret, i, found;
-       detachDriver();
+       detachDrivers();
 
        if (CheckSuccess) {
                CheckSuccess = 0;
@@ -1441,34 +1459,41 @@
 
 /* Detach driver
  */
-int detachDriver()
+int detachDrivers()
 {
 
-       int ret;
-       SHOW_PROGRESS(output,"Looking for active driver ...\n");
+       int i, ret;
+       SHOW_PROGRESS(output,"Looking for active drivers ...\n");
        ret = libusb_kernel_driver_active(devh, 0);
        if (ret == LIBUSB_ERROR_NOT_SUPPORTED) {
                fprintf(output," Can't do driver detection on this 
platform.\n");
                return 2;
        }
-       if (ret < 0) {
-               fprintf(output," Driver check failed with error %d. Try to 
continue\n", ret);
-               return 2;
-       }
-       if (ret == 0) {
-               SHOW_PROGRESS(output," No active driver found. Detached before 
or never attached\n");
-               return 1;
-       }
 
-       ret = libusb_detach_kernel_driver(devh, Interface);
-       if (ret == LIBUSB_ERROR_NOT_SUPPORTED) {
-               fprintf(output," Can't do driver detaching on this 
platform.\n");
-               return 2;
+       struct libusb_config_descriptor *config;
+       libusb_get_active_config_descriptor(dev, &config);
+
+       for (i=0; i<config->bNumInterfaces; i++) {
+               ret = libusb_kernel_driver_active(devh, i);
+               if (ret < 0) {
+                       SHOW_PROGRESS(output," Failed to check driver status 
for interface %d (error %d)\n Try to continue\n",i,ret);
+                       continue;
+               }
+               if (ret) {
+                       ret = libusb_detach_kernel_driver(devh, i);
+                       if (ret == LIBUSB_ERROR_NOT_SUPPORTED) {
+                               fprintf(output," Can't do driver detaching on 
this platform.\n");
+                               return 2;
+                       }
+                       if (ret == 0) {
+                               SHOW_PROGRESS(output," OK, driver detached\n");
+                       } else {
+                               SHOW_PROGRESS(output," Driver detach failed for 
interface %d (error %d).\n Try to continue\n",i,ret);
+                               continue;
+                       }
+               }
        }
-       if (ret == 0) {
-               SHOW_PROGRESS(output," OK, driver detached\n");
-       } else
-               SHOW_PROGRESS(output," Driver detach failed (error %d). Try to 
continue\n", ret);
+       libusb_free_config_descriptor(config);
        return 1;
 }
 
@@ -1732,7 +1757,8 @@
                        product <<= 8;
                        product += (unsigned char)buffer[1];
                        if (product == descriptor.idProduct) {
-                               SHOW_PROGRESS(output,"   product ID matched\n");
+                               if (verbose)
+                                       fprintf(output,"   product ID 
matched\n");
 
                                if (targetClass != 0) {
                                        // TargetClass is set, check class of 
first interface
@@ -1770,7 +1796,7 @@
                                                                fprintf 
(output,"   count device\n");
                                                }
                                        }
-                               } else if (configuration > 0) {
+/*                             } else if (configuration > 0) {
                                        // Configuration parameter is set, 
check device configuration
                                        int testconfig = 
get_current_config_value(dev);
                                        if (testconfig != configuration) {
@@ -1785,6 +1811,7 @@
                                        } else
                                                if (verbose)
                                                        fprintf (output,"   
device not counted, target configuration reached\n");
+*/
                                } else {
                                        // Neither TargetClass nor 
Configuration are set
                                        (*numFound)++;
@@ -2082,6 +2109,7 @@
        " -d, --detach-only             detach the active driver, no further 
action\n"
        " -H, --huawei-mode             apply a special procedure\n"
        " -J, --huawei-new-mode         apply a special procedure\n"
+       " -X, --huawei-alt-mode         apply a special procedure\n"
        " -S, --sierra-mode             apply a special procedure\n"
        " -O, --sony-mode               apply a special procedure\n"
        " -G, --gct-mode                apply a special procedure\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usb-modeswitch-2.5.0/usb_modeswitch.conf 
new/usb-modeswitch-2.5.1/usb_modeswitch.conf
--- old/usb-modeswitch-2.5.0/usb_modeswitch.conf        2017-01-17 
21:12:11.000000000 +0100
+++ new/usb-modeswitch-2.5.1/usb_modeswitch.conf        2017-08-06 
14:15:03.000000000 +0200
@@ -13,7 +13,8 @@
 DisableSwitching=0
 
 # Disable check for MBIM module presence and configuration globally (to aid
-# special embedded environments)
+# special embedded environments). Available as per-device parameter
+# 'NoMBIMCheck'
 
 DisableMBIMGlobal=0
 
@@ -22,10 +23,18 @@
 
 EnableLogging=0
 
-
 # Optional increase of "delay_use" for the usb-storage driver; there are hints
 # that a recent kernel default change to 1 sec. may lead to problems, particu-
 # larly with USB 3.0 ports. Set this to at least 3 (seconds) in that case.
 # Does nothing if the current system value is same or higher
 
 #SetStorageDelay=4
+
+# If the configuration for your Huawei modem uses the standard switching 
method,
+# you can globally set an alternative method here which provides a different 
mode:
+# either plain serial PPP (for older modems) or NCM which integrates nicely
+# with recent Linux distributions, possibly avoiding configuration through a
+# modem built-in web page. All other modems are not affected.
+# Available as per-device parameter 'AltHuaweiMode'
+
+HuaweiAltModeGlobal=0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usb-modeswitch-2.5.0/usb_modeswitch.h 
new/usb-modeswitch-2.5.1/usb_modeswitch.h
--- old/usb-modeswitch-2.5.0/usb_modeswitch.h   2016-03-05 11:08:29.000000000 
+0100
+++ new/usb-modeswitch-2.5.1/usb_modeswitch.h   2017-08-06 14:15:20.000000000 
+0200
@@ -2,8 +2,8 @@
   This file is part of usb_modeswitch, a mode switching tool for controlling
   the mode of 'multi-state' USB devices
 
-  Version 2.3.0, 2016/01/12
-  Copyright (C) 2007 - 2016  Josua Dietze
+  Version 2.5.1, 2017/08/06
+  Copyright (C) 2007 - 2017  Josua Dietze
 
   Config file parsing stuff borrowed from Guillaume Dargaud
   (http://www.gdargaud.net/Hack/SourceCode.html)
@@ -43,7 +43,7 @@
 void switchPantechMode();
 void switchCiscoMode();
 int switchSonyMode();
-int detachDriver();
+int detachDrivers();
 int checkSuccess();
 int sendMessage(char* message, int count);
 int write_bulk(int endpoint, unsigned char *message, int length);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usb-modeswitch-2.5.0/usb_modeswitch.sh 
new/usb-modeswitch-2.5.1/usb_modeswitch.sh
--- old/usb-modeswitch-2.5.0/usb_modeswitch.sh  2017-01-17 20:57:50.000000000 
+0100
+++ new/usb-modeswitch-2.5.1/usb_modeswitch.sh  2017-08-06 14:15:26.000000000 
+0200
@@ -1,5 +1,5 @@
 #!/bin/sh
-# part of usb_modeswitch 2.5.0
+# part of usb_modeswitch 2.5.1
 device_in()
 {
        if [ ! -e /var/lib/usb_modeswitch/$1 ]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usb-modeswitch-2.5.0/usb_modeswitch.tcl 
new/usb-modeswitch-2.5.1/usb_modeswitch.tcl
--- old/usb-modeswitch-2.5.0/usb_modeswitch.tcl 2017-01-17 20:41:33.000000000 
+0100
+++ new/usb-modeswitch-2.5.1/usb_modeswitch.tcl 2017-08-06 14:15:36.000000000 
+0200
@@ -9,7 +9,7 @@
 # the mode switching program with the matching parameter
 # file from /usr/share/usb_modeswitch
 #
-# Part of usb-modeswitch-2.5.0 package
+# Part of usb-modeswitch-2.5.1 package
 # (C) Josua Dietze 2009-2017
 
 set arg0 [lindex $argv 0]
@@ -27,9 +27,12 @@
 set flags(logging) 1
 set flags(noswitching) 0
 set flags(stordelay) 0
+set flags(nombim) 0
+
 set flags(logwrite) 0
 # also settable in device config files
 set flags(nombim) 0
+set flags(althuawei) 0
 
 # Execution starts at file bottom
 
@@ -246,6 +249,10 @@
 if [regexp -nocase $flags(os) $flags(config)] {
        Log "Note: Using generic manufacturer configuration for \"$flags(os)\""
 }
+if $flags(althuawei) {
+       regsub {HuaweiNewMode} $flags(config) {HuaweiAltMode} flags(config)
+       Log "Alternative Huawei mode set globally, modify config"
+}
 if $flags(nombim) {
        set config(NoMBIMCheck) 1
 }
@@ -509,8 +516,6 @@
        if [regexp {DisableMBIMGlobal\s*=\s*([^\s]+)} $line d val] {
                if [regexp -nocase {1|yes|true} $val] {
                        set flags(nombim) 1
-               } else {
-                       set flags(nombim) 0
                }
        }
        if [regexp {DisableSwitching\s*=\s*([^\s]+)} $line d val] {
@@ -519,9 +524,7 @@
                }
        }
        if [regexp {EnableLogging\s*=\s*([^\s]+)} $line d val] {
-               if [regexp -nocase {1|yes|true} $val] {
-                       set flags(logging) 1
-               } else {
+               if [regexp -nocase {0|no|false} $val] {
                        set flags(logging) 0
                }
        }
@@ -530,6 +533,11 @@
                        set flags(stordelay) $val
                }
        }
+       if [regexp {HuaweiAltModeGlobal\s*=\s*([^\s]+)} $line d val] {
+               if [regexp -nocase {1|yes|true} $val] {
+                       set flags(althuawei) 1
+               }
+       }
 
 }
 return "Use global config file: $configFile"
@@ -796,7 +804,7 @@
 
 set expected 1
 for {set i 1} {$i <= $config(CheckSuccess)} {incr i} {
-       after 1000
+       after 1000 
        if {![file isdirectory $devdir]} {
                Log " Wait for device file system ($i sec.) ..."
                continue
@@ -814,19 +822,19 @@
                if {$usb(bConfigurationValue) != $config(Configuration)} 
{continue}
        }
        if [string length $config(TargetClass)] {
-               if {![regexp $usb($ifdir/bInterfaceClass) 
$config(TargetClass)]} {
+               if {![regexp -nocase $usb($ifdir/bInterfaceClass) 
$config(TargetClass)]} {
                        if {$config(class) != $usb($ifdir/bInterfaceClass} {
                                set expected 0
                        } else {continue}
                }
        }
-       if {![regexp $usb(idVendor) $config(TargetVendor)]} {
-               if {![regexp $usb(idVendor) $config(vendor)]} {
+       if {![regexp -nocase $usb(idVendor) $config(TargetVendor)]} {
+               if {![regexp -nocase $usb(idVendor) $config(vendor)]} {
                        set expected 0
                } else {continue}
        }
-       if {![regexp $usb(idProduct) $config(TargetProduct)]} {
-               if {![regexp $usb(idProduct) $config(product)]} {
+       if {![regexp -nocase $usb(idProduct) $config(TargetProduct)]} {
+               if {![regexp -nocase $usb(idProduct) $config(product)]} {
                        set expected 0
                } else {continue}
        }
@@ -837,8 +845,12 @@
                if [regexp -nocase {/[0-9a-f]+:#} $flags(config)] {
                        Log " idProduct has changed after generic mode-switch, 
assume success"
                } else {
-                       Log " Attributes are different but target values are 
unexpected:"
-                       LogAttributes
+                       if [regexp {HuaweiAltMode} $flags(config)] {
+                               Log " Alternative target attributes found, 
assume success"
+                       } else {
+                               Log " Attributes are different but target 
values are unexpected:"
+                               LogAttributes
+                       }
                }
        }
        break

++++++ usb-modeswitch-data-20170205.tar.bz2 -> 
usb-modeswitch-data-20170806.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usb-modeswitch-data-20170205/40-usb_modeswitch.rules 
new/usb-modeswitch-data-20170806/40-usb_modeswitch.rules
--- old/usb-modeswitch-data-20170205/40-usb_modeswitch.rules    2017-02-05 
10:18:50.000000000 +0100
+++ new/usb-modeswitch-data-20170806/40-usb_modeswitch.rules    2017-08-06 
16:11:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Part of usb-modeswitch-data, version 20170205
+# Part of usb-modeswitch-data, version 20170805
 #
 # Works with usb_modeswitch versions >= 2.4.0. Slash before %k parameter
 # is for compatibility only. Versions >= 2.5.0 don't need it.
@@ -12,7 +12,7 @@
 SUBSYSTEM!="usb", ACTION!="add",, GOTO="modeswitch_rules_end"
 
 # Generic entry for most Huawei devices, excluding Android phones
-ATTRS{idVendor}=="12d1", ATTRS{manufacturer}!="Android", 
ATTR{bInterfaceNumber}=="00", ATTR{bInterfaceClass}=="08", RUN+="usb_modeswitch 
'/%k'"
+ATTRS{idVendor}=="12d1", ATTRS{manufacturer}!="Android", 
ATTR{bInterfaceNumber}=="00", ATTR{bInterfaceClass}=="08", RUN+="usb_modeswitch 
'%b/%k'"
 
 # HP LaserJet Professional P1102
 ATTR{idVendor}=="03f0", ATTR{idProduct}=="002a", RUN+="usb_modeswitch '/%k'"
@@ -149,7 +149,7 @@
 # Axesstel Modems (w/ initial idProduct 0x0010)
 ATTR{idVendor}=="05c6", ATTR{idProduct}=="0010", RUN+="usb_modeswitch '/%k'"
 
-# Option GlobeTrotter GX0201, Older Option devices, AnyDATA devices, Bless 
UC165, Celot K-300 a.o., TechFaith Venus VT-18, Celot CT-680, Quirky Option 
devices, Samsung SGH-Z810, Prolink P2000 CDMA, StrongRising device, Vertex 
Wireless 100 Series
+# Samsung SGH-Z810, Option GlobeTrotter GX0201, Celot K-300 a.o., Celot 
CT-680, Older Option devices, AnyDATA devices, Bless UC165, StrongRising 
device, Prolink P2000 CDMA, TechFaith Venus VT-18, Vertex Wireless 100 Series
 ATTR{idVendor}=="05c6", ATTR{idProduct}=="1000", RUN+="usb_modeswitch '/%k'"
 
 # Various USB modems
@@ -413,7 +413,7 @@
 # Mobile Action ("Smart Cable")
 ATTR{idVendor}=="0df7", ATTR{idProduct}=="0800", RUN+="usb_modeswitch '/%k'"
 
-# MediaTek MT6276M and others, MediaTek/Medion S4222 and probably others
+# MediaTek/Medion S4222 and probably others, MediaTek MT6276M and others
 ATTR{idVendor}=="0e8d", ATTR{idProduct}=="0002", RUN+="usb_modeswitch '/%k'"
 
 # MediaTek Wimax USB Card
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usb-modeswitch-data-20170205/ChangeLog 
new/usb-modeswitch-data-20170806/ChangeLog
--- old/usb-modeswitch-data-20170205/ChangeLog  2017-02-05 10:21:57.000000000 
+0100
+++ new/usb-modeswitch-data-20170806/ChangeLog  2017-08-06 17:25:15.000000000 
+0200
@@ -1,3 +1,9 @@
+20170806:
+    Added devices: [03f0:371d] HP un2430, [03f0:4b1d] HP hs2434, [03f0:4e1d]
+    HP lt4111, [03f0:a31d] HP lt4132, [0846:0fff] Netgear AirCard 779S,
+    [12d1:15ec] Vodafone/Huawei K5150; Corrected/amended configs: [0922:1003]
+    Dymo LabelManager 420P, [0922:1007] Dymo LabelManager Wireless PnP,
+    [1199:0fff] Sierra devices; Removed configs: [1004:61aa] LG VL600
 20170205:
     Bugfix release: removed all catch-all fallback config files as they can
     affect unrelated devices - fixes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usb-modeswitch-data-20170205/Makefile 
new/usb-modeswitch-data-20170806/Makefile
--- old/usb-modeswitch-data-20170205/Makefile   2017-02-05 10:07:51.000000000 
+0100
+++ new/usb-modeswitch-data-20170806/Makefile   2017-08-06 16:46:39.000000000 
+0200
@@ -1,5 +1,5 @@
 PROG        = usb-modeswitch-data
-VERS        = 20170205
+VERS        = 20170806
 RM          = /bin/rm -f
 PREFIX      = $(DESTDIR)/usr
 ETCDIR      = $(DESTDIR)/etc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usb-modeswitch-data-20170205/REFERENCE 
new/usb-modeswitch-data-20170806/REFERENCE
--- old/usb-modeswitch-data-20170205/REFERENCE  2016-08-03 19:37:09.000000000 
+0200
+++ new/usb-modeswitch-data-20170806/REFERENCE  2017-08-06 16:50:53.000000000 
+0200
@@ -1,7 +1,7 @@
 Configuration File Reference for USB_ModeSwitch
 -----------------------------------------------
 
-Last modified: 2016-08-03
+Last modified: 2017-08-06
 
 
 
@@ -114,6 +114,14 @@
 message; use MessageContent for these
 
 
+* HuaweiAltMode <0/1>      -X
+
+An alternative to the Huawei standard, recommended by the manufacturer for
+the Android OS. Sends a different bulk message which brings newer modems
+into NCM mode (well supported in Linux) and older ones into plain PPP mode.
+Also globally settable with HuaweiAltModeGlobal in /etc/usb_modeswitch.conf
+
+
 * OptionMode <0/1>         -U
 
 The standard for all devices by Option. Sends a specific bulk message
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usb-modeswitch-data-20170205/gen-rules.tcl 
new/usb-modeswitch-data-20170806/gen-rules.tcl
--- old/usb-modeswitch-data-20170205/gen-rules.tcl      2017-02-05 
10:07:20.000000000 +0100
+++ new/usb-modeswitch-data-20170806/gen-rules.tcl      2017-08-06 
15:45:21.000000000 +0200
@@ -11,7 +11,7 @@
 
 
 # Default version string
-set version "20170205"
+set version "20170806"
 
 # Devices excluded from Huawei catch-all rule
 set x_huaweiList {12d1:1573 12d1:15c1}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/usb-modeswitch-data-20170205/usb_modeswitch.d/03f0:371d 
new/usb-modeswitch-data-20170806/usb_modeswitch.d/03f0:371d
--- old/usb-modeswitch-data-20170205/usb_modeswitch.d/03f0:371d 1970-01-01 
01:00:00.000000000 +0100
+++ new/usb-modeswitch-data-20170806/usb_modeswitch.d/03f0:371d 2017-08-04 
20:41:09.000000000 +0200
@@ -0,0 +1,2 @@
+# HP un2430
+Configuration=0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/usb-modeswitch-data-20170205/usb_modeswitch.d/03f0:4b1d 
new/usb-modeswitch-data-20170806/usb_modeswitch.d/03f0:4b1d
--- old/usb-modeswitch-data-20170205/usb_modeswitch.d/03f0:4b1d 1970-01-01 
01:00:00.000000000 +0100
+++ new/usb-modeswitch-data-20170806/usb_modeswitch.d/03f0:4b1d 2017-08-04 
20:41:32.000000000 +0200
@@ -0,0 +1,2 @@
+# HP hs2434
+Configuration=0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/usb-modeswitch-data-20170205/usb_modeswitch.d/03f0:4e1d 
new/usb-modeswitch-data-20170806/usb_modeswitch.d/03f0:4e1d
--- old/usb-modeswitch-data-20170205/usb_modeswitch.d/03f0:4e1d 1970-01-01 
01:00:00.000000000 +0100
+++ new/usb-modeswitch-data-20170806/usb_modeswitch.d/03f0:4e1d 2017-08-04 
20:42:31.000000000 +0200
@@ -0,0 +1,2 @@
+# HP lt4111
+Configuration=0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/usb-modeswitch-data-20170205/usb_modeswitch.d/03f0:a31d 
new/usb-modeswitch-data-20170806/usb_modeswitch.d/03f0:a31d
--- old/usb-modeswitch-data-20170205/usb_modeswitch.d/03f0:a31d 1970-01-01 
01:00:00.000000000 +0100
+++ new/usb-modeswitch-data-20170806/usb_modeswitch.d/03f0:a31d 2017-08-04 
20:43:05.000000000 +0200
@@ -0,0 +1,2 @@
+# HP lt4132
+Configuration=0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/usb-modeswitch-data-20170205/usb_modeswitch.d/0846:0fff 
new/usb-modeswitch-data-20170806/usb_modeswitch.d/0846:0fff
--- old/usb-modeswitch-data-20170205/usb_modeswitch.d/0846:0fff 1970-01-01 
01:00:00.000000000 +0100
+++ new/usb-modeswitch-data-20170806/usb_modeswitch.d/0846:0fff 2017-08-04 
20:38:05.000000000 +0200
@@ -0,0 +1,4 @@
+# Netgear AirCard 779S
+TargetVendor= 0x0846
+TargetProduct=0x68d3
+SierraMode=1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/usb-modeswitch-data-20170205/usb_modeswitch.d/0922:1003 
new/usb-modeswitch-data-20170806/usb_modeswitch.d/0922:1003
--- old/usb-modeswitch-data-20170205/usb_modeswitch.d/0922:1003 2016-08-02 
19:50:16.000000000 +0200
+++ new/usb-modeswitch-data-20170806/usb_modeswitch.d/0922:1003 2017-08-06 
17:23:33.000000000 +0200
@@ -1,6 +1,8 @@
 # Dymo LabelManager 420P
 TargetVendor= 0x0922
 TargetProduct= 0x1004
+MessageEndpoint=0x01
+ResponseEndpoint=0x01
 MessageContent="1b5a01"
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/usb-modeswitch-data-20170205/usb_modeswitch.d/0922:1007 
new/usb-modeswitch-data-20170806/usb_modeswitch.d/0922:1007
--- old/usb-modeswitch-data-20170205/usb_modeswitch.d/0922:1007 2016-08-02 
19:50:16.000000000 +0200
+++ new/usb-modeswitch-data-20170806/usb_modeswitch.d/0922:1007 2017-08-06 
17:23:41.000000000 +0200
@@ -1,6 +1,8 @@
 # Dymo LabelManager Wireless PnP
 TargetVendor= 0x0922
 TargetProduct= 0x1008
+MessageEndpoint=0x01
+ResponseEndpoint=0x01
 MessageContent="1b5a01"
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/usb-modeswitch-data-20170205/usb_modeswitch.d/1004:61aa 
new/usb-modeswitch-data-20170806/usb_modeswitch.d/1004:61aa
--- old/usb-modeswitch-data-20170205/usb_modeswitch.d/1004:61aa 2016-03-05 
11:08:30.000000000 +0100
+++ new/usb-modeswitch-data-20170806/usb_modeswitch.d/1004:61aa 1970-01-01 
01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-# LG VL600
-TargetVendor=0x1004
-TargetProduct=0x61a7
-StandardEject=1
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/usb-modeswitch-data-20170205/usb_modeswitch.d/12d1:15ec 
new/usb-modeswitch-data-20170806/usb_modeswitch.d/12d1:15ec
--- old/usb-modeswitch-data-20170205/usb_modeswitch.d/12d1:15ec 1970-01-01 
01:00:00.000000000 +0100
+++ new/usb-modeswitch-data-20170806/usb_modeswitch.d/12d1:15ec 2017-08-04 
20:29:30.000000000 +0200
@@ -0,0 +1,4 @@
+# Vodafone/Huawei K5150
+TargetVendor=0x12d1
+TargetProduct=0x1c26
+HuaweiNewMode=1


Reply via email to