Linux Crumbs

Migrating from Palm OS to Android - The Journey Begins


This article is the first in a series exploring the replacement of my ageing Palm OS device with a device running Android. For me, Palm OS devices have proven to be an effective way to manage my personal information, and to easily synchronize and backup this data with my GNU/Linux desktop computer. My goal is to replace this functionality as closely as possible using the following guidelines:

  1. Use Free Software to replace Palm OS functionality
  2. Synchronize with my GNU/Linux desktop, not external service providers
  3. Keep the stock "non-rooted" Android image

In this first article I describe how to set up J-Pilot to work with Palm OS, and then list some key features and applications I enjoy on my Palm OS device.

Then to get started with Android, I describe how to install music and applications on Android over USB cable and WiFi. Subsequent articles will cover replacing specific Palm OS functionality with Android equivalents.

This article will be updated as replacement applications are found.
Last updated Dec 12, 2016.


Set Up Palm OS with GNU/Linux

Since J-Pilot will play a role in migrating some of the Palm OS data, I thought I had better describe how I installed it on my Kubuntu 12.04 desktop. Kubuntu is a derivative GNU/Linux distribution based on Ubuntu which is based on Debian.

  1. Open a terminal window.

    In the K Desktop Environment (KDE) this can be done with the menu option: K -> System -> Konsole (Terminal).

    TIP:   Opening a terminal in other desktop environments

    You can often open a terminal window using the following steps:

    a) Press Alt+F2 to open a run command prompt
    b) Enter "xterm" without the quotes

  2. Install J-Pilot for synchronizing data between Palm OS and GNU/Linux.

    sudo apt-get install jpilot

    The synchronized data is stored in the ~/.jpilot folder.

    TIP:   Install commands for other distributions

    For Fedora, Red Hat Enterprise Linux, and CentOS use:

    su -c yum install jpilot

    For openSuse, and Suse Enterprise Linux use:

    sudo zypper install jpilot

  3. Start J-Pilot

    In KDE start J-Pilot with the menu option K -> Office -> J-Pilot

    Choose menu File -> Preferences
      Click Settings tab
        Ensure Sync Port: usb:
      Click Conduits tab
        Disable unused conduits. For example Expense or SyncTime

    TIP:   Starting J-Pilot

    If you are unable to locate a J-Pilot menu entry, you can start J-Pilot from the command line:

    jpilot &

  4. Ensure your userid has access to the dialout group.

    In KDE you can add userid to group dialout with the following:

    Start K -> Settings -> System Settings
      Under System Administration
      Double click User Management
        Select username and click Modify...
          Under Privileges and Groups tab
            Enable dialout group

    TIP:   Adding userid to a group from command line.

    You can add a userid to a group with:

    useradd -G dialout userid

  5. Acquire new group privilege

    Logout and login to enable new group privilege.

    You should now be able to synchronize between Palm OS and GNU/Linux by clicking the J-Pilot hotsync button and then initiating a hotsync from your Palm OS device.

TIP:   J-Pilot 1.8.2 adds export improvements

If your distro has an older version of J-Pilot, then consider updating to J-Pilot 1.8.2 because it fixes VCard output and adds export for KeePassX.

If you are running 64-bit Ubuntu you can download Debian packages for Precise (12.04) or Trusty (14.04) at

These packages can be installed using the following command:

sudo dpkg -i jpilot_1.8.2_amd64.deb jpilot-plugins_1.8.2_amd64.deb

Current Palm OS Usage

Since 1997 I have used many Palm OS devices. These have included the Palm Pilot Professional, Palm IIIxe, Sony Clie Peg SJ22, and PalmOne Tungsten E2. I've had the Tungsten E2 since 2005 and would continue to use it except for the fact the speaker has become unreliable and sometimes fails to alert me of upcoming appointments. Unfortunately the demise of Palm means no new Palm OS devices.

Palm did an amazing job of making it easy to manage personal information such as contacts, calendars, memos and tasks. Further, Palm made it easy to synchronize changes between the palm pilot and a desktop computer. Palm OS devices had great battery life too from my experience, lasting a few weeks.

Following is a list of applications I use and a brief description of key features, and a potential Android replacement.

Productivity Apps

