/**
 * \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 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 },

  /*
   * 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/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/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 },

  /*
   * 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 },
  { "LG Electronics Inc.", 0x1004, "VK810", 0x6265,
      DEVICE_FLAGS_ANDROID_BUGS },
  { "LG Electronics Inc.", 0x1004, "G3", 0x627f,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/bugs/1463/ */
  { "LG Electronics Inc.", 0x1004, "810 tablet", 0x6263,
      DEVICE_FLAGS_ANDROID_BUGS },
  /* https://sourceforge.net/p/libmtp/support-requests/134/ */
  { "LG Electronics Inc.", 0x1004, "G3 (VS985)", 0x626e,
      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 },
  { "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 },
  // 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/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/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/bugs/1624/ */
  { "Lenovo", 0x17ef, "B Smartphone", 0x7a18,
      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/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 },
  { "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/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 },

  /*
   * 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/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/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/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 }
