Device is not detected via MTP (TCL Idol X S950 phone)

I have just purchased a new TCL Idol X S950 phone and I'm figuring out some issue to make it visible on my system.

This phone uses Android 4.2.2 and I guess this is the cause of the issue: my previous phone with android 4.1 was correctly displayed in nautilus/dolphin (using mtpfs).

Now I have tried to install mtp-tools, but nothing has changed.

lsusb gives me that list (T&A Mobile Phones should be my phone).

Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 002: ID 1bbb:0168 T & A Mobile Phones 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 1bcf:2b80 Sunplus Innovation Technology Inc. 
Bus 002 Device 003: ID 8086:0189 Intel Corp. 

dmesg gives me this output:

15780.855333] usb 3-2: new high-speed USB device number 2 using xhci_hcd
[15780.874336] usb 3-2: New USB device found, idVendor=1bbb, idProduct=0168
[15780.874348] usb 3-2: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[15780.874354] usb 3-2: Product: TCL S950
[15780.874359] usb 3-2: Manufacturer: TCT
[15780.874364] usb 3-2: SerialNumber: FESKMRSOYLW8RKSK

Solution 1:

Include your device in libmtp source code

You can try to include your device in the libmtp source code and build libmtp from source.

Install mtp-tools and optionally the checkinstall package:

sudo apt-get install mtp-tools libusb-dev checkinstall
sudo mtp-detect

Take note to VID and PID numbers, example:

  • VID 22b8
  • PID 2e82

Download the latest libmtp source from the project site. At the time of writing the version was 1.1.6, so this is would be an example:

wget http://downloads.sorceforge.net/project/libmtp/1.1.6/libmtp-1.1.6.tar.gz
tar xvf libmtp-1.1.6.tar.gz
cd libmtp-1.1.6

Add an entry to your in device in the source:

gedit src/music-players.h

Example:

{ "Motorola", 0x22b8, "Moto G (XT1032)", 0x2e82,  DEVICE_FLAGS_ANDROID_BUGS }

Note, pay attention to the trailing commas (,) in the file like this:

[...]

{ "Motorola", 0x22b8, "Moto X (XT1058)", 0x2e63,
      DEVICE_FLAGS_ANDROID_BUGS },

{ "Motorola", 0x22b8, "Moto G (XT1032)", 0x2e82,
      DEVICE_FLAGS_ANDROID_BUGS },

{ "Motorola", 0x22b8, "Droid Maxx (XT1080)", 0x2e67,
      DEVICE_FLAGS_ANDROID_BUGS },

[...]

Now configure, build and install (checkinstall is recommended over make install) the patched version:

./configure
make
sudo checkinstall

Reboot and thats it.