Palm OS Application Description Potential Android Replacement
Calendar / Datebook My most used application. Used to track recurring birthdays and anniversaries, in addition to upcoming events and tasks to do. Android Calendar app with DAVdroid and Radicale.
Contacts / Addressbook Tracks all of the names, addresses, and contact information for people and businesses. Android People app with DAVdroid and Radicale.
Memos Keeps short notes, check lists, etc. A text editor with a file synchronization tool, such as 920-text-editor with adb-sync.
Tasks / Todos Can be used for to do items, though I found myself scheduling short term tasks in the Calendar, and placing long term tasks in a paper notebook. To be determined
World Clock Displays date and time in select locations around the world. Android Clock App
Shortcuts (Palm Prefs setting) Built-in Palm OS functionality. Given a few letters will expand into preset-set text. Settings -> Language & input -> Personal dictionary. Add expanded text + shortcut. Shows up as autocorrect suggestion.
Hotsync Synchronize changes between Palm OS device and desktop computer. Information is stored and accessible on each computer. Provided on GNU/Linux by J-Pilot. See Android Observation.
ezConvDA with DA Launcher Unit conversion that works by immediately converting a value, as it is entered, into different units of measurement. To be determined
Hours Tracks hours spent on tasks and projects, along with per entry description. Useful along with desktop command line program hrsh2csv for generating consulting invoices. Built-in Quickoffice spreadsheet and adb-sync.
TiBR Read books. FBReader
Plucker Read articles offline. Plucker provides ability to click on external links and copy the URL to a unfiled dated Memo. Later, when on-line I can read or capture an individual article.

For regular newsfeed or web page article capture I use Sitescooper.

For individual article capture I use Sunrise and the Firefox Sunrise.xpi extension.
RSS Reader such as spaRSS, or epub book reader such as FBReader.

For regular RSS newsfeed article capture use an RSS reader.

For individual article capture use Firefox with the GrabMyBooks add-on to create an epub file.
Keyring Store passwords and other sensitive information in encrypted format. Synchronizes with J-Pilot. KeePass with KeePassDroid on Android and KeePassX on GNU/Linux.
Ma Tirelire Track personal chequing account transactions and balance. Supports recurring payments. To be determined
Holiday Debts Tracks shared expenses on trips. The app determines who owes how much to whom. An HTML report can be generated on the desktop using hdebtsreport. MoneyBalance
PgmrCalc Calculator that works in decimal, hexadecimal, binary, and octal. Mathdroid
DiddleBug Draw on touch screen. Useful to quickly jot down small diagrams or notes. Markers
FileZ File manager. Simple Explorer

Entertainment / Planet Apps

Palm OS Application Description Potential Android Replacement
RealPlayer MP3 music player kure Music Player
Patience or Patience Revisited Collection of solitaire card games. SolitaireCG
Cribbage Cribbage card game. To be determined
Hearts Hearts card game. To be determined
Bejeweled Gem matching game. FreeGemas
HMaki Match tiles to remove game. To be determined
Go Moku Five in a row strategy game. To be determined
FreeJongg Mahjongg tile matching game. Mahjongg Builder
Noble Moor or Inverti Othello / reversi strategy game. DroidZebra
Pegged Jump pegs to remove strategy game. Marble One
Pilot Mines Mine sweeper game. Mines -- Simon Tatham's Puzzles on Android
Neil's Sokoban or Web Sailor Sokoban Push blocks to destination strategy game. Sokoban
Traffic Sliding piece puzzle game also known as Rush Hour. To be determined
Vexed Move blocks puzzle game. To be determined
Moon Phase Phase of the moon on a given date. To be determined
RiseSet Sunrise and sunset times for a given location on a given date. To be determined
Tide Tool Tide tables for a given location on a given date. To be determined

Android Observation

Currently it appears there is no single GNU/Linux J-Pilot hotsync replacement. Instead each Android application is handled separately. Some of these applications synchronize with a server, while others do not.

The best option I've found so far is adb-sync which permits one-way or two-way directory and file synchronization between GNU/Linux and Android.

Palm OS Replacement Device

In seeking a replacement for my Palm OS device, I looked for a small, commonly available, reasonably priced device. Initially an iPod Touch seemed like a good candidate. However, I found this option to be unworkable due to Apple's closed ecosystem and lack of GNU/Linux support.

