Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


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

Finally, ensure that your $GOPATH/bin is in $PATH for ease of use.

[dogshoes@oxcart ~]# export PATH=$PATH:$GOPATH/bin

Obtaining the encryption key

The key zcryp needs can be found in /zapp/zbase/bin/ 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/ .
[dogshoes@oxcart ~]# grep \$cryptCmd | awk '{ print $9 }' | uniq


Download 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
[dogshoes@oxcart scratch]# tar -xvf SWUpgrade.tar

You 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 encryptionkeyfromUpgradeSH

The 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.


An open-source implementation of the zcryp tool used to encrypt and decrypt updates for the Olive O3HD, O4HD, and O6HD music players.







No packages published