Com Palm Appinstaller

From WebOS Internals
Revision as of 21:56, 8 August 2009 by Czechdev (talk | contribs) (Written the appinstaller summary)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Description

Appinstaller (com.palm.appinstaller) is a Palm D-Bus service that enables the user to manage the packages installation, uninstallation and some other things connected with package management. You can use the service from your application by calling the JavaScript API or from command-line application luna-send.

Found out using an hexa editor, as for sdk62 (webOS 1.1.0) the interesting code in LunaSysMgr starts at 000e:5880 (the methods listing begins at 000e:79c0).

Available methods

The appinstaller offers these service methods:

IPK installation with signature verification

The package needs to be created using the SDK or by following the Packaging Homebrew Apps for Stock Pre without Rooting guide.

palm://com.palm.appinstaller/install {"target":"/ipk/to/install"}

Installation output example:

luna-send -n 5 palm://com.palm.appinstaller/install '{"target":"/tmp/com.test_1.0.0_all.ipk","subscribed":true}'
** Message: serviceResponse Handling: 2, { "returnValue": true, "subscribed": true, "ticket": "6" }
** Message: serviceResponse Handling: 2, { "ticket":6 , "status":"CREATE_TMP" }
** Message: serviceResponse Handling: 2, { "ticket":6 , "status":"VERIFYING" }
** Message: serviceResponse Handling: 2, { "ticket":6 , "status":"IPKG_INSTALL" }
** Message: serviceResponse Handling: 2, { "ticket":6 , "status":"SUCCESS" }

IPK installation without signature verification

The package doesn't have to have a signature. The installation output is the same as when using the verified install method.

palm://com.palm.appinstaller/installNoVerify {"target":"/ipk/to/install"}

Package removal

Removes a package.

palm://com.palm.appinstaller/remove {"packageName":"com.package.name"}

Removal output example:

luna-send -n 3 palm://com.palm.appinstaller/remove '{"packageName":"com.test","subscribed":true}'
** Message: serviceResponse Handling: 2, {"returnValue":true , "ticket":2, "subscribed":true}
** Message: serviceResponse Handling: 2, { "ticket":2 , "status":"IPKG_REMOVE" }
** Message: serviceResponse Handling: 2, { "ticket":2 , "status":"SUCCESS" }


User-installed package listing

Shows the user-installed apps.

palm://com.palm.appinstaller/getUserInstalledAppSizes {}

Listing output example:

luna-send -n 1 palm://com.palm.appinstaller/getUserInstalledAppSizes {}
** Message: serviceResponse Handling: 2, { "returnValue":true , "apps":[ { "appName":"com.palmdts.lightweightapplication", "size":29696},{ "appName":"com.test", "size":112640} ] , "totalSize":142336 }

Application presence test

Probably shows if the application is installed (doesn't work in the emulator; LunaSysMgr consumes 100% CPU and no result). The required parameters are not known.

palm://com.palm.appinstaller/isInstalled {???}

Notify on application change

Probably notifies when the application is changed (installed/removed/etc), not realy sure what it does.

palm://com.palm.appinstaller/queryInstallCapacity {"appId":"com.package.name"}

Query install capactity

Probably finds out how much space is available on the device for the apps installation.

palm://com.palm.appinstaller/queryInstallCapacity {"appId":"com.package.name"}

Install progress query

Probably watch the installation progress, doesn't work in the emulator either. The required parameters are not known.

palm://com.palm.appinstaller/installProgressQuery {???}

Found out by czechdev