author | victorp@symbian.org |
Wed, 03 Feb 2010 17:13:43 +0000 | |
changeset 30 | 9372f863bb3a |
parent 28 | ab800b3e45ab |
permissions | -rw-r--r-- |
28
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
1 |
""" |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
2 |
Copyright (c) 2006, Jari Sukanen |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
3 |
All rights reserved. |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
4 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
5 |
Redistribution and use in source and binary forms, with or |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
6 |
without modification, are permitted provided that the following |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
7 |
conditions are met: |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
8 |
* Redistributions of source code must retain the above copyright |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
9 |
notice, this list of conditions and the following disclaimer. |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
10 |
* Redistributions in binary form must reproduce the above copyright |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
11 |
notice, this list of conditions and the following disclaimer in |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
12 |
the documentation and/or other materials provided with the |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
13 |
distribution. |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
14 |
* Names of the contributors may not be used to endorse or promote |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
15 |
products derived from this software without specific prior written |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
16 |
permission. |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
17 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
18 |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
19 |
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
20 |
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
21 |
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
22 |
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
23 |
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
24 |
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
25 |
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
26 |
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
27 |
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
28 |
THE POSSIBILITY OF SUCH DAMAGE. |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
29 |
""" |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
30 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
31 |
import sisreader |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
32 |
import zlib |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
33 |
import sys |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
34 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
35 |
class SISFileHeader : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
36 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
37 |
self.uid1 = 0 |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
38 |
self.uid2 = 0 |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
39 |
self.uid3 = 0 |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
40 |
self.uidChecksum = 0 |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
41 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
42 |
class SISField : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
43 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
44 |
self.type = 0 |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
45 |
self.length = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
46 |
self.subFields = [] |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
47 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
48 |
def readFieldLength(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
49 |
length = fileReader.readBytesAsUint(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
50 |
if length & 0x80000000 > 0 : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
51 |
length = length << 32 |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
52 |
length |= fileReader.readBytesAsUint(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
53 |
return length |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
54 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
55 |
def findField(self, fieldType, startIndex = 0) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
56 |
result = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
57 |
index = startIndex |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
58 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
59 |
for field in self.subFields[startIndex:] : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
60 |
if field.type == fieldType : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
61 |
result = field |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
62 |
break |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
63 |
++index |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
64 |
return (result, index) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
65 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
66 |
def readableStr(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
67 |
return "" |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
68 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
69 |
def traverse(self, handler, depth = 0) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
70 |
handler.handleField(self, depth) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
71 |
for field in self.subFields : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
72 |
field.traverse(handler, depth + 1) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
73 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
74 |
class SISUnsupportedField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
75 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
76 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
77 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
78 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
79 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
80 |
fileReader.readPlainBytes(self.length) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
81 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
82 |
class SISStringField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
83 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
84 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
85 |
self.data = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
86 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
87 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
88 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
89 |
buf = fileReader.readPlainBytes(self.length) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
90 |
self.data = u"" |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
91 |
while len(buf) > 0 : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
92 |
temp = buf[:2] |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
93 |
buf = buf[2:] |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
94 |
self.data += unichr(ord(temp[0]) | ord(temp[1]) << 8) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
95 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
96 |
def readableStr(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
97 |
return self.data |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
98 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
99 |
class SISArrayField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
100 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
101 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
102 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
103 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
104 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
105 |
type = fileReader.readBytesAsInt(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
106 |
l = self.length - 4 |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
107 |
while l > 0 : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
108 |
field = SISFieldTypes[type]() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
109 |
field.type = type |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
110 |
field.initFromFile(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
111 |
self.subFields.append(field) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
112 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
113 |
l -= field.length + 4 # field length + the length field |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
114 |
padding = fileReader.skipPadding() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
115 |
l -= padding |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
116 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
117 |
class SISCompressedField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
118 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
119 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
120 |
self.algorithm = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
121 |
self.uncompressedDataSize = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
122 |
self.data = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
123 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
124 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
125 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
126 |
self.algorithm = fileReader.readBytesAsUint(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
127 |
self.uncompressedDataSize = fileReader.readBytesAsUint(8) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
128 |
data = fileReader.readPlainBytes(self.length - 4 - 8) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
129 |
if self.algorithm == 0 : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
130 |
self.data = data |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
131 |
elif self.algorithm == 1 : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
132 |
self.data = zlib.decompress(data) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
133 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
134 |
class SISVersionField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
135 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
136 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
137 |
self.version = (-1, -1, -1) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
138 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
139 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
140 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
141 |
major = fileReader.readBytesAsInt(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
142 |
minor = fileReader.readBytesAsInt(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
143 |
build = fileReader.readBytesAsInt(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
144 |
self.version = (major, minor, build) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
145 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
146 |
def readableStr(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
147 |
return str(self.version) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
148 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
149 |
class SISVersionRangeField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
150 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
151 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
152 |
self.fromVersion = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
153 |
self.toVersion = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
154 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
155 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
156 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
157 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
158 |
self.fromVersion = fieldParser.parseField(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
159 |
if self.length - fieldParser.lastReadBytes > 0 : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
160 |
self.toVersion = fieldParser.parseField(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
161 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
162 |
class SISDateField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
163 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
164 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
165 |
self.year = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
166 |
self.month = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
167 |
self.day = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
168 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
169 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
170 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
171 |
self.year = fileReader.readBytesAsUint(2) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
172 |
self.month = fileReader.readBytesAsUint(1) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
173 |
self.day = fileReader.readBytesAsUint(1) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
174 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
175 |
def readableStr(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
176 |
return str(self.year) + "." + str(self.month) + "." + str(self.day) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
177 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
178 |
class SISTimeField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
179 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
180 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
181 |
self.hours = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
182 |
self.minutes = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
183 |
self.seconds = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
184 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
185 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
186 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
187 |
self.hours = fileReader.readBytesAsUint(1) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
188 |
self.minutes = fileReader.readBytesAsUint(1) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
189 |
self.seconds = fileReader.readBytesAsUint(1) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
190 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
191 |
def readableStr(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
192 |
return str(self.hours) + ":" + str(self.minutes) + ":" + str(self.seconds) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
193 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
194 |
class SISDateTimeField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
195 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
196 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
197 |
self.date = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
198 |
self.time = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
199 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
200 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
201 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
202 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
203 |
self.date = fieldParser.parseField(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
204 |
self.time = fieldParser.parseField(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
205 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
206 |
class SISUidField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
207 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
208 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
209 |
self.uid = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
210 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
211 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
212 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
213 |
self.uid = fileReader.readBytesAsUint(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
214 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
215 |
def readableStr(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
216 |
return hex(self.uid) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
217 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
218 |
class SISLanguageField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
219 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
220 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
221 |
self.language = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
222 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
223 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
224 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
225 |
self.language = fileReader.readBytesAsUint(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
226 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
227 |
def readableStr(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
228 |
return str(self.language) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
229 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
230 |
class SISContentsField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
231 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
232 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
233 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
234 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
235 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
236 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
237 |
field = fieldParser.parseField(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
238 |
while field : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
239 |
if field.type == 3 : # compressed<conroller> |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
240 |
bufferReader = sisreader.SISBufferReader(field.data) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
241 |
field = fieldParser.parseField(bufferReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
242 |
self.subFields.append(field) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
243 |
field = fieldParser.parseField(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
244 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
245 |
class SISControllerField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
246 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
247 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
248 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
249 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
250 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
251 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
252 |
bufferReader = sisreader.SISBufferReader(fileReader.readPlainBytes(self.length)) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
253 |
field = fieldParser.parseField(bufferReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
254 |
while field : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
255 |
self.subFields.append(field) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
256 |
field = fieldParser.parseField(bufferReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
257 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
258 |
class SISInfoField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
259 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
260 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
261 |
self.installType = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
262 |
self.installFlags = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
263 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
264 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
265 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
266 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
267 |
self.subFields.append(fieldParser.parseField(fileReader)) # UID |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
268 |
self.subFields.append(fieldParser.parseField(fileReader)) # Vendor name unique |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
269 |
self.subFields.append(fieldParser.parseField(fileReader)) # names |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
270 |
self.subFields.append(fieldParser.parseField(fileReader)) # vendor names |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
271 |
self.subFields.append(fieldParser.parseField(fileReader)) # version |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
272 |
self.subFields.append(fieldParser.parseField(fileReader)) # creation time |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
273 |
self.installType = fileReader.readBytesAsUint(1) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
274 |
self.installFlags = fileReader.readBytesAsUint(1) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
275 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
276 |
class SISSupportedLanguagesField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
277 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
278 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
279 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
280 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
281 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
282 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
283 |
self.subFields.append(fieldParser.parseField(fileReader)) # languages |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
284 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
285 |
class SISSupportedOptionsField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
286 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
287 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
288 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
289 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
290 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
291 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
292 |
self.subFields.append(fieldParser.parseField(fileReader)) # options |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
293 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
294 |
class SISPrerequisitiesField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
295 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
296 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
297 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
298 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
299 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
300 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
301 |
self.subFields.append(fieldParser.parseField(fileReader)) # target devices |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
302 |
self.subFields.append(fieldParser.parseField(fileReader)) # dependencies |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
303 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
304 |
import pdb |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
305 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
306 |
class SISDependencyField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
307 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
308 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
309 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
310 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
311 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
312 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
313 |
self.subFields.append(fieldParser.parseField(fileReader)) # UID |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
314 |
field = fieldParser.parseField(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
315 |
# Version range field is optional |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
316 |
if field.type == VersionRangeField : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
317 |
self.subFields.append(field) # version range |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
318 |
self.subFields.append(fieldParser.parseField(fileReader)) # dependency names |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
319 |
else : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
320 |
self.subFields.append(field) # dependency names |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
321 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
322 |
class SISPropertiesField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
323 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
324 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
325 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
326 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
327 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
328 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
329 |
self.subFields.append(fieldParser.parseField(fileReader)) # properties |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
330 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
331 |
class SISPropertyField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
332 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
333 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
334 |
self.key = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
335 |
self.value = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
336 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
337 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
338 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
339 |
self.key = fileReader.readBytesAsInt(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
340 |
self.value = fileReader.readBytesAsInt(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
341 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
342 |
# There is a type for this field, but there is no definition of the field contents |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
343 |
class SISSignaturesField(SISUnsupportedField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
344 |
pass |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
345 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
346 |
class SISCertificateChainField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
347 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
348 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
349 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
350 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
351 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
352 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
353 |
self.subFields.append(fieldParser.parseField(fileReader)) # certificate data |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
354 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
355 |
class SISLogoField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
356 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
357 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
358 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
359 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
360 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
361 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
362 |
self.subFields.append(fieldParser.parseField(fileReader)) # logo file |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
363 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
364 |
class SISFileDescriptionField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
365 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
366 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
367 |
self.operation = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
368 |
self.operationOptions = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
369 |
self.compressedLength = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
370 |
self.uncompressedLength = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
371 |
self.fileIndex = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
372 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
373 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
374 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
375 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
376 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
377 |
self.subFields.append(fieldParser.parseField(fileReader)) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
378 |
self.subFields.append(fieldParser.parseField(fileReader)) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
379 |
field = fieldParser.parseField(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
380 |
self.subFields.append(field) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
381 |
if field.type == 41 : # read field was capabilities ==> there is one more field left |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
382 |
self.subFields.append(fieldParser.parseField(fileReader)) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
383 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
384 |
self.operation = fileReader.readBytesAsUint(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
385 |
self.operationOptions = fileReader.readBytesAsUint(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
386 |
self.compressedLength = fileReader.readBytesAsUint(8) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
387 |
self.uncompressedLength = fileReader.readBytesAsUint(8) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
388 |
self.fileIndex = fileReader.readBytesAsUint(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
389 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
390 |
def readableStr(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
391 |
return "index: " + str(self.fileIndex) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
392 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
393 |
class SISHashField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
394 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
395 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
396 |
self.algorithm = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
397 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
398 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
399 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
400 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
401 |
self.algorithm = fileReader.readBytesAsUint(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
402 |
self.subFields.append(fieldParser.parseField(fileReader)) # logo file |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
403 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
404 |
class SISIfField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
405 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
406 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
407 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
408 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
409 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
410 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
411 |
self.subFields.append(fieldParser.parseField(fileReader)) # expression |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
412 |
self.subFields.append(fieldParser.parseField(fileReader)) # install block |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
413 |
self.subFields.append(fieldParser.parseField(fileReader)) # else ifs |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
414 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
415 |
class SISElseIfField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
416 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
417 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
418 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
419 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
420 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
421 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
422 |
self.subFields.append(fieldParser.parseField(fileReader)) # expression |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
423 |
self.subFields.append(fieldParser.parseField(fileReader)) # install block |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
424 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
425 |
class SISInstallBlockField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
426 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
427 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
428 |
self.files = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
429 |
self.embeddedSISFiles = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
430 |
self.ifBlocks = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
431 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
432 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
433 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
434 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
435 |
self.subFields.append(fieldParser.parseField(fileReader)) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
436 |
self.subFields.append(fieldParser.parseField(fileReader)) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
437 |
self.subFields.append(fieldParser.parseField(fileReader)) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
438 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
439 |
class SISExpressionField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
440 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
441 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
442 |
self.operator = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
443 |
self.integerValue = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
444 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
445 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
446 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
447 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
448 |
self.operator = fileReader.readBytesAsUint(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
449 |
self.integerValue = fileReader.readBytesAsInt(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
450 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
451 |
if self.operator == 10 or self.operator == 13 : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
452 |
self.subFields.append(fieldParser.parseField(fileReader)) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
453 |
if self.operator == 1 or self.operator == 2 or self.operator == 3 or self.operator == 4 or self.operator == 5 or self.operator == 6 or self.operator == 7 or self.operator == 8 or self.operator == 11 or self.operator == 12 : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
454 |
self.subFields.append(fieldParser.parseField(fileReader)) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
455 |
if not (self.operator == 13 or self.operator == 14 or self.operator == 15 or self.operator == 16 or self.operator == 10) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
456 |
self.subFields.append(fieldParser.parseField(fileReader)) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
457 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
458 |
class SISDataField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
459 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
460 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
461 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
462 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
463 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
464 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
465 |
self.subFields.append(fieldParser.parseField(fileReader)) # data units |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
466 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
467 |
class SISDataUnitField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
468 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
469 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
470 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
471 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
472 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
473 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
474 |
self.subFields.append(fieldParser.parseField(fileReader)) # file data |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
475 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
476 |
class SISFileDataField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
477 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
478 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
479 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
480 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
481 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
482 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
483 |
self.subFields.append(fieldParser.parseField(fileReader)) # raw file data |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
484 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
485 |
class SISSupportedOptionField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
486 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
487 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
488 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
489 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
490 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
491 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
492 |
self.subFields.append(fieldParser.parseField(fileReader)) # names |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
493 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
494 |
class SISControllerChecksumField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
495 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
496 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
497 |
self.checksum = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
498 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
499 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
500 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
501 |
self.checksum = fileReader.readBytesAsUint(2) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
502 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
503 |
class SISDataChecksumField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
504 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
505 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
506 |
self.checksum = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
507 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
508 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
509 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
510 |
self.checksum = fileReader.readBytesAsUint(2) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
511 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
512 |
class SISSignatureField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
513 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
514 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
515 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
516 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
517 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
518 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
519 |
self.subFields.append(fieldParser.parseField(fileReader)) # signature algorithm |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
520 |
self.subFields.append(fieldParser.parseField(fileReader)) # signature data |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
521 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
522 |
class SISBlobField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
523 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
524 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
525 |
self.data = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
526 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
527 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
528 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
529 |
self.data = fileReader.readPlainBytes(self.length) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
530 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
531 |
class SISSignatureAlgorithmField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
532 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
533 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
534 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
535 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
536 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
537 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
538 |
self.subFields.append(fieldParser.parseField(fileReader)) # algorithm identifier |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
539 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
540 |
class SISSignatureCertificateChainField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
541 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
542 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
543 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
544 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
545 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
546 |
fieldParser = sisreader.SISFieldParser() |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
547 |
self.subFields.append(fieldParser.parseField(fileReader)) # signatures |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
548 |
self.subFields.append(fieldParser.parseField(fileReader)) # certificate chain |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
549 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
550 |
class SISDataIndexField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
551 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
552 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
553 |
self.dataIndex = None |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
554 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
555 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
556 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
557 |
self.dataIndex = fileReader.readBytesAsUint(4) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
558 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
559 |
class SISCapabilitiesField(SISField) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
560 |
def __init__(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
561 |
SISField.__init__(self) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
562 |
self.capabilities = 0 |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
563 |
self.readableCaps = [] |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
564 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
565 |
def initFromFile(self, fileReader) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
566 |
self.length = self.readFieldLength(fileReader) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
567 |
self.capabilities = fileReader.readBytesAsUint(self.length) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
568 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
569 |
for i in range(20) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
570 |
if (self.capabilities >> i) & 0x01 : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
571 |
self.readableCaps.append(CapabilityNames[i]) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
572 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
573 |
def readableStr(self) : |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
574 |
return " ".join(self.readableCaps) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
575 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
576 |
SISFieldTypes = { |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
577 |
1 : SISStringField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
578 |
2 : SISArrayField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
579 |
3 : SISCompressedField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
580 |
4 : SISVersionField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
581 |
5 : SISVersionRangeField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
582 |
6 : SISDateField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
583 |
7 : SISTimeField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
584 |
8 : SISDateTimeField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
585 |
9 : SISUidField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
586 |
10 : SISUnsupportedField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
587 |
11 : SISLanguageField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
588 |
12 : SISContentsField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
589 |
13 : SISControllerField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
590 |
14 : SISInfoField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
591 |
15 : SISSupportedLanguagesField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
592 |
16 : SISSupportedOptionsField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
593 |
17 : SISPrerequisitiesField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
594 |
18 : SISDependencyField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
595 |
19 : SISPropertiesField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
596 |
20 : SISPropertyField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
597 |
21 : SISSignaturesField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
598 |
22 : SISCertificateChainField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
599 |
23 : SISLogoField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
600 |
24 : SISFileDescriptionField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
601 |
25 : SISHashField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
602 |
26 : SISIfField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
603 |
27 : SISElseIfField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
604 |
28 : SISInstallBlockField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
605 |
29 : SISExpressionField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
606 |
30 : SISDataField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
607 |
31 : SISDataUnitField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
608 |
32 : SISFileDataField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
609 |
33 : SISSupportedOptionField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
610 |
34 : SISControllerChecksumField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
611 |
35 : SISDataChecksumField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
612 |
36 : SISSignatureField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
613 |
37 : SISBlobField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
614 |
38 : SISSignatureAlgorithmField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
615 |
39 : SISSignatureCertificateChainField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
616 |
40 : SISDataIndexField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
617 |
41 : SISCapabilitiesField |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
618 |
} |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
619 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
620 |
[StringField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
621 |
ArrayField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
622 |
CompressedField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
623 |
VersionField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
624 |
VersionRangeField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
625 |
DateField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
626 |
TimeField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
627 |
DateTimeField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
628 |
UidField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
629 |
UnusedField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
630 |
LanguageField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
631 |
ContentsField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
632 |
ControllerField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
633 |
InfoField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
634 |
SupportedLanguagesField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
635 |
SupportedOptionsField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
636 |
PrerequisitiesField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
637 |
DependencyField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
638 |
PropertiesField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
639 |
PropertyField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
640 |
SignaturesField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
641 |
CertificateChainField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
642 |
LogoField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
643 |
FileDescriptionField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
644 |
HashField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
645 |
IfField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
646 |
ElseIfField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
647 |
InstallBlockField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
648 |
ExpressionField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
649 |
DataField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
650 |
DataUnitField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
651 |
FileDataField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
652 |
SupportedOptionField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
653 |
ControllerChecksumField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
654 |
DataChecksumField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
655 |
SignatureField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
656 |
BlobField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
657 |
SignatureAlgorithmField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
658 |
SignatureCertificateChainField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
659 |
DataIndexField, |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
660 |
CapabilitiesField] = range(1, 42) |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
661 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
662 |
FieldNames = { |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
663 |
0 : "ROOT", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
664 |
StringField : "StringField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
665 |
ArrayField : "ArrayField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
666 |
CompressedField : "CompressedField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
667 |
VersionField : "VersionField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
668 |
VersionRangeField : "VersionRangeField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
669 |
DateField : "DateField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
670 |
TimeField : "TimeField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
671 |
DateTimeField : "DateTimeField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
672 |
UidField : "UidField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
673 |
UnusedField : "UnusedField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
674 |
LanguageField : "LanguageField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
675 |
ContentsField : "ContentsField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
676 |
ControllerField : "ControllerField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
677 |
InfoField : "InfoField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
678 |
SupportedLanguagesField : "SupportedLanguagesField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
679 |
SupportedOptionsField : "SupportedOptionsField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
680 |
PrerequisitiesField : "PrerequisitiesField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
681 |
DependencyField : "DependencyField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
682 |
PropertiesField : "PropertiesField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
683 |
PropertyField : "PropertyField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
684 |
SignaturesField : "SignaturesField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
685 |
CertificateChainField : "CertificateChainField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
686 |
LogoField : "LogoField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
687 |
FileDescriptionField : "FileDescriptionField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
688 |
HashField : "HashField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
689 |
IfField : "IfField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
690 |
ElseIfField : "ElseIfField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
691 |
InstallBlockField : "InstallBlockField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
692 |
ExpressionField : "ExpressionField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
693 |
DataField : "DataField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
694 |
DataUnitField : "DataUnitField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
695 |
FileDataField : "FileDataField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
696 |
SupportedOptionField : "SupportedOptionField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
697 |
ControllerChecksumField : "ControllerChecksumField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
698 |
DataChecksumField : "DataChecksumField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
699 |
SignatureField : "SignatureField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
700 |
BlobField : "BlobField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
701 |
SignatureAlgorithmField : "SignatureAlgorithmField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
702 |
SignatureCertificateChainField : "SignatureCertificateChainField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
703 |
DataIndexField : "DataIndexField", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
704 |
CapabilitiesField : "CapabilitiesField" |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
705 |
} |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
706 |
|
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
707 |
CapabilityNames = { |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
708 |
0 : "TCB", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
709 |
1 : "CommDD", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
710 |
2 : "PowerMgmt", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
711 |
3 : "MultimediaDD", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
712 |
4 : "ReadDeviceData", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
713 |
5 : "WriteDeviceData", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
714 |
6 : "DRM", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
715 |
7 : "TrustedUI", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
716 |
8 : "ProtServ", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
717 |
9 : "DiskAdmin", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
718 |
10 : "NetworkControl", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
719 |
11 : "AllFiles", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
720 |
12 : "SwEvent", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
721 |
13 : "NetworkServices", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
722 |
14 : "LocalServices", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
723 |
15 : "ReadUserData", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
724 |
16 : "WriteUserData", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
725 |
17 : "Location", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
726 |
18 : "SurroundingsDD", |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
727 |
19 : "UserEnvironment" |
ab800b3e45ab
Added sis2rom for Wild Ducks
Sebastian Brannstrom <sebastianb@symbian.org>
parents:
diff
changeset
|
728 |
} |