Pocketbook installer files (extension pbi) are encrypted and renamed zipped files. They are handled by
sysinstall.app.
The pbi-file can either be encrypted with a (known) public key or an (unknown) individual key.
The encryption method is afaik zipcrypto, AES256 is not working.
Inside the encrypted zip must allways be a file _scriptInstall and a folder \sinstall.
The folder \sinstall contains all the files to install, the file _scriptInstall the commands for the installation.
Known public encryption key is:
Known _scriptInstall values are:
packageName=
packageVersion=
destDir=
destAction=
execAfter=
destProtect=
destNofop=
destSpace=
Additional suspected values (possibly for the tts installation) are:
contentType
contentVersion
contentProvider
contenttLang
Additional information:
1) sysinstall.app is calculating the free space.
2) packageName can include blank spaces.
3) destAction can be: unpack,install,content (difference is unknown)
4) destDir=directory, where the content of \sinstall is copied, existing files with the same name are replaced, folders are merged.
5) destSpace defines the free minimum space at the destination otherwise the installation will fail.
6) If an additional file _scriptSerial is added beside _scriptInstall, with _scriptSerial containing only the serial number of the device as content, the packet will only be installable at the device with the in _scriptSerial defined serial number.
Using only parts of the serial can be used to limit the installation to special device-type (f.i. YTMD=Inkpad4, YTRD=InkPad Color3, YTEA=Inkpad3, JZ2B=InkpadX, YT45=PB626, NX27=PB631 etc.).
7) Installation is working in /mnt/secure too (tested with dictionaries).
8) If an app or script is defined via execAfter, the installation will finish with executing it (f.i.:execAfter=/mnt/ext1/applications/demo.app).
example.pbi is provided as an example and is encrypted with the known public key:
>nD4Ar0CNc(#Gl/87A8q
The content of the file _scriptInstall in example.pbi:
packageName=example_test
packageVersion=0.1.2.3
destDir=/mnt/ext1/test
destAction=install
example.pbi content:
_scriptInstall
\sinstall
\sinstall\file1
\sinstall\dir1\file2
\sinstall\dir2\file3
Attention:
I'm not aware of an uninstaller for Pocketbooks (with the exception of dictionaries and TTS-modules, which have some uninstall funcions scattered in the settings or elsewhere).
This whole research is based on a forgotten source I stumbled over years ago. This source provided the example.pbi too. I added my own observations.