3 min read

Converting YAPS to KeePassDroid

When moving from Palm to Android, one of my big concerns was password management. I had about a hundred passwords stored in YAPS, which is a great Palm password store.

I looked around and decided that KeePassDroid would suit nicely. It’s open source, does decent encryption, and is free.

That brought up the question: how do I convert from YAPS to KeePassDroid? I didn’t want to retype everything - and I eventually did manage to get things working. It was a bit of an effort, though - here’s what I did.

  1. First, get the required components. I used YapsView (not strictly necessary, but it makes things easier), cygwin perl, GNU emacs, and KeePass 2.16
  2. Export the Palm database into a file called Yaps.txt. I used YapsView to do this, but in theory you could use Yaps to export it to the Palm notepad and then cut & paste that to a file on your desktop.
  3. Once the file has been exported, convert all instances of \ to \\. I used emacs to do this.
  4. Convert all instances of ” to \” using emacs as well. (Do this after doing \ so you don’t expand the \ in \”.)
  5. Save the modified Yaps.txt.
  6. Next, I found a perl script that converted Yaps to KeePassX here. I hacked that up to create a script I called convertcsv.perl that convertes Yaps to CSV in the KeePass 1.0 format. It is convertcsv.pl.
  7. Run “perl convertcsv.perl” in the same directory as Yaps.txt. This will create yaps.csv.
  8. Create a new databse in KeePass 2.0. I set it to encrypt notes (under the “Protection” tab) and used defaults for the rest.
  9. Import yaps.csv into the database you just created. File -> Import… KeePass 1.x CSV. I said “Overwrite existing” but I don’t think it makes a difference at this point.
  10. Now move all the passwords to the proper categories in KeePass. This is dull. If you exported only a category at a time, this might be easier.
  11. Finally, export the 2.0 database into a KeePass 1.x file. Although KeePassDroid can read KeePass 2.x files, it can’t write them. I usually update passwords on my device, so I needed to be able to edit. I use KeePass 2.0 as the master on my desktop, but import from the 1.0 file from the device whenever I update a password.

That’s it. Your mileage may vary - especially if you have strange characters in your Yaps password file. I did have a few passwords with ” marks in them, and they appeared to migrate OK. A few minor edits was way better than retyping everything!