TL;DR: Packer for executables, executables are smaller while still executable. unpacker is small and adds almost no startup time. RAM usage is a little bit bigger, but not much.
I was playing around, trying to get a Webbrowser
to the Pandora, with the advent of the Pyra, we need it to keep it alive. Now, I needed some setuid things, which I forgot how to set, and I stumbled upon an old UPX project I had... and here is the binary compiled for the Open Pandora: upx-armel-bin.tar.gz
edit: requires a newer libstdc++.so.6 file (we have v10, it needs v20) that is automatically available if you open your codeblocks CLI. (no need to be inside that CLI environment). Alternatively you can put libstdc++.so.6 somewhere in your lib path. or relink the symlink.
Compilation Procedure for in the future (pretty straight forward):
1. Download the LZMA SDK (not sure if it was needed): http://sourceforge.net/projects/sevenzip/files/LZMA%20SDK/
note: it unpacks NOT to a subdirectory, make sure you are in an empty dir first.
2. Download UCL form http://www.oberhumer.com/opensource/ucl/
3. Download UPX sources from http://upx.sourceforge.net/
4. Open up CodeBlocks CLI
5 Compile UCL:
The first thing I did was compress the upx binary itself, it shrunk to 22.7% of its original size. The next, Firefox (why is there a firefox AND a firefox.bin? 2 identical files in the pnd!)reduced to 52%
And yes... still runs...
next to its other instance... with _wb_'s Sysinfo, they are close, but because one has a cache, the original uses more ram (the other creates an empty profile).
edit: HASE: hase 50.74% , libsparrow3d.so 36.37%... that is more than a meg less space it uses....
I was playing around, trying to get a Webbrowser

edit: requires a newer libstdc++.so.6 file (we have v10, it needs v20) that is automatically available if you open your codeblocks CLI. (no need to be inside that CLI environment). Alternatively you can put libstdc++.so.6 somewhere in your lib path. or relink the symlink.
Compilation Procedure for in the future (pretty straight forward):
1. Download the LZMA SDK (not sure if it was needed): http://sourceforge.net/projects/sevenzip/files/LZMA%20SDK/
note: it unpacks NOT to a subdirectory, make sure you are in an empty dir first.
2. Download UCL form http://www.oberhumer.com/opensource/ucl/
3. Download UPX sources from http://upx.sourceforge.net/
4. Open up CodeBlocks CLI
5 Compile UCL:
- ./configure
- make
- (make install I think is not needed)
- UPX_LZMADIR=/media/<sdcard>/CODE/lzma (that "empty directory before unpacking it")
- UPX_LZMA_VERSION=0x918
- UPX_UCLDIR=/media/<sdcard>/CODE/ucl-1.03 (current version)
- make
- make all (not sure if this is needed, it took a while to figure out that I needed to look for the *.out file)
The first thing I did was compress the upx binary itself, it shrunk to 22.7% of its original size. The next, Firefox (why is there a firefox AND a firefox.bin? 2 identical files in the pnd!)reduced to 52%
And yes... still runs...
edit: HASE: hase 50.74% , libsparrow3d.so 36.37%... that is more than a meg less space it uses....
Attachments
Last edited by a moderator: