/**
 * \file music-players.h
 * List of music players as USB ids.
 *
 * Copyright (C) 2005-2007 Richard A. Low <richard@wentnet.com>
 * Copyright (C) 2005-2013 Linus Walleij <triad@df.lth.se>
 * Copyright (C) 2006-2007,2015-2017 Marcus Meissner <marcus@jet.franken.de>
 * Copyright (C) 2007 Ted Bullock
 * Copyright (C) 2012 Sony Mobile Communications AB
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 *
 * This file is supposed to be included within a struct from both libmtp
 * and libgphoto2.
 *
 * Information can be harvested from Windows driver .INF files, see:
 * http://msdn.microsoft.com/en-us/library/aa973606.aspx
 */
/*
 * MTP device list, trying real bad to get all devices into
 * this list by stealing from everyone I know.
 * Some devices taken from the Rockbox device listing:
 * http://www.rockbox.org/twiki/bin/view/Main/DeviceDetection
 */

  /*
   * Creative Technology and ZiiLABS
   * Initially the Creative devices was all we supported so these are
   * the most thoroughly tested devices. Presumably only the devices
   * with older firmware (the ones that have 32bit object size) will
   * need the DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL flag. This bug
   * manifest itself when you have a lot of folders on the device,
   * some of the folders will start to disappear when getting all objects
   * and properties.
   */
  { "Creative", 0x041e, "ZEN Vision", 0x411f,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  { "Creative", 0x041e, "Portable Media Center", 0x4123,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  { "Creative", 0x041e, "ZEN Xtra (MTP mode)", 0x4128,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  { "Dell", 0x041e, "DJ (2nd generation)", 0x412f,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  { "Creative", 0x041e, "ZEN Micro (MTP mode)", 0x4130,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  { "Creative", 0x041e, "ZEN Touch (MTP mode)", 0x4131,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  { "Dell", 0x041e, "Dell Pocket DJ (MTP mode)", 0x4132,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  { "Creative", 0x041e, "ZEN MicroPhoto (alternate version)", 0x4133,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  { "Creative", 0x041e, "ZEN Sleek (MTP mode)", 0x4137,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  { "Creative", 0x041e, "ZEN MicroPhoto", 0x413c,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  { "Creative", 0x041e, "ZEN Sleek Photo", 0x413d,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  { "Creative", 0x041e, "ZEN Vision:M", 0x413e,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // Reported by marazm@o2.pl
  { "Creative", 0x041e, "ZEN V", 0x4150,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // Reported by danielw@iinet.net.au
  // This version of the Vision:M needs the no release interface flag,
  // unclear whether the other version above need it too or not.
  { "Creative", 0x041e, "ZEN Vision:M (DVP-HD0004)", 0x4151,
      DEVICE_FLAG_NO_RELEASE_INTERFACE |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // Reported by Darel on the XNJB forums
  { "Creative", 0x041e, "ZEN V Plus", 0x4152,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  { "Creative", 0x041e, "ZEN Vision W", 0x4153,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // Don't add 0x4155: this is a Zen Stone device which is not MTP
  // Reported by Paul Kurczaba <paul@kurczaba.com>
  { "Creative", 0x041e, "ZEN", 0x4157,
      DEVICE_FLAG_IGNORE_HEADER_ERRORS |
      DEVICE_FLAG_BROKEN_SET_SAMPLE_DIMENSIONS |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // Reported by Ringofan <mcroman@users.sourceforge.net>
  { "Creative", 0x041e, "ZEN V 2GB", 0x4158,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // Reported by j norment <stormzen@gmail.com>
  { "Creative", 0x041e, "ZEN Mozaic", 0x4161,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // Reported by Aaron F. Gonzalez <sub_tex@users.sourceforge.net>
  { "Creative", 0x041e, "ZEN X-Fi", 0x4162,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // Reported by farmerstimuli <farmerstimuli@users.sourceforge.net>
  { "Creative", 0x041e, "ZEN X-Fi 3", 0x4169,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // Reported by Todor Gyumyushev <yodor1@users.sourceforge.net>
  { "ZiiLABS", 0x041e, "Zii EGG", 0x6000,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
      DEVICE_FLAG_NO_RELEASE_INTERFACE |
      DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR |
      DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED },

  /*
   * Samsung
   * We suspect that more of these are dual mode.
   * We suspect more of these might need DEVICE_FLAG_NO_ZERO_READS
   * We suspect more of these might need DEVICE_FLAG_PLAYLIST_SPL_V1
   *  or DEVICE_FLAG_PLAYLIST_SPL_V2 to get playlists working.
   * YP-NEU, YP-NDU, YP-20, YP-800, YP-MF Series, YP-100, YP-30
   * YP-700 and YP-90 are NOT MTP, but use a Samsung custom protocol.
   * See: http://wiki.xiph.org/index.php/PortablePlayers for Ogg
   * status.
   */
  // From anonymous SourceForge user, not verified
  { "Samsung", 0x04e8, "YP-900", 0x0409, DEVICE_FLAG_NONE },
  // From MItch <dbaker@users.sourceforge.net>
  { "Samsung", 0x04e8, "I550W Phone", 0x04a4, DEVICE_FLAG_NONE },
  // From Manfred Enning <menning@users.sourceforge.net>
  { "Samsung", 0x04e8, "Jet S8000", 0x4f1f, DEVICE_FLAG_NONE },
  // From Gabriel Nunes <gabrielkm1@yahoo.com.br>
  { "Samsung", 0x04e8, "YH-920 (501d)", 0x501d, DEVICE_FLAG_UNLOAD_DRIVER },
  // From Soren O'Neill
  { "Samsung", 0x04e8, "YH-920 (5022)", 0x5022, DEVICE_FLAG_UNLOAD_DRIVER },
  // Contributed by aronvanammers on SourceForge
  { "Samsung", 0x04e8, "YH-925GS", 0x5024, DEVICE_FLAG_NONE },
  // From libgphoto2, according to tests by Stephan Fabel it cannot
  // get all objects with the getobjectproplist command..
  { "Samsung", 0x04e8, "YH-820", 0x502e,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // Contributed by polux2001@users.sourceforge.net
  { "Samsung", 0x04e8, "YH-925(-GS)", 0x502f,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // Contributed by anonymous person on SourceForge
  { "Samsung", 0x04e8, "YH-J70J", 0x5033,
      DEVICE_FLAG_UNLOAD_DRIVER },
  // From XNJB user
  // Guessing on .spl flag
  { "Samsung", 0x04e8, "YP-Z5", 0x503c,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_OGG_IS_UNKNOWN |
      DEVICE_FLAG_PLAYLIST_SPL_V1 },
  // Don't add 0x5041 as this is YP-Z5 in USB mode
  // Contributed by anonymous person on SourceForge
  { "Samsung", 0x04e8, "YP-T7J", 0x5047,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_OGG_IS_UNKNOWN },
  // Reported by cstrickler@gmail.com
  { "Samsung", 0x04e8, "YP-U2J (YP-U2JXB/XAA)", 0x5054,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_OGG_IS_UNKNOWN },
  // Reported by Andrew Benson
  { "Samsung", 0x04e8, "YP-F2J", 0x5057,
      DEVICE_FLAG_UNLOAD_DRIVER },
  // Reported by Patrick <skibler@gmail.com>
  // Just guessing but looks like .spl v1 http://www.anythingbutipod.com/forum/showthread.php?t=14160
  { "Samsung", 0x04e8, "YP-K5", 0x505a,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_NO_ZERO_READS |
      DEVICE_FLAG_PLAYLIST_SPL_V1 },
  // From dev.local@gmail.com - 0x4e8/0x507c is the UMS mode, apparently
  // do not add that device.
  // From m.eik michalke
  // This device does NOT use the special SPL playlist according to sypqgjxu@gmx.de.
  { "Samsung", 0x04e8, "YP-U3", 0x507d,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_OGG_IS_UNKNOWN },
  // Reported by Matthew Wilcox <matthew@wil.cx>
  // Sergio <sfrdll@tiscali.it> reports this device need the BROKEN ALL flag.
  // Guessing on .spl flag
  { "Samsung", 0x04e8, "YP-T9", 0x507f,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
      DEVICE_FLAG_OGG_IS_UNKNOWN |
      DEVICE_FLAG_PLAYLIST_SPL_V1 },
  // From Paul Clinch
  // Just guessing but looks like .spl v1 http://www.anythingbutipod.com/forum/showthread.php?t=14160
  // Some versions of the firmware reportedly support OGG, reportedly only the
  // UMS versions, so MTP+OGG is not possible on this device.
  { "Samsung", 0x04e8, "YP-K3", 0x5081,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_PLAYLIST_SPL_V1 },
  // From XNJB user
  // From Alistair Boyle, .spl v2 required for playlists
  // According to the device log it properly supports OGG
  { "Samsung", 0x04e8, "YP-P2", 0x5083,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_NO_ZERO_READS |
      DEVICE_FLAG_OGG_IS_UNKNOWN |
      DEVICE_FLAG_PLAYLIST_SPL_V2 },
  // From Paul Clinch
  // Guessing on .spl flag
  { "Samsung", 0x04e8, "YP-T10", 0x508a,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_OGG_IS_UNKNOWN |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
      DEVICE_FLAG_PLAYLIST_SPL_V1 |
      DEVICE_FLAG_NO_ZERO_READS },
  // From Wim Verwimp <wimverwimp@gmail.com>
  // Not sure about the Ogg and broken proplist flags here. Just guessing.
  // Guessing on .spl flag
  { "Samsung", 0x04e8, "YP-S5", 0x508b,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_OGG_IS_UNKNOWN |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
      DEVICE_FLAG_PLAYLIST_SPL_V1 },
  // From Ludovic Danigo
  // Guessing on .spl flag
  { "Samsung", 0x04e8, "YP-S3", 0x5091,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_OGG_IS_UNKNOWN |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
      DEVICE_FLAG_PLAYLIST_SPL_V1 },
  // From Adrian Levi <adrian.levi@gmail.com>
  // Guessing on .spl flag
  // This one supports OGG properly through the correct MTP type.
  { "Samsung", 0x04e8, "YP-U4", 0x5093, DEVICE_FLAG_UNLOAD_DRIVER },
  // From Chris Le Sueur <thefishface@gmail.com>
  // Guessing on .spl flag
  // This one supports OGG properly through the correct MTP type.
  { "Samsung", 0x04e8, "YP-R1", 0x510f,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_UNIQUE_FILENAMES |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // From Anonymous SourceForge user
  // Guessing on .spl flag
  { "Samsung", 0x04e8, "YP-Q1", 0x5115,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_OGG_IS_UNKNOWN |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
      DEVICE_FLAG_PLAYLIST_SPL_V1 },
  // From Holger
  { "Samsung", 0x04e8, "YP-M1", 0x5118,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_OGG_IS_UNKNOWN |
      DEVICE_FLAG_PLAYLIST_SPL_V2 },
  // From Anonymous SourceForge user
  // Guessing on .spl flag
  { "Samsung", 0x04e8, "YP-P3", 0x511a,
      DEVICE_FLAG_UNLOAD_DRIVER |
     DEVICE_FLAG_OGG_IS_UNKNOWN |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
     DEVICE_FLAG_PLAYLIST_SPL_V1 },
  // From Anonymous SourceForge user
  // Guessing on .spl flag
  { "Samsung", 0x04e8, "YP-Q2", 0x511d,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_OGG_IS_UNKNOWN |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
      DEVICE_FLAG_PLAYLIST_SPL_V1 },
  // From Marco Pizzocaro <mpizzocaro@users.sourceforge.net>
  // Guessing on .spl flag
  { "Samsung", 0x04e8, "YP-U5", 0x5121,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_PLAYLIST_SPL_V1 |
      DEVICE_FLAG_UNIQUE_FILENAMES |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // From Leonardo Accorsi <laccorsi@users.sourceforge.net>
  // Guessing on .spl flag
  { "Samsung", 0x04e8, "YP-R0", 0x5125,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_PLAYLIST_SPL_V1 |
      DEVICE_FLAG_UNIQUE_FILENAMES |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // The "YP-R2" (0x04e8/0x512d) is NOT MTP, it is UMS only.
  // Guessing on device flags for the MTP mode...
 { "Samsung", 0x04e8, "YP-R2", 0x512e,
     DEVICE_FLAG_UNLOAD_DRIVER |
     DEVICE_FLAG_OGG_IS_UNKNOWN |
     DEVICE_FLAG_UNIQUE_FILENAMES |
     DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
     DEVICE_FLAG_PLAYLIST_SPL_V1 },
  // From Manuel Carro
  // Copied from Q2
 { "Samsung", 0x04e8, "YP-Q3", 0x5130,
     DEVICE_FLAG_UNLOAD_DRIVER |
     DEVICE_FLAG_OGG_IS_UNKNOWN |
     DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
     DEVICE_FLAG_PLAYLIST_SPL_V1 },
 // Reported by: traaf <traaf@users.sourceforge.net>
 // Guessing on the playlist type!
 // Appears to present itself properly as a PTP device with MTP extensions!
 { "Samsung", 0x04e8, "YP-Z3", 0x5137,
     DEVICE_FLAG_UNLOAD_DRIVER |
     DEVICE_FLAG_OGG_IS_UNKNOWN |
     DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
     DEVICE_FLAG_PLAYLIST_SPL_V1 },
  // YP-F3 is NOT MTP - USB mass storage
  // From a rouge .INF file
  // this device ID seems to have been recycled for:
  // the Samsung SGH-A707 Cingular cellphone
  // the Samsung L760-V cellphone
  // the Samsung SGH-U900 cellphone
  // the Samsung Fascinate player
  { "Samsung", 0x04e8,
      "YH-999 Portable Media Center/SGH-A707/SGH-L760V/SGH-U900/Verizon Intensity/Fascinate",
      0x5a0f, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // From Santi Béjar <sbejar@gmail.com> - not sure this is MTP...
  // { "Samsung", 0x04e8, "Z170 Mobile Phone", 0x6601, DEVICE_FLAG_UNLOAD_DRIVER },
  // From Santi Béjar <sbejar@gmail.com> - not sure this is MTP...
  // { "Samsung", 0x04e8, "E250 Mobile Phone", 0x663e, DEVICE_FLAG_UNLOAD_DRIVER },
  // From an anonymous SF user
  { "Samsung", 0x04e8, "M7600 Beat/GT-S8300T/SGH-F490/S8300", 0x6642,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_BROKEN_BATTERY_LEVEL },
  // From Lionel Bouton
  { "Samsung", 0x04e8, "X830 Mobile Phone", 0x6702,
      DEVICE_FLAG_UNLOAD_DRIVER },
  // From James <jamestech@gmail.com>
  { "Samsung", 0x04e8, "U600 Mobile Phone", 0x6709,
      DEVICE_FLAG_UNLOAD_DRIVER },
  // From Cesar Cardoso <cesar@cesarcardoso.tk>
  // No confirmation that this is really MTP.
  { "Samsung", 0x04e8, "F250 Mobile Phone", 0x6727,
      DEVICE_FLAG_UNLOAD_DRIVER },
  // From Charlie Todd  2007-10-31
  { "Samsung", 0x04e8, "Juke (SCH-U470)", 0x6734,
      DEVICE_FLAG_UNLOAD_DRIVER},
  // Reported by Tenn
  { "Samsung", 0x04e8, "GT-B2700", 0x6752,
      DEVICE_FLAG_UNLOAD_DRIVER },
  // Added by Greg Fitzgerald <netzdamon@gmail.com>
  { "Samsung", 0x04e8, "SAMSUNG Trance", 0x6763,
      DEVICE_FLAG_UNLOAD_DRIVER |
     DEVICE_FLAG_NO_ZERO_READS |
      DEVICE_FLAG_PLAYLIST_SPL_V1 },
  // From anonymous sourceforge user
  // Guessing on .spl flag, maybe needs NO_ZERO_READS, whatdoIknow
  { "Samsung", 0x04e8, "GT-S8500", 0x6819,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_PLAYLIST_SPL_V1 },
  /*
   * These entries seems to be used on a *lot* of Samsung
   * Android phones. It is *not* the Android MTP stack but an internal
   * Samsung stack. The devices present a few different product IDs
   * depending on mode:
   *
   * 0x685b - UMS
   * 0x685c - MTP + ADB
   * 0x685e - UMS + CDC (not MTP)
   * 0x6860 - MTP mode (default)
   * 0x6863 - USB CDC RNDIS (not MTP)
   * 0x6865 - PTP mode (not MTP)
   * 0x6877 - Kies mode? Does it have MTP?
   *
   * Used on these samsung devices:
   * GT P7310/P7510/N7000/I9100/I9250/I9300
   * Galaxy Nexus
   * Galaxy Tab 7.7/10.1
   * Galaxy S GT-I9000
   * Galaxy S Advance GT-I9070
   * Galaxy S2
   * Galaxy S3
   * Galaxy Note
   * Gakaxy Xcover
   * Galaxy Y
   *
   * - It seems that some PTP commands are broken.
   * - Devices seem to have a connection timeout, the session must be
   *   open in about 3 seconds since the device is plugged in, after
   *   that time it will not respond. Thus GUI programs work fine.
   * - Seems also to be used with Galaxy Nexus debug mode and on
   *   US markets for some weird reason.
   *
   * From: Ignacio Martínez <ignacio.martinezrivera@yahoo.es> and others
   * From Harrison Metzger <harrisonmetz@gmail.com>
   */
  { "Samsung", 0x04e8,
      "Galaxy models (MTP+ADB)", 0x685c,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_LONG_TIMEOUT |
      DEVICE_FLAG_PROPLIST_OVERRIDES_OI	|
      DEVICE_FLAG_OGG_IS_UNKNOWN |
      DEVICE_FLAG_FLAC_IS_UNKNOWN },
  { "Samsung", 0x04e8,
      "Galaxy models (MTP)", 0x6860,
      /*DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |*/
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_LONG_TIMEOUT |
      DEVICE_FLAG_PROPLIST_OVERRIDES_OI |
      DEVICE_FLAG_OGG_IS_UNKNOWN |
      DEVICE_FLAG_FLAC_IS_UNKNOWN },
  // From: Erik Berglund <erikjber@users.sourceforge.net>
  // Logs indicate this needs DEVICE_FLAG_NO_ZERO_READS
  // No Samsung platlists on this device.
  // https://sourceforge.net/tracker/?func=detail&atid=809061&aid=3026337&group_id=158745
  // i5800 duplicate reported by igel <igel-kun@users.sourceforge.net>
  // Guessing this has the same problematic MTP stack as the device
  // above.
  { "Samsung", 0x04e8, "Galaxy models Kies mode", 0x6877,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_LONG_TIMEOUT |
      DEVICE_FLAG_PROPLIST_OVERRIDES_OI	|
      DEVICE_FLAG_OGG_IS_UNKNOWN |
      DEVICE_FLAG_FLAC_IS_UNKNOWN },
  // From: John Gorkos <ab0oo@users.sourceforge.net> and
  // Akos Maroy <darkeye@users.sourceforge.net>
  { "Samsung", 0x04e8, "Vibrant SGH-T959/Captivate/Media player mode", 0x68a9,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_PLAYLIST_SPL_V1 },
  // Reported by Sleep.Walker <froser@users.sourceforge.net>
  { "Samsung", 0x04e8, "GT-B2710/Xcover 271", 0x68af,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_PLAYLIST_SPL_V1 },
  // From anonymous Sourceforge user
  { "Samsung", 0x04e8, "GT-S5230", 0xe20c, DEVICE_FLAG_NONE },


  /*
   * Microsoft
   * All except the first probably need MTPZ to work
   */
  { "Microsoft/Intel", 0x045e, "Bandon Portable Media Center", 0x00c9,
      DEVICE_FLAG_NONE },
  // HTC Mozart is using the PID, as is Nokia Lumia 800
  // May need MTPZ to work
  { "Microsoft", 0x045e, "Windows Phone", 0x04ec, DEVICE_FLAG_NONE },
  // Reported by Tadimarri Sarath <sarath.tadi@gmail.com>
  // No idea why this use an Intel PID, perhaps a leftover from
  // the early PMC development days when Intel and Microsoft were
  // partnering.
  { "Microsoft", 0x045e, "Windows MTP Simulator", 0x0622, DEVICE_FLAG_NONE },
  // Reported by Edward Hutchins (used for Zune HDs)
  { "Microsoft", 0x045e, "Zune HD", 0x063e, DEVICE_FLAG_NONE },
  { "Microsoft", 0x045e, "Kin 1", 0x0640, DEVICE_FLAG_NONE },
  { "Microsoft/Sharp/nVidia", 0x045e, "Kin TwoM", 0x0641, DEVICE_FLAG_NONE },
  // Reported by Farooq Zaman (used for all Zunes)
  { "Microsoft", 0x045e, "Zune", 0x0710, DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/feature-requests/155/ */
  { "Microsoft", 0x045e, "Lumia 950 XL Dual SIM (RM-1116)", 0x0a00, DEVICE_FLAG_NONE },
  // Reported by Olegs Jeremejevs
  { "Microsoft/HTC", 0x045e, "HTC 8S", 0xf0ca, DEVICE_FLAG_NONE },

  /*
   * JVC
   */
  // From Mark Veinot
  { "JVC", 0x04f1, "Alneo XA-HD500", 0x6105, DEVICE_FLAG_NONE },

  /* https://sourceforge.net/p/libmtp/bugs/1613/ */
  { "Intex", 0x05c6, "Aqua Fish", 0x0a07, DEVICE_FLAG_NONE },

  /*
   * Philips
   */
  { "Philips", 0x0471, "HDD6320/00 or HDD6330/17", 0x014b, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // Anonymous SourceForge user
  { "Philips", 0x0471, "HDD14XX,HDD1620 or HDD1630/17", 0x014c, DEVICE_FLAG_NONE },
  // from discussion forum
  { "Philips", 0x0471, "HDD085/00 or HDD082/17", 0x014d, DEVICE_FLAG_NONE },
  // from XNJB forum
  { "Philips", 0x0471, "GoGear SA9200", 0x014f, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // From John Coppens <jcoppens@users.sourceforge.net>
  { "Philips", 0x0471, "SA1115/55", 0x0164, DEVICE_FLAG_NONE },
  // From Gerhard Mekenkamp
  { "Philips", 0x0471, "GoGear Audio", 0x0165, DEVICE_FLAG_NONE },
  // from David Holm <wormie@alberg.dk>
  { "Philips", 0x0471, "Shoqbox", 0x0172, DEVICE_FLAG_ONLY_7BIT_FILENAMES },
  // from npedrosa
  { "Philips", 0x0471, "PSA610", 0x0181, DEVICE_FLAG_NONE },
  // From libgphoto2 source
  { "Philips", 0x0471, "HDD6320", 0x01eb, DEVICE_FLAG_NONE },
  // From Detlef Meier <dm@emlix.com>
  { "Philips", 0x0471, "GoGear SA6014/SA6015/SA6024/SA6025/SA6044/SA6045", 0x084e, DEVICE_FLAG_UNLOAD_DRIVER },
  // From anonymous Sourceforge user SA5145/02
  { "Philips", 0x0471, "GoGear SA5145", 0x0857, DEVICE_FLAG_UNLOAD_DRIVER },
  /* https://sourceforge.net/p/libmtp/bugs/1260/ */
  { "Philips", 0x0471, "i908", 0x190b, DEVICE_FLAG_UNLOAD_DRIVER },
  // From a
  { "Philips", 0x0471, "GoGear SA6125/SA6145/SA6185", 0x2002, DEVICE_FLAG_UNLOAD_DRIVER },
  // From anonymous Sourceforge user, not verified to be MTP!
  { "Philips", 0x0471, "GoGear SA3345", 0x2004, DEVICE_FLAG_UNLOAD_DRIVER },
  /* https://sourceforge.net/p/libmtp/support-requests/163/ */
  { "Philips", 0x0471, "W6610", 0x2008, DEVICE_FLAG_UNLOAD_DRIVER },
  // From Roberto Vidmar <rvidmar@libero.it>
  { "Philips", 0x0471, "SA5285", 0x2022, DEVICE_FLAG_UNLOAD_DRIVER },
  // From Elie De Brauwer <elie@de-brauwer.be>
  { "Philips", 0x0471, "GoGear ViBE SA1VBE04", 0x2075,
    DEVICE_FLAG_UNLOAD_DRIVER },
  // From Anonymous SourceForge user
  { "Philips", 0x0471, "GoGear Muse", 0x2077,
      DEVICE_FLAG_UNLOAD_DRIVER },
  // From Elie De Brauwer <elie@de-brauwer.be>
  { "Philips", 0x0471, "GoGear ViBE SA1VBE04/08", 0x207b,
    DEVICE_FLAG_UNLOAD_DRIVER },
  // From josmtx <josmtx@users.sourceforge.net>
  { "Philips", 0x0471, "GoGear Aria", 0x207c,
    DEVICE_FLAG_UNLOAD_DRIVER },
  // From epklein
  { "Philips", 0x0471, "GoGear SA1VBE08KX/78", 0x208e,
    DEVICE_FLAG_UNLOAD_DRIVER },
  // From Anonymous SourceForge User
  { "Philips", 0x0471, "GoGear VIBE SA2VBE[08|16]K/02", 0x20b7,
      DEVICE_FLAG_UNLOAD_DRIVER },
  // From Anonymous SourceForge User
  { "Philips", 0x0471, "GoGear Ariaz", 0x20b9,
      DEVICE_FLAG_UNLOAD_DRIVER },
  // From Anonymous SourceForge User
  { "Philips", 0x0471, "GoGear Vibe/02", 0x20e5,
      DEVICE_FLAG_UNLOAD_DRIVER },
  // Reported by Philip Rhoades
  { "Philips", 0x0471, "GoGear Ariaz/97", 0x2138,
      DEVICE_FLAG_UNLOAD_DRIVER },
  /* https://sourceforge.net/p/libmtp/bugs/1186/ */
  { "Philips", 0x0471, "PI3900B2/58 ", 0x2190,
      DEVICE_FLAG_UNLOAD_DRIVER },
  // from XNJB user
  { "Philips", 0x0471, "PSA235", 0x7e01, DEVICE_FLAG_NONE },

  /*
   * Acer
   * Reporters:
   * Franck VDL <franckv@users.sourceforge.net>
   * Matthias Arndt <simonsunnyboy@users.sourceforge.net>
   * Arvin Schnell <arvins@users.sourceforge.net>
   * Philippe Marzouk <philm@users.sourceforge.net>
   * nE0sIghT <ne0sight@users.sourceforge.net>
   * Maxime de Roucy <maxime1986@users.sourceforge.net>
   */
  { "Acer", 0x0502, "Iconia TAB A500 (ID1)", 0x3325,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Iconia TAB A500 (ID2)", 0x3341,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Iconia TAB A501 (ID1)", 0x3344,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Iconia TAB A501 (ID2)", 0x3345,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Iconia TAB A100 (ID1)", 0x3348,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Iconia TAB A100 (ID2)", 0x3349,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Iconia TAB A101 (ID1)", 0x334a,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Iconia TAB A700", 0x3378,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Iconia TAB A200 (ID1)", 0x337c,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Iconia TAB A200 (ID2)", 0x337d,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Iconia TAB A510 (ID1)", 0x3389,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Iconia TAB A510 (ID2)", 0x338a,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "S500 CloudMobile", 0x33aa,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "E350 Liquid Gallant Duo (ID1)", 0x33c3,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "E350 Liquid Gallant Duo (ID2)", 0x33c4,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Iconia TAB A210", 0x33cb,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Iconia TAB A110", 0x33d8,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Liquid Z120 MT65xx Android Phone", 0x3473,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1029/ */
  { "Acer", 0x0502, "Liquid E2", 0x3514,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Iconia A1-810", 0x353c,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Liquid Z130 MT65xx Android Phone", 0x355f,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1206/ */
  { "Acer", 0x0502, "Iconia A3-A11", 0x3586,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1103/ */
  { "Acer", 0x0502, "Liquid E3", 0x35a8,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1147/ */
  { "Acer", 0x0502, "Z150", 0x35e4,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1184/ */
  { "Acer", 0x0502, "Liquid X1", 0x3609,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1298/ */
  { "Acer", 0x0502, "Z160", 0x361d,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "Iconia A1-840FHD", 0x362d,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1251/ */
  { "Acer", 0x0502, "E39", 0x3643,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1369/ */
  { "Acer", 0x0502, "liquid e700", 0x3644,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acer", 0x0502, "One 7", 0x3657,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/183/ */
  { "Acer", 0x0502, "Z200", 0x3683,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1579/ */
  { "Acer", 0x0502, "A1-841", 0x365e,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1341/ */
  { "Acer", 0x0502, "Liquid S56", 0x3725,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/228/ */
  { "Acer", 0x0502, "Liquid Z220 (ID1)", 0x374f,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/188/ */
  { "Acer", 0x0502, "Liquid Z220 (ID2)", 0x3750,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1478/ */
  { "Acer", 0x0502, "Liquid Z330", 0x3750,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1552/ */
  { "Acer", 0x0502, "Liquid Z630", 0x37ef,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1469/ */
  { "Acer", 0x0502, "Z530", 0x3822,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1534/ */
  { "Acer", 0x0502, "Z530 16GB", 0x3823,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* Reported by Jocelyn Mayer <l_indien@magic.fr> */
  { "Acer", 0x0502, "Iconia One 10", 0x3841,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* Mia */
  { "Acer", 0x0502, "Liquid Zest Plus", 0x38bb,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* Richard Waterbeek <richard@fotobakje.nl> on libmtp-discuss */
  { "Acer", 0x0502, "Liquid Liquid Z6E", 0x3938,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * SanDisk
   * several devices (c150 for sure) are definately dual-mode and must
   * have the USB mass storage driver that hooks them unloaded first.
   * They all have problematic dual-mode making the device unload effect
   * uncertain on these devices.
   *
   * All older devices seem to need DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL.
   * Old chipsets: e200/c200 use PP5024 from Nvidia (formerly PortalPlayer).
   * m200 use TCC770 from Telechips.
   *
   * The newer Sansa v2 chipset, AD3525 from Austriamicrosystems (AMS) found
   * in e280 v2 c200 v2, Clip, Fuze etc require
   * DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST
   * and DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR to work properly.
   *
   * For more info see: http://daniel.haxx.se/sansa/v2.html
   */
  // Reported by Brian Robison
  { "SanDisk", 0x0781, "Sansa m230/m240", 0x7400,
    DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED },
  // From Rockbox device listing
  { "SanDisk", 0x0781, "Sansa m200-tcc (MTP mode)", 0x7401,
    DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED },
  // Reported by tangent_@users.sourceforge.net
  { "SanDisk", 0x0781, "Sansa c150", 0x7410,
    DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED },
  // From libgphoto2 source
  // Reported by <gonkflea@users.sourceforge.net>
  // Reported by Mike Owen <mikeowen@computerbaseusa.com>
  { "SanDisk", 0x0781, "Sansa e200/e250/e260/e270/e280", 0x7420,
    DEVICE_FLAG_UNLOAD_DRIVER |  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED },
  // Don't add 0x7421 as this is e280 in MSC mode
  // Reported by XNJB user
  { "SanDisk", 0x0781, "Sansa e260/e280 v2", 0x7422,
    DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR |
    DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED },
  // Reported by XNJB user
  { "SanDisk", 0x0781, "Sansa m240/m250", 0x7430,
    DEVICE_FLAG_UNLOAD_DRIVER |  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED },
  // Reported by Eugene Brevdo <ebrevdo@princeton.edu>
  { "SanDisk", 0x0781, "Sansa Clip", 0x7432,
    DEVICE_FLAG_UNLOAD_DRIVER |  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR |
    DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED},
  // Reported by HackAR <hackar@users.sourceforge.net>
  { "SanDisk", 0x0781, "Sansa Clip v2", 0x7434,
    DEVICE_FLAG_UNLOAD_DRIVER |  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR |
    DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED},
  // Reported by anonymous user at sourceforge.net
  { "SanDisk", 0x0781, "Sansa c240/c250", 0x7450,
    DEVICE_FLAG_UNLOAD_DRIVER |  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED },
  // Reported by anonymous SourceForge user
  { "SanDisk", 0x0781, "Sansa c250 v2", 0x7452,
    DEVICE_FLAG_UNLOAD_DRIVER |  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED },
  // Reported by Troy Curtis Jr.
  { "SanDisk", 0x0781, "Sansa Express", 0x7460,
    DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED },
  // Reported by XNJB user, and Miguel de Icaza <miguel@gnome.org>
  // This has no dual-mode so no need to unload any driver.
  // This is a Linux based device!
  { "SanDisk", 0x0781, "Sansa Connect", 0x7480, DEVICE_FLAG_NONE },
  // Reported by anonymous SourceForge user
  { "SanDisk", 0x0781, "Sansa View", 0x74b0,
    DEVICE_FLAG_UNLOAD_DRIVER |  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED },
  // Reported by Patrick <skibler@gmail.com>
  // There are apparently problems with this device.
  { "SanDisk", 0x0781, "Sansa Fuze", 0x74c0,
    DEVICE_FLAG_UNLOAD_DRIVER |  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR |
    DEVICE_FLAG_BROKEN_SET_SAMPLE_DIMENSIONS |
    DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED },
  // Harry Phillips <tuxcomputers@users.sourceforge.net>
  { "SanDisk", 0x0781, "Sansa Fuze v2", 0x74c2,
    DEVICE_FLAG_UNLOAD_DRIVER |  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR |
    DEVICE_FLAG_BROKEN_SET_SAMPLE_DIMENSIONS |
    DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED },
  // Reported by anonymous SourceForge user
  // Need BROKEN_SET_SAMPLE_DIMENSIONS accordning to
  // Michael <mpapet@users.sourceforge.net>
  { "SanDisk", 0x0781, "Sansa Clip+", 0x74d0,
    DEVICE_FLAG_UNLOAD_DRIVER |  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR |
    DEVICE_FLAG_BROKEN_SET_SAMPLE_DIMENSIONS |
    DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED},
  // Reported by anonymous SourceForge user
  { "SanDisk", 0x0781, "Sansa Fuze+", 0x74e0,
    DEVICE_FLAG_UNLOAD_DRIVER |  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR |
    DEVICE_FLAG_BROKEN_SET_SAMPLE_DIMENSIONS |
    DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED},
  // Reported by mattyj2001@users.sourceforge.net
  { "SanDisk", 0x0781, "Sansa Clip Zip", 0x74e4,
    DEVICE_FLAG_UNLOAD_DRIVER |  DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
    DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR |
    DEVICE_FLAG_BROKEN_SET_SAMPLE_DIMENSIONS |
    DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED},

  /*
   * iRiver
   * we assume that PTP_OC_MTP_GetObjPropList is essentially
   * broken on all iRiver devices, meaning it simply won't return
   * all properties for a file when asking for metadata 0xffffffff.
   * Please test on your device if you believe it isn't broken!
   */
  { "iRiver", 0x1006, "H300 Series MTP", 0x3004,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  { "iRiver", 0x1006, "Portable Media Center 1", 0x4002,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  { "iRiver", 0x1006, "Portable Media Center 2", 0x4003,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  // From [st]anislav <iamstanislav@gmail.com>
  { "iRiver", 0x1042, "T7 Volcano", 0x1143, DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  // From an anonymous person at SourceForge, uncertain about this one
  { "iRiver", 0x4102, "iFP-880", 0x1008,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  // 0x4102, 0x1042 is a USB mass storage mode for E100 v2/Lplayer
  // From libgphoto2 source
  { "iRiver", 0x4102, "T10", 0x1113,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  { "iRiver", 0x4102, "T20 FM", 0x1114,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  // This appears at the MTP-UMS site
  { "iRiver", 0x4102, "T20", 0x1115,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  { "iRiver", 0x4102, "U10", 0x1116,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  { "iRiver", 0x4102, "T10b", 0x1117,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  { "iRiver", 0x4102, "T20b", 0x1118,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  { "iRiver", 0x4102, "T30", 0x1119,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  // Reported by David Wolpoff
  { "iRiver", 0x4102, "T10 2GB", 0x1120,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  // Rough guess this is the MTP device ID...
  { "iRiver", 0x4102, "N12", 0x1122,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  // Reported by Philip Antoniades <philip@mysql.com>
  // Newer iriver devices seem to have shaped-up firmware without any
  // of the annoying bugs.
  { "iRiver", 0x4102, "Clix2", 0x1126, DEVICE_FLAG_NONE },
  // Reported by Adam Torgerson
  { "iRiver", 0x4102, "Clix", 0x112a,
    DEVICE_FLAG_NO_ZERO_READS | DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  // Reported by Douglas Roth <dougaus@gmail.com>
  { "iRiver", 0x4102, "X20", 0x1132,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  // Reported by Robert Ugo <robert_ugo@users.sourceforge.net>
  { "iRiver", 0x4102, "T60", 0x1134,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
  // Reported by two anonymous SourceForge users
  // Needs the stronger OGG_IS_UNKNOWN flag to support OGG properly,
  // be aware of newer players that may be needing this too.
  { "iRiver", 0x4102, "E100", 0x1141,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_OGG_IS_UNKNOWN },
  // Reported by anonymous SourceForge user
  // Need verification of whether this firmware really need all these flags
  { "iRiver", 0x4102, "E100 v2/Lplayer", 0x1142,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_OGG_IS_UNKNOWN },
  // Reported by Richard Vennemann <vennemann@users.sourceforge.net>
  // In USB Mass Storage mode it is 0x4102/0x1047
  // Seems to use the new shaped-up firmware.
  { "iRiver", 0x4102, "Spinn", 0x1147, DEVICE_FLAG_NONE },
  // Reported by Tony Janssen <tonyjanssen@users.sourceforge.net>
  { "iRiver", 0x4102, "E50", 0x1151,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_OGG_IS_UNKNOWN },
  // Reported by anonymous SourceForge user, guessing on flags
  { "iRiver", 0x4102, "E150", 0x1152,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_OGG_IS_UNKNOWN },
  // Reported by Jakub Matraszek <jakub.matraszek@gmail.com>
  { "iRiver", 0x4102, "T5", 0x1153,
    DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
    DEVICE_FLAG_NO_ZERO_READS | DEVICE_FLAG_OGG_IS_UNKNOWN },
  // Reported by pyalex@users.sourceforge.net
  // Guessing that this needs the FLAG_NO_ZERO_READS...
  { "iRiver", 0x4102, "E30", 0x1167,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_OGG_IS_UNKNOWN },
  /* https://sourceforge.net/p/libmtp/bugs/1634/ 
   * copying flags from above */
  { "iRiver", 0x4102, "AK70", 0x1200,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_OGG_IS_UNKNOWN },
  // Reported by Scott Call
  // Assume this actually supports OGG though it reports it doesn't.
  { "iRiver", 0x4102, "H10 20GB", 0x2101,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_OGG_IS_UNKNOWN },
  { "iRiver", 0x4102, "H10 5GB", 0x2102,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_OGG_IS_UNKNOWN },
  // From Rockbox device listing
  { "iRiver", 0x4102, "H10 5.6GB", 0x2105,
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
    DEVICE_FLAG_OGG_IS_UNKNOWN },


  /*
   * Dell
   */
  { "Dell Inc", 0x413c, "DJ Itty", 0x4500,
      DEVICE_FLAG_NONE },
  /* Reported by: JR */
  { "Dell Inc", 0x413c, "Dell Streak 7", 0xb10b,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Dell Inc", 0x413c, "Dell Venue 7 inch", 0xb11a,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Dell Inc", 0x413c, "Dell Venue 7 inch (2nd ID)", 0xb11b,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Toshiba
   * Tentatively flagged all Toshiba devices with
   * DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST after one of them
   * showed erroneous behaviour.
   */
  { "Toshiba", 0x0930, "Gigabeat MEGF-40", 0x0009,
      DEVICE_FLAG_NO_RELEASE_INTERFACE |
      DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST },
  { "Toshiba", 0x0930, "Gigabeat", 0x000c,
      DEVICE_FLAG_NO_RELEASE_INTERFACE |
      DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST },
  // Reported by Nicholas Tripp
  { "Toshiba", 0x0930, "Gigabeat P20", 0x000f,
      DEVICE_FLAG_NO_RELEASE_INTERFACE |
      DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST },
  // From libgphoto2
  { "Toshiba", 0x0930, "Gigabeat S", 0x0010,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
      DEVICE_FLAG_NO_RELEASE_INTERFACE |
      DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST },
  // Reported by Rob Brown
  { "Toshiba", 0x0930, "Gigabeat P10", 0x0011,
      DEVICE_FLAG_NO_RELEASE_INTERFACE |
      DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST },
  // Reported by solanum@users.sourceforge.net
  { "Toshiba", 0x0930, "Gigabeat V30", 0x0014,
      DEVICE_FLAG_NO_RELEASE_INTERFACE |
      DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST },
  // Reported by Michael Davis <slithy@yahoo.com>
  { "Toshiba", 0x0930, "Gigabeat U", 0x0016,
      DEVICE_FLAG_NO_RELEASE_INTERFACE |
      DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST },
  // Reported by Devon Jacobs <devo@godevo.com>
  { "Toshiba", 0x0930, "Gigabeat MEU202", 0x0018,
      DEVICE_FLAG_NO_RELEASE_INTERFACE |
      DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST },
  // Reported by Rolf <japan (at) dl3lar.de>
  { "Toshiba", 0x0930, "Gigabeat T", 0x0019,
      DEVICE_FLAG_NO_RELEASE_INTERFACE |
      DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST },
  // Reported by Phil Ingram <ukpbert@users.sourceforge.net>
  // Tentatively added - no real reports of this device ID being MTP,
  // reports as USB Mass Storage currently.
  { "Toshiba", 0x0930, "Gigabeat MEU201", 0x001a,
      DEVICE_FLAG_NO_RELEASE_INTERFACE |
      DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST },
  // Reported by anonymous SourceForge user
  { "Toshiba", 0x0930, "Gigabeat MET401", 0x001d,
      DEVICE_FLAG_NO_RELEASE_INTERFACE |
      DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST },
  // Reported by Andree Jacobson <nmcandree@users.sourceforge.net>
  { "Toshiba", 0x0930, "Excite AT300", 0x0963,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1557/ */
  { "Toshiba", 0x0930, "Excite AT200", 0x0960,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by Nigel Cunningham <nigel@tuxonice.net>
  // Guessing on Android bugs
  { "Toshiba", 0x0930, "Thrive AT100/AT105", 0x7100,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Archos
   * These devices have some dual-mode interfaces which will really
   * respect the driver unloading, so DEVICE_FLAG_UNLOAD_DRIVER
   * really work on these devices!
   *
   * Devices reported by:
   * Archos
   * Alexander Haertig <AlexanderHaertig@gmx.de>
   * Jan Binder
   * gudul1@users.sourceforge.net
   * Etienne Chauchot <chauchot.etienne@free.fr>
   * Kay McCormick <kaym@modsystems.com>
   * Joe Rabinoff
   * Jim Krehl <jimmuhk@users.sourceforge.net>
   * Adrien Guichard <tmor@users.sourceforge.net>
   * Clément <clemvangelis@users.sourceforge.net>
   * Thackert <hackertenator@users.sourceforge.net>
   * Till <Till@users.sourceforge.net>
   * Sebastien ROHAUT
   */
  { "Archos", 0x0e79, "Gmini XS100", 0x1207, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "XS202 (MTP mode)", 0x1208, DEVICE_FLAG_NONE },
  { "Archos", 0x0e79, "104 (MTP mode)", 0x120a, DEVICE_FLAG_NONE },
  { "Archos", 0x0e79, "204 (MTP mode)", 0x120c, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "404 (MTP mode)", 0x1301, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "404CAM (MTP mode)", 0x1303, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "504 (MTP mode)", 0x1307, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "604 (MTP mode)", 0x1309, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "604WIFI (MTP mode)", 0x130b, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "704 mobile dvr", 0x130d, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "704TV (MTP mode)", 0x130f, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "405 (MTP mode)", 0x1311, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "605 (MTP mode)", 0x1313, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "605F (MTP mode)", 0x1315, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "705 (MTP mode)", 0x1319, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "TV+ (MTP mode)", 0x131b, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "105 (MTP mode)", 0x131d, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "405HDD (MTP mode)", 0x1321, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "5 (MTP mode 1)", 0x1331, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "5 (MTP mode 2)", 0x1333, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "7 (MTP mode)", 0x1335, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "SPOD (MTP mode)", 0x1341, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "5S IT (MTP mode)", 0x1351, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "5H IT (MTP mode)", 0x1357, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "48 (MTP mode)", 0x1421, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "Arnova Childpad", 0x1458, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "Arnova 8c G3", 0x145e, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "Arnova 10bG3 Tablet", 0x146b, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "97 Xenon", 0x149a, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "97 Titanium", 0x14ad, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "80 Titanium", 0x14bf, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "101 Titanium", 0x14b9, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/91/ */
  { "Archos", 0x0e79, "70b Titanium", 0x14ef, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "8o G9 (MTP mode)", 0x1508, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "8o G9 Turbo (MTP mode)", 0x1509, DEVICE_FLAG_UNLOAD_DRIVER },
  { "Archos", 0x0e79, "80G9", 0x1518, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "101 G9 (ID1)", 0x1528, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "101 G9 (ID2)", 0x1529, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "101 G9 Turbo 250 HD", 0x1538, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "101 G9 Turbo", 0x1539, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "101 XS", 0x1548, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "70it2 (ID 1)", 0x1568, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "70it2 (ID 2)", 0x1569, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "70 Cobalt", 0x15ba, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "50c", 0x2008, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "C40", 0x31ab, DEVICE_FLAGS_ANDROID_BUGS },
  /* via libmtp-discuss Tonton <to.tonton@gmail.com> */
  { "Archos", 0x0e79, "Helium 45B", 0x31d8, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1393/ */
  { "Archos", 0x0e79, "Phone", 0x31e1, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1325/ */
  { "Archos", 0x0e79, "45 Neon", 0x31f3, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1352/ */
  { "Archos", 0x0e79, "50 Diamond", 0x3229, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "101 G4", 0x4002, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos (for Tesco)", 0x0e79, "Hudl (ID1)", 0x5008, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos (for Tesco)", 0x0e79, "Hudl (ID2)", 0x5009, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1404/ */
  { "Archos", 0x0e79, "AC40DTI", 0x5217, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/221/ */
  { "Archos", 0x0e79, "50 Helium Plus", 0x5229, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1682/ */
  { "Archos", 0x0e79, "50 Helium Plus (2nd ID)", 0x522a, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1573/ */
  { "Archos", 0x0e79, "101 xenon lite", 0x528c, DEVICE_FLAGS_ANDROID_BUGS },
  { "Archos", 0x0e79, "101 xenon lite (ADB)", 0x528d, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1581/ */
  { "Archos", 0x0e79, "40 Helium phone", 0x52c2, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/support-requests/222/ */
  { "Archos", 0x0e79, "Diamond S", 0x5305, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1587/ */
  { "Archos", 0x0e79, "50d neon", 0x5371, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1660/ */
  { "Archos", 0x0e79, "70b neon", 0x5395, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1637/ */
  { "Archos", 0x0e79, "101b Oxygen", 0x542f, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/support-requests/245/ */
  { "Archos", 0x0e79, "55B Platinum", 0x544a, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/209/ */
  { "Archos", 0x0e79, "55 diamond Selfie", 0x5465, DEVICE_FLAGS_ANDROID_BUGS },


  /*
   * Dunlop (OEM of EGOMAN ltd?) reported by Nanomad
   * This unit is falsely detected as USB mass storage in Linux
   * prior to kernel 2.6.19 (fixed by patch from Alan Stern)
   * so on older kernels special care is needed to remove the
   * USB mass storage driver that erroneously binds to the device
   * interface.
   *
   * More problematic, this manufacturer+device ID seems to be
   * reused in a USB Mass Storage device named "Zipy Fox 8GB",
   * which means libmtp may mistreat it.
   */
  { "Dunlop", 0x10d6, "MP3 player 1GB / EGOMAN MD223AFD", 0x2200, DEVICE_FLAG_UNLOAD_DRIVER},
  // Reported by Steven Black <stevenblack1956@users.sourceforge.net>
  // Obviously this company goes by many names.
  // This device is USB 2.0 only. Broken pipe on closing.
  // A later report indicates that this is also used by the iRiver E200
  { "Memorex or iRiver", 0x10d6, "MMP 8585/8586 or iRiver E200", 0x2300,
      DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_NO_RELEASE_INTERFACE},

  /*
   * Sirius
   */
  { "Sirius", 0x18f6, "Stiletto", 0x0102, DEVICE_FLAG_NONE },
  // Reported by Chris Bagwell <chris@cnpbagwell.com>
  { "Sirius", 0x18f6, "Stiletto 2", 0x0110, DEVICE_FLAG_NONE },

  /*
   * Nokia
   * Please verify the low device IDs here, I suspect these might be for
   * things like USB storage or modem mode actually, whereas the higher
   * range (0x04nn) could be for MTP. Some of the devices were gathered
   * from the Nokia WMP drivers:
   * http://nds2.nokia.com/files/support/global/phones/software/
   * Address was gathered from going to:
   * nseries.com
   * -> support
   * -> select supported device
   *  -> PC software
   *    -> Music software
   *      -> Windows Media Player 10 driver
   */
  // From: DoomHammer <gaczek@users.sourceforge.net>
  { "Nokia", 0x0421, "N81 Mobile Phone", 0x000a, DEVICE_FLAG_NONE },
  // From an anonymous SourceForge user
  { "Nokia", 0x0421, "6120c Classic Mobile Phone", 0x002e, DEVICE_FLAG_NONE },
  // From Stefano
  { "Nokia", 0x0421, "N96 Mobile Phone", 0x0039, DEVICE_FLAG_NONE },
  // From Martijn van de Streek <martijn@vandestreek.net>
  { "Nokia", 0x0421, "6500c Classic Mobile Phone", 0x003c, DEVICE_FLAG_NONE },
  // From: DoomHammer <gaczek@users.sourceforge.net>
  { "Nokia", 0x0421, "3110c Mobile Phone", 0x005f, DEVICE_FLAG_NONE },
  // From: Vasily <spc-@users.sourceforge.net>
  { "Nokia", 0x0421, "3109c Mobile Phone", 0x0065, DEVICE_FLAG_NONE },
  // From: <rawc@users.sourceforge.net>
  { "Nokia", 0x0421, "5310 XpressMusic", 0x006c, DEVICE_FLAG_NONE },
  // From: robin (AT) headbank D0Tco DOTuk
  { "Nokia", 0x0421, "N95 Mobile Phone 8GB", 0x006e, DEVICE_FLAG_NONE },
  // From Bastien Nocera <hadess@hadess.net>
  { "Nokia", 0x0421, "N82 Mobile Phone", 0x0074,
      DEVICE_FLAG_UNLOAD_DRIVER },
  // From Martijn van de Streek <martijn@vandestreek.net>
  { "Nokia", 0x0421, "N78 Mobile Phone", 0x0079, DEVICE_FLAG_NONE },
  // From William Pettersson <the_enigma@users.sourceforge.net>
  { "Nokia", 0x0421, "6220 Classic", 0x008d, DEVICE_FLAG_NONE },
  // From kellerkev@gmail.com
  { "Nokia", 0x0421, "N85 Mobile Phone", 0x0092, DEVICE_FLAG_NONE },
  // From Alexandre LISSY <lissyx@users.sourceforge.net>
  { "Nokia", 0x0421, "6210 Navigator", 0x0098, DEVICE_FLAG_NONE },
  // From: danielw
  { "Nokia", 0x0421, "E71", 0x00e4, DEVICE_FLAG_NONE },
  // From: Laurent Bigonville <bigon@users.sourceforge.net>
  { "Nokia", 0x0421, "E66", 0x00e5, DEVICE_FLAG_NONE },
  // From: Pier <pierlucalino@users.sourceforge.net>
  { "Nokia", 0x0421, "5320 XpressMusic", 0x00ea, DEVICE_FLAG_NONE },
  // From: Gausie <innerdreams@users.sourceforge.net>
  { "Nokia", 0x0421, "5800 XpressMusic", 0x0154,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // From: Willy Gardiol (web) <willy@gardiol.org>
  // Spurious errors for getting all objects, lead me to believe
  // this flag atleast is needed
  { "Nokia", 0x0421, "5800 XpressMusic v2", 0x0155,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // Yet another version... I think
  { "Nokia", 0x0421, "5800 XpressMusic v3", 0x0159,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // From an anonymous SourceForge user
  // Not verified to be MTP
  { "Nokia", 0x0421, "E63", 0x0179, DEVICE_FLAG_NONE },
  // Reported by: max g <exactt@users.sourceforge.net>
  // Reported by: oswillios <loswillios@users.sourceforge.net>
  { "Nokia", 0x0421, "N79", 0x0186, DEVICE_FLAG_NONE },
  // From an anonymous SourceForge user
  { "Nokia", 0x0421, "E71x", 0x01a1, DEVICE_FLAG_NONE },
  // From Ser <ser@users.sourceforge.net>
  { "Nokia", 0x0421, "E52", 0x01cf, DEVICE_FLAG_NONE },
  // From Marcus Meissner
  { "Nokia", 0x0421, "3710", 0x01ee, DEVICE_FLAG_NONE },
  // From: AxeL <axel__17@users.sourceforge.net>
  { "Nokia", 0x0421, "N97-1", 0x01f4, DEVICE_FLAG_NONE },
  // From: FunkyPenguin <awafaa@users.sourceforge.net>
  { "Nokia", 0x0421, "N97", 0x01f5, DEVICE_FLAG_NONE },
  // From: Anonymous SourceForge user
  { "Nokia", 0x0421, "5130 XpressMusic", 0x0209, DEVICE_FLAG_NONE },
  // From: Anonymous SourceForge user
  { "Nokia", 0x0421, "E72", 0x0221, DEVICE_FLAG_NONE },
  // From: Anonymous SourceForge user
  { "Nokia", 0x0421, "5530", 0x0229, DEVICE_FLAG_NONE },
  /* Grzegorz Woźniak <wozniakg@gmail.com> */
  { "Nokia", 0x0421, "E6", 0x032f, DEVICE_FLAG_NONE },
  // From: Anonymous SourceForge user
  { "Nokia", 0x0421, "N97 mini", 0x026b, DEVICE_FLAG_NONE },
  // From: Anonymous SourceForge user
  { "Nokia", 0x0421, "X6", 0x0274, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // From: Alexander Kojevnikov <alex-kay@users.sourceforge.net>
  { "Nokia", 0x0421, "6600i", 0x0297, DEVICE_FLAG_NONE },
  // From: Karthik Paithankar <whyagain2005@users.sourceforge.net>
  { "Nokia", 0x0421, "2710", 0x02c1, DEVICE_FLAG_NONE },
  // From: Mick Stephenson <MickStep@users.sourceforge.net>
  { "Nokia", 0x0421, "5230", 0x02e2, DEVICE_FLAG_NONE },
  // From: Lan Liu at Nokia <lan.liu@nokia.com>
  { "Nokia", 0x0421, "N8", 0x02fe, DEVICE_FLAG_NONE },
  // From: Lan Liu at Nokia <lan.liu@nokia.com>
  { "Nokia", 0x0421, "N8 (Ovi mode)", 0x0302, DEVICE_FLAG_NONE },
  // From: Martijn Hoogendoorn <m.hoogendoorn@gmail.com>
  { "Nokia", 0x0421, "E7", 0x0334, DEVICE_FLAG_NONE },
  // From: Raul Metsma <raul@innovaatik.ee>
  { "Nokia", 0x0421, "E7 (Ovi mode)", 0x0335, DEVICE_FLAG_NONE },
  // Reported by Serg <rd77@users.sourceforge.net>
  // Symbian phone
  { "Nokia", 0x0421, "C7", 0x03c1, DEVICE_FLAG_NONE },
  // Reported by Anonymous SourceForge user
  { "Nokia", 0x0421, "C7 (ID2)", 0x03cd, DEVICE_FLAG_NONE },
  // Reported by Anonymous SourceForge user
  { "Nokia", 0x0421, "N950", 0x03d2, DEVICE_FLAG_NONE },
  // From: http://nds2.nokia.com/files/support/global/phones/software/Nokia_3250_WMP10_driver.inf
  { "Nokia", 0x0421, "3250 Mobile Phone", 0x0462, DEVICE_FLAG_NONE },
  // From http://nds2.nokia.com/files/support/global/phones/software/Nokia_N93_WMP10_Driver.inf
  { "Nokia", 0x0421, "N93 Mobile Phone", 0x0478, DEVICE_FLAG_NONE },
  // From: http://nds2.nokia.com/files/support/global/phones/software/Nokia_5500_Sport_WMP10_driver.inf
  { "Nokia", 0x0421, "5500 Sport Mobile Phone", 0x047e, DEVICE_FLAG_NONE },
  // From http://nds2.nokia.com/files/support/global/phones/software/Nokia_N91_WMP10_Driver.inf
  { "Nokia", 0x0421, "N91 Mobile Phone", 0x0485, DEVICE_FLAG_NONE },
  // From: Christian Rusa <kristous@users.sourceforge.net>
  { "Nokia", 0x0421, "5700 XpressMusic Mobile Phone", 0x04b4, DEVICE_FLAG_NONE },
  // From: Mitchell Hicks <mitchix@yahoo.com>
  { "Nokia", 0x0421, "5300 Mobile Phone", 0x04ba, DEVICE_FLAG_NONE },
  // https://sourceforge.net/tracker/index.php?func=detail&aid=2692473&group_id=8874&atid=358874
  // From: Tiburce <tiburce@users.sourceforge.net>
  { "Nokia", 0x0421, "5200 Mobile Phone", 0x04be,
      DEVICE_FLAG_BROKEN_BATTERY_LEVEL },
  // From Christian Arnold <webmaster@arctic-media.de>
  { "Nokia", 0x0421, "N73 Mobile Phone", 0x04d1, DEVICE_FLAG_UNLOAD_DRIVER },
  // From Swapan <swapan@yahoo.com>
  { "Nokia", 0x0421, "N75 Mobile Phone", 0x04e1, DEVICE_FLAG_NONE },
  // From: http://nds2.nokia.com/files/support/global/phones/software/Nokia_N93i_WMP10_driver.inf
  { "Nokia", 0x0421, "N93i Mobile Phone", 0x04e5, DEVICE_FLAG_NONE },
  // From Anonymous Sourceforge User
  { "Nokia", 0x0421, "N95 Mobile Phone", 0x04ef, DEVICE_FLAG_NONE },
  // From: Pat Nicholls <pat@patandannie.co.uk>
  { "Nokia", 0x0421, "N80 Internet Edition (Media Player)", 0x04f1,
      DEVICE_FLAG_UNLOAD_DRIVER },
  // From: Maxin B. John <maxin.john@gmail.com>
  { "Nokia", 0x0421, "N9", 0x051a, DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/bugs/1308/ */
  { "Nokia", 0x0421, "N300", 0x0524, DEVICE_FLAG_NONE },
  { "Nokia", 0x0421, "C5-00", 0x0592, DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/bugs/1457/ */
  { "Nokia", 0x0421, "C5-00 (ID2)", 0x0595, DEVICE_FLAG_NONE },
  { "Nokia", 0x0421, "808 PureView", 0x05d3, DEVICE_FLAG_NONE },
  // Reported by Sampo Savola
  // Covers Lumia 920, 820 and probably any WP8 device.
  { "Nokia", 0x0421, "Lumia WP8", 0x0661, DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/bugs/1176/ */
  { "Nokia", 0x0421, "Lumia 301", 0x0666, DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/support-requests/146/ */
  { "Nokia", 0x0421, "XL", 0x06e8, DEVICE_FLAG_UNLOAD_DRIVER },
  /* https://sourceforge.net/p/libmtp/patches/69/
   * https://sourceforge.net/p/libmtp/bugs/1285/
   * ID is the same for various Lumia version.
   */
  { "Nokia", 0x0421, "Lumia (RM-975)", 0x06fc, DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/bugs/1453/ */
  { "Nokia", 0x0421, "X2 Dual Sim", 0x0708, DEVICE_FLAG_NONE },


  /*
   * Qualcomm
   * This vendor ID seems to be used a bit by others.
   */

  // Reported by Richard Wall <richard@the-moon.net>
  { "Qualcomm (for Nokia)", 0x05c6, "5530 Xpressmusic", 0x0229,
      DEVICE_FLAG_NONE },
  // One thing stated by reporter (Nokia model) another by the detect log...
  { "Qualcomm (for Nokia/Verizon)", 0x05c6, "6205 Balboa/Verizon Music Phone",
      0x3196, DEVICE_FLAG_NONE },
  { "Qualcomm (for Gigabyte)", 0x05c6, "GSmart G1342",
      0x8800, DEVICE_FLAG_NONE },
  { "Qualcomm (for Smartfren)", 0x05c6, "Andromax U",
      0x9025, DEVICE_FLAG_NONE },
  // New Android phone of the OnePlus brand : the One model
  { "Qualcomm (for OnePlus)", 0x05c6, "One (MTP)",
      0x6764, DEVICE_FLAGS_ANDROID_BUGS },
  { "Qualcomm (for OnePlus)", 0x05c6, "One (MTP+ADB)",
      0x6765, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1377/ */
  { "Qualcomm (for Xolo)", 0x901b, "Xolo Black (MTP)",
      0x9039, DEVICE_FLAGS_ANDROID_BUGS },

  { "Qualcomm (for PhiComm)", 0x05c6, "C230w (MTP)",
      0x9039, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1513/ */
  { "Qualcomm (for OnePlus)", 0x05c6, "One Plus 2 (A2003) (MTP)",
      0xf003, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1284/ */
  { "Qualcomm (for Highscreen)", 0x05c6, "Omega Prime S",
      0xf003, DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Vendor ID 0x13d1 is some offshoring company in China,
   * in one source named "A-Max Technology Macao Commercial
   * Offshore Co. Ltd." sometime "CCTech".
   */
  // Logik brand
  { "Logik", 0x13d1, "LOG DAX MP3 and DAB Player", 0x7002, DEVICE_FLAG_UNLOAD_DRIVER },
  // Technika brand
  // Reported by <Ooblick@users.sourceforge.net>
  { "Technika", 0x13d1, "MP-709", 0x7017, DEVICE_FLAG_UNLOAD_DRIVER },


  /*
   * RCA / Thomson
   */
  // From kiki <omkiki@users.sourceforge.net>
  { "Thomson", 0x069b, "EM28 Series", 0x0774, DEVICE_FLAG_NONE },
  { "Thomson / RCA", 0x069b, "Opal / Lyra MC4002", 0x0777, DEVICE_FLAG_NONE },
  { "Thomson", 0x069b, "Lyra MC5104B (M51 Series)", 0x077c, DEVICE_FLAG_NONE },
  { "Thomson", 0x069b, "RCA H106", 0x301a, DEVICE_FLAG_UNLOAD_DRIVER },
  // From Svenna <svenna@svenna.de>
  // Not confirmed to be MTP.
  { "Thomson", 0x069b, "scenium E308", 0x3028, DEVICE_FLAG_NONE },
  // From XNJB user
  { "Thomson / RCA", 0x069b, "Lyra HC308A", 0x3035, DEVICE_FLAG_NONE },

  /*
   * Fujitsu devices
   */
  { "Fujitsu, Ltd", 0x04c5, "F903iX HIGH-SPEED", 0x1140, DEVICE_FLAG_NONE },
  // Reported by Thomas Bretthauer
  { "Fujitsu, Ltd", 0x04c5, "STYLISTIC M532", 0x133b,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/137/ */
  { "Fujitsu, Ltd", 0x04c5, "F02-E", 0x1378,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1495/ */
  { "Fujitsu, Ltd", 0x04c5, "Arrows 202F", 0x13dd,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Palm device userland program named Pocket Tunes
   * Reported by Peter Gyongyosi <gyp@impulzus.com>
   */
  { "NormSoft, Inc.", 0x1703, "Pocket Tunes", 0x0001, DEVICE_FLAG_NONE },
  // Reported by anonymous submission
  { "NormSoft, Inc.", 0x1703, "Pocket Tunes 4", 0x0002, DEVICE_FLAG_NONE },

  /*
   * TrekStor, Medion and Maxfield devices
   * Their datasheet claims their devices are dualmode so probably needs to
   * unload the attached drivers here.
   */
  // Reported by Stefan Voss <svoss@web.de>
  // This is a Sigmatel SoC with a hard disk.
  { "TrekStor", 0x066f, "Vibez 8/12GB", 0x842a,
    DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by anonymous SourceForge user.
  // This one done for Medion, whatever that is. Error reported so assume
  // the same bug flag as its ancestor above.
  { "Medion", 0x066f, "MD8333 (ID1)", 0x8550,
    DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by anonymous SourceForge user
  { "Medion", 0x066f, "MD8333 (ID2)", 0x8588,
    DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  /* https://sourceforge.net/p/libmtp/bugs/1359/ */
  { "Verizon", 0x0408, "Ellipsis 7", 0x3899,
    DEVICE_FLAGS_ANDROID_BUGS },
  // The vendor ID is "Quanta Computer, Inc."
  // same as Olivetti Olipad 110
  // Guessing on device flags
  { "Medion", 0x0408, "MD99000 (P9514)/Olivetti Olipad 110", 0xb009,
    DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by Richard Eigenmann <richieigenmann@users.sourceforge.net>
  { "Medion", 0x0408, "Lifetab P9514", 0xb00a,
    DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by anonymous SourceForge user
  { "Maxfield", 0x066f, "G-Flash NG 1GB", 0x846c,
    DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by PaoloC <efmpsc@users.sourceforge.net>
  // Apparently SigmaTel has an SDK for MTP players with this ID
  { "SigmaTel Inc.", 0x066f, "MTPMSCN Audio Player", 0xa010,
    DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by Cristi Magherusan <majeru@gentoo.ro>
  { "TrekStor", 0x0402, "i.Beat Sweez FM", 0x0611,
    DEVICE_FLAG_UNLOAD_DRIVER },
  // Reported by Fox-ino <fox-ino@users.sourceforge.net>
  // No confirmation that this is really MTP so commented it out.
  // { "ALi Corp.", 0x0402, "MPMAN 2GB", 0x5668,
  // DEVICE_FLAG_UNLOAD_DRIVER },
  // Reported by Anonymous SourceForge user
  {"TrekStor", 0x1e68, "i.Beat Organix 2.0", 0x0002,
    DEVICE_FLAG_UNLOAD_DRIVER },

  /* Also Thalia Toline. https://sourceforge.net/p/libmtp/bugs/1156/ */
  {"iRiver", 0x1e68, "Tolino Tab 7", 0x1002,
    DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1694/ */
  {"iRiver", 0x1e68, "Tolino Tab 8", 0x1007,
    DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1699/ */
  {"Trekstor", 0x1e68, "SurfTab breeze 7.0 quad 3G", 0x1045,
    DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Disney/Tevion/MyMusix
   */
  // Reported by XNJB user
  { "Disney", 0x0aa6, "MixMax", 0x6021, DEVICE_FLAG_NONE },
  // Reported by anonymous Sourceforge user
  { "Tevion", 0x0aa6, "MD 81488", 0x3011, DEVICE_FLAG_NONE },
  // Reported by Peter Hedlund <peter@peterandlinda.com>
  { "MyMusix", 0x0aa6, "PD-6070", 0x9601, DEVICE_FLAG_UNLOAD_DRIVER |
    DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
    DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST |
    DEVICE_FLAG_NO_RELEASE_INTERFACE },

  /*
   * Cowon Systems, Inc.
   * The iAudio audiophile devices don't encourage the use of MTP.
   * See: http://wiki.xiph.org/index.php/PortablePlayers for Ogg
   * status
   */
  // Reported by Patrik Johansson <Patrik.Johansson@qivalue.com>
  { "Cowon", 0x0e21, "iAudio U3 (MTP mode)", 0x0701,
   DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
   DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN },
  // Reported by Kevin Michael Smith <hai-etlik@users.sourceforge.net>
  { "Cowon", 0x0e21, "iAudio 6 (MTP mode)", 0x0711,
   DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by Roberth Karman
  { "Cowon", 0x0e21, "iAudio 7 (MTP mode)", 0x0751,
   DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
   DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN },
  // Reported by an anonymous SourceForge user
  { "Cowon", 0x0e21, "iAudio U5 (MTP mode)", 0x0761,
   DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
   DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN },
  // Reported by TJ Something <tjbk_tjb@users.sourceforge.net>
  { "Cowon", 0x0e21, "iAudio D2 (MTP mode)", 0x0801,
   DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
   DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN },
  // Reported by anonymous Sourceforge user
  { "Cowon", 0x0e21, "iAudio D2+ FW 2.x (MTP mode)", 0x0861,
   DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
   DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN },
  // From Rockbox device listing
  { "Cowon", 0x0e21, "iAudio D2+ DAB FW 4.x (MTP mode)", 0x0871,
   DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
   DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN },
  // From Rockbox device listing
  { "Cowon", 0x0e21, "iAudio D2+ FW 3.x (MTP mode)", 0x0881,
   DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
   DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN },
  // From Rockbox device listing
  { "Cowon", 0x0e21, "iAudio D2+ DMB FW 1.x (MTP mode)", 0x0891,
   DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
   DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN },
  // Reported by <twkonefal@users.sourceforge.net>
  { "Cowon", 0x0e21, "iAudio S9 (MTP mode)", 0x0901,
   DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
   DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN },
  // Reported by Dan Nicholson <dbn.lists@gmail.com>
  { "Cowon", 0x0e21, "iAudio 9 (MTP mode)", 0x0911,
   DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
   DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN },
  // Reported by Franck VDL <franckv@users.sourceforge.net>
  { "Cowon", 0x0e21, "iAudio J3 (MTP mode)", 0x0921,
   DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
   DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN },
  // Reported by anonymous SourceForge user
  { "Cowon", 0x0e21, "iAudio X7 (MTP mode)", 0x0931,
   DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
   DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN },
  // Reported by anonymous SourceForge user
  { "Cowon", 0x0e21, "iAudio C2 (MTP mode)", 0x0941,
   DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
   DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN },
  { "Cowon", 0x0e21, "iAudio 10 (MTP mode)", 0x0952,
   DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
   DEVICE_FLAG_OGG_IS_UNKNOWN | DEVICE_FLAG_FLAC_IS_UNKNOWN },

  /*
   * Insignia, dual-mode.
   */
  { "Insignia", 0x19ff, "NS-DV45", 0x0303, DEVICE_FLAG_UNLOAD_DRIVER },
  // Reported by Rajan Bella <rajanbella@yahoo.com>
  { "Insignia", 0x19ff, "Sport Player", 0x0307, DEVICE_FLAG_UNLOAD_DRIVER },
  // Reported by "brad" (anonymous, sourceforge)
  { "Insignia", 0x19ff, "Pilot 4GB", 0x0309, DEVICE_FLAG_UNLOAD_DRIVER },

  /*
   * LG Electronics
   */
  // Uncertain if this is really the MTP mode device ID...
  { "LG Electronics Inc.", 0x043e, "T54", 0x7040,
      DEVICE_FLAG_UNLOAD_DRIVER },
  // Not verified - anonymous submission
  { "LG Electronics Inc.", 0x043e, "UP3", 0x70b1, DEVICE_FLAG_NONE },
  // Reported by Joseph Nahmias <joe@nahimas.net>
  { "LG Electronics Inc.", 0x1004, "VX8550 V CAST Mobile Phone", 0x6010,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
      DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR },
  // Reported by Cyrille Potereau <cyrille.potereau@wanadoo.fr>
  { "LG Electronics Inc.", 0x1004, "KC910 Renoir Mobile Phone", 0x608f,
      DEVICE_FLAG_UNLOAD_DRIVER },
  // Reported by Aaron Slunt <tongle@users.sourceforge.net>
  { "LG Electronics Inc.", 0x1004, "GR-500 Music Player", 0x611b,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
      DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR },
  { "LG Electronics Inc.", 0x1004, "KM900", 0x6132,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
      DEVICE_FLAG_UNLOAD_DRIVER },
  { "LG Electronics Inc.", 0x1004, "LG8575", 0x619a,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
      DEVICE_FLAG_UNLOAD_DRIVER },
  /*
   * These two are LG Android phones:
   * LG-F6
   * V909 G-Slate
   */
  { "LG Electronics Inc.", 0x1004, "Android phone (ID1)", 0x61f1,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "LG Electronics Inc.", 0x1004, "Android phone (ID2)", 0x61f9,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1007/ */
  { "LG Electronics Inc.", 0x1004, "LG VS980", 0x621c,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "LG Electronics Inc.", 0x1004, "LG2 Optimus", 0x6225,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1386/ */
  { "LG Electronics Inc.", 0x1004, "LG VS950", 0x622a,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "LG Electronics Inc.", 0x1004, "LG VS870", 0x6239,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/992/ */
  { "LG Electronics Inc.", 0x1004, "LG VS890", 0x623d,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/190/ */
  { "LG Electronics Inc.", 0x1004, "LG Optimus Zone 2", 0x6259,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1463/ */
  { "LG Electronics Inc.", 0x1004, "810 tablet", 0x6263,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "LG Electronics Inc.", 0x1004, "VK810", 0x6265,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/134/ */
  { "LG Electronics Inc.", 0x1004, "G3 (VS985)", 0x626e,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "LG Electronics Inc.", 0x1004, "G3", 0x627f,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1701/ */
  { "LG Electronics Inc.", 0x1004, "Transpyre", 0x628a,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/222/ */
  { "LG Electronics Inc.", 0x1004, "LG G5 Phone", 0x62ce,
      DEVICE_FLAGS_ANDROID_BUGS },
  /*
   * This VID+PID is used by a lot of LG models:
   * E430
   * E460
   * E610
   * E612
   * E617G
   * E970
   * P700
   */
  { "LG Electronics Inc.", 0x1004, "Various E and P models", 0x631c,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1294/ */
  { "LG Electronics Inc.", 0x1004, "LG G Flex 2", 0x633e,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Sony
   * It could be that these PIDs are one-per hundred series, so
   * NWZ-A8xx is 0325, NWZ-S5xx is 0x326 etc. We need more devices
   * reported to see a pattern here.
   */
  // Reported by Alessandro Radaelli <alessandro.radaelli@aruba.it>
  { "Sony", 0x054c, "NWZ-A815/NWZ-A818", 0x0325,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by anonymous Sourceforge user.
  { "Sony", 0x054c, "NWZ-S516", 0x0326,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Endre Oma <endre.88.oma@gmail.com>
  { "Sony", 0x054c, "NWZ-S615F/NWZ-S616F/NWZ-S618F", 0x0327,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Jean-Marc Bourguet <jm@bourguet.org>
  { "Sony", 0x054c, "NWZ-S716F", 0x035a,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Anon SF User / Anthon van der Neut <avanderneut@avid.com>
  { "Sony", 0x054c, "NWZ-A826/NWZ-A828/NWZ-A829", 0x035b,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Niek Klaverstijn <niekez@users.sourceforge.net>
  { "Sony", 0x054c, "NWZ-A726/NWZ-A728/NWZ-A768", 0x035c,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Mehdi AMINI <mehdi.amini - at - ulp.u-strasbg.fr>
  { "Sony", 0x054c, "NWZ-B135", 0x036e,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by <tiagoboldt@users.sourceforge.net>
  { "Sony", 0x054c, "NWZ-E436F", 0x0385,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Michael Wilkinson
  { "Sony", 0x054c, "NWZ-W202", 0x0388,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Ondrej Sury <ondrej@sury.org>
  { "Sony", 0x054c, "NWZ-S739F", 0x038c,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Marco Filipe Nunes Soares Abrantes Pereira <marcopereira@ua.pt>
  { "Sony", 0x054c, "NWZ-S638F", 0x038e,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Elliot <orwells@users.sourceforge.net>
  { "Sony", 0x054c, "NWZ-X1050B/NWZ-X1060B",
    0x0397, DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Silvio J. Gutierrez <silviogutierrez@users.sourceforge.net>
  { "Sony", 0x054c, "NWZ-X1051/NWZ-X1061", 0x0398,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Gregory Boddin <gregory@siwhine.net>
  { "Sony", 0x054c, "NWZ-B142F", 0x03d8,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Rick Warner <rick@reptileroom.net>
  { "Sony", 0x054c, "NWZ-E344/E345", 0x03fc,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Jonathan Stowe <gellyfish@users.sourceforge.net>
  { "Sony", 0x054c, "NWZ-E445", 0x03fd,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Anonymous SourceForge user
  { "Sony", 0x054c, "NWZ-S545", 0x03fe,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  { "Sony", 0x054c, "NWZ-A845", 0x0404,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by anonymous SourceForge user
  { "Sony", 0x054c, "NWZ-W252B", 0x04bb,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Suspect this device has strong DRM features
  // See https://answers.launchpad.net/ubuntu/+source/libmtp/+question/149587
  { "Sony", 0x054c, "NWZ-B153F", 0x04be,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  { "Sony", 0x054c, "NWZ-E354", 0x04cb,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Toni Burgarello
  { "Sony", 0x054c, "NWZ-S754", 0x04cc,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Hideki Yamane <henrich@debian.org>
  { "Sony", 0x054c, "Sony Tablet P1", 0x04d1,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by dmiceman
  { "Sony", 0x054c, "NWZ-B163F", 0x059a,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  { "Sony", 0x054c, "NWZ-E464", 0x05a6,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Reported by Jan Rheinlaender <jrheinlaender@users.sourceforge.net>
  { "Sony", 0x054c, "NWZ-S765", 0x05a8,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  // Olivier Keshavjee <olivierkes@users.sourceforge.net>
  { "Sony", 0x054c, "Sony Tablet S", 0x05b3,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by ghalambaz <ghalambaz@users.sourceforge.net>
  { "Sony", 0x054c, "Sony Tablet S1", 0x05b4,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Sony", 0x054c, "NWZ-B173F", 0x0689,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1540/ */
  { "Sony", 0x054c, "NWZ-E474", 0x06a9,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1688/ */
  { "Sony", 0x054c, "NWZ-E384", 0x0882,
      DEVICE_FLAGS_SONY_NWZ_BUGS },
  { "Sony", 0x054c, "DCR-SR75", 0x1294,
      DEVICE_FLAGS_SONY_NWZ_BUGS },

  /*
   * SonyEricsson
   * These initially seemed to support GetObjPropList but later revisions
   * of the firmware seem to have broken it, so all are flagged as broken
   * for now.
   */
  // Reported by Øyvind Stegard <stegaro@users.sourceforge.net>
  { "SonyEricsson", 0x0fce, "K850i", 0x0075,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by Michael Eriksson
  { "SonyEricsson", 0x0fce, "W910", 0x0076,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by Zack <zackdvd@users.sourceforge.net>
  { "SonyEricsson", 0x0fce, "W890i", 0x00b3,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by robert dot ahlskog at gmail
  { "SonyEricsson", 0x0fce, "W760i", 0x00c6,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by Linus Åkesson <linusakesson@users.sourceforge.net>
  { "SonyEricsson", 0x0fce, "C902", 0x00d4,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by an anonymous SourceForge user
  { "SonyEricsson", 0x0fce, "C702", 0x00d9,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by Christian Zuckschwerdt <christian@zuckschwerdt.org>
  { "SonyEricsson", 0x0fce, "W980", 0x00da,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by David Taylor <davidt-libmtp@yadt.co.uk>
  { "SonyEricsson", 0x0fce, "C905", 0x00ef,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by David House <dmhouse@users.sourceforge.net>
  { "SonyEricsson", 0x0fce, "W595", 0x00f3,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
      DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST },
  // Reported by Mattias Evensson <mevensson@users.sourceforge.net>
  { "SonyEricsson", 0x0fce, "W902", 0x00f5,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by Sarunas <sarunas@users.sourceforge.net>
  // Doesn't need any flags according to reporter
  { "SonyEricsson", 0x0fce, "T700", 0x00fb,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  // Reported by Stéphane Pontier <shadow_walker@users.sourceforge.net>
  { "SonyEricsson", 0x0fce, "W705/W715", 0x0105,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by Håkan Kvist
  { "SonyEricsson", 0x0fce, "W995", 0x0112,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by anonymous SourceForge user
  { "SonyEricsson", 0x0fce, "U5", 0x0133,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by Flo <lhugsereg@users.sourceforge.net>
  { "SonyEricsson", 0x0fce, "U8i", 0x013a,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by xirotyu <xirotyu@users.sourceforge.net>
  { "SonyEricsson", 0x0fce,  "j10i2 (Elm)", 0x0144,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by Serge Chirik <schirik@users.sourceforge.net>
  { "SonyEricsson", 0x0fce,  "j108i (Cedar)", 0x014e,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by Jonas Nyrén <spectralmks@users.sourceforge.net>
  { "SonyEricsson", 0x0fce, "W302", 0x10c8,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by Anonymous Sourceforge user
  { "SonyEricsson", 0x0fce,  "j10i (Elm)", 0xd144,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by Thomas Schweitzer <thomas_-_s@users.sourceforge.net>
  { "SonyEricsson", 0x0fce, "K550i", 0xe000,
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },

  /*
   * SonyEricsson/SONY Android devices usually have three personalities due to
   * using composite descriptors and the fact that Windows cannot distinguish
   * the device unless each composite descriptor is unique.
   *
   * Legend:
   * MTP = Media Transfer Protocol
   * UMS = USB Mass Storage Protocol
   * ADB = Android Debug Bridge Protocol
   * CDC = Communications Device Class, Internet Sharing
   *
   * 0x0nnn = MTP
   * 0x4nnn = MTP + UMS (for CD-ROM)
   * 0x5nnn = MTP + ADB
   * 0x6nnn = UMS + ADB
   * 0x7nnn = MTP + CDC
   * 0x8nnn = MTP + CDC + ADB
   * 0xannn = MTP + UMS (MTP for eMMC and UMS for external SD card)
   * 0xbnnn = MTP + UMS + ADB
   * 0xennn = UMS only
   *
   * The SonyEricsson and SONY devices have (at least) two deployed MTP
   * stacks: Aricent and Android. These have different bug flags, and
   * sometimes the same device has firmware upgrades moving it from
   * the Aricent to Android MTP stack without changing the device
   * VID+PID (first observed on the SK17i Xperia Mini Pro), so the
   * detection has to be more elaborate. The code in libmtp.c will do
   * this and assign the proper bug flags (hopefully).
   * That is why DEVICE_FLAG_NONE is used for these devices.
   *
   * Devices reported by:
   * Sony Mobile Communications (via Toby Collett)
   * Jonas Salling
   * Eamonn Webster <eweb@users.sourceforge.net>
   * Alejandro DC <Alejandro_DC@users.sourceforge.ne>
   * StehpanKa <stehp@users.sourceforge.net>
   * hdhoang <hdhoang@users.sourceforge.net>
   * Paul Taylor
   * Bruno Basilio <bbasilio@users.sourceforge.net>
   * Christoffer Holmstedt <christofferh@users.sourceforge.net>
   * equaeghe <equaeghe@users.sourceforge.net>
   * Ondra Lengal
   * Michael K. <kmike@users.sourceforge.net>
   * Jean-François  B. <changi67@users.sourceforge.net>
   * Eduard Bloch <blade@debian.org>
   * Ah Hong <hongster@users.sourceforge.net>
   * Eowyn Carter
   */
  { "SonyEricsson", 0x0fce,  "c1605 Xperia Dual E MTP", 0x0146,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "LT15i Xperia arc S MTP", 0x014f,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "MT11i Xperia Neo MTP", 0x0156,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "IS12S Xperia Acro MTP", 0x0157,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "MK16i Xperia MTP", 0x015a,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "R800/R88i Xperia Play MTP", 0x015d,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "ST18a Xperia Ray MTP", 0x0161,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "SK17i Xperia Mini Pro MTP", 0x0166,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "ST15i Xperia Mini MTP", 0x0167,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "ST17i Xperia Active MTP", 0x0168,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT26i Xperia S MTP", 0x0169,
      DEVICE_FLAG_NO_ZERO_READS },
  { "SONY", 0x0fce, "WT19i Live Walkman MTP", 0x016d,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "ST21i Xperia Tipo MTP", 0x0170,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "ST15i Xperia U MTP", 0x0171,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT22i Xperia P MTP", 0x0172,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "MT27i Xperia Sola MTP", 0x0173,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT26w Xperia Acro HD IS12S MTP", 0x0175,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT26w Xperia Acro HD SO-03D MTP", 0x0176,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT28at Xperia Ion MTP", 0x0177,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT29i Xperia GX MTP", 0x0178,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "ST27i/ST27a Xperia go MTP", 0x017e,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "ST23i Xperia Miro MTP", 0x0180,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "SO-05D Xperia SX MTP", 0x0181,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT30p Xperia T MTP", 0x0182,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT25i Xperia V MTP", 0x0186,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia J MTP", 0x0188,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia ZL MTP", 0x0189,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia E MTP", 0x018c,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Tablet Z MTP 1", 0x018d,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia L MTP", 0x0192,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z MTP", 0x0193,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Tablet Z MTP 2", 0x0194,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia SP MTP", 0x0195,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z Ultra MTP (ID2)", 0x0196,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia ZR MTP", 0x0197,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia A MTP", 0x0198,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia M MTP", 0x019b,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z Ultra MTP (ID3)", 0x019c,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z1 MTP", 0x019e,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia C MTP", 0x01a3,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z1 Compact D5503", 0x01a7,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia M2 MTP", 0x01aa,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia M2 Dual MTP", 0x01ab,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z2 MTP", 0x01af,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z3v MTP", 0x01b0,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia Z2 Tablet MTP", 0x01b1,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia E1 MTP", 0x01b5,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia Z Ultra MTP", 0x01b6,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia M2 Aqua MTP", 0x01b8,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia Z3 MTP", 0x01ba,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z3 Compact MTP", 0x01bb,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia E3 MTP", 0x01bc,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z3 Tablet MTP", 0x01c0,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria M4 Aqua Dual MTP", 0x01c4,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "E2115 MTP", 0x01c5,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria Z3+ MTP", 0x01c9,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria E4g MTP", 0x01cb,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "C4 Dual MTP", 0x01d2,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria M5 MTP", 0x01d6,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria Z5 MTP", 0x01d9,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria Z5 Compact MTP", 0x01da,
      DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/bugs/1649/ */
  { "SONY", 0x0fce, "XPeria XA MTP", 0x01de,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria XZ MTP", 0x01e7,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria X Compact MTP", 0x01e8,
      DEVICE_FLAG_NONE },


  /*
   * MTP+UMS personalities of MTP devices (see above)
   */
  { "SonyEricsson", 0x0fce, "IS12S Xperia Acro MTP+CDROM", 0x4157,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "ST17i Xperia Active MTP+CDROM", 0x4168,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT26i Xperia S MTP+CDROM", 0x4169,
      DEVICE_FLAG_NO_ZERO_READS },
  { "SONY", 0x0fce, "ST21i Xperia Tipo MTP+CDROM", 0x4170,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "ST25i Xperia U MTP+CDROM", 0x4171,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT22i Xperia P MTP+CDROM", 0x4172,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "MT27i Xperia Sola MTP+CDROM", 0x4173,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT26w Xperia Acro HD IS12S MTP+CDROM", 0x4175,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT26w Xperia Acro HD SO-03D MTP+CDROM", 0x4176,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT28at Xperia Ion MTP+CDROM", 0x4177,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT29i Xperia GX MTP+CDROM", 0x4178,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "ST27i/ST27a Xperia go MTP+CDROM", 0x417e,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "ST23i Xperia Miro MTP+CDROM", 0x4180,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "SO-05D Xperia SX MTP+CDROM", 0x4181,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT30p Xperia T MTP+CDROM", 0x4182,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT25i Xperia V MTP+CDROM", 0x4186,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia J MTP+CDROM", 0x4188,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia ZL MTP+CDROM", 0x4189,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia E MTP+CDROM", 0x418c,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Tablet Z MTP+CDROM 1", 0x418d,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia L MTP+CDROM", 0x4192,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z MTP+CDROM", 0x4193,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Tablet Z MTP+CDROM 2", 0x4194,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia SP MTP+CDROM", 0x4195,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia M MTP+CDROM", 0x419b,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z Ultra MTP+CDROM (ID3)", 0x419c,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z1 MTP+CDROM", 0x419e,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia C MTP+CDROM", 0x41a3,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z1 Compact D5503 MTP+CDROM", 0x41a7,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia M2 MTP+CDROM", 0x41aa,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia M2 Dual MTP+CDROM", 0x41ab,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z2 MTP+CDROM", 0x41af,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z3v MTP+CDROM", 0x41b0,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia Z2 Tablet MTP+CDROM", 0x41b1,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia E1 MTP+CDROM", 0x41b5,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia Z Ultra MTP+CDROM", 0x41b6,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia M2 Aqua MTP+CDROM", 0x41b8,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia Z3 MTP+CDROM", 0x41ba,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z3 Compact MTP+CDROM", 0x41bb,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia E3 MTP+CDROM", 0x41bc,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z3 Tablet MTP+CDROM", 0x41c0,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria M4 Aqua Dual MTP+CDROM", 0x41c4,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "E2115 MTP+CDROM", 0x41c5,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria Z3+ MTP+CDROM", 0x41c9,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria E4g MTP+CDROM", 0x41cb,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "C4 Dual MTP+CDROM", 0x41d2,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria M5 MTP+CDROM", 0x41d6,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria Z5 MTP+CDROM", 0x41d9,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria Z5 Compact MTP+CDROM", 0x41da,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria XA MTP+CDROM", 0x41de,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria XZ MTP+CDROM", 0x41e7,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria X Compact MTP+CDROM", 0x41e8,
      DEVICE_FLAG_NONE },

  /*
   * MTP+ADB personalities of MTP devices (see above)
   */
  { "SonyEricsson", 0x0fce,  "c1605 Xperia Dual E MTP+ADB", 0x5146,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "LT15i Xperia Arc MTP+ADB", 0x514f,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "MT11i Xperia Neo MTP+ADB", 0x5156,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "IS12S Xperia Acro MTP+ADB", 0x5157,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "MK16i Xperia MTP+ADB", 0x515a,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "R800/R88i Xperia Play MTP+ADB", 0x515d,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "ST18i Xperia Ray MTP+ADB", 0x5161,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "SK17i Xperia Mini Pro MTP+ADB", 0x5166,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "ST15i Xperia Mini MTP+ADB", 0x5167,
      DEVICE_FLAG_NONE },
  { "SonyEricsson", 0x0fce, "ST17i Xperia Active MTP+ADB", 0x5168,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT26i Xperia S MTP+ADB", 0x5169,
      DEVICE_FLAG_NO_ZERO_READS },
  { "SonyEricsson", 0x0fce, "WT19i Live Walkman MTP+ADB", 0x516d,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "ST21i Xperia Tipo MTP+ADB", 0x5170,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "ST25i Xperia U MTP+ADB", 0x5171,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT22i Xperia P MTP+ADB", 0x5172,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "MT27i Xperia Sola MTP+ADB", 0x5173,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "IS12S Xperia Acro HD MTP+ADB", 0x5175,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "SO-03D Xperia Acro HD MTP+ADB", 0x5176,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT28at Xperia Ion MTP+ADB", 0x5177,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT29i Xperia GX MTP+ADB", 0x5178,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "ST27i/ST27a Xperia go MTP+ADB", 0x517e,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "ST23i Xperia Miro MTP+ADB", 0x5180,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "SO-05D Xperia SX MTP+ADB", 0x5181,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT30p Xperia T MTP+ADB", 0x5182,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT25i Xperia V MTP+ADB", 0x5186,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia J MTP+ADB", 0x5188,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia ZL MTP+ADB", 0x5189,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia E MTP+ADB", 0x518c,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Tablet Z MTP+ADB 1", 0x518d,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia L MTP+ADB", 0x5192,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z MTP+ADB", 0x5193,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Tablet Z MTP+ADB 2", 0x5194,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia SP MTP+ADB", 0x5195,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z Ultra MTP+ADB (ID2)", 0x5196,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia ZR MTP+ADB", 0x5197,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia A MTP+ADB", 0x5198,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia M MTP+ADB", 0x519b,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z Ultra MTP+ADB (ID3)", 0x519c,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z1 MTP+ADB", 0x519e,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia C MTP+ADB", 0x51a3,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z1 Compact MTP+ADB", 0x51a7,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia M2 MTP+ADB", 0x51aa,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia M2 Dual MTP+ADB", 0x51ab,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z2 MTP+ADB", 0x51af,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z3v MTP+ADB", 0x51b0,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia Z2 Tablet MTP+ADB", 0x51b1,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia E1 MTP+ADB", 0x51b5,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia Z Ultra MTP+ADB", 0x51b6,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia M2 Aqua MTP+ADB", 0x51b8,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SONY", 0x0fce, "Xperia Z3 MTP+ADB", 0x51ba,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z3 Compact MTP+ADB", 0x51bb,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia E3 MTP+ADB", 0x51bc,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "Xperia Z3 Tablet MTP+ADB", 0x41c0,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria M4 Aqua Dual MTP+ADB", 0x51c4,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "E2115 MTP+ADB", 0x51c5,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria Z3+ MTP+ADB", 0x51c9,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce,  "XPeria E4g MTP+ADB", 0x51cb,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "C4 Dual MTP+ADB", 0x51d2,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria M5 MTP+ADB", 0x51d6,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria Z5 MTP+ADB", 0x51d9,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria Z5 Compact MTP+ADB", 0x51da,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria XA MTP+ADB", 0x51de,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria XZ MTP+ADB", 0x51e7,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "XPeria X Compact MTP+ADB", 0x51e8,
      DEVICE_FLAG_NONE },

  /*
   * MTP+UMS modes
   * This mode is for using MTP on the internal storage (eMMC)
   * and using UMS (Mass Storage Device Class) on the external
   * SD card
   */
  { "SONY", 0x0fce, "MT27i Xperia Sola MTP+UMS", 0xa173,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "IS12S Xperia Acro HD MTP+UMS", 0xa175,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "SO-03D Xperia Acro HD MTP+UMS", 0xa176,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT28at Xperia Ion MTP+UMS", 0xa177,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "ST27i/ST27a Xperia go MTP+UMS", 0xa17e,
      DEVICE_FLAG_NONE },

  /*
   * MTP+UMS+ADB modes
   * Like the above, but also ADB
   */
  { "SONY", 0x0fce, "MT27i Xperia Sola MTP+UMS+ADB", 0xb173,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "IS12S Xperia Acro MTP+UMS+ADB", 0xb175,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "SO-03D Xperia Acro MTP+UMS+ADB", 0xb176,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "LT28at Xperia Ion MTP+UMS+ADB", 0xb177,
      DEVICE_FLAG_NONE },
  { "SONY", 0x0fce, "ST27i/ST27a Xperia go MTP+UMS+ADB", 0xb17e,
      DEVICE_FLAG_NONE },


  /*
   * Motorola
   * Assume DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST on all of these.
   */
  /* https://sourceforge.net/p/libmtp/feature-requests/136/ */
  { "Motorola", 0x22b8, "XT1524 (MTP)", 0x002e,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by David Boyd <tiggrdave@users.sourceforge.net>
  { "Motorola", 0x22b8, "V3m/V750 verizon", 0x2a65,
      DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST |
      DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },
  { "Motorola", 0x22b8, "Atrix/Razr HD (MTP)", 0x2e32,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "Atrix/Razr HD (MTP+ADB)", 0x2e33,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "RAZR M XT907 (MTP)", 0x2e50,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "RAZR M XT907 (MTP+ADB)", 0x2e51,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1539/ */
  { "Motorola", 0x22b8, "Droid Turbo 2 (XT1585)", 0x2e61,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "Moto X (XT1053)", 0x2e62,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "Moto X (XT1058)", 0x2e63,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1323/ */
  { "Motorola", 0x22b8, "Moto X (XT1080)", 0x2e66,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "Droid Maxx (XT1080)", 0x2e67,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "Droid Ultra", 0x2e68,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "Moto G (ID1)", 0x2e76,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "Moto G (ID2)", 0x2e82,
      DEVICE_FLAGS_ANDROID_BUGS & ~(DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL|DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST)},
  /* https://sourceforge.net/p/libmtp/bugs/1030/, PTP Id */
  { "Motorola", 0x22b8, "Moto G (XT1032)", 0x2e84,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1477/ */
  { "Motorola", 0x22b8, "Moto Maxx (XT1225)", 0x2ea4,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/189/ */
  { "Motorola", 0x22b8, "MB632", 0x2dff,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by Jader Rodrigues Simoes <jadersimoes@users.sourceforge.net>
  { "Motorola", 0x22b8, "Xoom 2 Media Edition (ID3)", 0x41cf,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by Steven Roemen <sdroemen@users.sourceforge.net>
  { "Motorola", 0x22b8, "Droid X/MB525 (Defy)", 0x41d6,
      DEVICE_FLAG_NONE },
  { "Motorola", 0x22b8, "DROID2 (ID1)", 0x41da,
      DEVICE_FLAG_NONE },
  { "Motorola", 0x22b8, "Milestone / Verizon Droid", 0x41dc,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "DROID2 (ID2)", 0x42a7,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "Xoom 2 Media Edition (ID2)", 0x4306,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "Xoom 2 Media Edition", 0x4311,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by  B,H,Kissinger <mrkissinger@users.sourceforge.net>
  { "Motorola", 0x22b8, "XT912/XT928", 0x4362,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1104/ , PTP id. */
  { "Motorola", 0x22b8, "DROID4 (PTP)", 0x4373,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by Lundgren <alundgren@users.sourceforge.net>
  { "Motorola", 0x22b8, "DROID4", 0x437f,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by Marcus Meissner to libptp2
  { "Motorola", 0x22b8, "IdeaPad K1", 0x4811,
      DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST },
  // Reported by Hans-Joachim Baader <hjb@pro-linux.de> to libptp2
  { "Motorola", 0x22b8, "A1200", 0x60ca,
      DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST },
  // http://mark.cdmaforums.com/Files/Motdmmtp.inf
  { "Motorola", 0x22b8, "MTP Test Command Interface", 0x6413,
      DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST },
  // Reported by anonymous user
  { "Motorola", 0x22b8, "RAZR2 V8/U9/Z6", 0x6415,
      DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST },
  // Reported by Rodrigo Angelo Rafael
  // Razr D1, D3
  { "Motorola", 0x22b8, "Razr D1/D3/i (MTP)", 0x64b5,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "Razr D1/D3/i (MTP+?)", 0x64b6,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/697/ */
  { "Motorola", 0x22b8, "Atrix XT687 (MTP)", 0x64cf,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by Brian Dolbec <dol-sen@users.sourceforge.net>
  { "Motorola", 0x22b8, "Atrix MB860 (MTP)", 0x7088,
      DEVICE_FLAGS_ANDROID_BUGS },
  /*
   * Motorola Xoom (Wingray) variants
   *
   * These devices seem to use these product IDs simulatenously
   * https://code.google.com/p/android-source-browsing/source/browse/init.stingray.usb.rc?repo=device--moto--wingray
   *
   * 0x70a3 - Factory test - reported as early MTP ID
   * 0x70a8 - MTP
   * 0x70a9 - MTP+ADB
   * 0x70ae - RNDIS
   * 0x70af - RNDIS+ADB
   * 0x70b0 - ACM
   * 0x70b1 - ACM+ADB
   * 0x70b2 - ACM+RNDIS
   * 0x70b3 - ACM+RNDIS+ADB
   * 0x70b4 - PTP
   * 0x70b5 - PTP+ADB
   *
   * Reported by Google Inc's Yavor Goulishev <yavor@google.com>
   */
  { "Motorola", 0x22b8, "Xoom (Factory test)", 0x70a3,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "Xoom (MTP)", 0x70a8,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "Xoom (MTP+ADB)", 0x70a9,
      DEVICE_FLAGS_ANDROID_BUGS },
  // "carried by C Spire and other CDMA US carriers"
  { "Motorola", 0x22b8, "Milestone X2", 0x70ca,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "XT890/907/Razr (MTP)", 0x710d,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "XT890/907/Razr (MTP+ADB)", 0x710e,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1183/ */
  { "Motorola", 0x22b8, "Droid Turbo (XT1254)", 0x2ea5,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Motorola", 0x22b8, "Droid Turbo Verizon", 0x2ea8,
      DEVICE_FLAGS_ANDROID_BUGS },
  /*
   * XT890/907/Razr
   * 710f is USB mass storage
   */

  /*
   * Google
   * These guys lend their Vendor ID to anyone who comes down the
   * road to produce an Android tablet it seems... The Vendor ID
   * was originally used for Nexus phones
   */
  { "Google Inc (for Allwinner)", 0x18d1, "A31 SoC", 0x0006,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Google Inc (for Ainol Novo)", 0x18d1, "Fire/Flame", 0x0007,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Google Inc (for Sony)", 0x18d1, "S1", 0x05b3,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/218/ */
  { "Google Inc (for Fairphone)", 0x18d1, "Fairphone 2", 0x0a07,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by anonymous Sourceforge user
  { "Google Inc (for Barnes & Noble)", 0x18d1, "Nook Color", 0x2d02,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by anonymous Sourceforge user
  { "Google Inc (for Asus)", 0x18d1, "TF201 Transformer", 0x4d00,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by anonymous Sourceforge user
  { "Google Inc (for Asus)", 0x18d1, "TF101 Transformer", 0x4e0f,
      DEVICE_FLAGS_ANDROID_BUGS },
  // 0x4e21 (Nexus S) is a USB Mass Storage device.
  { "Google Inc (for Samsung)", 0x18d1, "Nexus S (MTP)", 0x4e25,
      DEVICE_FLAGS_ANDROID_BUGS },
  // 0x4e26 is also used by "Ramos W30HD Pro Quad Core"
  { "Google Inc (for Samsung)", 0x18d1, "Nexus S (MTP+ADB)", 0x4e26,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by Chris Smith <tcgsmythe@users.sourceforge.net>
  { "Google Inc (for Asus)", 0x18d1, "Nexus 7 (MTP)", 0x4e41,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by Michael Hess <mhess126@gmail.com>
  { "Google Inc (for Asus)", 0x18d1, "Nexus 7 (MTP+ADB)", 0x4e42,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Google Inc", 0x18d1, "Nexus/Pixel (MTP)", 0x4ee1,
      (DEVICE_FLAGS_ANDROID_BUGS | DEVICE_FLAG_PROPLIST_OVERRIDES_OI) & ~DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  { "Google Inc", 0x18d1, "Nexus/Pixel (MTP+ADB)", 0x4ee2,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1255/ */
  { "Google Inc", 0x18d1, "Nexus/Pixel (PTP)", 0x4ee5,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Google Inc", 0x18d1, "Nexus/Pixel (PTP+ADB)", 0x4ee6,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1444/ */
  { "Google", 0x18d1, "Pixel C (MTP)", 0x5202,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Google", 0x18d1, "Pixel C (MTP+ADB)", 0x5203,
      DEVICE_FLAGS_ANDROID_BUGS },
  // WiFi-only version of Xoom
  // See: http://bugzilla.gnome.org/show_bug.cgi?id=647506
  { "Google Inc (for Motorola)", 0x18d1, "Xoom (MZ604)", 0x70a8,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Google Inc (for Toshiba)", 0x18d1, "Thrive 7/AT105", 0x7102,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Google Inc (for Lenovo)", 0x18d1, "Ideapad K1", 0x740a,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Another OEM for Medion
  { "Google Inc (for Medion)", 0x18d1, "MD99000 (P9514)", 0xb00a,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1563/ */
  { "Meizu", 0x18d1, "Pro 5 Ubuntu Phone", 0xd001, DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by Frederik Himpe <fhimpe@telenet.be>
  { "Google Inc (for LG Electronics)", 0x18d1, "P990/Optimus (Cyanogen)",
      0xd109, DEVICE_FLAGS_ANDROID_BUGS },
  { "Google Inc (for LG Electronics)", 0x18d1, "P990/Optimus", 0xd10a,
      DEVICE_FLAGS_ANDROID_BUGS },


  /*
   * Media Keg
   */
  // Reported by Rajan Bella <rajanbella@yahoo.com>
  { "Kenwood", 0x0b28, "Media Keg HD10GB7 Sport Player", 0x100c, DEVICE_FLAG_UNLOAD_DRIVER},

  /*
   * Micro-Star International (MSI)
   */
  // Reported by anonymous sourceforge user.
  { "Micro-Star International", 0x0db0, "P610/Model MS-5557", 0x5572, DEVICE_FLAG_NONE },

  /*
   * FOMA
   */
  { "FOMA", 0x06d3, "D905i", 0x21ba, DEVICE_FLAG_NONE },

  /*
   * Haier
   */
  // Both reported by an anonymous SourceForge user
  // This is the 30 GiB model
  { "Haier", 0x1302, "Ibiza Rhapsody 1", 0x1016, DEVICE_FLAG_NONE },
  // This is the 4/8 GiB model
  { "Haier", 0x1302, "Ibiza Rhapsody 2", 0x1017, DEVICE_FLAG_NONE },

  /*
   * Panasonic
   */
  // Reported by dmizer
  { "Panasonic", 0x04da, "P905i", 0x2145, DEVICE_FLAG_NONE },
  // Reported by Taku
  { "Panasonic", 0x04da, "P906i", 0x2158, DEVICE_FLAG_NONE },

  /*
   * Polaroid
   */
  { "Polaroid", 0x0546, "Freescape/MPU-433158", 0x2035, DEVICE_FLAG_NONE },

  /*
   * Pioneer
   */
  // Reported by Dan Allen <dan.j.allen@gmail.com>
  { "Pioneer", 0x08e4, "XMP3", 0x0148, DEVICE_FLAG_NONE },

  /*
   * Slacker Inc.
   * Put in all evilness flags because it looks fragile.
   */
  // Reported by Pug Fantus <pugfantus@users.sourceforge.net>
  { "Slacker Inc.", 0x1bdc, "Slacker Portable Media Player", 0xfabf,
    DEVICE_FLAG_BROKEN_BATTERY_LEVEL | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
    DEVICE_FLAG_BROKEN_SET_OBJECT_PROPLIST | DEVICE_FLAG_BROKEN_SEND_OBJECT_PROPLIST },

  // Reported by anonymous user
  { "Conceptronic", 0x1e53, "CMTD2", 0x0005, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by Demadridsur <demadridsur@gmail.com>
  { "O2 Sistemas", 0x1e53, "ZoltarTV", 0x0006, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },
  // Reported by da-beat <dabeat@gmail.com>
  { "Wyplay", 0x1e53, "Wyplayer", 0x0007, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },

  // Reported by Sense Hofstede <qense@users.sourceforge.net>
  { "Perception Digital, Ltd", 0x0aa6, "Gigaware GX400", 0x9702, DEVICE_FLAG_NONE },

  /*
   * RIM's BlackBerry
   */
  // Reported by Nicolas VIVIEN <nicolas@vivien.fr>
  { "RIM", 0x0fca, "BlackBerry Storm/9650", 0x8007, DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_SWITCH_MODE_BLACKBERRY | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },

  /* https://sourceforge.net/p/libmtp/bugs/1551/ */
  { "RIM", 0x0fca, "BlackBerry Priv", 0x8031, DEVICE_FLAG_UNLOAD_DRIVER |
      DEVICE_FLAG_SWITCH_MODE_BLACKBERRY | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL },

  /* https://sourceforge.net/p/libmtp/bugs/1658/ */
  { "RIM", 0x0fca, "BlackBerry Dtek 60", 0x8041, DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Nextar
   */
  { "Nextar", 0x0402, "MA715A-8R", 0x5668, DEVICE_FLAG_NONE },

  /*
   * Coby
   */
  { "Coby", 0x1e74, "COBY MP705", 0x6512, DEVICE_FLAG_NONE },

#if 0
  /*
   * Apple devices, which are not MTP natively but can be made to speak MTP
   * using PwnTunes (http://www.pwntunes.net/)
   * CURRENTLY COMMENTED OUT:
   * These will make the UDEV rules flag these as MTP devices even if
   * PwnTunes is NOT installed. That is unacceptable, so a better solution
   * that actually inspects if the device has PwnTunes/MTP support needs
   * to be found, see:
   * https://sourceforge.net/p/libmtp/bugs/759/
   */
  { "Apple", 0x05ac, "iPhone", 0x1290, DEVICE_FLAG_NONE },
  { "Apple", 0x05ac, "iPod Touch 1st Gen", 0x1291, DEVICE_FLAG_NONE },
  { "Apple", 0x05ac, "iPhone 3G", 0x1292, DEVICE_FLAG_NONE },
  { "Apple", 0x05ac, "iPod Touch 2nd Gen", 0x1293, DEVICE_FLAG_NONE },
  { "Apple", 0x05ac, "iPhone 3GS", 0x1294, DEVICE_FLAG_NONE },
  { "Apple", 0x05ac, "0x1296", 0x1296, DEVICE_FLAG_NONE },
  { "Apple", 0x05ac, "0x1297", 0x1297, DEVICE_FLAG_NONE },
  { "Apple", 0x05ac, "0x1298", 0x1298, DEVICE_FLAG_NONE },
  { "Apple", 0x05ac, "iPod Touch 3rd Gen", 0x1299, DEVICE_FLAG_NONE },
  { "Apple", 0x05ac, "iPad", 0x129a, DEVICE_FLAG_NONE },
#endif

  // Reported by anonymous SourceForge user, also reported as
  // Pantech Crux, claming to be:
  // Manufacturer: Qualcomm
  // Model: Windows Simulator
  // Device version: Qualcomm MTP1.0
  { "Curitel Communications, Inc.", 0x106c,
      "Verizon Wireless Device", 0x3215, DEVICE_FLAG_NONE },
  // Reported by: Jim Hanrahan <goshawkjim@users.sourceforge.net>
  { "Pantech", 0x106c, "Crux", 0xf003, DEVICE_FLAG_NONE },

  /* https://sourceforge.net/p/libmtp/feature-requests/208/ */
  { "Asus", 0x0b05, "Zenfone Go (ZC500TG)", 0x2008, DEVICE_FLAGS_ANDROID_BUGS },
  /*
   * Asus
   * Pattern of PIDs on Android devices seem to be:
   * n+0 = MTP
   * n+1 = MTP+ADB
   * n+2 = ?
   * n+3 = ?
   * n+4 = PTP
   */
  // Reported by Glen Overby
  { "Asus", 0x0b05, "TF300 Transformer (MTP)", 0x4c80,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by jaile <jaile@users.sourceforge.net>
  { "Asus", 0x0b05, "TF300 Transformer (MTP+ADB)", 0x4c81,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Repored by Florian Apolloner <f-apolloner@users.sourceforge.net>
  { "Asus", 0x0b05, "TF700 Transformer (MTP)", 0x4c90,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "TF700 Transformer (MTP+ADB)", 0x4c91,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "TF701T Transformer Pad (MTP)", 0x4ca0,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "TF701T Transformer Pad (MTP+ADB)", 0x4ca1,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/135/ */
  { "Asus", 0x0b05, "ME302KL MeMo Pad FHD10 (MTP)", 0x4cc0,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "ME302KL MeMo Pad FHD10 (MTP+ADB)", 0x4cc1,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "ME301T MeMo Pad Smart 10 (MTP)", 0x4cd0,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "ME301T MeMo Pad Smart 10 (MTP+ADB)", 0x4cd1,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "Asus Fonepad Note 6 (MTP)", 0x4ce0,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "Asus Fonepad Note 6 (MTP+ADB)", 0x4ce1,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "TF201 Transformer Prime (keyboard dock)", 0x4d00,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "TF201 Transformer Prime (tablet only)", 0x4d01,
      DEVICE_FLAGS_ANDROID_BUGS },
  // 4d04 is the PTP mode, don't add it
  { "Asus", 0x0b05, "SL101 (MTP)", 0x4e00,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "SL101 (MTP+ADB)", 0x4e01,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "TF101 Eeepad Transformer (MTP)", 0x4e0f,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "TF101 Eeepad Transformer (MTP+ADB)", 0x4e1f,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "Fonepad", 0x514f,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "PadFone (MTP)", 0x5200,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "PadFone (MTP+ADB)", 0x5201,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "ME302C MemoPad (MTP+?)", 0x520f,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "PadFone 2 (MTP)", 0x5210,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "PadFone 2 (MTP+ADB)", 0x5211,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "PadFone 2 (PTP)", 0x5214,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "ME302C MemoPad (MTP)", 0x521f,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1066/ */
  { "Asus", 0x0b05, "PadFone Infinity (2nd ID) (MTP)", 0x5220,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "PadFone Infinity (2nd ID) (MTP+ADB)", 0x5221,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "PadFone Infinity (MTP)", 0x5230,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "PadFone Infinity (MTP+ADB)", 0x5231,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "Memo ME172V (MTP)", 0x5400,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1072/ */
  { "Asus", 0x0b05, "Fonepad 7 LTE ME372CL (MTP)", 0x540f,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "Memo ME173X (MTP)", 0x5410,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "Memo ME173X (MTP+ADB)", 0x5411,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1072/ */
  { "Asus", 0x0b05, "Fonepad 7 LTE ME372CL (MTP+ADB)", 0x541f,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "Memo K00F (MTP)", 0x5460,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "Memo Pad 8 (MTP)", 0x5466,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "Memo K00F (MTP+ADB)", 0x5468,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/158/ */
  { "Asus", 0x0b05, "ZenFone 5 (MTP)", 0x5480,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1279/ */
  { "Asus", 0x0b05, "ZenFone 5 (MTP+ADB)", 0x5481,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1236/ */
  { "Asus", 0x0b05, "ZenFone 6 (MTP)", 0x5490,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "ZenFone 6 (MTP+ADB)", 0x5491,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1239/ */
  { "Asus", 0x0b05, "K010 (MTP)", 0x5500,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1196/ */
  { "Asus", 0x0b05, "MemoPad 7 (MTP+ADB)", 0x5506,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1069/ */
  { "Asus", 0x0b05, "K00E (MTP+ADB)", 0x550f,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1244/ */
  { "Asus", 0x0b05, "MemoPad 8 ME181 CX (MTP)", 0x5561,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1406/ */
  { "Asus", 0x0b05, "Zenfone 2 (MTP)", 0x5600,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1364/ */
  { "Asus", 0x0b05, "Z00AD (MTP)", 0x5601,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "TX201LA (MTP)", 0x561f,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1271/ */
  { "Asus", 0x0b05, "ZenFone 4 (MTP)", 0x580f,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1179/ */
  { "Asus", 0x0b05, "ZenFone 4 A400CG (MTP)", 0x581f,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1548/ */
  { "Asus", 0x0b05, "ASUS FonePad 8 FE380CG (MTP)", 0x590f,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1258/ */
  { "Asus", 0x0b05, "A450CG (MTP)", 0x5a0f,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1546/ */
  { "Asus", 0x0b05, "ZenPad 80 (MTP)", 0x5e0f,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1350/ */
  { "Asus", 0x0b05, "Zenfone 2 ZE550ML (MTP)", 0x5f02,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1364/ */
  { "Asus", 0x0b05, "Zenfone 2 ZE551ML (MTP)", 0x5f03,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1642/ */
  { "Asus", 0x0b05, "ME581CL", 0x7770,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1232/ */
  { "Asus", 0x0b05, "MemoPad 7 (ME572CL)", 0x7772,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1351/ */
  { "Asus", 0x0b05, "Fonepad 7 (FE375CXG)", 0x7773,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Asus", 0x0b05, "ZenFone 5 A500KL (MTP)", 0x7780,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1247/ */
  { "Asus", 0x0b05, "ZenFone 5 A500KL (MTP+ADB)", 0x7781,
      DEVICE_FLAGS_ANDROID_BUGS },


  /*
   * Lenovo
   */
  /* https://sourceforge.net/p/libmtp/support-requests/178/ */
  { "Lenovo", 0x17ef, "P70-A", 0x0c02,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1415/ */
  { "Lenovo", 0x17ef, "P70", 0x2008,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by Richard Körber <shredzone@users.sourceforge.net>
  { "Lenovo", 0x17ef, "K1", 0x740a,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by anonymous sourceforge user
  // Adding Android default bug flags since it appears to be an Android
  { "Lenovo", 0x17ef, "ThinkPad Tablet", 0x741c,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Medion is using Lenovos manufacturer ID it seems.
  // Reported by Thomas Goss <thomas.goss@linux.com>
  { "Medion", 0x17ef, "Lifetab P9516", 0x7483,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by: XChesser <XChesser@users.sourceforge.net>
  { "Lenovo", 0x17ef, "P700", 0x7497,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1185/ */
  { "Lenovo", 0x17ef, "A820", 0x7498,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1190/ */
  { "Lenovo", 0x17ef, "P780", 0x74a6,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by: anonymous sourceforge user
  { "Lenovo", 0x17ef, "Lifetab S9512", 0x74cc,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/217/ */
  { "Lenovo", 0x17ef, "Vibe K5", 0x74ee,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/170/ */
  { "Lenovo", 0x17ef, "S660", 0x74f8,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by Brian J. Murrell
  { "Lenovo", 0x17ef, "IdeaTab A2109A", 0x7542,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/166/ */
  { "Lenovo", 0x17ef, "IdeaTab S2210a", 0x757d,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1529/ */
  { "Lenovo", 0x17ef, "K900 (ID2)", 0x75b3,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1123/ */
  { "Lenovo", 0x17ef, "K900 (ID1)", 0x75b5,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by rvelev@mail.bg
  { "Lenovo", 0x17ef, "IdeaPad A3000 (ID1)", 0x75bc,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Lenovo", 0x17ef, "IdeaPad A3000 (ID2)", 0x75be,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/232/ */
  { "Lenovo", 0x17ef, "A706", 0x7614,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Lenovo", 0x17ef, "IdeaTab S5000", 0x76e8,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Lenovo", 0x17ef, "Toga Tablet B6000-F", 0x76f2,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1155/ */
  { "Lenovo", 0x17ef, "Yoga Tablet 10 B8000-H", 0x76ff,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1673/ */
  { "Lenovo", 0x17ef, "S960", 0x770a,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1597/ */
  { "Lenovo", 0x17ef, "K910SS", 0x7713,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1122/ */
  { "Lenovo", 0x17ef, "S930", 0x7718,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1250/ */
  { "Lenovo", 0x17ef, "A5500-F", 0x772b,
      DEVICE_FLAGS_ANDROID_BUGS },
  /*  https://sourceforge.net/p/libmtp/bugs/1391/ */
  { "Lenovo", 0x17ef, "A7600-F", 0x7731,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1291/ */
  { "Lenovo", 0x17ef, "A3500-F", 0x7737,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1556/ */
  { "Lenovo", 0x17ef, "A3500-FL", 0x7738,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Lenovo", 0x17ef, "LifeTab E733X", 0x775a,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1595/ */
  { "Lenovo", 0x17ef, "K920", 0x778f,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/186/ */
  { "Lenovo", 0x17ef, "Yoga Tablet 2 - 1050F", 0x77a4,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/168/ */
  { "Lenovo", 0x17ef, "Yoga Tablet 2 Pro", 0x77b1,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/219/ */
  { "Lenovo", 0x17ef, "Tab S8-50F", 0x77d8,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/125/ */
  { "Lenovo", 0x17ef, "Vibe Z2", 0x77ea,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1360/ */
  { "Lenovo", 0x17ef, "K3 Note", 0x7883,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1488/ */
  { "Lenovo", 0x17ef, "A10-70F", 0x789a,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1497/ */
  { "Lenovo", 0x17ef, "A10-70L", 0x789b,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1480/ */
  { "Medion", 0x17ef, "P8312 Tablet", 0x78ae,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/201/ */
  { "Lenovo", 0x17ef, "Lifetab S1034X", 0x78b0,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1572/ */
  { "Lenovo", 0x17ef, "PHAB Plus", 0x78d1,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1562/ */
  { "Lenovo", 0x17ef, "Vibe K4 Note", 0x78f6,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/213/ */
  { "Lenovo", 0x17ef, "Vibe P1 Pro", 0x78fc,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1531/ */
  { "Lenovo", 0x17ef, "Vibe X", 0x7902,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/235/ */
  { "Lenovo", 0x17ef, "P1ma40", 0x7921,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1465/ */
  { "Lenovo", 0x17ef, "A1000 Smartphone", 0x7928,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1465/ */
  { "Lenovo", 0x17ef, "A1000 Smartphone ADB", 0x7929,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/224/ */
  { "Lenovo", 0x17ef, "Yoga 10 Tablet YT3-X50F", 0x7932,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/204/ */
  { "Lenovo", 0x17ef, "TAB 2 A10-30", 0x7949,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Lenovo", 0x17ef, "K5", 0x7993,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Lenovo", 0x17ef, "Vibe K5 Note", 0x7999,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1664/ */
  { "Lenovo", 0x17ef, "Vibe K4", 0x79b7,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/242/ */
  { "Lenovo", 0x17ef, "Tab 3 10 Plus", 0x79de,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1624/ */
  { "Lenovo", 0x17ef, "B Smartphone", 0x7a18,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1679/ */
  { "Lenovo", 0x17ef, "C2", 0x7a36,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Huawei
   * IDs used by Honor U8860,U8815,U9200,P2
   */
  { "Huawei", 0x12d1, "MTP device (ID1)", 0x1051,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Huawei", 0x12d1, "MTP device (ID2)", 0x1052,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1507/ */
  { "Huawei", 0x12d1, "Honor 7", 0x1074,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1381/ */
  { "Huawei", 0x12d1, "H60-L11", 0x1079,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1550/ */
  { "Huawei", 0x12d1, "H60-L12", 0x107a,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1640/ */
  { "Huawei", 0x12d1, "Nova", 0x107d,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/173/ */
  { "Huawei", 0x12d1, "P9 Plus", 0x107e,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1361/ */
  { "Huawei", 0x12d1, "Ascend P8", 0x1082,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1418/ */
  { "Huawei", 0x12d1, "Honor 3C", 0x2012,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1629/ */
  { "Huawei", 0x12d1, "Y320-U10", 0x2406,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1703/ */
  { "Huawei", 0x12d1, "Y625-U03", 0x255d,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/186/ */
  { "Huawei", 0x12d1, "Y360-U61", 0x2567,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/205/ */
  { "Huawei", 0x12d1, "Y360-U03", 0x256b,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/227/ */
  { "Huawei", 0x12d1, "Y560-L01", 0x259c,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1695/
   * Seth Brown on libmtp-discuss
   */
  { "Huawei", 0x12d1, "CUN-U29", 0x2608,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Huawei", 0x12d1, "Mediapad (mode 0)", 0x360f,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by Bearsh <bearsh@users.sourceforge.net>
  { "Huawei", 0x12d1, "Mediapad (mode 1)", 0x361f,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * ZTE
   * Android devices reported by junwang <lovewjlove@users.sourceforge.net>
   */
  { "ZTE", 0x19d2, "V55 ID 1", 0x0244, DEVICE_FLAGS_ANDROID_BUGS },
  { "ZTE", 0x19d2, "V55 ID 2", 0x0245, DEVICE_FLAGS_ANDROID_BUGS },
  { "ZTE", 0x19d2, "V790/Blade 3", 0x0306, DEVICE_FLAGS_ANDROID_BUGS },
  { "ZTE", 0x19d2, "V880E", 0x0307, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/672/ */
  { "ZTE", 0x19d2, "Grand X In", 0x0343, DEVICE_FLAGS_ANDROID_BUGS },
  { "ZTE", 0x19d2, "V985", 0x0383, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1328/ */
  { "ZTE", 0x19d2, "V5", 0xffce, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1646/ */
  { "ZTE", 0x19d2, "Z9 Max", 0xffcf, DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * HTC (High Tech Computer Corp)
   * Reporters:
   * Steven Eastland <grassmonk@users.sourceforge.net>
   * Kevin Cheng <kache@users.sf.net>
   */
  /* https://sourceforge.net/p/libmtp/support-requests/181/ */
  { "HTC", 0x0bb4, "One M9 (1st ID)", 0x040b,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1398/ */
  { "HTC", 0x0bb4, "Spreadtrum SH57MYZ03342 (MTP)", 0x05e3,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* reported by Mikkel Oscar Lyderik <mikkeloscar@gmail.com> */
  { "HTC", 0x0bb4, "HTC Desire 510 (MTP+ADB)", 0x05fd,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1221/ */
  { "HTC", 0x0bb4, "One M8 Google Play Edition (MTP+ADB)", 0x060b,
      DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/bugs/1500/ */
  { "HTC", 0x0bb4, "One Mini 2 (MTP)", 0x0629,
      DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/bugs/1508/ */
  { "HTC", 0x0bb4, "One M9 (2nd ID)", 0x065c,
      DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/bugs/1543/ */
  { "HTC", 0x0bb4, "Desire 626s (MTP)", 0x0668,
      DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/support-requests/200/ */
  { "HTC", 0x0bb4, "HTC Desire 520", 0x0670,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/153/ */
  { "HTC", 0x0bb4, "HTC6515LVW/One Remix", 0x07d8,
      DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/bugs/1615/ */
  { "HTC", 0x0bb4, "HTC X920E", 0x07a1,
      DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/support-requests/141/ */
  { "HTC", 0x0bb4, "HTC One (HTC6500LVW)", 0x07ae,
      DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/support-requests/128/ */
  { "HTC", 0x0bb4, "HTC One M8 (HTC6525LVW)", 0x07ca,
      DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/bugs/1161/ */
  { "HTC", 0x0bb4, "HTC One M8 (Verizon) (HTC6525LVW)", 0x07cb,
      DEVICE_FLAG_NONE },
  /* https://sourceforge.net/p/libmtp/bugs/1133/ */
  { "HTC", 0x0bb4, "HTC One Remix (HTC6515LVW)", 0x07d9,
      DEVICE_FLAG_NONE },
  // Reported by Markus Heberling
  { "HTC", 0x0bb4, "Windows Phone 8X ID1", 0x0ba1,
      DEVICE_FLAG_NONE },
  { "HTC", 0x0bb4, "Windows Phone 8X ID2", 0x0ba2,
      DEVICE_FLAG_NONE },

#if 1
  /* after some review I commented it back in. There was apparently
   * only one or two devices misbehaving (having this ID in mass storage mode),
   * but more seem to use it regulary as MTP devices. Marcus 20150401 */
  /*
   * This had to be commented out - the same VID+PID is used also for
   * other modes than MTP, so we need to let mtp-probe do its job on this
   * device instead of adding it to the database.
   * used by various devices, like Fairphone, Elephone P5000, etc
   * https://sourceforge.net/p/libmtp/bugs/1290/
   */
  { "HTC", 0x0bb4, "Android Device ID1 (Zopo, HD2, Bird...)", 0x0c02,
      DEVICE_FLAGS_ANDROID_BUGS },
#endif
  /* https://sourceforge.net/p/libmtp/bugs/1677/ */
  { "DEXP", 0x0bb4, "Ixion XL145 Snatch", 0x0c08,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "EVO 4G LTE/One V (ID1)", 0x0c93,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "EVO 4G LTE/One V (ID2)", 0x0ca8,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One S (ID1)", 0x0cec,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "One Mini (ID1)", 0x0dcd,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One 802w (ID1)", 0x0dd2,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC Desire X", 0x0dd5,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One (ID1)", 0x0dda,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC Butterfly X290d", 0x0de4,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One (MTP+UMS+ADB)", 0x0dea,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC Evo 4G LTE (ID1)", 0x0df5,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One S (ID2)", 0x0df8,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One S (ID3)", 0x0df9,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One X (ID1)", 0x0dfa,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One X (ID2)", 0x0dfb,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One X (ID3)", 0x0dfc,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One X (ID4)", 0x0dfd,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC Butterfly (ID1)", 0x0dfe,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "Droid DNA (MTP+UMS+ADB)", 0x0dff,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC Droid Incredible 4G LTE (MTP)", 0x0e31,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC Droid Incredible 4G LTE (MTP+ADB)", 0x0e32,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "Droid DNA (MTP+UMS)", 0x0ebd,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1182/ */
  { "HTC", 0x0bb4, "Desire 310 (MTP)", 0x0ec6,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1481/ */
  { "HTC", 0x0bb4, "Desire 310 (2nd id) (MTP)", 0x0ec7,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1420/ */
  { "HTC", 0x0bb4, "Desire 816G (MTP)", 0x0edb,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1632/ */
  { "HTC", 0x0bb4, "Desire 626G Dual Sim (MTP)", 0x0edd,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One (MTP+ADB+CDC)", 0x0f5f,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One (MTP+CDC)", 0x0f60,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One (MTP+ADB)", 0x0f63,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One (MTP)", 0x0f64,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One (MTP+ADB+?)", 0x0f87,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One (ID3)", 0x0f91,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One M8 (MTP)", 0x0f25,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One M8 (MTP+ADB)", 0x061a,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One M8 (MTP+UMS)", 0x0fb5,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "HTC One M8 (MTP+ADB+UMS)", 0x0fb4,
      DEVICE_FLAGS_ANDROID_BUGS },

#if 1
  /* after some review I commented it back in. There was apparently
   * only one or two devices misbehaving (having this ID in mass storage mode),
   * but more seem to use it regulary as MTP devices. Marcus 20150401 */
  /*
   * This had to be commented out - the same VID+PID is used also for
   * other modes than MTP, so we need to let mtp-probe do its job on this
   * device instead of adding it to the database.
   *
   * Apparently also used by a clone called Jiayu G2S
   * with the MTK6577T chipset
   * http://www.ejiayu.com/en/Product-19.html
   * Wiko Cink Peax 2
   */
  { "HTC", 0x0bb4, "Android Device ID2 (Zopo, HD2...)", 0x2008,
      DEVICE_FLAGS_ANDROID_BUGS },
#endif
  /* https://sourceforge.net/p/libmtp/bugs/1198/ */
  { "HTC", 0x0bb4, "Motorola Razr D1", 0x2012,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1440/ */
  { "HTC", 0x0bb4, "Motorola P98 4G", 0x201d,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1508/ */
  { "HTC", 0x0bb4, "One M9 (3rd ID)", 0x4ee1,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/217/ */
  { "HTC", 0x0bb4, "One M9 (4th ID)", 0x4ee2,
      DEVICE_FLAGS_ANDROID_BUGS },
  // These identify themselves as "cm_tenderloin", fun...
  // Done by HTC for HP I guess.
  { "HTC (for Hewlett-Packard)", 0x0bb4, "HP Touchpad (MTP)", 0x685c,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC (for Hewlett-Packard)", 0x0bb4, "HP Touchpad (MTP+ADB)", 0x6860,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "HTC", 0x0bb4, "Windows Phone 8s ID1", 0xf0ca,
      DEVICE_FLAG_NONE },

  /*
   * NEC
   */
  { "NEC", 0x0409, "FOMA N01A", 0x0242, DEVICE_FLAG_NONE },
  { "NEC", 0x0409, "Casio C811", 0x0326, DEVICE_FLAG_NONE },
  { "NEC", 0x0409, "Casio CA-201L", 0x0432, DEVICE_FLAG_NONE },

  /*
   * nVidia
   */
  // Found on Internet forum
  { "nVidia", 0x0955, "CM9-Adam", 0x70a9,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Various pads such as Nabi2, Notion Ink Adam, Viewsonic G-Tablet
  { "nVidia", 0x0955, "Various tablets (ID1)", 0x7100,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "nVidia", 0x0955, "Various tablets (ID2)", 0x7102,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1582/ */
  { "nVidia", 0x0955, "Jetson TX1", 0x7721,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "nVidia", 0x0955, "Shield (ID1)", 0xb400,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1447/ */
  { "nVidia", 0x0955, "Shield (Tegra4)", 0xb401,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1087/ */
  { "nVidia", 0x0955, "Tegra Note", 0xcf02,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* benpro82@gmail.com */
  { "nVidia", 0x0955, "Shield (ID2)", 0xcf07,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Vizio
   * Reported by:
   * Michael Gurski <gurski@users.sourceforge.net>
   */
  /* https://sourceforge.net/p/libmtp/support-requests/221/ */
  { "Nokia", 0x0489, "N1", 0x1ab0,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1567/ */
  { "InFocus", 0x0489, "M808", 0xc00b,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/138/ */
  { "InFocus", 0x0489, "M810", 0xc025,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Vizio", 0x0489, "Unknown 1", 0xc026,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Vizio", 0x0489, "VTAB1008", 0xe040,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Vizio (for Lenovo)", 0x0489, "LIFETAB S9714", 0xe111,
      DEVICE_FLAGS_ANDROID_BUGS },


  /*
   * Amazon
   */
  { "Amazon", 0x1949, "Kindle Fire 2G (ID1)", 0x0005,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Amazon", 0x1949, "Kindle Fire (ID1)", 0x0007,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Amazon", 0x1949, "Kindle Fire (ID2)", 0x0008,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Amazon", 0x1949, "Kindle Fire (ID3)", 0x000a,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1026/ */
  { "Amazon", 0x1949, "Kindle Fire (ID6)", 0x000b,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Amazon", 0x1949, "Kindle Fire (ID4)", 0x000c,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1015/ */
  { "Amazon", 0x1949, "Kindle Fire (ID7)", 0x000d,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Amazon", 0x1949, "Kindle Fire (ID5)", 0x0012,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1353/ */
  { "Amazon", 0x1949, "Kindle Fire HD6", 0x00f2,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1460/ */
  { "Amazon", 0x1949, "Kindle Fire 8", 0x0211,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/158/ */
  { "Amazon", 0x1949, "Kindle Fire 8 HD", 0x0212,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1448/ */
  { "Amazon", 0x1949, "Kindle Fire 7", 0x0221,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1491/ */
  { "Amazon", 0x1949, "Kindle Fire 5", 0x0222,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Amazon", 0x1949, "Fire Phone", 0x0800,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Barnes&Noble
   */
  { "Barnes&Noble", 0x2080, "Nook HD+", 0x0005,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Barnes&Noble", 0x2080, "Nook HD", 0x0006,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1504/ */
  { "Barnes&Noble", 0x2080, "Nook Glowlight+", 0x000a,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Viewpia, bq, YiFang
   * Seems like some multi-branded OEM product line.
   */
  { "Various", 0x2207, "Viewpia DR/bq Kepler", 0x0001,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "YiFang", 0x2207, "BQ Tesla", 0x0006,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1354/ */
  { "Various", 0x2207, "Viewpia DR/bq Kepler Debugging", 0x0011,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Kobo
   */
  /* https://sourceforge.net/p/libmtp/bugs/1208/ */
  { "Kobo", 0x2237, "Arc 7 HD", 0xb108,
      DEVICE_FLAGS_ANDROID_BUGS },
  // Reported by George Talusan
  { "Kobo", 0x2237, "Arc (ID1)", 0xd108,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Kobo", 0x2237, "Arc (ID2)", 0xd109,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Hisense
   */
  // Reported by Anonymous SourceForge users
  { "Hisense", 0x109b, "E860 (ID1)", 0x9106, DEVICE_FLAGS_ANDROID_BUGS },
  { "Hisense", 0x109b, "E860 (ID2)", 0x9109, DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Intel
   * Also sold rebranded as Orange products
   */
  /* https://sourceforge.net/p/libmtp/feature-requests/215/ */
  { "Intel", 0x8087, "Point of View TAB-I847", 0x092a, DEVICE_FLAGS_ANDROID_BUGS },

  { "Intel", 0x8087, "Xolo 900/AZ210A", 0x09fb, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1256/ */
  { "Intel", 0x8087, "Noblex T7A21", 0x0a16, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1252/ */
  { "Intel", 0x8087, "Foxconn iView i700", 0x0a15, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1237/ */
  { "Intel", 0x8087, "Telcast Air 3G", 0x0a5e, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1338/ */
  { "Intel", 0x8087, "Chuwi vi8", 0x0a5f, DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Xiaomi
   */
  /* https://sourceforge.net/p/libmtp/bugs/1269/ */
  { "Xiaomi", 0x2717, "Mi-3w (MTP)", 0x0360,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Xiaomi", 0x2717, "Mi-3 (MTP)", 0x0368,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1149/ */
  { "Xiaomi", 0x2717, "MiPad (MTP)", 0x0660,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1489/ */
  { "Xiaomi", 0x2717, "MiPad (MTP+ADB)", 0x0668,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Xiaomi", 0x2717, "Hongmi (MTP+ADB)", 0x1240,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1095/ */
  { "Xiaomi", 0x2717, "Hongmi (MTP)", 0x1248,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1295/ */
  { "Redmi", 0x2717, "1S (MTP)", 0x1260,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1164/ */
  { "Redmi", 0x2717, "HM 1S (MTP)", 0x1268,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1702/ */
  { "Xiaomi", 0x2717, "HM NOTE 1LTEW 4G Phone (MTP)", 0x1360,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/discussion/535190/ */
  { "Xiaomi", 0x2717, "HM NOTE 1LTEW MIUI (MTP)", 0x1368,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Xiaomi", 0x2717, "Mi-2 (MTP+ADB)", 0x9039,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Xiaomi", 0x2717, "Mi-2 (MTP)", 0xf003,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1397/ */
  { "Xiaomi", 0x2717, "Mi-2s (id2) (MTP)", 0xff40,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1339/ */
  { "Xiaomi", 0x2717, "Mi-2s (MTP)", 0xff48,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1402/ */
  { "Xiaomi", 0x2717, "Redmi 2 (MTP)", 0xff60,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1445/ */
  { "Xiaomi", 0x2717, "Redmi 2 2014811 (MTP)", 0xff68,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * XO Learning Tablet
   * Also Trio Stealth G2 tablet it seems
   */
  { "Acromag Inc.", 0x16d5, "XO Learning Tablet (MTP+ADB)", 0x8005,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Acromag Inc.", 0x16d5, "XO Learning Tablet (MTP)", 0x8006,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * SHARP Corporation
   */
  { "SHARP Corporation", 0x0489, "SH930W", 0xc025,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SHARP Corporation", 0x04dd, "SBM203SH", 0x9661,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "SHARP Corporation", 0x04dd, "SH-06E", 0x96ca,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/192/ */
  { "SHARP Corporation", 0x04dd, "SHV35 AQUOS U ", 0x99d2,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * T & A Mobile phones Alcatel and TCT
   */
  { "Alcatel", 0x1bbb, "One Touch 997D (MTP+ADB)", 0x0c02,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Alcatel", 0x1bbb, "One Touch 997D (MTP)", 0x2008,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Alcatel/TCT", 0x1bbb, "6010D/TCL S950", 0x0167,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Alcatel", 0x1bbb, "6030a", 0x0168,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Alcatel/Bouygues", 0x1bbb, "BS472", 0x904d,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1304/ */
  { "Alcatel", 0x1bbb, "OneTouch 5042D (MTP)", 0xa00e,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1605/ */
  { "Alcatel", 0x1bbb, "OneTouch Idol 3 ID2 (MTP)", 0xaf00,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/189/ */
  { "Alcatel", 0x1bbb, "OneTouch Idol 3 small (MTP)", 0xaf2a,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1401/ */
  { "Alcatel", 0x1bbb, "OneTouch Idol 3 (MTP)", 0xaf2b,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/114/ */
  { "Alcatel", 0x1bbb, "OneTouch 6034R", 0xf003,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Kyocera
   */
  { "Kyocera", 0x0482, "Rise", 0x0571, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1492/ */
  { "Kyocera", 0x0482, "Event", 0x0591, DEVICE_FLAGS_ANDROID_BUGS  & ~DEVICE_FLAG_FORCE_RESET_ON_CLOSE },
  /* https://sourceforge.net/p/libmtp/feature-requests/134/ */
  { "Kyocera", 0x0482, "Torque Model E6715", 0x0059a, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/164/ */
  { "Kyocera", 0x0482, "Hydro Elite C6750", 0x073c, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/discussion/535190/thread/6270f5ce/ */
  { "Kyocera", 0x0482, "KYL22", 0x0810, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1518/ */
  { "Kyocera", 0x0482, "302KC", 0x09fc, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1345/ */
  { "Kyocera", 0x0482, "DuraForce", 0x0979, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1476/ */
  { "Kyocera", 0x0482, "KC-S701", 0x09cb, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/192/ */
  { "Kyocera", 0x0482, "C6740N", 0x0a73, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/220/ */
  { "Kyocera", 0x0482, "Duraforce XD", 0x0a9a, DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * HiSense
   */
  { "HiSense", 0x109b, "Sero 7 Pro", 0x9105,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Hewlett-Packard
   */
  { "Hewlett-Packard", 0x03f0, "Slate 7 4600", 0x5c1d,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "Hewlett-Packard", 0x03f0, "Slate 7 2800", 0x5d1d,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1366/ */
  { "Hewlett-Packard", 0x03f0, "Slate 10 HD", 0x7e1d,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * MediaTek Inc.
   */
  { "MediaTek Inc", 0x0e8d, "MT5xx and MT6xx SoCs", 0x0050,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1553/ */
  { "Bravis", 0x0e8d, "A401 Neo", 0x0c03,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1422/ */
  { "MediaTek Inc", 0x0e8d, "MT65xx", 0x2008,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1467/ */
  { "elephone", 0x0e8d, "p6000", 0x2008,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/79/ */
  { "MediaTek Inc", 0x0e8d, "Elephone P8000", 0x201d,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Jolla
   */
  { "Jolla", 0x2931, "Sailfish (ID1)", 0x0a01,
      DEVICE_FLAGS_ANDROID_BUGS },

  /* In update 4 the order of devices was changed for
     better OS X / Windows suport and another device-id
     got assigned for the MTP */
  { "Jolla", 0x2931, "Sailfish (ID2)", 0x0a05,
      DEVICE_FLAGS_ANDROID_BUGS },

  /* In a later version, the ID changed again. */
  { "Jolla", 0x2931, "Sailfish (ID3)", 0x0a07,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * TCL? Alcatel?
   */
  { "TCL", 0x0451, "Alcatel one touch 986+", 0xd108,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Garmin
   */
  { "Garmin", 0x091e, "Monterra", 0x2585,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Wacom
   */
  { "Wacom", 0x0531, "Cintiq Companion Hybrid (MTP+ADB)", 0x2001,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * Kurio
   */
  { "Kurio", 0x1f3a, "7S", 0x1006,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1521/ */
  { "iRulu", 0x1f3a, "X1s", 0x1007,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1245/ */
  { "DigiLand", 0x1f3a, "DL701Q", 0x0c02,
      DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * bq
   * https://sourceforge.net/p/libmtp/feature-requests/128/
   */
  { "bq", 0x2a47, "Krillin (MTP+ADB)", 0x0c02,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "bq", 0x2a47, "Krillin (MTP)", 0x2008,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/163/ */
  { "bq", 0x2a47, "Aquaris M10 (MTP)", 0x200d,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1558/ */
  { "bq", 0x2a47, "Avila Cooler (MTP)", 0x201d,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/224/ */
  { "bq", 0x2a47, "Aquaris X5 (MTP)", 0x3003,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1311/ */
  { "bq", 0x2a47, "Aquarius E5-4G", 0x7f10,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/181/ */
  { "bq", 0x2a47, "Aquarius X5 (MTP) (ID2)", 0x7f11,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1541/ */
  { "bq", 0x2a47, "Aquarius M5.5", 0x901b,
      DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1292/ */
  { "Prestigio", 0x29e4, "5505 DUO ", 0x1103, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1243/ */
  { "Prestigio", 0x29e4, "5504 DUO ", 0x1203, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/141/ */
  { "Prestigio", 0x29e4, "3405 DUO ", 0x3201, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/148/ */
  { "Prestigio", 0x29e4, "Multipad Color 7.0", 0xb003, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1283/ */
  { "Megafon", 0x201e, "MFLogin3T", 0x42ab, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/208/ */
  { "Haier", 0x201e, "CT715", 0xa0c1, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1287/ */
  { "Gensis", 0x040d, "GT-7305 ", 0x885c, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/support-requests/182/ */
  { "Oppo", 0x22d9, "Find 5", 0x2764, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1207/ */
  { "Oppo", 0x22d9, "Find 7 (ID 1)", 0x2765, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1277/ */
  { "Oppo", 0x22d9, "X9006", 0x2773, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/129/ */
  { "Oppo", 0x22d9, "Find 7 (ID 2)", 0x2774, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1273/ */
  { "Gigabyte", 0x0414, "RCT6773W22 (MTP+ADB)", 0x0c02, DEVICE_FLAGS_ANDROID_BUGS },
  { "Gigabyte", 0x0414, "RCT6773W22 (MTP)", 0x2008, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1264/ */
  { "Meizu", 0x2a45, "MX Phone (MTP)", 0x2008, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1263/ */
  { "Meizu", 0x2a45, "MX Phone (MTP+ADB)", 0x0c02, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1201/ */
  { "Caterpillar", 0x04b7, "Cat S50", 0x88a9, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1525/ */
  { "Caterpillar", 0x04b7, "Cat S50 (2nd ID)", 0x88aa, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1603/ */
  { "Caterpillar", 0x04b7, "Cat S40", 0x88b0, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/176/ */
  { "Caterpillar", 0x04b7, "Cat S60", 0x88c0, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/682/ */
  { "Pegatron", 0x1d4d, "Chagall (ADB)", 0x5035, DEVICE_FLAGS_ANDROID_BUGS },
  { "Pegatron", 0x1d4d, "Chagall", 0x5036, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/115/ */
  { "Pegatron", 0x1d4d, "Hudl 2", 0x504a, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/support-requests/127/ */
  { "Yota", 0x2916, "Phone C9660", 0x9039, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1661/ */
  { "Yota", 0x2916, "Phone", 0x9139, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1229/ */
  { "Yota", 0x2916, "Phone 2", 0x914d, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1267/ */
  { "Yota", 0x2916, "Phone 2 (ID2)", 0xf003, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1212/ */
  { "Fly", 0x2970, "Evo Tech 4", 0x2008, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/feature-requests/146/ */
  { "Wileyfox", 0x2970, "Swift", 0x2281, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/159/ */
  { "Wileyfox", 0x2970, "Swift 2", 0x2282, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1554/ */
  { "Kazam", 0x2970, "Trooper 650 4G", 0x9039, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1303/ */
  { "Megafon", 0x1271, "Login+", 0x2012, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1127/ */
  { "Fly", 0x2970, "iq4415 era style 3", 0x0c02, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1082/ */
  { "Fly", 0x1782, "iq449", 0x4001, DEVICE_FLAGS_ANDROID_BUGS },

  /*
  * YU Yureka.
  */
  { "YU Yureka", 0x1ebf, "Vodafone smart turbo 4", 0x7f29, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1314/ */
  { "BenQ", 0x1d45, "F5", 0x459d, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1362/ */
  { "TomTom", 0x1390, "Rider 40", 0x5455, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/feature-requests/135/. guessed android. */
  { "OUYA", 0x2836, "Videogame Console", 0x0010, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1383/ */
  { "BLU", 0x0e8d, "Studio HD", 0x2008, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/feature-requests/161/ */
  { "Cubot", 0x0e8d, "X17", 0x201d, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1423/ */
  { "OnePlus", 0x2a70, "ONE A2001", 0x9011, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1450/ */
  { "OnePlus", 0x2a70, "OnePlus 2 A2005", 0xf003, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1436/ */
  { "Parrot", 0x19cf, "Bebop Drone", 0x5038, DEVICE_FLAGS_ANDROID_BUGS },

  /*
   * GoPro Action Cams.
   */
  { "GoPro" , 0x2672, "HERO3+ Black", 0x0011, DEVICE_FLAG_NONE },
  { "GoPro" , 0x2672, "HERO", 0x000c, DEVICE_FLAG_NONE },
  { "GoPro" , 0x2672, "HERO4 Silver", 0x000d, DEVICE_FLAG_NONE },
  { "Gopro" , 0x2672, "HERO4 Black", 0x000e, DEVICE_FLAG_NONE },
  { "GoPro" , 0x2672, "HERO4 Session", 0x000f, DEVICE_FLAG_NONE },
  { "GoPro" , 0x2672, "HERO+", 0x0021, DEVICE_FLAG_NONE },
  { "GoPro" , 0x2672, "HERO5 Black", 0x0027, DEVICE_FLAG_NONE },
  { "GoPro" , 0x2672, "HERO5 Session", 0x0029, DEVICE_FLAG_NONE },

  /* https://sourceforge.net/p/libmtp/bugs/1490/ */
  { "Marshall" , 0x2ad9, "London", 0x000b, DEVICE_FLAG_NONE },

  /* https://sourceforge.net/p/libmtp/support-requests/202/ */
  { "Fairphone" , 0x2ae5, "Fairphone 2", 0xf003, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/214/ */
  { "Fairphone" , 0x2ae5, "Fairphone 2 OS", 0x9039, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1700/ */
  { "BLUE" , 0x271d, "Vivo XL", 0x4008, DEVICE_FLAGS_ANDROID_BUGS },
  /*  https://sourceforge.net/p/libmtp/bugs/1512/ */
  { "Allview" , 0x271d, "Energy P5", 0x4016, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/177/ */
  { "BLU" , 0x271d, "Studio Energy X 2 Phone", 0x4016, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1575/ */
  { "BLU" , 0x271d, "Studio Energy 2", 0x4017, DEVICE_FLAGS_ANDROID_BUGS },


  /* https://sourceforge.net/p/libmtp/bugs/1545/ */
  { "Zuk" , 0x2b4c, "Z1", 0x1004, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1596/ */
  { "Zuk" , 0x2b4c, "Z1 (2nd ID)", 0x1005, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1574/ */
  { "Letv" , 0x2b0e, "X5001s", 0x1700, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/210/ */
  { "Letv" , 0x2b0e, "1s", 0x1704, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/241/ */
  { "Letv" , 0x2b0e, "Leeco Le 1s", 0x1768, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/241/ */
  { "Letv" , 0x2b0e, "Leeco Le 2 Pro", 0x1778, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/220/ */
  { "Letv" , 0x2b0e, "X800 (ID1)", 0x182c, DEVICE_FLAGS_ANDROID_BUGS },
  { "Letv" , 0x2b0e, "X800 (ID2)", 0x1830, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1606/ */
  { "TP-Link" , 0x2357, "Neffos C5 (MTP)", 0x0314, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/197/ */
  { "TP-Link" , 0x2357, "Neffos C5 MAX (MTP)", 0x031a, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/196/ */
  { "TP-Link" , 0x2357, "Neffos Y5L (MTP)", 0x0320, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/feature-requests/195/ */
  { "TP-Link" , 0x2357, "Neffos Y5 (MTP)", 0x0328, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/240/ */
  { "TP-Link" , 0x2357, "Neffos X1 (MTP)", 0x033c, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1570/ */
  { "Recon Instruments" , 0x2523, "Jet", 0xd209, DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1571/ */
  { "Recon Instruments" , 0x2523, "Snow2 HUD", 0xd109, DEVICE_FLAGS_ANDROID_BUGS },

  /* https://sourceforge.net/p/libmtp/bugs/1663/ */
  { "Nextbit" , 0x2c3f, "Robin", 0x0001, DEVICE_FLAGS_ANDROID_BUGS },
  /*
   * Other strange stuff.
   */
  { "Isabella", 0x0b20, "Her Prototype", 0xddee, DEVICE_FLAG_NONE }
