So, the plug came out of the back of the CI server…and at the same time 2 of the Samsung phones upgraded themselves and I had switched from one usb hub to another and replaced the usb cables….and suddenly I couldn’t see the Samsung S4 mini or the Samsung S5 via adb and all my calabash automation tests in jenkins were failing and the world was collapsing around my ears…for at least an hour! Was it the hub, the cables, the restart, the upgrade?
After a good 15 minutes stopping and restarting adb and plugging and unplugging cables I decided that it must be something to do with the new ports I was using…so I ran:
and could see the devices connected – so the usb ports were working.
So then I ran :
$ ls -l dev/bus/usb/001
and for some reason plugdev was only showing for one of the devices through adb write permissions were missing:
crw-rw-r-- 1 root root 189, 128 Apr 8 11:46 001
crw-rw-r-- 1 root root 189, 129 Apr 8 11:46 002
crw-rw-rw-+ 1 root plugdev 189, 135 Apr 8 16:59 008
crw-rw----+ 1 root audio 189, 137 Apr 8 16:16 010
So, what had changed…I checked my android.rules file; checked that ubuntu hadn’t upgraded after the restart and then double checked the phones where I discovered a new informational message…’connected as a media device’!!
Well, somehow both samsungs had connected as Media Devices when they restarted and they need to be connected as Camera devices – so I changed both phone to connect as a Camera device and as soon as I made the change I could see them when i ran
$ adb devices
and all my jenkins jobs were able to run again.