Slashdot Log In
Hacking The Tivo
Posted by
CmdrTaco
on Thu Jun 22, 2000 08:37 AM
from the now-that's-a-fun-way-to-void-your-warranty dept.
from the now-that's-a-fun-way-to-void-your-warranty dept.
K2 dug up a page where people are discussing hacking the Tivo (note to outsiders: Hacking is a good thing!) Essentially, they figured out how to mount the boot partition, and get a shell running off the serial port. It's a long page, and it doesn't start getting really interesting until you're a third of the way into it, but it opens up the door for fun ways of voiding your warranty like adding bigger hard drives... of course my dream is a way to suck MP3s over and use a few gigs of Tivo as a stereo component, but that'd take some doing.
This discussion has been archived.
No new comments can be posted.
Hacking the Tivo
|
Log In/Create an Account
| Top
| 132 comments
(Spill at 50!) | Index Only
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(1)
|
2
(1)
|
2
Things I'd like to see done to the TIVO (Score:5)
Does anyone know if TIVO has any of the above in the works?
New acronym! (Score:4)
nuclear cia fbi spy password code encrypt president bomb
Your Linux box offering the same services. (Score:4)
They released code under GPL.... (Score:5)
Re:No, hacking is not a good thing (Score:4)
Most of the replies to this are of the form, "Oh, you're thinking of cracking, and yeah, that's a bad thing. We're talking about hacking, and that's a good thing."
The poster has a good point: the distinction between 'good hack' and 'bad hack' is lost on the crowd, especially in the world of suits. None of the mainstream dictionaries describe this difference, or define 'cracking' in a computer context.
I think reverse-engineering and adaptation of things is very cool, and the inventor/tinkerer ethic is quite well-received in the world as a whole. However, that's not what 90% of the public thinks about when they hear the word 'hacker'.
Reality is perception. If 90% of the people don't see a distinction, then for all intents and purposes, there is no distinction. Even if the remaining 10% scream, whine, bitch, complain and sneer whenever the word is used.
sell these to Blockbuster (Score:4)
They should just get a TiVo for each blockbuster with an Ethernet port(no, wait, then it'd need DSL. how about a CD-ROM?) and then each Blockbuster could download the preview loop(maybe even have it go longer than 2 hours so employees wont go out of their minds from the reptition) and play it on the monitors all day.
Oh yeah, I smell an IPO here.
Why people are doing it: (Score:5)
Anyway, we've been working on this for a while, and the possibilities are staggering. The Tivo is essentially a PowerPC 50 Mhz or so, with a built in modem/ IDE interface card. Also on board are an MPEG encoder and decoder chips and a TV tuner. Very neat. The serial port is actually used to directly connect to DSS receivers, to change channels reliably.
To connect a shell to the serial port: take out the drive, mount it under linux (use bswap to do byte swapping). To mount it under linux, you probably have to recompile your kernel using the genhd.c from the tivo linux sources. Anyway, once you mount it you'll find several things on several partitions. You can then edit the startup rc.d's to put a shell on
There's a lot of cool swag going on here, but it'll be a while before good mods come out. The only thing I worry about is that some wanker will hack the thing to get around Tivo's service.
Making it not use Tivo's service at all would be extremely difficult. Making it use Tivo service wrongly, by giving the wrong serial or some such, would be easier, but they could crack down on the modified Tivo's and not let people with mods dialin anymore. That would suck. Plus, since Tivo updates the software from time to time, an update to a modded box could ruin the sucker.
Just some of my thoughts, and insights.
---
Yes, it is. (Score:3)
I think you're wrong on this.. Hackers are defined in the Jargon file (also well known amoungst the more tech-savvy) as the following:
"Hacking" the TIVO would appear to fit 1,3,and 7 at least. One other thing to keep in mind is the collosally important tradition of reverse-engineering that is at the heart and soul of all curious, intelligent people who don't care to (or can't afford to) accept without scrutiny an object/news story/law that is packaged up by some other group of people with their own motivations.
I'm getting a little carried away, but I think that being able to dissect something to see how it works is a fundamental cornerstone of democracy, which is why laws like the DCMA are so dangerous. Certain companies and certain governments would love it if their citizens were unable to make informed decisions. Careful analysis, whether it is on hardware,software,media,etc. is a basic check against manipulation.
So, whether people are hacking the TIVO for an intellectual challenge, to see if they can make more effective use of their money, or to reassure themselves that the device isn't doing anything more than they expect, the act itself is an excercise in analysis that should always be considered "a good thing".
Simply because some choose to do evil things with information does not make the pursuit of information evil. -OT
Here's the text of our announcement.. (Score:4)
Here's how to add a B drive to your TiVo by "blessing" it. This is
approximately how we did it. We've only done it a few times so far. We will
be refining the process. We simply wanted to get the initial information out
quickly.
This has only been verified to work on a few units so far. A HDR112 has been
upgraded to 52 hours with a 30 gig Quantum, another HDR112 has been upgraded
to 40 hours with a 20 gig Quantum, and a Sony 30 hour unit has been upgraded
as well with a Maxtor B drive, although the newer Sony/Phillips units have a
drive locking mechanism that makes it very hard to mount their A drives in a
non-TiVo Linux box.
WARNING: This modification is not "easy". You take all responsibility for
modifying your TiVo in this way. It does involve opening the case and
breaking the warranty sticker. Do not call TiVo support if you make a
mistake and break your TiVo. If you break it, you own both pieces. If you
mess up, don't expect us to fix it for you either. Maybe some day someone
will release a utility that will just bless a drive in 1 easy command on
your PC, but at this point, it's pretty tricky. It requires that you have
various technical knowledge about Linux and other software tools. You could
easily render your TiVo inoperable and possibly unrecoverable.
WARNING 2: There hasn't been a lot of testing so far on this procedure of
course. Mine seems to be working perfectly at 52 hours, but you must accept
the risk that something bad may happen down the road. We suggest that you
back up your original A drive in some fashion in case you make a mistake.
How to do that we leave up to you.
PDISK DISCLAIMER: We had to modify the source code to pdisk. Use it at your
own risk. There may be bugs. We're not responsible for any loss of data.
And PLEASE - be careful when you open the unit. It's power supply is
unshielded. Stay away from it.
In short - if you don't _understand_ what is going on below, don't do it.
Just being able to read a list of steps may not be enough at this point.
When I refer to hard drive partitions on the Linux box, I'll use hdX where X
is whatever letter is appropriate for that drive.
I used a Quantum lct10 30 gig drive (part number QML30000LB-A) that I bought
from www.onsale.com. My off the shelf Quantum seems to have the Quickview
and TiVo extensions in it, perhaps they all do. It is the same drive used in
HDR31202's and presumably the newer Sonys. Any drive may work as a B drive,
but I've only tried my Quantum. Also be aware - the version of Linux on the
TiVo doesn't seem to support drives larger than 33.8 gig. I don't know if
TiVo patched their older kernel to support them. Set the B drive's jumper to
slave.
You need to be able to access the original A drive and new B drive from
another Linux box. To do this on an x86 box, you need to integrate TiVo's
modifications to the Mac partition code. There are some patches on
ftp://ftp.curry.org/pub/tivo, ftp://ftp.rotorway.org/incoming/tivo, and
http://www.wasteland.org/tivo. Please, if anyone can mirror these few files
it would be very helpful. If we get hit too hard, we'll have to take the
files down. You also need to be able to turn on byte swapping for those 2
drives (hdX=bswap). I had the most luck with Linux 2.4.0-test1. You also
need to enable the Mac partitioning in the kernel.
If that all works, you'll see the TiVo's partitions on the A drive hooked to
your Linux box. There should be 11 of them. Mount partition 4 (hdX4)
somewhere, it's an ext2 filesystem. Edit the bottom of etc/rc.d/rc.sysinit
so it starts a bash shell on
first few sectors on the new B drive, with this command: "dd if=/dev/zero
of=/dev/hdX bs=512 count=32".
Get the hard drives back in the TiVo (both of em) and hook up the DSS serial
cable to your computer. You'll need a null modem adapter and gender changer
at the minimum. The terminal settings are 9600,8N1. You should get a bash
prompt shortly after the "please wait a few more seconds" screen. Run this
command: "/sbin/bootpage -D
B drive back up to the Linux box.
Now you need a modified version of pdisk which is available on the sites
I mentioned above. Compile it if necessary (it's in RCS format). With the
B drive in the Linux box, run "pdisk
i
w
y
q
Then run: "pdisk -d
C 2p 4M "Second MFS application region" MFS
C 3p 3p "Second MFS media region" MFS
x
m
3
x
w
y
q
That will create the new partitions. Shut down the Linux box now and mount
the B drive in the TiVo permanently. Turn the TiVo back on and get into the
bash shell on it again.
You need to mount the diagnostics partition next. Type this on your TiVo:
"mount -t ext2 -o ro
sequence to your new B drive: "/mnt/diag/genAddDiskTiVoID
"umount
That should do it. Check the system information and see if your capacity
increased. If not, you can try this one last thing that I don't believe is
necessary, but it might be: mount the diagnostics partition again, and run
"/mnt/diag/setkeys -globalkeys
That's it. If you want to now, you can edit the rc.sysinit to stop the bash
shell from starting (or if you were smart, you made a backup copy when you
started and can just copy the backup over the modified one).
Credit for figuring out this procedure goes to cc, Peter Creath, TivoTechie,
and Ron Curry.
6/21/00
Cool! I hacked my Tevos! (Score:3)
They figured out how to mod it...read (Score:4)
I got them from:http://www.avsforum.com/ubb/Forum6/HTML/0032
-K
Here's the post from: http://www.avsforum.com/ubb/Forum6/HTML/004437.ht
Here's how to add a B drive to your TiVo by "blessing" it. This is approximately how we did it. We've only done it a few times so far. We will be refining the process. We simply wanted to get the initial information out quickly.
This has only been verified to work on a few units so far. A HDR112 has been upgraded to 52 hours with a 30 gig Quantum, another HDR112 has been upgraded to 40 hours with a 20 gig Quantum, and a Sony 30 hour unit has been upgraded as well with a Maxtor B drive, although the newer Sony/Phillips units have a drive locking mechanism that makes it very hard to mount their A drives in a non-TiVo Linux box.
WARNING: This modification is not "easy". You take all responsibility for modifying your TiVo in this way. It does involve opening the case and breaking the warranty sticker. Do not call TiVo support if you make a mistake and break your TiVo. If you break it, you own both pieces. If you mess up, don't expect us to fix it for you either. Maybe some day someone will release a utility that will just bless a drive in 1 easy command on your PC, but at this point, it's pretty tricky. It requires that you have various technical knowledge about Linux and other software tools. You could easily render your TiVo inoperable and possibly unrecoverable.
WARNING 2: There hasn't been a lot of testing so far on this procedure of course. Mine seems to be working perfectly at 52 hours, but you must accept the risk that something bad may happen down the road. We suggest that you back up your original A drive in some fashion in case you make a mistake. How to do that we leave up to you.
PDISK DISCLAIMER: We had to modify the source code to pdisk. Use it at your own risk. There may be bugs. We're not responsible for any loss of data.
And PLEASE - be careful when you open the unit. It's power supply is unshielded. Stay away from it.
In short - if you don't _understand_ what is going on below, don't do it. Just being able to read a list of steps may not be enough at this point.
When I refer to hard drive partitions on the Linux box, I'll use hdX where X is whatever letter is appropriate for that drive.
I used a Quantum lct10 30 gig drive (part number QML30000LB-A) that I bought from www.onsale.com. My off the shelf Quantum seems to have the Quickview and TiVo extensions in it, perhaps they all do. It is the same drive used in HDR31202's and presumably the newer Sonys. Any drive may work as a B drive, but I've only tried my Quantum. Also be aware - the version of Linux on the TiVo doesn't seem to support drives larger than 33.8 gig. I don't know if TiVo patched their older kernel to support them. Set the B drive's jumper to slave.
You need to be able to access the original A drive and new B drive from another Linux box. To do this on an x86 box, you need to integrate TiVo's modifications to the Mac partition code. There are some patches on ftp://ftp.curry.org/pub/tivo, ftp://ftp.rotorway.org/incoming/tivo, and http://www.wasteland.org/tivo. Please, if anyone can mirror these few files it would be very helpful. If we get hit too hard, we'll have to take the files down. You also need to be able to turn on byte swapping for those 2 drives (hdX=bswap). I had the most luck with Linux 2.4.0-test1. You also need to enable the Mac partitioning in the kernel.
If that all works, you'll see the TiVo's partitions on the A drive hooked to your Linux box. There should be 11 of them. Mount partition 4 (hdX4) somewhere, it's an ext2 filesystem. Edit the bottom of etc/rc.d/rc.sysinit so it starts a bash shell on
Get the hard drives back in the TiVo (both of em) and hook up the DSS serial cable to your computer. You'll need a null modem adapter and gender changer at the minimum. The terminal settings are 9600,8N1. You should get a bash prompt shortly after the "please wait a few more seconds" screen. Run this command: "/sbin/bootpage -D
Now you need a modified version of pdisk which is available on the sites I mentioned above. Compile it if necessary (it's in RCS format). With the B drive in the Linux box, run "pdisk
i
w
y
q
Then run: "pdisk -d
C 2p 4M "Second MFS application region" MFS
C 3p 3p "Second MFS media region" MFS
x
m
3
x
w
y
q
That will create the new partitions. Shut down the Linux box now and mount the B drive in the TiVo permanently. Turn the TiVo back on and get into the bash shell on it again.
You need to mount the diagnostics partition next. Type this on your TiVo: "mount -t ext2 -o ro
That's it. If you want to now, you can edit the rc.sysinit to stop the bash shell from starting (or if you were smart, you made a backup copy when you started and can just copy the backup over the modified one).
Credit for figuring out this procedure goes to cc, Peter Creath, TivoTechie, and Ron Curry.
6/21/00
Re:New acronym! (Score:3)