Ludicrous Software

Installing Flash Lite 1.1 and Flash Lite 2.0 on the Same Device

(I wrote this about a year ago, when Adobe was still offering Flash Lite 2.0 for download and most developers were working with S60 2nd Edition devices, which did not have any version of Flash Lite pre-installed. Now that devices are on the market that have 1.1 (or 2.0) pre-installed, this information isn’t really useful to very many people. Also, if you have a S60 3rd Edition device and are installing Flash Lite 2.1 on top of the pre-installed 1.1, you don’t need to go through all these steps. But a lot of people have ended up on the original page that contained this information, so I thought I’d keep it up, in case it’s helpful to somebody.)

In my experience , if you try to install Flash Lite 2.0 on a phone that has 1.1 already installed, 2.0 will overwrite 1.1. However, it’s possible, and relatively easy (once you’ve figured it all out) to run Flash Lite 1.1 and 2.0 on the same phone. Alessandro posted a suggestion on his blog for how to get 1.1 and 2.0 installed on the same phone, and I’m happy to report that it works. I’ll recreate his steps here and add in some extra detail for those who want to try this on their own. Thanks to Alessandro for posting the suggestion, and keep in mind that although this worked out fine for me, you do this at your own risk and Ludicrous Software isn’t responsible if something goes wrong and your phone starts staying out late at night and not calling to tell you when it’ll be coming home.

1. Unsis one of the players on your PC

There are a bunch of programs out there to do this. Unsis requires perl to be installed on your system, and UnMakeSIS has a pretty straightforward GUI. I used Unsis, which created a folder called “system”, and contains subfolders called “apps”, “data”, “help”, “libs”, and “recogs”. If your folder is not called “system”, rename it to that, to make things easier on yourself later.

2. Create a pkg file and 3. replace the UID with another one and make any necessary changes to file names)

Here’s what I slapped together based on the helloworld.pkg file that comes with the Symbian SDK. It probably ain’t pretty, but it works nicely. I called my file “flash2.pkg”. Notice that all of the file paths start with the “system” folder. If you didn’t feel the need to make sure that your folder is called “system” in step one, either change it now, or change the pkg file to whatever your folder is called.

I changed the UID to one of the numbers that had been assigned to me by Symbian. Feel free to use it, or change it to one that has been assigned to you.

; Flash2.pkg
;
;Language - standard language definitions
&EN

;standard SIS file header
;the UID has been changed from its original value.
;feel free to change it to something else if you wish.
#{"Flash2"},(0x10275722),2,0,0
;Supports Series 60 v2.0
;Commented this out because I didn't know if it was necessary.
;If you comment it out, you get a warning that the product may
;not be compatible with your system, and asking if you want to
;continue. Continue.
;(0x101F7960), 0, 0, 0, {"Series60ProductID"}
"systemappssaflash2saflash2.aif"-"!:systemappssaflash2saflash2.aif"
"systemappssaflash2saflash2.app"-"!:systemappssaflash2saflash2.app"
"systemappssaflash2saflash2.rsc"-"!:systemappssaflash2saflash2.rsc"
"systemappssaflash2saflash2_caption.rsc"-"!:systemappssaflash2saflash2_caption.rsc"

"systemdata101fb454.dat"-"C:systemdata101fb454.dat"
"systemdataflash2engine.rsc"-"!:systemdataflash2engine.rsc"
"systemdataflash2ui.mbm"-"!:systemdataflash2ui.mbm"
"systemdataflash2ui.rsc"-"!:systemdataflash2ui.rsc"
"systemhelpsaflash2.hlp"-"!:systemhelpsaflash2.hlp"
"systemlibsflash2.dll"-"!:systemlibsflash2.dll"
"systemlibsflash2engine.dll"-"!:systemlibsflash2engine.dll"
"systemlibsflash2snddec.dll"-"!:systemlibsflash2snddec.dll"
"systemlibsflash2ui.dll"-"!:systemlibsflash2ui.dll"
"systemrecogsrecswf2.mdl"-"!:systemrecogsrecswf2.mdl"

4. Create a SIS using makesisGiven the way the pkg file is written, the pkg file and the “system” folder need to be in the same location. So I had a “test” folder containing the pkg file and the “system” folder. You need to run makesis from within the “test” folder. The command is “makesis -v flash2.pkg”. The verbose option isn’t strictly necessary, but it’s always nice to see what’s going on.

5. Try to install

Should proceed as normal, except for the additional warning about compatibility. The only downside to this is that you’ll end up with two icons on your phone, both called “Flash”, so you’ll have to remember that the silvery one is 1.1, and the blue one is 2.0. I think that in order to make the icon name different, you’d need to recreate the aif file contained in the sis (I think). If anybody has any other suggestions, let me know!