At 01:30 PM 6/17/2003 -0400, Amy Chen wrote:
Hi All,

Our Goal:
---------
We would like to sell a custom Palm Application to our customers and collect
revenue for each copy of the application.

Amy, I've worked on an entire product line that is distributed on SD expansion media with copy protection. My client and I have worked out a very nice distribution system that takes into consideration:


  * Updating to newer versions from a single web-downloadable .PRC
  * Restoring an accidentally-formatted SD card simply by doing a HotSync
  * Tracking and reporting (via Excel) customer names & SD card information

If you'd like, get back to me offline via email, and I would be happy to send you more information.

Possible Solution 1:
--------------------
One possible way that has been discussed is using the unique Palm flash ID
that is
available on certain Palm devices, and compiling the application separately
for each device.  This is a little messy, but it does have some merit.

I would avoid this approach -- using a SD card seems to be much easier in my experience.


Possible Solution 2:
--------------------
Another possibility is using the expansion slot and a custom memory card.
Although it would limit us to only those devices with the expansion slot, it
would be a simpler approach than that of using the Palm ID.

Questions:

1. Can a custom application be placed on a memory card such that the memory
card cannot be copied? (so that the application cannot be copied?)

An application can be made aware of the card onto which it has been licensed to run, and then refuse to run unless executed from that card. With this approach, the application can be copied/beamed/etc to other cards, or to main memory on a device, but it will not run.


2. Can the application, when executed on the Palm, require the presence of
the custom memory card in order to run?

Yes, exactly my point in 1) above.


3. If both questions 1 and 2 are possible, where can we find development
information toward using the expansion slot and custom programmed memory
cards?

In a nutshell, use ExpCardInfo() to determine what the deviceUniqueIDStr is. Watch out, there is an OS bug that cause the Tungsten T and Alphasmart Dana device to misrepresent this value. When you sell your product to a customer, put your app on a formatted SD card and use a tool to make your app aware of the deviceUniqueIDStr of the card on which it's been placed. Of course, your app should fail to run if it is then run on a card with a mismatched (or no) deviceUniqueIDStr.


Deploying updates, and having a customer who accidentally deletes his/her SD card, are more difficult tasks. If you'd prefer to roll your own solution, it's tedious and there are a lot of landmines.

-Jeff Ishaq



--
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to