Secret Codes


Secret Codes is under GNU GENERAL PUBLIC LICENSE. It is written by Simone Pernice from scratch.
26th January 2009, build 37, version 1.9.1.
SecretCodes needs a MIDP 2.0 phone. The synchronize function was tested on Motorola phones only.
To ask questions, suggest improvements or changes, fix bugs, send a donation or postcard contact Simone.


This program is given WITHOUT any warranty. SecretCodes stores encrypted databases, each of them may be used for a single topic. Every database is made by a set of records. Every record is made by a set of values and the labels associated to them (the records). It is possible to backup and restore those records to/from a PC.
The initial screen shows all the available databases plus help and about options. Select a database to open it, HELP to show this help and ABOUT to read author and version details. To open a database it is also required a password because they are encrypted. Use EXIT button to exit the program and NEW button to create a new database providing its name and password (the password has to be inserted twice for confirmation, do not insert anything to avoid encryption).
After a database is opened its list of records is showed. If the database is just created the list of labels is showed: set the number of values and their label to use for the most of records. Use ADD button to add records, use ADD SAME LABELS to add a new record with the same labels of the selected one, use DELETE DATABASE button to delete the entire database, use SAVE&CLOSE button to save and close the database. Use SETTINGS to choose what to show of every record, what value to use to order the records, the sort order, the case sensitiveness, and if the labels should be shown. Use SYNCHRONIZE to backup or restore the current database in a PC or in another phone running SecretCodes: all the available connections will be showed (USB cable and IrDA are defaults), if the phone supports JSR82 it is also possible use Bluetooth. The backup file in encrypted, to restore it a new database with the same password has to be created. Use PASSWORD to change the current password (the password has to be insert twice for confirmation, do not insert anything to avoid encryption). Use EDIT COMMON LABELS to set the number and name of the labels for most of the records. Select a record to edit its key and values. Use DEL RECORD to delete the record, use EDIT LABELS to set up a list of personalized number of values and value names for that record, use NEW PASSWORD to generate a random password for a value field. EDIT LABELS shows a new screen to add or remove values, and to use the common labels. GEN PASSWORD shows a new screen: select in which value will be inserted the password, the password length, if it has to include lower case chars, upper case chars, numbers, symbols or if it has to follow a template where every place is of a given type. Use GEN PASSWORD to make a new password (which can be edited), use OK to write it in the value field and CANCEL to go back.

USB Synchronization Procedure

I usually receive a lot of questions about the USB synchronization. It is based upon J2ME Serial Connection interface, which let the phone links to the PC through USB/Serial/IrDA protocol. On the PC a simple terminal emulator will receive the data in text format and save it. Unfortunately the link procedure is not standardized by J2ME, therefore every manufacturer needs its own steps and phone settings. Here I will describe the procedure for Motorola phones.
In order to save on your PC a database you have to open a database with your password and then select backup option. The phone will ask you if SecretCodes is allowed to use your phone com port. Answer yes and (only then) plug an USB cable from your PC to your phone. Then start HyperTerminal (you can find it in start -> programs -> accessories -> communication). It will ask for a connection name and then a port: select the same com port of the phone (which you can find in device manager after your phone is linked to the pc). At this point in Hyper Terminal select transfer -> capture text and chose a file name. Eventually push a key in Hyper Terminal to get all your database in text format.
The restore procedure is exactly the opposite of backup with the exception it is not required to press any key.

Tools to Synchronize

Janvrot Ivan Vicente Miranda made a software for backup and restore Secret Codes databases through USB connection. It has a nice graphical interface based upon Qt library. The software was developed and tested on Linux (I tried it on Ubuntu), however Janvrot kindly compiled the tool for Windows as well (although that version needs some improvement). Janvrot kindly made it available as open source. Janvrot compiled the code for Linux and Windows (which requires the Qt libray dll: qt-mt338.dll). I find it really useful for the people who want to make database backup and restore over USB cable therefore I put its code on my website.
Linux Backup/Restore Executable Code
Windows Backup/Restore Executable CodeThe backup feature need further development. You need to download also Qt libray qt-mt338.dll
Linux Backup/Restore Source Code

Screen shot


There are several secret code variants depending if the phone supports only serial cable connection (USB/RS232) or Bluetooth (JSR82) or file system (JSR75). I want to thank Jakub Stryja for its idea of file system backup and its help to test the file system version.

Backup on serial cable only

Executable Code

Backup on serial cable and Bluetooth (JSR82)

Executable Code

Backup on serial cable and phone's file system (JSR75)

Executable Code

Source code of all versions

Source Code