GNOME Bugzilla – Bug 587121
HTC phones (Magic Vodafone G2, Hero...) show up as a G1
Last modified: 2009-09-22 23:22:53 UTC
Please describe the problem: My HTC Magic (Vodafone G2) Android phone shows up as a HTC Dream (G1). The icon is beautifull but I'd like one for the G2 too :) Steps to reproduce: 1. 2. 3. Actual results: Expected results: Does this happen every time? Other information:
It's just the icon that is incorrect?
No both the name and the icon. $ lsusb | grep High Bus 001 Device 010: ID 0bb4:0c02 High Tech Computer Corp.
The G2 Touch (HTC Hero) is also misidentified as a G1. lsusb -v data for each: G2 (HTC Magic): Bus 002 Device 003: ID 0bb4:0c02 High Tech Computer Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.02 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0bb4 High Tech Computer Corp. idProduct 0x0c02 bcdDevice 1.00 iManufacturer 3 HTC iProduct 2 Android Phone iSerial 1 HT95XKF05473 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 256mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk (Zip) iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 G2 Touch (HTC Hero): Bus 002 Device 011: ID 0bb4:0c01 High Tech Computer Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0bb4 High Tech Computer Corp. idProduct 0x0c01 bcdDevice 1.00 iManufacturer 3 iProduct 2 iSerial 1 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 256mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk (Zip) iInterface 4 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0
There are three HTC Android phones on the market: HTC Dream HTC Magic HTC Hero All three devices (and probably future HTC devices) share the same USB identifier of 0bb4 as the company ID and 0c01 as the product ID. There's no way to differentiate between them from the info provided by this ID. All three devices ALSO share a second product ID, 0c02. This ID is used when the phone is in USB Debugging mode (Settings/Applications/Development/). With USB Debugging enabled, more info can be extracted (e.g. the SDK tool "adb" can certainly differentiate between devices, but can only talk to a debug-mode phone) Stuart's info is misleading, as his G1 (Dream) is in debug mode, and his Hero is not. It would be possible to port adb's detection code into Banshee, but would require hackery and only work for debug-mode phones, which may be pointless.
Created attachment 140171 [details] [review] Changes Name Displayed for HTC Android Devices from "G1 Android Phone" to "HTC Android Device" Does not change the image - just the name of HTC Android devices.
I think the above patch goes a long way to resolving this issue by simply not using the words "G1 Android Phone" when a Magic or Hero is plugged in. Since, syncing works identically between the devices, it makes sense to call them all "HTC Android Device"
They're all phones, right? I think just "Android Phone" would be nicer. Thoughts?
The USB IDs under discussion are only for HTC's lineup, so I'd only advocate "Android Phone" if the same action is taken against the Samsung Galaxy (also android based, recently supported in git master). And, of course, then we get into a debate regarding Creative's Zii Egg which is NOT a phone (in the same way an iPod Touch is not an iPhone)
Jo's comments about the Samsung Galaxy make sense. So, how about we do one of two things: 1. Use "HTC Android Phone" for the three HTC devices that are recognized the same. 2. Use "Android Phone" for all Android based phones (including Samsung). Anyone can pretty easily edit the patch to do 1, which probably makes the most sense, because it leaves flexibility for future devices like zens to be recognized differently. -Jack (In reply to comment #7) > They're all phones, right? I think just "Android Phone" would be nicer. > Thoughts? >
Created attachment 141172 [details] [review] Update of Previous Patch to "HTC Android Phone"
Confirming with git master and with a Hero phone. IMO the patch should go in for now. If someone checks that the same happens with the Samsung one, the string should be changed again to remove the HTC part.
The Samsung phone does not have the problem - it is uniquely recognised by banshee on the latest git.
Committed, thanks Jack