adb shows devices as offline but system_profiler detects the devices fine I have several devices (mix of tablets and phones) connected to my mac mini. Some of them are connected directly while some are connected by a good quality hub. 

$  system_profiler SPUSBDataType | grep -i serial
   Serial Number: 015d2109ed4c0c18
     Serial Number: 4dfcbd091f3a5023
     Serial Number: 000ee30e7de4cf
     Serial Number: 4100018996d37000
     Serial Number: 0123456789ABCDEF
   Serial Number: FA35FW901634
   Serial Number: 2021bbaa


For sometime, adb detects all these devices fine.

$ adb devices
List of devices attached
4100018996d37000        device
0123456789ABCDEF        device
000ee30e7de4cf  device
4dfcbd091f3a5023        device
2021bbaa        device
FA35FW901634    device
015d2109ed4c0c18        device


But with time, these devices goes in offline state irrespective of the way they are connected (direct or via hub). Even when these are in offline state, as reported by adb, system_profiler still detects them fine. This means that Mac mini is still seeing these devices but adb is not.

I am using original cables that came with the phone. Why do they go in offline state? Only thing that get the devices back is physically re-connecting the devices. Can anyone help me with this?
We've been looking for an answer to this for some several months. Unfortunately, the most hopeful response I've seen is this one, which suggests moving the Mac Mini to Linux, whose USB stack is described as 'more forgiving':

https://stackoverflow.com/questions/15727314/resetting-android-device-when-it-goes-to-offline-mode-during-automation

We're going to try shifting to a spare (PC-based) Linux box for the time being; I'll try to remember to report back whether it's more reliable.