Com Palm Appinstaller

= 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