Данный модуль позволяет работать с sis файлами.
Для linux систем модуль необходмо просто установить в систему.
Для windows необходимо доустановить openssl.exe, а также libssl32.dll, libeay32.dll, и положить эти файлы рядом с ensymble.py
На ПК возможно использование данного модуля из консоли.
>>> $ ensymble.py command options...
Команды
altere32 - добавляет права доступа в приложения или библиотеки. (Alter the IDs and capabilities of e32image files (EXEs, DLLs))
genuid - генератор uid (Generate a new test-range UID from a name)
infoe32- показывает права доступа приложении или библиотек. (Show the IDs and capabilities of e32image files (EXEs, DLLs))
mergesis - сливает два sis файла в один. (Merge several SIS packages into one)
py2sis - создает sis приложение. (Create a SIS package for a “Python for S60” application)
signsis - подписывает приложение (Sign a SIS package)
simplesis - создает sis приложение по структуре папок. (Create a SIS package from a directory structure)
version - выводит версию библиотеки. (Print Ensymble version)
Также эти команды доступны в интерпретаторе, первым параметром в них необходимо передать строку, она ни на что не влияет, а вторым, список строк с параметрами.
>>> from ensymble.actions import altere32
Общие параметры
Кодировка
–encoding=terminal,filesystem
-e terminal,filesystem
Выводит информацию
–verbose
-v
Справка, помощь
–help
-h
>>> $ ensymble.py altere32
[--uid=0x01234567] [--secureid=0x01234567] [--vendorid=0x01234567]
[--caps=Cap1+Cap2+...] [--encoding=terminal,filesystem] [--verbose]
--inplace <infile>...
Данная команда добавляет права в Symbian EXEs and DLLs.
infile - путь к исходному файлу
outfile - путь к результирующему файлу
–inplace, -i - путь к папке с файлами
–uid=0x01234567, -u 0x01234567 - юид приложения, если не задан то uid не изменится
–secureid=0x01234567, -s 0x01234567 - аналогично uid
–vendorid=0x01234567б -r 0x01234567 - аналогично uid
–caps=Cap1+Cap2+…, -b Cap1+Cap2+…, –caps=0x12345. -b 0x12345 - права доступа
–heapsize=min,max, -H min,max - ограничения использования ОЗУ
>>> $ ensymble.py altere32 --caps=LocalServices+Location+NetworkServices+PowerMgmt+ProtServ+ ReadUserData+SurroundingsDD+SWEvent+UserEnvironment+WriteUserData+ ReadDeviceData+TrustedUI+WriteDeviceData myextension_orig.pyd myextension.pyd>>> $ ensymble.py altere32 --caps=0xff1b4 --inplace *.dll>>> $ ensymble.py altere32 --heapsize=4k,4M myapp_orig.exe myapp.exe
Note
When modifying the UID, the secure ID should be modified accordingly. Modifying UIDs of application EXEs is generally not possible, because applications usually include the UID in program code as well.
>>> $ ensymble.py genuid
[--encoding=terminal,filesystem] [--verbose]
<name>...
Генератор uid для приложений
name - название приложения
>>> $ ensymble.py genuid myapplication myextension myapplication: 0xe0942bea myextension: 0xe325ed58
>>> $ ensymble.py infoe32
[--encoding=terminal,filesystem] [--verbose]
<infile>...
Возвращает информацию о Symbian EXEs and DLLs
infile - пути к исходным файлам
>>> $ ensymble.py infoe32 myprogram.exe somelibrary.dll myprogram.exe: UID1 0x1000007a UID2 0x100039ce UID3 0x12345678 Secure ID 0x12345678 Vendor ID 0x00000000 Capabilities 0x0 (NONE) somelibrary.dll: UID1 0x10000079 UID2 0x00000000 UID3 0x00000000 Secure ID 0x00000000 Vendor ID 0x00000000 Capabilities 0xff7be (ALL-TCB-DRM-AllFiles)
>>> $ ensymble.py mergesis
[--cert=mycert.cer] [--privkey=mykey.key] [--passphrase=12345]
[--encoding=terminal,filesystem] [--verbose]
<infile> [mergefile]... <outfile>
Сливает sis файлы в один sis файл
Note
The “mergesis” command will only work with SIS files that do not already contain other embedded SIS files.
infile - путь к базовому sis
mergefile - пути к сливаемым файлам
outfile - выходной файл
–cert=mycert.cer, -a mycert.cer - сертификаты для подписи
–privkey=mykey.key, -k mykey.key - ключи для подписи
–passphrase=12345, -p 12345 - пароли
Note
Using command line options to give the pass phrase is insecure. Any user of the computer will be able to see command lines of started programs and thus will see the pass phrase in plain view. Instead, standard input should be used (see examples below).
–cert=mycert.cer –key=mykey.key –passphrase=12345 myapp_v1_0_0.sis PythonForS60_1_3_17_3rdEd_selfsigned.SIS myapp_standalone_v1_0_0.sis
>>> $ echo "12345" | ensymble.py mergesis
--cert=mycert.cer --key=mykey.key
basefile.sis addon1.sis addon2.sis
# 12345 пароль сертификата
>>> $ ensymble.py py2sis
[--uid=0x01234567] [--appname=AppName] [--version=1.0.0]
[--lang=EN,...] [--icon=icon.svg] [--shortcaption="App. Name",...]
[--caption="Application Name",...] [--drive=C]
[--textfile=mytext.txt] [--cert=mycert.cer] [--privkey=mykey.key]
[--passphrase=12345] [--caps=Cap1+Cap2+...]
[--vendor="Vendor Name",...] [--autostart]
[--encoding=terminal,filesystem] [--verbose]
<src> [sisfile]
Собирает sis
src - путь к файлу или папке
sisfile - выходной файл, если указать папку, то в папку пложится файл с именем приложения и с версией
–appname=AppName, -n AppName - название приложения
–uid=0x01234567, -u 0x01234567 - uid
–version=1.0.0, -r 1.0.0
–lang=EN,…, -l EN,…
–icon=icon.svg, -i icon.svg
–shortcaption=”App. Name”,…, -s “App. Name”,…
–caption=”Application Name”,…, -c “Application Name”,…
–drive=C, -f C
–extrasdir=root, -x root
- –textfile=mytext_%.txt, -t mytext_%.txt
%% - literal %
%n - language number (01 - 99)
%c - two-character language code in lowercase letters
%C - two-character language code in capital letters
%l - language name in English, using only lowercase letters
%l - language name in English, using mixed case letters
–cert=mycert.cer, -a mycert.cer
–privkey=mykey.key, -k mykey.key
–passphrase=12345, -p 12345
–caps=Cap1+Cap2+…, -b Cap1+Cap2+…, –caps=0x12345, -b 0x12345
–vendor=Name,…, -d Name,…
–autostart, -g
–runinstall, -R
–heapsize=min,max, -H min,max
>>> $ ensymble.py py2sis myprog.py>>> $ echo "12345" | ensymble.py py2sis --cert mycert.cer --privkey mykey.key myprog.py
>>> ensymble.py signsis
[--unsign]
[--cert=mycert.cer] [--privkey=mykey.key] [--passphrase=12345]
[--execaps=Cap1+Cap2+...] [--dllcaps=Cap1+Cap2+...]
[--encoding=terminal,filesystem] [--verbose]
<infile> [outfile]
Подписывает приложения
infile
outfile
–unsign, -u - удаляет сертификат из файла
–cert=mycert.cer, -a mycert.cer
–privkey=mykey.key, -k mykey.key
–passphrase=12345, -p 12345
–execaps=Cap1+Cap2+…, -b Cap1+Cap2+…, –execaps=0x12345, -b 0x12345
–dllcaps=Cap1+Cap2+…, -d Cap1+Cap2+…, –dllcaps=0x12345, -d 0x12345
>>> $ ensymble.py signsis --dllcaps=LocalServices+Location+NetworkServices+PowerMgmt+ProtServ+ ReadUserData+SurroundingsDD+SWEvent+UserEnvironment+WriteUserData+ ReadDeviceData+TrustedUI+WriteDeviceData --cert=mycert.cer --key=mykey.key --passphrase=12345 coolextension_nocert.sis coolextension_mycert.sis>>> $ echo "12345" | ensymble.py signsis --dllcaps=0xff1b4 --cert=mycert.cer --key=mykey.key coolextension_nocert.sis coolextension_mycert.sis
>>> $ ensymble.py simplesis
[--uid=0x01234567] [--version=1.0.0] [--lang=EN,...]
[--caption="Package Name",...] [--drive=C] [--textfile=mytext_%C.txt]
[--cert=mycert.cer] [--privkey=mykey.key] [--passphrase=12345]
[--vendor="Vendor Name",...] [--encoding=terminal,filesystem]
[--verbose]
<srcdir> [sisfile]
Создает sis приложение по структуре папок
srcdir
sisfile
–uid=0x01234567, -u 0x01234567
–version=1.0.0, -r 1.0.0
–lang=EN,…, -l EN,…
–caption=”Application Name”,…, -c “Application Name”,…
–drive=C, -f C
- –textfile=mytext_%C.txt, -t mytext_%C.txt
%% - literal %
%n - language number (01 - 99)
%c - two-character language code in lowercase letters
%C - two-character language code in capital letters
%l - language name in English, using only lowercase letters
%l - language name in English, using mixed case letters
–cert=mycert.cer, -a mycert.cer
–privkey=mykey.key, -k mykey.key
–passphrase=12345, -p 12345
>>> $ ls -R mymodule mymodule: resource/sys/ mymodule/resource: apps/mymodule.py mymodule/resource/apps: mymodule.rsc mymodule/sys: bin/ mymodule/sys/bin: _mymodule.pyd>>> $ ensymble.py simplesis mymodule>>> $ echo "12345" | ensymble.py py2sis --cert mycert.cer --privkey mykey.key mymodule
>>> $ ensymble.py version