Symbian OS
read last symbian news on www.newlc.com read last symbian reviews on www.newlc.com
read last symbian tutorial on www.newlc.com read last symbian download on www.newlc.com
24 Aug 2006 - 09:43
Keywords :

There are plenty of utilities to extract the contents of a SIS file from the pre Symbian 9.1 SIS files. However, I could not find that kind of tool for the new SISX file format (specified in here). So, I wrote a small python utility that is able to parse the SIS file, print some information about its contents and extract the contained files.

Latest version can be found in here.

Or get a version mirrored on our server: sisinfo.zip
sisinfo.zip

Usage

sisinfo.py [options]

-f FILENAME--file=FILENAME Name of the SIS file to inspect
-i --info Print information about SIS contents
-s --structure Print SIS file structure
-e PATH --extract=PATH Extract the files from the SIS file to PATH

At least -f switch has to be given on command line to define the SIS file to inspect and one or more of the other options to specify the actions to perform.

Download posted August 24th, 2006 by jari

Submitted by Pawel (not verified) on Thu, 2006-08-24 21:32.

Hello Jari,

A quick suggestion for a small improvement that would make the scripts significantly more useful:

Add a feature where a PKG file is generated from the SISX file - this would make the scripts immensly more useful in verification testing and prototyping.

Thanks in advance, Pawel


Submitted by Anonymous on Mon, 2006-08-28 17:01.

how do we use this? im trying to unpack a SISX extention, i downloaded phyton but when i click on sisnfo it wont work, wat should i do????

Submitted by jari on Thu, 2006-08-31 08:14.

Hi Pawel, thanks for the improvement idea. I will implement support for generating the pkg-file as soon as I have time for it.

Meanwhile, check the version 0.2 of the tool http://www.niksula.cs.hut.fi/~jpsukane/sisinfo.html. The new version has support for printing certificate information of the sis file.

(I could not find a way to update the article, is I posted update information like this...)

Jari


Submitted by jari on Thu, 2006-08-31 08:16.

To use the sisinfo.py tool, you have to have python installed and somewhere in your PATH variable. To inspect a sis-file, you have to start command prompt and issue for example command "python sisinfo.py -f sisfile.sisx -i" (without the quotes).

Submitted by Anonymous on Wed, 2006-09-06 18:08.

this doesnt work unfortuantly :( it would be a very cool thing if such thing did exsist, but it doesnt

Submitted by Aki (not verified) on Fri, 2006-09-22 10:57.

Works here perfectly. I just tried with Python 2.5 for Win and the latest version from the SISInfo homepage.

Submitted by Anonymous on Tue, 2006-09-26 08:49.

The -i option works fine, but -e option gives error below? Why? Have tried with a couple different SISX files each of which give same error. Thanks.

C:\development\workspace\UrlLauncher\sis>python sisinfo.py -f UrlLauncher.SISX -i ! : \ s y s \ b i n \ U r l L a u n c h e r . e x e ! : \ r e s o u r c e \ a p p s \ U r l L a u n c h e r . r s c ! : \ p r i v a t e \ 1 0 0 0 3 a 3 f \ i m p o r t \ a p p s \ U r l L a u n c h e r _ r e g . r s c ! : \ r e s o u r c e \ a p p s \ U r l L a u n c h e r . m i f ! : \ p r i v a t e \ 0 7 5 7 5 4 0 2 \ b a c k u p _ r e g i s t r a t i o n . x m l

C:\development\workspace\UrlLauncher\sis>python sisinfo.py -f UrlLauncher.SISX -i -e C:\development\workspace\UrlLaunche r\sis\unsis ! : \ s y s \ b i n \ U r l L a u n c h e r . e x e Traceback (most recent call last): File "sisinfo.py", line 201, in <module> handler.execute(options) File "sisinfo.py", line 130, in execute newFile = file(path + os.sep + parts[len(parts) - 1], "wb") TypeError: file() argument 1 must be (encoded string without NULL bytes), not str


Submitted by Anonymous on Wed, 2006-09-27 08:08.

I'm also using Python 2.5 on Windows and the latest version of SisInfo, but get the error shown in the previous post.

Submitted by Anonymous on Wed, 2006-09-27 10:05.

I have updated the sisinfo tool to version 0.5. In version 0.4 there were problems with unicode strings and it sometimes produced the error message reported above when extracting files. I fixed the error and the version 0.5 is available: http://www.niksula.cs.hut.fi/~jpsukane/sisinfo.html

Submitted by Anonymous on Fri, 2006-10-06 13:27.

V0.5 works much better, thanks very much. I tested on 3-4 sis files. -e option worked fine on all except one. The one it failed on gave error below:

Traceback (most recent call last): File "C:\Program Files\sisinfo\sisinfo.py", line 201, in <module> handler.execute(options) File "C:\Program Files\sisinfo\sisinfo.py", line 130, in execute newFile = file(path + os.sep + parts[len(parts) - 1], "wb") IOError: [Errno 2] No such file or directory: u'C:\\Temp\\sisinfo_test\\out\\*.*'


Submitted by wise33 (not verified) on Thu, 2006-11-16 07:24.

I am having trouble installing this tool.

I am brand spanking new to python and don't know why I am getting file not found errors and permission denied errors.

This is what I have tried:

placing the folder "sisinfo" in the python directory and in the lib directory. I also extracted the sysinfo.py and setup.py files and put them in both the python directory and in the lib directory. Just to keep things simple I went ahead and placed the object file "file.sisx" into the python directory so that I could call python without changing directories or altering my Windows "PATH" variable.

Any help would be greatly appreciated.

Thanks


Submitted by Anonymous on Sat, 2007-01-06 13:35.

I'm also using Python 2.5 on Windows and the latest version of SisInfo, but get the error shown in the previous post.

Submitted by Anonymous on Thu, 2007-02-08 11:50.

Hi,

I have just added a piece of lines to the code and it solved the IOError problem.

from line 130-137 in sisinfo.py:

os.makedirs(path)<BR> try:<BR> newFile = file(path + os.sep + parts[len(parts) - 1], "wb")<BR> newFile.write(self.fileDatas[f.fileIndex].findField(sisfields.CompressedField)[0].data)<BR> newFile.close()<BR> except IOError, (errno, strerror):<BR> print "I/O error(%s): %s" % (errno, strerror)<BR> for s in self.signatureCertificateChains :<BR>

Take care with the idents (TABS)!

Hope this helps


Submitted by VMarinov on Thu, 2007-07-05 07:19.

very useful , work perfect thanks


Submitted by dennis_george on Thu, 2007-08-23 12:45.

some more tools for SiS extraction
http://www.symbian-toys.com/sisxplorer.aspx



copyright 2003-2009 NewLC SARL