Re: [PATCH] cdc_acm: blacklist Samsung Phones in firmware update mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2016-01-04 at 12:32 +0700, Lars Melin wrote:
> On 2016-01-04 05:00, Jose Alonso wrote:
> >
> > The program Heimdall (http://glassechidna.com.au/heimdall) is used
> > to flash a new firmware in Samsung Mobile Phones. It uses only the
> > library libusb to access the device.
> >
> > The module "cdc_acm" recognizes it as CDC ACM device, creates a
> > device /dev/ttyACM* and send a USB_CDC_REQ_SET_LINE_CODING. Then,
> > for some phones when Heimdall call libusb_set_interface_alt_setting
> > or libusb_get_string_descriptor_ascii the device locks.
> > Also, the ModemManager initialization locks the device.
> >
> > There are 3 devices used by Samsung in firmware update mode:
> > idVendor=0x04e8  idProduct=0x6601 idProduct=0x685d IdProduct=0x68c3
> > source:
> > (https://github.com/Benjamin-Dobell/Heimdall/blob/master/heimdall/
> >           source/BridgeManager.h)
> >
> > Signed-off-by: Jose Alonso <joalonsof@xxxxxxxxx>
> > ---
> >   drivers/usb/class/cdc-acm.c | 11 +++++++++++
> >   1 file changed, 11 insertions(+)
> >
> > diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
> > index 26ca4f9..8728afc 100644
> > --- a/drivers/usb/class/cdc-acm.c
> > +++ b/drivers/usb/class/cdc-acm.c
> > @@ -1843,6 +1843,17 @@ static const struct usb_device_id acm_ids[] = {
> >   	.driver_info = IGNORE_DEVICE,
> >   	},
> >
> > +	/* Exclude Samsung Mobile Phones in firmware update mode */
> > +	{ USB_DEVICE(0x04e8, 0x6601),
> > +	.driver_info = IGNORE_DEVICE,
> > +	},
> > +	{ USB_DEVICE(0x04e8, 0x685d),
> > +	.driver_info = IGNORE_DEVICE,
> > +	},
> > +	{ USB_DEVICE(0x04e8, 0x68c3),
> > +	.driver_info = IGNORE_DEVICE,
> > +	},
> > +
> >   	/* control interfaces without any protocol set */
> >   	{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
> >   		USB_CDC_PROTO_NONE) },
> > --
> 
> NAK
> 
> 04e8:6601 is also used for Samsung SCH-U209 CDMA modem so can not be 
> ignored.
> 04e8:685d is an update mode id so it can be ignored by cdc-acm.
> 04e8:68c3 does not look like update mode, it has cdc-acm modem and 
> cdc-acm device management interfaces.

Ok, there is trouble. And some stupid vendors. Jose, could
you break up this patch intro three parts?
Lars, do you have any sure information about 04e8:68c3?
04e8:6601 may need a special case in probe(), but we should
discuss the series separately.

	Regards
		Oliver


--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux