
Making games for the U10 is fun, but I also want to be able to customize the Flash Lite UI that runs the rest of the device. I’ve gotten pretty far, so I thought I’d share what I learned in hopes that others are looking into this and can share what they have learned.
The Problem
The Iriver does a really good job of protecting its UI SWF. When you hook the device up to your computer you can see some directories, but there must be some that are simply not exposed. There are two main directories on the device, media which holds the DRM audio/video and can’t be modified except through Windows media player. The other directory is Data that can be modified as you wish.
The Vulnerable Spot
When I got my U10, one of the first features that made me raise an eyebrow was picture viewing. You use a tool to transfer JPGs from your desktop to the device where they can magically be loaded. The thing is that as I have really good cause to know from my traffic cam viewer and Flickr tool, Flash Lite 1.1 can’t load JPGs. Looking at the files on the device (/data/system/pictures/) The files are .JFU and .JTH, which I assume stand for “JPG Full” and “JPG Thumbnail.”
If you transfer any of these files to your desktop and change the file extension to .SWF, the Flash Player can run the file. The image viewer works in a very similar way to my traffic cam viewer. Instead of loading a JPG, it relies on an external solution to wrap the JPG as a SWF. This isn’t a server solution like mine though. The transfer tool does the conversion as part of the transfer process.
Knowing that, it is pretty easy to make your own Flash Lite 1.1 files and start loading Flash files into the UI. The easiest way I’ve found is to export your file and take a screen shot and save it as a JPG. Move that file over using the transfer tool to make the placeholder (and thumbnail file), then replace the JFU with your SWF remembering to alter the file extension. When you disconnect your U10 and it re-boots, go to Settings>Extra>Background>Pictures>(your image directory) and select the thumbnail for your SWF.
Introspecting the UI
With a Flash background you can do some pretty cool design things, but not a whole lot technically. To do more, it is a matter of finding out more about the Flash file that loaded the background. In Flash 5 and higher, there are a lot of tools that let you introspect into a parent SWF that another is loaded into. With for...in you can find everything you could ever need to know.
Back in the reality of Flash Lite 1.1, we have a much more limited set of tools. The best tool in our small arsenal is _target. For the background it is /bgImg/photo/photoDown. It doesn’t get us as far as I’d like since you can’t find out what else is in each of the timelines. Luckily there are other places that the images appears. Some of these other locations are a bit more revealing.
Full SWF as the Background:
/bgImg/photo/photoDown
Thumb SWF in the Background Selector:
UI in landscape:
/all/currentMenu/setupPhotoList/listBox/list2/photo
UI in portrait:
/all/currentMenu/setupPhotoList/listBox/list3/photo
Full SWF viewed in the Photo Viewer:
/all/nextMenu/photo/photo/photoDown
Thumb SWF in the Photo Selector menu:
UI in landscape:
/all/currentMenu/PhotoList/listBox/list2/photo
UI in portrait:
/all/currentMenu/PhotoList/listBox/list3/photo
Also using _currentframe and _totalframes can reveal a little, but I haven’t had much chance to play with sending the various movie clips to different frames. The root does have 70 frames though, so there could be some interesting things there.
I’ve been spending my time exploring the other timelines, specifically the menu timelines. Strangely, every time I try to modify /all’s properties, it really screws things up. I have no idea how, but setting the _y of the movie clip, often makes the buttons non-functional and can even shift the UI into portrait mode. No clue why. There are however some elements off-stage if you want to take a look.
Just be careful, you can seriously screw up your ability to interact with the device. If you mess things up you can still generally connect up to your PC and replace your malfunctioning file. When it asks you whether to do power only or power and data, you may have to try a variety of buttons.
If you get seriously screwed up, you can always download the firmware update tool from iRiver and reformat the device (eep!).
Digg this!
March 6th, 2006 at 3:46 am
[…] tched your criteria.
Search:
Latest posts March 6, 2006: H4X0R1Ng the U10 Interface
February 28, 2006: Flash Forw […]
March 6th, 2006 at 2:34 pm
[…] 10 A couple of really great U10 ‘hacking’ posts over on Justin’s blog: H4X0R1Ng the U10 Interface U10 Dots Background Filed under […]
March 7th, 2006 at 8:26 am
Really great U10 hacks. Thanks for sharing.
Luciano
March 30th, 2006 at 8:27 pm
H4X0R1Ng the U10 interface
Justin writes - “Making games for the U10 is fun, but I also want to be able to customize the Flash Lite UI that runs the rest of the device. I’ve gotten pretty far, so I thought I’d share…
March 31st, 2006 at 2:20 am
[…] 2004 Game Programming: CD source March 6, 2006: U10 Key firing U10 Dots Background H4X0R1Ng the U10 Interface
February 28, 2006: Flash Forw […]
April 2nd, 2006 at 8:27 pm
[…] 2004 Game Programming: CD source March 6, 2006: U10 Key firing U10 Dots Background H4X0R1Ng the U10 Interface
February 28, 2006: Flash Forw […]
June 27th, 2006 at 5:17 am
is there any chance to charge the bettery not only per computer ?
July 12th, 2006 at 1:15 pm
Great job, i want to work with you on further UI changing and even creating custom firmware.
July 18th, 2006 at 3:15 am
hey, guys I’ve made my own bg’s, very nice, check this thread in misticriver forum:
http://www.misticriver.net/showthread.php?t=44323
August 4th, 2006 at 3:44 am
justin, is this blog alive? why arent you in comments?
August 4th, 2006 at 11:36 am
Hi andy, sorry I didn’t see your comments. I installed a new spam trapping plugin for my blog and didn’t realize that it was silently auto-approving comments that were not spam. I usually read comments through the notification my blog sends my email address. Send me an email at blog@justin.mailshell.com. I would like to talk to you more about your UI ideas!
September 24th, 2006 at 7:30 pm
[…] λήρη οδηγό για την διαδικασία μπορείτε να βρείτε εδώ .Προσόχη γιατί η διαδικασία απ […]
November 20th, 2006 at 1:51 pm
Hello Justin,
This is really interesting because I am waiting for my iRiver Clix 4GB which should arrive in about a week or so.
I suppose hacking the user interface of the Clix is pretty much the same with Flash Lite 2.0 running this device.
OK, the u10 and the Clix do have flash support and I will see rather soon how this works.
But, as far as I know, the new iriver s10 does not offer any flash support at all, even if the user interface seems to be Flash driven (1.1 or 2.0).
Do you think it should be possible to run Flash movies (.swf applications) on a device like the s10 with no ‘official’ Flash support?
I mean, it makes a difference if you ‘just’ place a camouflaged Flash file in the background as a background picture or if you want to have an option to start a Flash application in a more decent way.
Do you think one could make use of a not so much loved (or needed) frame in the timeline, replace it with other content, to give flash applications an ‘official’ starting point?
Unfortunately I do not know whether the ARM processor used in the s10 (Samsung KGA0E000BA / E201 / 622ARM / FU0337AA) is good enough for Flash Lite 2.0 performance.
Maybe iRiver just decided not to offer Flash support for the s10 because of a smaller processor running the device due to the very small size of the player.
I would really appreciate to hear your opinion about this.
Yes, of course, it is absolutely ridiculous to run Flash Lite 2.0 applications on a 96 x 128 px screen - but this could be great fun as well.
Best regards from Bonn, Germany
PS: Was ‘Church’ a kind of honourable title added as a suffix to your name because you were Rich Media Evangelist?
March 1st, 2007 at 3:44 pm
“Yes, of course, it is absolutely ridiculous to run Flash Lite 2.0 applications on a 96 x 128 px screen - but this could be great fun as well.”
I have to agree…lol didnt turn out great..
March 8th, 2007 at 2:42 am
great hack do you kno anything about ipods
March 16th, 2007 at 1:00 pm
Interesting. Thanks.
April 16th, 2007 at 8:54 am
Very interesting blog. thanks for sharing the info :).
April 17th, 2007 at 12:09 pm
interesting stuff…. thanks guys
May 1st, 2007 at 2:42 pm
Very good blog, interesting and informative.
May 8th, 2007 at 7:54 am
Great read, thanks for posting
May 29th, 2007 at 4:14 am
thanks for helping me understand the u10
June 1st, 2007 at 5:52 am
Thanks for posting
July 16th, 2007 at 12:14 pm
Full SWF as the Background:
/bgImg/photo/photoDown
I’ve been looking for that for a while, thanks.
July 20th, 2007 at 1:48 am
U10, now i know more, thanks
September 2nd, 2007 at 8:34 am
thanks for info- good to know
September 2nd, 2007 at 8:35 am
I have been looking everywhere for this, thanks!
September 20th, 2007 at 10:45 am
Really man..this is gr8….
got me understand..
October 16th, 2007 at 7:43 am
Cool U10 hacks. Many thanks.
November 25th, 2007 at 10:03 pm
nice discovery, too much flv-r and your site will bog.
December 4th, 2007 at 7:44 am
thanks for info. Its usefull and really helping me.
December 5th, 2007 at 6:13 pm
Привет всем, млин тут комп не давно сломался и остался я без компа и инета аж на целых 5 дней! Епт такой тошняк был пока не починил, ведь есть все таки зависимость от компьютора как ни крути. Помню раньше не было и не надо )). А еще игры это вообще жесть затягивает. Не давно видел объявление на ряду с лечением табакокурения, алкогализма, в третей строчки было лечение от ИГРОМАНИИ. Во как! Докатились!
Зависимость или свобода конечно все зависит от нас.
February 29th, 2008 at 6:15 pm
Nice site
February 29th, 2008 at 6:17 pm
Good article