View Full Version : Modified UTV Browser File
RandCfilm 10-08-07, 08:35 PM This got started from this thread (http://www.avsforum.com/avs-vb/showthread.php?t=915902). This is for those willing to crack open their UTV as many of have. If you are up for hot swapping the UTV drive here is a BrowserData.image that I modified to allow recording of channels regardless of time or authorization status. This only allows the setting of record or remind status, if you do not subscribe or are not authorized to view the channel the unit will not record due to lack of video signal. I have also modified it to display the buffer remaining while not live in both active TV channel and while recording during playback in My Shows. Attached are a few pictures to show what the screens look like, I did this on my spare unit so be sure to make a backup of the original BrowserData.image. I do have the original if needed.
You will need WinHex (that's what I use) or another disk editor. Use the hot swap method to connect the UTV drive to your PC.
Once connected open WinHex
Select Tools ->
Open Disk ->
Under Physical Media
Select a Hard Drive -> it probably will be the last HD listed
Under Position
Select go to sector ->
enter 631811 then click OK
If you FSNo on the third line in the text column, your active image is in the first location.
If you do not see FSNo here
Under Position
Select go to sector ->
enter 697347 then click OK
You should see FSNo on the third line in the text column.
If you do not see it here, select a different Physical Media drive and repeat the process to find the active image.
************if active image in first location*********
Under Position
Select go to sector ->
enter 640880 then click OK
on the forth line in the text column you should see owBrrDsea.at
If so, Under Tools
Select Disk Tools ->
Clone Disk ->
Select BufferBrowserdata_071008.image as the source file
Select the Destination Disk, which is the disk you are looking at
make sure "Copy Entire Sector" is checked
Enter Start Sector of 640880 ->
then select OK, you will have a few warning screens.
You will get a message stating 20380 sectors copied, shut down PC, reinstall drive into UTV and power up.
Now you can go and schedule your advance guide recordings.
****************active image in first location***************
************if active image in second location*********
Under Position
Select go to sector ->
enter 706416 then click OK
on the forth line in the text column you should see owBrrDsea.at
If so, Under Tools
Select Disk Tools ->
Clone Disk ->
Select BufferBrowserdata_071008.image as the source file
Select the Destination Disk, which is the disk you are looking at
make sure "Copy Entire Sector" is checked
Enter Start Sector of 706416 ->
then select OK, you will have a few warning screens.
You will get a message stating 20380 sectors copied, shut down PC, reinstall drive into UTV and power up.
Now you can go and schedule your advance guide recordings.
****************active image in second location***************
My image was in the first location, I did the calculation of where the second image location should be, if you find something different let me know and I can check it out. My active units images are in the second location but I would have to take them offline to swap drives and confirm my locations.
get the modified browser data file here (http://download.yousendit.com/DAAEF88B4182774D), link is good for 7 days.
Fix: Located bad full screen image and replaced with good image
get the modified browser data file here (http://download.yousendit.com/833C450F36446BF1), link is good for 7 days.
Great Job RandCfilm!!!
As soon as I get a chance, I will try this on one of my utvs. I've been wanting something like this for as long as I can remember.
Thanks again!
RandCfilm 10-08-07, 10:54 PM Great Job RandCfilm!!!
As soon as I get a chance, I will try this on one of my utvs. I've been wanting something like this for as long as I can remember.
Thanks again!I hope it works like you wanted, I actually lost some sleep last night trying to figure out the My Shows buffer.
I have a spare system that I'm trying this on, and the first thing I notice is that when it comes up and is saying getting guide there is a different color band at the bottom of the screen.
I had hooked it up to the sat and put in a card and so I could get to the home screen on channel 100. This screen also has this different color background at the bottom. I figured I did something wrong, so I rewrote the 3.8 image, powered up, the screen was ok, then I went and applied your browserdata file again, and once more on power up the bottom 15% of the screen has a different background.
Also, when I did have it on the home page and channel 100, I saw it say Buffer:live but it never indicated anything in the buffer. Even w/o mating the card to the utv, it would still let me use replay, ff, rew, etc. There was in fact at least a couple of minutes in the buffer after I did a rewind, but info still said buffer:live.
Is this what you see?
BTW, I found that if I swap my ide cable from the usb enclosure with power on, it works. So, the extra step I had mentioned in another thread is not required. It must be that only on usb enclosure powerup that it resets the drive so it won't read/write.
RandCfilm 10-10-07, 11:34 PM I have a spare system that I'm trying this on, and the first thing I notice is that when it comes up and is saying getting guide there is a different color band at the bottom of the screen.
I had hooked it up to the sat and put in a card and so I could get to the home screen on channel 100. This screen also has this different color background at the bottom. I figured I did something wrong, so I rewrote the 3.8 image, powered up, the screen was ok, then I went and applied your browserdata file again, and once more on power up the bottom 15% of the screen has a different background.I am using my own modified backgrounds, I thought I noticed something odd in the pictures but I figured it had to do with using my monitor instead of TV. I will look into that.
Also, when I did have it on the home page and channel 100, I saw it say Buffer:live but it never indicated anything in the buffer. Even w/o mating the card to the utv, it would still let me use replay, ff, rew, etc. There was in fact at least a couple of minutes in the buffer after I did a rewind, but info still said buffer:live.
Is this what you see?
Card from another machine will let you ff, rew, etc.. should not let you record though, mine would not.
Time/buffer remaining displaying in the Home page ? I have my unit bypass the home page at start up so I will have to look at that also.
The info screen refreshes approximately every 7 second, so it will not instantly show buffer time when you skip back.
I have to work all day Thursday and most of Friday, I will look into the issues as soon as I can.
Before you spend too much time on this, let me try to build my own image using just the changes in channelbar.js. I don't need the nfl record function, and I'd like to try my hand at building the image myself.
I'll let you know what I get.
Without doing a refresh services, the only active screen I can get to is the guides and home. That might have something to do with it. The last time I did the refresh services it didn't work immediately as I thought it would, so I shyed away from trying that at this point.
And one other thing, it shouldn't make much difference, but when I use a differences program, I see a lot of changes that look like it just removed one tab or space between groupss, e.g. <xxx><yyy> in one file, while <xxx> <yyy> in the other. (UPDATE: I figured out how to get my diff program to ignore these, and found some unmatched " s which was making it difficult to compare)
I did a compare between 3.7 and 3.8 and these kinds of changes didn't appear. I wonder if you have some sort of editor of html that might reorganise these components.
I did a complete build and I see the same "problem" with the bottom of the screen.
I started by getting a 3.8 browser image file and used utvimage to unpack to a directory. I then used utvimage on your image file and did a diff. I used your changes in ChannelBar.js and TvInfoPanel.css. Then I rebuilt the image.
I guessed that I needed to zero fill and extend the file out to an even sector, else winhex would complain of an invalid size. I zero'd them and then did the 32 and 16 bit swaps.
I can see how this takes hours to do, lots of little manual steps, easy to forget one or make a mistake.
Ok, that last step didn't work, so I went back to all of your mods and just changed some lower case words to upper case so I could tell which section had executed.
It runs in the first if block, isOnAirProgram, the else with DVRManager.isLive being true. So, I'm just seeing Buffer Live. I probably would need to refresh services and run this unit for real and do some recording into myshows to see anything different....
update:
Once I did the refresh servcies, it's working. The code is no longer in the isOnAirProgram. I guess that w/o an activated access card, the mode is considered on air, not "dvrChHasProgram". Cool.
The only case I haven't yet tried is a full recording from the shows beginning. But I suspect there's not really much diffference between starting a record on a show that's already started vs. one that has not started - as far as the buffer numbers go.
The funny looking screens are mostly on the setup pages, search, and the home pages. The guide and myshows is fine. It's still perfectly usable though, it just looks funny with a different shade of background at the bottom.
And, with all the hot swapping to a usb drive, I now no longer know a procedure that works all the time. I've had to just keep trying, and after 2 or 3 tries, it works. It's still easier (for me) to do this with a usb drive enclosure than the other bios ide method. I also have my spare unit pretty much spread eagle, as I have an extension ide cable, power cable, removed the housing around the drive, and removed the front panel from the case. This unit has a broken tuner so it's perfect for hacking around.
RandCfilm 10-11-07, 08:39 PM rocket - it looks like you have been busy today, I know I have, and exhausted to boot. I thought I would give this a quick glance, I don't have the energy or concentration to trouble shoot now.
And one other thing, it shouldn't make much difference, but when I use a differences program, I see a lot of changes that look like it just removed one tab or space between groupss, e.g. <xxx><yyy> in one file, while <xxx> <yyy> in the other.
I did a compare between 3.7 and 3.8 and these kinds of changes didn't appear. I wonder if you have some sort of editor of html that might reorganise these components.I use TextPad as my editor, the spaces are probably just the way I format things of my personal habit. I had many lines added while finding the exact information I needed to use then removed my comments and extras lines of code. The spaces are not going to change the program flow, so don't worry about them.
Once I did the refresh servcies, it's working. The code is no longer in the isOnAirProgram. I guess that w/o an activated access card, the mode is considered on air, not "dvrChHasProgram". Cool.I'm tired so I could be thinking wrong. isOnAirProgram means you are watching the program on the channel it is airing on. dvrChHasProgram means you are watching the program from My Shows. If you are recording the show and start playback from My Shows the dvr has the program even though you are recording.
The only case I haven't yet tried is a full recording from the shows beginning. But I suspect there's not really much difference between starting a record on a show that's already started vs. one that has not started - as far as the buffer numbers go.From My Shows the buffer will only be displayed if you are currently recording the show you are watching from My Shows. If the show is not recording then the standard time remaining message wile be displayed, since there is no more live buffer to get to.
The funny looking screens are mostly on the setup pages, search, and the home pages. The guide and my shows is fine. It's still perfectly usable though, it just looks funny with a different shade of background at the bottom.I have found the source of the screen problem. Please look in your image to see if it's just mine or in the file, my 3.7 image has the same problem. It is in BrowserData\TV\Images the file is VideoStill.gif, the file shows no thumbnail and will not open in photo program. Check on this and let me know what you find. I will have to see if I have a 3.5 image to see if it has the same problem.
It sounds like the only thing left is the screen, let me know if there is any thing else.
Yeah, that image is messed up exactly how I see it on the screens.
Spooky to actually see that picture. Never noticed it as a single picture before. Pieces of it show up all over.
It's a Mystery: My release3.8 unpacked has the same bad looking file. But what's my other utvs showing, since I got my 3.8 copy off my drive.
This sounds more like a packing problem. I wonder if the unpacker we both probably use is messing up that file. Strange.
RandCfilm 10-12-07, 08:28 PM Yeah, that image is messed up exactly how I see it on the screens.
Spooky to actually see that picture. Never noticed it as a single picture before. Pieces of it show up all over.
It's a Mystery: My release3.8 unpacked has the same bad looking file. But what's my other utvs showing, since I got my 3.8 copy off my drive.
This sounds more like a packing problem. I wonder if the unpacker we both probably use is messing up that file. Strange.I don't understand how it displays properly from the factory image, I extracted it from the drive and basically it does not format correctly at the end. I did find a good image on my PC so I have updated the file and will attach image here if you want to insert into your own files.
RandCfilm 10-12-07, 08:29 PM updated the file in the first post due to full screen image problem. New link good for 7 days.
I found this quote from tomrom on the other board, which is where I dloaded the unpacker I use:
"here is utvimage. it has some problems when dumping such as image trunication. "
That seems to be precisely what we are seeing. The image is getting truncated. Is this the one you use?
RandCfilm 10-12-07, 11:36 PM I found this quote from tomrom on the other board, which is where I dloaded the unpacker I use:
"here is utvimage. it has some problems when dumping such as image trunication. "
That seems to be precisely what we are seeing. The image is getting truncated. Is this the one you use?Yes, UTVImage.
I did a quick grouping if the .gif images and only 2 did not show thumbnails (shadow.gif and VideoStill.gif). As I posted earlier, I located the file on the disk and extracted it direct, not using the dump form UTVImage. The file direct from the disk does not end properly, so I don't think it's a problem with UTVImage since it is extracting what is on the disk. I can't answer why the full screen is ok before any changes.
Isn't the file inside a compressed image on the disk? Wouldn't you need to decompress it manually or something?
Anyway, I got your replacement file and and built a new browserdata image, but it's bigger. So, I guess I can't just blast it onto the disk at the offset you gave previously w/o clobbering something.
Do you happen to have the command to build the 3.8 file from the 3 images? Or am I missing something here?
RandCfilm 10-13-07, 10:56 AM Isn't the file inside a compressed image on the disk? Wouldn't you need to decompress it manually or something?I'm not totally sure on that, I extracted a few images from the disk and the thumbnails showed the picture. I not sure how the compression thing works exactly.
Anyway, I got your replacement file and and built a new browserdata image, but it's bigger. So, I guess I can't just blast it onto the disk at the offset you gave previously w/o clobbering something.
Do you happen to have the command to build the 3.8 file from the 3 images? Or am I missing something here?
The file might be a little larger but as long as you do not go over 10,442,752 bytes in file size you will not run into the storage image. My custom image is 10,439,168 and it does not cause any problems.
Ahh, when I went to replace the image, I forgot to delete the first one, so I had 2 copies. Now I'm smaller again.
I'll be trying it out later.
I then unpacked again with utvimage and compared the 2 directories. This time all the *.gif files matched, but the extra or missing embedded spaces between text like <xxx><yyy> showed up all over the place. So, the bottom line is pack and unpack are not equal. I don't know what compression technique is being used, but most compression algorithms look to compress spaces, and maybe that's what's happening here.
BTW, let me give a plug for the best differences program I've ever seen, "beyond compare" found at http://www.scootersoftware.com/ and it lives up to its name (not free - $30 - but you can get a 30 day trial).
It was able to compare the .html files for "sameness" while ignoring the extra embedded spaces. It also found there are some quoting anomolies.
For example, there's things like, xxx='000000'" which leaves a trailing double quote after the single quote. This d-quote is not matched with another double quote. I found at least 15 cases of this identical quoting issue - so I suspect this is another pack/unpack bug.
As to the backround image in question, your replacement image is different than what appears on a normal 3.8 image. There's another circle bottom right (if you choose menu then go to search, look near the done button). Your image seems to be one that is stretched from the partial image that comes out of utvimage.
Anyway, I could analyse this to death if I'm not careful :D - well this is what I do for a living so it's hard to stop thinking.
I'll let you know how this turns out.
RandCfilm 10-13-07, 05:34 PM As to the backround image in question, your replacement image is different than what appears on a normal 3.8 image. There's another circle bottom right (if you choose menu then go to search, look near the done button). Your image seems to be one that is stretched from the partial image that comes out of utvimage.
I originally thought the same thing, that I had stretched the VideoStillTV.img. After analyzing the image, it is kind of hard to stretch something and get the added circles you are referring. I have been trying to remember where I got this image from, the date is like 3-8-2004. Maybe I pulled the image from 3.5, I have not got around to looking if I still have an image. At this point at least the image is full and not cut off, and as long as we do not loose the image were good.
I built the new browser image with new videostill and installed on my spare system. It works just fine. I'm recording some of the football games today, so I can't switch in the spare to fully test, but I think this is now ready for prime time.
So... I've been looking through the code for more changes I'd like to make. One would be to make the default extended record time on sports be greater than 30 minutes when doing the one-click record. I can find all the screens that have the +/- in options to extend but can't find the 30 minute default value. Maybe it's in a dll or something.
The other thing I've wanted to do was to change some of the actions when using a key on the remote. For example, I've always wanted a quick way to delete the current show I'm watching. I was thinking that the record button during playback could go right to the erase confirm screen. I haven't been able to find anything in the brower code that seems to deal with keycodes and what actions to do however.
itsmeandyou 10-13-07, 07:41 PM Ages ago, we used to use MHD3.exe or something like that to clear a drive with the computer. I noticed that that program will no longer work. Is there anything similiar to unlock a drive ??
Thanks
Doc
Here are the instructions, have you followed them:
To use this program
1: make a dos boot disk.
2: unzip mhd3.zip and copy mhd3.exe to the boot disk.
3: power down computer and hook drive into primary or secondary ide channel. It can be master or slave, and can be after a already installed drive such as a master cdrom.
4: Boot with dos disk.
5: run mhd3
6: select desired drive. The installed drives are listed 1 to 4.
7: Program will show what it is doing and then display a '.' every 10 seconds until done.
8: do not power off while running or you will have to start all over again.
9: program will tell you when it is finished.
Wow, I just installed RandCfilm's browser file on my Main 110hr machine. I just love being able to know the buffer ahead size. I'm getting good at this, I did the upgrade in about 10 minutes. All my shows, setttings, etc. are all there. The only change I made was to put a blueish tint in VideoStill file using photoshop, so I can tell at a glance which UTV i've switched to (have 2 on a video switcher).
This upgrade is as good as the 3.8 upgrade in new features. Maybe we should be sending our $10 utv fees to RandCfilm instead of MS.:D
itsmeandyou 10-14-07, 12:18 AM for some reason I was unble to unlock 3.8 version, yet MHD3 was able to unlock version 3.7. Has anyone verified that this works with 3.8 ?? Also, I believe there was a MHD3.1 version.
Thanks
Doc
google "ultimatetv hacking" That forum has a sticky on your question, and there's both versions listed.
RandCfilm 10-14-07, 01:03 PM Wow, I just installed RandCfilm's browser file on my Main 110hr machine. I just love being able to know the buffer ahead size.Thanks rocket, glad to know my lost sleep for the My Shows buffer went to good use.
Blue tint in the background images, interesting, I made my background images blue in color, except for the guide which I made black. You could be in for trouble if you start thinking like me. :D
Sorry to have to mention this, but the same issue with how much time is recorded so far seems to be biting us. However, I think I may have nailed down when this happens.
If there are 2 shows recording, the one that started recording first, is correct, but the second show is not.
I have verified this a couple of times now. If the show says "recorded" but the time shows a partial time, then your code does not show the buffered amount because you are testing the same variable, and that variable has the wrong value in this case.
I can tell which code branch it goes through, and it's in the
if(dvrChHasProgram)
....
....
str = "Time remaining\n" + strA;
if(isCurrentlyRecording) <- this tests false
I had been poking around trying to see how this gets set, but I'm afraid it's over my head a bit. I did look at tvchannelbar.html which seems to have something to do with it. I got to looking at how it calls the function Initialize but then got lost. There are comments about being on the channel etc. So, it might be that when we are recording 2 shows at once, there's a notion of which channel we are on, even if we are actually on channel 1020.
RandCfilm 10-14-07, 03:21 PM Sorry to have to mention this, but the same issue with how much time is recorded so far seems to be biting us. However, I think I may have nailed down when this happens.
If there are 2 shows recording, the one that started recording first, is correct, but the second show is not.
I have verified this a couple of times now. If the show says "recorded" but the time shows a partial time, then your code does not show the buffered amount because you are testing the same variable, and that variable has the wrong value in this case.
I can tell which code branch it goes through, and it's in the
if(dvrChHasProgram)
....
....
str = "Time remaining\n" + strA;
if(isCurrentlyRecording) <- this tests false
I had been poking around trying to see how this gets set, but I'm afraid it's over my head a bit. I did look at tvchannelbar.html which seems to have something to do with it. I got to looking at how it calls the function Initialize but then got lost. There are comments about being on the channel etc. So, it might be that when we are recording 2 shows at once, there's a notion of which channel we are on, even if we are actually on channel 1020.I will Lock at this shortly, I hardly (if ever) watch anything live so I really have not used this past testing and playing around a little after I installed on my active units.
If the show says "recorded" but the time shows a partial time
Key word you used here is "recorded", if the show is not recording (ie finished recording), then there is no more "live" buffer to get to so the only thing to show is just time remaining. However the modified code may have jumped something. I will go check this out an report back.
RandCfilm 10-14-07, 03:49 PM OK, I see where it is saying recorded even while it is recording. The buffer while recording is OK as long as it is the channel you are using in the "active" tuner. If you swap tuners and bring the other one to the full screen making it the active tuner then the buffer time shows for that recording. I will look into this later, so it appearers that even though the second tuner is recording but is not the active channel it does not recognize it as (isCurrentlyRecording). If you think it is different please post what you think is going on.
Ok, I see what you mean. Whichever show one tunes to live will become the one that says recording when going back to myshows and playing that recording.
It's seems as if there are 3 playback positions, one each for the 2 shows that are "recording" in myshows, and one more for the one tuned to live. Of course, you can only tune live to a channel that is also recording, otherwise you'd need 3 tuners. So, it does become a bit confusing.
I was thinking, though, that when they get the second one wrong, it shows the amount recorded so far, even though it says recorded (but it's still recording). If you know where the code sets the amount recorded, then the amount buffered would be
(amount recorded so far) - (the current play position).
So, even if they don't get the right label, it might be possible to detect this and still compute the right buffer size.
BTW, did you intend to change the times to uppercase? I was going to change mine back to lower case as it's a tad easier for me to see the numbers when the letters are smaller, as in:
1hr 31min
vs.
1HR 31MIN
But don't sweat this, I can change this myself if you prefer the upper case.
RandCfilm 10-14-07, 06:15 PM BTW, did you intend to change the times to uppercase? I was going to change mine back to lower case as it's a tad easier for me to see the numbers when the letters are smaller, as in:
1hr 31min
vs.
1HR 31MIN
But don't sweat this, I can change this myself if you prefer the upper case.Not intentionally, it was an over site on my part. Here is how to fix it.
There are two strings I added strA and strB. Under each str add the appropriate line of code.
strA = strA.toLowerCase();
strB = strB.toLowerCase();
RandCfilm 10-14-07, 09:20 PM I think this should work for your background recording problem.
if (ShowApproxRecordedSeconds(theProgram) < DVRManager.getMpegDuration(mpegID))
isCurrentlyRecording = true;
// window.message("len = " + len + " restart = " + restart);
if (DVRManager.isPlaybackFinished) {
str = "This show is over";
} else {
add the blue code to you file and rebuild image.
|
|