An Android tablet seemed a likely choice too, however the smallest I could find had a 7 inch screen and was too large for my pocket. Fortunately unlocked Android phones have recently become available in Canada. These phones fit in my pocket and do not require a cellular plan.

To replace my PalmOne Tungsten E2, I purchased an unlocked Motorola Moto G 2014 2nd Generation Android device running Android 4.4.4 KitKat. Note that I do not have a cellular plan and plan to use this device solely as a Palm OS replacement.

Since I am trying to replicate the functionality I had between my Palm OS device and my GNU/Linux computer, I skipped creating or using a google account when setting up my Android device. My end goal is to synchronize with my desktop computer, not an external service provider.

Copying Music and Files from GNU/Linux to Android

One graphical application I found to copy files over the USB cable with Android is gMTP.

TIP:   Try mtpfs

On kubuntu 16.04 I found that mtpfs worked well with file managers such as Dolphin.

Install with:

sudo apt-get install mtpfs

To install gmtp, open a terminal window (K -> System -> Konsole) and enter:

sudo apt-get install gmtp

gMTP will install a menu entry in K -> Multimedia -> gMTP.

gMTP lets you connect and disconnect from the internal memory storage and the SD card. Remember to disconnect or exit gMTP before disconnecting the USB cable.

When I plugged my Android device into my computer, the Android device displayed a USB computer connection setting window. I selected Media Device (MTP). The other choice was Camera (PTP) which I believe can be used for downloading pictures.

You can also swipe down from the top of the screen, to get to the USB computer connection setting screen. Here you can choose between Media device (MTP) or Cameral (PTP).

From Linux I dragged a set of folders containing MP3 albums from the Dolphin file manager (K -> System -> Dolphin) to the Android device Internal Memory:/Music folder in gMTP. gMTP complained that it couldn't create Albums, so I simply acknowledged those messages. After the copy was completed it appears that gMTP created subfolders for my albums under the /Music folder and the songs were listed and would play in the Android Play Music application.

Installing Android Applications over USB

To install applications over the USB cable without WiFi needs a few things:

  1. Add the android adb command to GNU/Linux by opening a terminal window (K -> System -> Konsole) and entering the following commands:

    sudo add-apt-repository ppa:phablet-team/tools && sudo apt-get update
    sudo apt-get install android-tools-adb

    Alternatively you can install the Android SDK, which contains adb under the platform-tools folder.
  2. Enable Android developer setting on the phone.

    See Enabling On-device Developer Options

    On Android 4.2 and higher these steps are:

    1. Navigate to Settings > About Phone > scroll to the bottom > tap Build number seven (7) times. You will get a short pop-up in the lower area of your display saying that you're now a developer.
    2. Go back and access the Developer options menu, enable USB debugging and click OK on the prompt.
  3. Use the USB cable to attach the Android device to your computer.
  4. Search for an application and download the .apk file.

    For example, download Simple Explorer.

    By default the file will be downloaded to ~/Downloads/com.dnielfe.manager_59.apk

    Note that the F-Droid site focuses on Free and Open Source Software (FOSS).
  5. Open a terminal window in GNU/Linux and install the application with the command:

    adb install ~/Downloads/com.dnielfe.manager_59.apk

    NOTE:   Android device must be powered on with USB debugging allowed.

    Your Android device must be powered on and you must allow debugging (the phone will prompt you). If it wasn't enabled then enable USB debugging and try this again.

  6. The Simple Explorer application should now show up on your Android device.

Installing Android Applications over WiFi

An easy way to install applications is from the F-Droid app while WiFi is enabled.

To be able to install F-Droid and other 3rd party apps perform the following steps on your Android device.

  1. Navigate to Settings -> Security, and enable Unknown sources.
  2. In web browser navigate to the F-Droid web page and click on Download F-Droid.

    Note that this will store the .apk file in the Downloads folder.
  3. Open the Downloads app.
  4. Click on the FDoid.apk file and agree to install.

    Once F-Droid is installed you can use it to browse and install applications from the F-Droid site. :-)


While researching how to migrate from Palm OS to Android I found the following references useful:

Future Articles

In future articles, I plan to cover the following topics:

Medusa Deception novel on sale now
News   Documentation     Copyright (c) 2013-2018 Curtis Gedak

Get GParted at Fast, secure and Free
	Open Source software downloads Valid HTML 4.01! Correct CSS! Privacy policy