diff --git a/.etckeeper b/.etckeeper index f84585ff..30e02c48 100755 --- a/.etckeeper +++ b/.etckeeper @@ -495,7 +495,6 @@ maybe chmod 0644 'apparmor.d/local/usr.lib.libreoffice.program.oosplash' maybe chmod 0644 'apparmor.d/local/usr.lib.libreoffice.program.senddoc' maybe chmod 0644 'apparmor.d/local/usr.lib.libreoffice.program.soffice.bin' maybe chmod 0644 'apparmor.d/local/usr.lib.libreoffice.program.xpdfimport' -maybe chmod 0644 'apparmor.d/local/usr.lib.snapd.snap-confine.real' maybe chmod 0644 'apparmor.d/local/usr.sbin.cups-browsed' maybe chmod 0644 'apparmor.d/local/usr.sbin.cupsd' maybe chmod 0644 'apparmor.d/local/usr.sbin.ntpd' @@ -529,7 +528,6 @@ maybe chmod 0644 'apparmor.d/usr.lib.libreoffice.program.oosplash' maybe chmod 0644 'apparmor.d/usr.lib.libreoffice.program.senddoc' maybe chmod 0644 'apparmor.d/usr.lib.libreoffice.program.soffice.bin' maybe chmod 0644 'apparmor.d/usr.lib.libreoffice.program.xpdfimport' -maybe chmod 0644 'apparmor.d/usr.lib.snapd.snap-confine.real' maybe chmod 0644 'apparmor.d/usr.sbin.cups-browsed' maybe chmod 0644 'apparmor.d/usr.sbin.cupsd' maybe chmod 0644 'apparmor.d/usr.sbin.ntpd' @@ -546,7 +544,6 @@ maybe chmod 0444 'apt/apt.conf.d/01autoremove-kernels' maybe chmod 0644 'apt/apt.conf.d/05etckeeper' maybe chmod 0644 'apt/apt.conf.d/20listchanges' maybe chmod 0644 'apt/apt.conf.d/20packagekit' -maybe chmod 0644 'apt/apt.conf.d/20snapd.conf' maybe chmod 0644 'apt/apt.conf.d/50appstream' maybe chmod 0644 'apt/apt.conf.d/50unattended-upgrades' maybe chmod 0644 'apt/apt.conf.d/60icons' @@ -1306,7 +1303,6 @@ maybe chmod 0775 'prelink.conf.d' maybe chmod 0644 'prelink.conf.d/cmk-update-agent.conf' maybe chmod 0644 'profile' maybe chmod 0755 'profile.d' -maybe chmod 0644 'profile.d/apps-bin-path.sh' maybe chmod 0644 'profile.d/bash_completion.sh' maybe chmod 0644 'profile.d/debian-mate-default-settings_gtk-accessibility.sh' maybe chmod 0644 'profile.d/flatpak.sh' @@ -1569,7 +1565,6 @@ maybe chmod 0755 'systemd/system/bluetooth.target.wants' maybe chmod 0644 'systemd/system/check-mk-agent-async.service' maybe chmod 0644 'systemd/system/check-mk-agent.socket' maybe chmod 0644 'systemd/system/check-mk-agent@.service' -maybe chmod 0755 'systemd/system/cloud-final.service.wants' maybe chmod 0755 'systemd/system/default.target.wants' maybe chmod 0755 'systemd/system/getty.target.wants' maybe chmod 0755 'systemd/system/graphical.target.wants' @@ -1578,10 +1573,6 @@ maybe chmod 0755 'systemd/system/network-online.target.wants' maybe chmod 0644 'systemd/system/omd.service' maybe chmod 0755 'systemd/system/printer.target.wants' maybe chmod 0755 'systemd/system/remote-fs.target.wants' -maybe chmod 0644 'systemd/system/snap-bare-5.mount' -maybe chmod 0644 'systemd/system/snap-core-12834.mount' -maybe chmod 0644 'systemd/system/snap-core20-1434.mount' -maybe chmod 0644 'systemd/system/snap-gtk\x2dcommon\x2dthemes-1519.mount' maybe chmod 0755 'systemd/system/sockets.target.wants' maybe chmod 0755 'systemd/system/sysinit.target.wants' maybe chmod 0755 'systemd/system/timers.target.wants' @@ -1606,7 +1597,6 @@ maybe chmod 0644 'ucf.conf' maybe chmod 0755 'udev' maybe chmod 0755 'udev/hwdb.d' maybe chmod 0755 'udev/rules.d' -maybe chmod 0644 'udev/rules.d/70-snap.core.rules' maybe chmod 0644 'udev/rules.d/vmware_hid.rules' maybe chmod 0644 'udev/udev.conf' maybe chmod 0755 'udisks2' @@ -1786,7 +1776,6 @@ maybe chmod 0644 'xdg/autostart/nm-applet.desktop' maybe chmod 0644 'xdg/autostart/orca-autostart.desktop' maybe chmod 0644 'xdg/autostart/polkit-mate-authentication-agent-1.desktop' maybe chmod 0644 'xdg/autostart/pulseaudio.desktop' -maybe chmod 0644 'xdg/autostart/snap-userd-autostart.desktop' maybe chmod 0644 'xdg/autostart/xdg-user-dirs.desktop' maybe chmod 0755 'xdg/menus' maybe chmod 0644 'xdg/menus/mate-applications.menu' diff --git a/apparmor.d/local/usr.lib.snapd.snap-confine.real b/apparmor.d/local/usr.lib.snapd.snap-confine.real deleted file mode 100644 index e69de29b..00000000 diff --git a/apparmor.d/usr.lib.snapd.snap-confine.real b/apparmor.d/usr.lib.snapd.snap-confine.real deleted file mode 100644 index 3cb079c5..00000000 --- a/apparmor.d/usr.lib.snapd.snap-confine.real +++ /dev/null @@ -1,589 +0,0 @@ -# Author: Jamie Strandboge -#include - -/usr/lib/snapd/snap-confine (attach_disconnected) { - # Include any additional files that snapd chose to generate. - # - for $HOME on NFS - # - for $HOME on encrypted media - # - # Those are discussed on https://forum.snapcraft.io/t/snapd-vs-upstream-kernel-vs-apparmor - # and https://forum.snapcraft.io/t/snaps-and-nfs-home/ - #include "/var/lib/snapd/apparmor/snap-confine" - - # We run privileged, so be fanatical about what we include and don't use - # any abstractions - /etc/ld.so.cache r, - /etc/ld.so.preload r, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}ld-*.so mrix, - # libc, you are funny - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}libc{,-[0-9]*}.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}libpthread{,-[0-9]*}.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libreadline{,-[0-9]*}.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}librt{,-[0-9]*}.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libgcc_s.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libncursesw{,-[0-9]*}.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}libresolv{,-[0-9]*}.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libselinux.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libpcre{,2}{,-[0-9]*}.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libmount.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libblkid.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libuuid.so* mr, - # normal libs in order - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libapparmor.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libcgmanager.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}libdl{,-[0-9]*}.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libnih.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libnih-dbus.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libdbus-1.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libudev.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libseccomp.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libcap.so* mr, - - /usr/lib/snapd/snap-confine mr, - - # This rule is needed when executing from a "base: core" devmode snap on - # UC18 and newer where the /usr/lib/snapd/snap-confine inside the - # "base: core" mount namespace always comes from the snapd snap, and thus - # we will execute snap-confine via this path, and thus need to be able to - # read this path when executing. It's also necessary on classic where both - # the snapd and the core snap are installed at the same time. - # TODO: remove this rule when we stop supporting executing other snaps from - # inside devmode snaps, ideally even in the short term we would only include - # this rule on core only, and specifically uc18 and newer where we need it - #@VERBATIM_LIBEXECDIR_SNAP_CONFINE@ mr, - - /dev/null rw, - /dev/full rw, - /dev/zero rw, - /dev/random r, - /dev/urandom r, - /dev/pts/[0-9]* rw, - /dev/tty rw, - - # cgroup: devices - capability sys_admin, - capability dac_read_search, - capability dac_override, - /sys/fs/cgroup/ r, - /sys/fs/cgroup/devices/ r, - /sys/fs/cgroup/devices/snap.*/ rw, - /sys/fs/cgroup/devices/snap.*/cgroup.procs w, - /sys/fs/cgroup/devices/snap.*/devices.{allow,deny} w, - - # cgroup: freezer - # Allow creating per-snap cgroup freezers and adding snap command (task) - # invocations to the freezer. This allows for reliably enumerating all - # running processes for the snap. In addition, allow enumerating processes - # in the cgroup to determine if it is occupied. - /sys/fs/cgroup/freezer/ r, - /sys/fs/cgroup/freezer/snap.*/ w, - /sys/fs/cgroup/freezer/snap.*/cgroup.procs rw, - - # querying udev - /etc/udev/udev.conf r, - /sys/**/uevent r, - /run/udev/** rw, - /{,usr/}bin/tr ixr, - /usr/lib/locale/** r, - /usr/lib/@{multiarch}/gconv/gconv-modules r, - /usr/lib/@{multiarch}/gconv/gconv-modules.cache r, - - # priv dropping - capability setuid, - capability setgid, - - # changing profile - @{PROC}/[0-9]*/attr/{,apparmor/}exec w, - # Reading current profile - @{PROC}/[0-9]*/attr/{,apparmor/}current r, - # Reading available filesystems - @{PROC}/filesystems r, - - # To find where apparmor is mounted - @{PROC}/[0-9]*/mounts r, - # To find if apparmor is enabled - /sys/module/apparmor/parameters/enabled r, - - # Don't allow changing profile to unconfined or profiles that start with - # '/'. Use 'unsafe' to support snap-exec on armhf and its reliance on - # the environment for determining the capabilities of the architecture. - # 'unsafe' is ok here because the kernel will have already cleared the - # environment as part of launching snap-confine with CAP_SYS_ADMIN. This - # does leave directories as configured by ld.so.preload as well as - # LD_PRELOAD to be set to a library which is in a directory configured by - # ld.so.conf, but access to those locations is mediated by this profile - # (which requires rules for specific locations). - change_profile unsafe /** -> [^u/]**, - change_profile unsafe /** -> u[^n]**, - change_profile unsafe /** -> un[^c]**, - change_profile unsafe /** -> unc[^o]**, - change_profile unsafe /** -> unco[^n]**, - change_profile unsafe /** -> uncon[^f]**, - change_profile unsafe /** -> unconf[^i]**, - change_profile unsafe /** -> unconfi[^n]**, - change_profile unsafe /** -> unconfin[^e]**, - change_profile unsafe /** -> unconfine[^d]**, - change_profile unsafe /** -> unconfined?**, - - # allow changing to a few not caught above - change_profile unsafe /** -> {u,un,unc,unco,uncon,unconf,unconfi,unconfin,unconfine}, - - # LP: #1446794 - when this bug is fixed, change the above to: - # deny change_profile unsafe /** -> {unconfined,/**}, - # change_profile unsafe /** -> **, - - # reading seccomp filters - /{tmp/snap.rootfs_*/,}var/lib/snapd/seccomp/bpf/*.bin r, - - # LP: #1668659 and parallel instaces of classic snaps - mount options=(rw rbind) /snap/ -> /snap/, - mount options=(rw rshared) -> /snap/, - mount options=(rw rbind) /var/lib/snapd/snap/ -> /var/lib/snapd/snap/, - mount options=(rw rshared) -> /var/lib/snapd/snap/, - - # boostrapping the mount namespace - mount options=(rw rshared) -> /, - mount options=(rw bind) /tmp/snap.rootfs_*/ -> /tmp/snap.rootfs_*/, - mount options=(rw unbindable) -> /tmp/snap.rootfs_*/, - # the next line is for classic system - mount options=(rw rbind) /snap/*/*/ -> /tmp/snap.rootfs_*/, - # the next line is for core system - mount options=(rw rbind) / -> /tmp/snap.rootfs_*/, - # all of the constructed rootfs is a rslave - mount options=(rw rslave) -> /tmp/snap.rootfs_*/, - # bidirectional mounts (for both classic and core) - # NOTE: this doesn't capture the MERGED_USR configuration option so that - # when a distro with merged /usr and / that uses apparmor shows up it - # should be handled here. - /{,run/}media/ w, - mount options=(rw rbind) /{,run/}media/ -> /tmp/snap.rootfs_*/{,run/}media/, - /run/netns/ w, - mount options=(rw rbind) /run/netns/ -> /tmp/snap.rootfs_*/run/netns/, - # unidirectional mounts (only for classic system) - mount options=(rw rbind) /dev/ -> /tmp/snap.rootfs_*/dev/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/dev/, - - mount options=(rw rbind) /etc/ -> /tmp/snap.rootfs_*/etc/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/etc/, - - mount options=(rw rbind) /home/ -> /tmp/snap.rootfs_*/home/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/home/, - - mount options=(rw rbind) /root/ -> /tmp/snap.rootfs_*/root/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/root/, - - mount options=(rw rbind) /proc/ -> /tmp/snap.rootfs_*/proc/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/proc/, - - mount options=(rw rbind) /sys/ -> /tmp/snap.rootfs_*/sys/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/sys/, - - mount options=(rw rbind) /tmp/ -> /tmp/snap.rootfs_*/tmp/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/tmp/, - - mount options=(rw rbind) /var/lib/dhcp/ -> /tmp/snap.rootfs_*/var/lib/dhcp/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/var/lib/dhcp/, - - mount options=(rw rbind) /var/lib/snapd/ -> /tmp/snap.rootfs_*/var/lib/snapd/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/var/lib/snapd/, - - mount options=(rw rbind) /var/snap/ -> /tmp/snap.rootfs_*/var/snap/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/var/snap/, - - mount options=(rw rbind) /var/tmp/ -> /tmp/snap.rootfs_*/var/tmp/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/var/tmp/, - - mount options=(rw rbind) /run/ -> /tmp/snap.rootfs_*/run/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/run/, - - mount options=(rw rbind) /var/lib/extrausers/ -> /tmp/snap.rootfs_*/var/lib/extrausers/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/var/lib/extrausers/, - - mount options=(rw rbind) {,/usr}/lib{,32,64,x32}/modules/ -> /tmp/snap.rootfs_*{,/usr}/lib/modules/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*{,/usr}/lib/modules/, - - mount options=(rw rbind) {,/usr}/lib{,32,64,x32}/firmware/ -> /tmp/snap.rootfs_*{,/usr}/lib/firmware/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*{,/usr}/lib/firmware/, - - mount options=(rw rbind) /var/log/ -> /tmp/snap.rootfs_*/var/log/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/var/log/, - - mount options=(rw rbind) /usr/src/ -> /tmp/snap.rootfs_*/usr/src/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/usr/src/, - - mount options=(rw rbind) /mnt/ -> /tmp/snap.rootfs_*/mnt/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/mnt/, - - # allow making host snap-exec available inside base snaps - mount options=(rw bind) /usr/lib/snapd/ -> /tmp/snap.rootfs_*/usr/lib/snapd/, - mount options=(rw slave) -> /tmp/snap.rootfs_*/usr/lib/snapd/, - - # allow making re-execed host snap-exec available inside base snaps - mount options=(ro bind) /snap/core/*/usr/lib/snapd/ -> /tmp/snap.rootfs_*/usr/lib/snapd/, - # allow making snapd snap tools available inside base snaps - mount options=(ro bind) /snap/snapd/*/usr/lib/snapd/ -> /tmp/snap.rootfs_*/usr/lib/snapd/, - - mount options=(rw bind) /usr/bin/snapctl -> /tmp/snap.rootfs_*/usr/bin/snapctl, - mount options=(rw slave) -> /tmp/snap.rootfs_*/usr/bin/snapctl, - - # /etc/alternatives (classic and normal mode) - mount options=(rw bind) /snap/*/*/etc/alternatives/ -> /tmp/snap.rootfs_*/etc/alternatives/, - mount options=(rw bind) /snap/*/*/etc/ssl/ -> /tmp/snap.rootfs_*/etc/ssl/, - mount options=(rw bind) /snap/*/*/etc/nsswitch.conf -> /tmp/snap.rootfs_*/etc/nsswitch.conf, - mount options=(rw bind) /snap/*/*/etc/apparmor/ -> /tmp/snap.rootfs_*/etc/apparmor/, - mount options=(rw bind) /snap/*/*/etc/apparmor.d/ -> /tmp/snap.rootfs_*/etc/apparmor.d/, - - # /etc/alternatives (core/legacy mode) - mount options=(rw bind) /etc/alternatives/ -> /tmp/snap.rootfs_*/etc/alternatives/, - - # making all those directories slave shared. - mount options=(rw slave) -> /tmp/snap.rootfs_*/etc/alternatives/, - mount options=(rw slave) -> /tmp/snap.rootfs_*/etc/ssl/, - mount options=(rw slave) -> /tmp/snap.rootfs_*/etc/nsswitch.conf, - mount options=(rw slave) -> /tmp/snap.rootfs_*/etc/apparmor/, - mount options=(rw slave) -> /tmp/snap.rootfs_*/etc/apparmor.d/, - - # the /snap directory - mount options=(rw rbind) /snap/ -> /tmp/snap.rootfs_*/snap/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/snap/, - # pivot_root preparation and execution - mount options=(rw bind) /tmp/snap.rootfs_*/var/lib/snapd/hostfs/ -> /tmp/snap.rootfs_*/var/lib/snapd/hostfs/, - mount options=(rw private) -> /tmp/snap.rootfs_*/var/lib/snapd/hostfs/, - - # pivot_root mediation in AppArmor is not complete. See LP: #1791711. - # However, we can mediate the new_root and put_old to be what we expect, - # and then deny directory creation within old_root to prevent trivial - # pivoting into a whitelisted path. - pivot_root oldroot=/tmp/snap.rootfs_*/var/lib/snapd/hostfs/ /tmp/snap.rootfs_*/, - # Explicitly deny creating the old_root directory in case it is - # inadvertently added somewhere else. While this doesn't resolve - # LP: #1791711, it provides some hardening. - audit deny /tmp/snap.rootfs_*/{var/,var/lib/,var/lib/snapd/,var/lib/snapd/hostfs/} w, - - # cleanup - umount /var/lib/snapd/hostfs/tmp/snap.rootfs_*/, - umount /var/lib/snapd/hostfs/sys/, - umount /var/lib/snapd/hostfs/dev/, - umount /var/lib/snapd/hostfs/proc/, - mount options=(rw rslave) -> /var/lib/snapd/hostfs/, - - # Hide /writable from view of snaps. - mount options=(rprivate) -> /{,var/lib/snapd/hostfs/}writable/, - umount /{,var/lib/snapd/hostfs/}writable/, - - # set up user mount namespace - mount options=(rslave) -> /, - - # set up mount namespace for parallel instances of classic snaps - mount options=(rw rbind) /snap/{,*/} -> /snap/{,*/}, - mount options=(rslave) -> /snap/, - mount options=(rslave) -> /var/snap/, - mount options=(rw rbind) /var/snap/{,*/} -> /var/snap/{,*/}, - mount options=(rw rshared) -> /var/snap/, - - # Allow reading the os-release file (possibly a symlink to /usr/lib). - /{etc/,usr/lib/}os-release r, - - # Allow creating /var/lib/snapd/hostfs, if missing - /var/lib/snapd/hostfs/ rw, - - # set up snap-specific private /tmp dir - capability chown, - /tmp/ rw, - /tmp/snap.*/ rw, - /tmp/snap.*/tmp/ rw, - mount options=(rw private) -> /tmp/, - mount options=(rw bind) /tmp/snap.*/tmp/ -> /tmp/, - mount fstype=devpts options=(rw) devpts -> /dev/pts/, - mount options=(rw bind) /dev/pts/ptmx -> /dev/ptmx, # for bind mounting - mount options=(rw bind) /dev/pts/ptmx -> /dev/pts/ptmx, # for bind mounting under LXD - # Workaround for LP: #1584456 on older kernels that mistakenly think - # /dev/pts/ptmx needs a trailing '/' - mount options=(rw bind) /dev/pts/ptmx/ -> /dev/ptmx/, - mount options=(rw bind) /dev/pts/ptmx/ -> /dev/pts/ptmx/, - - # for running snaps on classic - /snap/ r, - /snap/** r, - /snap/ r, - /snap/** r, - - # NOTE: at this stage the /snap directory is stable as we have called - # pivot_root already. - - # nvidia handling, glob needs /usr/** and the launcher must be - # able to bind mount the nvidia dir - /sys/module/nvidia/version r, - /sys/**/drivers/nvidia{,_*}/* r, - /sys/**/nvidia*/uevent r, - /sys/module/nvidia{,_*}/* r, - /dev/nvidia[0-9]* r, - /dev/nvidiactl r, - /dev/nvidia-uvm r, - /usr/** r, - mount options=(rw bind) /usr/lib{,32}/nvidia-*/ -> /{tmp/snap.rootfs_*/,}var/lib/snapd/lib/gl{,32}/, - mount options=(rw bind) /usr/lib{,32}/nvidia-*/ -> /{tmp/snap.rootfs_*/,}var/lib/snapd/lib/gl{,32}/, - /tmp/snap.rootfs_*/var/lib/snapd/lib/gl{,32}/{,*} w, - mount fstype=tmpfs options=(rw nodev noexec) none -> /tmp/snap.rootfs_*/var/lib/snapd/lib/gl{,32}/, - mount options=(remount ro bind) -> /tmp/snap.rootfs_*/var/lib/snapd/lib/gl{,32}/, - - # Vulkan support - /tmp/snap.rootfs_*/var/lib/snapd/lib/vulkan/{,*} w, - mount fstype=tmpfs options=(rw nodev noexec) none -> /tmp/snap.rootfs_*/var/lib/snapd/lib/vulkan/, - mount options=(remount ro bind) -> /tmp/snap.rootfs_*/var/lib/snapd/lib/vulkan/, - - # GLVND EGL vendor - /tmp/snap.rootfs_*/var/lib/snapd/lib/glvnd/{,*} w, - mount fstype=tmpfs options=(rw nodev noexec) none -> /tmp/snap.rootfs_*/var/lib/snapd/lib/glvnd/, - mount options=(remount ro bind) -> /tmp/snap.rootfs_*/var/lib/snapd/lib/glvnd/, - - # create gl dirs as needed - /tmp/snap.rootfs_*/ r, - /tmp/snap.rootfs_*/var/ r, - /tmp/snap.rootfs_*/var/lib/ r, - /tmp/snap.rootfs_*/var/lib/snapd/ r, - /tmp/snap.rootfs_*/var/lib/snapd/lib/ r, - /tmp/snap.rootfs_*/var/lib/snapd/lib/gl{,32}/ r, - /tmp/snap.rootfs_*/var/lib/snapd/lib/gl{,32}/** rw, - /tmp/snap.rootfs_*/var/lib/snapd/lib/vulkan/ r, - /tmp/snap.rootfs_*/var/lib/snapd/lib/vulkan/** rw, - /tmp/snap.rootfs_*/var/lib/snapd/lib/glvnd/ r, - /tmp/snap.rootfs_*/var/lib/snapd/lib/glvnd/** rw, - - # for chroot on steroids, we use pivot_root as a better chroot that makes - # apparmor rules behave the same on classic and outside of classic. - - # for creating the user data directories: ~/snap, ~/snap/ and - # ~/snap// - / r, - @{HOMEDIRS}/ r, - # These should both have 'owner' match but due to LP: #1466234, we can't - # yet - @{HOME}/ r, - @{HOME}/snap/{,*/,*/*/} rw, - - # Special case for *classic* snaps that are used by users with existing dirs - # in /var/lib/. Like jenkins, postgresql, mysql, puppet, ... - # (see https://forum.snapcraft.io/t/9717) - # TODO: this can be removed once we support home-dirs outside of /home - # better - /var/ r, - /var/lib/ r, - # These should both have 'owner' match but due to LP: #1466234, we can't - # yet - /var/lib/*/ r, - /var/lib/*/snap/{,*/,*/*/} rw, - - # for creating the user shared memory directories - /{dev,run}/{,shm/} r, - # This should both have 'owner' match but due to LP: #1466234, we can't yet - /{dev,run}/shm/{,*/,*/*/} rw, - - # for creating the user XDG_RUNTIME_DIR: /run/user, /run/user/UID and - # /run/user/UID/ - /run/user/{,[0-9]*/,[0-9]*/*/} rw, - - # Workaround https://launchpad.net/bugs/359338 until upstream handles - # stacked filesystems generally. - # encrypted ~/.Private and old-style encrypted $HOME - @{HOME}/.Private/ r, - @{HOME}/.Private/** mrwlk, - # new-style encrypted $HOME - @{HOMEDIRS}/.ecryptfs/*/.Private/ r, - @{HOMEDIRS}/.ecryptfs/*/.Private/** mrwlk, - - # Allow snap-confine to move to the void, creating it if necessary. - /var/lib/snapd/void/ rw, - - # Allow snap-confine to read snap contexts - /var/lib/snapd/context/snap.* r, - - # Allow snap-confine to unmount stale mount namespaces. - umount /run/snapd/ns/*.mnt, - /run/snapd/ns/snap.*.fstab w, - # Allow snap-confine to read and write mount namespace information files. - /run/snapd/ns/snap.*.info rw, - # Required to correctly unmount bound mount namespace. - # See LP: #1735459 for details. - umount /, - - # support for locking - /run/snapd/lock/ rw, - /run/snapd/lock/*.lock rwk, - - # support for the mount namespace sharing - capability sys_ptrace, - # allow snap-confine to read /proc/1/ns/mnt - ptrace read peer=unconfined, - # https://forum.snapcraft.io/t/custom-kernel-error-on-readlinkat-in-mount-namespace/6097/21 - ptrace trace peer=unconfined, - - mount options=(rw rbind) /run/snapd/ns/ -> /run/snapd/ns/, - mount options=(private) -> /run/snapd/ns/, - / rw, - /run/ rw, - /run/snapd/ rw, - /run/snapd/ns/ rw, - /run/snapd/ns/*.lock rwk, - /run/snapd/ns/*.mnt rw, - ptrace (read, readby, tracedby) peer=/usr/lib/snapd/snap-confine//mount-namespace-capture-helper, - @{PROC}/*/mountinfo r, - capability sys_chroot, - capability sys_admin, - signal (send, receive) set=(abrt) peer=/usr/lib/snapd/snap-confine, - signal (send) set=(int) peer=/usr/lib/snapd/snap-confine//mount-namespace-capture-helper, - signal (send, receive) set=(int, alrm, exists) peer=/usr/lib/snapd/snap-confine, - signal (receive) set=(exists) peer=/usr/lib/snapd/snap-confine//mount-namespace-capture-helper, - - # workaround for linux 4.13/upstream, see - # https://forum.snapcraft.io/t/snapd-2-27-6-2-in-debian-sid-blocked-on-apparmor-in-kernel-4-13-0-1/2813/3 - ptrace (trace, tracedby) peer=/usr/lib/snapd/snap-confine, - - # Allow reading snap cookies. - /var/lib/snapd/cookie/snap.* r, - - # For aa_change_hat() to go into ^mount-namespace-capture-helper - @{PROC}/[0-9]*/attr/{,apparmor/}current w, - - # As a special exception allow snap-confine to write to anything in /var/lib. - # This code should be changed to allow delegation so that snap-confine can - # inherit any file descriptor and pass it to the invoked application but - # this is not possible in apparmor yet. - # See https://bugs.launchpad.net/snapd/+bug/1815869 - /var/lib/** rw, - - ^mount-namespace-capture-helper (attach_disconnected) { - # We run privileged, so be fanatical about what we include and don't use - # any abstractions - /etc/ld.so.cache r, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}ld-*.so mrix, - # libc, you are funny - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}libc{,-[0-9]*}.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}libpthread{,-[0-9]*}.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libreadline{,-[0-9]*}.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}librt{,-[0-9]*}.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libgcc_s.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libncursesw{,-[0-9]*}.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}libresolv{,-[0-9]*}.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libselinux.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libpcre.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libmount.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libblkid.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libuuid.so* mr, - # normal libs in order - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libapparmor.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libcgmanager.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/{,atomics/}}libdl{,-[0-9]*}.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libnih.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libnih-dbus.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libdbus-1.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libudev.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libseccomp.so* mr, - /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libcap.so* mr, - - /usr/lib/snapd/snap-confine mr, - - /dev/null rw, - /dev/full rw, - /dev/zero rw, - /dev/random r, - /dev/urandom r, - - capability sys_ptrace, - capability sys_admin, - # This allows us to read and bind mount the namespace file - / r, - @{PROC}/ r, - @{PROC}/*/ r, - @{PROC}/*/ns/ r, - @{PROC}/*/ns/mnt r, - /run/ r, - /run/snapd/ r, - /run/snapd/ns/ r, - /run/snapd/ns/*.mnt rw, - # NOTE: the source name is / even though we map /proc/123/ns/mnt - mount options=(rw bind) / -> /run/snapd/ns/*.mnt, - # This is the SIGALRM that we send and receive if a timeout expires - signal (send, receive) set=(alrm) peer=/usr/lib/snapd/snap-confine//mount-namespace-capture-helper, - # Those two rules are exactly the same but we don't know if the parent process is still alive - # and hence has the appropriate label or is already dead and hence has no label. - signal (send) set=(exists) peer=/usr/lib/snapd/snap-confine, - signal (send) set=(exists) peer=unconfined, - # This is so that we can abort - signal (send, receive) set=(abrt) peer=/usr/lib/snapd/snap-confine//mount-namespace-capture-helper, - # This is the signal we get if snap-confine dies (we subscribe to it with prctl) - signal (receive) set=(int) peer=/usr/lib/snapd/snap-confine, - # This allows snap-confine to be killed from the outside. - signal (receive) peer=unconfined, - # This allows snap-confine to wait for us - ptrace (read, trace, tracedby) peer=/usr/lib/snapd/snap-confine, - } - - # Allow snap-confine to be killed - signal (receive) peer=unconfined, - - # Allow switching to snap-update-ns with a per-snap profile. - change_profile -> snap-update-ns.*, - - # Allow executing snap-update-ns when... - - # ...snap-confine is, conceptually, re-executing and uses snap-update-ns - # from the distribution package. This is also the location used when using - # the core/base snap on all-snap systems. The variants here represent - # various locations of libexecdir across distributions. - /usr/lib{,exec,64}/snapd/snap-update-ns r, - - # ...snap-confine is not, conceptually, re-executing and uses - # snap-update-ns from the distribution package but we are already inside - # the constructed mount namespace so we must traverse "hostfs". The - # variants here represent various locations of libexecdir across - # distributions. - /var/lib/snapd/hostfs/usr/lib{,exec,64}/snapd/snap-update-ns r, - - # ..snap-confine is, conceptually, re-executing and uses snap-update-ns - # from the core or snapd snaps. Note that the location of the actual snap - # varies from distribution to distribution. The variants here represent - # different locations of snap mount directory across distributions. - /{,var/lib/snapd/}snap/{core,snapd}/*/usr/lib/snapd/snap-update-ns r, - - # ...snap-confine is, conceptually, re-executing and uses snap-update-ns - # from the core snap or snapd snap, but we are already inside the - # constructed mount namespace. Here the apparmor kernel module - # re-constructs the path to snap-update-ns using the "hostfs" mount entry - # rather than the more "natural" /snap mount entry but we have no control - # over that. This is reported as (LP: #1716339). The variants here - # represent different locations of snap mount directory across - # distributions. - /var/lib/snapd/hostfs/{,var/lib/snapd/}snap/{core,snapd}/*/usr/lib/snapd/snap-update-ns r, - - # Allow executing snap-discard-ns, just like the set for snap-update-ns - # above but with the key difference that snap-discard-ns does not - # have a dedicated profile so we need to inherit snap-confine's profile. - - /usr/lib{,exec,64}/snapd/snap-discard-ns rix, - /var/lib/snapd/hostfs/usr/lib{,exec,64}/snapd/snap-discard-ns rix, - /{,var/lib/snapd/}snap/{core,snapd}/*/usr/lib/snapd/snap-discard-ns rix, - /var/lib/snapd/hostfs/{,var/lib/snapd/}snap/{core,snapd}/*/usr/lib/snapd/snap-discard-ns rix, - - # Allow mounting /var/lib/jenkins from the host into the snap. - mount options=(rw rbind) /var/lib/jenkins/ -> /tmp/snap.rootfs_*/var/lib/jenkins/, - mount options=(rw rslave) -> /tmp/snap.rootfs_*/var/lib/jenkins/, - - # Suppress noisy file_inherit denials (LP: #1850552) until LP: #1849753 is - # fixed. - deny /dev/shm/.org.chromium.Chromium.* rw, - - # While snap-confine itself doesn't require unix rules and therefore all - # unix rules are implicitly denied, adding an explicit deny for unix to - # silence noisy denials breaks nested lxd. Until the cause is determined, - # do not use an explicit deny for unix. (LP: #1855355) - #deny unix, - - # Explicitly deny these accesses which show up on Arch to silence the - # denials for this unneeded access. - deny /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libnss_files-[0-9]*.so* mr, - deny /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libnss_mymachines.[0-9]*.so* mr, - deny /{,usr/}lib{,32,64,x32}/{,@{multiarch}/}libnss_systemd.[0-9]*.so* mr, - deny /etc/nsswitch.conf r, - deny /etc/passwd r, -} diff --git a/apt/apt.conf.d/20snapd.conf b/apt/apt.conf.d/20snapd.conf deleted file mode 100644 index 11f97212..00000000 --- a/apt/apt.conf.d/20snapd.conf +++ /dev/null @@ -1 +0,0 @@ -AptCli::Hooks::Install { "[ ! -f /usr/bin/snap ] || /usr/bin/snap advise-snap --from-apt 2>/dev/null || true"; }; diff --git a/mailcap b/mailcap index c880b7da..5a1e01cb 100644 --- a/mailcap +++ b/mailcap @@ -281,7 +281,6 @@ x-scheme-handler/appstream; gnome-software %s; test=test -n "$DISPLAY" x-scheme-handler/apt; gnome-software %s; test=test -n "$DISPLAY" x-scheme-handler/snap; gnome-software %s; test=test -n "$DISPLAY" text/plain; pluma %s; test=test -n "$DISPLAY" -x-scheme-handler/snap; /usr/bin/snap handle-link %s; test=test -n "$DISPLAY" text/x-apt-sources-list; software-properties-gtk %s; test=test -n "$DISPLAY" text/x-apt-sources-list; software-properties-gtk %s; test=test -n "$DISPLAY" x-scheme-handler/steam; steam steam://open/friends %s; test=test -n "$DISPLAY" diff --git a/profile.d/apps-bin-path.sh b/profile.d/apps-bin-path.sh deleted file mode 100644 index 298a149f..00000000 --- a/profile.d/apps-bin-path.sh +++ /dev/null @@ -1,22 +0,0 @@ -# shellcheck shell=sh - -# Expand $PATH to include the directory where snappy applications go. -snap_bin_path="/snap/bin" -if [ -n "${PATH##*${snap_bin_path}}" ] && [ -n "${PATH##*${snap_bin_path}:*}" ]; then - export PATH=$PATH:${snap_bin_path} -fi - -# Ensure base distro defaults xdg path are set if nothing filed up some -# defaults yet. -if [ -z "$XDG_DATA_DIRS" ]; then - export XDG_DATA_DIRS="/usr/local/share:/usr/share" -fi - -# Desktop files (used by desktop environments within both X11 and Wayland) are -# looked for in XDG_DATA_DIRS; make sure it includes the relevant directory for -# snappy applications' desktop files. -snap_xdg_path="/var/lib/snapd/desktop" -if [ -n "${XDG_DATA_DIRS##*${snap_xdg_path}}" ] && [ -n "${XDG_DATA_DIRS##*${snap_xdg_path}:*}" ]; then - export XDG_DATA_DIRS="${XDG_DATA_DIRS}:${snap_xdg_path}" -fi - diff --git a/systemd/system/cloud-final.service.wants/snapd.seeded.service b/systemd/system/cloud-final.service.wants/snapd.seeded.service deleted file mode 120000 index 9b693010..00000000 --- a/systemd/system/cloud-final.service.wants/snapd.seeded.service +++ /dev/null @@ -1 +0,0 @@ -/lib/systemd/system/snapd.seeded.service \ No newline at end of file diff --git a/systemd/system/multi-user.target.wants/snap-bare-5.mount b/systemd/system/multi-user.target.wants/snap-bare-5.mount deleted file mode 120000 index 34eb1f5d..00000000 --- a/systemd/system/multi-user.target.wants/snap-bare-5.mount +++ /dev/null @@ -1 +0,0 @@ -/etc/systemd/system/snap-bare-5.mount \ No newline at end of file diff --git a/systemd/system/multi-user.target.wants/snap-core-12834.mount b/systemd/system/multi-user.target.wants/snap-core-12834.mount deleted file mode 120000 index 6f2ab935..00000000 --- a/systemd/system/multi-user.target.wants/snap-core-12834.mount +++ /dev/null @@ -1 +0,0 @@ -/etc/systemd/system/snap-core-12834.mount \ No newline at end of file diff --git a/systemd/system/multi-user.target.wants/snap-core20-1434.mount b/systemd/system/multi-user.target.wants/snap-core20-1434.mount deleted file mode 120000 index 1acdffd5..00000000 --- a/systemd/system/multi-user.target.wants/snap-core20-1434.mount +++ /dev/null @@ -1 +0,0 @@ -/etc/systemd/system/snap-core20-1434.mount \ No newline at end of file diff --git "a/systemd/system/multi-user.target.wants/snap-gtk\\x2dcommon\\x2dthemes-1519.mount" "b/systemd/system/multi-user.target.wants/snap-gtk\\x2dcommon\\x2dthemes-1519.mount" deleted file mode 120000 index bb03caf8..00000000 --- "a/systemd/system/multi-user.target.wants/snap-gtk\\x2dcommon\\x2dthemes-1519.mount" +++ /dev/null @@ -1 +0,0 @@ -/etc/systemd/system/snap-gtk\x2dcommon\x2dthemes-1519.mount \ No newline at end of file diff --git a/systemd/system/multi-user.target.wants/snapd.recovery-chooser-trigger.service b/systemd/system/multi-user.target.wants/snapd.recovery-chooser-trigger.service deleted file mode 120000 index ea555fda..00000000 --- a/systemd/system/multi-user.target.wants/snapd.recovery-chooser-trigger.service +++ /dev/null @@ -1 +0,0 @@ -/lib/systemd/system/snapd.recovery-chooser-trigger.service \ No newline at end of file diff --git a/systemd/system/multi-user.target.wants/snapd.seeded.service b/systemd/system/multi-user.target.wants/snapd.seeded.service deleted file mode 120000 index 9b693010..00000000 --- a/systemd/system/multi-user.target.wants/snapd.seeded.service +++ /dev/null @@ -1 +0,0 @@ -/lib/systemd/system/snapd.seeded.service \ No newline at end of file diff --git a/systemd/system/multi-user.target.wants/snapd.service b/systemd/system/multi-user.target.wants/snapd.service deleted file mode 120000 index a781c6a2..00000000 --- a/systemd/system/multi-user.target.wants/snapd.service +++ /dev/null @@ -1 +0,0 @@ -/lib/systemd/system/snapd.service \ No newline at end of file diff --git a/systemd/system/snap-bare-5.mount b/systemd/system/snap-bare-5.mount deleted file mode 100644 index e8790789..00000000 --- a/systemd/system/snap-bare-5.mount +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description=Mount unit for bare, revision 5 -Before=snapd.service -After=zfs-mount.service - -[Mount] -What=/var/lib/snapd/snaps/bare_5.snap -Where=/snap/bare/5 -Type=squashfs -Options=nodev,ro,x-gdu.hide,x-gvfs-hide -LazyUnmount=yes - -[Install] -WantedBy=multi-user.target diff --git a/systemd/system/snap-core-12834.mount b/systemd/system/snap-core-12834.mount deleted file mode 100644 index 8da2e892..00000000 --- a/systemd/system/snap-core-12834.mount +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Mount unit for core, revision 12834 -Before=snapd.service - -[Mount] -What=/var/lib/snapd/snaps/core_12834.snap -Where=/snap/core/12834 -Type=squashfs -Options=nodev,ro,x-gdu.hide -LazyUnmount=yes - -[Install] -WantedBy=multi-user.target diff --git a/systemd/system/snap-core20-1434.mount b/systemd/system/snap-core20-1434.mount deleted file mode 100644 index b781dc72..00000000 --- a/systemd/system/snap-core20-1434.mount +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description=Mount unit for core20, revision 1434 -Before=snapd.service -After=zfs-mount.service - -[Mount] -What=/var/lib/snapd/snaps/core20_1434.snap -Where=/snap/core20/1434 -Type=squashfs -Options=nodev,ro,x-gdu.hide,x-gvfs-hide -LazyUnmount=yes - -[Install] -WantedBy=multi-user.target diff --git "a/systemd/system/snap-gtk\\x2dcommon\\x2dthemes-1519.mount" "b/systemd/system/snap-gtk\\x2dcommon\\x2dthemes-1519.mount" deleted file mode 100644 index fe350c14..00000000 --- "a/systemd/system/snap-gtk\\x2dcommon\\x2dthemes-1519.mount" +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description=Mount unit for gtk-common-themes, revision 1519 -Before=snapd.service -After=zfs-mount.service - -[Mount] -What=/var/lib/snapd/snaps/gtk-common-themes_1519.snap -Where=/snap/gtk-common-themes/1519 -Type=squashfs -Options=nodev,ro,x-gdu.hide,x-gvfs-hide -LazyUnmount=yes - -[Install] -WantedBy=multi-user.target diff --git a/systemd/system/sockets.target.wants/snapd.socket b/systemd/system/sockets.target.wants/snapd.socket deleted file mode 120000 index aa4e443b..00000000 --- a/systemd/system/sockets.target.wants/snapd.socket +++ /dev/null @@ -1 +0,0 @@ -/lib/systemd/system/snapd.socket \ No newline at end of file diff --git a/udev/rules.d/70-snap.core.rules b/udev/rules.d/70-snap.core.rules deleted file mode 100644 index 908096f8..00000000 --- a/udev/rules.d/70-snap.core.rules +++ /dev/null @@ -1,1078 +0,0 @@ -# This file is automatically generated. - -# Concatenation of all ModemManager udev rules -# do not edit this file, it will be overwritten on update - -ACTION!="add|change|move", GOTO="mm_cinterion_port_types_end" -SUBSYSTEM!="tty", GOTO="mm_cinterion_port_types_end" -ENV{ID_VENDOR_ID}!="1e2d", GOTO="mm_cinterion_port_types_end" - -SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}" - -ATTRS{idVendor}=="1e2d", ATTRS{idProduct}=="0053", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_CINTERION_PORT_TYPE_GPS}="1" - -LABEL="mm_cinterion_port_types_end" -# do not edit this file, it will be overwritten on update - -ACTION!="add|change|move", GOTO="mm_mbm_end" -SUBSYSTEMS=="usb", GOTO="mm_mbm_check" -GOTO="mm_mbm_end" - -LABEL="mm_mbm_check" - -# Ericsson F3507g -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1900", ENV{ID_MM_ERICSSON_MBM}="1" -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1902", ENV{ID_MM_ERICSSON_MBM}="1" - -# Ericsson F3607gw -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1904", ENV{ID_MM_ERICSSON_MBM}="1" -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1905", ENV{ID_MM_ERICSSON_MBM}="1" -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1906", ENV{ID_MM_ERICSSON_MBM}="1" - -# Ericsson F3307 -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="190a", ENV{ID_MM_ERICSSON_MBM}="1" -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1909", ENV{ID_MM_ERICSSON_MBM}="1" - -# Ericsson F3307 R2 -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1914", ENV{ID_MM_ERICSSON_MBM}="1" - -# Ericsson C3607w -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1049", ENV{ID_MM_ERICSSON_MBM}="1" - -# Ericsson C3607w v2 -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="190b", ENV{ID_MM_ERICSSON_MBM}="1" - -# Ericsson F5521gw -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="190d", ENV{ID_MM_ERICSSON_MBM}="1" -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1911", ENV{ID_MM_ERICSSON_MBM}="1" - -# Ericsson H5321gw -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1919", ENV{ID_MM_ERICSSON_MBM}="1" - -# Ericsson H5321w -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="191d", ENV{ID_MM_ERICSSON_MBM}="1" - -# Ericsson F5321gw -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1917", ENV{ID_MM_ERICSSON_MBM}="1" - -# Ericsson F5321w -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="191b", ENV{ID_MM_ERICSSON_MBM}="1" - -# Ericsson C5621gw -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="191f", ENV{ID_MM_ERICSSON_MBM}="1" - -# Ericsson C5621w -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1921", ENV{ID_MM_ERICSSON_MBM}="1" - -# Ericsson H5321gw -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1926", ENV{ID_MM_ERICSSON_MBM}="1" -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1927", ENV{ID_MM_ERICSSON_MBM}="1" - -# Ericsson C3304w -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1928", ENV{ID_MM_ERICSSON_MBM}="1" - -# Ericsson C5621 TFF -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1936", ENV{ID_MM_ERICSSON_MBM}="1" - -# Sony-Ericsson MD300 -ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="d0cf", ENV{ID_MM_ERICSSON_MBM}="1" - -# Sony-Ericsson MD400 -ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="d0e1", ENV{ID_MM_ERICSSON_MBM}="1" - -# Sony-Ericsson MD400G -ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="d103", ENV{ID_MM_ERICSSON_MBM}="1" - -# Dell 5560 -ATTRS{idVendor}=="413c", ATTRS{idProduct}=="818e", ENV{ID_MM_ERICSSON_MBM}="1" - -# Dell 5550 -ATTRS{idVendor}=="413c", ATTRS{idProduct}=="818d", ENV{ID_MM_ERICSSON_MBM}="1" - -# Dell 5530 HSDPA -ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8147", ENV{ID_MM_ERICSSON_MBM}="1" - -# Dell F3607gw -ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8183", ENV{ID_MM_ERICSSON_MBM}="1" -ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8184", ENV{ID_MM_ERICSSON_MBM}="1" - -# Dell F3307 -ATTRS{idVendor}=="413c", ATTRS{idProduct}=="818b", ENV{ID_MM_ERICSSON_MBM}="1" -ATTRS{idVendor}=="413c", ATTRS{idProduct}=="818c", ENV{ID_MM_ERICSSON_MBM}="1" - -# HP hs2330 Mobile Broadband Module -ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="271d", ENV{ID_MM_ERICSSON_MBM}="1" - -# HP hs2320 Mobile Broadband Module -ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="261d", ENV{ID_MM_ERICSSON_MBM}="1" - -# HP hs2340 Mobile Broadband Module -ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3a1d", ENV{ID_MM_ERICSSON_MBM}="1" - -# HP hs2350 Mobile Broadband Module -ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3d1d", ENV{ID_MM_ERICSSON_MBM}="1" - -# HP lc2000 Mobile Broadband Module -ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="301d", ENV{ID_MM_ERICSSON_MBM}="1" - -# HP lc2010 Mobile Broadband Module -ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="2f1d", ENV{ID_MM_ERICSSON_MBM}="1" - -# Toshiba -ATTRS{idVendor}=="0930", ATTRS{idProduct}=="130b", ENV{ID_MM_ERICSSON_MBM}="1" - -# Toshiba F3607gw -ATTRS{idVendor}=="0930", ATTRS{idProduct}=="130c", ENV{ID_MM_ERICSSON_MBM}="1" -ATTRS{idVendor}=="0930", ATTRS{idProduct}=="1311", ENV{ID_MM_ERICSSON_MBM}="1" - -# Toshiba F3307 -ATTRS{idVendor}=="0930", ATTRS{idProduct}=="1315", ENV{ID_MM_ERICSSON_MBM}="1" -ATTRS{idVendor}=="0930", ATTRS{idProduct}=="1316", ENV{ID_MM_ERICSSON_MBM}="1" -ATTRS{idVendor}=="0930", ATTRS{idProduct}=="1317", ENV{ID_MM_ERICSSON_MBM}="1" - -# Toshiba F5521gw -ATTRS{idVendor}=="0930", ATTRS{idProduct}=="1313", ENV{ID_MM_ERICSSON_MBM}="1" -ATTRS{idVendor}=="0930", ATTRS{idProduct}=="1314", ENV{ID_MM_ERICSSON_MBM}="1" - -# Toshiba H5321gw -ATTRS{idVendor}=="0930", ATTRS{idProduct}=="1319", ENV{ID_MM_ERICSSON_MBM}="1" - -# Lenovo N5321gw -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="193e", ENV{ID_MM_ERICSSON_MBM}="1" - -LABEL="mm_mbm_end" -# do not edit this file, it will be overwritten on update -ACTION!="add|change|move", GOTO="mm_huawei_port_types_end" - -ENV{ID_VENDOR_ID}!="12d1", GOTO="mm_huawei_port_types_end" - -# MU609 does not support getportmode (crashes modem with default firmware) -ATTRS{idProduct}=="1573", ENV{ID_MM_HUAWEI_DISABLE_GETPORTMODE}="1" - -# Mark the modem and at port flags for ModemManager -SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="ff", ATTRS{bInterfaceSubClass}=="01", ATTRS{bInterfaceProtocol}=="01", ENV{ID_MM_HUAWEI_MODEM_PORT}="1" -SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="ff", ATTRS{bInterfaceSubClass}=="01", ATTRS{bInterfaceProtocol}=="02", ENV{ID_MM_HUAWEI_AT_PORT}="1" -SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="ff", ATTRS{bInterfaceSubClass}=="02", ATTRS{bInterfaceProtocol}=="01", ENV{ID_MM_HUAWEI_MODEM_PORT}="1" -SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="ff", ATTRS{bInterfaceSubClass}=="02", ATTRS{bInterfaceProtocol}=="02", ENV{ID_MM_HUAWEI_AT_PORT}="1" - -# GPS NMEA port on MU609 -SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="ff", ATTRS{bInterfaceSubClass}=="01", ATTRS{bInterfaceProtocol}=="05", ENV{ID_MM_HUAWEI_GPS_PORT}="1" -# GPS NMEA port on MU909 -SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="ff", ATTRS{bInterfaceSubClass}=="01", ATTRS{bInterfaceProtocol}=="14", ENV{ID_MM_HUAWEI_GPS_PORT}="1" - -# Only the standard ECM or NCM port can support dial-up with AT NDISDUP through AT port -SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="02", ATTRS{bInterfaceSubClass}=="06",ATTRS{bInterfaceProtocol}=="00", ENV{ID_MM_HUAWEI_NDISDUP_SUPPORTED}="1" -SUBSYSTEMS=="usb", ATTRS{bInterfaceClass}=="02", ATTRS{bInterfaceSubClass}=="0d",ATTRS{bInterfaceProtocol}=="00", ENV{ID_MM_HUAWEI_NDISDUP_SUPPORTED}="1" - -LABEL="mm_huawei_port_types_end" -# do not edit this file, it will be overwritten on update - -# Longcheer makes modules that other companies rebrand, like: -# -# Alcatel One Touch X020 -# Alcatel One Touch X030 -# MobiData MBD-200HU -# ST Mobile Connect HSUPA USB Modem -# -# Most of these values were scraped from various Longcheer-based Windows -# driver .inf files. cmmdm.inf lists the actual data (ie PPP) ports, while -# cmser.inf lists the aux ports that may be either AT-capable or not but -# cannot be used for PPP. - - -ACTION!="add|change|move", GOTO="mm_longcheer_port_types_end" -SUBSYSTEM!="tty", GOTO="mm_longcheer_port_types_end" - -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c9e", GOTO="mm_longcheer_vendorcheck" -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1bbb", GOTO="mm_tamobile_vendorcheck" -GOTO="mm_longcheer_port_types_end" - -LABEL="mm_longcheer_vendorcheck" -SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="3197", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="3197", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="3197", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="6000", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="6000", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="6000", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="6060", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="6060", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="6060", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -# Alcatel One Touch X020 -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="6061", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="6061", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="6061", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7001", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7001", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7001", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7001", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7002", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7002", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7002", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7002", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7002", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7101", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7101", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7101", ENV{.MM_USBIFNUM}=="05", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7101", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7102", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7102", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7102", ENV{.MM_USBIFNUM}=="05", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7102", ENV{.MM_USBIFNUM}=="06", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="7102", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="8000", ENV{.MM_USBIFNUM}=="05", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="8000", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="8000", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="8000", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="8001", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="8001", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="8001", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="8001", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="8002", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="8002", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="8002", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="8002", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -# ChinaBird PL68 -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9000", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9000", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9000", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9001", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9001", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9001", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9001", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9002", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9002", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9002", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9002", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9003", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9003", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9003", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9003", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9003", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9004", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9004", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9004", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9005", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9005", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9005", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9010", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9010", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9010", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9010", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9012", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9012", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9012", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9012", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9020", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9020", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9020", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9020", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9022", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9022", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9022", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9022", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -# Zoom products -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9602", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9602", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9602", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9602", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9603", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9603", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9603", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9603", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9604", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9604", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9604", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9604", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9605", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9605", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9605", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9605", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9605", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9606", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9606", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9606", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9606", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9606", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9607", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9607", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9607", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9607", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9607", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9607", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -GOTO="mm_longcheer_port_types_end" - - -LABEL="mm_tamobile_vendorcheck" -SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}" - -# Alcatel One Touch X060s -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0000", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_LONGCHEER_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0000", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_LONGCHEER_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0000", ENV{ID_MM_LONGCHEER_TAGGED}="1" - -GOTO="mm_longcheer_port_types_end" - - -LABEL="mm_longcheer_port_types_end" -# do not edit this file, it will be overwritten on update - -ACTION!="add|change|move", GOTO="mm_mtk_port_types_end" - -SUBSYSTEMS=="usb", ATTRS{idVendor}=="0e8d", GOTO="mm_mtk_port_types_vendorcheck" -SUBSYSTEMS=="usb", ATTRS{idVendor}=="2001", GOTO="mm_dlink_port_types_vendorcheck" -GOTO="mm_mtk_port_types_end" - -# MediaTek devices --------------------------- - -LABEL="mm_mtk_port_types_vendorcheck" -ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}" - -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a1", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_MTK_MODEM_PORT}="1" -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a1", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_MTK_AT_PORT}="1" -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a1", ENV{ID_MM_MTK_TAGGED}="1" - -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a2", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_MTK_MODEM_PORT}="1" -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a2", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_MTK_AT_PORT}="1" -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a2", ENV{ID_MM_MTK_TAGGED}="1" - -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a4", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_MTK_MODEM_PORT}="1" -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a4", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_MTK_AT_PORT}="1" -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a4", ENV{ID_MM_MTK_TAGGED}="1" - -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a5", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_MTK_MODEM_PORT}="1" -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a5", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_MTK_AT_PORT}="1" -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a5", ENV{ID_MM_MTK_TAGGED}="1" - -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a7", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_MTK_MODEM_PORT}="1" -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a7", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_MTK_AT_PORT}="1" -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="00a7", ENV{ID_MM_MTK_TAGGED}="1" - -GOTO="mm_mtk_port_types_end" - -# D-Link devices --------------------------- - -LABEL="mm_dlink_port_types_vendorcheck" -ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}" - -# D-Link DWM-156 A5 (and later?) -ATTRS{idVendor}=="2001", ATTRS{idProduct}=="7d00", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_MTK_MODEM_PORT}="1" -ATTRS{idVendor}=="2001", ATTRS{idProduct}=="7d00", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_MTK_AT_PORT}="1" -ATTRS{idVendor}=="2001", ATTRS{idProduct}=="7d00", ENV{ID_MM_MTK_TAGGED}="1" - -GOTO="mm_mtk_port_types_end" - -LABEL="mm_mtk_port_types_end" -# do not edit this file, it will be overwritten on update - -ACTION!="add|change|move", GOTO="mm_nokia_port_types_end" -SUBSYSTEM!="tty", GOTO="mm_nokia_port_types_end" - -SUBSYSTEMS=="usb", ATTRS{idVendor}=="0421", GOTO="mm_nokia_port_types_vendorcheck" -GOTO="mm_nokia_port_types_end" - -LABEL="mm_nokia_port_types_vendorcheck" -SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}" - -# For Nokia Internet Sticks (CS-xx) the modem/PPP port appears to always be USB interface 1 - -ATTRS{idVendor}=="0421", ATTRS{idProduct}=="060D", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_NOKIA_PORT_TYPE_MODEM}="1" - -ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0611", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_NOKIA_PORT_TYPE_MODEM}="1" - -ATTRS{idVendor}=="0421", ATTRS{idProduct}=="061A", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_NOKIA_PORT_TYPE_MODEM}="1" - -ATTRS{idVendor}=="0421", ATTRS{idProduct}=="061B", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_NOKIA_PORT_TYPE_MODEM}="1" - -ATTRS{idVendor}=="0421", ATTRS{idProduct}=="061F", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_NOKIA_PORT_TYPE_MODEM}="1" - -ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0619", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_NOKIA_PORT_TYPE_MODEM}="1" - -ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0620", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_NOKIA_PORT_TYPE_MODEM}="1" - -ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0623", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_NOKIA_PORT_TYPE_MODEM}="1" - -ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0624", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_NOKIA_PORT_TYPE_MODEM}="1" - -ATTRS{idVendor}=="0421", ATTRS{idProduct}=="0625", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_NOKIA_PORT_TYPE_MODEM}="1" - -ATTRS{idVendor}=="0421", ATTRS{idProduct}=="062A", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_NOKIA_PORT_TYPE_MODEM}="1" - -ATTRS{idVendor}=="0421", ATTRS{idProduct}=="062E", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_NOKIA_PORT_TYPE_MODEM}="1" - -ATTRS{idVendor}=="0421", ATTRS{idProduct}=="062F", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_NOKIA_PORT_TYPE_MODEM}="1" - -LABEL="mm_nokia_port_types_end" -# do not edit this file, it will be overwritten on update - -ACTION!="add|change|move", GOTO="mm_pcmcia_device_blacklist_end" -SUBSYSTEM!="pcmcia", GOTO="mm_pcmcia_device_blacklist_end" - -# Gemplus Serial Port smartcard adapter -ATTRS{prod_id1}=="Gemplus", ATTRS{prod_id2}=="SerialPort", ATTRS{prod_id3}=="GemPC Card", ENV{ID_MM_DEVICE_IGNORE}="1" - -LABEL="mm_pcmcia_device_blacklist_end" -# do not edit this file, it will be overwritten on update - -ACTION!="add|change|move", GOTO="mm_platform_device_whitelist_end" -SUBSYSTEM!="platform", GOTO="mm_platform_device_whitelist_end" - -# Be careful here since many devices connected to platform drivers on PCs -# are legacy devices that won't like probing. But often on embedded -# systems serial ports are provided by platform devices. - -# Allow atmel_usart -DRIVERS=="atmel_usart", ENV{ID_MM_PLATFORM_DRIVER_PROBE}="1" - -LABEL="mm_platform_device_whitelist_end" -# do not edit this file, it will be overwritten on update - -# Simtech makes modules that other companies rebrand, like: -# -# A-LINK 3GU -# SCT UM300 -# -# Most of these values were scraped from various SimTech-based Windows -# driver .inf files. *mdm.inf lists the main command ports, while -# *ser.inf lists the aux ports that may be used for PPP. - - -ACTION!="add|change|move", GOTO="mm_simtech_port_types_end" -SUBSYSTEM!="tty", GOTO="mm_simtech_port_types_end" - -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1e0e", GOTO="mm_alink_vendorcheck" -GOTO="mm_simtech_port_types_end" - -LABEL="mm_alink_vendorcheck" -SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}" - -# A-LINK 3GU -ATTRS{idVendor}=="1e0e", ATTRS{idProduct}=="cefe", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_SIMTECH_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1e0e", ATTRS{idProduct}=="cefe", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_SIMTECH_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1e0e", ATTRS{idProduct}=="cefe", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_SIMTECH_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1e0e", ATTRS{idProduct}=="cefe", ENV{ID_MM_SIMTECH_TAGGED}="1" - -# Prolink PH-300 -ATTRS{idVendor}=="1e0e", ATTRS{idProduct}=="9100", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_SIMTECH_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1e0e", ATTRS{idProduct}=="9100", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_SIMTECH_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1e0e", ATTRS{idProduct}=="9100", ENV{ID_MM_SIMTECH_TAGGED}="1" - -# SCT UM300 -ATTRS{idVendor}=="1e0e", ATTRS{idProduct}=="9200", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_SIMTECH_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1e0e", ATTRS{idProduct}=="9200", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_SIMTECH_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1e0e", ATTRS{idProduct}=="9200", ENV{ID_MM_SIMTECH_TAGGED}="1" - -GOTO="mm_simtech_port_types_end" - -LABEL="mm_simtech_port_types_end" -# do not edit this file, it will be overwritten on update - -ACTION!="add|change|move", GOTO="mm_telit_port_types_end" -SUBSYSTEM!="tty", GOTO="mm_telit_port_types_end" - -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1bc7", GOTO="mm_telit_vendorcheck" -GOTO="mm_telit_port_types_end" - -LABEL="mm_telit_vendorcheck" -SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}" - -# UC864-E, UC864-E-AUTO, UC864-K, UC864-WD, UC864-WDU -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1003", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_TELIT_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1003", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_TELIT_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1003", ENV{ID_MM_TELIT_TAGGED}="1" - -# UC864-G -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1004", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_TELIT_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1004", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_TELIT_PORT_TYPE_NMEA}="1" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1004", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_TELIT_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1004", ENV{ID_MM_TELIT_TAGGED}="1" - -# CC864-DUAL -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1005", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_TELIT_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1005", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_TELIT_PORT_TYPE_NMEA}="1" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1005", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_TELIT_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1005", ENV{ID_MM_TELIT_TAGGED}="1" - -# CC864-SINGLE, CC864-KPS -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1006", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_TELIT_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1006", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_TELIT_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1006", ENV{ID_MM_TELIT_TAGGED}="1" - -# DE910-DUAL -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_TELIT_PORT_TYPE_NMEA}="1" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_TELIT_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_TELIT_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1010", ENV{ID_MM_TELIT_TAGGED}="1" - -# CE910-DUAL -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1011", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_TELIT_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1011", ENV{ID_MM_TELIT_TAGGED}="1" - -# NOTE: Qualcomm Gobi-based devices like the LE920 should not be handled -# by this plugin, but by the Gobi plugin. - -GOTO="mm_telit_port_types_end" -LABEL="mm_telit_port_types_end" -# do not edit this file, it will be overwritten on update - -ACTION!="add|change|move", GOTO="mm_usb_device_blacklist_end" -SUBSYSTEM!="usb", GOTO="mm_usb_device_blacklist_end" -ENV{DEVTYPE}!="usb_device", GOTO="mm_usb_device_blacklist_end" - -# Telegesis zigbee dongle -ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="0003", ENV{ID_MM_DEVICE_IGNORE}="1" - -# APC UPS devices -ATTRS{idVendor}=="051d", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Sweex 1000VA -ATTRS{idVendor}=="0925", ATTRS{idProduct}=="1234", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Agiler UPS -ATTRS{idVendor}=="05b8", ATTRS{idProduct}=="0000", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Krauler UP-M500VA -ATTRS{idVendor}=="0001", ATTRS{idProduct}=="0000", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Ablerex 625L USB -ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="0000", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Belkin F6C1200-UNV -ATTRS{idVendor}=="0665", ATTRS{idProduct}=="5161", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Various Liebert and Phoenixtec Power devices -ATTRS{idVendor}=="06da", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Unitek Alpha 1200Sx -ATTRS{idVendor}=="0f03", ATTRS{idProduct}=="0001", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Various Tripplite devices -ATTRS{idVendor}=="09ae", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Various MGE Office Protection Systems devices -ATTRS{idVendor}=="0463", ATTRS{idProduct}=="0001", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="0463", ATTRS{idProduct}=="ffff", ENV{ID_MM_DEVICE_IGNORE}="1" - -# CyberPower 900AVR/BC900D -ATTRS{idVendor}=="0764", ATTRS{idProduct}=="0005", ENV{ID_MM_DEVICE_IGNORE}="1" -# CyberPower CP1200AVR/BC1200D -ATTRS{idVendor}=="0764", ATTRS{idProduct}=="0501", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Various Belkin devices -ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0980", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0900", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0910", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0912", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0551", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0751", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0375", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="050d", ATTRS{idProduct}=="1100", ENV{ID_MM_DEVICE_IGNORE}="1" - -# HP R/T 2200 INTL (like SMART2200RMXL2U) -ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1f0a", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Powerware devices -ATTRS{idVendor}=="0592", ATTRS{idProduct}=="0002", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Palm Treo 700/900/etc -# Shouldn't be probed themselves, but you can install programs like -# "MobileStream USB Modem" which changes the USB PID of the device to something -# that isn't blacklisted. -ATTRS{idVendor}=="0830", ATTRS{idProduct}=="0061", ENV{ID_MM_DEVICE_IGNORE}="1" - -# GlobalScaleTechnologies SheevaPlug -ATTRS{idVendor}=="9e88", ATTRS{idProduct}=="9e8f", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Atmel Corp at91sam SAMBA bootloader -ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Dangerous Prototypes Bus Pirate v4 -ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="fb00", ENV{ID_MM_DEVICE_IGNORE}="1" - -# All devices from the Swiss Federal Institute of Technology -ATTRS{idVendor}=="0617", ENV{ID_MM_DEVICE_IGNORE}="1" - -# West Mountain Radio devices -ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="814a", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="814b", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="2405", ATTRS{idProduct}=="0003", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Arduinos -ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9207", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9208", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Adafruit Flora -ATTRS{idVendor}=="239a", ATTRS{idProduct}=="0004", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="239a", ATTRS{idProduct}=="8004", ENV{ID_MM_DEVICE_IGNORE}="1" - -# All devices from Pololu Corporation -# except some possible future products. -ATTRS{idVendor}=="1ffb", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="00ad", ENV{ID_MM_DEVICE_IGNORE}="0" -ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="00ae", ENV{ID_MM_DEVICE_IGNORE}="0" - -# Altair U-Boot device -ATTRS{idVendor}=="0216", ATTRS{idProduct}=="0051", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Bluegiga BLE112B -ATTRS{idVendor}=="2458", ATTRS{idProduct}=="0001", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Analog Devices BLIP camera -ATTRS{idVendor}=="064b", ATTRS{idProduct}=="7823", ENV{ID_MM_DEVICE_IGNORE}="1" - -# MediaTek GPS chip (HOLUX M-1200E, GlobalTop Gms-d1, etc) -ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="3329", ENV{ID_MM_DEVICE_IGNORE}="1" - -# PS-360 OEM (GPS sold with MS Street and Trips 2005) -ATTRS{idVendor}=="067b", ATTRS{idProduct}=="aaa0", ENV{ID_MM_DEVICE_IGNORE}="1" - -# u-blox AG, u-blox 5 GPS chips -ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a5", ENV{ID_MM_DEVICE_IGNORE}="1" -ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a6", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Garmin GPS devices -DRIVERS=="garmin_gps", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Cypress M8-based GPS devices, UPSes, and serial converters -DRIVERS=="cypress_m8", ENV{ID_MM_DEVICE_IGNORE}="1" - -# All devices in the Openmoko vendor ID -ATTRS{idVendor}=="1d50", ENV{ID_MM_DEVICE_IGNORE}="1" - -# All devices from 3D Robotics -ATTRS{idVendor}=="26ac", ENV{ID_MM_DEVICE_IGNORE}="1" - -# empiriKit science lab controller device -ATTRS{idVendor}=="0425", ATTRS{idProduct}=="0408", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Infineon Flashloader used by Intel XMM modem bootloader -ATTRS{idVendor}=="8087", ATTRS{idProduct}=="0716", ENV{ID_MM_DEVICE_IGNORE}="1" - -LABEL="mm_usb_device_blacklist_end" -# do not edit this file, it will be overwritten on update - -ACTION!="add|change|move", GOTO="mm_usb_serial_adapters_greylist_end" -SUBSYSTEM!="usb", GOTO="mm_usb_serial_adapters_greylist_end" -ENV{DEVTYPE}!="usb_device", GOTO="mm_usb_serial_adapters_greylist_end" - -# Belkin F5U183 Serial Adapter -ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0103", ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}="1" - -# FTDI-based serial adapters -# FTDI does USB to serial converter ICs; and it's very likely that they'll -# never do modems themselves, so it should be safe to add a rule only based -# on the vendor Id. -ATTRS{idVendor}=="0403", ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}="1" - -# ATEN Intl UC-232A (Prolific) -ATTRS{idVendor}=="0557", ATTRS{idProduct}=="2008", ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}="1" - -# Prolific USB to Serial adapter -ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}="1" - -# Magic Control Technology Corp adapters -ATTRS{idVendor}=="0711", ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}="1" - -# Cygnal Integrated Products, Inc. CP210x -ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}="1" -ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea71", ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}="1" - -# QinHeng Electronics HL-340 -ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}="1" - -# Atmel Corp. LUFA USB to Serial Adapter Project (Arduino) -ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="204b", ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}="1" - -# Netchip Technology, Inc. Linux-USB Serial Gadget (CDC ACM mode) -ATTRS{idVendor}=="0525", ATTRS{idProduct}=="a4a7", ENV{ID_MM_DEVICE_MANUAL_SCAN_ONLY}="1" - -LABEL="mm_usb_serial_adapters_greylist_end" -# do not edit this file, it will be overwritten on update - -# Alcatel One Touch X220D -# Alcatel One Touch X200 -# -# These values were scraped from the X220D's Windows .inf files. jrdmdm.inf -# lists the actual command and data (ie PPP) ports, while jrdser.inf lists the -# aux ports that may be either AT-capable or not but cannot be used for PPP. - - -ACTION!="add|change|move", GOTO="mm_x22x_port_types_end" -SUBSYSTEM!="tty", GOTO="mm_x22x_port_types_end" - -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1bbb", GOTO="mm_x22x_generic_vendorcheck" -SUBSYSTEMS=="usb", ATTRS{idVendor}=="0b3c", GOTO="mm_x22x_olivetti_vendorcheck" -GOTO="mm_x22x_port_types_end" - -# Generic JRD devices --------------------------- - -LABEL="mm_x22x_generic_vendorcheck" -SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}" - -# Alcatel X200 -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0000", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_X22X_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0000", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0000", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0000", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0000", ENV{ID_MM_X22X_TAGGED}="1" - -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0017", ENV{.MM_USBIFNUM}=="05", ENV{ID_MM_X22X_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0017", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0017", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0017", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0017", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="0017", ENV{ID_MM_X22X_TAGGED}="1" - -# Archos G9 -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="00B7", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_X22X_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="00B7", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="00B7", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_X22X_PORT_TYPE_NMEA}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="00B7", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_X22X_PORT_TYPE_VOICE}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="00B7", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="1bbb", ATTRS{idProduct}=="00B7", ENV{ID_MM_X22X_TAGGED}="1" - -GOTO="mm_x22x_port_types_end" - -# Olivetti devices --------------------------- - -LABEL="mm_x22x_olivetti_vendorcheck" -SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}" - -# Olicard 200 -ATTRS{idVendor}=="0b3c", ATTRS{idProduct}=="c005", ENV{.MM_USBIFNUM}=="05", ENV{ID_MM_X22X_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="0b3c", ATTRS{idProduct}=="c005", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="0b3c", ATTRS{idProduct}=="c005", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="0b3c", ATTRS{idProduct}=="c005", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="0b3c", ATTRS{idProduct}=="c005", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="0b3c", ATTRS{idProduct}=="c005", ENV{.MM_USBIFNUM}=="06", ENV{ID_MM_X22X_PORT_TYPE_AUX}="1" -ATTRS{idVendor}=="0b3c", ATTRS{idProduct}=="c005", ENV{ID_MM_X22X_TAGGED}="1" - -GOTO="mm_x22x_port_types_end" - -LABEL="mm_x22x_port_types_end" -# do not edit this file, it will be overwritten on update - -ACTION!="add|change|move", GOTO="mm_zte_port_types_end" -SUBSYSTEM!="tty", GOTO="mm_zte_port_types_end" - -SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", GOTO="mm_zte_port_types_vendorcheck" -GOTO="mm_zte_port_types_end" - -LABEL="mm_zte_port_types_vendorcheck" -SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0001", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0001", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0002", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0002", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0003", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0003", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0004", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0004", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0005", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0005", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0006", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0006", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0007", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0007", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0008", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0008", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0009", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0009", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="000A", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="000A", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0012", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0012", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0015", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0015", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0016", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0016", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0017", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0017", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0018", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0018", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0019", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0019", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0021", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0021", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0024", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0024", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0025", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0025", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0030", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0030", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0031", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0031", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0033", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0033", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0037", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0037", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0039", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0039", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0042", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0042", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0043", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0043", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0048", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0048", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0049", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0049", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0052", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0052", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0054", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0054", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0055", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0055", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0057", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0057", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0058", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0058", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0061", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0061", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0063", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0063", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0064", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0064", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0066", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0066", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0078", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0078", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0082", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0082", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0091", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0091", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0104", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0104", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0106", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0106", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0108", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0108", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0113", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0113", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0117", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0117", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0118", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0118", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0121", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0121", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0122", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0122", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0123", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0123", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0124", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0124", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0125", ENV{.MM_USBIFNUM}=="05", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0125", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0126", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0126", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0128", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0128", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1007", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1007", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1008", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1008", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1010", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1010", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1254", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1254", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1515", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1515", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="2002", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="2002", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="2003", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" -ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="2003", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" - -# Icera-based devices that use DHCP, not AT%IPDPADDR -ATTRS{product}=="K3805-z", ENV{ID_MM_ZTE_ICERA_DHCP}="1" - -LABEL="mm_zte_port_types_end" -# do not edit this file, it will be overwritten on update - -# Tag any devices that MM might be interested in; if ModemManager is started -# up right after udev, when MM explicitly requests devices on startup it may -# get devices that haven't had all rules run yet. Thus, we tag devices we're -# interested in and when handling devices during MM startup we ignore any -# that don't have this tag. MM will still get the udev 'add' event for the -# device a short while later and then process it as normal. - -ACTION!="add|change|move|bind", GOTO="mm_candidate_end" - -# Opening bound but disconnected Bluetooth RFCOMM ttys would initiate the -# connection. Don't do that. -KERNEL=="rfcomm*", DEVPATH=="*/virtual/*", GOTO="mm_candidate_end" - -SUBSYSTEM=="tty", ENV{ID_MM_CANDIDATE}="1" -SUBSYSTEM=="net", ENV{ID_MM_CANDIDATE}="1" -KERNEL=="cdc-wdm[0-9]*", SUBSYSTEM=="usb", ENV{ID_MM_CANDIDATE}="1" -KERNEL=="cdc-wdm[0-9]*", SUBSYSTEM=="usbmisc", ENV{ID_MM_CANDIDATE}="1" - -# WWAN subsystem port handling -# - All USB devices ignored for now, only PCI devices expected -# - Only "wwan_port" device types processed (single ports); we fully ignore -# the "wwan_dev" device type (full device, not just one port) -SUBSYSTEMS=="usb", GOTO="mm_candidate_end" -SUBSYSTEM=="wwan", ENV{DEVTYPE}=="wwan_dev", GOTO="mm_candidate_end" -SUBSYSTEM=="wwan", ENV{ID_MM_CANDIDATE}="1" -SUBSYSTEM=="wwan", KERNEL=="*MBIM", ENV{ID_MM_PORT_TYPE_MBIM}="1" -SUBSYSTEM=="wwan", KERNEL=="*QMI", ENV{ID_MM_PORT_TYPE_QMI}="1" -SUBSYSTEM=="wwan", KERNEL=="*AT", ENV{ID_MM_PORT_TYPE_AT_PRIMARY}="1" -SUBSYSTEM=="wwan", KERNEL=="*QCDM", ENV{ID_MM_PORT_TYPE_QCDM}="1" - -LABEL="mm_candidate_end" - - -## Concatenation of all ofono udev rules (plugins/*.rules in ofono sources) -## Note that ofono uses this for very few modems and that in most cases it finds -## modems by checking directly in code udev events, so changes here will be rare - -## plugins/ofono.rules -# do not edit this file, it will be overwritten on update - -ACTION!="add|change", GOTO="ofono_end" - -# ISI/Phonet drivers -SUBSYSTEM!="net", GOTO="ofono_isi_end" -ATTRS{type}!="820", GOTO="ofono_isi_end" -KERNELS=="gadget", GOTO="ofono_isi_end" - -# Nokia N900 modem -SUBSYSTEMS=="hsi", ENV{OFONO_DRIVER}="n900", ENV{OFONO_ISI_ADDRESS}="108" -KERNEL=="phonet*", ENV{OFONO_DRIVER}="n900", ENV{OFONO_ISI_ADDRESS}="108" - -# STE u8500 -KERNEL=="shrm0", ENV{OFONO_DRIVER}="u8500" - -LABEL="ofono_isi_end" - -SUBSYSTEM!="usb", GOTO="ofono_end" -ENV{DEVTYPE}!="usb_device", GOTO="ofono_end" - -# Ignore fake serial number -ATTRS{serial}=="1234567890ABCDEF", ENV{ID_SERIAL_SHORT}="" - -# Nokia CDMA Device -ATTRS{idVendor}=="0421", ATTRS{idProduct}=="023e", ENV{OFONO_DRIVER}="nokiacdma" -ATTRS{idVendor}=="0421", ATTRS{idProduct}=="00b6", ENV{OFONO_DRIVER}="nokiacdma" - -# Lenovo H5321gw 0bdb:1926 -ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1926", ENV{OFONO_DRIVER}="mbm" - -LABEL="ofono_end" - -## plugins/ofono-speedup.rules -# do not edit this file, it will be overwritten on update - -ACTION!="add|change", GOTO="ofono_speedup_end" - -SUBSYSTEM!="tty", GOTO="ofono_speedup_end" -KERNEL!="ttyUSB[0-9]*", GOTO="ofono_speedup_end" - -# SpeedUp 7300 -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9e00", ENV{ID_USB_INTERFACE_NUM}=="00", ENV{OFONO_LABEL}="modem" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9e00", ENV{ID_USB_INTERFACE_NUM}=="03", ENV{OFONO_LABEL}="aux" - -# SpeedUp -ATTRS{idVendor}=="2020", ATTRS{idProduct}=="1005", ENV{ID_USB_INTERFACE_NUM}=="03", ENV{OFONO_LABEL}="modem" -ATTRS{idVendor}=="2020", ATTRS{idProduct}=="1005", ENV{ID_USB_INTERFACE_NUM}=="01", ENV{OFONO_LABEL}="aux" - -ATTRS{idVendor}=="2020", ATTRS{idProduct}=="1008", ENV{ID_USB_INTERFACE_NUM}=="03", ENV{OFONO_LABEL}="modem" -ATTRS{idVendor}=="2020", ATTRS{idProduct}=="1008", ENV{ID_USB_INTERFACE_NUM}=="01", ENV{OFONO_LABEL}="aux" - -# SpeedUp 9800 -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9800", ENV{ID_USB_INTERFACE_NUM}=="01", ENV{OFONO_LABEL}="modem" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9800", ENV{ID_USB_INTERFACE_NUM}=="02", ENV{OFONO_LABEL}="aux" - -# SpeedUp U3501 -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9605", ENV{ID_USB_INTERFACE_NUM}=="03", ENV{OFONO_LABEL}="modem" -ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9605", ENV{ID_USB_INTERFACE_NUM}=="01", ENV{OFONO_LABEL}="aux" - -LABEL="ofono_speedup_end" - diff --git a/xdg/autostart/snap-userd-autostart.desktop b/xdg/autostart/snap-userd-autostart.desktop deleted file mode 100644 index d0dd7a54..00000000 --- a/xdg/autostart/snap-userd-autostart.desktop +++ /dev/null @@ -1,6 +0,0 @@ -[Desktop Entry] -Name=Snap user application autostart helper -Comment=Helper program for launching snap applications that are configured to start automatically. -Exec=/usr/bin/snap userd --autostart -Type=Application -NoDisplay=true