Skip to main content

Why udev rules are needed

Linux restricts raw USB access by default. Without the correct udev rules your user account cannot communicate with the device over ADB or put it into EDL mode without sudo. Run the single command below. It writes both the EDL-mode and ADB-mode rules in one shot:
printf 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9008", MODE="0666", GROUP="plugdev"\nSUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9135", MODE="0666", GROUP="plugdev"\n' \
  | sudo tee /etc/udev/rules.d/51-qcom-usb.rules
Then restart udev:
sudo systemctl restart udev
If your device is already connected, unplug and replug the USB cable.

Manual setup

  1. Navigate to the udev rules directory:
cd /etc/udev/rules.d/
  1. Check whether the file already exists:
ls -l 51-qcom-usb.rules
  1. Create or open the file:
sudo vi 51-qcom-usb.rules
  1. Add (or verify) the following content:
# Qualcomm EDL mode
SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9008", MODE="0666", GROUP="plugdev"

# Qualcomm ADB mode
SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9135", MODE="0666", GROUP="plugdev"
  1. Restart udev:
sudo systemctl restart udev

Confirm plugdev membership

If your user account is not in the plugdev group, device access will fail even with correct udev rules.
Check your groups:
groups $USER
If plugdev is missing, add yourself:
sudo usermod -aG plugdev $USER
Log out and back in (or reboot) for the change to take effect. Reference: Android developer guide — hardware set up.