12-10-2010 01:55 PM
Knowledge base has info on "Net Remote" for iPhone: http://seagate.custkb.com/seagate/crm/selfservice/
It's also known as "vsdremote" on iPhone.
Are there any android remote apps that are compatible? I've tried several, but none have worked thus far.
Can anyone confirm if the iPhone remote works out of the box with the stock freeagent theater+ 2.2 firmware? If so, that would mean there is some daemon running on the seagate, which should open up the possibility of other 3rd party apps talking to it. I've done some android development, and if the API was known, I'd be happy to try to create a comparible android app. A desktop remote would be pretty handy as well, and I'd be happy to work on one of those as well.
Assuming a custom firmware is not needed, and if the API is closed, can anyone on the board try it out and provide network traffic dumps? I'm betting it couldn't be too complex to decode. I don't have an iPhone so I can't test this myself.
12-10-2010 07:06 PM
This really sounds like a great idea! I'd like to help you out, but I don't know how.
However, I can fill you in on some details about the FAT+ that we've uncovered in the forum so far...
If your firmware is 2.20, you can access the shell by using telnet (usr: root, no password). The system is using squashfs so no resident software can be used--by that I mean the file system is an image that reloads after every restart, so nothing we put on there will stay (such as playdude's mods).
There is some effort going on to break this packaging scheme and to make a usable mod, but it's progressing pretty slowly.
Edit: I typed all that out without clicking your link! I thought you wanted to implement a new remote feature, but I guess the Seagate guys took care of it already. Anyway, knowing that an iPhone is compatible, we now know that there are ways to send remote control commands through the shell! Neat.
12-10-2010 07:57 PM
FWIW, playdude's mod has a bit in it that does the following:
/usr/bin/tail -f /tmp/remote.txt | ./RootApp DvdPlayer &
The web interface to send remote commands will then basically do:
echo "X" >> /tmp/remote.txt
Here's the keys:
" " ENTER (a space character)
I've been digging through it via telnet, and through the source, and through playdude's mod quite a bit. I'm no expert on these things, but I've had some ideas, and will probably be trying out some potentially bricking things soon :-) Hopefully I won't brick it.
If anyone can confirm the iPhone remote app works, then it should definitely be possible to make an android app and desktop apps to do the same. (I highly doubt they included any pre-shared-keys encryption or anything like that.) This seems like something seagate could even get behind, as there's no hacking, and it'd give them another feature to tout.
Offtopic, on the hacking side, there's a few promising leads. Maybe someone has already tried these...
* boot, mount a usb drive, remount rw, copy all OS/App data off from the telnet thing. Then use playdude's mod, and update nearly all files (careful not to update kernel, as new kernel includes secureboot requirement). Flash with updated image... that should give all the features of 2.2, plus the add-ons.
* try modifying the 2.2 FW to just remove secureboot and hashes. That used to work (1.45). If that still works, then we should be able to flash a stock 2.2 with the above created image. If it doesn't work, anyone with 1.55 or greater is more-or-less SOL. I'll probably be trying this in the next week, and if it works, will then replace /usr/local/Resource image first to see if that works (easiest to recreate), and go from there.
* another route... install optware into /usr/local/etc/opt. Some recompilation of the optware ipk's may be needed, along with config updates and ld.conf.so updates, but I see no reason why this wouldn't work. One could "mount -o bind" a usbdrive to somewhere in /usr/local/etc then. Reboots will suck, but an expect script from a desktop (there's one floating around in the forums already) could ease that pain.
* something that can be done now: "mount -o bind" to the /var/www directory. There's already a webserver running on 2.2 with cgi support. This would let you write whatever web interface you want for the thing (limited to compiled C, or shell, but it's a start). It has the same reboots-suck issue, but at least it'd make the webserver useful.
* beg for a custom startup script. The seagate guys obviously have someone with some compasion making the images, or they wouldn't have left telnet and the webserver open. Placing an empty shell script in /usr/local/etc that got called on startup would go a long way to appeasing the hacker in me. I understand locking it down to some extent, but that'd give us a hook into the startup (give us enough rope to hang ourselves with).
* crack the encrypted images. This might be against some rules, but something has to be decrypting them, and the key has to be on there somewhere. It wouldn't surprise me if it's in "install_a". I notice some potential strings in there, though I'll be surprised if they were so obvious to find (if anyone want to try: "npxXoudifFeEgGaACSncs[" and "*d7fwe87rH8fHe7rPP2*").
* custom RSS feeds... I believe it updates these via the network. I control my own DNS server... so could just poison my DNS and point it to my own RSS feed. The stock ones have <item>'s in them that imply there was an option to add feeds (click here to add).... I don't know why they removed that.
* might be possible to modify this proceedure to get a custom firmware on there: http://www.cs.cmu.edu/~ecc/dockstar-howto.html
* may be able to repurpose the process from /etc/reexec_init/init.script to provide a safer way to test new images. It copies stuff around, does some remounts, and calls pivot_root to get into the new system. If we have a full image on an external device, we should be able to pivot_root into it to test it works, and may be able to use the rest of that stuff + the "loader_a" calls from /etc/reexec_init/rcS to actually install it.
Anyway... that's all the further I've got with it. I'd be very interested if anyone can test out the iPhone app, cause I'd love to get a win out of all this digging :-)