When `adb` shows devices as `????????????` it's usually a permission problem and the usb device file. Your `udev` rules doesn't seem right. Make sure that you have udev configured to something like this:


    SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"

Where `04e8` is Samsung's USB Vendor ID.

Under Linux there is also an `adb_usb.ini` from the SDK where you have to add the vendor IDs:

`~/.android/adb_usb.ini`


    # ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
    # USE 'android update adb' TO GENERATE.
    # 1 USB VENDOR ID PER LINE.
    0x17ef
    0x1949