To backup the app :
Everything is in the cryptofs dir, even the big map files and the licence file which is used at each start of the app to xcheck with your device ID.
You can backup simply using WOSQI to access the shell onthe device, and enter this to copy everything on the USB partition : cp -r /media/cryptofs/apps/usr/palm/applications/com.ndrive.palmbeta012/ /media/internal
Then, open the usb partition (using your device as USB drive) and copy paste the com.ndrive.palmbeta012 dir to your desktop. There are several things in that dir, NDrive binaries and dependencies, maps, licence, and a bunch of SQLite DB used to store your parameters and nav history. The most important things are the maps (in maps subdir) and licence file (in data subdir) called ndri4.ndr.
A safe backup contains :
- The BETA 6 ipkg
- the maps subdir with all your maps in it
As an option you can keep all the other files contained in the com.ndrive.palmbeta012 dir to keep your history.
Do not forget to store your device id (nduid), in case your device fails, it will be useful to switch device and keep on using the maps.
- To transfer from one device to another one :
I had a to switch from one Veer to another one as the first one has its magnetic connector fully dead and was very disappointed of my dialog with HP and NDrive though I didn't expect a lot they were not even able to do that : I just wanted them to transfer my licence from one device to another one, the only thing they propose, is to offer an android licence (wow).
Therefore I had to investigate to try and activate the map on another devide. Everything was done using NDrive BETA 6 (the one still avail in Palm BETA catalog). It turns out that the licence manager does not identify using HP Catalog account as I had expected, not your IMEI, but just the nduid (device unique ID) which is a bright idea. HP clearly encourages dev to use it this way :
Your application should not use the device ID to uniquely identify a given user. Because devices may be bought, sold, exchanged, or even serviced in a way that results in a user's device ID changing or being transferred to another user, user data and preferences should never be saved and restored on the basis of the device ID; you should implement your own account management system for this purpose.
Impostah allows to override it using a patch, unfortunately, the override is bypass by PDK apps because they rely directly on PDL_GetUniqueID function of the PDL library which gets the nduid at very low level referring to /proc/nduid. The idea is to fake the nduid at low level so that the key NDrive uses to identify the device is modified. To do that, you have to patch libpdl.so directy which is a binary file in which /proc/nduid appears in clear. You can therefore change it to another path (provided is is exactly 11 char long) containing the patched nduid. Then it becomes a bit tricky because you have to create the file containing the patched nduid and transfer et to NDrive jail.
Here is what I have done :
1 - patching usr/lib/libpdl.so to replace /proc/nduid by /etc/nduid2 (for instance using WOSQI to get the file, then np++ to patch in hex mode then WOSQI again to put it back on the device) don't forget to keep a bakcup of the file.
2 - on a device shell, I created the new nduid with echo 'yournduidhere' > /etc/nduid2
3 - still on the shell, copy it to the Jail : cp /etc/nduid2 /var/palm/jail/com.ndrive.palmbeta012/etc/nduid2
For step 3 just above, note that NDrive must have been launched at least once so that the jail exists.
Then launch NDrive and check in the about section : the nduid (what you see in red) should be patched.
Of course, as other app may refer to libpdl, the big drawback of this method is that all the other apps are affected. It was not a problem for me but depending on the apps you use it maybe.
[11/24/2012 UPDATE for 2.2.4]
In WebOS 2.2.4, it seems that the jail is erased and recreated at each WebOS restart so we have to find a way to patch /etc/nduid2 in the Jail at each WebOS startup. I propose the following method : Create the following script and put it in /etc/event.d/ dir :
There is another advantage of using this method, it allows to set the patched nduid specifically for ndrive : you can keep the original nduid for all other stuff on your phone. You can even set a specific nduid for any other app running on the phone using the same trick.
# the following line allows to start only when WebOS boot is over
start on stopped finish
mkdir -p /var/palm/jail/com.ndrive.palmbeta012/etc/
echo 'yournduidhere' > /var/palm/jail/com.ndrive.palmbeta012/etc/nduid2
Good luck !