If you're using adb in Linux and you get the error that adb devices shows this:
"???????????? no permissions", then here are two ways to fix it:
One is to add a special file to the udev rules to provide your normal user with permissions to access the devices file. Let me refer you to a good guide here.
The easy quick-fix is to start the adb server as root:
sudo ./adb devices
The device should show up now. After you're killed the server and run one command with sudo, the other commands should all work as a normal user. Otherwise you have a different problem where I don't know the fix.
By the way, if you don't even see your device in the list after adb devices, you probably forgot to turn on USB debugging on your phone in the Developer Settings.