An open source implementation of the zcryp program used on the Olive O3HD, O4HD, and O6HD music player to decrypt firmware updates from Olive. This tool is part of the Z-App framework which Olive used as the basis for their software. This implementation is feature-complete but not bug-complete.
Install the go compiler for your operating system and configure your workspace environment. Download zcryp using the following command.
[dogshoes@oxcart ~]# go get github.com/dogshoes/zcrypFinally, ensure that your $GOPATH/bin is in $PATH for ease of use.
[dogshoes@oxcart ~]# export PATH=$PATH:$GOPATH/binThe key zcryp needs can be found in /zapp/zbase/bin/Upgrade.sh on the olive player. Activate the player's SSH server through the manufacturer's backdoor and download the file via SCP.
[dogshoes@oxcart ~]# scp root@myolive.local:/zapp/zbase/bin/Upgrade.sh .
[dogshoes@oxcart ~]# grep \$cryptCmd Upgrade.sh | awk '{ print $9 }' | uniqDownload and unpack the system update from Olive. This container TAR archive is unencrypted.
[dogshoes@oxcart ~]# mkdir scratch
[dogshoes@oxcart ~]# cd scratch
[dogshoes@oxcart scratch]# wget http://downloads.olive.us/SWUpgrade/olive4hd/432/SWUpgrade.tar
[dogshoes@oxcart scratch]# tar -xvf SWUpgrade.tarYou should end up with three files: SWUpgrade.xml which is unencrypted and contains information about the upgrade, FSSoftware.tar.gz which is encrypted and contains updates to be placed on the hard drive, and uImage.tar.gz which is encrypted and contains a new kernel. These files can now be unencrypted and examined as needed.
[dogshoes@oxcart scratch]# zcryp -i FSSoftware.tar.gz -o FSSoftware.unencrypted.tar.gz -m 1 -k encryptionkeyfromUpgradeSHThe same principles here can be used for ODBInstall.tar.gz and other encrypted resources consumed by the Olive players.
Since the method of encryption is a simple XOR, feeding an unencrypted file into zcryp will encrypt it. This can be used to prepare modified updates for the Olive player. However this should be done with extreme caution and no warranty is provided or implied.