wok-current rev 25786

Bump gvfs to fix issue with open files on android device, patch udev to fix mtp issue on pcmanfm
author Stanislas Leduc <shann@slitaz.org>
date Tue Jul 29 18:05:13 2025 +0000 (2 months ago)
parents e92a5b32321f
children cfabeb5f6836
files glibc/receipt gvfs-dev/receipt gvfs-fuse/receipt gvfs-libmtp/receipt gvfs-udisks2/receipt gvfs/receipt gvfs/stuff/list pcmanfm/stuff/actions/root.desktop pcmanfm/stuff/actions/slideshow.desktop pcmanfm/stuff/actions/wallpaper.desktop udev/receipt udev/stuff/51-android.rules udev/stuff/udev-events-android.patch udev/stuff/udev-glibc2.18.patch udev/stuff/udev-glibc2.28.patch
line diff
     1.1 --- a/glibc/receipt	Tue Jul 15 20:40:17 2025 +0000
     1.2 +++ b/glibc/receipt	Tue Jul 29 18:05:13 2025 +0000
     1.3 @@ -134,13 +134,13 @@
     1.4  	# see https://sourceware.org/git/?p=glibc.git;a=blob;f=advisories/GLIBC-SA-2024-0004;h=23a8115d;hb=HEAD
     1.5  	# https://sourceware.org/git/?p=glibc.git;a=patch;h=682ad4c8 (adjust little for 2.28)
     1.6  	patch -p1 < $stuff/glibc-2.28-CVE-2024-2961.patch
     1.7 -	#patch -p1 < $stuff/glibc-2.32-CVE-2024-2961.patch
     1.8 +	#patch -p1 < $stuff/glibc-2.34-CVE-2024-2961.patch
     1.9  
    1.10  	# Patch for CVE-2025-4802, adjust for backport to 2.28 and 2.31
    1.11  	# see https://www.cve.org/CVERecord?id=CVE-2025-4802
    1.12  	# see https://sourceware.org/cgit/glibc/commit/?id=1e18586c
    1.13 -	patch -p1 -i $stuff/glibc-2.28-CVE-2025-4802.patch
    1.14 -	#patch -p1 -i $stuff/CVE-2025-4802.patch
    1.15 +	#patch -p1 -i $stuff/glibc-2.28-CVE-2025-4802.patch
    1.16 +	patch -p1 -i $stuff/CVE-2025-4802.patch
    1.17  
    1.18  	# Update for binutils 2.29, see https://sourceware.org/bugzilla/show_bug.cgi?id=21661
    1.19  	sed -i 's|obstack_compat;|obstack_compat  __attribute__ ((nocommon));|' malloc/obstack.c
    1.20 @@ -177,7 +177,7 @@
    1.21  	{ libc_cv_slibdir=/lib $src/configure \
    1.22  		--disable-profile \
    1.23  		--enable-add-ons \
    1.24 -		--enable-kernel=2.6.30 \
    1.25 +		--enable-kernel=5.10.221 \
    1.26  		--enable-obsolete-rpc \
    1.27  		--libexecdir=/usr/lib/glibc \
    1.28  		--build=$HOST_SYSTEM \
     2.1 --- a/gvfs-dev/receipt	Tue Jul 15 20:40:17 2025 +0000
     2.2 +++ b/gvfs-dev/receipt	Tue Jul 29 18:05:13 2025 +0000
     2.3 @@ -1,7 +1,7 @@
     2.4  # SliTaz package receipt.
     2.5  
     2.6  PACKAGE="gvfs-dev"
     2.7 -VERSION="1.22.1"
     2.8 +VERSION="1.36.3"
     2.9  CATEGORY="development"
    2.10  SHORT_DESC="Userspace virtual filesystem (development)"
    2.11  MAINTAINER="pankso@slitaz.org"
     3.1 --- a/gvfs-fuse/receipt	Tue Jul 15 20:40:17 2025 +0000
     3.2 +++ b/gvfs-fuse/receipt	Tue Jul 29 18:05:13 2025 +0000
     3.3 @@ -1,7 +1,7 @@
     3.4  # SliTaz package receipt.
     3.5  
     3.6  PACKAGE="gvfs-fuse"
     3.7 -VERSION="1.22.1"
     3.8 +VERSION="1.36.3"
     3.9  CATEGORY="system-tools"
    3.10  SHORT_DESC="FUSE support for gvfs"
    3.11  MAINTAINER="al.bobylev@gmail.com"
     4.1 --- a/gvfs-libmtp/receipt	Tue Jul 15 20:40:17 2025 +0000
     4.2 +++ b/gvfs-libmtp/receipt	Tue Jul 29 18:05:13 2025 +0000
     4.3 @@ -1,7 +1,7 @@
     4.4  # SliTaz package receipt.
     4.5  
     4.6  PACKAGE="gvfs-libmtp"
     4.7 -VERSION="1.22.1"
     4.8 +VERSION="1.36.3"
     4.9  CATEGORY="system-tools"
    4.10  SHORT_DESC="MTP support for gvfs"
    4.11  MAINTAINER="al.bobylev@gmail.com"
     5.1 --- a/gvfs-udisks2/receipt	Tue Jul 15 20:40:17 2025 +0000
     5.2 +++ b/gvfs-udisks2/receipt	Tue Jul 29 18:05:13 2025 +0000
     5.3 @@ -1,7 +1,7 @@
     5.4  # SliTaz package receipt.
     5.5  
     5.6  PACKAGE="gvfs-udisks2"
     5.7 -VERSION="1.22.1"
     5.8 +VERSION="1.36.3"
     5.9  CATEGORY="system-tools"
    5.10  SHORT_DESC="Udisks2 volume monitor for gvfs"
    5.11  MAINTAINER="pankso@slitaz.org"
     6.1 --- a/gvfs/receipt	Tue Jul 15 20:40:17 2025 +0000
     6.2 +++ b/gvfs/receipt	Tue Jul 29 18:05:13 2025 +0000
     6.3 @@ -1,7 +1,7 @@
     6.4  # SliTaz package receipt.
     6.5  
     6.6  PACKAGE="gvfs"
     6.7 -VERSION="1.22.1"
     6.8 +VERSION="1.36.3"
     6.9  CATEGORY="system-tools"
    6.10  SHORT_DESC="Userspace virtual filesystem designed to work with gio"
    6.11  MAINTAINER="pankso@slitaz.org"
    6.12 @@ -17,7 +17,7 @@
    6.13  udisks2-dev samba-dev smbclient expat-dev libarchive-dev libgcrypt-dev \
    6.14  libsoup-dev libxml2-dev libcdio-dev dbus-glib-dev bluez-dev expat-dev \
    6.15  libgphoto2-dev libmtp-dev gtk+3-dev glibc-dev sqlite-dev \
    6.16 -libcdio-paranoia-dev libtool"
    6.17 +libcdio-paranoia-dev libtool gcr-dev polkit-dev libcap-dev meson054"
    6.18  
    6.19  HOST_ARCH="i486 x86_64"
    6.20  
    6.21 @@ -31,16 +31,33 @@
    6.22  # Rules to configure and make the package.
    6.23  compile_rules()
    6.24  {
    6.25 +	# Use meson 0.54, issue with meson
    6.26 +	# ERROR: compiler.has_header got unknown keyword arguments "dependendencies"
    6.27 +
    6.28  	patch -p0 -i $stuff/allow-dropbear-ssh.patch
    6.29  
    6.30 -	./configure \
    6.31 +	meson _build \
    6.32  		--prefix=/usr \
    6.33 -		--libexecdir=/usr/lib/$PACKAGE \
    6.34 -		--sysconfdir=/etc \
    6.35 -		--disable-documentation \
    6.36 -		--disable-bash-completion \
    6.37 -		$CONFIGURE_ARGS && \
    6.38 -		make && make install
    6.39 +		--libdir=lib \
    6.40 +		--libexecdir=lib/$PACKAGE \
    6.41 +		--bindir=/usr/bin \
    6.42 +		--sbindir=/usr/sbin \
    6.43 +		--buildtype=release \
    6.44 +	-Dsystemduserunitdir=no \
    6.45 +	-Dtmpfilesdir=no \
    6.46 +	-Dafc=false \
    6.47 +	-Dbluray=false \
    6.48 +	-Ddnssd=false \
    6.49 +	-Dgcr=false \
    6.50 +	-Dgoa=false \
    6.51 +	-Dgoogle=false \
    6.52 +	-Dkeyring=false \
    6.53 +	-Dlogind=false \
    6.54 +	-Dnfs=false \
    6.55 +	-Ddeprecated_programs=true
    6.56 +
    6.57 +	ninja -C _build &&
    6.58 +	ninja -C _build install
    6.59  }
    6.60  
    6.61  # Rules to gen a SliTaz package suitable for Tazpkg.
     7.1 --- a/gvfs/stuff/list	Tue Jul 15 20:40:17 2025 +0000
     7.2 +++ b/gvfs/stuff/list	Tue Jul 29 18:05:13 2025 +0000
     7.3 @@ -20,9 +20,7 @@
     7.4  gvfs-dev:     /usr/include/gvfs-client/gvfs/gvfsurimapper.h
     7.5  gvfs-dev:     /usr/include/gvfs-client/gvfs/gvfsuriutils.h
     7.6  
     7.7 -gvfs-dev:     /usr/lib/gio/modules/libgioremote-volume-monitor.la
     7.8  gvfs:         /usr/lib/gio/modules/libgioremote-volume-monitor.so
     7.9 -gvfs-dev:     /usr/lib/gio/modules/libgvfsdbus.la
    7.10  gvfs:         /usr/lib/gio/modules/libgvfsdbus.so
    7.11  
    7.12  gvfs:         /usr/lib/gvfs/gvfsd
    7.13 @@ -50,16 +48,14 @@
    7.14  gvfs-gphoto2: /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
    7.15  gvfs-libmtp:  /usr/lib/gvfs/gvfs-mtp-volume-monitor
    7.16  gvfs-udisks2: /usr/lib/gvfs/gvfs-udisks2-volume-monitor
    7.17 -gvfs-dev:     /usr/lib/gvfs/libgvfscommon.la
    7.18  gvfs:         /usr/lib/gvfs/libgvfscommon.so
    7.19 -gvfs-dev:     /usr/lib/gvfs/libgvfsdaemon.la
    7.20  gvfs:         /usr/lib/gvfs/libgvfsdaemon.so
    7.21  
    7.22 -gvfs:         /usr/share/dbus-1/services/gvfs-daemon.service
    7.23 -gvfs:         /usr/share/dbus-1/services/gvfs-metadata.service
    7.24 -gvfs-gphoto2: /usr/share/dbus-1/services/org.gtk.Private.GPhoto2VolumeMonitor.service
    7.25 -gvfs-libmtp:  /usr/share/dbus-1/services/org.gtk.Private.MTPVolumeMonitor.service
    7.26 -gvfs-udisks2: /usr/share/dbus-1/services/org.gtk.Private.UDisks2VolumeMonitor.service
    7.27 +gvfs:         /usr/share/dbus-1/services/org.gtk.vfs.Daemon.service
    7.28 +gvfs:         /usr/share/dbus-1/services/org.gtk.vfs.Metadata.service
    7.29 +gvfs-gphoto2: /usr/share/dbus-1/services/org.gtk.vfs.GPhoto2VolumeMonitor.service
    7.30 +gvfs-libmtp:  /usr/share/dbus-1/services/org.gtk.vfs.MTPVolumeMonitor.service
    7.31 +gvfs-udisks2: /usr/share/dbus-1/services/org.gtk.vfs.UDisks2VolumeMonitor.service
    7.32  
    7.33  gvfs-smb:     /usr/share/GConf/gsettings/gvfs-smb.convert
    7.34  
     8.1 --- a/pcmanfm/stuff/actions/root.desktop	Tue Jul 15 20:40:17 2025 +0000
     8.2 +++ b/pcmanfm/stuff/actions/root.desktop	Tue Jul 29 18:05:13 2025 +0000
     8.3 @@ -1,6 +1,7 @@
     8.4  [Desktop Entry]
     8.5  Type=Action
     8.6  Name=Open Folder As Root
     8.7 +Name[fr]=Ouvrir le dossier en tant que Root
     8.8  Name[ru]=Открыть папку от имени Root
     8.9  Icon=dialog-password
    8.10  Profiles=root_on_folder;
     9.1 --- a/pcmanfm/stuff/actions/slideshow.desktop	Tue Jul 15 20:40:17 2025 +0000
     9.2 +++ b/pcmanfm/stuff/actions/slideshow.desktop	Tue Jul 29 18:05:13 2025 +0000
     9.3 @@ -1,6 +1,7 @@
     9.4  [Desktop Entry]
     9.5  Type=Action
     9.6  Name=Run Slideshow
     9.7 +Name[fr]=Lancer le diaporama
     9.8  Name[ru]=Запустить слайдшоу
     9.9  Icon=image-x-generic
    9.10  Profiles=viewnior_on_folder;viewnior_on_images;gpicview_on_folder;gpicview_on_images;
    10.1 --- a/pcmanfm/stuff/actions/wallpaper.desktop	Tue Jul 15 20:40:17 2025 +0000
    10.2 +++ b/pcmanfm/stuff/actions/wallpaper.desktop	Tue Jul 29 18:05:13 2025 +0000
    10.3 @@ -1,6 +1,7 @@
    10.4  [Desktop Entry]
    10.5  Type=Action
    10.6  Name=Set as wallpaper
    10.7 +Name[fr]=Définir comme fond d'écran
    10.8  Name[ru]=Сделать фоном рабочего стола
    10.9  Icon=preferences-desktop-wallpaper
   10.10  Profiles=image_wallpaper;
    11.1 --- a/udev/receipt	Tue Jul 15 20:40:17 2025 +0000
    11.2 +++ b/udev/receipt	Tue Jul 29 18:05:13 2025 +0000
    11.3 @@ -49,9 +49,14 @@
    11.4  	# see https://github.com/openwrt/packages/issues/2293
    11.5  	patch -p1 < $stuff/udev-gcc6.patch
    11.6  
    11.7 -	# Patch for glibc >= 2.28
    11.8 +	# Patch for glibc >= 2.18
    11.9  	# see https://svn.exactcode.de/t2/trunk/package/filesystem/udev/hotfix-glibc2.18.patch
   11.10 -	patch -p1 < $stuff/udev-glibc2.28.patch
   11.11 +	patch -p1 < $stuff/udev-glibc2.18.patch
   11.12 +
   11.13 +	# Patch to fix android mtp issue with pcmanfm
   11.14 +	# see https://github.com/systemd/systemd/issues/8221#issuecomment-384416020
   11.15 +	# thanks Stephan Wezel (thewolfwilcome)
   11.16 +	patch -p1 < $stuff/udev-events-android.patch
   11.17  
   11.18  	LDFLAGS='-lrt' ./configure \
   11.19  		--exec-prefix="" \
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/udev/stuff/51-android.rules	Tue Jul 29 18:05:13 2025 +0000
    12.3 @@ -0,0 +1,1113 @@
    12.4 +# SPDX-FileCopyrightText: 2012-2023 JoesCat, M0Rf30 and contributors
    12.5 +# SPDX-License-Identifier: GPL-3.0-or-later
    12.6 +
    12.7 +# Latest version can be found at:
    12.8 +# <https://github.com/M0Rf30/android-udev-rules>
    12.9 +
   12.10 +# These rules refer to:
   12.11 +# <https://developer.android.com/studio/run/device.html>
   12.12 +# and include many suggestions from Arch Linux, GitHub and other Communities.
   12.13 +
   12.14 +
   12.15 +# Skip testing for android devices if device is not add, or usb
   12.16 +ACTION!="add", ACTION!="bind", GOTO="android_usb_rules_end"
   12.17 +SUBSYSTEM!="usb", GOTO="android_usb_rules_end"
   12.18 +
   12.19 +# Skip testing for unexpected devices like hubs, controllers or printers
   12.20 +ATTR{bDeviceClass}=="09", GOTO="android_usb_rules_end"
   12.21 +ENV{ID_MODEL}=="Controller", GOTO="android_usb_rules_end"
   12.22 +ENV{ID_USB_INTERFACES}=="*:0701??:*", GOTO="android_usb_rules_end"
   12.23 +
   12.24 +# Devices listed here are connected by USB
   12.25 +
   12.26 +# Acer
   12.27 +ATTR{idVendor}!="0502", GOTO="not_Acer"
   12.28 +#   Iconia Tab A1-830
   12.29 +ATTR{idProduct}=="3604", GOTO="adbfast"
   12.30 +#   Iconia Tab A210 (33cc=normal,33cb=debug)
   12.31 +ATTR{idProduct}=="33cb", GOTO="adb"
   12.32 +#   Iconia Tab A500
   12.33 +ATTR{idProduct}=="3325", GOTO="adbfast"
   12.34 +#   Liquid (3202=normal,3203=debug)
   12.35 +ATTR{idProduct}=="3203", GOTO="adb"
   12.36 +GOTO="android_usb_rules_end"
   12.37 +LABEL="not_Acer"
   12.38 +
   12.39 +# Actions Semiconductor Co., Ltd
   12.40 +#   Denver TAD 70111
   12.41 +ATTR{idVendor}=="10d6", ATTR{idProduct}=="0c02", GOTO="adb"
   12.42 +
   12.43 +# ADVANCE (Need product specific rules)
   12.44 +#   S5
   12.45 +ATTR{idVendor}=="0a5c", ATTR{idProduct}=="e681", GOTO="adb"
   12.46 +
   12.47 +# Allwinner Technology
   12.48 +ATTR{idVendor}!="1f3a", GOTO="not_Allwinner"
   12.49 +#   Prestigio PER3464B ebook reader (Mass storage mode)
   12.50 +ATTR{idProduct}=="1000", GOTO="adbmtp"
   12.51 +#   Allwinner Technology Android device in fastboot mode
   12.52 +ATTR{idProduct}=="1010", GOTO="adbfast"
   12.53 +GOTO="android_usb_rules_end"
   12.54 +LABEL="not_Allwinner"
   12.55 +
   12.56 +# Amazon Lab126
   12.57 +ATTR{idVendor}!="1949", GOTO="not_Amazon"
   12.58 +#   Amazon Kindle Fire
   12.59 +ATTR{idProduct}=="0006", GOTO="adbfast"
   12.60 +#   Amazon Kindle 8 2016 (giza) (0bb4:0c01=fastboot 0231=mtp 0232=adb,mtp 0233=ptp 0234=adb,ptp)
   12.61 +ATTR{idProduct}=="0232", GOTO="adbmtp"
   12.62 +ATTR{idProduct}=="0234", GOTO="adbptp"
   12.63 +#   Amazon Kindle 10 2021 (trona) (05e0=fastboot 05e1=mtp 05e1=chg 05e2=adb,mtp 05e3=ptp 05e4=adb,ptp 05e8=adb,chg=05e8 2046=midi 2048=adb,midi)
   12.64 +ATTR{idProduct}=="05e0", GOTO="adbfast"
   12.65 +ATTR{idProduct}=="05e2", GOTO="adbmtp"
   12.66 +ATTR{idProduct}=="05e4", GOTO="adbptp"
   12.67 +ATTR{idProduct}=="05e8", GOTO="adb"
   12.68 +ATTR{idProduct}=="2048", GOTO="adbmidi"
   12.69 +#   Amazon Fire TV Stick Lite (3rd gen)
   12.70 +ATTR{idProduct}=="03a8", GOTO="adbfast"
   12.71 +#   Amazon Fire 7 (mustang)
   12.72 +ATTR{idProduct}=="03c8", GOTO="adbfast"
   12.73 +ATTR{idProduct}=="03cb", GOTO="adbfast"
   12.74 +#   Amazon Fire HD 8 2018 (karnak)
   12.75 +ATTR{idProduct}=="0338", GOTO="adbfast"
   12.76 +ATTR{idProduct}=="033b", GOTO="adbfast"
   12.77 +#   Amazon Fire HD 8 2020 10th gen (onyx) (0581=mtp 0581=chg 0582=adb,mtp 0583=ptp 0584=adb,ptp 0588=adb,chg 2046=midi 2048=adb,midi)
   12.78 +ATTR{idProduct}=="0582", GOTO="adbmtp"
   12.79 +ATTR{idProduct}=="0584", GOTO="adbptp"
   12.80 +ATTR{idProduct}=="0588", GOTO="adb"
   12.81 +ATTR{idProduct}=="2048", GOTO="adbmidi"
   12.82 +#   Amazon Fire HD 8 2022 (raphite)
   12.83 +ATTR{idProduct}=="0658", GOTO="adbfast"
   12.84 +#   Amazon Fire HD 10 2023 (tungsten)
   12.85 +ATTR{idProduct}=="06f8", GOTO="adbfast"
   12.86 +GOTO="android_usb_rules_end"
   12.87 +LABEL="not_Amazon"
   12.88 +
   12.89 +# Archos
   12.90 +ATTR{idVendor}!="0e79", GOTO="not_Archos"
   12.91 +#   43
   12.92 +ATTR{idProduct}=="1417", GOTO="adbfast"
   12.93 +#   79 Xenon
   12.94 +ATTR{idProduct}=="303e", GOTO="adbfast"
   12.95 +#   101
   12.96 +ATTR{idProduct}=="1411", GOTO="adbfast"
   12.97 +#   101 xs
   12.98 +ATTR{idProduct}=="1549", GOTO="adbfast"
   12.99 +GOTO="android_usb_rules_end"
  12.100 +LABEL="not_Archos"
  12.101 +
  12.102 +# Ascom
  12.103 +ATTR{idVendor}!="1768", GOTO="not_Ascom"
  12.104 +ATTR{idProduct}=="0007", GOTO="adb"
  12.105 +ATTR{idProduct}=="000e", GOTO="adb"
  12.106 +ATTR{idProduct}=="4ee7", GOTO="adb"
  12.107 +ATTR{idProduct}=="0013", GOTO="adb"
  12.108 +ATTR{idProduct}=="0011", GOTO="adb"
  12.109 +GOTO="android_usb_rules_end"
  12.110 +LABEL="not_Ascom"
  12.111 +
  12.112 +# ASUSTeK
  12.113 +ATTR{idVendor}!="0b05", GOTO="not_Asus"
  12.114 +#   False positive - accessory
  12.115 +ATTR{idProduct}=="1???", GOTO="android_usb_rules_end"
  12.116 +#   Zenphone 2 (ZE500CL) (7770=adb 7773=mtp,adb 7775=rndis,adb,mass_storage 7777=ptp,adb 5F03=mtp,adb,pclink,mass_storage 5F05=rndis,adb,pclink,mass_storage 5F07=ptp,adb,pclink)
  12.117 +#   Zenfone GO (ZB500KL) (7772=mtp 7773=mtp,adb 7774=rndis 7775=rndis,adb 7776=ptp 7777=ptp,adb)
  12.118 +ATTR{idProduct}=="7770", GOTO="adb"
  12.119 +ATTR{idProduct}=="7771", GOTO="adbfast"
  12.120 +ATTR{idProduct}=="7773", GOTO="adbmtp"
  12.121 +ATTR{idProduct}=="7775", ENV{adb_adbmass}="yes", GOTO="adbrndis"
  12.122 +ATTR{idProduct}=="7777", GOTO="adbptp"
  12.123 +ATTR{idProduct}=="5F03", GOTO="adbmtp"
  12.124 +ATTR{idProduct}=="5F07", GOTO="adbptp"
  12.125 +ATTR{idProduct}=="5F05", ENV{adb_adbmass}="yes", GOTO="adbrndis"
  12.126 +#   Zenphone 4 (581f=mtp,adb 583f=rndis,adb)
  12.127 +ATTR{idProduct}=="581f", GOTO="adbmtp"
  12.128 +ATTR{idProduct}=="583f", GOTO="adbrndis"
  12.129 +#   TF300 (4c80=mtp 4c81=mtp,adb)
  12.130 +#   TF700 (4c90=mtp 4c91=mtp,adb)
  12.131 +#   Zenphone 5 (4c90=normal 4c91=debug 4daf=Fastboot 7780=mtp 7781=mtp,adb)
  12.132 +#   TF701T (4ca0=mtp, 4ca1=mtp,adb)
  12.133 +#   ME302KL (4cc0=mtp, 4cc1=mtp,adb)
  12.134 +#   ME301T (4cd0=mtp, 4cd1=mtp,adb)
  12.135 +#   Fonepad 6 (4ce0=mtp, 4ce1=mtp,adb)
  12.136 +ATTR{idProduct}=="4c81", GOTO="adbmtp"
  12.137 +ATTR{idProduct}=="4c91", GOTO="adbmtp"
  12.138 +ATTR{idProduct}=="4ca1", GOTO="adbmtp"
  12.139 +ATTR{idProduct}=="4cc1", GOTO="adbmtp"
  12.140 +ATTR{idProduct}=="4cd1", GOTO="adbmtp"
  12.141 +ATTR{idProduct}=="4ce1", GOTO="adbmtp"
  12.142 +ATTR{idProduct}=="4daf", GOTO="adbfast"
  12.143 +ATTR{idProduct}=="7781", GOTO="adbmtp"
  12.144 +#   SL101 (4e00=mtp, 4e01=mtp,adb)
  12.145 +#   TF101 (4e0f=mtp, 4e1f=mtp,adb)
  12.146 +ATTR{idProduct}=="4e1f", GOTO="adbmtp"
  12.147 +#   Tegra APX
  12.148 +ATTR{idProduct}=="7030", GOTO="adb"
  12.149 +GOTO="android_usb_rules_end"
  12.150 +LABEL="not_Asus"
  12.151 +
  12.152 +# BQ
  12.153 +ATTR{idVendor}!="2a47", GOTO="not_BQ"
  12.154 +#   Aquaris 4.5, Krillin (0c02=mtp,adb 2008=mtp)
  12.155 +ATTR{idProduct}=="0c02", GOTO="adbmtp"
  12.156 +GOTO="android_usb_rules_end"
  12.157 +LABEL="not_BQ"
  12.158 +
  12.159 +# Castles
  12.160 +ATTR{idVendor}!="0ca6", GOTO="not_Castles"
  12.161 +#   Saturn1000-E
  12.162 +ATTR{idProduct}=="a051", GOTO="user"
  12.163 +GOTO="android_usb_rules_end"
  12.164 +LABEL="not_Castles"
  12.165 +
  12.166 +# Dell (Need product specific rules)
  12.167 +#ATTR{idVendor}=="413c", ENV{adb_user}="yes"
  12.168 +
  12.169 +# Essential
  12.170 +ATTR{idVendor}!="2e17", GOTO="not_Essential"
  12.171 +#   Essential PH-1
  12.172 +ATTR{idProduct}=="c009", GOTO="adb"
  12.173 +ATTR{idProduct}=="c03[02]", GOTO="adb"
  12.174 +GOTO="android_usb_rules_end"
  12.175 +LABEL="not_Essential"
  12.176 +
  12.177 +# Fairphone 1 (see Hisense 109b)
  12.178 +# Fairphone 2 (f000=mtp,mass f003=mtp f005=tether f00e=rndis 90de=charge 90dc=charge,adb 9015=storage,adb, 9024=rndis,adb, 9039=mtp,adb 904d=ptp 904e=ptp,adb) 90bb=qualcom midi+adb
  12.179 +ATTR{idVendor}!="2ae5", GOTO="not_Fairphone2"
  12.180 +ATTR{idProduct}=="9015", GOTO="adb"
  12.181 +ATTR{idProduct}=="9024", GOTO="adbrndis"
  12.182 +ATTR{idProduct}=="9039", GOTO="adbmtp"
  12.183 +ATTR{idProduct}=="904e", GOTO="adbptp"
  12.184 +ATTR{idProduct}=="90bb", GOTO="adbmidi"
  12.185 +ATTR{idProduct}=="90dc", GOTO="adb"
  12.186 +GOTO="android_usb_rules_end"
  12.187 +LABEL="not_Fairphone2"
  12.188 +
  12.189 +# Foxconn
  12.190 +#   Commtiva Z71, Geeksphone One
  12.191 +ATTR{idVendor}=="0489", ATTR{idProduct}=="c001", GOTO="adb"
  12.192 +
  12.193 +# Fujitsu/Fujitsu Toshiba (Need product specific rules)
  12.194 +#ATTR{idVendor}=="04c5", GOTO="user"
  12.195 +
  12.196 +# Fuzhou Rockchip Electronics
  12.197 +#   Mediacom Smartpad 715i
  12.198 +ATTR{idVendor}!="2207", GOTO="not_Fuzhou"
  12.199 +ATTR{idProduct}=="0000", GOTO="adb"
  12.200 +#   Ubislate 7Ci
  12.201 +ATTR{idProduct}=="0010", GOTO="adb"
  12.202 +#   Anbernic RG353P - AOSP12beta#1 (0003=rndis 0006=adb,chg 0007=mtp 0008=ptp 0013=adb,rndis 0017=adb,mtp 0018=adb,ptp)
  12.203 +ATTR{idProduct}=="0006", GOTO="adb"
  12.204 +ATTR{idProduct}=="0013", GOTO="adbrndis"
  12.205 +ATTR{idProduct}=="0017", GOTO="adbmtp"
  12.206 +ATTR{idProduct}=="0018", GOTO="adbptp"
  12.207 +GOTO="android_usb_rules_end"
  12.208 +LABEL="not_Fuzhou"
  12.209 +
  12.210 +# Fibocom
  12.211 +ATTR{idVendor}!="2cb7", GOTO="not_Fibocom"
  12.212 +#   FG180_NA
  12.213 +ATTR{idProduct}=="010b", GOTO="adbcdc"
  12.214 +GOTO="android_usb_rules_end"
  12.215 +LABEL="not_Fibocom"
  12.216 +
  12.217 +# Garmin-Asus (Need product specific rules)
  12.218 +#ATTR{idVendor}=="091e", GOTO="user"
  12.219 +
  12.220 +# Google
  12.221 +ATTR{idVendor}!="18d1", GOTO="not_Google"
  12.222 +#   Nexus, Pixel (/XL/2/2XL) (4ee1=mtp 4ee2=mtp,adb 4ee3=rndis 4ee4=rndis,adb 4ee5=ptp 4ee6=ptp,adb 4ee7=adb 4ee8=midi 4ee9=midi,adb 2d00=accessory 2d01=accessory,adb 2d03=audio,adb 2d05=accessory,audio,adb)
  12.223 +#   See https://android.googlesource.com/device/google/wahoo/+/master/usb/UsbGadget.cpp
  12.224 +#   OnePlus 6 (4ee1=charging 4ee2=mtp,adb 4ee6=ptp,adb 4ee7=charging,adb)
  12.225 +#   Onda V972 (0001=mass_storage 0006=mtp 0007=ptp 0008=camera)
  12.226 +#   Pico i.MX7 Dual Development Board 4ee7=debug
  12.227 +#   PinePhone (v1.2) (4ee0=fast 4ee1=mtp 4ee2=mtp,adb 4ee3=rndis 4ee4=rndis,adb 4ee5=ptp 4ee6=ptp,adb 4ee7=adb)
  12.228 +#   Yandex Phone 4ee7=debug
  12.229 +#   Fairphone3 (4ee1=mtp)
  12.230 +#   Motorola G3 (2d02=audio 2d03=audio,adb 4ee8=midi 4ee9=midi,adb)
  12.231 +ATTR{idProduct}=="4ee0", GOTO="adbfast"
  12.232 +ATTR{idProduct}=="4ee2", GOTO="adbmtp"
  12.233 +ATTR{idProduct}=="4ee4", GOTO="adbrndis"
  12.234 +ATTR{idProduct}=="4ee6", GOTO="adbptp"
  12.235 +ATTR{idProduct}=="4ee7", GOTO="adb"
  12.236 +ATTR{idProduct}=="4ee8", GOTO="midi"
  12.237 +ATTR{idProduct}=="4ee9", GOTO="adbmidi"
  12.238 +
  12.239 +#   Tensor Pixel phones (Pixel 7/7 pro/6/6A/6 Pro) 4eeb=cdc-ncm; 4eec=cdc-ncm,adb
  12.240 +ATTR{idProduct}=="4eec", GOTO="adbcdc"
  12.241 +ATTR{idProduct}=="4ee0", GOTO="adbfast"
  12.242 +
  12.243 +#   Tensor Pixel phones (Pixel 7/7 pro/6/6A/6 Pro) 4eed=uvc; 4eee=uvc,adb
  12.244 +ATTR{idProduct}=="4eed", GOTO="uvc"
  12.245 +ATTR{idProduct}=="4eee", GOTO="adbuvc"
  12.246 +
  12.247 +#   Pixel Watch 2 (4ee0=fastboot 4e11=adb)
  12.248 +ATTR{idProduct}=="4e11", GOTO="adb"
  12.249 +
  12.250 +#   Pixel C Tablet (5202=mtp 5203=mtp,adb)
  12.251 +ATTR{idProduct}=="5201", GOTO="adbfast"
  12.252 +ATTR{idProduct}=="5203", GOTO="adbmtp"
  12.253 +ATTR{idProduct}=="5208", GOTO="adb"
  12.254 +
  12.255 +#   Android Open Accessory device (2d00=accessory 2d01=accessory,adb 2d02=audio 2d03=audio,adb 2d04=accessory,audio 2d05=accessory,audio,adb)
  12.256 +ATTR{idProduct}=="2d00", GOTO="adb"
  12.257 +ATTR{idProduct}=="2d01", GOTO="adb"
  12.258 +ATTR{idProduct}=="2d03", GOTO="adbaud"
  12.259 +ATTR{idProduct}=="2d04", GOTO="adbaud"
  12.260 +ATTR{idProduct}=="2d05", GOTO="adbaud"
  12.261 +#   Nexus 7 (4e40=fastboot 4e41=mtp 4e42=mtp,adb 4e43=ptp) Nexus 7 2012 (4e44=ptp)
  12.262 +ATTR{idProduct}=="4e40", GOTO="adbfast"
  12.263 +ATTR{idProduct}=="4e42", GOTO="adbmtp"
  12.264 +#   Nexus S (4e20=fastboot 4e21=? 4e22=mass_storage,adb 4e24=rndis,adb)
  12.265 +#   See https://android.googlesource.com/device/samsung/crespo/+/android-4.1.2_r2.1/init.herring.usb.rc
  12.266 +ATTR{idProduct}=="4e20", GOTO="adbfast"
  12.267 +ATTR{idProduct}=="4e22", GOTO="adbmass"
  12.268 +ATTR{idProduct}=="4e24", GOTO="adbrndis"
  12.269 +ATTR{idProduct}=="4e20", GOTO="adbfast"
  12.270 +#   Galaxy Nexus, Galaxy Nexus (GSM) (4e30=fastboot)
  12.271 +ATTR{idProduct}=="4e30", GOTO="adbfast"
  12.272 +#   Nexus One (4e11=normal 4e12=mtp,adb 4e13=tether 0fff=debug)
  12.273 +ATTR{idProduct}=="4e12", GOTO="adbmtp"
  12.274 +ATTR{idProduct}=="0fff", GOTO="adbfast"
  12.275 +#   Xiaomi MiPhone Mi1/Mi1S (9024=ndis,adb 9025=mass_storage,adb 9026=mass storage f00e=ndis)
  12.276 +ATTR{idProduct}=="9024", GOTO="adb"
  12.277 +ATTR{idProduct}=="9025", GOTO="adbmass"
  12.278 +#   Generic and unspecified debug interface (test after d00?)
  12.279 +#   examples: Xiaomi Mi/Redmi 2, Anbernic RG353P
  12.280 +#   Xiaomi Mi2 (d00d=bootloader d002=charger), LG-V20 (d00d=bootloader)
  12.281 +ATTR{idProduct}=="d00d", GOTO="adbfast"
  12.282 +#   Nexus 4 (d001=fastboot d002=debug)
  12.283 +ATTR{idProduct}=="d001", GOTO="adbfast"
  12.284 +ATTR{idProduct}=="d002", GOTO="adb"
  12.285 +#   LG G2x (d109=mtp d10a=mtp,adb)
  12.286 +ATTR{idProduct}=="d10a", GOTO="adbmtp"
  12.287 +
  12.288 +# Other vendors that also used duplicated Google's idVendor code follows:
  12.289 +# IDEA XDS-1078 (debug=2c11)
  12.290 +ATTR{idProduct}=="2c11", GOTO="adb"
  12.291 +# Hisense U8G Smart TV (MTK MT5895)
  12.292 +ATTR{idProduct}=="0d02", GOTO="adbfast"
  12.293 +GOTO="android_usb_rules_end"
  12.294 +LABEL="not_Google"
  12.295 +
  12.296 +# Haier (Need product specific rules)
  12.297 +#ATTR{idVendor}=="201e", GOTO="user"
  12.298 +
  12.299 +# Hisense (includes Fairphone 1) (Need product specific rules)
  12.300 +#ATTR{idVendor}=="109b", GOTO="user"
  12.301 +
  12.302 +# Honeywell/Foxconn
  12.303 +ATTR{idVendor}!="0c2e", GOTO="not_Honeywell"
  12.304 +#   D70e
  12.305 +ATTR{idProduct}=="0ba3", GOTO="adb"
  12.306 +GOTO="android_usb_rules_end"
  12.307 +LABEL="not_Honeywell"
  12.308 +
  12.309 +# HTC
  12.310 +ATTR{idVendor}!="0bb4", GOTO="not_HTC"
  12.311 +#   Android phone (0fff=fastboot 0001=mass_storage)
  12.312 +ATTR{idProduct}=="0001", GOTO="mass"
  12.313 +ATTR{idProduct}=="0fff", GOTO="adbfast"
  12.314 +#   ADP1, Dream, G1, HD2, Magic, Tattoo (0c01=mass_storage, 0c02=mass_storage,adb)
  12.315 +#   Desire/desire HD/Hero (0ce5=debug 0fb4=rndis 0ff8=tether 0ff9=charge,mass_storage 0ffc=sync_manager 0ffe=modem)
  12.316 +#   NOTE: Amazon Kindle 8 2016 (giza) (fastboot=0bb4:0c01 conflicts with mass storage=0c01)
  12.317 +ATTR{idProduct}=="0c01", GOTO="mass"
  12.318 +ATTR{idProduct}=="0c02", GOTO="adbmass"
  12.319 +ATTR{idProduct}=="0ce5", GOTO="adb"
  12.320 +ATTR{idProduct}=="0ff9", GOTO="mass"
  12.321 +#   ChaCha
  12.322 +ATTR{idProduct}=="0cb2", GOTO="adbfast"
  12.323 +#   Desire (Bravo) (0c87=debug 0c99=debug)
  12.324 +ATTR{idProduct}=="0c87", GOTO="adb"
  12.325 +ATTR{idProduct}=="0c99", GOTO="adb"
  12.326 +#   Desire HD (0ca2=debug 0ff8=tether 0ff9=charge 0ffe=modem)
  12.327 +ATTR{idProduct}=="0ca2", GOTO="adb"
  12.328 +#   Desire S (Saga), Desire HD, Hero, Thunderbolt (0cab=syncmode 0ff9=charge)
  12.329 +ATTR{idProduct}=="0cab", SYMLINK+="android_adb"
  12.330 +#   Desire Z
  12.331 +ATTR{idProduct}=="0c91", GOTO="adbfast"
  12.332 +#   Evo Shift 4G (0c8d=debug 0ca5=?)
  12.333 +ATTR{idProduct}=="0c8d", GOTO="adb"
  12.334 +ATTR{idProduct}=="0ca5", SYMLINK+="android_adb"
  12.335 +#   Hero (GSM), Desire
  12.336 +ATTR{idProduct}=="0c99", SYMLINK+="android_adb"
  12.337 +#   Hero (CDMA)
  12.338 +ATTR{idProduct}=="0c9a", SYMLINK+="android_adb"
  12.339 +#   Incredible
  12.340 +ATTR{idProduct}=="0c9e", SYMLINK+="android_adb"
  12.341 +#   Incredible rev 0002
  12.342 +ATTR{idProduct}=="0c8d", SYMLINK+="android_adb"
  12.343 +#   MyTouch 4G
  12.344 +ATTR{idProduct}=="0c96", SYMLINK+="android_adb"
  12.345 +#   One (m7) && One (m8)
  12.346 +ATTR{idProduct}=="0c93", SYMLINK+="android_adb"
  12.347 +#   Sensation, One (0f87=mtp,?,adb)
  12.348 +ATTR{idProduct}=="0f87", GOTO="adbmtp"
  12.349 +ATTR{idProduct}=="0ff0", SYMLINK+="android_fastboot"
  12.350 +#   One X
  12.351 +ATTR{idProduct}=="0cd6", SYMLINK+="android_adb"
  12.352 +#   Slide
  12.353 +ATTR{idProduct}=="0e03", SYMLINK+="android_adb"
  12.354 +#   Vision
  12.355 +ATTR{idProduct}=="0c91", SYMLINK+="android_adb"
  12.356 +#   Wildfire
  12.357 +ATTR{idProduct}=="0c8b", GOTO="adbfast"
  12.358 +#   Wildfire S
  12.359 +ATTR{idProduct}=="0c86", GOTO="adbfast"
  12.360 +#   Zopo ZP900, Fairphone 1
  12.361 +ATTR{idProduct}=="0c03", GOTO="adbfast"
  12.362 +#   Zopo C2, Android phone via MTP [MT65xx] (2008=mtp)
  12.363 +ATTR{idProduct}=="2008", GOTO="mtp"
  12.364 +#   Android phone via PTP [Wiko Cink Peax 2] (200b=ptp)
  12.365 +ATTR{idProduct}=="200b", GOTO="ptp"
  12.366 +#   Desire 510 (05fd=mtp,adb)
  12.367 +ATTR{idProduct}=="05fd", GOTO="adbmtp"
  12.368 +#   Droid DNA (0dff=mtp,ums,adb 0ebd=mtp,ums)
  12.369 +ATTR{idProduct}=="0dff", GOTO="adbmtp"
  12.370 +ATTR{idProduct}=="0ebd", GOTO="mtp"
  12.371 +#   Droid Incredible 4G LTE (0e31=mtp 0e32=mtp,adb)
  12.372 +ATTR{idProduct}=="0e31", GOTO="mtp"
  12.373 +ATTR{idProduct}=="0e32", GOTO="adbmtp"
  12.374 +#   One (0dea=mtp,ums,adb 0f87=mtp,?,adb 0f5f=mtp,cdc,adb 0f60=mtp,cdc 0f63=mtp,adb 0f64=mtp)
  12.375 +ATTR{idProduct}=="0dea", GOTO="adbmtp"
  12.376 +ATTR{idProduct}=="0f87", GOTO="adbmtp"
  12.377 +ATTR{idProduct}=="0f5f", ENV{adb_adbcdc}="yes", GOTO="adbmtp"
  12.378 +ATTR{idProduct}=="0f60", ENV{adb_cdc}="yes", GOTO="mtp"
  12.379 +ATTR{idProduct}=="0f63", GOTO="adbmtp"
  12.380 +ATTR{idProduct}=="0f64", GOTO="mtp"
  12.381 +#   One M8 Google Play Edition (060b=mtp,adb)
  12.382 +ATTR{idProduct}=="060b", GOTO="adbmtp"
  12.383 +#   One M8 (061a=mtp,adb 0f25=mtp 0fb4=mtp,ums,adb 0fb5=mtp,ums)
  12.384 +ATTR{idProduct}=="061a", GOTO="adbmtp"
  12.385 +ATTR{idProduct}=="0f25", GOTO="mtp"
  12.386 +ATTR{idProduct}=="0fb4", GOTO="adbmtp"
  12.387 +ATTR{idProduct}=="0fb5", GOTO="mtp"
  12.388 +#   HP Touchpad (685c=mtp 6860=mtp,adb)
  12.389 +ATTR{idProduct}=="6860", GOTO="adbmtp"
  12.390 +ENV{adb_user}="yes"
  12.391 +GOTO="android_usb_rule_match"
  12.392 +LABEL="not_HTC"
  12.393 +
  12.394 +# Huawei
  12.395 +ATTR{idVendor}!="12d1", GOTO="not_Huawei"
  12.396 +#   IDEOS (1037=? 1038=debug 1039=tether)
  12.397 +ATTR{idProduct}=="1038", GOTO="adbfast"
  12.398 +#   U8850 Vision
  12.399 +ATTR{idProduct}=="1021", GOTO="adbfast"
  12.400 +#   HiKey (1050=usbnet 1057=adb)
  12.401 +ATTR{idProduct}=="1050", SYMLINK+="android_adb"
  12.402 +ATTR{idProduct}=="1057", GOTO="adb"
  12.403 +#   Honor 6
  12.404 +ATTR{idProduct}=="103a", SYMLINK+="android_adb"
  12.405 +ATTR{idProduct}=="1051", GOTO="mtp"
  12.406 +#   MediaPad M2-A01L
  12.407 +ATTR{idProduct}=="1052", GOTO="mtp"
  12.408 +#   P7-L10 (1052=?mtp 1053=ptp 1054=ptp,adb)
  12.409 +ATTR{idProduct}=="1054", GOTO="adbptp"
  12.410 +#   MediaPad T3
  12.411 +ATTR{idProduct}=="107d", SYMLINK+="android_adb"
  12.412 +#   P10 Lite
  12.413 +ATTR{idProduct}=="107e", SYMLINK+="android_adb"
  12.414 +#   Watch
  12.415 +ATTR{idProduct}=="1c2c", GOTO="adb"
  12.416 +#   Mate 9
  12.417 +ATTR{idProduct}=="107e", SYMLINK+="android_adb"
  12.418 +GOTO="android_usb_rules_end"
  12.419 +LABEL="not_Huawei"
  12.420 +
  12.421 +# Intel
  12.422 +ATTR{idVendor}!="8087", GOTO="not_Intel"
  12.423 +#   Geeksphone Revolution
  12.424 +ATTR{idProduct}=="0a16", GOTO="adb"
  12.425 +#   Chuwi Hi 10 Pro (HQ64)
  12.426 +ATTR{idProduct}=="2a65", GOTO="adb"
  12.427 +ATTR{idProduct}=="07ef", GOTO="adb"
  12.428 +#   Asus ZenFone 2 (ADB Sideload in TWRP Recovery)
  12.429 +ATTR{idProduct}=="0a5d", GOTO="adb"
  12.430 +#   ASUS MeMo Pad 7 ME176C/CX (DNX/Rescue mode)
  12.431 +ATTR{idProduct}=="0a65", GOTO="adbfast"
  12.432 +#   Reference Boards using kernelflinger
  12.433 +#   See https://github.com/intel/kernelflinger/blob/master/libefiusb/usb.c#L56
  12.434 +ATTR{idProduct}=="09ef", GOTO="adbfast"
  12.435 +GOTO="android_usb_rules_end"
  12.436 +LABEL="not_Intel"
  12.437 +
  12.438 +# IUNI
  12.439 +ATTR{idVendor}!="271d", GOTO="not_IUNI"
  12.440 +#   Gionee (3f11=mass,adb)
  12.441 +ATTR{idProduct}=="3f11", GOTO="adbmass"
  12.442 +#   U3
  12.443 +ATTR{idProduct}=="bf39", GOTO="adb"
  12.444 +GOTO="android_usb_rules_end"
  12.445 +LABEL="not_IUNI"
  12.446 +
  12.447 +# K-Touch (Need product specific rules)
  12.448 +#ATTR{idVendor}=="24e3", GOTO="user"
  12.449 +
  12.450 +# KT Tech (Need product specific rules)
  12.451 +#ATTR{idVendor}=="2116", GOTO="user"
  12.452 +
  12.453 +# Kyocera (Need product specific rules)
  12.454 +#ATTR{idVendor}=="0482", ENV{adb_user}="yes"
  12.455 +
  12.456 +# Lenovo
  12.457 +ATTR{idVendor}!="17ef", GOTO="not_Lenovo"
  12.458 +#   Lenovo Tab K10
  12.459 +ATTR{idProduct}=="201c", GOTO="adb"
  12.460 +GOTO="android_usb_rules_end"
  12.461 +LABEL="not_Lenovo"
  12.462 +
  12.463 +# LeTv (LeECo)
  12.464 +ATTR{idVendor}!="2b0e", GOTO="not_letv"
  12.465 +#   LEX720 LeEco Pro3 6GB (610c=normal,610d=debug, 610b=camera)
  12.466 +ATTR{idProduct}=="610d", GOTO="adbfast"
  12.467 +ENV{adb_user}="yes"
  12.468 +GOTO="android_usb_rule_match"
  12.469 +LABEL="not_letv"
  12.470 +
  12.471 +# LG
  12.472 +ATTR{idVendor}!="1004", GOTO="not_LG"
  12.473 +#   Ally, Vortex, P500, P500h (61c5=charge 618e=debug 618f=mass_storage)
  12.474 +ATTR{idProduct}=="618e", GOTO="adb"
  12.475 +ATTR{idProduct}=="618f", GOTO="mass"
  12.476 +#   G2 D802 (61f1=LG software mode)
  12.477 +ATTR{idProduct}=="61f1", SYMLINK+="android_adb"
  12.478 +#   G2 D803
  12.479 +ATTR{idProduct}=="618c", SYMLINK+="android_adb"
  12.480 +#   G2 D803 rogers (631f=charge)
  12.481 +ATTR{idProduct}=="631f", SYMLINK+="android_adb"
  12.482 +#   G3 (VS985), Android Phone (627f=mtp)
  12.483 +ATTR{idProduct}=="627f", GOTO="mtp"
  12.484 +#   LM-X420xxx/G2/Optimus (6300=charge 631c=charge 631d=ptp 631e=ptp 633e=mtp 6344=tether 6348=midi 6356=CDrom)
  12.485 +#   LG-V20 (62ce=mtp,cdc 633a=adp,cdc 18d1:d00d=fastboot)
  12.486 +ATTR{idProduct}=="631c", GOTO="adb"
  12.487 +ATTR{idProduct}=="631d", GOTO="ptp"
  12.488 +ATTR{idProduct}=="631e", GOTO="ptp"
  12.489 +ATTR{idProduct}=="633a", GOTO="adbcdc"
  12.490 +ATTR{idProduct}=="633e", GOTO="mtp"
  12.491 +ATTR{idProduct}=="6344", GOTO="rndis"
  12.492 +ATTR{idProduct}=="6348", GOTO="midi"
  12.493 +#   Optimus LTE (61f9=mtp 61fe=tether)
  12.494 +ATTR{idProduct}=="6315", SYMLINK+="android_adb"
  12.495 +ATTR{idProduct}=="61f9", GOTO="mtp"
  12.496 +#   Swift GT540
  12.497 +ATTR{idProduct}=="61b4", SYMLINK+="android_adb"
  12.498 +#   P500 CM10
  12.499 +ATTR{idProduct}=="61a6", SYMLINK+="android_adb"
  12.500 +#   L90 D410, Various (6300=charge)
  12.501 +ATTR{idProduct}=="6300", SYMLINK+="android_adb"
  12.502 +ENV{adb_user}="yes"
  12.503 +GOTO="android_usb_rule_match"
  12.504 +LABEL="not_LG"
  12.505 +
  12.506 +# Meizu
  12.507 +ATTR{idVendor}!="2a45", GOTO="not_Meizu"
  12.508 +#   M1E
  12.509 +ATTR{idProduct}=="0c01", GOTO="adb"
  12.510 +#   MX6
  12.511 +ATTR{idProduct}=="0c02", GOTO="adb"
  12.512 +#   M6T (untested; See <https://github.com/M0Rf30/android-udev-rules/issues/262>
  12.513 +ATTR{idProduct}=="201c", GOTO="adb"
  12.514 +GOTO="android_usb_rules_end"
  12.515 +LABEL="not_Meizu"
  12.516 +
  12.517 +# Micromax
  12.518 +ATTR{idVendor}!="2a96", GOTO="not_Micromax"
  12.519 +#   P702
  12.520 +ATTR{idProduct}=="201d", GOTO="adbfast"
  12.521 +GOTO="android_usb_rules_end"
  12.522 +LABEL="not_Micromax"
  12.523 +
  12.524 +# Microsoft
  12.525 +ATTR{idVendor}!="045e", GOTO="not_Microsoft"
  12.526 +#   Surface Duo
  12.527 +ATTR{idProduct}=="0c26", GOTO="adbfast"
  12.528 +#   False positive xbox controllers 028e, 02ea, 0719
  12.529 +ATTR{idProduct}=="02??", GOTO="android_usb_rules_end"
  12.530 +ATTR{idProduct}=="07??", GOTO="android_usb_rules_end"
  12.531 +ENV{adb_user}="yes"
  12.532 +GOTO="android_usb_rule_match"
  12.533 +LABEL="not_Microsoft"
  12.534 +
  12.535 +# Motorola
  12.536 +ATTR{idVendor}!="22b8", GOTO="not_Motorola"
  12.537 +#   CLIQ XT/Quench
  12.538 +ATTR{idProduct}=="2d66", SYMLINK+="android_adb"
  12.539 +#   Defy/MB525
  12.540 +ATTR{idProduct}=="428c", SYMLINK+="android_adb"
  12.541 +#   Droid
  12.542 +ATTR{idProduct}=="41db", SYMLINK+="android_adb"
  12.543 +#   Razr XT912
  12.544 +ATTR{idProduct}=="4362", GOTO="adbfast"
  12.545 +#   Droid Turbo 2
  12.546 +ATTR{idProduct}=="2ea4", GOTO="adbfast"
  12.547 +#   Atrix/Razr HD (2e32=mtp 2e33=mtp,adb)
  12.548 +#   Razr M (2e50=mtp 2e51=mtp,adb)
  12.549 +#   Moto G3 (2e76=mtp,adb 2e81=charge,adb 2e82=mtp 2e83=ptp 2e84=ptp,adb 2e24=rndis 2e25=rndis,adb)
  12.550 +#   Moto E/G dual sim (2e76=mtp,adb 2e80=fast 2e81=recovery 2e82=mtp 2e83=ptp 2e84=ptp,adb 2e24=rndis 2e25=rndis,adb)
  12.551 +#   Moto Z3 Play, beckham, XT1929
  12.552 +#     For details see: <https://github.com/M0Rf30/android-udev-rules/issues/264>
  12.553 +#     18d1:4ee8=midi; 18d1:4ee9=midi+adb
  12.554 +#     BP TOOLS: 2ee5=charging, mtp, ptp; 2ee6=charging+adb, mtp+adb, ptp+adb; 2ee7=rndis; 2ee8=rndis+adb; 18d1:4ee8=midi; 18d1:4ee9=midi+adb
  12.555 +#     QCOM: 05c6:9091=charing+adb, mtp+adb, ptp+adb; 05c6:9092=charging, mtp, ptp; 18d1:4ee8=midi; 18d1:4ee9=midi+adb; 22b8:2e24=rndis; 22b8:2e25=rndis+adb
  12.556 +ATTR{idProduct}=="2e24", GOTO="rndis"
  12.557 +ATTR{idProduct}=="2e25", GOTO="adbrndis"
  12.558 +ATTR{idProduct}=="2e33", GOTO="adbmtp"
  12.559 +ATTR{idProduct}=="2e51", GOTO="adbmtp"
  12.560 +ATTR{idProduct}=="2e76", GOTO="adbmtp"
  12.561 +ATTR{idProduct}=="2e80", GOTO="adbfast"
  12.562 +ATTR{idProduct}=="2e81", GOTO="adb"
  12.563 +ATTR{idProduct}=="2e84", GOTO="adbptp"
  12.564 +ATTR{idProduct}=="2eb7", GOTO="mass"
  12.565 +#   Xoom (70a8=mtp 70a9=mtp,adb 70ae=rndis 70af=rndis,adb 70b0=acm 70b1=acm,adb 70b2=acm,rndis 70b3=acm,rndis,adb 70b4=ptp 70b5ptp,adb)
  12.566 +ATTR{idProduct}=="70a9", GOTO="adbmtp"
  12.567 +ATTR{idProduct}=="70ae", GOTO="rndis"
  12.568 +ATTR{idProduct}=="70af", GOTO="adbrndis"
  12.569 +ATTR{idProduct}=="70b1", GOTO="adbcdc"
  12.570 +ATTR{idProduct}=="70b3", GOTO="adbrndis"
  12.571 +ATTR{idProduct}=="70b5", GOTO="adbptp"
  12.572 +#   XT890/907/Razr (710d=mtp 710e=mtp,adb 710f=mass)
  12.573 +ATTR{idProduct}=="710e", GOTO="adbmtp"
  12.574 +GOTO="android_usb_rules_end"
  12.575 +LABEL="not_Motorola"
  12.576 +
  12.577 +# MTK (MediaTek Inc)
  12.578 +ATTR{idVendor}!="0e8d", GOTO="not_MTK"
  12.579 +#   Umidigi F1 (201c=adbfast)
  12.580 +#   MT65xx/67xx (2000=cdc 2008=mtp 200a=mtp,cdc,adb 2012=mtp,cdc 201d=mtp,adb)
  12.581 +#   Moto E22i (2005=rndis,adb 200c=ptp,adb 2048=midi,adb 201c=adb 201d=mtp,adb)
  12.582 +ATTR{idProduct}=="2005", GOTO="adbrndis"
  12.583 +ATTR{idProduct}=="200a", ENV{adb_adbcdc}="yes", GOTO="adbmtp"
  12.584 +ATTR{idProduct}=="200c", GOTO="adbptp"
  12.585 +ATTR{idProduct}=="2048", GOTO="adbmidi"
  12.586 +ATTR{idProduct}=="201c", GOTO="adb"
  12.587 +ATTR{idProduct}=="201d", GOTO="adbmtp"
  12.588 +GOTO="android_usb_rules_end"
  12.589 +LABEL="not_MTK"
  12.590 +
  12.591 +# NEC LifeTouch Note (0300=? 0301=debug)
  12.592 +ATTR{idVendor}=="0409", ATTR{idProduct}=="0300", GOTO="user"
  12.593 +
  12.594 +# Nextbit (Need product specific rules)
  12.595 +#ATTR{idVendor}=="2c3f", GOTO="user"
  12.596 +
  12.597 +# Nintendo
  12.598 +ATTR{idVendor}!="057e", GOTO="not_Nintendo"
  12.599 +#   Switch
  12.600 +ATTR{idProduct}=="2000", GOTO="adb"
  12.601 +GOTO="android_usb_rules_end"
  12.602 +LABEL="not_Nintendo"
  12.603 +
  12.604 +# Nokia X (Need product specific rules)
  12.605 +#ATTR{idVendor}=="0421", GOTO="user"
  12.606 +
  12.607 +# Nokia 3 (Need product specific rules)
  12.608 +#ATTR{idVendor}=="2e04", GOTO="user"
  12.609 +
  12.610 +# Nook (Barnes & Noble) (Need product specific rules)
  12.611 +ATTR{idVendor}!="2080", GOTO="not_Nook"
  12.612 +#   Glowlight 3
  12.613 +ATTR{idProduct}=="000b", GOTO="adb"
  12.614 +GOTO="android_usb_rules_end"
  12.615 +LABEL="not_Nook"
  12.616 +
  12.617 +# Nvidia
  12.618 +ATTR{idVendor}!="0955", GOTO="not_Nvidia"
  12.619 +#   Audi SDIS Rear Seat Entertainment Tablet
  12.620 +#   Folio
  12.621 +ATTR{idProduct}=="7000", SYMLINK+="android_fastboot"
  12.622 +ATTR{idProduct}=="7100", GOTO="user"
  12.623 +#   SHIELD Tablet (cf05=mtp,adb cf06= cf07=mtp cf08= cf09=)
  12.624 +ATTR{idProduct}=="cf05", GOTO="adbmtp"
  12.625 +ATTR{idProduct}=="cf09", GOTO="adb"
  12.626 +#   Shield TV (b42a=mtp)
  12.627 +ATTR{idProduct}=="b442", SYMLINK+="android_fastboot"
  12.628 +ENV{adb_user}="yes"
  12.629 +GOTO="android_usb_rule_match"
  12.630 +LABEL="not_Nvidia"
  12.631 +
  12.632 +# Oculus
  12.633 +ATTR{idVendor}!="2833", GOTO="not_Oculus"
  12.634 +#   Oculus Go
  12.635 +ATTR{idProduct}=="0083", GOTO="user"
  12.636 +#   Oculus Quest
  12.637 +ATTR{idProduct}=="0183", GOTO="user"
  12.638 +#   Oculus Quest 2, Quest 3
  12.639 +ATTR{idProduct}=="0186", GOTO="user"
  12.640 +GOTO="android_usb_rules_end"
  12.641 +LABEL="not_Oculus"
  12.642 +
  12.643 +# Pico XR
  12.644 +ATTR{idVendor}!="2d40", GOTO="not_Pico"
  12.645 +#   Pico 4
  12.646 +ATTR{idProduct}=="00b7", GOTO="user"
  12.647 +GOTO="android_usb_rules_end"
  12.648 +LABEL="not_Pico"
  12.649 +
  12.650 +# OnePlus(Oreo)
  12.651 +ATTR{idVendor}!="2a70", GOTO="not_OnePlus"
  12.652 +#   Oneplus 3T/5T/6 (4ee7=charge,adb)
  12.653 +#   OnePlus 6, 4ee1=charging, 4ee2=MTP+debug, 4ee6=PTP+debug, 4ee7=charging+debug
  12.654 +ATTR{idProduct}=="4ee2", GOTO="adbmtp"
  12.655 +ATTR{idProduct}=="4ee6", GOTO="adbptp"
  12.656 +ATTR{idProduct}=="4ee7", GOTO="adb"
  12.657 +#   OnePlus 6T
  12.658 +ATTR{idProduct}=="d001", GOTO="adb"
  12.659 +#   OnePlus Nord N10 4G USB tethering mode
  12.660 +ATTR{idProduct}=="9024", GOTO="adb"
  12.661 +#   OnePlus 3T with Oreo MIDI mode 90bb=midi,adb 9011=mtp 904d=ptp 904e=ptp,adb
  12.662 +#   OnePlus 7T (9012=mtp,adb)
  12.663 +ATTR{idProduct}=="9011", GOTO="mtp"
  12.664 +ATTR{idProduct}=="9012", GOTO="adbmtp"
  12.665 +ATTR{idProduct}=="904d", GOTO="ptp"
  12.666 +ATTR{idProduct}=="904e", GOTO="adbptp"
  12.667 +ATTR{idProduct}=="90bb", GOTO="adbmidi"
  12.668 +GOTO="android_usb_rules_end"
  12.669 +LABEL="not_OnePlus"
  12.670 +
  12.671 +# Oppo
  12.672 +ATTR{idVendor}!="22d9", GOTO="not_Oppo"
  12.673 +#   Find 5 (2767=debug)
  12.674 +ATTR{idProduct}=="2767", GOTO="adb"
  12.675 +#   Realme 8, OnePlus 9 Pro, Watch=adb
  12.676 +ATTR{idProduct}=="2769", GOTO="adb"
  12.677 +ATTR{idProduct}=="2764", GOTO="mtp"
  12.678 +#   Oppo Watch, fastboot
  12.679 +ATTR{idProduct}=="2024", GOTO="user"
  12.680 +#   RMX3231 - Realme C11 20221, normal, rndis, mtp
  12.681 +ATTR{idProduct}=="200e", GOTO="user"
  12.682 +ATTR{idProduct}=="2028", GOTO="user"
  12.683 +ATTR{idProduct}=="2026", GOTO="user"
  12.684 +#   OnePlus 7a (2774=mass,adb)
  12.685 +#   OnePlus 7T (2765=adb,mtp 2766=rndis,adb)
  12.686 +#   OnePlus 8T (2771=adb,ptp 2772=adb,mtp)
  12.687 +ATTR{idProduct}=="2765", GOTO="adbmtp"
  12.688 +ATTR{idProduct}=="2766", GOTO="adbrndis"
  12.689 +ATTR{idProduct}=="2771", GOTO="adbptp"
  12.690 +ATTR{idProduct}=="2772", GOTO="adbmtp"
  12.691 +ATTR{idProduct}=="2774", GOTO="adbmass"
  12.692 +GOTO="android_usb_rules_end"
  12.693 +LABEL="not_Oppo"
  12.694 +
  12.695 +# OTGV (Need product specific rules)
  12.696 +#ATTR{idVendor}=="2257", GOTO="user"
  12.697 +
  12.698 +# Pantech (SK Teletech Co, Ltd.) (Need product specific rules)
  12.699 +#ATTR{idVendor}=="10a9", GOTO="user"
  12.700 +
  12.701 +# Parrot SA (Car HUD)
  12.702 +ATTR{idVendor}=="19cf", ATTR{idProduct}=="0001", GOTO="user"
  12.703 +
  12.704 +# Pegatron Chagall (5035=adb)
  12.705 +ATTR{idVendor}=="1d4d", ATTR{idProduct}=="5035", GOTO="adb"
  12.706 +
  12.707 +# Philips (and NXP) (Need product specific rules)
  12.708 +#ATTR{idVendor}=="0471", GOTO="user"
  12.709 +
  12.710 +# Pico (Need product specific rules)
  12.711 +#ATTR{idVendor}=="2d40", GOTO="user"
  12.712 +
  12.713 +# PMC-Sierra, (Panasonic Mobile communications, Matsushita) (Need product specific rules)
  12.714 +#ATTR{idVendor}=="04da", GOTO="user"
  12.715 +
  12.716 +# Point Mobile
  12.717 +ATTR{idVendor}!="2a48", GOTO="not_Point_Mobile"
  12.718 +#   PM90
  12.719 +ATTR{idProduct}=="5101", GOTO="user"
  12.720 +GOTO="android_usb_rules_end"
  12.721 +LABEL="not_Point_Mobile"
  12.722 +
  12.723 +# Polar
  12.724 +ATTR{idVendor}!="0da4", GOTO="not_Polar"
  12.725 +ENV{adb_user}="yes"
  12.726 +#   Polar M600 (0010=adb 000b=fastboot)
  12.727 +ATTR{idProduct}=="0010", GOTO="adb"
  12.728 +ATTR{idProduct}=="000b", GOTO="adbfast"
  12.729 +GOTO="android_usb_rules_end"
  12.730 +LABEL="not_Polar"
  12.731 +
  12.732 +# Qualcomm (Wearners also 05c6)
  12.733 +ATTR{idVendor}!="05c6", GOTO="not_Qualcomm"
  12.734 +#   Geeksphone Zero
  12.735 +ATTR{idProduct}=="9025", SYMLINK+="android_adb"
  12.736 +#   OnePlus One (6765=mtp,adb 6764=mtp)
  12.737 +ATTR{idProduct}=="6765", GOTO="adbmtp"
  12.738 +#   OnePlus Two
  12.739 +ATTR{idProduct}=="9011", SYMLINK+="android_adb"
  12.740 +#   OnePlus 3
  12.741 +ATTR{idProduct}=="900e", SYMLINK+="android_adb"
  12.742 +#   OnePlus 3T
  12.743 +ATTR{idProduct}=="676c", SYMLINK+="android_adb"
  12.744 +#   Snapdragon, OnePlus 3T w/ Oreo MIDI mode (9011=mtp 90bb=midi,adb 904e=ptp)
  12.745 +#   Xiaomi A1 (90bb=midi,adb)
  12.746 +ATTR{idProduct}=="90bb", GOTO="adbmidi"
  12.747 +ATTR{idProduct}=="90dc", GOTO="adb"
  12.748 +#   OnePlus 5 / 6 / 6T
  12.749 +ATTR{idProduct}=="9011", SYMLINK+="android_adb"
  12.750 +#   OnePlus 6 / Asia
  12.751 +ATTR{idProduct}=="f003", SYMLINK+="android_adb"
  12.752 +#   Yongnuo YN450m (identified in lsusb as Intex Aqua Fish & Jolla C Diagnostic Mode)
  12.753 +ATTR{idProduct}=="9091", GOTO="adb"
  12.754 +#   Wileyfox Swift 2 Plus
  12.755 +ATTR{idProduct}=="0001", GOTO="user"
  12.756 +ENV{adb_user}="yes"
  12.757 +GOTO="android_usb_rule_match"
  12.758 +LABEL="not_Qualcomm"
  12.759 +
  12.760 +# Quectel
  12.761 +ATTR{idVendor}!="2c7c", GOTO="not_Quectel"
  12.762 +#   EC25
  12.763 +ATTR{idProduct}=="0125", GOTO="adb"
  12.764 +GOTO="android_usb_rules_end"
  12.765 +LABEL="not_Quectel"
  12.766 +
  12.767 +# Razer USA, Ltd.
  12.768 +ATTR{idVendor}!="1532", GOTO="not_Razer"
  12.769 +#   Razer Phone 2
  12.770 +ATTR{idProduct}=="9050", GOTO="adbfast"
  12.771 +ATTR{idProduct}=="9051", GOTO="adb"
  12.772 +GOTO="android_usb_rules_end"
  12.773 +LABEL="not_Razer"
  12.774 +
  12.775 +# Research In Motion, Ltd.
  12.776 +ATTR{idVendor}!="0fca", GOTO="not_RIM"
  12.777 +#   BlackBerry DTEK60
  12.778 +ATTR{idProduct}=="8042", GOTO="adbfast"
  12.779 +GOTO="android_usb_rules_end"
  12.780 +LABEL="not_RIM"
  12.781 +
  12.782 +# Samsung
  12.783 +ATTR{idVendor}!="04e8", GOTO="not_Samsung"
  12.784 +#   False positive printer and other devices
  12.785 +ATTR{idProduct}!="6???", GOTO="android_usb_rules_end"
  12.786 +#   Galaxy i5700
  12.787 +ATTR{idProduct}=="681c", GOTO="adbfast"
  12.788 +#   Galaxy i5800 (681c=debug 6601=fastboot 68a0=mediaplayer)
  12.789 +ATTR{idProduct}=="681c", SYMLINK+="android_adb"
  12.790 +ATTR{idProduct}=="6601", SYMLINK+="android_fastboot"
  12.791 +ATTR{idProduct}=="68a9", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
  12.792 +#   Galaxy i7500
  12.793 +ATTR{idProduct}=="6640", GOTO="adbfast"
  12.794 +#   Galaxy i9000 S, i9300 S3
  12.795 +ATTR{idProduct}=="6601", SYMLINK+="android_adb"
  12.796 +ATTR{idProduct}=="685d", MODE="0660"
  12.797 +ATTR{idProduct}=="68c3", MODE="0660"
  12.798 +#   Galaxy Ace (S5830) "Cooper"
  12.799 +ATTR{idProduct}=="689e", GOTO="adbfast"
  12.800 +#   Galaxy Tab
  12.801 +ATTR{idProduct}=="6877", GOTO="adbfast"
  12.802 +#   Galaxy Nexus (GSM) (6860=mtp,adb 6864=rndis,adb 6866=ptp,adb)
  12.803 +#   Galaxy Core ([6860=mtp+6860=mtp,adb] 6863=tether 6864=tether,adb 6865=ptp 6866=ptp,adb)
  12.804 +#   Galaxy A5   ([6860=mtp+6860=mtp,adb] 6863=rndis 6864=rndis,adb 6865=ptp 6866=ptp,adb 686c=midi 686c=midi,adb)
  12.805 +ATTR{idProduct}=="6860", SYMLINK+="android_adb", GOTO="mtp"
  12.806 +ATTR{idProduct}=="6864", GOTO="adbrndis"
  12.807 +ATTR{idProduct}=="6866", GOTO="adbptp"
  12.808 +ATTR{idProduct}=="686c", GOTO="adbmidi"
  12.809 +#   Galaxy Core, Tab 10.1, i9100 S2, i9300 S3, N5100 Note (8.0), Galaxy S3 SHW-M440S 3G (Korea only)
  12.810 +ATTR{idProduct}=="685e", GOTO="adbfast"
  12.811 +#   Galaxy A5, S4 GT-I9500 (seems to be universally used for this purpose)
  12.812 +ATTR{idProduct}=="685d", GOTO="odin"
  12.813 +ENV{adb_user}="yes"
  12.814 +GOTO="android_usb_rule_match"
  12.815 +LABEL="not_Samsung"
  12.816 +
  12.817 +# Sharp (Need product specific rules)
  12.818 +#ATTR{idVendor}=="04dd", GOTO="user"
  12.819 +
  12.820 +# SHIFT GmbH
  12.821 +ATTR{idVendor}!="3360", GOTO="not_shift"
  12.822 +#   SHIFT5me
  12.823 +ATTR{idProduct}=="201c", GOTO="adb"
  12.824 +GOTO="android_usb_rules_end"
  12.825 +LABEL="not_shift"
  12.826 +
  12.827 +# SK Telesys
  12.828 +ATTR{idVendor}=="1f53", GOTO="user"
  12.829 +
  12.830 +# Sonim
  12.831 +ATTR{idVendor}=="1d9c", GOTO="user"
  12.832 +
  12.833 +# Sony
  12.834 +ATTR{idVendor}!="054c", GOTO="not_Sony"
  12.835 +# (Need product specific rules)
  12.836 +GOTO="android_usb_rules_end"
  12.837 +#   False positives dualshock 0268,05c4,05c5, adapters 0ba0, bluetooth 09cc, 0ce6, VR 09af
  12.838 +ATTR{idProduct}=="02??", GOTO="android_usb_rules_end"
  12.839 +ATTR{idProduct}=="05??", GOTO="android_usb_rules_end"
  12.840 +ATTR{idProduct}=="09??", GOTO="android_usb_rules_end"
  12.841 +ATTR{idProduct}=="0b??", GOTO="android_usb_rules_end"
  12.842 +ATTR{idProduct}=="0c??", GOTO="android_usb_rules_end"
  12.843 +ENV{adb_user}="yes"
  12.844 +GOTO="android_usb_rule_match"
  12.845 +LABEL="not_Sony"
  12.846 +
  12.847 +# Sony Ericsson
  12.848 +ATTR{idVendor}!="0fce", GOTO="not_Sony_Ericsson"
  12.849 +#   Xperia X10 mini (3137=mass_storage)
  12.850 +ATTR{idProduct}=="2137", SYMLINK+="android_adb"
  12.851 +#   Xperia X10 mini pro (3138=mass_storage)
  12.852 +ATTR{idProduct}=="2138", SYMLINK+="android_adb"
  12.853 +#   Xperia X8 (3149=mass_storage)
  12.854 +ATTR{idProduct}=="2149", SYMLINK+="android_adb"
  12.855 +#   Xperia X12 (e14f=mass_storage)
  12.856 +ATTR{idProduct}=="614f", SYMLINK+="android_adb"
  12.857 +#   Xperia Arc S
  12.858 +ATTR{idProduct}=="414f", GOTO="adbfast"
  12.859 +#   Xperia Neo V (6156=debug 0dde=fastboot)
  12.860 +ATTR{idProduct}=="6156", SYMLINK+="android_adb"
  12.861 +ATTR{idProduct}=="0dde", SYMLINK+="android_fastboot"
  12.862 +#   Xperia S
  12.863 +ATTR{idProduct}=="5169", GOTO="adbfast"
  12.864 +#   Xperia SP
  12.865 +ATTR{idProduct}=="6195", GOTO="adbfast"
  12.866 +#   Xperia L
  12.867 +ATTR{idProduct}=="5192", GOTO="adbfast"
  12.868 +#   Xperia Mini Pro
  12.869 +ATTR{idProduct}=="0166", GOTO="adbfast"
  12.870 +#   Xperia V
  12.871 +ATTR{idProduct}=="0186", GOTO="adbfast"
  12.872 +#   Xperia Acro S
  12.873 +ATTR{idProduct}=="5176", GOTO="adbfast"
  12.874 +#   Xperia Z1 Compact
  12.875 +ATTR{idProduct}=="51a7", GOTO="adbfast"
  12.876 +#   Xperia Z2
  12.877 +ATTR{idProduct}=="51ba", GOTO="adbfast"
  12.878 +#   Xperia Z3
  12.879 +ATTR{idProduct}=="01af", GOTO="adbfast"
  12.880 +#   Xperia Z3 Compact
  12.881 +ATTR{idProduct}=="01bb", GOTO="adbfast"
  12.882 +#   Xperia Z3+ Dual
  12.883 +ATTR{idProduct}=="51c9", GOTO="adbfast"
  12.884 +#   Xperia XZ
  12.885 +ATTR{idProduct}=="51e7", GOTO="adbfast"
  12.886 +#   Xperia XZ1 Compact
  12.887 +ATTR{idProduct}=="01f4", GOTO="adbfast"
  12.888 +#   Xperia XZ2 Compact
  12.889 +ATTR{idProduct}=="b00b", GOTO="adbfast"
  12.890 +#   Xperia 5 II
  12.891 +ATTR{idProduct}=="020d", GOTO="adbfast"
  12.892 +#   Xperia Z Ultra
  12.893 +ATTR{idProduct}=="519c", GOTO="adbfast"
  12.894 +#   Xperia Play
  12.895 +ATTR{idProduct}=="615d", GOTO="adbfast"
  12.896 +ENV{adb_user}="yes"
  12.897 +GOTO="android_usb_rule_match"
  12.898 +LABEL="not_Sony_Ericsson"
  12.899 +
  12.900 +# Spectralink
  12.901 +ATTR{idVendor}=="1973", GOTO="user"
  12.902 +
  12.903 +# Spreadtrum
  12.904 +ATTR{idVendor}!="1782", GOTO="not_Spreadtrum"
  12.905 +#   (Unisoc) Various devices (4001=mtp 4002=mtp,adb 4003=mtp,adb)
  12.906 +ATTR{idProduct}=="4002", GOTO="adbmtp"
  12.907 +ATTR{idProduct}=="4003", GOTO="adbmtp"
  12.908 +GOTO="android_usb_rules_end"
  12.909 +LABEL="not_Spreadtrum"
  12.910 +
  12.911 +# T & A Mobile Phones
  12.912 +ATTR{idVendor}!="1bbb", GOTO="not_T_A_Mobile"
  12.913 +#   Alcatel 1 2019 5033F
  12.914 +ATTR{idProduct}=="0c01", GOTO="adb"
  12.915 +#   Alcatel OT991D
  12.916 +ATTR{idProduct}=="00f2", GOTO="adb"
  12.917 +#   Alcatel OT6012A
  12.918 +ATTR{idProduct}=="0167", GOTO="adb"
  12.919 +#   Alcatel 5024L
  12.920 +ATTR{idProduct}=="4ee7", GOTO="adb"
  12.921 +ENV{adb_user}="yes"
  12.922 +GOTO="android_usb_rule_match"
  12.923 +LABEL="not_T_A_Mobile"
  12.924 +
  12.925 +# Teleepoch (Need product specific rules)
  12.926 +#ATTR{idVendor}=="2340", GOTO="user"
  12.927 +
  12.928 +# Texas Instruments UsbBoot
  12.929 +ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", GOTO="user"
  12.930 +ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", GOTO="user"
  12.931 +
  12.932 +# Toshiba (Need product specific rules)
  12.933 +#ATTR{idVendor}=="0930", GOTO="user"
  12.934 +
  12.935 +# Unitech Electronics
  12.936 +ATTR{idVendor}!="2e8e", GOTO="not_Unitech_Electronics"
  12.937 +#   EA630 (96e1=normal 96e7=debug)
  12.938 +ATTR{idProduct}=="96e7", GOTO="adb"
  12.939 +ENV{adb_user}="yes"
  12.940 +GOTO="android_usb_rule_match"
  12.941 +LABEL="not_Unitech_Electronics"
  12.942 +
  12.943 +# Vivo (Need product specific rules)
  12.944 +ATTR{idVendor}=="2d95", GOTO="user"
  12.945 +
  12.946 +# Wileyfox KAZAM Tornado 348 (0c03=mass,adb)
  12.947 +ATTR{idVendor}=="2970", ATTR{idProduct}=="0c03", GOTO="adb"
  12.948 +
  12.949 +# XiaoMi
  12.950 +ATTR{idVendor}!="2717", GOTO="not_XiaoMi"
  12.951 +#   Mi3
  12.952 +ATTR{idProduct}=="0368", GOTO="adbmtp"
  12.953 +#   RedMi 1S WCDMA (MTP+Debug)
  12.954 +ATTR{idProduct}=="1268", GOTO="adbmtp"
  12.955 +#   RedMi 1S / RedMi / RedMi Note WCDMA (1210=ptp 1218=ptp,adb 1220=CDrom 1228=usb,adb 1240=mtp 1248=mtp,adb)
  12.956 +ATTR{idProduct}=="1218", GOTO="adbptp"
  12.957 +ATTR{idProduct}=="1228", GOTO="adb"
  12.958 +ATTR{idProduct}=="1248", GOTO="adbmtp"
  12.959 +#   RedMi / RedMi Note 4G WCDMA (1311=ptp,adb 1328=usb,adb 1368=mtp,adb)
  12.960 +ATTR{idProduct}=="1318", GOTO="adbptp"
  12.961 +ATTR{idProduct}=="1328", GOTO="adb"
  12.962 +ATTR{idProduct}=="1368", GOTO="adbmtp"
  12.963 +#   Mi2 (f003=mtp,mass_storage 9039=mtp,adb,mass_storage 904d=ptp 904e=ptp,adb f000=mass_storage 9015=mass_storage,adb f00e=ndis 9024=ndis,adb f00f=ndis 803e=ndis,adb)
  12.964 +#   Mi2A / Mi2S (9039=mtp,adb, 904e=adb,ptp)
  12.965 +ATTR{idProduct}=="9039", GOTO="adbmtp"
  12.966 +ATTR{idProduct}=="904e", GOTO="adbptp"
  12.967 +ATTR{idProduct}=="9015", GOTO="adbmass"
  12.968 +ATTR{idProduct}=="9024", GOTO="adb"
  12.969 +ATTR{idProduct}=="803e", GOTO="adb"
  12.970 +#   Redmi Note 3 (ff08=adb)
  12.971 +#   Mi/Redmi (ff10=ptp ff18=ptp,adb ff40=mtp ff48=mtp,adb ff80=rndis ff88=rndis,adb)
  12.972 +#   Mi Mix / A1 (ff18=ptp,adb ff28=storage,adb ff48=mtp,adb ff88=rndis,adb)
  12.973 +ATTR{idProduct}=="ff08", GOTO="adb"
  12.974 +ATTR{idProduct}=="ff18", GOTO="adbptp"
  12.975 +ATTR{idProduct}=="ff28", GOTO="adbmass"
  12.976 +ATTR{idProduct}=="ff40", GOTO="mtp"
  12.977 +ATTR{idProduct}=="ff48", GOTO="adbmtp"
  12.978 +ATTR{idProduct}=="ff88", GOTO="adbrndis"
  12.979 +#   RedMi / RedMi Note 4G CDMA (ff68=usb,adb) / Mi4c / Mi5
  12.980 +ATTR{idProduct}=="ff68", GOTO="adb"
  12.981 +GOTO="android_usb_rules_end"
  12.982 +LABEL="not_XiaoMi"
  12.983 +
  12.984 +# Yota
  12.985 +ATTR{idVendor}!="2916", GOTO="not_Yota"
  12.986 +#   YotaPhone2 (f003=normal 9139=debug)
  12.987 +ATTR{idProduct}=="9139", GOTO="adb"
  12.988 +ENV{adb_user}="yes"
  12.989 +GOTO="android_usb_rule_match"
  12.990 +LABEL="not_Yota"
  12.991 +
  12.992 +# YU (Need product specific rules)
  12.993 +ATTR{idVendor}=="1ebf", GOTO="user"
  12.994 +
  12.995 +# Zebra
  12.996 +ATTR{idVendor}!="05e0", GOTO="not_Zebra"
  12.997 +#   TC55
  12.998 +ATTR{idProduct}=="2101", GOTO="adb"
  12.999 +#   TC72
 12.1000 +ATTR{idProduct}=="2106", GOTO="adb"
 12.1001 +#   TC78
 12.1002 +ATTR{idProduct}=="2107", GOTO="adb"
 12.1003 +GOTO="android_usb_rules_end"
 12.1004 +LABEL="not_Zebra"
 12.1005 +
 12.1006 +# ZTE
 12.1007 +ATTR{idVendor}!="19d2", GOTO="not_ZTE"
 12.1008 +#   ZTE Blade A5 2020 (0306=mtp,adb 0310=ptp,adb 0501=cdrom,adb 1352=charging,adb 1373=rndis,adb)
 12.1009 +ATTR{idProduct}=="0306", GOTO="adbmtp"
 12.1010 +ATTR{idProduct}=="0310", GOTO="adbptp"
 12.1011 +ATTR{idProduct}=="0501", GOTO="adb"
 12.1012 +ATTR{idProduct}=="1352", GOTO="adb"
 12.1013 +ATTR{idProduct}=="1373", GOTO="adbrndis"
 12.1014 +#   Blade (1351=debug 1353=normal)
 12.1015 +ATTR{idProduct}=="1351", GOTO="adb"
 12.1016 +#   Blade S (Crescent, Orange San Francisco 2) (1354=debug 1355=normal)
 12.1017 +ATTR{idProduct}=="1354", GOTO="adb"
 12.1018 +#   P685M LTE modem
 12.1019 +ATTR{idProduct}=="1275", GOTO="user"
 12.1020 +#   MF286[A] internal LTE modem
 12.1021 +ATTR{idProduct}=="1432", GOTO="user"
 12.1022 +#   MF286D internal LTE modem
 12.1023 +ATTR{idProduct}=="1485", GOTO="user"
 12.1024 +#   MF286R internal LTE modem
 12.1025 +ATTR{idProduct}=="1489", GOTO="user"
 12.1026 +#   Nubia / RedMagic Series (NX***)
 12.1027 +#   See https://github.com/TadiT7/nubia_nx619j_dump/blob/NX619J-user-9-PKQ1.180929.001-eng.nubia.20181220.181559-release-keys/vendor/etc/init/hw/init.nubia.usb.rc
 12.1028 +#   (... ffc0=diag,mass_storage,adb ffc1=adb ffcb=rndis,adb ffcd=mass_storage,adb ffcf=mtp,adb ffd1=ptp,adb)
 12.1029 +ATTR{idProduct}=="ffc0", GOTO="adbmass"
 12.1030 +ATTR{idProduct}=="ffc1", GOTO="adb"
 12.1031 +ATTR{idProduct}=="ffcb", GOTO="adbrndis"
 12.1032 +ATTR{idProduct}=="ffcd", GOTO="adbmass"
 12.1033 +ATTR{idProduct}=="ffcf", GOTO="adbmtp"
 12.1034 +ATTR{idProduct}=="ffd1", GOTO="adbptp"
 12.1035 +#   modem,service,nema,adb
 12.1036 +ATTR{idProduct}=="ffc9", GOTO="adb"
 12.1037 +#   modem,service,nema,mass_storage,adb
 12.1038 +ATTR{idProduct}=="ffc7", GOTO="adb"
 12.1039 +#   diag,modem,mass_storage,adb
 12.1040 +ATTR{idProduct}=="ffb0", GOTO="adb"
 12.1041 +#   diag,modem,service,mass_storage,adb
 12.1042 +ATTR{idProduct}=="ffb2", GOTO="adb"
 12.1043 +GOTO="android_usb_rules_end"
 12.1044 +LABEL="not_ZTE"
 12.1045 +
 12.1046 +# ZUK (Need product specific rules)
 12.1047 +#ATTR{idVendor}=="2b4c", GOTO="user"
 12.1048 +
 12.1049 +# Verifone
 12.1050 +ATTR{idVendor}=="11ca", GOTO="user"
 12.1051 +
 12.1052 +# No android devices found
 12.1053 +GOTO="android_usb_rules_end"
 12.1054 +
 12.1055 +# ADB Debug User (default)
 12.1056 +LABEL="adb", ENV{adb_adb}="yes", GOTO="android_usb_rule_match"
 12.1057 +
 12.1058 +# ADB Debug and Audio Source
 12.1059 +LABEL="adbaud", ENV{adb_adb}="yes", GOTO="android_usb_rule_match"
 12.1060 +
 12.1061 +# ADB Debug and AT-commands CDC Serial
 12.1062 +LABEL="adbcdc", ENV{adb_adbcdc}="yes", GOTO="android_usb_rule_match"
 12.1063 +
 12.1064 +# ADB Debug and USB Video Class
 12.1065 +LABEL="adbuvc", ENV{adb_adbuvc}="yes"
 12.1066 +LABEL="uvc", ENV{adb_uvc}="yes", GOTO="android_usb_rule_match"
 12.1067 +
 12.1068 +# ADB Debug and Fastboot mode
 12.1069 +LABEL="adbfast", ENV{adb_adbfast}="yes", GOTO="android_usb_rule_match"
 12.1070 +
 12.1071 +# ADB Debug and mass storage (note: generally android_ver<4.3; Moto Z3 Play when powered off)
 12.1072 +LABEL="adbmass", ENV{adb_adbmass}="yes"
 12.1073 +LABEL="mass", ENV{adb_mass}="yes", GOTO="android_usb_rule_match"
 12.1074 +
 12.1075 +# ADB Debug and MIDI mode (also check to see /dev/midi%n)
 12.1076 +LABEL="adbmidi", ENV{adb_adbmidi}="yes"
 12.1077 +LABEL="midi", ENV{adb_user}="yes", GOTO="android_usb_rule_match"
 12.1078 +
 12.1079 +# ADB Debug and MTP mode
 12.1080 +LABEL="adbmtp", ENV{adb_adbmtp}="yes"
 12.1081 +LABEL="mtp", ENV{adb_mtp}="yes", GOTO="android_usb_rule_match"
 12.1082 +
 12.1083 +# ADB Debug and PTP mode
 12.1084 +LABEL="adbptp", ENV{adb_adbptp}="yes"
 12.1085 +LABEL="ptp", ENV{adb_ptp}="yes", GOTO="android_usb_rule_match"
 12.1086 +
 12.1087 +# ADB Debug and Tether mode
 12.1088 +LABEL="adbrndis", ENV{adb_adb}="yes"
 12.1089 +LABEL="rndis", ENV{adb_user}="yes", GOTO="android_usb_rule_match"
 12.1090 +
 12.1091 +# Odin (Samsung-specific flashing protocol, add user SYMLINK)
 12.1092 +LABEL="odin"
 12.1093 +
 12.1094 +# Add "android" SYMLINK
 12.1095 +LABEL="user", ENV{adb_user}="yes"
 12.1096 +
 12.1097 +# Symlink common code to reduce steps above
 12.1098 +LABEL="android_usb_rule_match"
 12.1099 +ENV{adb_adbcdc}=="yes", ENV{adb_adb}="yes", SYMLINK+="android_cdc", SYMLINK+="android_cdc%n"
 12.1100 +ENV{adb_adbfast}=="yes", ENV{adb_adb}="yes", ENV{adb_fast}="yes"
 12.1101 +ENV{adb_adbmass}=="yes", ENV{adb_mass}="yes"
 12.1102 +ENV{adb_adbmtp}=="yes", ENV{adb_adb}="yes", ENV{adb_mtp}="yes"
 12.1103 +ENV{adb_adbptp}=="yes", ENV{adb_adb}="yes", ENV{adb_ptp}="yes"
 12.1104 +ENV{adb_adbmidi}=="yes", ENV{adb_adb}="yes", SYMLINK+="android_midi", SYMLINK+="android_midi0%n"
 12.1105 +ENV{adb_adbuvc}=="yes", ENV{adb_adb}="yes", ENV{adb_uvc}="yes"
 12.1106 +ENV{adb_adb}=="yes", ENV{adb_user}="yes", SYMLINK+="android_adb"
 12.1107 +ENV{adb_fast}=="yes", SYMLINK+="android_fastboot"
 12.1108 +ENV{adb_mass}=="yes", ENV{adb_mtp}="yes"
 12.1109 +ENV{adb_ptp}=="yes", ENV{adb_user}="yes", ATTR{bDeviceClass}=="00|02|06|ef|ff", ENV{adb_mtp}="yes"
 12.1110 +ENV{adb_mtp}=="yes", ENV{adb_user}="yes", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
 12.1111 +
 12.1112 +# Enable device as a user device if found (add an "android" SYMLINK)
 12.1113 +ENV{adb_user}=="yes", MODE="0660", GROUP="adbusers", TAG+="uaccess", SYMLINK+="android", SYMLINK+="android%n"
 12.1114 +
 12.1115 +# Devices listed here {begin...end} are connected by USB
 12.1116 +LABEL="android_usb_rules_end"
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/udev/stuff/udev-events-android.patch	Tue Jul 29 18:05:13 2025 +0000
    13.3 @@ -0,0 +1,16 @@
    13.4 +diff -u udev/source/udev-182/src/udev-event.c.orig udev/source/udev-182/src/udev-event.
    13.5 +c
    13.6 +--- a/src/udev-event.c
    13.7 ++++ b/src/udev-event.c
    13.8 +@@ -883,6 +883,11 @@
    13.9 +         if (udev_device_get_subsystem(dev) == NULL)
   13.10 +                 return -1;
   13.11 + 
   13.12 ++       if (strcmp(udev_device_get_action(dev), "bind") == 0 || strcmp(udev_device_get_action(dev), "unbind") == 0) {
   13.13 ++               // Ignore bind/unbind events
   13.14 ++               return 0;
   13.15 ++       }
   13.16 ++
   13.17 +         if (strcmp(udev_device_get_action(dev), "remove") == 0) {
   13.18 +                 udev_device_read_db(dev, NULL);
   13.19 +                 udev_device_delete_db(dev);
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/udev/stuff/udev-glibc2.18.patch	Tue Jul 29 18:05:13 2025 +0000
    14.3 @@ -0,0 +1,54 @@
    14.4 +# --- T2-COPYRIGHT-NOTE-BEGIN ---
    14.5 +# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
    14.6 +# 
    14.7 +# T2 SDE: package/.../udev/glibc-2.18.patch
    14.8 +# Copyright (C) 2011 - 2020 The T2 SDE Project
    14.9 +# 
   14.10 +# More information can be found in the files COPYING and README.
   14.11 +# 
   14.12 +# This patch file is dual-licensed. It is available under the license the
   14.13 +# patched project is licensed under, as long as it is an OpenSource license
   14.14 +# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
   14.15 +# of the GNU General Public License as published by the Free Software
   14.16 +# Foundation; either version 2 of the License, or (at your option) any later
   14.17 +# version.
   14.18 +# --- T2-COPYRIGHT-NOTE-END ---
   14.19 +
   14.20 +Fix build w/ dietlibc, probably related to implicit glibc include hierarchy:
   14.21 +
   14.22 +extras/ata_id/ata_id.o: In function `disk_identify_fixup_uint16':
   14.23 +ata_id.c:(.text+0xd1): undefined reference to `le16toh'
   14.24 +
   14.25 +  - Rene Rebe <rene@exactcode.de>
   14.26 +
   14.27 +--- udev-147/src/ata_id/ata_id.c.vanilla	2011-01-05 19:15:42.000000000 +0100
   14.28 ++++ udev-147/src/ata_id/ata_id.c	2011-01-05 19:15:53.000000000 +0100
   14.29 +@@ -39,6 +39,7 @@
   14.30 + #include <linux/hdreg.h>
   14.31 + #include <linux/fs.h>
   14.32 + #include <arpa/inet.h>
   14.33 ++#include <endian.h>
   14.34 + 
   14.35 + #include "libudev.h"
   14.36 + #include "libudev-private.h"
   14.37 +--- udev-167/src/libudev-device-private.c.vanilla	2018-08-08 17:46:08.247860535 +0000
   14.38 ++++ udev-167/src/libudev-device-private.c	2018-08-08 17:46:34.963860133 +0000
   14.39 +@@ -18,6 +18,7 @@
   14.40 + #include <fcntl.h>
   14.41 + #include <string.h>
   14.42 + #include <sys/stat.h>
   14.43 ++#include <sys/sysmacros.h>
   14.44 + 
   14.45 + #include "libudev.h"
   14.46 + #include "libudev-private.h"
   14.47 +--- udev-167/src/libudev-private.h.vanilla	2018-08-08 17:48:01.711858828 +0000
   14.48 ++++ udev-167/src/libudev-private.h	2018-08-08 17:48:06.659858754 +0000
   14.49 +@@ -16,6 +16,8 @@
   14.50 + #include <signal.h>
   14.51 + #include <stdint.h>
   14.52 + #include <stdbool.h>
   14.53 ++#include <sys/sysmacros.h>
   14.54 ++
   14.55 + #include "libudev.h"
   14.56 + 
   14.57 + #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
    15.1 --- a/udev/stuff/udev-glibc2.28.patch	Tue Jul 15 20:40:17 2025 +0000
    15.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.3 @@ -1,54 +0,0 @@
    15.4 -# --- T2-COPYRIGHT-NOTE-BEGIN ---
    15.5 -# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
    15.6 -# 
    15.7 -# T2 SDE: package/.../udev/glibc-2.18.patch
    15.8 -# Copyright (C) 2011 - 2020 The T2 SDE Project
    15.9 -# 
   15.10 -# More information can be found in the files COPYING and README.
   15.11 -# 
   15.12 -# This patch file is dual-licensed. It is available under the license the
   15.13 -# patched project is licensed under, as long as it is an OpenSource license
   15.14 -# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
   15.15 -# of the GNU General Public License as published by the Free Software
   15.16 -# Foundation; either version 2 of the License, or (at your option) any later
   15.17 -# version.
   15.18 -# --- T2-COPYRIGHT-NOTE-END ---
   15.19 -
   15.20 -Fix build w/ dietlibc, probably related to implicit glibc include hierarchy:
   15.21 -
   15.22 -extras/ata_id/ata_id.o: In function `disk_identify_fixup_uint16':
   15.23 -ata_id.c:(.text+0xd1): undefined reference to `le16toh'
   15.24 -
   15.25 -  - Rene Rebe <rene@exactcode.de>
   15.26 -
   15.27 ---- udev-147/src/ata_id/ata_id.c.vanilla	2011-01-05 19:15:42.000000000 +0100
   15.28 -+++ udev-147/src/ata_id/ata_id.c	2011-01-05 19:15:53.000000000 +0100
   15.29 -@@ -39,6 +39,7 @@
   15.30 - #include <linux/hdreg.h>
   15.31 - #include <linux/fs.h>
   15.32 - #include <arpa/inet.h>
   15.33 -+#include <endian.h>
   15.34 - 
   15.35 - #include "libudev.h"
   15.36 - #include "libudev-private.h"
   15.37 ---- udev-167/src/libudev-device-private.c.vanilla	2018-08-08 17:46:08.247860535 +0000
   15.38 -+++ udev-167/src/libudev-device-private.c	2018-08-08 17:46:34.963860133 +0000
   15.39 -@@ -18,6 +18,7 @@
   15.40 - #include <fcntl.h>
   15.41 - #include <string.h>
   15.42 - #include <sys/stat.h>
   15.43 -+#include <sys/sysmacros.h>
   15.44 - 
   15.45 - #include "libudev.h"
   15.46 - #include "libudev-private.h"
   15.47 ---- udev-167/src/libudev-private.h.vanilla	2018-08-08 17:48:01.711858828 +0000
   15.48 -+++ udev-167/src/libudev-private.h	2018-08-08 17:48:06.659858754 +0000
   15.49 -@@ -16,6 +16,8 @@
   15.50 - #include <signal.h>
   15.51 - #include <stdint.h>
   15.52 - #include <stdbool.h>
   15.53 -+#include <sys/sysmacros.h>
   15.54 -+
   15.55 - #include "libudev.h"
   15.56 - 
   15.57 - #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))