View Single Post
Old 01-04-2024, 05:09 AM   #1
nhedgehog
Guru
nhedgehog ought to be getting tired of karma fortunes by now.nhedgehog ought to be getting tired of karma fortunes by now.nhedgehog ought to be getting tired of karma fortunes by now.nhedgehog ought to be getting tired of karma fortunes by now.nhedgehog ought to be getting tired of karma fortunes by now.nhedgehog ought to be getting tired of karma fortunes by now.nhedgehog ought to be getting tired of karma fortunes by now.nhedgehog ought to be getting tired of karma fortunes by now.nhedgehog ought to be getting tired of karma fortunes by now.nhedgehog ought to be getting tired of karma fortunes by now.nhedgehog ought to be getting tired of karma fortunes by now.
 
Posts: 755
Karma: 622656
Join Date: Sep 2013
Device: EnergySistemEreaderPro, Nook STG, Pocketbook 622, Bookeen Cybooks ...
Pocketbook installer files (pbi) - How to create them

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:
Quote:
>nD4Ar0CNc(#Gl/87A8q
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.
Attached Files
File Type: zip example.pbi.zip (1.1 KB, 110 views)

Last edited by nhedgehog; 01-10-2024 at 01:56 AM.
nhedgehog is offline   Reply With Quote