http://wiki.webos-internals.org/api.php?action=feedcontributions&user=Destinal&feedformat=atomWebOS Internals - User contributions [en]2024-03-28T22:23:39ZUser contributionsMediaWiki 1.35.1http://wiki.webos-internals.org/index.php?title=Novacom&diff=21739Novacom2012-03-30T18:01:11Z<p>Destinal: corrected spelling on command line</p>
<hr />
<div>Novacom is a protocol for communication between a host PC and a webOS device or emulator and also the name of the official software that implements the novacom protocol.<br />
<br />
(please add details here)<br />
<br />
== Novacom over TCP ==<br />
<br />
By default, only the novacomd of the emulator is configured for TCP, but you can use novacomd over TCP with a physical webOS device as well with the following steps (credit to EricBlade for identifying this procedure)<br />
<br />
On the PC you want to connect from, open a command prompt and enter:<br />
<br />
<pre><br />
sc stop Novacomd<br />
sc start Novacomd -b (your LAN IP Address)<br />
</pre><br />
<br />
On the webOS device you want to connect to, login to a shell, and edit /etc/event.d/novacomd<br />
<br />
Change the line that says:<br />
<br />
<pre><br />
exec /sbin/novacomd > /dev/null<br />
</pre><br />
<br />
To:<br />
<br />
<pre><br />
exec /sbin/novacomd --connect-ip (your computer's LAN IP Address you entered above)<br />
</pre><br />
<br />
Then disconnect your webOS device from USB, and reboot it.<br />
<br />
When it comes back up, it shows up in "novacom -l" as an emulator connected via tcp, and all the palm-* commands work.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Novacom&diff=21737Novacom2012-03-30T17:42:33Z<p>Destinal: created stub with tcp info</p>
<hr />
<div>Novacom is a protocol for communication between a host PC and a webOS device or emulator and also the name of the official software that implements the novacom protocol.<br />
<br />
(please add details here)<br />
<br />
== Novacom over TCP ==<br />
<br />
By default, only the novacomd of the emulator is configured for TCP, but you can use novacomd over TCP with a physical webOS device as well with the following steps (credit to EricBlade for identifying this procedure)<br />
<br />
On the PC you want to connect from, open a command prompt and enter:<br />
<br />
<pre><br />
sc stop Novacomd<br />
sc start Novacomd -b (your LAN IP Address)<br />
</pre><br />
<br />
On the webOS device you want to connect to, login to a shell, and edit /etc/event.d/novacomd<br />
<br />
Change the line that says:<br />
<br />
<pre><br />
exec /sbin/novacomd > /dev/null<br />
</pre><br />
<br />
To:<br />
<br />
<pre><br />
exec /sbin/novacomd --conect-ip (your computer's LAN IP Address you entered above)<br />
</pre><br />
<br />
Then disconnect your webOS device from USB, and reboot it.<br />
<br />
When it comes back up, it shows up in "novacom -l" as an emulator connected via tcp, and all the palm-* commands work.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Application:MetaDoctor&diff=21689Application:MetaDoctor2012-02-26T21:11:54Z<p>Destinal: Fixed java installation steps</p>
<hr />
<div>[[Category:Application]]<br />
This page is currently available in four languages:<br />
:[[Image:Australia.png]] [[Image:USA.png]] [[Application:MetaDoctor]]<br />
:[[Image:France.png]] [[Application:MetaDoctor-FR]]<br />
:[[Image:Germany.png]] [[Application:MetaDoctor-DE]]<br />
:[[Image:Mexico.png]] [[Image:Spain.png]] [[Application:MetaDoctor-ES]]<br />
<br />
= What is the Meta Doctor? =<br />
<br />
The Webos Internals Meta Doctor is a Makefile which can modify a copy of the Palm webOS Doctor before it is flashed onto a webOS device. It accomplishes this by reaching into Palm's distributed Doctor JAR file and making changes to it.<br />
<br />
'''Documentation for the features that the MetaDoctor offers is in the README file.'''<br />
<br />
= Step 1: Setting up Meta-Doctor=<br />
<br />
== Windows ==<br />
<br />
'''NOTE THAT USING CYGWIN ON WINDOWS IS NO LONGER SUPPORTED AND WILL MAKE YOUR PHONE FAIL TO BOOT'''<br />
<br />
Windows users can use the meta doctor without harming your current installation of windows using simple Ubuntu installer called WUBI. Also no need for moding any partitions or installing any boot loaders. It will just appear as program in your installed software list and when you do not want it anymore simply uninstall it while in windows through Control Panel. It is easy and there is no virtual machine headaches of trying to configure USB, Network and File sharing with host computer... To access it you just reboot and choose Ubuntu from dual boot screen.<br />
<br />
# Download [http://www.ubuntu.com/getubuntu/download Ubuntu 11.04], look for the Ubuntu Desktop Edition, '''not the Windows Installer'''<br />
# Burn that file to a cd or mount to virtual drive<br />
# Run cd in windows (the wubi.exe file inside the disk, it also comes up in auto run) - '''Don't boot your machine with the CD (called as using the LiveCD, as this option won't give you enough space for the MetaDoctor process to complete.'''<br />
# Click on '''Install Inside windows'''.<br />
#: This will install Ubuntu while running Windows without the need of making a partition. I would recomand making the install image the full recommended 30 gigs if you have the hard drive space and think you are interested in actually using the Ubuntu OS, otherwise the minimum recommended by Wubi should be just fine. <br />
# Restart your computer and you can dual boot to Windows or Ubuntu <br />
<br />
The nice thing about this is that it will allow you to uninstall Ubuntu right from Windows as if it was never there and remove the dual boot, not to mention the fact you do not need to partition your drive.<br />
<br />
If you are still wondering what Wubi is, the following link should explain it to you better.<br />
[https://wiki.ubuntu.com/WubiGuide Wubi Guide]<br />
<br />
Once you have installed WUBI, you should follow the instructions in the Linux section below.<br />
<br />
== Linux == <br />
<br />
# Open terminal from the ( Applications > Accessories ) menu.<br />
# Update your package lists and install git and Java runtime (the Canonical Partner Repository is needed to install the Sun Java JRE because it was moved out of the Multiverse in Ubuntu 10.04). Type: <pre>sudo apt-get install python-software-properties</pre><pre>sudo add-apt-repository ppa:ferramroberto/java</pre><pre>sudo apt-get update</pre><pre>sudo apt-get install git</pre><pre>sudo apt-get install sun-java6-jre</pre> (To accept the Java License Page, press tab until 'OK' is highlighted, then press enter) If the java install fails, look for support on the Java website [http://www.java.com/en/download/linux_manual.jsp here]. If you receive an error about git, repeat the command using git-core instead.<br />
# Download and install the Palm Novacom software: [https://cdn.downloads.palm.com/sdkdownloads/2.1.0.519/sdkBinaries/palm-novacom_1.0.64_i386.deb 32-bit] or [https://cdn.downloads.palm.com/sdkdownloads/2.1.0.519/sdkBinaries/palm-novacom_1.0.64_amd64.deb 64-bit]. If you have trouble installing, you can find more information [https://developer.palm.com/content/resources/develop/sdk_pdk_download.html#c28522 here].<br />
# Make sure you are not running as root, and navigate to your home directory. <pre>cd</pre><br />
# Download the meta-doctor scripts using git. Type: <pre>git clone git://github.com/webos-internals/meta-doctor.git</pre><br />
# Navigate to the meta-doctor directory. <pre>cd meta-doctor</pre><br />
# Create a downloads directory. Type: <pre>mkdir downloads</pre><br />
<br />
== Mac OS X 10.6 ==<br />
<br />
#Install MacPorts first, which will allow us to easily install the necessary packages for MetaDoctor. [http://www.macports.org/install.php]. Please note that MacPorts requires Apple's Xcode Developer Tools (version 3.2.1 or later for Snow Leopard, 3.1.4 or later for Leopard, or 2.5 for Tiger), found at the [http://connect.apple.com/ Apple Developer Connection site], on your Mac OS X installation CDs/DVD, or in the [http://itunes.apple.com/us/app/xcode/id448457090?mt=12# App Store].<br />
#Install md5sum: <pre>sudo port install md5sha1sum</pre><br />
#Install git: <pre>sudo port install git-core</pre><br />
# Make sure you are not running as root, and navigate to your home directory. <pre>cd</pre><br />
# Now type the following command to get your local copy of the meta-doctor script: <pre>git clone git://github.com/webos-internals/meta-doctor.git</pre><br />
#Install patch: <pre>sudo port install gpatch</pre><br />
#If you do not have Java installed, do so. To install Java, click on the "Apple" icon and select "Software Update." This will automatically update you to the latest version of Java if necessary, as Apple supplies their own version of Java. Further instructions can be found [http://support.apple.com/kb/HT1338?viewlocale=en_US here].<br />
#Download and install the Palm Novacom software from http://developer.palm.com. The Mac OS X SDK is located [http://cdn.downloads.palm.com/sdkdownloads/1.4.5.465/sdkBinaries/Palm_webOS_SDK.1.4.5.465.dmg here].<br />
#Open a terminal and navigate to the meta-doctor directory where the meta-doctor was copied to in step 5 above.<pre>cd meta-doctor</pre><br />
#Ensure that there is a downloads directory. If there is not one, create one using <pre>mkdir downloads</pre><br />
<br />
= Step 2: Running the webOS Doctor=<br />
<br />
Note that if you are following a procedure on another wiki page which only requires the installation of the MetaDoctor and then tells you to return to that other page, then this is the place at which you should return.<br />
<br />
'''If you intend to enable WIFI Profiles, you must copy a file off of the phone before doctoring. See the section below on enabling wifi profiles.'''<br />
<br />
# Navigate to the meta-doctor directory in the terminal<br />
# Download the latest webosdoctor file using the download paths found at [http://www.webos-internals.org/wiki/Webos_Doctor_Versions Webos Doctor Versions] .<br />
'''Note ''': if you receive an error message when running the make file, (e.g 'Please download the correct version of the webOS Doctor .jar file and then move it to downloads/webosdoctorp220manta-wr-2.2.0.jar'), and you are sure you have the correct doctor you need to rename your doctor file, so it matches the name in the error message (e.g. sudo mv webosdoctorp220mantawr.jar webosdoctorp220manta-wr-2.2.0.jar)<br />
The wr version is the French,German,Irish,Spanish and UK GSM version. An example (e.g. current Web OS as of 11/23/11) download command would be: <pre>cd downloads</pre><pre>wget http://palm.cdnetworks.net/rom/touchpad/p304rod10182011/wd304wifi/webosdoctorp304hstnhwifi.jar</pre><br />
# If you would like Meta-Doctor to apply patches to webOS in order to add or change functionality from the factory install, open the Makefile with your favorite text editor and uncomment (remove the leading # characters from) the options you would like to use. For example, if you plan to install Ubuntu, now is the time to uncomment the EXT3FS_PARTITION_SIZE option in the Makefile and edit it per [http://www.webos-internals.org/wiki/Chrooting these instructions].<br />
# Before doing the next step, make sure you change back into the meta-doctor directory first. All the following commands must be run from the meta-doctor directory.<br />
# Type one of the following: <br />
#: <pre>make DEVICE=pre CARRIER=wr all</pre><br />
#: <pre>make DEVICE=preplus CARRIER=wr all</pre><br />
#: <pre>make DEVICE=pixiplus CARRIER=wr all</pre><br />
#: <pre>make DEVICE=pre CARRIER=sprint all</pre> <br />
#: <pre>make DEVICE=pixi CARRIER=sprint all</pre> <br />
#: <pre>make DEVICE=pre CARRIER=bellmo all</pre><br />
#: <pre>make DEVICE=pre CARRIER=telcel all</pre><br />
#: <pre>make DEVICE=preplus CARRIER=verizonwireless all</pre><br />
#: <pre>make DEVICE=pixiplus CARRIER=verizonwireless all</pre><br />
#: <pre>make DEVICE=preplus CARRIER=att all</pre><br />
#: <pre>make DEVICE=pixiplus CARRIER=att all</pre><br />
#: <pre>make DEVICE=touchpad CARRIER=wifi all</pre><br />
#: depending on the carrier in question.<br />
'''Note ''': use make DEVICE=palm_smartphone_type CARRIER=wr all for O2 Germany, UK and Ireland / Movistar Spain / SFR France<br />
<br />
This should begin a process within the terminal that should take 10 minutes max.<br />
<br />
<br />
<br />
=== Error conditions ===<br />
<br />
If you receive an error message when running the make file, (e.g 'Please download the correct version of the webOS Doctor .jar file and then move it to downloads/webosdoctorp220manta-wr-2.2.0.jar'), and you are sure you have the correct doctor you need to rename your doctor file, so it matches the name in the error message (e.g. sudo mv webosdoctorp220mantawr.jar webosdoctorp220manta-wr-2.2.0.jar).<br />
<br />
=== If the build fails ===<br />
<br />
If the make command fails, you can use <pre>make clobber</pre> to clean up the build directory. After this you can re-run the command.<br />
<br />
=== Running the patched webOS Doctor ===<br />
<br />
The updated doctor version has the same name as the original, but is in a new folder: ''meta-doctor/build/<name_and_version>/webosdoctorp304hstnhwifi.jar''.<br />
<br />
If you are running in Ubuntu or Cygwin, you can just run the new jar file now. <br />
<br />
If you are running Ubuntu using VM, you will need to copy the new jar out of the VM into your live desktop to run the jar in your native OS. <br />
<br />
CD to the folder where your new jar file is, and type something like: <br />
<br />
java -jar webosdoctorp304hstnhwifi.jar<br />
<br />
If you were using a VM or some other virtual method, you will need to copy the jar file out to your main operating system before running it. <br />
<br />
<br />
''Windows host:''<br />
<br />
[http://ubuntuexperiment.wordpress.com/2008/11/12/sharing-folders-between-host-and-guest-os-in-virtualbox/ VirtualBox folder Sharing]<br />
<br />
[http://www.howtogeek.com/howto/ubuntu/how-to-share-folders-with-your-ubuntu-virtual-machine-guest/ VMWare folder Sharing]<br />
<br />
''Mac OSX host:''<br />
<br />
[http://davidherron.com/blog/topics/628-virtualbox-running-ubuntu-accessing-host-file-system-mac-os-x VirtualBox folder Sharing]<br />
<br />
<br />
: ''NOTE: this only applies to WUBI Users'' <br />
You should be able to run the JAR as if you had Linux installed natively because in a sense you do (as long as Java is installed and you run the Jar using Java) but if you rather run it in windows <br />
<br />
Using terminal the following command in a Wubi installation of Ubuntu will copy the JAR file to the host Windows OS :<pre>cp /meta-doctor/build/<name_and_version>/webosdoctorp304hstnhwifi.jar /host/webosdoctorp304hstnhwifi.jar</pre><br />
This will place the Jar either in your Windows C:\ drive or whatever drive you installed Wubi to.<br />
<br />
== Once the Doctor is running ==<br />
<br />
# Select your language<br />
# Accept the license agreement<br />
# Connect your Pre to your PC via USB and select "Next" when it becomes available<br />
<br />
After completion the device will reboot and present you with the activation set-up.<br />
<br />
If your PC does not recognize your Pre and you cannot go past step 3 above, try the following steps:<br />
<br />
# With the USB cable connected, completely power off the Pre (hold down the power button until the option to power off appears)<br />
# Hold down the Up button on the volume rocker<br />
# While holding the Up button, power on the Pre<br />
# "Next" should now be enabled - proceed with the recovery<br />
{{tux|Tux_with_Pre.png|float:right;}}<br />
The above steps will put the Pre into bootloader recovery mode and should allow the PC to recognize your device and proceed with the restore. In this mode the screen will display a giant USB logo instead of the usual Palm startup logo.<br />
<br />
When the process finishes, the Pre will reboot and your new modified image will have been installed.<br />
<br />
----<br />
<br />
After the doctor completes, you will need to run the "First Run" application. To do this, you will need an active internet connection. Either WiFi or Cellular. If you do not have WiFi and cannot connect to the Palm Profile servers, you might have a problem with your programming. This Meta Doctor (or webOS Doctor in general) could possibly erase the modem's programming. To resolve you will need to perform the following steps:<br />
<br />
'''Note:''' This has only been confirmed to resolve Sprint CDMA issues, YMMV.<br />
<br />
'''Note 2:''' You should try to update your profile first. Open the phone app, open the App Menu and select ''Preferences'' then select ''Update Network Settings''. If you get an error, then procede with these instructions.<br />
*'''1.''' Open the Phone App.<br />
*'''2.''' Enter ''##MSL#'' (MSL= 6 digit lock code. Get this from Sprint.)<br />
*'''3.''' Verify your MDN and MSID are incorrect. If they are incorrect, continue. If they are correct, this is not your problem and you should not continue.<br />
*'''4.''' Select ''Edit''.<br />
*'''5.''' Select the first box (MDN) and enter your 10-digit cellular number.<br />
*'''6.''' Select the second box (MSID) and enter your 10-digit MSID (Get this from Sprint).<br />
*'''7.''' Select ''Save''.<br />
*'''8.''' Backswipe out of the the view.<br />
*'''9.''' You should now be able to open complete '''Note 2''' above without any errors.<br />
<br />
You should now be able to run the ''First Use'' application without any problems.<br />
<br />
=If the Doctor will not run=<br />
Go [http://www.webos-internals.org/wiki/How_To_Recover here] if you have further problems connecting your Pre to the running Meta'ed Doctor.<br />
<br />
=Miscellaneous=<br />
Clarification for Linux beginners on where to place the prefsDB.sl file, per instructions in the makefile.<br />
Steps:<br />
# Open makefile using a text editor (like WordPad) and use the instructions there to retrieve your prefsDB.sl file from your device. Save it somewhere convenient on your host machine (aka, computer).<br />
# Navigate to the meta-doctor directory and create the config directory:<pre> mkdir -p config</pre><br />
# Rename your prefsDB.sl file to com.palm.wifi.prefsDB.sl<br />
# Put com.palm.wifi.prefsDB.sl in the config directory.<br />
# Continue following instructions in the makefile.<br />
<br />
==How to enable WIFI profiles==<br />
To enable wifi profiles it is necessary to copy your wifi profile file off of your phone and place this in a directory, as well as enable the wifi profile option in the makefile. <br />
<br />
# Move to the meta-doctor directory <pre>cd meta-doctor</pre><br />
# Create a "config" folder in the meta-doctor directory <pre>mkdir config</pre><br />
# Copy the prefsDB.sl file off of your phone from the var/preferences/com.palm.wifi/ and into the "config" directory that you just created.<br />
# Rename this file "com.palm.wifi.prefsDB.sl" without the quotes<br />
# Open the makefile (which is in the meta-doctor directory) and remove the "#" from the line "# INSTALL_WIFI_PROFILES = 1". Save the makefile.<br />
# Build the custom doctor by running the script, or otherwise building it.<br />
<br />
<br />
On launch of the new doctor your wifi profile should automatically connect, but '''only if''' you had previously connected to the WIFI network you are trying to use.<br />
<br />
See these links for more information: [http://forums.precentral.net/webos-internals/276460-how-install-webos-2-1-0-pre-pre-using-meta-doctor-27.html#post2882495 Post 1], [http://discussion.treocentral.com/webos-internals/276460-how-install-webos-2-1-0-pre-pre-using-meta-doctor-43.html#post2884415 Post 2].<br />
<br />
==How to get the optional ext3fs partition mounted at device boot==<br />
<br />
'''(NOTE: This is a necessary step to get UbuntuChroot working on the touchpad and must be done before UbuntuChroot is installed)'''<br />
<br />
Note that you have to use the Meta-Doctor as shown earlier in this page to doctor your device to create the ext3fs partition before attempting the following steps.<br />
<br />
All of this is done on device either via novaterm or an SSH login. Instructions for running novaterm on your desktop computer are [http://www.webos-internals.org/wiki/Accessing_Linux_Using_Novaterm here] (you may skip step 1 if you already downloaded the Palm SDK while setting up the Meta-Doctor).<br />
<br />
If your device does NOT have a folder at /media/ext3fs then you will need to create it first. Use the following two commands:<br />
<br />
<pre>mount -o remount,rw /<br />
mkdir -p /media/ext3fs</pre><br />
<br />
it is important that you use /media/ext3fs as the location, otherwise some homebrew applications (such as Optware and the Ubuntu 11.04 Chroot) will not be able to find it and use it properly.<br />
<br />
After you have created the mountpoint, we are going to edit the fstab file to set it up to mount at bootup.<br />
<br />
<pre>mount -o remount,rw / *****Not necessary if you performed the previous steps, but doesn't hurt if you do it twice<br />
echo "/dev/mapper/store-ext3fs /media/ext3fs ext3 noatime,data=writeback 0 0" >> /etc/fstab</pre><br />
<br />
Now to get it mounted you have several options, the best one is the first command as it will use the data in /etc/fstab. If that works, then you have done this correctly and your ext3fs will mount at bootup.<br />
<br />
<pre>mount -a</pre><br />
<br />
If you do not want it mounted at bootup, but you do need it mounted, you can use this command.<br />
<br />
<pre>mount /dev/mapper/store-ext3fs /media/ext3fs</pre><br />
<br />
== How to remove the ext3fs partition ==<br />
<br />
# Connect your webOS device to your PC<br />
# Open up Terminal (Mac/ Linux) or Command Prompt (Windows), then type "novaterm"<br />
# And after you presented by your webOS device's root shell, run this command:<br />
* Unmount EXT3FS partition:<br />
# umount /dev/mapper/store-ext3fs<br />
<br />
* Remove EXT3FS partition:<br />
# lvremove /dev/mapper/store-ext3fs<br />
<br />
Then run meta-doctor to re-assign all space to user's diskspace<br />
<br />
<br />
Or, if you already do Meta-Doctor first, you can follow these steps:<br />
# Connect your webOS device to your PC<br />
# Open up Terminal (Mac/ Linux) or Command Prompt (Windows), then type "novaterm"<br />
# And after you presented by your webOS device's root shell, run this command:<br />
* Display LV size of EXT3FS partition, don't forget to write that down:<br />
# lvdisplay /dev/mapper/store-ext3fs<br />
<br />
* Remove EXT3FS partition:<br />
# lvremove /dev/mapper/store-ext3fs<br />
<br />
* Display existing user diskspace partition:<br />
# df -kh<br />
<br />
[http://3.bp.blogspot.com/-orFK9AjZYM4/Tk3RF0HnB6I/AAAAAAAAB_w/29uQBnN46PI/s1600/df-kh.jpg image of df-kh]<br />
<br />
* Unmount existing user diskspace partition:<br />
# umount /dev/mapper/store-media<br />
<br />
<br />
<br />
Resize existing user diskspace by adding size of previous EXT3FS partition:<br />
<br />
I'm using /etc/fstab to see the filesystem of user's diskspace and /proc/partitions to see total allocation for user's diskspace:<br />
<br />
[http://1.bp.blogspot.com/-fNgZpAme8wE/Tk3RG8SeWzI/AAAAAAAAB_0/GC0t5KrDUDQ/s1600/fstab.jpg image of cat /etc/fstab]<br />
<br />
[http://2.bp.blogspot.com/-FAmvlsY6mSc/Tk3RImBEnqI/AAAAAAAACAA/m6piDWuxxro/s1600/proc-partitions.jpg image of cat /etc/proc/partitions]<br />
<br />
# resizefat /dev/mapper/store-media 6995968K<br />
<br />
[http://1.bp.blogspot.com/-EqnW7-WzJnU/Tk3RJCElO4I/AAAAAAAACAE/xbrps-xnWaI/s1600/resizefat.jpg image of resizefat /dev/mapper/store-media 6995968K]<br />
<br />
And here's what you've got on user's diskspace after everything is done:<br />
<br />
[http://4.bp.blogspot.com/-ZmKHhll3G6w/Tk3RHWhrzGI/AAAAAAAAB_4/hfyiDE-BIEA/s1600/lvdisplay-storemedia.jpg image of lvdisplay /dev/mapper/store-media]<br />
<br />
==How to change a provider's DB-entry so 3G data can be used on the Pre==<br />
<br />
[http://forums.precentral.net/gsm-pre/211728-modifying-webos-carrier-network-settings.html#post2002079 This post] and [http://forums.precentral.net/palm-pre/209222-few-questions-about-german-palm-pre-6.html this thread] describe various ways to adjust the provider's data base in the Pre, so the 3G datacom works on non-supported networks. webOS 1.3.1 allows setting of the providers data directly from the activation screen for providers that are present in the DB. Some report that they are not able to do that and that they cannot get 3G datacom working on 1.3.1<br />
<br />
== Problems with Novacom ==<br />
If you are Running a new Distro, like Archlinux, you could run into problem with novacom while trying to connect your pre. Running novacomd on the command line could provide further information. This may be a problem with libusb. Get a older version like described in [http://developer.palm.com/distribution/viewtopic.php?f=11&t=4233&start=0 this thread].<br />
<br />
== How to Install webOS 2.x on "unoffical" Devices==<br />
With the release of the O2-DE webOS Doctor, efforts have been made to apply the techniques of MetaDoctor and create a custom doctor to apply 2.1.0 to devices that it was not been officially released for. For those not faint of heart, a step-by-step can be found at the following: [[WebOS 2 Upgrade]]</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Application:MetaDoctor&diff=21687Application:MetaDoctor2012-02-26T21:02:48Z<p>Destinal: add-apt-repository needs python-software-properties</p>
<hr />
<div>[[Category:Application]]<br />
This page is currently available in four languages:<br />
:[[Image:Australia.png]] [[Image:USA.png]] [[Application:MetaDoctor]]<br />
:[[Image:France.png]] [[Application:MetaDoctor-FR]]<br />
:[[Image:Germany.png]] [[Application:MetaDoctor-DE]]<br />
:[[Image:Mexico.png]] [[Image:Spain.png]] [[Application:MetaDoctor-ES]]<br />
<br />
= What is the Meta Doctor? =<br />
<br />
The Webos Internals Meta Doctor is a Makefile which can modify a copy of the Palm webOS Doctor before it is flashed onto a webOS device. It accomplishes this by reaching into Palm's distributed Doctor JAR file and making changes to it.<br />
<br />
'''Documentation for the features that the MetaDoctor offers is in the README file.'''<br />
<br />
= Step 1: Setting up Meta-Doctor=<br />
<br />
== Windows ==<br />
<br />
'''NOTE THAT USING CYGWIN ON WINDOWS IS NO LONGER SUPPORTED AND WILL MAKE YOUR PHONE FAIL TO BOOT'''<br />
<br />
Windows users can use the meta doctor without harming your current installation of windows using simple Ubuntu installer called WUBI. Also no need for moding any partitions or installing any boot loaders. It will just appear as program in your installed software list and when you do not want it anymore simply uninstall it while in windows through Control Panel. It is easy and there is no virtual machine headaches of trying to configure USB, Network and File sharing with host computer... To access it you just reboot and choose Ubuntu from dual boot screen.<br />
<br />
# Download [http://www.ubuntu.com/getubuntu/download Ubuntu 11.04], look for the Ubuntu Desktop Edition, '''not the Windows Installer'''<br />
# Burn that file to a cd or mount to virtual drive<br />
# Run cd in windows (the wubi.exe file inside the disk, it also comes up in auto run) - '''Don't boot your machine with the CD (called as using the LiveCD, as this option won't give you enough space for the MetaDoctor process to complete.'''<br />
# Click on '''Install Inside windows'''.<br />
#: This will install Ubuntu while running Windows without the need of making a partition. I would recomand making the install image the full recommended 30 gigs if you have the hard drive space and think you are interested in actually using the Ubuntu OS, otherwise the minimum recommended by Wubi should be just fine. <br />
# Restart your computer and you can dual boot to Windows or Ubuntu <br />
<br />
The nice thing about this is that it will allow you to uninstall Ubuntu right from Windows as if it was never there and remove the dual boot, not to mention the fact you do not need to partition your drive.<br />
<br />
If you are still wondering what Wubi is, the following link should explain it to you better.<br />
[https://wiki.ubuntu.com/WubiGuide Wubi Guide]<br />
<br />
Once you have installed WUBI, you should follow the instructions in the Linux section below.<br />
<br />
== Linux == <br />
<br />
# Open terminal from the ( Applications > Accessories ) menu.<br />
# Update your package lists and install git and Java runtime (the Canonical Partner Repository is needed to install the Sun Java JRE because it was moved out of the Multiverse in Ubuntu 10.04). Type: <pre>sudo apt-get install python-software-properties</pre><pre>sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"</pre><pre>sudo apt-get update</pre><pre>sudo apt-get install git</pre><pre>sudo apt-get install sun-java6-jre</pre> (To accept the Java License Page, press tab until 'OK' is highlighted, then press enter) If the java install fails, look for support on the Java website [http://www.java.com/en/download/linux_manual.jsp here]. If you receive an error about git, repeat the command using git-core instead.<br />
# Download and install the Palm Novacom software: [https://cdn.downloads.palm.com/sdkdownloads/2.1.0.519/sdkBinaries/palm-novacom_1.0.64_i386.deb 32-bit] or [https://cdn.downloads.palm.com/sdkdownloads/2.1.0.519/sdkBinaries/palm-novacom_1.0.64_amd64.deb 64-bit]. If you have trouble installing, you can find more information [https://developer.palm.com/content/resources/develop/sdk_pdk_download.html#c28522 here].<br />
# Make sure you are not running as root, and navigate to your home directory. <pre>cd</pre><br />
# Download the meta-doctor scripts using git. Type: <pre>git clone git://github.com/webos-internals/meta-doctor.git</pre><br />
# Navigate to the meta-doctor directory. <pre>cd meta-doctor</pre><br />
# Create a downloads directory. Type: <pre>mkdir downloads</pre><br />
<br />
== Mac OS X 10.6 ==<br />
<br />
#Install MacPorts first, which will allow us to easily install the necessary packages for MetaDoctor. [http://www.macports.org/install.php]. Please note that MacPorts requires Apple's Xcode Developer Tools (version 3.2.1 or later for Snow Leopard, 3.1.4 or later for Leopard, or 2.5 for Tiger), found at the [http://connect.apple.com/ Apple Developer Connection site], on your Mac OS X installation CDs/DVD, or in the [http://itunes.apple.com/us/app/xcode/id448457090?mt=12# App Store].<br />
#Install md5sum: <pre>sudo port install md5sha1sum</pre><br />
#Install git: <pre>sudo port install git-core</pre><br />
# Make sure you are not running as root, and navigate to your home directory. <pre>cd</pre><br />
# Now type the following command to get your local copy of the meta-doctor script: <pre>git clone git://github.com/webos-internals/meta-doctor.git</pre><br />
#Install patch: <pre>sudo port install gpatch</pre><br />
#If you do not have Java installed, do so. To install Java, click on the "Apple" icon and select "Software Update." This will automatically update you to the latest version of Java if necessary, as Apple supplies their own version of Java. Further instructions can be found [http://support.apple.com/kb/HT1338?viewlocale=en_US here].<br />
#Download and install the Palm Novacom software from http://developer.palm.com. The Mac OS X SDK is located [http://cdn.downloads.palm.com/sdkdownloads/1.4.5.465/sdkBinaries/Palm_webOS_SDK.1.4.5.465.dmg here].<br />
#Open a terminal and navigate to the meta-doctor directory where the meta-doctor was copied to in step 5 above.<pre>cd meta-doctor</pre><br />
#Ensure that there is a downloads directory. If there is not one, create one using <pre>mkdir downloads</pre><br />
<br />
= Step 2: Running the webOS Doctor=<br />
<br />
Note that if you are following a procedure on another wiki page which only requires the installation of the MetaDoctor and then tells you to return to that other page, then this is the place at which you should return.<br />
<br />
'''If you intend to enable WIFI Profiles, you must copy a file off of the phone before doctoring. See the section below on enabling wifi profiles.'''<br />
<br />
# Navigate to the meta-doctor directory in the terminal<br />
# Download the latest webosdoctor file using the download paths found at [http://www.webos-internals.org/wiki/Webos_Doctor_Versions Webos Doctor Versions] .<br />
'''Note ''': if you receive an error message when running the make file, (e.g 'Please download the correct version of the webOS Doctor .jar file and then move it to downloads/webosdoctorp220manta-wr-2.2.0.jar'), and you are sure you have the correct doctor you need to rename your doctor file, so it matches the name in the error message (e.g. sudo mv webosdoctorp220mantawr.jar webosdoctorp220manta-wr-2.2.0.jar)<br />
The wr version is the French,German,Irish,Spanish and UK GSM version. An example (e.g. current Web OS as of 11/23/11) download command would be: <pre>cd downloads</pre><pre>wget http://palm.cdnetworks.net/rom/touchpad/p304rod10182011/wd304wifi/webosdoctorp304hstnhwifi.jar</pre><br />
# If you would like Meta-Doctor to apply patches to webOS in order to add or change functionality from the factory install, open the Makefile with your favorite text editor and uncomment (remove the leading # characters from) the options you would like to use. For example, if you plan to install Ubuntu, now is the time to uncomment the EXT3FS_PARTITION_SIZE option in the Makefile and edit it per [http://www.webos-internals.org/wiki/Chrooting these instructions].<br />
# Before doing the next step, make sure you change back into the meta-doctor directory first. All the following commands must be run from the meta-doctor directory.<br />
# Type one of the following: <br />
#: <pre>make DEVICE=pre CARRIER=wr all</pre><br />
#: <pre>make DEVICE=preplus CARRIER=wr all</pre><br />
#: <pre>make DEVICE=pixiplus CARRIER=wr all</pre><br />
#: <pre>make DEVICE=pre CARRIER=sprint all</pre> <br />
#: <pre>make DEVICE=pixi CARRIER=sprint all</pre> <br />
#: <pre>make DEVICE=pre CARRIER=bellmo all</pre><br />
#: <pre>make DEVICE=pre CARRIER=telcel all</pre><br />
#: <pre>make DEVICE=preplus CARRIER=verizonwireless all</pre><br />
#: <pre>make DEVICE=pixiplus CARRIER=verizonwireless all</pre><br />
#: <pre>make DEVICE=preplus CARRIER=att all</pre><br />
#: <pre>make DEVICE=pixiplus CARRIER=att all</pre><br />
#: <pre>make DEVICE=touchpad CARRIER=wifi all</pre><br />
#: depending on the carrier in question.<br />
'''Note ''': use make DEVICE=palm_smartphone_type CARRIER=wr all for O2 Germany, UK and Ireland / Movistar Spain / SFR France<br />
<br />
This should begin a process within the terminal that should take 10 minutes max.<br />
<br />
<br />
<br />
=== Error conditions ===<br />
<br />
If you receive an error message when running the make file, (e.g 'Please download the correct version of the webOS Doctor .jar file and then move it to downloads/webosdoctorp220manta-wr-2.2.0.jar'), and you are sure you have the correct doctor you need to rename your doctor file, so it matches the name in the error message (e.g. sudo mv webosdoctorp220mantawr.jar webosdoctorp220manta-wr-2.2.0.jar).<br />
<br />
=== If the build fails ===<br />
<br />
If the make command fails, you can use <pre>make clobber</pre> to clean up the build directory. After this you can re-run the command.<br />
<br />
=== Running the patched webOS Doctor ===<br />
<br />
The updated doctor version has the same name as the original, but is in a new folder: ''meta-doctor/build/<name_and_version>/webosdoctorp304hstnhwifi.jar''.<br />
<br />
If you are running in Ubuntu or Cygwin, you can just run the new jar file now. <br />
<br />
If you are running Ubuntu using VM, you will need to copy the new jar out of the VM into your live desktop to run the jar in your native OS. <br />
<br />
CD to the folder where your new jar file is, and type something like: <br />
<br />
java -jar webosdoctorp304hstnhwifi.jar<br />
<br />
If you were using a VM or some other virtual method, you will need to copy the jar file out to your main operating system before running it. <br />
<br />
<br />
''Windows host:''<br />
<br />
[http://ubuntuexperiment.wordpress.com/2008/11/12/sharing-folders-between-host-and-guest-os-in-virtualbox/ VirtualBox folder Sharing]<br />
<br />
[http://www.howtogeek.com/howto/ubuntu/how-to-share-folders-with-your-ubuntu-virtual-machine-guest/ VMWare folder Sharing]<br />
<br />
''Mac OSX host:''<br />
<br />
[http://davidherron.com/blog/topics/628-virtualbox-running-ubuntu-accessing-host-file-system-mac-os-x VirtualBox folder Sharing]<br />
<br />
<br />
: ''NOTE: this only applies to WUBI Users'' <br />
You should be able to run the JAR as if you had Linux installed natively because in a sense you do (as long as Java is installed and you run the Jar using Java) but if you rather run it in windows <br />
<br />
Using terminal the following command in a Wubi installation of Ubuntu will copy the JAR file to the host Windows OS :<pre>cp /meta-doctor/build/<name_and_version>/webosdoctorp304hstnhwifi.jar /host/webosdoctorp304hstnhwifi.jar</pre><br />
This will place the Jar either in your Windows C:\ drive or whatever drive you installed Wubi to.<br />
<br />
== Once the Doctor is running ==<br />
<br />
# Select your language<br />
# Accept the license agreement<br />
# Connect your Pre to your PC via USB and select "Next" when it becomes available<br />
<br />
After completion the device will reboot and present you with the activation set-up.<br />
<br />
If your PC does not recognize your Pre and you cannot go past step 3 above, try the following steps:<br />
<br />
# With the USB cable connected, completely power off the Pre (hold down the power button until the option to power off appears)<br />
# Hold down the Up button on the volume rocker<br />
# While holding the Up button, power on the Pre<br />
# "Next" should now be enabled - proceed with the recovery<br />
{{tux|Tux_with_Pre.png|float:right;}}<br />
The above steps will put the Pre into bootloader recovery mode and should allow the PC to recognize your device and proceed with the restore. In this mode the screen will display a giant USB logo instead of the usual Palm startup logo.<br />
<br />
When the process finishes, the Pre will reboot and your new modified image will have been installed.<br />
<br />
----<br />
<br />
After the doctor completes, you will need to run the "First Run" application. To do this, you will need an active internet connection. Either WiFi or Cellular. If you do not have WiFi and cannot connect to the Palm Profile servers, you might have a problem with your programming. This Meta Doctor (or webOS Doctor in general) could possibly erase the modem's programming. To resolve you will need to perform the following steps:<br />
<br />
'''Note:''' This has only been confirmed to resolve Sprint CDMA issues, YMMV.<br />
<br />
'''Note 2:''' You should try to update your profile first. Open the phone app, open the App Menu and select ''Preferences'' then select ''Update Network Settings''. If you get an error, then procede with these instructions.<br />
*'''1.''' Open the Phone App.<br />
*'''2.''' Enter ''##MSL#'' (MSL= 6 digit lock code. Get this from Sprint.)<br />
*'''3.''' Verify your MDN and MSID are incorrect. If they are incorrect, continue. If they are correct, this is not your problem and you should not continue.<br />
*'''4.''' Select ''Edit''.<br />
*'''5.''' Select the first box (MDN) and enter your 10-digit cellular number.<br />
*'''6.''' Select the second box (MSID) and enter your 10-digit MSID (Get this from Sprint).<br />
*'''7.''' Select ''Save''.<br />
*'''8.''' Backswipe out of the the view.<br />
*'''9.''' You should now be able to open complete '''Note 2''' above without any errors.<br />
<br />
You should now be able to run the ''First Use'' application without any problems.<br />
<br />
=If the Doctor will not run=<br />
Go [http://www.webos-internals.org/wiki/How_To_Recover here] if you have further problems connecting your Pre to the running Meta'ed Doctor.<br />
<br />
=Miscellaneous=<br />
Clarification for Linux beginners on where to place the prefsDB.sl file, per instructions in the makefile.<br />
Steps:<br />
# Open makefile using a text editor (like WordPad) and use the instructions there to retrieve your prefsDB.sl file from your device. Save it somewhere convenient on your host machine (aka, computer).<br />
# Navigate to the meta-doctor directory and create the config directory:<pre> mkdir -p config</pre><br />
# Rename your prefsDB.sl file to com.palm.wifi.prefsDB.sl<br />
# Put com.palm.wifi.prefsDB.sl in the config directory.<br />
# Continue following instructions in the makefile.<br />
<br />
==How to enable WIFI profiles==<br />
To enable wifi profiles it is necessary to copy your wifi profile file off of your phone and place this in a directory, as well as enable the wifi profile option in the makefile. <br />
<br />
# Move to the meta-doctor directory <pre>cd meta-doctor</pre><br />
# Create a "config" folder in the meta-doctor directory <pre>mkdir config</pre><br />
# Copy the prefsDB.sl file off of your phone from the var/preferences/com.palm.wifi/ and into the "config" directory that you just created.<br />
# Rename this file "com.palm.wifi.prefsDB.sl" without the quotes<br />
# Open the makefile (which is in the meta-doctor directory) and remove the "#" from the line "# INSTALL_WIFI_PROFILES = 1". Save the makefile.<br />
# Build the custom doctor by running the script, or otherwise building it.<br />
<br />
<br />
On launch of the new doctor your wifi profile should automatically connect, but '''only if''' you had previously connected to the WIFI network you are trying to use.<br />
<br />
See these links for more information: [http://forums.precentral.net/webos-internals/276460-how-install-webos-2-1-0-pre-pre-using-meta-doctor-27.html#post2882495 Post 1], [http://discussion.treocentral.com/webos-internals/276460-how-install-webos-2-1-0-pre-pre-using-meta-doctor-43.html#post2884415 Post 2].<br />
<br />
==How to get the optional ext3fs partition mounted at device boot==<br />
<br />
'''(NOTE: This is a necessary step to get UbuntuChroot working on the touchpad and must be done before UbuntuChroot is installed)'''<br />
<br />
Note that you have to use the Meta-Doctor as shown earlier in this page to doctor your device to create the ext3fs partition before attempting the following steps.<br />
<br />
All of this is done on device either via novaterm or an SSH login. Instructions for running novaterm on your desktop computer are [http://www.webos-internals.org/wiki/Accessing_Linux_Using_Novaterm here] (you may skip step 1 if you already downloaded the Palm SDK while setting up the Meta-Doctor).<br />
<br />
If your device does NOT have a folder at /media/ext3fs then you will need to create it first. Use the following two commands:<br />
<br />
<pre>mount -o remount,rw /<br />
mkdir -p /media/ext3fs</pre><br />
<br />
it is important that you use /media/ext3fs as the location, otherwise some homebrew applications (such as Optware and the Ubuntu 11.04 Chroot) will not be able to find it and use it properly.<br />
<br />
After you have created the mountpoint, we are going to edit the fstab file to set it up to mount at bootup.<br />
<br />
<pre>mount -o remount,rw / *****Not necessary if you performed the previous steps, but doesn't hurt if you do it twice<br />
echo "/dev/mapper/store-ext3fs /media/ext3fs ext3 noatime,data=writeback 0 0" >> /etc/fstab</pre><br />
<br />
Now to get it mounted you have several options, the best one is the first command as it will use the data in /etc/fstab. If that works, then you have done this correctly and your ext3fs will mount at bootup.<br />
<br />
<pre>mount -a</pre><br />
<br />
If you do not want it mounted at bootup, but you do need it mounted, you can use this command.<br />
<br />
<pre>mount /dev/mapper/store-ext3fs /media/ext3fs</pre><br />
<br />
== How to remove the ext3fs partition ==<br />
<br />
# Connect your webOS device to your PC<br />
# Open up Terminal (Mac/ Linux) or Command Prompt (Windows), then type "novaterm"<br />
# And after you presented by your webOS device's root shell, run this command:<br />
* Unmount EXT3FS partition:<br />
# umount /dev/mapper/store-ext3fs<br />
<br />
* Remove EXT3FS partition:<br />
# lvremove /dev/mapper/store-ext3fs<br />
<br />
Then run meta-doctor to re-assign all space to user's diskspace<br />
<br />
<br />
Or, if you already do Meta-Doctor first, you can follow these steps:<br />
# Connect your webOS device to your PC<br />
# Open up Terminal (Mac/ Linux) or Command Prompt (Windows), then type "novaterm"<br />
# And after you presented by your webOS device's root shell, run this command:<br />
* Display LV size of EXT3FS partition, don't forget to write that down:<br />
# lvdisplay /dev/mapper/store-ext3fs<br />
<br />
* Remove EXT3FS partition:<br />
# lvremove /dev/mapper/store-ext3fs<br />
<br />
* Display existing user diskspace partition:<br />
# df -kh<br />
<br />
[http://3.bp.blogspot.com/-orFK9AjZYM4/Tk3RF0HnB6I/AAAAAAAAB_w/29uQBnN46PI/s1600/df-kh.jpg image of df-kh]<br />
<br />
* Unmount existing user diskspace partition:<br />
# umount /dev/mapper/store-media<br />
<br />
<br />
<br />
Resize existing user diskspace by adding size of previous EXT3FS partition:<br />
<br />
I'm using /etc/fstab to see the filesystem of user's diskspace and /proc/partitions to see total allocation for user's diskspace:<br />
<br />
[http://1.bp.blogspot.com/-fNgZpAme8wE/Tk3RG8SeWzI/AAAAAAAAB_0/GC0t5KrDUDQ/s1600/fstab.jpg image of cat /etc/fstab]<br />
<br />
[http://2.bp.blogspot.com/-FAmvlsY6mSc/Tk3RImBEnqI/AAAAAAAACAA/m6piDWuxxro/s1600/proc-partitions.jpg image of cat /etc/proc/partitions]<br />
<br />
# resizefat /dev/mapper/store-media 6995968K<br />
<br />
[http://1.bp.blogspot.com/-EqnW7-WzJnU/Tk3RJCElO4I/AAAAAAAACAE/xbrps-xnWaI/s1600/resizefat.jpg image of resizefat /dev/mapper/store-media 6995968K]<br />
<br />
And here's what you've got on user's diskspace after everything is done:<br />
<br />
[http://4.bp.blogspot.com/-ZmKHhll3G6w/Tk3RHWhrzGI/AAAAAAAAB_4/hfyiDE-BIEA/s1600/lvdisplay-storemedia.jpg image of lvdisplay /dev/mapper/store-media]<br />
<br />
==How to change a provider's DB-entry so 3G data can be used on the Pre==<br />
<br />
[http://forums.precentral.net/gsm-pre/211728-modifying-webos-carrier-network-settings.html#post2002079 This post] and [http://forums.precentral.net/palm-pre/209222-few-questions-about-german-palm-pre-6.html this thread] describe various ways to adjust the provider's data base in the Pre, so the 3G datacom works on non-supported networks. webOS 1.3.1 allows setting of the providers data directly from the activation screen for providers that are present in the DB. Some report that they are not able to do that and that they cannot get 3G datacom working on 1.3.1<br />
<br />
== Problems with Novacom ==<br />
If you are Running a new Distro, like Archlinux, you could run into problem with novacom while trying to connect your pre. Running novacomd on the command line could provide further information. This may be a problem with libusb. Get a older version like described in [http://developer.palm.com/distribution/viewtopic.php?f=11&t=4233&start=0 this thread].<br />
<br />
== How to Install webOS 2.x on "unoffical" Devices==<br />
With the release of the O2-DE webOS Doctor, efforts have been made to apply the techniques of MetaDoctor and create a custom doctor to apply 2.1.0 to devices that it was not been officially released for. For those not faint of heart, a step-by-step can be found at the following: [[WebOS 2 Upgrade]]</div>Destinalhttp://wiki.webos-internals.org/index.php?title=WebOS3_Packages&diff=21593WebOS3 Packages2012-02-06T22:25:45Z<p>Destinal: raw list of webos packages in webos 3.x</p>
<hr />
<div>Package: accounts.ui<br />
Description: Accounts UI shared code<br />
<br />
<br />
Package: addressing<br />
Description: WebOS Addressing Widget Library<br />
<br />
<br />
Package: base-files<br />
Description: Miscellaneous files for the base system.<br />
<br />
<br />
Package: bootchart<br />
Description: Bootchart is a tool for performance analysis and visualization of the GNU/Linux boot process.<br />
<br />
<br />
Package: calendar<br />
Description: Calendar Library<br />
<br />
<br />
Package: calendar.dta<br />
Description: Calendar DTA import shared code<br />
<br />
<br />
Package: calendar.io<br />
Description: Calendar IO Library<br />
<br />
<br />
Package: com.palm.app.calculator<br />
Description: enyo Calculator application<br />
<br />
<br />
Package: com.palm.app.calendar<br />
Description: Calendar application<br />
<br />
<br />
Package: com.palm.app.camera<br />
Description: Camera App<br />
<br />
<br />
Package: com.palm.app.clock<br />
Description: Clock<br />
<br />
<br />
Package: com.palm.app.contacts<br />
Description: Contacts<br />
<br />
<br />
Package: com.palm.app.email<br />
Description: enyo Email application<br />
<br />
<br />
Package: com.palm.app.maps<br />
Description: Maps<br />
<br />
<br />
Package: com.palm.app.messaging<br />
Description: enyo Messaging application<br />
<br />
<br />
Package: com.palm.app.musicplayer<br />
Description: Music Player<br />
<br />
<br />
Package: com.palm.app.notes<br />
Description: Memos<br />
<br />
<br />
Package: com.palm.app.photos<br />
Description: Photos App<br />
<br />
<br />
Package: com.palm.messaging.chatthreader<br />
Description: ChatThreader Service<br />
<br />
<br />
Package: com.palm.messaging.smstest<br />
Description: SMS Tester Service<br />
<br />
<br />
Package: com.palm.service.accounts<br />
Description: Accounts Service<br />
<br />
<br />
Package: com.palm.service.appcatalog<br />
Description: App catalog service<br />
<br />
<br />
Package: com.palm.service.backup<br />
Description: Backup Service<br />
<br />
<br />
Package: com.palm.service.bluetooth.spp<br />
Description: Bluetooth SPP Service<br />
<br />
<br />
Package: com.palm.service.boxnet<br />
Description: MobileMe Service<br />
<br />
<br />
Package: com.palm.service.calendar.facebook<br />
Description: Calendar Facebook Service<br />
<br />
<br />
Package: com.palm.service.calendar.google<br />
Description: Google Calendar Sync Service<br />
<br />
<br />
Package: com.palm.service.calendar.meetingupdate<br />
Description: Service for sending emails for meeting invitations and updates<br />
<br />
<br />
Package: com.palm.service.calendar.reminders<br />
Description: Calendar Reminders<br />
<br />
<br />
Package: com.palm.service.calendar.yahoo<br />
Description: Yahoo Calendar Sync Service<br />
<br />
<br />
Package: com.palm.service.collectlogs<br />
Description: CollectLogs service<br />
<br />
<br />
Package: com.palm.service.contacts.base<br />
Description: Contacts Service<br />
<br />
<br />
Package: com.palm.service.contacts.facebook<br />
Description: Facebook Service<br />
<br />
<br />
Package: com.palm.service.contacts.google<br />
Description: Google Contact Sync Service<br />
<br />
<br />
Package: com.palm.service.contacts.linkedin<br />
Description: LinkedIn Service<br />
<br />
<br />
Package: com.palm.service.contacts.linker<br />
Description: Contacts Linker<br />
<br />
<br />
Package: com.palm.service.contacts.sim<br />
Description: Sim Service<br />
<br />
<br />
Package: com.palm.service.contacts.yahoo<br />
Description: Yahoo Contact Sync Service<br />
<br />
<br />
Package: com.palm.service.customization<br />
Description: Customization Service<br />
<br />
<br />
Package: com.palm.service.deviceprofile<br />
Description: Deviceprofile Service<br />
<br />
<br />
Package: com.palm.service.dropbox<br />
Description: Dropbox Service<br />
<br />
<br />
Package: com.palm.service.dwipe<br />
Description: Device wipe service<br />
<br />
<br />
Package: com.palm.service.locale<br />
Description: Locale Service<br />
<br />
<br />
Package: com.palm.service.mediabroadcast<br />
Description: Media Broadcast Service<br />
<br />
<br />
Package: com.palm.service.mediacache<br />
Description: Media Caching Service<br />
<br />
<br />
Package: com.palm.service.migration<br />
Description: Migration Service<br />
<br />
<br />
Package: com.palm.service.migrationscript<br />
Description: Migration Script Service<br />
<br />
<br />
Package: com.palm.service.mobileme<br />
Description: Box.net Service<br />
<br />
<br />
Package: com.palm.service.music<br />
Description: Music service<br />
<br />
<br />
Package: com.palm.service.palmprofile<br />
Description: Palmprofile Service<br />
<br />
<br />
Package: com.palm.service.photos<br />
Description: Photos service<br />
<br />
<br />
Package: com.palm.service.photos.facebook<br />
Description: Photos Facebook Service<br />
<br />
<br />
Package: com.palm.service.photos.photobucket<br />
Description: Photos Photobucket Service<br />
<br />
<br />
Package: com.palm.service.photos.snapfish<br />
Description: Photos Snapfish Service<br />
<br />
<br />
Package: com.palm.service.videos.facebook<br />
Description: Videos Facebook Service<br />
<br />
<br />
Package: com.palm.service.videos.youtube<br />
Description: Videos YouTube Service<br />
<br />
<br />
Package: com.palm.template.aol<br />
Description: Palm Builtin Synergy Account Templates - AOL<br />
<br />
<br />
Package: com.palm.template.boxnet<br />
Description: Palm Builtin Synergy Account Templates - Box.net<br />
<br />
<br />
Package: com.palm.template.dropbox<br />
Description: Palm Builtin Synergy Account Templates - Dropbox<br />
<br />
<br />
Package: com.palm.template.facebook<br />
Description: Palm Builtin Synergy Account Templates - Facebook<br />
<br />
<br />
Package: com.palm.template.google<br />
Description: Palm Builtin Synergy Account Templates - Google<br />
<br />
<br />
Package: com.palm.template.linkedin<br />
Description: Palm Builtin Synergy Account Templates - LinkedIn<br />
<br />
<br />
Package: com.palm.template.mobileme<br />
Description: Palm Builtin Synergy Account Templates - MobileMe<br />
<br />
<br />
Package: com.palm.template.palmprofile<br />
Description: Palm Builtin Synergy Account Templates - Palm Profile<br />
<br />
<br />
Package: com.palm.template.photobucket<br />
Description: Palm Builtin Synergy Account Templates - Photobucket<br />
<br />
<br />
Package: com.palm.template.sim<br />
Description: Palm Builtin Synergy Account Templates - SIM<br />
<br />
<br />
Package: com.palm.template.snapfish<br />
Description: Palm Builtin Synergy Account Templates - Snapfish<br />
<br />
<br />
Package: com.palm.template.yahoo<br />
Description: Palm Builtin Synergy Account Templates - Yahoo<br />
<br />
<br />
Package: contacts.base<br />
Description: Contacts Library<br />
<br />
<br />
Package: contacts.plugin.messaging<br />
Description: WebOS Messaging Linker Library<br />
<br />
<br />
Package: contacts.plugin.phone<br />
Description: WebOS Phone Linker Library<br />
<br />
<br />
Package: contacts.plugin.smartkey<br />
Description: WebOS SmartKey Linker Library<br />
<br />
<br />
Package: contacts.ui<br />
Description: Contacts UI Library<br />
<br />
<br />
Package: enyo<br />
Description: Enyo framework<br />
<br />
<br />
Package: enyo-accounts<br />
Description: Enyo accounts lib<br />
<br />
<br />
Package: enyo-addressing<br />
Description: Enyo addressing lib<br />
<br />
<br />
Package: enyo-authlib<br />
Description: Enyo authlib lib<br />
<br />
<br />
Package: enyo-captiveportal<br />
Description: Enyo captiveportal lib<br />
<br />
<br />
Package: enyo-contactsui<br />
Description: Enyo contactsui lib<br />
<br />
<br />
Package: enyo-mediacapture<br />
Description: Enyo mediacapture lib<br />
<br />
<br />
Package: enyo-networkalerts<br />
Description: Enyo networkalerts lib<br />
<br />
<br />
Package: enyo-networkproxy<br />
Description: Enyo Network Proxy lib<br />
<br />
<br />
Package: enyo-printdialog<br />
Description: Enyo printdialog lib<br />
<br />
<br />
Package: enyo-syncui<br />
Description: Enyo syncui lib<br />
<br />
<br />
Package: enyo-systemui<br />
Description: Enyo systemui lib<br />
<br />
<br />
Package: enyo-telephony<br />
Description: Enyo telephony lib<br />
<br />
<br />
Package: enyo-test<br />
Description: Enyo test lib<br />
<br />
<br />
Package: enyo-wifi<br />
Description: Enyo wifi lib<br />
<br />
<br />
Package: facebook<br />
Description: Facebook Library<br />
<br />
<br />
Package: filenotifyd-triton<br />
Description: Triton based services building on filenotifyd<br />
<br />
<br />
Package: foundations.base<br />
Description: WebOS Foundations Library<br />
<br />
<br />
Package: foundations.crypto<br />
Description: WebOS Crypto Library<br />
<br />
<br />
Package: foundations.io<br />
Description: WebOS IO Library<br />
<br />
<br />
Package: foundations.json<br />
Description: WebOS JSON Library<br />
<br />
<br />
Package: foundations.mojo<br />
Description: WebOS Foundations Mojo Library<br />
<br />
<br />
Package: foundations.xml<br />
Description: WebOS XML Library<br />
<br />
<br />
Package: globalization<br />
Description: Globalization shared code<br />
<br />
<br />
Package: image-extras-cust<br />
Description: Image Extras - Extra components for cust image<br />
<br />
<br />
Package: image-extras-cust-default<br />
Description: Image Extras - Extra components for cust image<br />
<br />
<br />
Package: imagethumbnail<br />
Description: Imagethumbnail library<br />
<br />
<br />
Package: mediacapture<br />
Description: Javascript interface to mediaserver record functionality<br />
<br />
<br />
Package: mediaextension<br />
Description: IPC stubs for Palm Media Extensions<br />
<br />
<br />
Package: mediastream<br />
Description: Streaming State Engine for Media Apps<br />
<br />
<br />
Package: messaging.library<br />
Description: Messaging Library<br />
<br />
<br />
Package: metascene.audiorecorder<br />
Description: A pushable audio recorder<br />
<br />
<br />
Package: metascene.base<br />
Description: Scenes that may be reused across applications<br />
<br />
<br />
Package: metascene.photos.base<br />
Description: Base metascene for Photo application<br />
<br />
<br />
Package: metascene.photos.crop<br />
Description: Crop metascene for Photo application<br />
<br />
<br />
Package: metascene.photos.full<br />
Description: Full view for Photo application<br />
<br />
<br />
Package: metascene.photos.thumbs<br />
Description: Thumbs view for Photo application<br />
<br />
<br />
Package: metascene.slideshow<br />
Description: Slideshow metascene<br />
<br />
<br />
Package: metascene.videos.base<br />
Description: A loadable version of the video player<br />
<br />
<br />
Package: metascene.videos.share<br />
Description: Share/Upload functionality for the video player<br />
<br />
<br />
Package: migrator<br />
Description: Migrator Library<br />
<br />
<br />
Package: mojo<br />
Description: Mojo Application Framework<br />
<br />
<br />
Package: mojo.core<br />
Description: Mojo Core library<br />
<br />
<br />
Package: mojo2<br />
Description: Mojo Application Framework v2<br />
<br />
<br />
Package: mojocommon<br />
Description: Mojo Application Framework Common Files<br />
<br />
<br />
Package: mojodbshim<br />
Description: WebOS MojoDBShim Library<br />
<br />
<br />
Package: mojoloader<br />
Description: Mojo Frameworks Loader<br />
<br />
<br />
Package: mojoservice.base<br />
Description: MojoService Library<br />
<br />
<br />
Package: mojoservice.transport.base<br />
Description: MojoService Transport Library<br />
<br />
<br />
Package: mojoservice.transport.sync<br />
Description: MojoService Transport Sync Library<br />
<br />
<br />
Package: mojoservicelauncher<br />
Description: JavaScript service launch helpers<br />
<br />
<br />
Package: network.alerts<br />
Description: Network Alerts Shared Code (BT, WiFi, Telephony and PAN Auth Error Alerts)<br />
<br />
<br />
Package: notes<br />
Description: Notes shared code<br />
<br />
<br />
Package: opengles<br />
Description: OpenGL-ES (msm7k)<br />
<br />
<br />
Package: opengles-msm7k<br />
Description: OpenGL-ES (msm7k)<br />
<br />
<br />
Package: palmbuildinfo<br />
Description: Build Info<br />
<br />
<br />
Package: photos<br />
Description: Photos libraries<br />
<br />
<br />
Package: pmmedia<br />
Description: MSM 8660 Specific Multimedia<br />
<br />
<br />
Package: pmmedia-msm8x60<br />
Description: MSM 8660 Specific Multimedia<br />
<br />
<br />
Package: pmnetworking<br />
Description: Topaz Specific Networking<br />
<br />
<br />
Package: pmnetworking-topaz<br />
Description: Topaz Specific Networking<br />
<br />
<br />
Package: pmtelephony<br />
Description: Topaz specific telephony<br />
<br />
<br />
Package: pmtelephony-topaz<br />
Description: Topaz specific telephony<br />
<br />
<br />
Package: sync.ui<br />
Description: Sync UI library for sync dashboards<br />
<br />
<br />
Package: target<br />
Description: Topaz specific packages<br />
<br />
<br />
Package: target-topaz<br />
Description: Topaz specific packages<br />
<br />
<br />
Package: tasks<br />
Description: Tasks shared code<br />
<br />
<br />
Package: underscore<br />
Description: Underscore JS Library<br />
<br />
<br />
Package: unittest<br />
Description: Version 1.0-17 of package unittest<br />
<br />
<br />
Package: update-modules<br />
Description: Script to manage module configuration files<br />
<br />
<br />
Package: update-rc.d<br />
Description: Manage symlinks in /etc/rcN.d<br />
<br />
<br />
Package: webview<br />
Description: WebOS WebView Library<br />
<br />
<br />
Package: a6-firmware<br />
Description: A6 Firmware<br />
<br />
<br />
Package: acct<br />
Description: GNU Accounting Utilities - user and process accounting.<br />
<br />
<br />
Package: activitymanager<br />
Description: Activity Manager Service<br />
<br />
<br />
Package: adrenogfx-8660<br />
Description: Adreno graphics drivers and Khronos libraries from Qualcomm<br />
<br />
<br />
Package: alsa-conf-base<br />
Description: Alsa sound library<br />
<br />
<br />
Package: alsa-lib<br />
Description: Alsa sound library<br />
<br />
<br />
Package: alsa-plugins<br />
Description: ALSA Plugins<br />
<br />
<br />
Package: alsa-utils<br />
Description: ALSA Utilities<br />
<br />
<br />
Package: alsa-utils-alsactl<br />
Description: used to control advanced settings for the ALSA soundcard driver<br />
<br />
<br />
Package: alsa-utils-amixer<br />
Description: command-line based control for ALSA mixer and settings<br />
<br />
<br />
Package: alsa-utils-aplay<br />
Description: play (and record) sound files via ALSA<br />
<br />
<br />
Package: amrnbcodec<br />
Description: Library of the implementation of AMR-NB codec<br />
<br />
<br />
Package: app-ipkgs<br />
Description: System applications installed on boot<br />
<br />
<br />
Package: applicationinstallerutility<br />
Description: Version 1.0-17 of package applicationinstallerutility<br />
<br />
<br />
Package: armtoolchain<br />
Description: CodeSourcery G++ 4.3 Toolchain<br />
<br />
<br />
Package: armtoolchain-gconv<br />
Description: CodeSourcery G++ 4.3 Toolchain<br />
<br />
<br />
Package: atomicparsley<br />
Description: AtomicParsley<br />
<br />
<br />
Package: audiod<br />
Description: Audio Policy Manager<br />
<br />
<br />
Package: audiod-config<br />
Description: Audio Policy Manager<br />
<br />
<br />
Package: base-passwd<br />
Description: Base system password/group files.<br />
<br />
<br />
Package: binutils<br />
Description: A GNU collection of binary utilities<br />
<br />
<br />
Package: boost<br />
Description: Free peer-reviewed portable C++ source libraries<br />
<br />
<br />
Package: boost-filesystem<br />
Description: Free peer-reviewed portable C++ source libraries<br />
<br />
<br />
Package: boost-program-options<br />
Description: Free peer-reviewed portable C++ source libraries<br />
<br />
<br />
Package: boost-regex<br />
Description: Free peer-reviewed portable C++ source libraries<br />
<br />
<br />
Package: boost-system<br />
Description: Free peer-reviewed portable C++ source libraries<br />
<br />
<br />
Package: bootie-images<br />
Description: bootie-images<br />
<br />
<br />
Package: bootloader<br />
Description: Bootie 'da Bootloader<br />
<br />
<br />
Package: brctl<br />
Description: Bridge Control Utility<br />
<br />
<br />
Package: browser-adapter<br />
Description: browser-adapter<br />
<br />
<br />
Package: browser-adapter-mojo<br />
Description: browser-adapter-mojo<br />
<br />
<br />
Package: browserserver<br />
Description: BrowserServer<br />
<br />
<br />
Package: browserservermojo<br />
Description: BrowserServerMojo<br />
<br />
<br />
Package: bsdiff<br />
Description: bsdiff and bspatch<br />
<br />
<br />
Package: bspatch-xz<br />
Description: bspatch-xz<br />
<br />
<br />
Package: btapp<br />
Description: Bluetooth Panel<br />
<br />
<br />
Package: busybox<br />
Description: BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides minimalist replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete POSIX environment for any small or embedded system.<br />
<br />
<br />
Package: bzip2<br />
Description: Very high-quality data compression program.<br />
<br />
<br />
Package: c-ares<br />
Description: c-ares is a C library that resolves names asynchronously.<br />
<br />
<br />
Package: caja<br />
Description: caja<br />
<br />
<br />
Package: camsrc-msm<br />
Description: GStreamer camera source plugin for Qualcomm MSM<br />
<br />
<br />
Package: catnip<br />
Description: Touchpanel command-line utility<br />
<br />
<br />
Package: cifs<br />
Description: Samba CIFS mount/umount utilities<br />
<br />
<br />
Package: ciscoanyconnectclient<br />
Description: Cisco Anyconnect Client<br />
<br />
<br />
Package: cjson<br />
Description: cjson<br />
<br />
<br />
Package: com.palm.app.accounts<br />
Description: Accounts App<br />
<br />
<br />
Package: com.palm.app.agendaview<br />
Description: Exhibition AgendaView<br />
<br />
<br />
Package: com.palm.app.backup<br />
Description: Photos App<br />
<br />
<br />
Package: com.palm.app.bluetoothtab<br />
Description: Bluetooth Panel<br />
<br />
<br />
Package: com.palm.app.browser<br />
Description: enyo Browser application<br />
<br />
<br />
Package: com.palm.app.certificate<br />
Description: Certificate Panel<br />
<br />
<br />
Package: com.palm.app.collectlogs<br />
Description: Collect Logs App<br />
<br />
<br />
Package: com.palm.app.contactsmojo<br />
Description: Contacts application<br />
<br />
<br />
Package: com.palm.app.crotest<br />
Description: Diagnostics<br />
<br />
<br />
Package: com.palm.app.dateandtime<br />
Description: Date & Time Preferences<br />
<br />
<br />
Package: com.palm.app.deviceinfo<br />
Description: Device info application<br />
<br />
<br />
Package: com.palm.app.devmodeswitcher<br />
Description: Developer Mode Switcher<br />
<br />
<br />
Package: com.palm.app.exhibitionpreferences<br />
Description: Exhibition Preferences<br />
<br />
<br />
Package: com.palm.app.firstuse<br />
Description: FirstUse App<br />
<br />
<br />
Package: com.palm.app.help<br />
Description: enyo Help Application<br />
<br />
<br />
Package: com.palm.app.languagepicker<br />
Description: Langauge Preference Panel<br />
<br />
<br />
Package: com.palm.app.location<br />
Description: Location prefs application<br />
<br />
<br />
Package: com.palm.app.network<br />
Description: General Networking Support Application<br />
<br />
<br />
Package: com.palm.app.oddcore<br />
Description: Palm On-Device-Demo Installer<br />
<br />
<br />
Package: com.palm.app.ondevlog<br />
Description: OnDevLog App<br />
<br />
<br />
Package: com.palm.app.phone<br />
Description: PhoneApp<br />
<br />
<br />
Package: com.palm.app.printmanager<br />
Description: Print Manager App<br />
<br />
<br />
Package: com.palm.app.screenlock<br />
Description: Screen & Lock Preferences<br />
<br />
<br />
Package: com.palm.app.searchpreferences<br />
Description: Enyo JustType (Search) Preferences<br />
<br />
<br />
Package: com.palm.app.skype<br />
Description: Skype Application<br />
<br />
<br />
Package: com.palm.app.soundsandalerts<br />
Description: Enyo Sounds & Ringtones Preferences<br />
<br />
<br />
Package: com.palm.app.streamingmusicplayer<br />
Description: Streaming Music Player<br />
<br />
<br />
Package: com.palm.app.swmanager<br />
Description: enyo SWManager application<br />
<br />
<br />
Package: com.palm.app.tasks<br />
Description: Tasks application<br />
<br />
<br />
Package: com.palm.app.textassist<br />
Description: Text Assist<br />
<br />
<br />
Package: com.palm.app.updates<br />
Description: Photos App<br />
<br />
<br />
Package: com.palm.app.usbpassthrough<br />
Description: USB Passthrough<br />
<br />
<br />
Package: com.palm.app.videoplayer<br />
Description: Video Player<br />
<br />
<br />
Package: com.palm.app.vpn<br />
Description: Virtual Private Network Application<br />
<br />
<br />
Package: com.palm.app.wifi<br />
Description: Wi-Fi Preferences Application<br />
<br />
<br />
Package: com.palm.crotest<br />
Description: CRO Test service<br />
<br />
<br />
Package: com.palm.payment.usa<br />
Description: Payment application and service installed on boot<br />
<br />
<br />
Package: com.palm.yahoo.authservice<br />
Description: yahoo authentication service App<br />
<br />
<br />
Package: configurator<br />
Description: Configurator for DB kinds, watches, and file cache types.<br />
<br />
<br />
Package: contextupload<br />
Description: Context upload Service<br />
<br />
<br />
Package: cplite<br />
Description: cplite<br />
<br />
<br />
Package: cpushareholder<br />
Description: Scripts to set cpu shares (via cgroups) of tasks<br />
<br />
<br />
Package: cryptofs<br />
Description: Version 0.6.0-15 of package cryptofs<br />
<br />
<br />
Package: cryptsetup<br />
Description: cryptsetup with luks support creates and manages encrypted containers and partitions<br />
<br />
<br />
Package: curl<br />
Description: Command line tool and library for client-side URL transfers.<br />
<br />
<br />
Package: datamigration<br />
Description: DataMigration<br />
<br />
<br />
Package: db<br />
Description: Berkeley DB v4.<br />
<br />
<br />
Package: deletemanager<br />
Description: Delete Manager<br />
<br />
<br />
Package: dhcp-client<br />
Description: Internet Software Consortium DHCP package<br />
<br />
<br />
Package: dlmalloc<br />
Description: mmap/shm-based malloc implementation<br />
<br />
<br />
Package: dns-sd<br />
Description: mDNS Browser (Bonjour)<br />
<br />
<br />
Package: dnsmasq<br />
Description: Dnsmasq is a lightweight, easy to configure DNS forwarder and DHCP server.<br />
<br />
<br />
Package: dosfstools<br />
Description: DOS FAT Filesystem Utilities<br />
<br />
<br />
Package: downloadupdate<br />
Description: Application called by UpdateDaemon to download software update.<br />
<br />
<br />
Package: dspmon-stub<br />
Description: dspmon: DSP failure monitor for OMAP 34xx<br />
<br />
<br />
Package: e2fsprogs<br />
Description: EXT2 Filesystem Utilities<br />
<br />
<br />
Package: e2fsprogs-badblocks<br />
Description: EXT2 Filesystem Utilities<br />
<br />
<br />
Package: e2fsprogs-blkid<br />
Description: EXT2 Filesystem Utilities<br />
<br />
<br />
Package: e2fsprogs-e2fsck<br />
Description: EXT2 Filesystem Utilities<br />
<br />
<br />
Package: e2fsprogs-fsck<br />
Description: EXT2 Filesystem Utilities<br />
<br />
<br />
Package: e2fsprogs-libs<br />
Description: EXT2 Filesystem Utilities<br />
<br />
<br />
Package: e2fsprogs-mke2fs<br />
Description: EXT2 Filesystem Utilities<br />
<br />
<br />
Package: e2fsprogs-tune2fs<br />
Description: EXT2 Filesystem Utilities<br />
<br />
<br />
Package: e2fsprogs-uuidgen<br />
Description: EXT2 Filesystem Utilities<br />
<br />
<br />
Package: eglsubdrv<br />
Description: EGL sub driver<br />
<br />
<br />
Package: eglwebos<br />
Description: EGL on webOS<br />
<br />
<br />
Package: email-adapter<br />
Description: email-adapter<br />
<br />
<br />
Package: eventreporter<br />
Description: Event Reporter for WebOS Profiler<br />
<br />
<br />
Package: expat<br />
Description: Jim Clarkes XML parser library.<br />
<br />
<br />
Package: extractfs<br />
Description: Palm embedded file extractor<br />
<br />
<br />
Package: faac<br />
Description: Library for reading some sort of media format.<br />
<br />
<br />
Package: fbdraw<br />
Description: Utility for drawing onto the framebuffer<br />
<br />
<br />
Package: fbprogress<br />
Description: Utility for drawing progress to the frame buffer<br />
<br />
<br />
Package: fbset<br />
Description: The fbset console tool<br />
<br />
<br />
Package: ffmpeg<br />
Description: FFmpeg is a complete solution to record, convert and stream audio and video<br />
<br />
<br />
Package: filecache<br />
Description: filecache<br />
<br />
<br />
Package: filenotifyd<br />
Description: filenotifyd<br />
<br />
<br />
Package: fontconfig<br />
Description: A library for configuring and customizing font access.<br />
<br />
<br />
Package: fontconfig-utils<br />
Description: A library for configuring and customizing font access.<br />
<br />
<br />
Package: freetype<br />
Description: Freetype font rendering library<br />
<br />
<br />
Package: fuse<br />
Description: With FUSE it is possible to implement a fully functional filesystem in a userspace program<br />
<br />
<br />
Package: fuse-utils<br />
Description: With FUSE it is possible to implement a fully functional filesystem in a userspace program<br />
<br />
<br />
Package: fuser<br />
Description: procfs tools<br />
<br />
<br />
Package: gdbm<br />
Description: GNU dbm is a set of database routines that use extensible hashing.<br />
<br />
<br />
Package: genesis<br />
Description: genesis<br />
<br />
<br />
Package: geolocation-adapter<br />
Description: geolocation-adapter<br />
<br />
<br />
Package: giflib<br />
Description: giflib is a library for reading and writing gif images. It is API and ABI compatible with libungif.<br />
<br />
<br />
Package: glgps<br />
Description: Glgps<br />
<br />
<br />
Package: glib-2.0<br />
Description: GLib is a general-purpose utility library, which provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on. It works on many UNIX-like platforms, Windows, OS/2 and BeOS.<br />
<br />
<br />
Package: glibcurl<br />
Description: glibcurl<br />
<br />
<br />
Package: glibmm<br />
Description: C++ bindings for the glib library.<br />
<br />
<br />
Package: gloox<br />
Description: gloox xmpp library<br />
<br />
<br />
Package: glues<br />
Description: glu library for opengl-es<br />
<br />
<br />
Package: gmflag<br />
Description: GM Flag file<br />
<br />
<br />
Package: gnutls<br />
Description: GNU Transport Layer Security Library<br />
<br />
<br />
Package: goodfork<br />
Description: fork,system & spawn etc. routines that avoid libc's fork()<br />
<br />
<br />
Package: gsm610<br />
Description: Library of the implementation of GSM 6.10 codec<br />
<br />
<br />
Package: gst-ffmpeg<br />
Description: FFmpeg-based GStreamer plug-in<br />
<br />
<br />
Package: gst-plugins-bad<br />
Description: Plugins for GStreamer<br />
<br />
<br />
Package: gst-plugins-base<br />
Description: Plugins for GStreamer<br />
<br />
<br />
Package: gst-plugins-good<br />
Description: Plugins for GStreamer<br />
<br />
<br />
Package: gst-plugins-ugly<br />
Description: Plugins for GStreamer<br />
<br />
<br />
Package: gstpdk<br />
Description: Library to support building gstreamer pipelines as pdk plugins<br />
<br />
<br />
Package: gstreamer<br />
Description: GStreamer is a multimedia framework for encoding and decoding video and sound. It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime.<br />
<br />
<br />
Package: gzip<br />
Description: gzip (GNU zip) is a compression utility designed to be a replacement for 'compress'. The GNU Project uses it as the standard compression program for its system.<br />
<br />
<br />
Package: hal-lib<br />
Description: Platform abstraction layer - separates & centralizes low-level product information from higher-level applications<br />
<br />
<br />
Package: hal-modules<br />
Description: Platform abstraction layer - device specific modules<br />
<br />
<br />
Package: hidavrcp<br />
Description: HidAvrcp is the userspace avrcp event reporter<br />
<br />
<br />
Package: hidd<br />
Description: HIDd manages the human interface devices (HID) and drivers.<br />
<br />
<br />
Package: hidinputdev<br />
Description: HidInputDev is the userspace dynamic input device plugin.<br />
<br />
<br />
Package: hidkeypad<br />
Description: HidKeypad is the userspace keypad plugin.<br />
<br />
<br />
Package: hidlib<br />
Description: Library for HID plugins and utilities<br />
<br />
<br />
Package: hostapd<br />
Description: hostapd (802.11 authenticator)<br />
<br />
<br />
Package: hunspell<br />
Description: Hunspell spell checker and morphological analyzer<br />
<br />
<br />
Package: i2c-drv<br />
Description: User space I2C driver<br />
<br />
<br />
Package: ihex<br />
Description: Intel Hex utility<br />
<br />
<br />
Package: imaccountvalidator<br />
Description: Mojo IM Libpurple Account Validator<br />
<br />
<br />
Package: imlibpurpleservice<br />
Description: Mojo IM Libpurple Service<br />
<br />
<br />
Package: imyahootransport<br />
Description: Mojo YahooIM Service<br />
<br />
<br />
Package: initscripts<br />
Description: SysV init scripts<br />
<br />
<br />
Package: install-first<br />
Description: install-first<br />
<br />
<br />
Package: integcheck<br />
Description: Tool to Check Root Filesystem Integrity Check Tool<br />
<br />
<br />
Package: ipkg<br />
Description: Itsy Package Manager<br />
<br />
<br />
Package: iproute2<br />
Description: kernel routing and traffic control utilities<br />
<br />
<br />
Package: iptables<br />
Description: iptables network filtering tools<br />
<br />
<br />
Package: iptables-utils<br />
Description: iptables network filtering tools<br />
<br />
<br />
Package: iputils<br />
Description: Utilities for the IP protocol, including traceroute6, tracepath, tracepath6, ping, ping6 and arping.<br />
<br />
<br />
Package: iputils-arping<br />
Description: Utilities for the IP protocol, including traceroute6, tracepath, tracepath6, ping, ping6 and arping.<br />
<br />
<br />
Package: jail<br />
Description: Jail<br />
<br />
<br />
Package: jemalloc<br />
Description: FreeBSD Memory allocation<br />
<br />
<br />
Package: jpeg<br />
Description: libjpeg is a library for handling the JPEG (JFIF) image format.<br />
<br />
<br />
Package: keymanager<br />
Description: Key Manager<br />
<br />
<br />
Package: killall<br />
Description: procfs tools<br />
<br />
<br />
Package: klog<br />
Description: klog - utility to read and manipulate in memory kernel logs<br />
<br />
<br />
Package: libaffinity<br />
Description: Library and tool to set CPU affinity of threads<br />
<br />
<br />
Package: libasound<br />
Description: Alsa sound library<br />
<br />
<br />
Package: libasound-module-ctl-pulse<br />
Description: Alsa plugin for ctl-pulse<br />
<br />
<br />
Package: libasound-module-pcm-pulse<br />
Description: Alsa plugin for pcm-pulse<br />
<br />
<br />
Package: libautocrat<br />
Description: Command-line library<br />
<br />
<br />
Package: libavcodec<br />
Description: FFmpeg is a complete solution to record, convert and stream audio and video<br />
<br />
<br />
Package: libavdevice<br />
Description: FFmpeg is a complete solution to record, convert and stream audio and video<br />
<br />
<br />
Package: libavfilter<br />
Description: FFmpeg is a complete solution to record, convert and stream audio and video<br />
<br />
<br />
Package: libavformat<br />
Description: FFmpeg is a complete solution to record, convert and stream audio and video<br />
<br />
<br />
Package: libavutil<br />
Description: FFmpeg is a complete solution to record, convert and stream audio and video<br />
<br />
<br />
Package: libcommonservices<br />
Description: mDNSResponder Common Services<br />
<br />
<br />
Package: libcompass<br />
Description: LibCompass<br />
<br />
<br />
Package: libcrypto<br />
Description: Secure Socket Layer (SSL) binary and related cryptographic tools.<br />
<br />
<br />
Package: libcurl<br />
Description: Command line tool and library for client-side URL transfers.<br />
<br />
<br />
Package: libdnssd<br />
Description: mDNS API (Bonjour)<br />
<br />
<br />
Package: libexif<br />
Description: Library to read the extended image information (EXIF) from JPEG pictures<br />
<br />
<br />
Package: libfaac<br />
Description: Library for reading some sort of media format.<br />
<br />
<br />
Package: libflac<br />
Description: FLAC is a Free Lossless Audio Codec.<br />
<br />
<br />
Package: libgcrypt<br />
Description: A general purpose cryptographic library based on the code from GnuPG<br />
<br />
<br />
Package: libgpg-error<br />
Description: GPG-Error library<br />
<br />
<br />
Package: libgpod<br />
Description: a shared library to access the contents of an iPod<br />
<br />
<br />
Package: libhelpers<br />
Description: Helpers<br />
<br />
<br />
Package: libhelpers-ex<br />
Description: Helpers Ex<br />
<br />
<br />
Package: libhostap<br />
Description: shared hostap library<br />
<br />
<br />
Package: libicudata<br />
Description: Version 3.6-r4 of package icu<br />
<br />
<br />
Package: libicui18n<br />
Description: Version 3.6-r4 of package icu<br />
<br />
<br />
Package: libicuio<br />
Description: Version 3.6-r4 of package icu<br />
<br />
<br />
Package: libicule<br />
Description: Version 3.6-r4 of package icu<br />
<br />
<br />
Package: libiculx<br />
Description: Version 3.6-r4 of package icu<br />
<br />
<br />
Package: libicutu<br />
Description: Version 3.6-r4 of package icu<br />
<br />
<br />
Package: libicuuc<br />
Description: Version 3.6-r4 of package icu<br />
<br />
<br />
Package: libid3tag<br />
Description: Library for interacting with ID3 tags.<br />
<br />
<br />
Package: libipkg<br />
Description: Itsy Package Manager Library<br />
<br />
<br />
Package: libltdl<br />
Description: Generic library support script This is GNU libtool, a generic library support script. Libtool hides the complexity of generating special library types (such as shared libraries) behind a consistent interface.<br />
<br />
<br />
Package: libmemcpy<br />
Description: Optimized version of memcpy from 4.4 toolchain<br />
<br />
<br />
Package: libnapp<br />
Description: Nova/Native Application and Application Manager Libraries<br />
<br />
<br />
Package: libnetbridge<br />
Description: bridge-utils library<br />
<br />
<br />
Package: libnrwindow<br />
Description: Nova/Native Application Remote Window Library<br />
<br />
<br />
Package: libnssmdns<br />
Description: Name Service Switch for Bonjour<br />
<br />
<br />
Package: libogg<br />
Description: libogg is the bitstream and framing library for the Ogg project. It provides functions which are necessary to codec libraries like libvorbis.<br />
<br />
<br />
Package: liboil<br />
Description: Liboil is a library of simple functions that are optimized for various CPUs.<br />
<br />
<br />
Package: libopenal<br />
Description: Open Audio Library<br />
<br />
<br />
Package: libpalmsocket<br />
Description: Palm Socket Library with SSL Support<br />
<br />
<br />
Package: libpcap<br />
Description: Network Packet Capture Library<br />
<br />
<br />
Package: libpdl<br />
Description: Palm Gaming SDK<br />
<br />
<br />
Package: libpng<br />
Description: PNG Library<br />
<br />
<br />
Package: libpng12<br />
Description: PNG Library<br />
<br />
<br />
Package: libpsc<br />
Description: Publish Subscribe Communication<br />
<br />
<br />
Package: libpulse<br />
Description: Pulseaudio is a sound server for Linux and Unix-like operating systems.<br />
<br />
<br />
Package: libpulse-simple<br />
Description: Pulseaudio is a sound server for Linux and Unix-like operating systems.<br />
<br />
<br />
Package: libpurple<br />
Description: multi-protocol instant messaging library<br />
<br />
<br />
Package: librdx<br />
Description: Remote diagnostics library<br />
<br />
<br />
Package: libremoteplugin<br />
Description: RemotePlugin<br />
<br />
<br />
Package: libsamplerate0<br />
Description: An audio Sample Rate Conversion library<br />
<br />
<br />
Package: libsdl<br />
Description: Simple DirectMedia Layer<br />
<br />
<br />
Package: libsdl-cinema<br />
Description: SDL Cinema playback library<br />
<br />
<br />
Package: libsdl-image<br />
Description: Simple DirectMedia Layer Image<br />
<br />
<br />
Package: libsdl-mixer<br />
Description: Simple DirectMedia Layer Mixer<br />
<br />
<br />
Package: libsdl-net<br />
Description: Simple DirectMedia Layer Net<br />
<br />
<br />
Package: libsdl-ttf<br />
Description: Simple DirectMedia Layer TTF<br />
<br />
<br />
Package: libsigcpp-2.0<br />
Description: A library for loose coupling of C++ method calls<br />
<br />
<br />
Package: libsimplestats<br />
Description: libsimplestats<br />
<br />
<br />
Package: libsndfile1<br />
Description: An audio format Conversion library<br />
<br />
<br />
Package: libsoup<br />
Description: libsoup C library that handles the HTTP protocol.<br />
<br />
<br />
Package: libspeex<br />
Description: Speex codec<br />
<br />
<br />
Package: libsqlite<br />
Description: An Embeddable SQL Database Engine<br />
<br />
<br />
Package: libssl<br />
Description: Secure Socket Layer (SSL) binary and related cryptographic tools.<br />
<br />
<br />
Package: libswscale<br />
Description: FFmpeg is a complete solution to record, convert and stream audio and video<br />
<br />
<br />
Package: libsysfs<br />
Description: System Utilities Based on Sysfs<br />
<br />
<br />
Package: libulockmgr<br />
Description: With FUSE it is possible to implement a fully functional filesystem in a userspace program<br />
<br />
<br />
Package: libupstart<br />
Description: Event driven system init<br />
<br />
<br />
Package: libusd<br />
Description: User Space Device Drivers Platform<br />
<br />
<br />
Package: libusf<br />
Description: User Space Device Driver Framework<br />
<br />
<br />
Package: libvolume-id<br />
Description: udev is a daemon which dynamically creates and removes device nodes from /dev/, handles hotplug events and loads drivers at boot time. It replaces the hotplug package and requires a kernel not older than 2.6.12.<br />
<br />
<br />
Package: libvorbis<br />
Description: Ogg Vorbis is a high-quality lossy audio codec that is free of intellectual property restrictions. libvorbis is the main vorbis codec library.<br />
<br />
<br />
Package: libwebosproxy<br />
Description: Library for retrieving proxy information for webOS<br />
<br />
<br />
Package: libwps<br />
Description: shared hostap wps library<br />
<br />
<br />
Package: libxml2<br />
Description: GNOME XML Parser library<br />
<br />
<br />
Package: libxslt<br />
Description: GNOME XSLT library<br />
<br />
<br />
Package: logctld<br />
Description: Log Control service<br />
<br />
<br />
Package: logd-conf<br />
Description: Logging daemon configuration<br />
<br />
<br />
Package: luna-applauncher<br />
Description: Luna Application Launcher<br />
<br />
<br />
Package: luna-downloadmgr<br />
Description: LunaDownloadManager<br />
<br />
<br />
Package: luna-fonts<br />
Description: Avenir Fonts, Vera backup fonts<br />
<br />
<br />
Package: luna-fonts-cjkv<br />
Description: Ascender cjk fonts<br />
<br />
<br />
Package: luna-fonts-prelude<br />
Description: Avenir Fonts, Vera backup fonts<br />
<br />
<br />
Package: luna-init<br />
Description: Luna Init<br />
<br />
<br />
Package: luna-keymap-headers<br />
Description: Luna keymap headers<br />
<br />
<br />
Package: luna-keymaps<br />
Description: luna-keymaps<br />
<br />
<br />
Package: luna-media-shim<br />
Description: Shim for the deprecated luna-media library<br />
<br />
<br />
Package: luna-network<br />
Description: Network Connection Objects for Luna<br />
<br />
<br />
Package: luna-prefs<br />
Description: LunaPreferencesManager<br />
<br />
<br />
Package: luna-service2<br />
Description: Lunaservice2 Library<br />
<br />
<br />
Package: luna-sysmgr<br />
Description: LunaSysManager<br />
<br />
<br />
Package: luna-sysmgr-ipc<br />
Description: IPC library for multiprocess support in LunaSysMgr<br />
<br />
<br />
Package: luna-sysservice<br />
Description: Luna System Service<br />
<br />
<br />
Package: luna-systemui<br />
Description: Luna System UI<br />
<br />
<br />
Package: luna-universalsearchmgr<br />
Description: UniversalSearchManager<br />
<br />
<br />
Package: luna-webkit<br />
Description: Webkit 4<br />
<br />
<br />
Package: lvm2<br />
Description: LVM2 is a set of utilities to manage logical volumes in Linux.<br />
<br />
<br />
Package: lvm2-config<br />
Description: LVM2 is a set of utilities to manage logical volumes in Linux.<br />
<br />
<br />
Package: lvm2-static<br />
Description: LVM2 is a set of utilities to manage logical volumes in Linux.<br />
<br />
<br />
Package: makedevs<br />
Description: A tool to make device nodes<br />
<br />
<br />
Package: masflib<br />
Description: masf lib<br />
<br />
<br />
Package: mdnsd<br />
Description: mDNSResponder daemon (Bonjour)<br />
<br />
<br />
Package: media-api<br />
Description: Library to support building media api as an ipc<br />
<br />
<br />
Package: mediaadpcmdecodelib<br />
Description: PmMediaAdPcmCodecLib: IMA ADPCM Codec Library<br />
<br />
<br />
Package: mediametaserver<br />
Description: mediametaserver<br />
<br />
<br />
Package: mediaserver<br />
Description: PmMediaServer<br />
<br />
<br />
Package: memchute<br />
Description: Palm Memchute - low-memory manager<br />
<br />
<br />
Package: minicore2<br />
Description: Palm minicore 2<br />
<br />
<br />
Package: minidhcpd<br />
Description: Miniature DHCP Client / DHCP Server / Link Local Client (IPv4 only)<br />
<br />
<br />
Package: mjson<br />
Description: mjson<br />
<br />
<br />
Package: mkbootfs-tools<br />
Description: tools to make a /boot<br />
<br />
<br />
Package: mkimage<br />
Description: U-boot bootloader OS mkimage tool<br />
<br />
<br />
Package: mmscodec<br />
Description: MMS Transcoder Library<br />
<br />
<br />
Package: mmsservice<br />
Description: Mojo MMS Service<br />
<br />
<br />
Package: mobilehotspotd<br />
Description: Mobile HotSpot Daemon<br />
<br />
<br />
Package: module-init-tools<br />
Description: This package contains a set of programs for loading, inserting, and removing kernel modules for Linux (versions 2.5.48 and above). It serves the same function that the modutils package serves for Linux 2.4.<br />
<br />
<br />
Package: module-init-tools-depmod<br />
Description: This package contains a set of programs for loading, inserting, and removing kernel modules for Linux (versions 2.5.48 and above). It serves the same function that the modutils package serves for Linux 2.4.<br />
<br />
<br />
Package: modutils-initscripts<br />
Description: modutils configuration files<br />
<br />
<br />
Package: mojo-systemui<br />
Description: Mojo Version of SystemUI<br />
<br />
<br />
Package: mojodb<br />
Description: MojoDB Service<br />
<br />
<br />
Package: mojolocation<br />
Description: Location Service<br />
<br />
<br />
Package: mojomail-common<br />
Description: Mojomail Common<br />
<br />
<br />
Package: mojomail-eas<br />
Description: Mojomail Exchange ActiveSync<br />
<br />
<br />
Package: mojomail-imap<br />
Description: Mojomail IMAP<br />
<br />
<br />
Package: mojomail-pop<br />
Description: Mojomail POP<br />
<br />
<br />
Package: mojomail-smtp<br />
Description: Mojomail SMTP<br />
<br />
<br />
Package: mountcfs<br />
Description: mountcfs<br />
<br />
<br />
Package: mountcrypt<br />
Description: Key Manager<br />
<br />
<br />
Package: mtools<br />
Description: Mtools is a collection of utilities for accessing MS-DOS disks from Unix without mounting them.<br />
<br />
<br />
Package: natool<br />
Description: Limited native support for applications<br />
<br />
<br />
Package: ncurses<br />
Description: Ncurses library<br />
<br />
<br />
Package: netbase<br />
Description: This package provides the necessary infrastructure for basic TCP/IP based networking.<br />
<br />
<br />
Package: node-ls2<br />
Description: node-ls2<br />
<br />
<br />
Package: node-pmloglib<br />
Description: node-pmloglib<br />
<br />
<br />
Package: node-webos<br />
Description: node-webos<br />
<br />
<br />
Package: nodejs<br />
Description: Evented I/O for V8 javascript<br />
<br />
<br />
Package: novacom<br />
Description: NovaCOM -- novacom utility for talking to NovaCOMd<br />
<br />
<br />
Package: novacomd<br />
Description: NovaCOMd -- Daemon for NovaCOM (device and host)<br />
<br />
<br />
Package: npapi-headers<br />
Description: NPAPI headers<br />
<br />
<br />
Package: npapiinterfacelib<br />
Description: NPAPIInterface<br />
<br />
<br />
Package: ntpdate<br />
Description: The Network Time Protocol (NTP) is used to synchronize the time of a computer client or server to another server or reference time source, such as a radio or satellite receiver or modem.<br />
<br />
<br />
Package: omadm<br />
Description: OmaDm interfaces used by software updates and provisioning.<br />
<br />
<br />
Package: ondevicedemod<br />
Description: Luna Service for On Device Demo<br />
<br />
<br />
Package: ondevlogger<br />
Description: Modem Firmware/NV Updater for Floyd DVT1 and Castle EVT0<br />
<br />
<br />
Package: opencore-amr<br />
Description: Library of OpenCORE Framework implementation of Adaptive Multi Rate Narrowband and Wideband speech codec<br />
<br />
<br />
Package: openssl<br />
Description: Secure Socket Layer (SSL) binary and related cryptographic tools.<br />
<br />
<br />
Package: orc<br />
Description: orc - The Oil Runtime Compiler<br />
<br />
<br />
Package: ossinfo<br />
Description: Open Source License Information PDF<br />
<br />
<br />
Package: ota-scripts<br />
Description: Scripts to be included only on OTA ramdisk<br />
<br />
<br />
Package: palmadpcmdecoder<br />
Description: PmMediaGstAdPcmDecLib: IMA ADPCM gStreamer Decoder Element<br />
<br />
<br />
Package: palmaudioencoder-msm8660<br />
Description: palmaudioencoder: audio encoder plugin that supports mp3, amr and aac<br />
<br />
<br />
Package: palmgstskype<br />
Description: Palm Skype GStreamer Element<br />
<br />
<br />
Package: palmjpgencsink-msm<br />
Description: PmMediaGstJpegEncSinkLib<br />
<br />
<br />
Package: palmmp4mux<br />
Description: PmMediaGstMpeg4MuxLib<br />
<br />
<br />
Package: palmqcelpdemux<br />
Description: PmMediaGstQcelpDemuxLib<br />
<br />
<br />
Package: palmvideodecoder-msm8660<br />
Description: palmvideodecoder<br />
<br />
<br />
Package: palmvideoencoder-msm8660<br />
Description: palmvideoencoder<br />
<br />
<br />
Package: palmvideosink-msm8660<br />
Description: msm8660 video sink elemnt<br />
<br />
<br />
Package: palmvoicecodec<br />
Description: palmvoicecodec<br />
<br />
<br />
Package: palmvoicedecoder<br />
Description: palmvoicedecoder<br />
<br />
<br />
Package: palmvoiceencoder<br />
Description: palmvoiceencoder<br />
<br />
<br />
Package: parted<br />
Description: parted, the GNU partition resizing program<br />
<br />
<br />
Package: pbnjson<br />
Description: Abstraction JSON DOM & SAX layer for C/C++<br />
<br />
<br />
Package: piranha<br />
Description: Piranha Vector Graphics Library<br />
<br />
<br />
Package: piranha-gles<br />
Description: Piranha Vector Graphics Library<br />
<br />
<br />
Package: pma6updater<br />
Description: A6 Firmware Updater<br />
<br />
<br />
Package: pmabllib<br />
Description: Adaptive Backlighting Library<br />
<br />
<br />
Package: pmbteng<br />
Description: PmBtEngineTab<br />
<br />
<br />
Package: pmbtenginetab<br />
Description: PmBtEngineTab<br />
<br />
<br />
Package: pmbtos<br />
Description: PmBtOs<br />
<br />
<br />
Package: pmbtstack<br />
Description: PmBtStack<br />
<br />
<br />
Package: pmbtstartup<br />
Description: PmBtStartup<br />
<br />
<br />
Package: pmcarrierdb<br />
Description: CarrierDB data<br />
<br />
<br />
Package: pmcasper<br />
Description: pmcasper is an app for automating input events<br />
<br />
<br />
Package: pmcertificatemgr<br />
Description: PmCertificateMgr: provides certificate storage and wrapper API on openssl cert manipulation functions<br />
<br />
<br />
Package: pmcertificatemgrservice<br />
Description: Provides Certificate Management functionality for the system<br />
<br />
<br />
Package: pmcertstore<br />
Description: Palm's Certificate Store.<br />
<br />
<br />
Package: pmeloop<br />
Description: PmEloop<br />
<br />
<br />
Package: pmklogd<br />
Description: Kernel Logging daemon<br />
<br />
<br />
Package: pmlogctl<br />
Description: Logging control application<br />
<br />
<br />
Package: pmlogdaemon<br />
Description: Logging daemon<br />
<br />
<br />
Package: pmloglib<br />
Description: Logging interface library<br />
<br />
<br />
Package: pmmodeminfo<br />
Description: PmModemInfo<br />
<br />
<br />
Package: pmmodeminterfacelayer<br />
Description: ModemInterfaceLayer for CDMA and UMTS radio<br />
<br />
<br />
Package: pmmodempower<br />
Description: Simple shell script to power on/off/cycle the modem<br />
<br />
<br />
Package: pmmodemqxdmlogger<br />
Description: PmModemQxdmLogger<br />
<br />
<br />
Package: pmmodemupdater<br />
Description: Modem Firmware/NV Updater<br />
<br />
<br />
Package: pmnetconfiglib<br />
Description: PmNetConfigLib<br />
<br />
<br />
Package: pmnetconfigmanager<br />
Description: PmNetConfigManager<br />
<br />
<br />
Package: pmstatemachineengine<br />
Description: PmStateMachineEngine<br />
<br />
<br />
Package: pmtpupdater<br />
Description: Touch panel Firmware Updater<br />
<br />
<br />
Package: pmupdater<br />
Description: PmUpdater is a tool used to install a system software update.<br />
<br />
<br />
Package: pmvpnacoal<br />
Description: PmVpnAcOal<br />
<br />
<br />
Package: pmvpndaemon<br />
Description: PmVpnDaemon<br />
<br />
<br />
Package: pmwanpppplugin<br />
Description: PmWanPppPlugin<br />
<br />
<br />
Package: pmwifiservice<br />
Description: PmWiFiService: Linux Daemon which controls WiFi subsystem<br />
<br />
<br />
Package: pmwirelesssystemframework<br />
Description: PmWirelessSystemFramework<br />
<br />
<br />
Package: pmwsfdaemon<br />
Description: PmWsfDaemon<br />
<br />
<br />
Package: pmwsfwanblade<br />
Description: PmWsfWanBlade<br />
<br />
<br />
Package: popt<br />
Description: The popt library exists essentially for parsing command line options.<br />
<br />
<br />
Package: popvol<br />
Description: populate volatile<br />
<br />
<br />
Package: powerd<br />
Description: Palm powerd daemon<br />
<br />
<br />
Package: powerlog<br />
Description: Periodic logger of things power-related<br />
<br />
<br />
Package: ppp<br />
Description: Point-to-Point Protocol (PPP) daemon<br />
<br />
<br />
Package: printmgr<br />
Description: print manager<br />
<br />
<br />
Package: procps<br />
Description: Procps is the package that has a bunch of small useful utilities that give information about processes using the /proc filesystem. The package includes the programs ps, top, vmstat, w, kill, and skill.<br />
<br />
<br />
Package: psmisc<br />
Description: procfs tools<br />
<br />
<br />
Package: pstree<br />
Description: procfs tools<br />
<br />
<br />
Package: ptmalloc3<br />
Description: Multi-thread malloc implementation<br />
<br />
<br />
Package: pubsubservice<br />
Description: Publish Subscribe Service<br />
<br />
<br />
Package: pulseaudio<br />
Description: Pulseaudio is a sound server for Linux and Unix-like operating systems.<br />
<br />
<br />
Package: pulseaudio-lib-alsa-util<br />
Description: PulseAudio library for alsa-util<br />
<br />
<br />
Package: pulseaudio-lib-protocol-native<br />
Description: PulseAudio library for protocol-native<br />
<br />
<br />
Package: pulseaudio-lib-protocol-simple<br />
Description: PulseAudio library for protocol-simple<br />
<br />
<br />
Package: pulseaudio-misc<br />
Description: Pulseaudio is a sound server for Linux and Unix-like operating systems.<br />
<br />
<br />
Package: pulseaudio-module-alsa-card<br />
Description: PulseAudio module for alsa-card<br />
<br />
<br />
Package: pulseaudio-module-alsa-sink<br />
Description: PulseAudio module for alsa-sink<br />
<br />
<br />
Package: pulseaudio-module-alsa-source<br />
Description: PulseAudio module for alsa-source<br />
<br />
<br />
Package: pulseaudio-module-card-restore<br />
Description: PulseAudio module for card-restore<br />
<br />
<br />
Package: pulseaudio-module-combine<br />
Description: PulseAudio module for combine<br />
<br />
<br />
Package: pulseaudio-module-default-device-restore<br />
Description: PulseAudio module for default-device-restore<br />
<br />
<br />
Package: pulseaudio-module-detect<br />
Description: PulseAudio module for detect<br />
<br />
<br />
Package: pulseaudio-module-device-restore<br />
Description: PulseAudio module for device-restore<br />
<br />
<br />
Package: pulseaudio-module-native-protocol-fd<br />
Description: PulseAudio module for native-protocol-fd<br />
<br />
<br />
Package: pulseaudio-module-native-protocol-unix<br />
Description: PulseAudio module for native-protocol-unix<br />
<br />
<br />
Package: pulseaudio-module-null-sink<br />
Description: PulseAudio module for null-sink<br />
<br />
<br />
Package: pulseaudio-module-null-source<br />
Description: PulseAudio module for null-source<br />
<br />
<br />
Package: pulseaudio-module-palm-a2dp-provider-sink<br />
Description: PulseAudio module for palm-a2dp-provider-sink<br />
<br />
<br />
Package: pulseaudio-module-palm-policy<br />
Description: PulseAudio module for palm-policy<br />
<br />
<br />
Package: pulseaudio-module-remap-sink<br />
Description: PulseAudio module for remap-sink<br />
<br />
<br />
Package: pulseaudio-module-rescue-streams<br />
Description: PulseAudio module for rescue-streams<br />
<br />
<br />
Package: pulseaudio-module-simple-protocol-unix<br />
Description: PulseAudio module for simple-protocol-unix<br />
<br />
<br />
Package: pulseaudio-module-stream-restore<br />
Description: PulseAudio module for stream-restore<br />
<br />
<br />
Package: pulseaudio-module-suspend-on-idle<br />
Description: PulseAudio module for suspend-on-idle<br />
<br />
<br />
Package: pulseaudio-module-volume-restore<br />
Description: PulseAudio module for volume-restore<br />
<br />
<br />
Package: pulseaudio-server<br />
Description: Pulseaudio is a sound server for Linux and Unix-like operating systems.<br />
<br />
<br />
Package: pvrtc<br />
Description: PVRTC<br />
<br />
<br />
Package: qcameralib<br />
Description: Qualcomm User Space Camera Control Library<br />
<br />
<br />
Package: qcomx-topaz<br />
Description: Qualcomm OpenMAX Libraries<br />
<br />
<br />
Package: qmi2<br />
Description: Qmi2<br />
<br />
<br />
Package: qmuxd<br />
Description: QmuxDaemon<br />
<br />
<br />
Package: qt4<br />
Description: Version 4.8.0-83 of package qt4<br />
<br />
<br />
Package: rdxd<br />
Description: Remote diagnostics daemon<br />
<br />
<br />
Package: readline<br />
Description: The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. The Readline library includes additional functions to maintain a list of previously-entered command lines, to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.<br />
<br />
<br />
Package: recovery-utilities<br />
Description: Recovery Utilities for WebOS Dr<br />
<br />
<br />
Package: redbend<br />
Description: RedBend OMA-DM Device Management library<br />
<br />
<br />
Package: remote-adapter<br />
Description: remote-adapter<br />
<br />
<br />
Package: remote-adapter-ipc<br />
Description: Ipc messages for remote-adapter communication using luna-sysmgr-ipc<br />
<br />
<br />
Package: resizefat<br />
Description: FAT Filesystem Resize Tool<br />
<br />
<br />
Package: rolegen<br />
Description: rolegen<br />
<br />
<br />
Package: sensord<br />
Description: sensord manages publishing sensor data to readers<br />
<br />
<br />
Package: ser2net<br />
Description: Ser2net is a program for allowing network connections to serial ports.<br />
<br />
<br />
Package: sersend<br />
Description: sersend<br />
<br />
<br />
Package: setcharge<br />
Description: Utility to set the USB charging current for Floyd DVT devices.<br />
<br />
<br />
Package: setserial<br />
Description: Version 2.17-r1 of package setserial<br />
<br />
<br />
Package: shutdownscripts<br />
Description: Palm Shutdown Scripts<br />
<br />
<br />
Package: skypekit<br />
Description: Skypekit library<br />
<br />
<br />
Package: skypem<br />
Description: Skype service<br />
<br />
<br />
Package: skypevalidator<br />
Description: Skype Account Validator<br />
<br />
<br />
Package: smartkey<br />
Description: SmartKeyService<br />
<br />
<br />
Package: smsservice<br />
Description: Mojo SMS Service<br />
<br />
<br />
Package: sp-smaps<br />
Description: smaps capture snaps tool<br />
<br />
<br />
Package: sqlite3<br />
Description: An Embeddable SQL Database Engine<br />
<br />
<br />
Package: sqlite3-palm-extension<br />
Description: sqlite3 extension library providing collation supporte<br />
<br />
<br />
Package: storaged<br />
Description: Storage Manager<br />
<br />
<br />
Package: strace<br />
Description: strace is a system call tracing tool.<br />
<br />
<br />
Package: stservice<br />
Description: ST Service<br />
<br />
<br />
Package: sysfsutils<br />
Description: System Utilities Based on Sysfs<br />
<br />
<br />
Package: sysstat<br />
Description: The sysstat utilities are a collection of performance monitoring tools for Linux.<br />
<br />
<br />
Package: systemsoundsloader<br />
Description: Systemsounds loader (pulseaudio samplecache loader)<br />
<br />
<br />
Package: sysvinit<br />
Description: System-V like init.<br />
<br />
<br />
Package: sysvinit-pidof<br />
Description: System-V like init.<br />
<br />
<br />
Package: tap2shared<br />
Description: Palm tap2shared daemon<br />
<br />
<br />
Package: tar<br />
Description: GNU tar saves many files together into a single tape or disk archive, and can restore individual files from the archive.<br />
<br />
<br />
Package: tcpdump<br />
Description: A sophisticated network protocol analyzer<br />
<br />
<br />
Package: tellbootie<br />
Description: tellbootie - reboot and pass boot arguments to the bootloader<br />
<br />
<br />
Package: til<br />
Description: TelephonyInterfaceLayer<br />
<br />
<br />
Package: timezone<br />
Description: This package is for timezone information.<br />
<br />
<br />
Package: touchpanel-firmware<br />
Description: Touchpanel Firmware<br />
<br />
<br />
Package: touchpanel-measure<br />
Description: touchpanel-measure<br />
<br />
<br />
Package: transcodeserver<br />
Description: Luna Service for Transcode<br />
<br />
<br />
Package: trenchcoat<br />
Description: Trenchcoat -- Palm's Flashing Tool<br />
<br />
<br />
Package: udev<br />
Description: udev is a daemon which dynamically creates and removes device nodes from /dev/, handles hotplug events and loads drivers at boot time. It replaces the hotplug package and requires a kernel not older than 2.6.12.<br />
<br />
<br />
Package: updatedaemon<br />
Description: UpdateDaemon listens for IPC messages involving a system software update, and launches the OmaDm, Downloader, and PmUpdater executables.<br />
<br />
<br />
Package: updatefsinfo<br />
Description: Version 1.5-6 of package updatefsinfo<br />
<br />
<br />
Package: uploadd<br />
Description: Upload daemon<br />
<br />
<br />
Package: upstart<br />
Description: Event driven system init<br />
<br />
<br />
Package: upstart-initscripts<br />
Description: upstart jobs not package-specific<br />
<br />
<br />
Package: upstart-sysvcompat<br />
Description: Event driven system init<br />
<br />
<br />
Package: uriparser<br />
Description: RFC 3986 compliant URI parsing library<br />
<br />
<br />
Package: usbmon<br />
Description: usbmon -- usb monitor<br />
<br />
<br />
Package: usbnet<br />
Description: Enable USB Ethernet<br />
<br />
<br />
Package: usbsniffd<br />
Description: usbsniffd<br />
<br />
<br />
Package: util-linux-ng-blockdev<br />
Description: Util-linux-ng is a suite of essential utilities for any Linux system.<br />
<br />
<br />
Package: util-linux-ng-ionice<br />
Description: Util-linux-ng is a suite of essential utilities for any Linux system.<br />
<br />
<br />
Package: util-linux-ng-losetup<br />
Description: Util-linux-ng is a suite of essential utilities for any Linux system.<br />
<br />
<br />
Package: util-linux-ng-mkswap<br />
Description: Util-linux-ng is a suite of essential utilities for any Linux system.<br />
<br />
<br />
Package: util-linux-ng-swaponoff<br />
Description: Util-linux-ng is a suite of essential utilities for any Linux system.<br />
<br />
<br />
Package: v8<br />
Description: v8 Javascript engine<br />
<br />
<br />
Package: vibetonz<br />
Description: Immersion VibeTonz<br />
<br />
<br />
Package: vpnacagent<br />
Description: Palm's VPN Cisco Anyconnect Agent<br />
<br />
<br />
Package: vpnc<br />
Description: A client for the Cisco3000 VPN Concentrator<br />
<br />
<br />
Package: vpncagent<br />
Description: Palm's VPNC IPSEC Agent<br />
<br />
<br />
Package: watchdogd<br />
Description: watchdogd -- watchdog daemon<br />
<br />
<br />
Package: wireless-tools<br />
Description: Tools for the Linux Standard Wireless Extension Subsystem<br />
<br />
<br />
Package: wirelesswhitebox-tiltest<br />
Description: TIL Command Line Test app<br />
<br />
<br />
Package: wpasupplicant<br />
Description: wpasupplicant (802.11 supplicant)<br />
<br />
<br />
Package: wprint<br />
Description: HP/IPG print layer<br />
<br />
<br />
Package: xt9<br />
Description: XT9 libraries, headers, databases<br />
<br />
<br />
Package: xz-embedded<br />
Description: xz-embedded-20090902<br />
<br />
<br />
Package: yajl<br />
Description: Fast JSON SAX parser/generator API for C<br />
<br />
<br />
Package: zeroconfigd<br />
Description: Zero Configuration Networking Daemon<br />
<br />
<br />
Package: zlib<br />
Description: Zlib Compression Library<br />
<br />
<br />
Package: exmap-console<br />
Description: Exmap-console is a suite of command line applications developed around the Exmap memory analysis tool.<br />
<br />
<br />
Package: hidtouchpanel<br />
Description: Userspace touchscreen hidd plugin<br />
<br />
<br />
Package: kernel<br />
Description: Rockhopper Linux Kernel, v2.6.35<br />
<br />
<br />
Package: kernel-dev<br />
Description: Rockhopper Linux Kernel, v2.6.35<br />
<br />
<br />
Package: kernel-image-2.6.35-palm-tenderloin<br />
Description: Rockhopper Linux Kernel, v2.6.35<br />
<br />
<br />
Package: kernel-module-ansi-cprng<br />
Description: ansi-cprng kernel module; Software Pseudo Random Number Generator<br />
<br />
<br />
Package: kernel-module-authenc<br />
Description: authenc kernel module; Simple AEAD wrapper for IPsec<br />
<br />
<br />
Package: kernel-module-cpaccess<br />
Description: cpaccess kernel module<br />
<br />
<br />
Package: kernel-module-dma-test<br />
Description: dma-test kernel module; Test for MSM DMA driver<br />
<br />
<br />
Package: kernel-module-gspca-main<br />
Description: gspca-main kernel module; GSPCA USB Camera Driver<br />
<br />
<br />
Package: kernel-module-lcd<br />
Description: lcd kernel module; LCD Lowlevel Control Abstraction<br />
<br />
<br />
Package: kernel-module-librasdioif<br />
Description: librasdioif kernel module; WLAN SDIODriver<br />
<br />
<br />
Package: kernel-module-lrw<br />
Description: lrw kernel module; LRW block cipher mode<br />
<br />
<br />
Package: kernel-module-oprofile<br />
Description: oprofile kernel module; OProfile system profiler<br />
<br />
<br />
Package: kernel-module-qce<br />
Description: qce kernel module; Crypto Engine driver<br />
<br />
<br />
Package: kernel-module-qcedev<br />
Description: qcedev kernel module; Qualcomm DEV Crypto driver<br />
<br />
<br />
Package: kernel-module-qcrypto<br />
Description: qcrypto kernel module; Qualcomm Crypto driver<br />
<br />
<br />
Package: kernel-module-scsi-wait-scan<br />
Description: scsi-wait-scan kernel module; SCSI wait for scans<br />
<br />
<br />
Package: kernel-module-serpent<br />
Description: serpent kernel module; Serpent and tnepres (kerneli compatible serpent reversed) Cipher Algorithm<br />
<br />
<br />
Package: kernel-module-tcp-bic<br />
Description: tcp-bic kernel module; BIC TCP<br />
<br />
<br />
Package: kernel-module-twofish<br />
Description: twofish kernel module; Twofish Cipher Algorithm<br />
<br />
<br />
Package: kernel-module-twofish-common<br />
Description: twofish-common kernel module; Twofish cipher common functions<br />
<br />
<br />
Package: kernel-module-xts<br />
Description: xts kernel module; XTS block cipher mode<br />
<br />
<br />
Package: kernel-modules<br />
Description: Kernel modules meta package<br />
<br />
<br />
Package: pmmultitouchlib<br />
Description: Multitouch processing library<br />
<br />
<br />
Package: pmwifidriver-atheros-6003<br />
Description: Athero's WiFi Driver for AR6003 chipset</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Update_Service_Trace&diff=14351Update Service Trace2011-03-20T21:44:31Z<p>Destinal: fixed a link</p>
<hr />
<div>This is a trace of a captured / decrypted session from the pre updater client to Palm's updater web service (ps.palmws.com -- presumably PS stands for Patch Server?)<br />
<br />
This session was captured via the method described here: [[ Decrypt_SSL_(trusted_man-in-the-middle_technique) ]]<br />
<br />
Requests are from (pre) client to server. Responses are the returned response from the server to the pre.<br />
<br />
Note: some formatting issue on the wiki causes the HTTP headers in requests and responses to appear to be seperated by blank lines. They should not be.<br />
<br />
'''Transaction #1'''<br />
URL: https://ps.palmws.com/palmcsext/services/deviceJ/getAppListForUpdates<br />
<br />
Request: (edited - modified to mask MEID and email address. Token replaced with random hex string of same length in case it contains uniquely identifying information about my account -- yes, the first character before the 32 byte hex string is the letter "O")<br />
<br />
<pre><nowiki><br />
POST /palmcsext/services/deviceJ/getAppListForUpdates HTTP/1.1<br />
Host: ps.palmws.com<br />
Accept-Encoding: deflate, gzip<br />
X-Requested-With: XMLHttpRequest<br />
X-$PrototypeBI-Version: 1.6.0.3<br />
User-Agent: Mozilla/5.0 (webOS/1.0; U; en-US) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Pre/1.0<br />
Content-type: application/json; charset=UTF-8<br />
Accept: text/javascript, text/html, application/xml, text/xml, */*<br />
Accept-Language: en-us,en;q=0.5<br />
X-Palm-Carrier: c019-00<br />
Content-Length: 154<br />
<br />
<br />
<br />
{"AccountTokenInfo": {"token": "O4D88638DE01D99F60E185E487FB6A379", "deviceId": "MEID:00000000000000", "email": "xxxxxxx@yyyyy.com", "carrier": "Sprint"}}<br />
</nowiki></pre><br />
<br />
Response:<br />
<br />
<pre><nowiki><br />
HTTP/1.1 200 OK<br />
Server: Apache-Coyote/1.1<br />
Content-Type: application/json<br />
Date: Thu, 25 Jun 2009 23:59:56 GMT<br />
Content-Length: 335<br />
Connection: Keep-alive<br />
<br />
{"OutAppListForUpdates":{"appList":{"appIcon":"http:\/\/cdn.downloads.palm.com\/public\/21\/icon\/icon_22795E.png","appVersion":"0.9.11","id":21,"packageUrl":"https:\/\/cdn.downloads.palm.com\/apps\/21\/0.9.11\/files\/com.palm.pandora_0.9.11_all_signed.ipk","price":0,"publicApplicationId":"com.palm.pandora","title":"Pandora Radio"}}}<br />
</nowiki></pre><br />
<br />
'''Transaction #2'''<br />
Note that as request this was 80+ kilobytes, I have removed all <Item> tags and their contents for every item between "alsa-plugins" and "zlib":<br />
<br />
URL: https://ps.palmws.com/palmcsext/swupdateserver<br />
<br />
Request: (edited - modified to remove packages between "alsa-plugins" and "zlib")<br />
<br />
<pre><nowiki><br />
POST /palmcsext/swupdateserver HTTP/1.1<br />
Host: ps.palmws.com<br />
Cache-Control: private<br />
Connection: close<br />
User-Agent: HTTP SyncML Client [en] (WinNT; I)<br />
Accept: application/vnd.syncml.dm+xml<br />
Accept-Language: en<br />
Content-Type: application/vnd.syncml.dm+xml<br />
Accept-Charset: utf-8<br />
x-syncml-hmac: algorithm=MD5, username="156354238", mac=SF2dMGut4v2Mpmsrs1ydTw==<br />
Content-Length: 88175<br />
<br />
<?xml version="1.0" encoding="UTF-8"?><SyncML xmlns='SYNCML:SYNCML1.2'><SyncHdr><VerDTD><![CDATA[1.2]]></VerDTD><VerProto><![CDATA[DM/1.2]]></VerProto><SessionID><![CDATA[2]]></SessionID><MsgID><![CDATA[1]]></MsgID><Target><LocURI><![CDATA[https://ps.palmws.com/palmcsext/swupdateserver]]></LocURI></Target><Source><LocURI><![CDATA[MEID:00000000000000]]></LocURI></Source><Meta><MaxMsgSize xmlns='syncml:metinf'><![CDATA[300000]]></MaxMsgSize><MaxObjSize xmlns='syncml:metinf'><![CDATA[100000]]></MaxObjSize></Meta></SyncHdr><SyncBody><Alert><CmdID><![CDATA[1]]></CmdID><Data><![CDATA[1201]]></Data></Alert><Replace><CmdID><![CDATA[2]]></CmdID><Item><Source><LocURI><![CDATA[./Software/Build]]></LocURI></Source><Meta><Format xmlns='syncml:metinf'><![CDATA[chr]]></Format></Meta><Data><![CDATA[0]]></Data></Item><Item><Source><LocURI><![CDATA[./Software/Package/agg/Build]]></LocURI></Source><Meta><Format xmlns='syncml:metinf'><![CDATA[chr]]></Format></Meta><Data><![CDATA[118]]></Data></Item><Item><Source><LocURI><![CDATA[./Software/Package/alsa-conf-base/Build]]></LocURI></Source><Meta><Format xmlns='syncml:metinf'><![CDATA[chr]]></Format></Meta><Data><![CDATA[118]]></Data></Item><Item><Source><LocURI><![CDATA[./Software/Package/alsa-lib/Build]]></LocURI></Source><Meta><Format xmlns='syncml:metinf'><![CDATA[chr]]></Format></Meta><Data><![CDATA[118]]></Data></Item><Item><Source><LocURI><![CDATA[./Software/Package/alsa-plugins/Build]]></LocURI></Source><Meta><Format xmlns='syncml:metinf'><![CDATA[chr]]></Format></Meta><Data><![CDATA[118]]></Data></Item><Item><Source><LocURI><![CDATA[./Software/Package/zlib/Build]]></LocURI></Source><Meta><Format xmlns='syncml:metinf'><![CDATA[chr]]></Format></Meta><Data><![CDATA[118]]></Data></Item></Replace><Final/></SyncBody></SyncML><br />
</nowiki></pre><br />
<br />
Response:<br />
<br />
<pre><nowiki><br />
HTTP/1.1 200 OK<br />
Server: Apache-Coyote/1.1<br />
Cache-Control: no-store<br />
Content-Type: application/vnd.syncml.dm+xml<br />
Date: Thu, 25 Jun 2009 23:59:57 GMT<br />
Set-Cookie: JSESSIONID=D3A37EC425461940C39D89FE74AC21D1; Path=/palmcsext; Secure<br />
Content-Length: 1675a<br />
Connection: close<br />
<br />
<?xml version="1.0" encoding="UTF-8"?><SyncML xmlns='SYNCML:SYNCML1.2'><br />
<SyncHdr><br />
<VerProto>DM/1.2</VerProto><br />
<SessionID>2</SessionID><br />
<VerDTD>1.2</VerDTD><br />
<MsgID>1</MsgID><br />
<Target><br />
<LocURI>MEID:00000000000000</LocURI><br />
</Target><br />
<Source><br />
<LocURI>https://ps.palmws.com/palmcsext/swupdateserver;jsessionid=D3A37EC425461940C39D89FE74AC21D1?sessiontype=1201</LocURI><br />
</Source><br />
<RespURI>https://ps.palmws.com/palmcsext/swupdateserver;jsessionid=D3A37EC425461940C39D89FE74AC21D1?sessiontype=1201</RespURI><br />
</SyncHdr><br />
<SyncBody><br />
<Status><br />
<CmdID>1</CmdID><br />
<MsgRef>1</MsgRef><br />
<CmdRef>0</CmdRef><br />
<Cmd>SyncHdr</Cmd><br />
<TargetRef>https://ps.palmws.com/palmcsext/swupdateserver</TargetRef><br />
<SourceRef>MEID:00000000000000</SourceRef><br />
<Chal><br />
<Meta><br />
<Format xmlns="syncml:metinf">b64</Format><br />
<Type xmlns="syncml:metinf">syncml:auth-MAC</Type><br />
<NextNonce xmlns="syncml:metinf">ODAwYzB5UzNZPkxUSkhUZA==</NextNonce><br />
</Meta><br />
</Chal><br />
<Data>401</Data><br />
</Status><br />
<Status><br />
<CmdID>2</CmdID><br />
<MsgRef>1</MsgRef><br />
<CmdRef>1</CmdRef><br />
<Cmd>Alert</Cmd><br />
<Data>401</Data><br />
</Status><br />
<Status><br />
<CmdID>3</CmdID><br />
<MsgRef>1</MsgRef><br />
<CmdRef>2</CmdRef><br />
<Cmd>Replace</Cmd><br />
<Data>401</Data><br />
</Status><br />
<Final/><br />
</SyncBody><br />
</SyncML><br />
</nowiki></pre><br />
<br />
'''Transaction #3'''<br />
URL: https://ps.palmws.com/palmcsext/swupdateserver<br />
<br />
Request: (edited - modified to remove packages between "alsa-plugins" and "zlib")<br />
<br />
<pre><nowiki><br />
POST /palmcsext/swupdateserver;jsessionid=D3A37EC425461940C39D89FE74AC21D1?sessiontype=1201 HTTP/1.1<br />
Host: ps.palmws.com<br />
Cache-Control: private<br />
Connection: close<br />
User-Agent: HTTP SyncML Client [en] (WinNT; I)<br />
Accept: application/vnd.syncml.dm+xml<br />
Accept-Language: en<br />
Content-Type: application/vnd.syncml.dm+xml<br />
Accept-Charset: utf-8<br />
x-syncml-hmac: algorithm=MD5, username="156354238", mac=hvMeISwxSVUEofF2jHhQjA==<br />
Content-Length: 88818<br />
<br />
<?xml version="1.0" encoding="UTF-8"?><SyncML xmlns='SYNCML:SYNCML1.2'><SyncHdr><VerDTD><![CDATA[1.2]]></VerDTD><VerProto><![CDATA[DM/1.2]]></VerProto><SessionID><![CDATA[2]]></SessionID><MsgID><![CDATA[2]]></MsgID><Target><LocURI><![CDATA[https://ps.palmws.com/palmcsext/swupdateserver;jsessionid=D3A37EC425461940C39D89FE74AC21D1?sessiontype=1201]]></LocURI></Target><Source><LocURI><![CDATA[MEID:00000000000000]]></LocURI></Source><Meta><MaxMsgSize xmlns='syncml:metinf'><![CDATA[300000]]></MaxMsgSize><MaxObjSize xmlns='syncml:metinf'><![CDATA[100000]]></MaxObjSize></Meta></SyncHdr><SyncBody><Status><CmdID><![CDATA[3]]></CmdID><MsgRef><![CDATA[1]]></MsgRef><CmdRef><![CDATA[0]]></CmdRef><Cmd><![CDATA[SyncHdr]]></Cmd><TargetRef><![CDATA[MEID:00000000000000]]></TargetRef><SourceRef><![CDATA[https://ps.palmws.com/palmcsext/swupdateserver;jsessionid=D3A37EC425461940C39D89FE74AC21D1?sessiontype=1201]]></SourceRef><Chal><Meta><Format xmlns='syncml:metinf'><![CDATA[b64]]></Format><Type xmlns='syncml:metinf'><![CDATA[syncml:auth-MAC]]></Type><NextNonce xmlns='syncml:metinf'><![CDATA[pyYzdb2Td84KvzVMzT5DUg==]]></NextNonce></Meta></Chal><Data><![CDATA[407]]></Data></Status><Alert><CmdID><![CDATA[4]]></CmdID><Data><![CDATA[1201]]></Data></Alert><Replace><CmdID><![CDATA[5]]></CmdID><Item><Source><LocURI><![CDATA[./Software/Build]]></LocURI></Source><Meta><Format xmlns='syncml:metinf'><![CDATA[chr]]></Format></Meta><Data><![CDATA[0]]></Data></Item><Item><Source><LocURI><![CDATA[./Software/Package/agg/Build]]></LocURI></Source><Meta><Format xmlns='syncml:metinf'><![CDATA[chr]]></Format></Meta><Data><![CDATA[118]]></Data></Item><Item><Source><LocURI><![CDATA[./Software/Package/alsa-conf-base/Build]]></LocURI></Source><Meta><Format xmlns='syncml:metinf'><![CDATA[chr]]></Format></Meta><Data><![CDATA[118]]></Data></Item><Item><Source><LocURI><![CDATA[./Software/Package/alsa-lib/Build]]></LocURI></Source><Meta><Format xmlns='syncml:metinf'><![CDATA[chr]]></Format></Meta><Data><![CDATA[118]]></Data></Item><Item><Source><LocURI><![CDATA[./Software/Package/alsa-plugins/Build]]></LocURI></Source><Meta><Format xmlns='syncml:metinf'><![CDATA[chr]]></Format></Meta><Data><![CDATA[118]]></Data></Item><Item><Source><LocURI><![CDATA[./Software/Package/zlib/Build]]></LocURI></Source><Meta><Format xmlns='syncml:metinf'><![CDATA[chr]]></Format></Meta><Data><![CDATA[118]]></Data></Item></Replace><Final/></SyncBody></SyncML><br />
</nowiki></pre><br />
<br />
Response:<br />
<br />
<pre><nowiki><br />
HTTP/1.1 200 OK<br />
Server: Apache-Coyote/1.1<br />
x-syncml-hmac: algorithm=MD5, username="omadm.swupdate.palm.com", mac=rFEH80Pa0KkkI7l0dmKkxQ==<br />
Cache-Control: no-store<br />
Content-Type: application/vnd.syncml.dm+xml<br />
Date: Thu, 25 Jun 2009 23:59:58 GMT<br />
Content-Length: 12858<br />
Connection: close<br />
<br />
<?xml version="1.0" encoding="UTF-8"?><SyncML xmlns='SYNCML:SYNCML1.2'><br />
<SyncHdr><br />
<VerProto>DM/1.2</VerProto><br />
<SessionID>2</SessionID><br />
<VerDTD>1.2</VerDTD><br />
<MsgID>2</MsgID><br />
<Target><br />
<LocURI>MEID:00000000000000</LocURI><br />
</Target><br />
<Source><br />
<LocURI>https://ps.palmws.com/palmcsext/swupdateserver;jsessionid=D3A37EC425461940C39D89FE74AC21D1?sessiontype=1201</LocURI><br />
</Source><br />
<RespURI>https://ps.palmws.com/palmcsext/swupdateserver;jsessionid=D3A37EC425461940C39D89FE74AC21D1?sessiontype=1201</RespURI><br />
</SyncHdr><br />
<SyncBody><br />
<Status><br />
<CmdID>1</CmdID><br />
<MsgRef>2</MsgRef><br />
<CmdRef>0</CmdRef><br />
<Cmd>SyncHdr</Cmd><br />
<TargetRef>https://ps.palmws.com/palmcsext/swupdateserver;jsessionid=D3A37EC425461940C39D89FE74AC21D1?sessiontype=1201</TargetRef><br />
<SourceRef>MEID:00000000000000</SourceRef><br />
<Chal><br />
<Meta><br />
<Format xmlns="syncml:metinf">b64</Format><br />
<Type xmlns="syncml:metinf">syncml:auth-MAC</Type><br />
<NextNonce xmlns="syncml:metinf">RkRBQzU1anB1SVFNU3ZKWg==</NextNonce><br />
</Meta><br />
</Chal><br />
<Data>200</Data><br />
</Status><br />
<Status><br />
<CmdID>2</CmdID><br />
<MsgRef>2</MsgRef><br />
<CmdRef>4</CmdRef><br />
<Cmd>Alert</Cmd><br />
<Data>200</Data><br />
</Status><br />
<Status><br />
<CmdID>3</CmdID><br />
<MsgRef>2</MsgRef><br />
<CmdRef>5</CmdRef><br />
<Cmd>Replace</Cmd><br />
<Data>200</Data><br />
</Status><br />
<Replace><br />
<CmdID>4</CmdID><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/bootloader/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/bootloader/124/base/content?size=54042</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/pmipclib/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/pmipclib/124/base/content?size=34622</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/base-files/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/base-files/124/base/content?size=5290</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/java-com.palm.mail/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/java-com.palm.mail/124/base/content?size=582164</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/java-com.palm.calendar/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/java-com.palm.calendar/124/base/content?size=82994</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/palmcustomizationinfo/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/palmcustomizationinfo/124/a/content?size=948</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/directfb/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/directfb/124/base/content?size=343682</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/memchute/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/memchute/124/base/content?size=8376</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/java-com.palm.pimsync/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/java-com.palm.pimsync/124/base/content?size=128696</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/java-com.palm.backup/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/java-com.palm.backup/124/base/content?size=160062</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/com.palm.app.camera/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/com.palm.app.camera/124/base/content?size=108568</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/com.palm.app.findapps/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/com.palm.app.findapps/124/base/content?size=346550</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/luna-sysmgr/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/luna-sysmgr/124/base/content?size=2395590</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/pubsubservice/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/pubsubservice/124/base/content?size=107480</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/mobitv-sprint-rtspsrc/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/mobitv-sprint-rtspsrc/124/a/content?size=187816</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/fileindexer/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/fileindexer/124/base/content?size=89110</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/powerd/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/powerd/124/base/content?size=72078</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/browserserver/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/browserserver/124/base/content?size=62592</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/mediaserver/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/mediaserver/124/base/content?size=84890</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/palmvideosink-omap34xx/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/palmvideosink-omap34xx/124/base/content?size=33270</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/java-com.palm.pim/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/java-com.palm.pim/124/base/content?size=190974</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/com.palm.app.clock/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/com.palm.app.clock/124/base/content?size=587330</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/com.motionapps.service.classic/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/com.motionapps.service.classic/124/base/content?size=542488</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/com.telenav.sprintnavigation/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/com.telenav.sprintnavigation/124/a/content?size=1370334</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/java-com.palm.contacts/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/java-com.palm.contacts/124/base/content?size=59608</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/upstart-initscripts/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/upstart-initscripts/124/base/content?size=6922</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/palmbuildinfo/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/palmbuildinfo/124/base/content?size=938</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/luna-media/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/luna-media/124/base/content?size=128124</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/initscripts/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/initscripts/124/base/content?size=16150</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/browser-adapter/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/browser-adapter/124/base/content?size=51134</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/gloox/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/gloox/124/base/content?size=490510</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/luna-webkit/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/luna-webkit/124/base/content?size=3191040</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/sweatshop-sprint-castle/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/sweatshop-sprint-castle/124/a/content?size=179880</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/com.palm.app.phone/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/com.palm.app.phone/124/base/content?size=985600</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/com.telenav.app.sprintnavigation/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/com.telenav.app.sprintnavigation/124/a/content?size=314146</Data><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Build</LocURI><br />
</Target><br />
<Data>Palm webOS 1.0.3;124</Data><br />
</Item><br />
</Replace><br />
<Add><br />
<CmdID>5</CmdID><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/com.palm.app.ondevicedemo</LocURI><br />
</Target><br />
<Meta><br />
<Format xmlns="syncml:metinf">node</Format><br />
</Meta><br />
</Item><br />
<Item><br />
<Target><br />
<LocURI>./Software/Package/com.palm.app.ondevicedemo/PkgURL</LocURI><br />
</Target><br />
<Data>https://cdn.downloads.palm.com/packages/com.palm.app.ondevicedemo/124/base/content?size=2600</Data><br />
</Item><br />
</Add><br />
<Exec><br />
<CmdID>6</CmdID><br />
<Correlator>1245974398969</Correlator><br />
<Item><br />
<Target><br />
<LocURI>./Software/DownloadAndInstall</LocURI><br />
</Target><br />
</Item><br />
</Exec><br />
<Final/><br />
</SyncBody><br />
</SyncML><br />
</nowiki></pre></div>Destinalhttp://wiki.webos-internals.org/index.php?title=Decrypt_SSL_(trusted_man-in-the-middle_technique)&diff=14349Decrypt SSL (trusted man-in-the-middle technique)2011-03-20T21:43:30Z<p>Destinal: fixed a link</p>
<hr />
<div>At times, it can be useful to sniff or intercept and decode communications from the pre / webOS client and its backend web services. As many of them utilize SSL for security, however, this can make it difficult for us to observe the actual HTTP transactions between the pre and these services.<br />
<br />
The following is a method that can be used to set up a tunnel for an SSL site which you can then sniff and decrypt to observe the traffic in the clear. This example will demonstrate decrypting the HTTPS transactions to ps.palmws.com (the patch service used in the update process)<br />
<br />
This method has been successfully used to obtain traces of conversations with the update server, excerpts of which are posted in [[ Update_Service_Trace ]]<br />
<br />
'''Install stunnel'''<br />
<br />
Ensure that you have installed stunnel on a designated man-in-the-middle server, which should be another system reachable by the pre, over a network interface that you will sniff (capture packets from for decryption) in later steps. Stunnel can be installed with "apt-get install stunnel" on debian / ubuntu or built from source code which can be downloaded from [http://www.stunnel.org stunnel.org].<br />
<br />
'''Generate CA and server certificates'''<br />
<br />
First, download the script "cert.sh" from the (OWASP webscarab project.)<br />
<br />
This script will create a directory called "sslcerts" in the current directory, generate / self-sign a Certificate Authority certificate and then use it to sign a certificate for the hostname you specify.<br />
<br />
<pre><nowiki><br />
wget -O cert.sh 'http://dawes.za.net/gitweb.cgi?p=rogan/webscarab/webscarab.git;a=blob_plain;f=doc/cert.sh;hb=master'<br />
sh cert.sh ps.palmws.com<br />
cat sslcerts/ps.palmws.com-cert.pem sslcerts/private/ps.palmws.com-key.pem > ps.pem<br />
</nowiki></pre><br />
<br />
<br />
'''Set up the tunnel'''<br />
<br />
Next, we'll set up a transparent SSL to SSL tunnel. Port 443 on your server will foward to ps.palmws.com but since your listener uses your cert/key for the client connection, you can use that key to decrypt any of that traffic. <br />
<br />
Listen on local IP and de-SSL traffic to localhost:8080<br />
<br />
<pre><nowiki><br />
sudo stunnel -p ps.pem -d 443 -r 8080<br />
</nowiki></pre><br />
<br />
Listen on 8080, re-SSL to remote server on 443<br />
<br />
<pre><nowiki><br />
sudo stunnel -c -d 8080 -r ps.palmws.com:443<br />
</nowiki></pre><br />
<br />
'''Repoint your pre to use the tunnel endpoint as its patch server'''<br />
<br />
<br />
Now you need to force the pre to use your man in the middle as ps.palmws.com. To do so, run the following command on the pre (as root):<br />
<br />
<pre><nowiki><br />
echo "192.168.0.1 ps.palmws.com" >> /etc/hosts<br />
</nowiki></pre><br />
<br />
192.168.0.1 is my server's IP address on a usbnet connection. Replace this with your own server's IP on wifi, usbnet, etc.<br />
<br />
<br />
'''Make the pre trust your CA certificate'''<br />
<br />
<br />
Now the pre is configured to connect to the man-in-the-middle / tunnel server and the tunnel server will accept an SSL connection from the client and initiat another one on the backend to the real ps.palmws.com server, forwarding traffic between them.<br />
<br />
Unfortunately, your ps.palmws.com certificate has not been signed by any known / trusted certifying authority, so, once connected to your MITM server, the Pre will reject its certificate and cancel the update.<br />
<br />
To enable your certificate to be considered trusted, your must install the Certificate Authority certificate that signed it (the one we generated earlier) into the trusted root / CA certificate store on the pre.<br />
<br />
First, copy sslcerts/ca_cert.pem to your pre.<br />
<br />
Then, on your pre, add the contents of that certificate to the certificate store. (run all these commands as root, ie "sudo su -" first, then cd to the directory where you stored ca_cert.pem):<br />
<br />
<pre><nowiki><br />
CERTSTORE=/etc/ssl/certs/ca-certificates.crt<br />
openssl x509 -in ca_cert.pem -text -noout|grep Subject:|sed 's/.*Subject: /subject= \//;s/, /\//g' >> $CERTSTORE<br />
grep '===' $CERTSTORE | head -1 >> $CERTSTORE<br />
openssl x509 -in ca_cert.pem >> $CERTSTORE<br />
echo >> $CERTSTORE<br />
</nowiki></pre><br />
<br />
<br />
'''Sniff the traffic and decrypt it using our private key'''<br />
<br />
Now sniff the traffic between the phone and your server. I use [http://www.wireshark.org/ WireShark] on the PC running the server which is connected to the pre over usbnet.<br />
<br />
Wireshark supports decryption of SSL traffic if you have the private key. See [http://wiki.wireshark.org/SSL WireShark's SSL page] for details. The binding to enter in the SSL decoding (edit, preferences, protocols, SSL) is<br />
<br />
<pre><nowiki><br />
192.168.0.1,443,http,/path/to/ps.pem<br />
</nowiki></pre><br />
<br />
Or on Windows:<br />
<br />
<pre><nowiki><br />
192.168.0.1,443,http,c:\path\to\ps.pem<br />
</nowiki></pre><br />
<br />
(replace 192.168.0.1 with your man-in-the-middle server IP address)<br />
<br />
<br />
With Wireshark running and decrypting all the traffic sent to the tunnel, you should be able to run the update app and watch the communications between your pre and the update service.<br />
<br />
'''About:'''<br />
<br />
- destinal - initial method and documentation</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Webos_SDK_Versions&diff=12889Webos SDK Versions2011-02-22T20:36:39Z<p>Destinal: Created page with '== Download links == === 1.1 === ==== Windows ==== https://cdn.downloads.palm.com/sdkdownloads/1.1/sdkBinaries/Palm_Mojo_SDK-Win-1.1.0-sdk62-build08.exe https://cdn.downloads.pa…'</p>
<hr />
<div>== Download links ==<br />
<br />
=== 1.1 ===<br />
==== Windows ====<br />
https://cdn.downloads.palm.com/sdkdownloads/1.1/sdkBinaries/Palm_Mojo_SDK-Win-1.1.0-sdk62-build08.exe<br />
https://cdn.downloads.palm.com/sdkdownloads/1.1.0.19/sdkBinaries/palm-sdk_1.1.0-svn189487-sdk67-pho19_i386.deb<br />
==== OSX ====<br />
https://cdn.downloads.palm.com/sdkdownloads/1.1/sdkBinaries/Palm_Mojo_SDK-Mac-1.1.0-sdk62-build08.pkg<br />
<br />
=== 1.3.5 ===<br />
==== Windows ====<br />
https://cdn.downloads.palm.com/sdkdownloads/1.3.5.368/sdkBinaries/Palm_Mojo_SDK-Win-1.3.5-368-x86.exe<br />
==== Linux ====<br />
https://cdn.downloads.palm.com/sdkdownloads/1.3.5.368/sdkBinaries/palm-sdk_1.3.5-svn234138-sdk117-pho368_i386.deb<br />
<br />
=== 1.4.0 ===<br />
==== Linux ====<br />
https://cdn.downloads.palm.com/sdkdownloads/1.4.0.420/sdkBinaries/palm-sdk_1.4.0-svn263907-sdk1428-pho420_i386.deb</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Reverse_Tethering&diff=12451Reverse Tethering2010-12-29T19:23:36Z<p>Destinal: </p>
<hr />
<div>Sometimes access to a WiFi or bluetooth LAN is unavailable and cellular data is just too slow or doesn't provide you with access to the desired networks.<br />
<br />
Reverse tethering is a simple solution to share your PC's network connection with your Pre / webos device (typically over a USB cable via USB networking) It is called "reverse" to distinguish it from what most call tethering, which is sharing your device's mobile provider network with a PC.<br />
<br />
First on webos device, if it is not done already, enable USBNet.<br />
<br />
<pre><br />
usbnet enable (if usb networking is not already on)<br />
reboot<br />
</pre><br />
<br />
On linux workstation: (enable NAT, turn on IP forwarding, assign an IP and activate the usb interface)<br />
<br />
<pre><br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
ifconfig usb0 inet 192.168.0.2 up<br />
</pre><br />
<br />
<br />
(On webos device -- use novaterm, ssh, or terminal app)<br />
<br />
<pre><br />
route delete default<br />
route delete default<br />
route add default gw 192.168.0.2<br />
<br />
(optional) <br />
echo nameserver 8.8.8.8 > /etc/resolv.conf<br />
<br />
ping google.com<br />
</pre></div>Destinalhttp://wiki.webos-internals.org/index.php?title=PDK_on_Linux&diff=12423PDK on Linux2010-12-28T17:35:52Z<p>Destinal: xar not ipkg</p>
<hr />
<div>The official Palm PDK development kit for writing native programs is not supported on Linux. <br />
<br />
The instructions on this page should allow you to get the official Palm webOS PDK for OSX working on Linux. <br />
<br />
It's totally untested other than running a few scripts and confirming that things seem to be where they should be, so please confirm if it works for you.<br />
<br />
==Prerequisites==<br />
Get the command line tool "xar". Some debian based systems have it, try apt-get install xar. If not found, get it from http://code.google.com/p/xar/ (I needed package libxml2-dev to compile it)<br />
<br />
You will need to have git installed to retrieve files from the WIDK repository. <br />
<br />
Since you're planning to write native software for webOS, this assumes you have things like gcc and make and normal developer stuff like that. <br />
<br />
We will be using tools found in theWIDK cross-compile repository is really helpful as it already has functionality to download and extract the OSX PDK, most of which will "just work" on Linux. Tools found in the WIDK repository can also download the CodeSourcery toolchain for Linux to replace the one included in the PDK, built for Darwin.<br />
<br />
==Setup==<br />
===Get the Palm PDK using the Webos-Internals makefile===<br />
<br />
This downloads Palm's DMG file, downloads and patches a tool for converting DMG's, and runs it against the Palm DMG, ending up with a Xar format package file. (filename ends in .pkg)<br />
<br />
<pre style="margin-left:50px;"> <br />
git clone git://git.webos-internals.org/preware/cross-compile.git<br />
cd cross-compile<br />
make doctors/Palm_webOS_SDK-Mac-1.4.5.465.pkg<br />
</pre><br />
<br />
You now have a Palm_webOS_SDK-Mac-1.4.5.465.pkg in doctors/ . <br />
<br />
===Extract that .pkg file===<br />
<br />
Now let's extract it into / (this will create /opt/PalmPDK)<br />
<br />
<pre style="margin-left:50px;"><br />
xar -xf doctors/Palm_webOS_SDK-Mac-1.4.5.465.pkg palmpdk.pkg<br />
sudo sh -c 'gzip -cd palmpdk.pkg/Payload | (cd /; cpio -i)'<br />
</pre><br />
<br />
You now have a Palm PDK in /opt/PalmPDK, but you don't have a working cross-compile toolchain, because the one Palm supplied was for osX / Darwin not Linux. We need to fix that.<br />
<br />
===Get CodeSourcery Linux cross-compiler===<br />
Install the CodeSourcery Linux cross-compiler toolchain where Palm's toolchain built for OSX was.<br />
<br />
<pre style="margin-left:50px"><br />
make toolchain<br />
sudo cp -r toolchain/arm-2007q3 /opt/PalmPDK<br />
cd /opt/PalmPDK<br />
sudo mv arm-gcc arm-gcc-darwin<br />
sudo ln -s arm-2007q3 arm-gcc<br />
</pre><br />
<br />
Someone who is familiar with the PDK should test this at this point to see if you can actually use it in the proper ways.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=PDK_on_Linux&diff=12362PDK on Linux2010-12-28T07:49:39Z<p>Destinal: typo in xar</p>
<hr />
<div>This should allow you to get the official Palm webOS PDK for OSX working on Linux. It's totally untested other than running a few scripts and confirming that things seem to be where they should be, so please confirm if it works for you.<br />
<br />
First, get the command line tool "xar". Some debian based systems have it, try apt-get install xar. If not found, get it from http://code.google.com/p/xar/ (I needed package libxml2-dev to compile it)<br />
<br />
WIDK cross-compile repository is really helpful as it already has functionality to download and extract the OSX PDK, most of which will "just work" on Linux. It can also download the CodeSourcery toolchain for Linux to replace the one included in the PDK, built for Darwin.<br />
<br />
<pre> <br />
git clone git://git.webos-internals.org/preware/cross-compile.git<br />
cd cross-compile<br />
make doctors/Palm_webOS_SDK-Mac-1.4.5.465.pkg<br />
</pre><br />
<br />
You now have a Palm_webOS_SDK-Mac-1.4.5.465.pkg in doctors/ . Now let's extract it into / (this will create /opt/PalmPDK)<br />
<br />
<pre><br />
xar -xf doctors/Palm_webOS_SDK-Mac-1.4.5.465.pkg palmpdk.pkg<br />
sudo sh -c 'gzip -cd palmpdk.pkg/Payload | (cd /; cpio -i)'<br />
</pre><br />
<br />
Now let's grab the CodeSourcery Linux cross-compiler toolchain and put it where Palm's toolchain built for OSX was<br />
<br />
<pre><br />
make toolchain<br />
sudo cp -r toolchain/arm-2007q3 /opt/PalmPDK<br />
cd /opt/PalmPDK<br />
sudo mv arm-gcc arm-gcc-darwin<br />
sudo ln -s arm-2007q3 arm-gcc<br />
</pre><br />
<br />
Someone who is familiar with the PDK should test this at this point to see if you can actually use it in the proper ways.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=PDK_on_Linux&diff=12361PDK on Linux2010-12-28T07:30:32Z<p>Destinal: beta/initial version of getting OSX PDK going on Linux</p>
<hr />
<div>This should allow you to get the official Palm webOS PDK for OSX working on Linux. It's totally untested other than running a few scripts and confirming that things seem to be where they should be, so please confirm if it works for you.<br />
<br />
First, get the command line tool "xar". Some debian based systems have it, try ipkg-opt install xar. If not found, get it from http://code.google.com/p/xar/ (I needed package libxml2-dev to compile it)<br />
<br />
WIDK cross-compile repository is really helpful as it already has functionality to download and extract the OSX PDK, most of which will "just work" on Linux. It can also download the CodeSourcery toolchain for Linux to replace the one included in the PDK, built for Darwin.<br />
<br />
<pre> <br />
git clone git://git.webos-internals.org/preware/cross-compile.git<br />
cd cross-compile<br />
make doctors/Palm_webOS_SDK-Mac-1.4.5.465.pkg<br />
</pre><br />
<br />
You now have a Palm_webOS_SDK-Mac-1.4.5.465.pkg in doctors/ . Now let's extract it into / (this will create /opt/PalmPDK)<br />
<br />
<pre><br />
xar -xf doctors/Palm_webOS_SDK-Mac-1.4.5.465.pkg palmpdk.pkg<br />
sudo sh -c 'gzip -cd palmpdk.pkg/Payload | (cd /; cpio -i)'<br />
</pre><br />
<br />
Now let's grab the CodeSourcery Linux cross-compiler toolchain and put it where Palm's toolchain built for OSX was<br />
<br />
<pre><br />
make toolchain<br />
sudo cp -r toolchain/arm-2007q3 /opt/PalmPDK<br />
cd /opt/PalmPDK<br />
sudo mv arm-gcc arm-gcc-darwin<br />
sudo ln -s arm-2007q3 arm-gcc<br />
</pre><br />
<br />
Someone who is familiar with the PDK should test this at this point to see if you can actually use it in the proper ways.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Luna_Send&diff=12322Luna Send2010-12-23T01:35:29Z<p>Destinal: </p>
<hr />
<div>NOTE: You have to run with root perms..<br />
<br />
<br />
Kick off a manual Palm Backup [u]entirely[/u] from the command line:<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.applicationManager/launch '{"id":"com.palm.app.backup"}'<br />
luna-send -n 1 palm://com.palm.backup/startBackup '{}'<br />
luna-send -n 1 palm://com.palm.applicationManager/running '{}'<br />
luna-send -n 1 palm://com.palm.applicationManager/close '{"processId":"(GET ID NUMBER FROM /RUNNING)"}'<br />
</nowiki></pre><br />
<br />
<br />
Connect to any (known) WAP in range (or simply turn on WiFi):<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.wifi/setstate '{"state":"enabled"}'<br />
luna-send -n 1 palm://com.palm.wifi/findnetworks '{""}'<br />
</nowiki></pre><br />
<br />
<br />
Disconnect from WiFi:<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.wifi/setstate '{"state":"disabled"}'<br />
</nowiki></pre><br />
<br />
<br />
Using luna-send to refresh the Launcher panel.<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.applicationManager/rescan {}<br />
</nowiki></pre><br />
<br />
<br />
Get a list of all installed apps:<br />
<pre><nowiki><br />
luna-send -n 1 "palm://com.palm.applicationManager/listLaunchPoints" "{}"<br />
</nowiki></pre><br />
<br />
<br />
Using luna-send to launch an application:<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.applicationManager/launch {\"id\":\"com.palm.app.browser\"}<br />
luna-send -n 1 palm://com.palm.applicationManager/launch {\"id\":\"com.palm.app.browser\",\"params\":{\"scene\":\"page\",\"target\":\"http://www.google.com\"}}<br />
</nowiki></pre><br />
<br />
<br />
The second command shows how to open www.google.com when the browser is launched.<br />
<br />
Using luna-send to download a file to /media/internal/downloads/:<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.downloadmanager/download {\"target\":\"http://www.google.com/index.html\"} <br />
</nowiki></pre><br />
<br />
Replace www.google.com/index.html with whatever file you want downloaded.<br />
<br />
<br />
Using luna-send to first import and then set the wallpaper image:<br />
<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.systemservice/wallpaper/importWallpaper {"target": "/media/internal/wallpapers/your_file.jpg" }<br />
luna-send -n 1 palm://com.palm.systemservice/setPreferences {"wallpaper": {"wallpaperName": "your_file.jpg", "wallpaperFile": "/media/internal/wallpapers/your_file.jpg"}}<br />
</nowiki></pre><br />
<br />
Replace your_file.jpg with whatever file in the wallpapers folder you want for your next wallpaper.<br />
<br />
<br />
Using luna-send to control the palm progress animation (The pulsing "palm" logo seen at boot):<br />
<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.systemmanager/runProgressAnimation {\"state\":\"start\"}<br />
luna-send -n 1 palm://com.palm.systemmanager/runProgressAnimation {\"state\":\"stop\"}<br />
</nowiki></pre><br />
<br />
TODO: These should probably be plugged into the Tracker app.<br />
<br />
<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.location/setUseGps {\"useGps\":\"true\"}<br />
luna-send -n 1 palm://com.palm.location/setAutoLocate {\"autoLocate\":\"true\"}<br />
luna-send -n 1 palm://com.palm.location/getCurrentPosition {}<br />
</nowiki></pre><br />
<br />
<br />
List all of the processes which are running:<br />
<pre><nowiki><br />
sudo luna-send -n 1 palm://com.palm.applicationManager/running {}<br />
** Message: serviceResponse Handling: 2, { "running": [ { "id": "com.palm.launcher", "processid": "1006" }, { "id": "com.palm.systemui", "processid": "1007" }, { "id": "com.palm.app.email", "processid": "1000" }, { "id": "com.palm.app.phone", "processid": "1001" }, { "id": "com.palm.app.contacts", "processid": "1002" }, { "id": "com.palm.app.camera", "processid": "1003" }, { "id": "com.palm.app.messaging", "processid": "1004" }, { "id": "com.palm.app.calendar", "processid": "1005" }, { "id": "com.palm.app.phone", "processid": "1008" }, { "id": "com.palm.app.camera", "processid": "1014" } ] }<br />
</nowiki></pre><br />
Interesting note:<br />
Seems everything with a processid below 1008 are static. As seen above, open camera app has pid 1014 and startup app is pid 1003<br />
<br />
<br />
Close a process:<br />
<br />
<pre><nowiki><br />
luna-send -n 1 "palm://com.palm.applicationManager/close" "{\"processId\":\"1058\"}"<br />
</nowiki></pre><br />
<br />
<br />
Activate the vibrator:<br />
<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.vibrate/vibrate {\"period\":1,\"duration\":1000\}<br />
</nowiki></pre><br />
The duration value is in milliseconds and can be adjusted as desired.<br />
<br />
<br />
Photos Info - list album and image from mediadb.db3:<br />
<br />
<pre><nowiki><br />
luna-send -n 1 luna://com.palm.mediadb/image/listalbums {}<br />
</nowiki></pre><br />
<br />
<pre><nowiki><br />
luna-send -n 1 luna://com.palm.mediadb/image/listimages {}<br />
</nowiki></pre><br />
<br />
<br />
Set system volume - "volume" range is 0-100<br />
<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.audio/system/setVolume '{"volume":80}'<br />
</nowiki></pre><br />
<br />
<br />
Set ringtone volume - "volume" range is 0-100<br />
<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.audio/ringtone/setVolume '{"volume":100}'<br />
</nowiki></pre><br />
<br />
<br />
Dial a number - this actually calls the number, not just setup<br />
<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.telephony/dial '{"number":"8001234567"}'<br />
</nowiki></pre><br />
<br />
<br />
Hang up a phone call :-) There are ways to end specific types of calls but I think this is good enough for now. Let me know if you want the other methods.<br />
<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.telephony/hangupAll {}<br />
</nowiki></pre><br />
<br />
<br />
Send a text message - only need to change phone "value" and "messageText"<br />
<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.messaging/sendMessageFromCompose '{"recipientJSONArray": [{"lastName": "", "pictureLoc": "", "contactCount": 1, "displayText": "", "firstName": "", "pictureLocBig": "", "imAvailability": 6, "pictureLocSquare": "", "contactDisplay": "", "Person_id": "", "personId": "", "type": "phone", "value": "8165551234", "alreadyValidated": true, "prefix": "to$A", "identifier": ""}], "messageText": "Content of message here"}'<br />
</nowiki></pre><br />
<br />
<br />
set phone to no roam (home network only)<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.telephony//roamModeSet '{"mode":"homeonly"}'<br />
</nowiki></pre><br />
<br />
<br />
set phone to auto roam<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.telephony//roamModeSet '{"mode":"any"}'<br />
</nowiki></pre><br />
<br />
<br />
set phone to roam only<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.telephony//roamModeSet '{"mode":"roamonly"}'<br />
</nowiki></pre><br />
<br />
<br />
==Applications==<br />
<br />
Notes (view notes):<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.notes/getNotes {}<br />
</nowiki></pre><br />
<br />
<br />
==Storage==<br />
<br />
Enter usb storage mode:<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.storage/diskmode/enterMSM {\"user-confirmed\":true,\"enterIMasq\":false}<br />
</nowiki></pre><br />
<br />
<br />
Exit usb storage mode (toggle):<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.storage/diskmode/enterMSM {\"user-confirmed\":true,\"enterIMasq\":false}<br />
</nowiki></pre><br />
<br />
--WOOT--<br />
<br />
<br />
==Airplane Mode==<br />
<br />
Enable Airplane Mode:<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.systemservice/setPreferences '{"airplaneMode":true}'<br />
</nowiki></pre><br />
<br />
<br />
Disable Airplane Mode:<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.systemservice/setPreferences '{"airplaneMode":false}'<br />
</nowiki></pre><br />
<br />
<br />
==Finding luna-send Command==<br />
<br />
These commands come from inside given applications. The best way to find luna-send commands is to do a search for the term "method:" in the Applications code. Once you find method: you might see parameters: which is also used by luna-send here is an example.<br />
<br />
searched for "method:" in the com.app.palm.AppYouAreTesting<br />
<br />
found<br />
<br />
"method: test"<br />
<br />
luna-send command based on example:<br />
<pre><nowiki><br />
luna-send -n 1 palm://com.palm.AppYouAreTesting/test {}<br />
</nowiki></pre><br />
<br />
General luna-send command:<br />
<pre><nowiki><br />
luna-send -n 1 palm://ApplicationName/MethodValue {ParameterValues}<br />
</nowiki></pre><br />
<br />
==Searching for services with dbus==<br />
<pre><br />
Run dbus-util capture and search for services/methods/parameters. - xorg<br />
<br />
# dbus-util --capture 2>&1 |tee /tmp/dbus.dump<br />
<br />
Perform functions on device that you want to trap, such as setting phone to automatic roaming.<br />
Ctrl-c from dbus.<br />
<br />
Searches to try...<br />
# grep // /tmp/dbus.dump<br />
# grep com.palm /tmp/dbus.dump<br />
# grep palm:// tmp/dbus.dump<br />
# grep roam /tmp/dbus.dump<br />
<br />
This is found in the dump...<br />
com.palm.luna2 com.palm.telephony //roamModeSet «string=â{"mode": "homeonly"}<br />
<br />
com.palm.telophony is the service<br />
//roamModeSet is the method<br />
"mode":"homeonly" is the parameter<br />
<br />
Translate to luna-send...<br />
<br />
luna-send -n 1 palm://com.palm.telephony/roamModeSet '{"mode":"homeonly"}'<br />
</pre></div>Destinalhttp://wiki.webos-internals.org/index.php?title=File:CDMA-castle-testpad-lg.jpg&diff=12280File:CDMA-castle-testpad-lg.jpg2010-12-08T18:46:07Z<p>Destinal: Picture of a sprint pre with test pads shown</p>
<hr />
<div>Picture of a sprint pre with test pads shown</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12238Nook2010-12-03T16:09:12Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
[http://images.barnesandnoble.com/PResources/download/Nook/source-code/nookcolor-source-code.zip source code release]<br />
<br />
[http://webos.pastebin.com/kim4TzZq dmesg] [http://webos.pastebin.com/CpDSeimf TIWLAN] [http://webos.pastebin.com/zADRAGx9 omapdss debug]<br />
<br />
[http://www.cypress.com/?rID=44238 Cypress TTSP touchscreen] and [http://www.mediafire.com/?s2q8t5pc8quu3fl kernel driver] and [http://www.kerneltrap.org/mailarchive/linux-kernel/2010/11/9/4642971 yet another reference]<br />
<br />
[http://focus.ti.com/docs/prod/folders/print/tps65921.html TPS65921 PMIC] <br />
<br />
[http://content.techrepublic.com.com/2346-13625_11-487294-1.html Teardown]<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf related system programming guide] (<br />
<br />
[http://webos.pastebin.com/96fhftBp /sys/devices/platform]<br />
<br />
MAX8903 based LiOn charger [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/6019 description] and [http://datasheets.maxim-ic.com/en/ds/MAX8903A-MAX8903D.pdf datasheet]<br />
<br />
WiFi/Bluetooth/FM - TI WiLink 6.0 WL1273<br />
[http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?contentId=29993&navigationId=12762&templateId=6123 datasheet]<br />
<br />
[http://www.maxim-ic.com/datasheet/index.mvp/id/6546 MAX17042 fuel gauge]<br />
<br />
pokey9000 kernel is 2.6.32-omap1 ( git archive --format=tar --prefix=linux-2.6.32-omap1/ v2.6.32-omap1 | gzip > ../linux-2.6.32-omap1.tar.gz )<br />
stock kernel is v2.6.29-omap1<br />
<br />
The audio CODEC is a TI [http://focus.ti.com/docs/prod/folders/print/tlv320dac3100.html TLV320DAC3100] which has a built in PWM headphone amp, headphone detection, and a mic amp and ADC for a microphone. Unfortunately the headphone jack appears to be a 3-pole TRS style, so there's no mic or control input.<br />
<br />
Pokey9000 found a kernel patch for an OMAP3630 Zoom3 devkit, which has a 512MB MCM DDR SDRAM, referencing a part number Hynix H8MBX00U0MER-0EM, giving timings and register values for this part. Looking at the Zoom3 512MB variant memory init code in x-loader shows that there are 2 chip selects of 256MB each. So this is an MCM (stacked chips), 2x256MB each die mDDR.<br />
<math>Insert formula here</math></div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12215Nook2010-12-02T09:09:28Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
[http://webos.pastebin.com/kim4TzZq dmesg] [http://webos.pastebin.com/CpDSeimf TIWLAN] [http://webos.pastebin.com/zADRAGx9 omapdss debug]<br />
<br />
[http://www.cypress.com/?rID=44238 Cypress TTSP touchscreen] and [http://www.mediafire.com/?s2q8t5pc8quu3fl kernel driver] and [http://www.kerneltrap.org/mailarchive/linux-kernel/2010/11/9/4642971 yet another reference]<br />
<br />
[http://focus.ti.com/docs/prod/folders/print/tps65921.html TPS65921 PMIC] <br />
<br />
[http://content.techrepublic.com.com/2346-13625_11-487294-1.html Teardown]<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf related system programming guide] (<br />
<br />
[http://webos.pastebin.com/96fhftBp /sys/devices/platform]<br />
<br />
MAX8903 based LiOn charger [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/6019 description] and [http://datasheets.maxim-ic.com/en/ds/MAX8903A-MAX8903D.pdf datasheet]<br />
<br />
WiFi/Bluetooth/FM - TI WiLink 6.0 WL1273<br />
[http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?contentId=29993&navigationId=12762&templateId=6123 datasheet]<br />
<br />
[http://www.maxim-ic.com/datasheet/index.mvp/id/6546 MAX17042 fuel gauge]<br />
<br />
pokey9000 kernel is 2.6.32-omap1 ( git archive --format=tar --prefix=linux-2.6.32-omap1/ v2.6.32-omap1 | gzip > ../linux-2.6.32-omap1.tar.gz )<br />
stock kernel is v2.6.29-omap1<br />
<br />
The audio CODEC is a TI [http://focus.ti.com/docs/prod/folders/print/tlv320dac3100.html TLV320DAC3100] which has a built in PWM headphone amp, headphone detection, and a mic amp and ADC for a microphone. Unfortunately the headphone jack appears to be a 3-pole TRS style, so there's no mic or control input.<br />
<br />
Pokey9000 found a kernel patch for an OMAP3630 Zoom3 devkit, which has a 512MB MCM DDR SDRAM, referencing a part number Hynix H8MBX00U0MER-0EM, giving timings and register values for this part. Looking at the Zoom3 512MB variant memory init code in x-loader shows that there are 2 chip selects of 256MB each. So this is an MCM (stacked chips), 2x256MB each die mDDR.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12214Nook2010-12-02T09:06:25Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
[http://webos.pastebin.com/kim4TzZq dmesg] [http://webos.pastebin.com/CpDSeimf TIWLAN] [http://webos.pastebin.com/zADRAGx9 omapdss debug]<br />
<br />
[http://www.cypress.com/?rID=44238 Cypress TTSP touchscreen] and [http://www.mediafire.com/?s2q8t5pc8quu3fl test driver]<br />
<br />
[http://focus.ti.com/docs/prod/folders/print/tps65921.html TPS65921 PMIC] <br />
<br />
[http://content.techrepublic.com.com/2346-13625_11-487294-1.html Teardown]<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf related system programming guide] (<br />
<br />
[http://webos.pastebin.com/96fhftBp /sys/devices/platform]<br />
<br />
MAX8903 based LiOn charger [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/6019 description] and [http://datasheets.maxim-ic.com/en/ds/MAX8903A-MAX8903D.pdf datasheet]<br />
<br />
WiFi/Bluetooth/FM - TI WiLink 6.0 WL1273<br />
[http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?contentId=29993&navigationId=12762&templateId=6123 datasheet]<br />
<br />
[http://www.maxim-ic.com/datasheet/index.mvp/id/6546 MAX17042 fuel gauge]<br />
<br />
pokey9000 kernel is 2.6.32-omap1 ( git archive --format=tar --prefix=linux-2.6.32-omap1/ v2.6.32-omap1 | gzip > ../linux-2.6.32-omap1.tar.gz )<br />
stock kernel is v2.6.29-omap1<br />
<br />
The audio CODEC is a TI [http://focus.ti.com/docs/prod/folders/print/tlv320dac3100.html TLV320DAC3100] which has a built in PWM headphone amp, headphone detection, and a mic amp and ADC for a microphone. Unfortunately the headphone jack appears to be a 3-pole TRS style, so there's no mic or control input.<br />
<br />
Pokey9000 found a kernel patch for an OMAP3630 Zoom3 devkit, which has a 512MB MCM DDR SDRAM, referencing a part number Hynix H8MBX00U0MER-0EM, giving timings and register values for this part. Looking at the Zoom3 512MB variant memory init code in x-loader shows that there are 2 chip selects of 256MB each. So this is an MCM (stacked chips), 2x256MB each die mDDR.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12213Nook2010-12-02T06:37:47Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
[http://webos.pastebin.com/kim4TzZq dmesg]<br />
<br />
[http://www.cypress.com/?rID=44238 Cypress TTSP touchscreen] and [http://www.mediafire.com/?s2q8t5pc8quu3fl test driver]<br />
<br />
[http://focus.ti.com/docs/prod/folders/print/tps65921.html TPS65921 PMIC] <br />
<br />
[http://content.techrepublic.com.com/2346-13625_11-487294-1.html Teardown]<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf related system programming guide] (<br />
<br />
[http://webos.pastebin.com/96fhftBp /sys/devices/platform]<br />
<br />
MAX8903 based LiOn charger [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/6019 description] and [http://datasheets.maxim-ic.com/en/ds/MAX8903A-MAX8903D.pdf datasheet]<br />
<br />
WiFi/Bluetooth/FM - TI WiLink 6.0 WL1273<br />
[http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?contentId=29993&navigationId=12762&templateId=6123 datasheet]<br />
<br />
[http://www.maxim-ic.com/datasheet/index.mvp/id/6546 MAX17042 fuel gauge]<br />
<br />
pokey9000 kernel is 2.6.32-omap1 ( git archive --format=tar --prefix=linux-2.6.32-omap1/ v2.6.32-omap1 | gzip > ../linux-2.6.32-omap1.tar.gz )<br />
stock kernel is v2.6.29-omap1<br />
<br />
The audio CODEC is a TI [http://focus.ti.com/docs/prod/folders/print/tlv320dac3100.html TLV320DAC3100] which has a built in PWM headphone amp, headphone detection, and a mic amp and ADC for a microphone. Unfortunately the headphone jack appears to be a 3-pole TRS style, so there's no mic or control input.<br />
<br />
Pokey9000 found a kernel patch for an OMAP3630 Zoom3 devkit, which has a 512MB MCM DDR SDRAM, referencing a part number Hynix H8MBX00U0MER-0EM, giving timings and register values for this part. Looking at the Zoom3 512MB variant memory init code in x-loader shows that there are 2 chip selects of 256MB each. So this is an MCM (stacked chips), 2x256MB each die mDDR.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12188Nook2010-12-01T07:28:57Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
[http://webos.pastebin.com/kim4TzZq dmesg]<br />
<br />
[http://www.cypress.com/?rID=44238 Cypress TTSP touchscreen] and [http://www.mediafire.com/?s2q8t5pc8quu3fl test driver]<br />
<br />
[http://focus.ti.com/docs/prod/folders/print/tps65921.html TPS65921 PMIC] <br />
<br />
[http://content.techrepublic.com.com/2346-13625_11-487294-1.html Teardown]<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf related system programming guide] (<br />
<br />
[http://webos.pastebin.com/96fhftBp /sys/devices/platform]<br />
<br />
MAX8903 based LiOn charger [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/6019 description] and [http://datasheets.maxim-ic.com/en/ds/MAX8903A-MAX8903D.pdf datasheet]<br />
<br />
[http://www.maxim-ic.com/datasheet/index.mvp/id/6546 MAX17042 fuel gauge]<br />
<br />
pokey9000 kernel is 2.6.32-omap1 ( git archive --format=tar --prefix=linux-2.6.32-omap1/ v2.6.32-omap1 | gzip > ../linux-2.6.32-omap1.tar.gz )<br />
stock kernel is v2.6.29-omap1<br />
<br />
The audio CODEC is a TI [http://focus.ti.com/docs/prod/folders/print/tlv320dac3100.html TLV320DAC3100] which has a built in PWM headphone amp, headphone detection, and a mic amp and ADC for a microphone. Unfortunately the headphone jack appears to be a 3-pole TRS style, so there's no mic or control input.<br />
<br />
Pokey9000 found a kernel patch for an OMAP3630 Zoom3 devkit, which has a 512MB MCM DDR SDRAM, referencing a part number Hynix H8MBX00U0MER-0EM, giving timings and register values for this part. Looking at the Zoom3 512MB variant memory init code in x-loader shows that there are 2 chip selects of 256MB each. So this is an MCM (stacked chips), 2x256MB each die mDDR.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12187Nook2010-12-01T07:05:13Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
[http://webos.pastebin.com/kim4TzZq dmesg]<br />
<br />
[http://www.cypress.com/?rID=44238 Cypress TTSP touchscreen]<br />
<br />
[http://focus.ti.com/docs/prod/folders/print/tps65921.html TPS65921 PMIC] <br />
<br />
[http://content.techrepublic.com.com/2346-13625_11-487294-1.html Teardown]<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf related system programming guide] (<br />
<br />
[http://webos.pastebin.com/96fhftBp /sys/devices/platform]<br />
<br />
MAX8903 based LiOn charger [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/6019 description] and [http://datasheets.maxim-ic.com/en/ds/MAX8903A-MAX8903D.pdf datasheet]<br />
<br />
[http://www.maxim-ic.com/datasheet/index.mvp/id/6546 MAX17042 fuel gauge]<br />
<br />
pokey9000 kernel is 2.6.32-omap1 ( git archive --format=tar --prefix=linux-2.6.32-omap1/ v2.6.32-omap1 | gzip > ../linux-2.6.32-omap1.tar.gz )<br />
stock kernel is v2.6.29-omap1<br />
<br />
The audio CODEC is a TI [http://focus.ti.com/docs/prod/folders/print/tlv320dac3100.html TLV320DAC3100] which has a built in PWM headphone amp, headphone detection, and a mic amp and ADC for a microphone. Unfortunately the headphone jack appears to be a 3-pole TRS style, so there's no mic or control input.<br />
<br />
Pokey9000 found a kernel patch for an OMAP3630 Zoom3 devkit, which has a 512MB MCM DDR SDRAM, referencing a part number Hynix H8MBX00U0MER-0EM, giving timings and register values for this part. Looking at the Zoom3 512MB variant memory init code in x-loader shows that there are 2 chip selects of 256MB each. So this is an MCM (stacked chips), 2x256MB each die mDDR.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12186Nook2010-12-01T07:02:55Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
[http://webos.pastebin.com/kim4TzZq dmesg]<br />
<br />
[http://www.cypress.com/?rID=44238 Cypress TTSP touchscreen]<br />
<br />
[http://focus.ti.com/docs/prod/folders/print/tps65921.html TPS65921 PMIC] <br />
<br />
[http://content.techrepublic.com.com/2346-13625_11-487294-1.html Teardown]<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf related system programming guide] (<br />
<br />
[http://webos.pastebin.com/96fhftBp /sys/devices/platform]<br />
<br />
MAX8903 based LiOn charger [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/6019 description] and [http://datasheets.maxim-ic.com/en/ds/MAX8903A-MAX8903D.pdf datasheet]<br />
<br />
[http://www.maxim-ic.com/datasheet/index.mvp/id/6546 MAX17042 fuel gauge]<br />
<br />
pokey9000 kernel is 2.6.32-omap1 ( git archive --format=tar --prefix=linux-2.6.32-omap1/ v2.6.32-omap1 | gzip > ../linux-2.6.32-omap1.tar.gz )<br />
stock kernel is v2.6.29-omap1<br />
<br />
The audio CODEC is a TI [http://focus.ti.com/docs/prod/folders/print/tlv320dac3100.html TLV320DAC3100] which has a built in PWM headphone amp, headphone detection, and a mic amp and ADC for a microphone. Unfortunately the headphone jack appears to be a 3-pole TRS style, so there's no mic or control input.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12185Nook2010-12-01T06:52:17Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
[http://webos.pastebin.com/kim4TzZq dmesg]<br />
<br />
[http://www.cypress.com/?rID=44238 Cypress TTSP touchscreen]<br />
<br />
[http://focus.ti.com/docs/prod/folders/print/tps65921.html TPS65921 PMIC] <br />
<br />
[http://content.techrepublic.com.com/2346-13625_11-487294-1.html Teardown]<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf related system programming guide] (<br />
<br />
[http://webos.pastebin.com/96fhftBp /sys/devices/platform]<br />
<br />
MAX8903 based LiOn charger [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/6019 description] and [http://datasheets.maxim-ic.com/en/ds/MAX8903A-MAX8903D.pdf datasheet]<br />
<br />
[http://www.maxim-ic.com/datasheet/index.mvp/id/6546 MAX17042 fuel gauge]<br />
<br />
pokey9000 kernel is 2.6.32-omap1 ( git archive --format=tar --prefix=linux-2.6.32-omap1/ v2.6.32-omap1 | gzip > ../linux-2.6.32-omap1.tar.gz )<br />
stock kernel is v2.6.29-omap1</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12184Nook2010-12-01T06:49:16Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
[http://webos.pastebin.com/kim4TzZq dmesg]<br />
<br />
[http://focus.ti.com/docs/prod/folders/print/tps65921.html TPS65921 PMIC] <br />
<br />
[http://content.techrepublic.com.com/2346-13625_11-487294-1.html Teardown]<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf related system programming guide] (<br />
<br />
[http://webos.pastebin.com/96fhftBp /sys/devices/platform]<br />
<br />
MAX8903 based LiOn charger [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/6019 description] and [http://datasheets.maxim-ic.com/en/ds/MAX8903A-MAX8903D.pdf datasheet]<br />
<br />
[http://www.maxim-ic.com/datasheet/index.mvp/id/6546 MAX17042 fuel gauge]<br />
<br />
pokey9000 kernel is 2.6.32-omap1 ( git archive --format=tar --prefix=linux-2.6.32-omap1/ v2.6.32-omap1 | gzip > ../linux-2.6.32-omap1.tar.gz )<br />
stock kernel is v2.6.29-omap1</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12183Nook2010-12-01T06:45:48Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
[http://webos.pastebin.com/kim4TzZq dmesg]<br />
<br />
[http://focus.ti.com/docs/prod/folders/print/tps65921.html TPS65921 PMIC] <br />
<br />
[http://content.techrepublic.com.com/2346-13625_11-487294-1.html Teardown]<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf related system programming guide] (<br />
<br />
[http://webos.pastebin.com/96fhftBp /sys/devices/platform]<br />
<br />
MAX8903 based LiOn charger [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/6019 description] and [http://datasheets.maxim-ic.com/en/ds/MAX8903A-MAX8903D.pdf datasheet]<br />
<br />
[http://www.maxim-ic.com/datasheet/index.mvp/id/6546 MAX17042 fuel gauge]</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12182Nook2010-12-01T06:44:50Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
[http://webos.pastebin.com/kim4TzZq dmesg]<br />
<br />
[http://focus.ti.com/docs/prod/folders/print/tps65921.html TPS65921 PMIC] <br />
<br />
[http://content.techrepublic.com.com/2346-13625_11-487294-1.html Teardown]<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf related system programming guide] (<br />
<br />
[http://webos.pastebin.com/96fhftBp /sys/devices/platform]<br />
<br />
MAX8903 based Lithium Polymer charger [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/6019 description] and [http://datasheets.maxim-ic.com/en/ds/MAX8903A-MAX8903D.pdf datasheet]<br />
<br />
[http://www.maxim-ic.com/datasheet/index.mvp/id/6546 MAX17042 fuel gauge]</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12181Nook2010-12-01T06:39:43Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
[http://webos.pastebin.com/kim4TzZq dmesg]<br />
<br />
[http://focus.ti.com/docs/prod/folders/print/tps65921.html TPS65921 PMIC] <br />
<br />
[http://content.techrepublic.com.com/2346-13625_11-487294-1.html Teardown]<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf related system programming guide] (<br />
<br />
[http://webos.pastebin.com/96fhftBp /sys/devices/platform]<br />
<br />
MAX8903 based Lithium Polymer charger [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/6019 description] and [http://datasheets.maxim-ic.com/en/ds/MAX8903A-MAX8903D.pdf datasheet]</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12180Nook2010-12-01T06:37:14Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
[http://webos.pastebin.com/kim4TzZq dmesg]<br />
<br />
[http://focus.ti.com/docs/prod/folders/print/tps65921.html TPS65921 PMIC] <br />
<br />
[http://content.techrepublic.com.com/2346-13625_11-487294-1.html Teardown]<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf related system programming guide] (<br />
<br />
[http://webos.pastebin.com/96fhftBp /sys/devices/platform]</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12179Nook2010-12-01T06:28:12Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
[http://webos.pastebin.com/kim4TzZq dmesg]<br />
<br />
[http://focus.ti.com/docs/prod/folders/print/tps65921.html TPS65921 PMIC] <br />
<br />
[http://content.techrepublic.com.com/2346-13625_11-487294-1.html Teardown]<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf related system programming guide] (</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12178Nook2010-12-01T06:26:37Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf related system programming guide] (</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12177Nook2010-12-01T06:25:42Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf | accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf | related system programming guide] (</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Nook&diff=12176Nook2010-12-01T06:25:09Z<p>Destinal: </p>
<hr />
<div>nookie goes here<br />
<br />
<br />
info on [http://article.gmane.org/gmane.comp.handhelds.meego.kernel/478/| meego ] kernel that might be helpful:<br />
<br />
[http://www.kionix.com/App-Notes/AN023%20Getting%20Started%20with%20the%20KXTF9.pdf| accelerometer application notes] and [http://www.cdiweb.com/datasheets/invensense/System%20Programming%20Guide%20V1_0.pdf| related system programming guide] (</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Hidd&diff=12141Hidd2010-11-25T20:46:04Z<p>Destinal: </p>
<hr />
<div>==Intro==<br />
<br />
This is a research page on hidd -- how to examine what it does, how it works, etc.<br />
<br />
==Files==<br />
Hidd is started from upstart (/etc/event.d/hidd) with a -f option to load a given configuration file. On the emulator, this is /etc/hidd/HidPluginsVbox.xml. On a pre, this is /etc/hidd/HidPlugins.xml. There's also something called casper there, not sure what that is as of yet<br />
<br />
==Architecture==<br />
Hidd seems to use a modular plugin-style architecture where each plugin is a shared library.<br />
<br />
Default files are:<br />
<br />
libhid.so libhidavrcp.so libhidlight.so libhidqemukeypad.so libhidtouchpanel.so<br />
libhidaccelerometer.so libhidkeypad.so libhidproximity.so libhidqemutouchpanel.so<br />
<br />
==Plugin definition in config file==<br />
<source lang=xml><br />
<plugin><br />
<name>HidKeypad</name><br />
<eventsDeferIdle>true</eventsDeferIdle><br />
<eventSocketAddress>/var/tmp/hidd/KeypadEventSocket</eventSocketAddress><br />
<cmdSocketAddress>/var/tmp/hidd/KeypadCmdSocket</cmdSocketAddress><br />
<path>/usr/lib/libhidkeypad.so</path><br />
</plugin><br />
</source><br />
<br />
==Starting the daemon==<br />
<br />
A lot of debug information can be obtained by starting the daemon like so (on a pre, on an emulator add Vbox before .xml)<br />
<br />
/usr/bin/hidd -vvv -f /etc/hidd/HidPlugins.xml<br />
<br />
==Example trace==<br />
<br />
/usr/bin/hidd -vvv -f /etc/hidd/HidPlugins-keypadonly.xml<br />
<br />
Verbosity level set to 7<br />
<br />
<br />
root@castle:/etc/hidd# hidd -vvvv -f /etc/hidd/HidPlugins-test.xml <br />
Verbosity level set to 7<br />
Plugin: 0<br />
Name: HidKeypad<br />
Path: /usr/lib/libhidkeypad.so<br />
Event Socket Address: /var/tmp/hidd/KeypadEventSocket<br />
Cmd Socket Address: /var/tmp/hidd/KeypadCmdSocket<br />
<br />
_SetupPluginTransport:<br />
Socket created successfully<br />
<br />
_SetupPluginTransport:<br />
--> Event socket address: /var/tmp/hidd/KeypadEventSocket<br />
<br />
_SetupPluginTransport:<br />
--> Command socket address: /var/tmp/hidd/KeypadCmdSocket<br />
<br />
Init:<br />
HidKeypad: init function called!<br />
<br />
HidKeypadIpc.c:104 : GetSwitchStates: Bad file descriptor<br />
ReportEvent:<br />
kInputEvent received 1 events, fd: 7<br />
<br />
_ReportStandardEvent:<br />
Event: 0.0, type=EV_SYN, code=8, value=0<br />
<br />
HidPluginStartReaderThread:<br />
HidKeypad: starting reader thread<br />
<br />
main:<br />
Setting up power management...<br />
<br />
ReportEvent:<br />
kInputEvent received 2 events, fd: 7<br />
<br />
_ReportStandardEvent:<br />
Event: 85906.791100, type=EV_KEY, code=19, value=1<br />
<br />
_ReportStandardEvent:<br />
Event: 85906.791130, type=EV_SYN, code=0, value=0<br />
<br />
ReportEvent:<br />
kInputEvent received 2 events, fd: 7<br />
<br />
_ReportStandardEvent:<br />
Event: 85906.999809, type=EV_KEY, code=19, value=0<br />
<br />
_ReportStandardEvent:<br />
Event: 85906.999840, type=EV_SYN, code=0, value=0<br />
<br />
<br />
==Listening to Hidd event==<br />
The libSDL patch provided by Palm provides good examples of listening to events via hidd. Based upon this I created a simple example program to listen to the HidKeypad events and print them to stdout. Listening directly to HidKeypad events we can observe all the keys including power button, volume keys and center gesture-area button. I built using WIDK. '''WARNING: After running this program, I cannot get the screen to come back on after sleeping via a key press. It only turns back on after reconnecting USB cable'''<br />
<br />
===hidTest.c===<br />
<pre><br />
#include <stdio.h><br />
#include <linux/input.h><br />
#include "HidLib.h"<br />
//#include "hid/IncsPublic/HidLib.h"<br />
<br />
#define XML_FILE "/etc/hidd/HidPlugins.xml"<br />
<br />
static HidPluginSettings_t* pSettings = NULL;<br />
static int numPlugins = 0;<br />
<br />
int HidEventInit(void)<br />
{<br />
PmErr retVal = kPmErrorUnknown;<br />
<br />
if (pSettings == NULL) {<br />
retVal = HidAllocPluginSettings(XML_FILE, &pSettings, &numPlugins);<br />
<br />
if (kPmErrorNone != retVal)<br />
{<br />
pSettings = NULL;<br />
return -1;<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
void HidEventDeInit(void)<br />
{<br />
if (NULL != pSettings)<br />
{<br />
HidFreePluginSettings(&pSettings, numPlugins);<br />
pSettings = NULL;<br />
}<br />
}<br />
<br />
void *HidEventOpen(int Device)<br />
{<br />
PmErr retVal = kPmErrorUnknown;<br />
HidHandle_t* pHandle = NULL; <br />
<br />
if (pSettings == NULL) {<br />
// Ensure plugin settings are initialized.<br />
if (HidEventInit() != 0) {<br />
return NULL;<br />
}<br />
}<br />
<br />
static const char* PluginName[] = { <br />
HID_KEYPAD,<br />
HID_ACCELEROMETER,<br />
HID_TOUCHPANEL<br />
};<br />
<br />
retVal = HidInitPluginTransport(PluginName[Device], pSettings, numPlugins, &pHandle);<br />
<br />
if (kPmErrorNone != retVal)<br />
{<br />
HidFreePluginSettings(&pSettings, numPlugins);<br />
pSettings = NULL;<br />
return NULL;<br />
}<br />
<br />
return pHandle;<br />
} <br />
<br />
void HidEventClose(void *Handle)<br />
{<br />
if (NULL != Handle)<br />
{<br />
HidDestroyPluginTransport((HidHandle_t**)&Handle);<br />
} <br />
}<br />
<br />
int HidEventGetFd(void *Handle)<br />
{<br />
return HidHandleGetFd((HidHandle_t*)Handle);<br />
}<br />
<br />
int HidEventRead(void *Handle, struct input_event* Events, int MaxEvents)<br />
{<br />
return HidHandleReadInputEvent((HidHandle_t*)Handle, (InputEvent_t*)Events, MaxEvents);<br />
}<br />
<br />
int main() {<br />
void *pHandle;<br />
struct input_event myevent;<br />
int ret = 0;<br />
<br />
pHandle = HidEventOpen(0);<br />
<br />
while (1) {<br />
ret = HidEventRead(pHandle, &myevent, 1);<br />
<br />
printf("return %d, type %d, code %d, value %d\n", <br />
ret, myevent.type, myevent.code, myevent.value);<br />
<br />
// q for quit<br />
if (myevent.code == 16) {<br />
HidEventDeInit();<br />
HidEventClose(pHandle);<br />
break;<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
===HidLib.h===<br />
<pre><br />
typedef int HidPluginSettings_t;<br />
typedef int HidHandle_t;<br />
typedef int PmErr;<br />
typedef struct input_event InputEvent_t;<br />
<br />
#define kPmErrorNone 0<br />
#define kPmErrorUnknown -1<br />
#define HID_KEYPAD "HidKeypad"<br />
#define HID_ACCELEROMETER "HidAccelerometer"<br />
#define HID_TOUCHPANEL "HidTouchpanel"<br />
</pre><br />
<br />
===Makefile===<br />
<pre><br />
CC = arm-none-linux-gnueabi-gcc<br />
CFLAGS = -g -O2 -I/usr/local/include<br />
LIBS = -Wl,-rpath,/usr/local/lib -L/usr/local/lib -lhid<br />
DEMOS = hidTest<br />
<br />
$(DEMOS):<br />
$(CC) -o $@ $@.c $(CFLAGS) $(LIBS)<br />
<br />
clean:<br />
rm -f $(DEMOS)<br />
</pre><br />
<br />
<br />
<br />
<br />
<br />
==Silly hidd plugin==<br />
<br />
<pre><br />
#include <stdio.h><br />
<br />
typedef struct PluginTable_t { <br />
int (*GetEventCallBack)() ;<br />
int (*Init)() ;<br />
int (*Exit)() ;<br />
int (*Suspend)() ;<br />
int (*Resume)() ;<br />
int (*Poll)() ;<br />
} PluginTable_t; <br />
<br />
extern PluginTable_t PluginTable;<br />
<br />
void *gPluginPrvInfo[21];<br />
<br />
int GetEventCallBack(void *a1) {<br />
printf( "Silly GetEventCallBack()\n" ) ;<br />
gPluginPrvInfo[0] = a1;<br />
return 0;<br />
}<br />
<br />
int Init(a1) {<br />
printf( "Silly Init\n" ) ;<br />
return HidPluginGenericInit(a1, gPluginPrvInfo);<br />
}<br />
<br />
int Exit() {<br />
printf( "Silly Exit\n" ) ;<br />
return HidPluginGenericExit(gPluginPrvInfo);<br />
}<br />
<br />
int Suspend() {<br />
printf( "Silly Suspend\n" ) ;<br />
return HidPluginGenericSuspend(gPluginPrvInfo);<br />
}<br />
<br />
int Resume() {<br />
printf( "Silly Resume\n" ) ;<br />
return HidPluginGenericResume(gPluginPrvInfo);<br />
}<br />
<br />
int Poll() {<br />
printf( "Silly Poll\n" ) ;<br />
return HidPluginGenericGetEvents(gPluginPrvInfo);<br />
}<br />
<br />
PluginTable_t PluginTable = { <br />
*GetEventCallBack,<br />
*Init,<br />
*Exit,<br />
*Suspend,<br />
*Resume,<br />
*Poll<br />
} ;<br />
<br />
</pre><br />
<br />
You'll see its socket get registered and then some printf's when getcallback and init get called.<br />
Next steps will be to fix to figure out gPluginPrvInfo since we probably need to put more things in it, and then to actually communicate with hidd. :)</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Hidd&diff=12140Hidd2010-11-25T20:44:28Z<p>Destinal: /* Silly hidd plugin */</p>
<hr />
<div>==Intro==<br />
<br />
This is a research page on hidd -- how to examine what it does, how it works, etc.<br />
<br />
==Files==<br />
Hidd is started from upstart (/etc/event.d/hidd) with a -f option to load a given configuration file. On the emulator, this is /etc/hidd/HidPluginsVbox.xml. On a pre, this is /etc/hidd/HidPlugins.xml. There's also something called casper there, not sure what that is as of yet<br />
<br />
==Architecture==<br />
Hidd seems to use a modular plugin-style architecture where each plugin is a shared library.<br />
<br />
Default files are:<br />
<br />
libhid.so libhidavrcp.so libhidlight.so libhidqemukeypad.so libhidtouchpanel.so<br />
libhidaccelerometer.so libhidkeypad.so libhidproximity.so libhidqemutouchpanel.so<br />
<br />
==Plugin definition in config file==<br />
<source lang=xml><br />
<plugin><br />
<name>HidKeypad</name><br />
<eventsDeferIdle>true</eventsDeferIdle><br />
<eventSocketAddress>/var/tmp/hidd/KeypadEventSocket</eventSocketAddress><br />
<cmdSocketAddress>/var/tmp/hidd/KeypadCmdSocket</cmdSocketAddress><br />
<path>/usr/lib/libhidkeypad.so</path><br />
</plugin><br />
</source><br />
<br />
==Starting the daemon==<br />
<br />
A lot of debug information can be obtained by starting the daemon like so (on a pre, on an emulator add Vbox before .xml)<br />
<br />
/usr/bin/hidd -vvv -f /etc/hidd/HidPlugins.xml<br />
<br />
==Example trace==<br />
<br />
/usr/bin/hidd -vvv -f /etc/hidd/HidPlugins-keypadonly.xml<br />
<br />
Verbosity level set to 7<br />
<br />
<br />
root@castle:/etc/hidd# hidd -vvvv -f /etc/hidd/HidPlugins-test.xml <br />
Verbosity level set to 7<br />
Plugin: 0<br />
Name: HidKeypad<br />
Path: /usr/lib/libhidkeypad.so<br />
Event Socket Address: /var/tmp/hidd/KeypadEventSocket<br />
Cmd Socket Address: /var/tmp/hidd/KeypadCmdSocket<br />
<br />
_SetupPluginTransport:<br />
Socket created successfully<br />
<br />
_SetupPluginTransport:<br />
--> Event socket address: /var/tmp/hidd/KeypadEventSocket<br />
<br />
_SetupPluginTransport:<br />
--> Command socket address: /var/tmp/hidd/KeypadCmdSocket<br />
<br />
Init:<br />
HidKeypad: init function called!<br />
<br />
HidKeypadIpc.c:104 : GetSwitchStates: Bad file descriptor<br />
ReportEvent:<br />
kInputEvent received 1 events, fd: 7<br />
<br />
_ReportStandardEvent:<br />
Event: 0.0, type=EV_SYN, code=8, value=0<br />
<br />
HidPluginStartReaderThread:<br />
HidKeypad: starting reader thread<br />
<br />
main:<br />
Setting up power management...<br />
<br />
ReportEvent:<br />
kInputEvent received 2 events, fd: 7<br />
<br />
_ReportStandardEvent:<br />
Event: 85906.791100, type=EV_KEY, code=19, value=1<br />
<br />
_ReportStandardEvent:<br />
Event: 85906.791130, type=EV_SYN, code=0, value=0<br />
<br />
ReportEvent:<br />
kInputEvent received 2 events, fd: 7<br />
<br />
_ReportStandardEvent:<br />
Event: 85906.999809, type=EV_KEY, code=19, value=0<br />
<br />
_ReportStandardEvent:<br />
Event: 85906.999840, type=EV_SYN, code=0, value=0<br />
<br />
<br />
==Listening to Hidd event==<br />
The libSDL patch provided by Palm provides good examples of listening to events via hidd. Based upon this I created a simple example program to listen to the HidKeypad events and print them to stdout. Listening directly to HidKeypad events we can observe all the keys including power button, volume keys and center gesture-area button. I built using WIDK. '''WARNING: After running this program, I cannot get the screen to come back on after sleeping via a key press. It only turns back on after reconnecting USB cable'''<br />
<br />
===hidTest.c===<br />
<pre><br />
#include <stdio.h><br />
#include <linux/input.h><br />
#include "HidLib.h"<br />
//#include "hid/IncsPublic/HidLib.h"<br />
<br />
#define XML_FILE "/etc/hidd/HidPlugins.xml"<br />
<br />
static HidPluginSettings_t* pSettings = NULL;<br />
static int numPlugins = 0;<br />
<br />
int HidEventInit(void)<br />
{<br />
PmErr retVal = kPmErrorUnknown;<br />
<br />
if (pSettings == NULL) {<br />
retVal = HidAllocPluginSettings(XML_FILE, &pSettings, &numPlugins);<br />
<br />
if (kPmErrorNone != retVal)<br />
{<br />
pSettings = NULL;<br />
return -1;<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
void HidEventDeInit(void)<br />
{<br />
if (NULL != pSettings)<br />
{<br />
HidFreePluginSettings(&pSettings, numPlugins);<br />
pSettings = NULL;<br />
}<br />
}<br />
<br />
void *HidEventOpen(int Device)<br />
{<br />
PmErr retVal = kPmErrorUnknown;<br />
HidHandle_t* pHandle = NULL; <br />
<br />
if (pSettings == NULL) {<br />
// Ensure plugin settings are initialized.<br />
if (HidEventInit() != 0) {<br />
return NULL;<br />
}<br />
}<br />
<br />
static const char* PluginName[] = { <br />
HID_KEYPAD,<br />
HID_ACCELEROMETER,<br />
HID_TOUCHPANEL<br />
};<br />
<br />
retVal = HidInitPluginTransport(PluginName[Device], pSettings, numPlugins, &pHandle);<br />
<br />
if (kPmErrorNone != retVal)<br />
{<br />
HidFreePluginSettings(&pSettings, numPlugins);<br />
pSettings = NULL;<br />
return NULL;<br />
}<br />
<br />
return pHandle;<br />
} <br />
<br />
void HidEventClose(void *Handle)<br />
{<br />
if (NULL != Handle)<br />
{<br />
HidDestroyPluginTransport((HidHandle_t**)&Handle);<br />
} <br />
}<br />
<br />
int HidEventGetFd(void *Handle)<br />
{<br />
return HidHandleGetFd((HidHandle_t*)Handle);<br />
}<br />
<br />
int HidEventRead(void *Handle, struct input_event* Events, int MaxEvents)<br />
{<br />
return HidHandleReadInputEvent((HidHandle_t*)Handle, (InputEvent_t*)Events, MaxEvents);<br />
}<br />
<br />
int main() {<br />
void *pHandle;<br />
struct input_event myevent;<br />
int ret = 0;<br />
<br />
pHandle = HidEventOpen(0);<br />
<br />
while (1) {<br />
ret = HidEventRead(pHandle, &myevent, 1);<br />
<br />
printf("return %d, type %d, code %d, value %d\n", <br />
ret, myevent.type, myevent.code, myevent.value);<br />
<br />
// q for quit<br />
if (myevent.code == 16) {<br />
HidEventDeInit();<br />
HidEventClose(pHandle);<br />
break;<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
===HidLib.h===<br />
<pre><br />
typedef int HidPluginSettings_t;<br />
typedef int HidHandle_t;<br />
typedef int PmErr;<br />
typedef struct input_event InputEvent_t;<br />
<br />
#define kPmErrorNone 0<br />
#define kPmErrorUnknown -1<br />
#define HID_KEYPAD "HidKeypad"<br />
#define HID_ACCELEROMETER "HidAccelerometer"<br />
#define HID_TOUCHPANEL "HidTouchpanel"<br />
</pre><br />
<br />
===Makefile===<br />
<pre><br />
CC = arm-none-linux-gnueabi-gcc<br />
CFLAGS = -g -O2 -I/usr/local/include<br />
LIBS = -Wl,-rpath,/usr/local/lib -L/usr/local/lib -lhid<br />
DEMOS = hidTest<br />
<br />
$(DEMOS):<br />
$(CC) -o $@ $@.c $(CFLAGS) $(LIBS)<br />
<br />
clean:<br />
rm -f $(DEMOS)<br />
</pre><br />
<br />
<br />
<br />
<br />
<br />
==Silly hidd plugin==<br />
<br />
<pre><br />
#include <stdio.h><br />
<br />
typedef struct PluginTable_t { <br />
int (*GetEventCallBack)() ;<br />
int (*Init)() ;<br />
int (*Exit)() ;<br />
int (*Suspend)() ;<br />
int (*Resume)() ;<br />
int (*Poll)() ;<br />
} PluginTable_t; <br />
<br />
extern PluginTable_t PluginTable;<br />
<br />
void *gPluginPrvInfo[21];<br />
<br />
int GetEventCallBack(void *a1) {<br />
printf( "Silly GetEventCallBack()\n" ) ;<br />
gPluginPrvInfo[0] = a1;<br />
return 0;<br />
}<br />
<br />
int Init(a1) {<br />
printf( "Silly Init\n" ) ;<br />
return HidPluginGenericInit(a1, gPluginPrvInfo);<br />
}<br />
<br />
int Exit() {<br />
printf( "Silly Exit\n" ) ;<br />
return HidPluginGenericExit(gPluginPrvInfo);<br />
}<br />
<br />
int Suspend() {<br />
printf( "Silly Suspend\n" ) ;<br />
return HidPluginGenericSuspend(gPluginPrvInfo);<br />
}<br />
<br />
int Resume() {<br />
printf( "Silly Resume\n" ) ;<br />
return HidPluginGenericResume(gPluginPrvInfo);<br />
}<br />
<br />
int Poll() {<br />
printf( "Silly Poll\n" ) ;<br />
return HidPluginGenericGetEvents(gPluginPrvInfo);<br />
}<br />
<br />
PluginTable_t PluginTable = { <br />
*GetEventCallBack,<br />
*Init,<br />
*Exit,<br />
*Suspend,<br />
*Resume,<br />
*Poll<br />
} ;<br />
<br />
</pre><br />
<br />
You'll see its socket get registered and then some printf's when getcallback and init get called.<br />
Next steps will be to call init and suspend and resume from libhid's generic functions, and then to actually communicate with hidd. :)</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Hidd&diff=12136Hidd2010-11-25T07:22:42Z<p>Destinal: silly plugin (mostly written by bpadalino)</p>
<hr />
<div>==Intro==<br />
<br />
This is a research page on hidd -- how to examine what it does, how it works, etc.<br />
<br />
==Files==<br />
Hidd is started from upstart (/etc/event.d/hidd) with a -f option to load a given configuration file. On the emulator, this is /etc/hidd/HidPluginsVbox.xml. On a pre, this is /etc/hidd/HidPlugins.xml. There's also something called casper there, not sure what that is as of yet<br />
<br />
==Architecture==<br />
Hidd seems to use a modular plugin-style architecture where each plugin is a shared library.<br />
<br />
Default files are:<br />
<br />
libhid.so libhidavrcp.so libhidlight.so libhidqemukeypad.so libhidtouchpanel.so<br />
libhidaccelerometer.so libhidkeypad.so libhidproximity.so libhidqemutouchpanel.so<br />
<br />
==Plugin definition in config file==<br />
<source lang=xml><br />
<plugin><br />
<name>HidKeypad</name><br />
<eventsDeferIdle>true</eventsDeferIdle><br />
<eventSocketAddress>/var/tmp/hidd/KeypadEventSocket</eventSocketAddress><br />
<cmdSocketAddress>/var/tmp/hidd/KeypadCmdSocket</cmdSocketAddress><br />
<path>/usr/lib/libhidkeypad.so</path><br />
</plugin><br />
</source><br />
<br />
==Starting the daemon==<br />
<br />
A lot of debug information can be obtained by starting the daemon like so (on a pre, on an emulator add Vbox before .xml)<br />
<br />
/usr/bin/hidd -vvv -f /etc/hidd/HidPlugins.xml<br />
<br />
==Example trace==<br />
<br />
/usr/bin/hidd -vvv -f /etc/hidd/HidPlugins-keypadonly.xml<br />
<br />
Verbosity level set to 7<br />
<br />
<br />
root@castle:/etc/hidd# hidd -vvvv -f /etc/hidd/HidPlugins-test.xml <br />
Verbosity level set to 7<br />
Plugin: 0<br />
Name: HidKeypad<br />
Path: /usr/lib/libhidkeypad.so<br />
Event Socket Address: /var/tmp/hidd/KeypadEventSocket<br />
Cmd Socket Address: /var/tmp/hidd/KeypadCmdSocket<br />
<br />
_SetupPluginTransport:<br />
Socket created successfully<br />
<br />
_SetupPluginTransport:<br />
--> Event socket address: /var/tmp/hidd/KeypadEventSocket<br />
<br />
_SetupPluginTransport:<br />
--> Command socket address: /var/tmp/hidd/KeypadCmdSocket<br />
<br />
Init:<br />
HidKeypad: init function called!<br />
<br />
HidKeypadIpc.c:104 : GetSwitchStates: Bad file descriptor<br />
ReportEvent:<br />
kInputEvent received 1 events, fd: 7<br />
<br />
_ReportStandardEvent:<br />
Event: 0.0, type=EV_SYN, code=8, value=0<br />
<br />
HidPluginStartReaderThread:<br />
HidKeypad: starting reader thread<br />
<br />
main:<br />
Setting up power management...<br />
<br />
ReportEvent:<br />
kInputEvent received 2 events, fd: 7<br />
<br />
_ReportStandardEvent:<br />
Event: 85906.791100, type=EV_KEY, code=19, value=1<br />
<br />
_ReportStandardEvent:<br />
Event: 85906.791130, type=EV_SYN, code=0, value=0<br />
<br />
ReportEvent:<br />
kInputEvent received 2 events, fd: 7<br />
<br />
_ReportStandardEvent:<br />
Event: 85906.999809, type=EV_KEY, code=19, value=0<br />
<br />
_ReportStandardEvent:<br />
Event: 85906.999840, type=EV_SYN, code=0, value=0<br />
<br />
<br />
==Listening to Hidd event==<br />
The libSDL patch provided by Palm provides good examples of listening to events via hidd. Based upon this I created a simple example program to listen to the HidKeypad events and print them to stdout. Listening directly to HidKeypad events we can observe all the keys including power button, volume keys and center gesture-area button. I built using WIDK. '''WARNING: After running this program, I cannot get the screen to come back on after sleeping via a key press. It only turns back on after reconnecting USB cable'''<br />
<br />
===hidTest.c===<br />
<pre><br />
#include <stdio.h><br />
#include <linux/input.h><br />
#include "HidLib.h"<br />
//#include "hid/IncsPublic/HidLib.h"<br />
<br />
#define XML_FILE "/etc/hidd/HidPlugins.xml"<br />
<br />
static HidPluginSettings_t* pSettings = NULL;<br />
static int numPlugins = 0;<br />
<br />
int HidEventInit(void)<br />
{<br />
PmErr retVal = kPmErrorUnknown;<br />
<br />
if (pSettings == NULL) {<br />
retVal = HidAllocPluginSettings(XML_FILE, &pSettings, &numPlugins);<br />
<br />
if (kPmErrorNone != retVal)<br />
{<br />
pSettings = NULL;<br />
return -1;<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
void HidEventDeInit(void)<br />
{<br />
if (NULL != pSettings)<br />
{<br />
HidFreePluginSettings(&pSettings, numPlugins);<br />
pSettings = NULL;<br />
}<br />
}<br />
<br />
void *HidEventOpen(int Device)<br />
{<br />
PmErr retVal = kPmErrorUnknown;<br />
HidHandle_t* pHandle = NULL; <br />
<br />
if (pSettings == NULL) {<br />
// Ensure plugin settings are initialized.<br />
if (HidEventInit() != 0) {<br />
return NULL;<br />
}<br />
}<br />
<br />
static const char* PluginName[] = { <br />
HID_KEYPAD,<br />
HID_ACCELEROMETER,<br />
HID_TOUCHPANEL<br />
};<br />
<br />
retVal = HidInitPluginTransport(PluginName[Device], pSettings, numPlugins, &pHandle);<br />
<br />
if (kPmErrorNone != retVal)<br />
{<br />
HidFreePluginSettings(&pSettings, numPlugins);<br />
pSettings = NULL;<br />
return NULL;<br />
}<br />
<br />
return pHandle;<br />
} <br />
<br />
void HidEventClose(void *Handle)<br />
{<br />
if (NULL != Handle)<br />
{<br />
HidDestroyPluginTransport((HidHandle_t**)&Handle);<br />
} <br />
}<br />
<br />
int HidEventGetFd(void *Handle)<br />
{<br />
return HidHandleGetFd((HidHandle_t*)Handle);<br />
}<br />
<br />
int HidEventRead(void *Handle, struct input_event* Events, int MaxEvents)<br />
{<br />
return HidHandleReadInputEvent((HidHandle_t*)Handle, (InputEvent_t*)Events, MaxEvents);<br />
}<br />
<br />
int main() {<br />
void *pHandle;<br />
struct input_event myevent;<br />
int ret = 0;<br />
<br />
pHandle = HidEventOpen(0);<br />
<br />
while (1) {<br />
ret = HidEventRead(pHandle, &myevent, 1);<br />
<br />
printf("return %d, type %d, code %d, value %d\n", <br />
ret, myevent.type, myevent.code, myevent.value);<br />
<br />
// q for quit<br />
if (myevent.code == 16) {<br />
HidEventDeInit();<br />
HidEventClose(pHandle);<br />
break;<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
===HidLib.h===<br />
<pre><br />
typedef int HidPluginSettings_t;<br />
typedef int HidHandle_t;<br />
typedef int PmErr;<br />
typedef struct input_event InputEvent_t;<br />
<br />
#define kPmErrorNone 0<br />
#define kPmErrorUnknown -1<br />
#define HID_KEYPAD "HidKeypad"<br />
#define HID_ACCELEROMETER "HidAccelerometer"<br />
#define HID_TOUCHPANEL "HidTouchpanel"<br />
</pre><br />
<br />
===Makefile===<br />
<pre><br />
CC = arm-none-linux-gnueabi-gcc<br />
CFLAGS = -g -O2 -I/usr/local/include<br />
LIBS = -Wl,-rpath,/usr/local/lib -L/usr/local/lib -lhid<br />
DEMOS = hidTest<br />
<br />
$(DEMOS):<br />
$(CC) -o $@ $@.c $(CFLAGS) $(LIBS)<br />
<br />
clean:<br />
rm -f $(DEMOS)<br />
</pre><br />
<br />
<br />
<br />
<br />
<br />
==Silly hidd plugin==<br />
<br />
<pre><br />
#include <stdio.h><br />
<br />
typedef struct PluginTable_t { <br />
struct PluginTable_t *(*GetEventCallBack)() ;<br />
int (*Init)() ;<br />
int (*Exit)() ;<br />
int (*Suspend)() ;<br />
int (*Resume)() ;<br />
int (*Poll)() ;<br />
} PluginTable_t ;<br />
<br />
extern PluginTable_t PluginTable ;<br />
<br />
PluginTable_t *GetEventCallBack() {<br />
printf( "Silly GetEventCallBack()\n" ) ;<br />
return &PluginTable;<br />
}<br />
<br />
int Init() {<br />
printf( "Silly Init\n" ) ;<br />
return ;<br />
}<br />
<br />
int Exit() {<br />
printf( "Silly Exit\n" ) ;<br />
return ;<br />
}<br />
<br />
int Suspend() {<br />
printf( "Silly Suspend\n" ) ;<br />
return ;<br />
}<br />
<br />
int Resume() {<br />
printf( "Silly Resume\n" ) ;<br />
return ;<br />
}<br />
<br />
int Poll() {<br />
printf( "Silly Poll\n" ) ;<br />
return ;<br />
}<br />
<br />
PluginTable_t PluginTable = { <br />
*GetEventCallBack,<br />
*Init,<br />
*Exit,<br />
*Suspend,<br />
*Resume,<br />
*Poll<br />
} ;<br />
<br />
#ifdef UNIT_TEST<br />
int main(void) {<br />
PluginTable_t *newTable = PluginTable.GetEventCallBack() ;<br />
PluginTable.Init() ;<br />
PluginTable.Exit() ;<br />
PluginTable.Suspend() ;<br />
PluginTable.Resume() ;<br />
PluginTable.Poll() ;<br />
<br />
newTable->Init() ;<br />
newTable->Exit() ;<br />
newTable->Suspend() ;<br />
newTable->Resume() ;<br />
newTable->Poll() ;<br />
}<br />
#endif<br />
</pre><br />
<br />
=== Compiling === <br />
<pre><br />
gcc -fPIC -shared -Wl,-soname,libhidsilly -o libhidsilly.so libhidsilly.c<br />
</pre><br />
<br />
=== Installing ===<br />
<br />
Add this to hidd plugins xml file<br />
<br />
<pre><br />
<plugin><br />
<name>HidSilly</name><br />
<eventsDeferIdle>true</eventsDeferIdle><br />
<eventSocketAddress>/var/tmp/hidd/SillyEventSocket</eventSocketAddress><br />
<cmdSocketAddress>/var/tmp/hidd/SillyCmdSocket</cmdSocketAddress><br />
<path>/usr/lib/libhidsilly.so</path><br />
</plugin><br />
</pre><br />
<br />
You'll see its socket get registered and then some printf's when getcallback and init get called.<br />
Next steps will be to call init and suspend and resume from libhid's generic functions, and then to actually communicate with hidd. :)</div>Destinalhttp://wiki.webos-internals.org/index.php?title=WhoIsWho&diff=11068WhoIsWho2010-08-29T03:46:53Z<p>Destinal: added stuff on destinal</p>
<hr />
<div>This page lists all the WebOS Internals developers, and the projects and activities for which each is responsible. Names are listed in chronological order of officially joining the WebOS Internals team.<br />
<br />
{{AboutMe|alias=rwhitby|realname=Rod Whitby|responsibility=Founder and Project Lead for WebOS Internals and Preware |aboutme=Homebrew Ecosystem Architect. Lead developer for Save/Restore. Co-Lead developer for Preware, Govnah and UberKernel. Co-developer for a number of other packages. Oh, and a family and full-time day job too.}}<br />
<br />
{{AboutMe|alias=ka6sox|realname=Tom King|responsibility=Chief Server Infrastructure Architect and Sys-Admin Team Lead(aka BOFH)|aboutme=FT:High Power RF, VHDL/Verilog Design, Play Time: Dabble with Kernel development.}}<br />
<br />
{{AboutMe|alias=rboatright|realname=Rick Boatright|responsibility=Chief Evangelist|aboutme=}}<br />
<br />
{{AboutMe|alias=destinal|realname=Eric Duprey|responsibility=That would be telling|aboutme=Hacker, security geek, one of the original devs behind the WebOS Internals "Terminal" application}}<br />
<br />
{{AboutMe|alias=PuffTheMagic|realname=Ryan Hope|responsibility=Play devil's advocate|aboutme=Research assistant / cognitive science grad student by day; webos developer by night }}<br />
<br />
{{AboutMe|alias=egaudet|realname=Eric Gaudet|responsibility=AUPT architect and randomness|aboutme=Busy debugging}}<br />
<br />
{{AboutMe|alias=oil|realname=Brandon VanBelle|responsibility=Minister of Awesomeness|aboutme=It's not my fault!}}<br />
<br />
{{AboutMe|alias=dtzWill|realname=Will Dietz|responsibility=Various WebOS Internals games, X11, WIDK management|aboutme=CS grad student who spends entirely too much time on WebOS }}<br />
<br />
{{AboutMe|alias=zsoc|realname=|responsibility=Multimedia subsystem architect|aboutme=}}<br />
<br />
{{AboutMe|alias=uNiXpSyChO|realname=Marco Benton|responsibility=BOFH and Kernel hacker|aboutme=[[Full-time]]; SysAdmin, SAN Admin, Network Admin. [[Part-time]]; System integration and network design consulting. [[Free-time]]; programming - since that's what i used to do full-time 20 years ago. }}<br />
<br />
{{AboutMe|alias=sbromwich|realname=Steve Bromwich|responsibility=Kernel developer|aboutme=Dilettante kernel programmer concentrating mostly on extending battery life.}}<br />
<br />
{{AboutMe|alias=swisstomcat|realname=Markus Leutwyler|responsibility=Chief German Translator (ja, genau!) and Javascript Parts Donator to different Projects. Also European Propaganda Minister. |aboutme=Web and Mobile Developer}}<br />
<br />
{{AboutMe|alias=jhojho|realname=|responsibility=Warthog kernel developer|aboutme=}}<br />
<br />
{{AboutMe|alias=cryptk|realname=Chris Jowett|responsibility=Server administration and management|aboutme=I work as a full time linux systems administratior as my day job and lend that knowledge to keep the WebOS Internals servers running as well as they possibly can.}}<br />
<br />
{{AboutMe|alias=sconix|realname=Janne Julkunen|responsibility=Creating nice patches and developing Mode Switcher|aboutme=Involved with Linux way too much :)}}</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Media_API&diff=9304Media API2010-03-05T23:26:06Z<p>Destinal: </p>
<hr />
<div>Here is where you may find research on undocumented Media API calls. The hope is to enable earpiece playback, microphone recording, and perhaps even raw video access.<br />
<br />
Your application must use the "com.palm" namespace to access these APIs. That is, your app's ID must start with "com.palm" if you want to be able to call these services. Sadly, this would exclude your app from Palm's App Catalog, though it should be fine for inclusion in Preware.<br />
<br />
== Playback through earpiece ==<br />
Earpiece playback is achieved by specifying a new audio playback scenario to the audio service. There seem to be three main "modes" for audio playback (media, phone, and voice_dialing). These examples control the media mode (which is what application developers will be using) but can be adapted to change other modes too.<br />
<br />
<br />
This code will cause further audio playback to be directed to the earpiece:<br />
<source lang="javascript"><br />
var request = new Mojo.Service.Request('palm://com.palm.audio/media', {<br />
method: 'enableScenario',<br />
parameters: { "scenario":"media_front_speaker" },<br />
onSuccess: function() {<br />
var request2 = new Mojo.Service.Request('palm://com.palm.audio/media', {<br />
method: 'setCurrentScenario',<br />
parameters: { "scenario":"media_front_speaker" },<br />
onSuccess: this.playSomeSoundThroughTheEarpiece(),<br />
onFailure: this.logFailure()<br />
});<br />
}.bind(this),<br />
onFailure: this.logFailure()<br />
});<br />
</source><br />
<br />
<br />
This code will revert audio playback back to the speaker:<br />
<source lang="javascript"><br />
var request = new Mojo.Service.Request('palm://com.palm.audio/media', {<br />
method: 'disableScenario',<br />
parameters: { "scenario":"media_front_speaker" },<br />
onSuccess: this.logSuccess(),<br />
onFailure: this.logFailure()<br />
});<br />
</source><br />
<br />
If you enable the earpiece at some point during your app's run, you MUST remember to reset the playback to use the speaker before your app exits. Always put things back the way you found them!<br />
<br />
<br />
The list of available scenarios can be found by calling the 'listScenarios' method:<br />
<source lang="javascript"><br />
request = new Mojo.Service.Request("palm://com.palm.audio/media/listScenarios", {<br />
parameters: { "enabled": true },<br />
onSuccess: this.printScenarios(scenarios),<br />
onFailure: this.logFailure()<br />
});<br />
</source><br />
<br />
<br />
The current list of scenarios for all modes seems to be:<br />
<pre><br />
media_front_speaker<br />
media_back_speaker<br />
media_headset<br />
media_headset_mic<br />
media_a2dp<br />
media_wireless<br />
<br />
phone_front_speaker<br />
phone_back_speaker<br />
phone_headset<br />
phone_headset_mic<br />
phone_bluetooth_sco<br />
phone_tty_full<br />
phone_tty_hco<br />
phone_tty_vco<br />
<br />
voice_dialing_front_speaker<br />
voice_dialing_headset<br />
voice_dialing_headset_mic<br />
voice_dialing_bluetooth_sco<br />
</pre><br />
<br />
<br />
Additional methods off the Audio service include get/setLatency, get/setVolume, lockVolumeKeys, and setMuted.<br />
<br />
== Audio recording ==<br />
There is a test service that the interactive tests use to perform certain actions including recording audio. It is just a wrapper for calling other linux utilities. This is obviously not ideal, since somewhere things like the phone app must be able to access the microphone directly, but it's a start...<br />
<br />
<br />
This code will record audio to a WAV file located at /var/tmp/recordTestFile.wav. The service simply shells out to 'arecord', using the PCM audio device named 'record': <br />
<source lang="javascript"><br />
var request = new Mojo.Service.Request('palm://com.palm.crotest', {<br />
method: 'RecordSound',<br />
parameters: {"duration": 15},<br />
onSuccess: this.logSuccess(),<br />
onFailure: this.logFailure()<br />
});<br />
</source><br />
<br />
I am not certain that the duration parameter will be honored, since no application seems to use it, but the service seems to provide it. The service may also provide a "file" parameter to specify the output file, but I am less certain about this. Perhaps a more configurable version would be a good call to add to the utility service?<br />
<br />
<br />
When you are done with the recording, you should delete it. The service presumably simply shells out to 'rm':<br />
<source lang="javascript"><br />
var request = new Mojo.Service.Request('palm://com.palm.crotest', {<br />
method: 'RemoveRecording',<br />
parameters: {},<br />
onSuccess: this.logSuccess(),<br />
onFailure: this.logFailure()<br />
});<br />
</source><br />
<br />
<br />
You can also use this test service to play an arbitrary WAV file. The service simply shells out to 'aplay':<br />
<source lang="javascript"><br />
var request = new Mojo.Service.Request('palm://com.palm.crotest', {<br />
method: 'PlaySound',<br />
parameters: {"file":"/var/tmp/recordTestFile.wav"},<br />
onSuccess: this.logSuccess(),<br />
onFailure: this.logFailure()<br />
});<br />
</source></div>Destinalhttp://wiki.webos-internals.org/index.php?title=WebOS_Internals_PDK&diff=8928WebOS Internals PDK2010-02-05T01:04:53Z<p>Destinal: </p>
<hr />
<div>[[Category: SDL]]<br />
Palm's binary sdk the "Plugin Developer Kit" will not be available until March 2010.<br />
<br />
In the mean time, WebOS Internals has released a full "PDK" for you using Scratchbox2. <br />
<br />
We ''strongly'' urge the community to standardize on this PDK until Palm releases theirs. We believe that it uses the same underlying technologies, and that it will give you both a means to port games now, and a head-start to development against the official Palm PDK in the future.<br />
<br />
Scratchbox 2 is a cross-compilation engine, it can be used to create a highly flexible SDK.<br />
<br />
As installed below, the install process uses a script which extracts the required Palm provided files from a copy of webos doctor, and downloads from other sources, and builds a complete compilation environment automatically which can compile SDL and openGLES apps for webOS. <br />
<br />
SB2 ''itself'' is totally distribution neutral but the webOS cross-compile environment is designed and tested on Ubuntu 9.10 32 bit. (At least one user in #webos-internals reports complete success running the cross compile environment in Ubuntu 9.10 64 bit after installing curl via apt-get.) <br />
<br />
The webOS Internals team ''strongly suggest'' apt-get install into that environment only for this purpose. The same installation of Sun Virtualbox which hosts the Palm SDK emulator can host an Ubuntu 9.10 server with very little effort. <br />
<br />
==SB2 Homepage==<br />
[http://www.freedesktop.org/wiki/Software/sbox2 http://www.freedesktop.org/wiki/Software/sbox2]pdk<br />
<br />
==License==<br />
Scratchbox 2 is distributed under LGPL version 2.1, portions are under GPL version 2. Some minor stuff is under MIT style license.<br />
<br />
== Installation on Ubuntu for WebOS PDK cross compiling ==<br />
<div style="float:right; clear:right; width:30%">{{Ubuntu_VM_notes_for_Windows_users}}</div><br />
===Prequisites===<br />
Your Ubuntu installation will need the following installed. If you do not have them, run the command after the package name. You can test if they are found by just typing the command name. If it says command not found, you need to install it. <br />
<br />
{| border="1"<br />
|+ <br />
|'''git''' || sudo apt-get install git-core<br />
|-<br />
|'''gcc''' || sudo apt-get install build-essential<br />
|-<br />
|'''curl''' || sudo apt-get install curl<br />
|-<br />
|'''unzip'''|| sudo apt-get install unzip<br />
|-<br />
|'''autoconf'''|| sudo apt-get install autoconf<br />
|-<br />
|'''subversion'''|| sudo apt-get install subversion<br />
|-<br />
|'''libtool'''|| sudo apt-get install libtool<br />
|-<br />
|'''wget'''|| sudo apt-get install wget<br />
|-<br />
|'''pkg-config'''|| sudo apt-get install pkg-config<br />
|-<br />
|'''gettext'''|| sudo apt-get install gettext<br />
|}<br />
<br />
<br />
If you're uncertain at all, just cut and paste the following. If they are already installed, they'll be skipped. <br />
<br />
sudo apt-get install git-core build-essential curl unzip autoconf subversion libtool wget pkg-config gettext<br />
<br />
'''Note:''' The ''make toolchain'' command and later steps will download approximately a half-gig of tools and sources from various locations. Do not start this if you do not have time for a large download. Additionally, if you already have downloaded a copy of the WebOS 1.3.5 doctor, you can reduce the download time by copying the doctor file into cross-compile/doctors/webosdoctorp100ewwsprint-1.3.5.jar . This will cause the appropriate command to skip that download. Note that codesourcery rate limts downloads and at a minimum this process will take 10 to 15 minutes irrespective of your connection speed. <br />
<br />
====Start setup====<br />
Create a preware folder, copy the cross-compile tools into it (if you have not installed git, apt-get install git-core), and use a make script to begin the set up of the compilation toolchain. <br />
<br />
sudo mkdir -p /srv/preware<br />
cd /srv/preware<br />
sudo chmod 777 .<br />
git clone git://git.webos-internals.org/preware/cross-compile.git<br />
cd cross-compile<br />
make toolchain<br />
<br />
====Fix mmap errors====<br />
The following commands appear redundant. They are not. The install this fixes your mmap config to fix an mmap: permission denied error, but we don't need the package itself.<br />
<br />
sudo apt-get install qemu-arm-static<br />
sudo apt-get remove qemu-arm-static<br />
<br />
: <span style="font-size:150%">OR</span> As a workaround, if this package is not available, <br />
::: the following commands can be executed in a root shell (sudo -s) to fix the mmap configuration to enable qemu-arm to work.<br />
<br />
echo "vm.mmap_min_addr = 4096" > /etc/sysctl.d/mmap_min_addr.conf<br />
/etc/init.d/procps restart<br />
<br />
(note that the value should not be "0". 4096 is chosen to avoid null pointer attacks.)<br />
<br />
<br />
====Setup Scratchbox====<br />
Now, use apt-get to setup scratchbox...<br />
<br />
sudo apt-get install scratchbox2 qemu-kvm-extras<br />
<br />
...and set it up for compiling for webOS. <br />
<br />
cd /srv/preware/cross-compile/toolchain/arm-2007q3/arm-none-linux-gnueabi/libc<br />
PATH=/srv/preware/cross-compile/toolchain/arm-2007q3/bin:${PATH} sb2-init -c /usr/bin/qemu-arm armv7 arm-none-linux-gnueabi-gcc<br />
cd /srv/preware/cross-compile<br />
<br />
Then:<br />
<br />
make stage<br />
<br />
Once this setup is complete, compiling sdl apps for webOS is very simple.<br />
<br />
==Sample build of [[Application:Doom]]==<br />
<br />
Now, go to [[Building DOOM with scratchbox2]] and follow the simple directions.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=WebOS_Internals_PDK&diff=8927WebOS Internals PDK2010-02-05T01:04:38Z<p>Destinal: switched sample back to DOOM (better documentation)</p>
<hr />
<div>[[Category: SDL]]<br />
Palm's binary sdk the "Plugin Developer Kit" will not be available until March 2010.<br />
<br />
In the mean time, WebOS Internals has released a full "PDK" for you using Scratchbox2. <br />
<br />
We ''strongly'' urge the community to standardize on this PDK until Palm releases theirs. We believe that it uses the same underlying technologies, and that it will give you both a means to port games now, and a head-start to development against the official Palm PDK in the future.<br />
<br />
Scratchbox 2 is a cross-compilation engine, it can be used to create a highly flexible SDK.<br />
<br />
As installed below, the install process uses a script which extracts the required Palm provided files from a copy of webos doctor, and downloads from other sources, and builds a complete compilation environment automatically which can compile SDL and openGLES apps for webOS. <br />
<br />
SB2 ''itself'' is totally distribution neutral but the webOS cross-compile environment is designed and tested on Ubuntu 9.10 32 bit. (At least one user in #webos-internals reports complete success running the cross compile environment in Ubuntu 9.10 64 bit after installing curl via apt-get.) <br />
<br />
The webOS Internals team ''strongly suggest'' apt-get install into that environment only for this purpose. The same installation of Sun Virtualbox which hosts the Palm SDK emulator can host an Ubuntu 9.10 server with very little effort. <br />
<br />
==SB2 Homepage==<br />
[http://www.freedesktop.org/wiki/Software/sbox2 http://www.freedesktop.org/wiki/Software/sbox2]pdk<br />
<br />
==License==<br />
Scratchbox 2 is distributed under LGPL version 2.1, portions are under GPL version 2. Some minor stuff is under MIT style license.<br />
<br />
== Installation on Ubuntu for WebOS PDK cross compiling ==<br />
<div style="float:right; clear:right; width:30%">{{Ubuntu_VM_notes_for_Windows_users}}</div><br />
===Prequisites===<br />
Your Ubuntu installation will need the following installed. If you do not have them, run the command after the package name. You can test if they are found by just typing the command name. If it says command not found, you need to install it. <br />
<br />
{| border="1"<br />
|+ <br />
|'''git''' || sudo apt-get install git-core<br />
|-<br />
|'''gcc''' || sudo apt-get install build-essential<br />
|-<br />
|'''curl''' || sudo apt-get install curl<br />
|-<br />
|'''unzip'''|| sudo apt-get install unzip<br />
|-<br />
|'''autoconf'''|| sudo apt-get install autoconf<br />
|-<br />
|'''subversion'''|| sudo apt-get install subversion<br />
|-<br />
|'''libtool'''|| sudo apt-get install libtool<br />
|-<br />
|'''wget'''|| sudo apt-get install wget<br />
|-<br />
|'''pkg-config'''|| sudo apt-get install pkg-config<br />
|-<br />
|'''gettext'''|| sudo apt-get install gettext<br />
|}<br />
<br />
<br />
If you're uncertain at all, just cut and paste the following. If they are already installed, they'll be skipped. <br />
<br />
sudo apt-get install git-core build-essential curl unzip autoconf subversion libtool wget pkg-config gettext<br />
<br />
'''Note:''' The ''make toolchain'' command and later steps will download approximately a half-gig of tools and sources from various locations. Do not start this if you do not have time for a large download. Additionally, if you already have downloaded a copy of the WebOS 1.3.5 doctor, you can reduce the download time by copying the doctor file into cross-compile/doctors/webosdoctorp100ewwsprint-1.3.5.jar . This will cause the appropriate command to skip that download. Note that codesourcery rate limts downloads and at a minimum this process will take 10 to 15 minutes irrespective of your connection speed. <br />
<br />
====Start setup====<br />
Create a preware folder, copy the cross-compile tools into it (if you have not installed git, apt-get install git-core), and use a make script to begin the set up of the compilation toolchain. <br />
<br />
sudo mkdir -p /srv/preware<br />
cd /srv/preware<br />
sudo chmod 777 .<br />
git clone git://git.webos-internals.org/preware/cross-compile.git<br />
cd cross-compile<br />
make toolchain<br />
<br />
====Fix mmap errors====<br />
The following commands appear redundant. They are not. The install this fixes your mmap config to fix an mmap: permission denied error, but we don't need the package itself.<br />
<br />
sudo apt-get install qemu-arm-static<br />
sudo apt-get remove qemu-arm-static<br />
<br />
: <span style="font-size:150%">OR</span> As a workaround, if this package is not available, <br />
::: the following commands can be executed in a root shell (sudo -s) to fix the mmap configuration to enable qemu-arm to work.<br />
<br />
echo "vm.mmap_min_addr = 4096" > /etc/sysctl.d/mmap_min_addr.conf<br />
/etc/init.d/procps restart<br />
<br />
(note that the value should not be "0". 4096 is chosen to avoid null pointer attacks.)<br />
<br />
<br />
====Setup Scratchbox====<br />
Now, use apt-get to setup scratchbox...<br />
<br />
sudo apt-get install scratchbox2 qemu-kvm-extras<br />
<br />
...and set it up for compiling for webOS. <br />
<br />
cd /srv/preware/cross-compile/toolchain/arm-2007q3/arm-none-linux-gnueabi/libc<br />
PATH=/srv/preware/cross-compile/toolchain/arm-2007q3/bin:${PATH} sb2-init -c /usr/bin/qemu-arm armv7 arm-none-linux-gnueabi-gcc<br />
cd /srv/preware/cross-compile<br />
<br />
Then:<br />
<br />
make stage<br />
<br />
Once this setup is complete, compiling sdl apps for webOS is very simple.<br />
<br />
Once this setup is complete, compiling sdl apps for webOS is very simple.<br />
<br />
==Sample build of [[Application:Doom]]==<br />
<br />
Now, go to [[Building DOOM with scratchbox2]] and follow the simple directions.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Run_Multiple_WebOS_Versions&diff=8796Run Multiple WebOS Versions2010-01-31T07:27:50Z<p>Destinal: continued transmogrification</p>
<hr />
<div>'''THIS IS A WORK IN PROGRESS AND WILL DESTROY YOUR PRE'''<br />
<br />
And especially your /media/internal filesystem<br />
<br />
First be running the version you want to be secondary, Then on pre, run:<br />
<br />
<pre><br />
dd if=/dev/mapper/store-root of=/media/internal/root1.img bs=1048576<br />
dd if=/dev/mapper/store-var of=/media/internal/var1.img bs=1048576<br />
tar cvzf root-var.tar.gz root1.img var1.img<br />
</pre><br />
<br />
From host:<br />
<br />
novacom get file:///media/internal/root-var.tar.gz > root-var.tar.gz <br />
<br />
Now doctor to the version you want to be primary (this one will determine which kernel you run for both unfortunately)<br />
<br />
When done, from pre:<br />
<br />
<pre><br />
stop LunaSysMgr<br />
pkill cryptofs<br />
umount /media/internal<br />
lvresize -L -800M /dev/mapper/store-media<br />
mkdosfs -F 32 /dev/mapper/store-media<br />
mount /media/internal<br />
</pre><br />
<br />
From host:<br />
<br />
novacom put file:///media/internal/root-var.tar.gz < root-var.tar.gz <br />
<br />
Back on pre:<br />
<br />
<pre><br />
cd /media/internal<br />
tar xvzf root-var.tar.gz<br />
lvcreate -L 256M -n var2 store<br />
lvcreate -L 40M -n log2 store<br />
lvcreate -l 100%FREE -n root2 store<br />
dd if=/media/internal/mb/root1.img of=/dev/mapper/store-root2 bs=1048576<br />
dd if=/media/internal/mb/var1.img of=/dev/mapper/store-var2 bs=1048576<br />
resize2fs /dev/mapper/store-root2<br />
resize2fs /dev/mapper/store-var2<br />
mke2fs -j -b4096 -m0 -L /var/log /dev/mapper/store-log2<br />
</pre><br />
<br />
Now you just need a /boot/init that will mount whichever root and var is desired, and a service to enumerate the ones that are available and reboot into the selected one<br />
<br />
.. and of course this doesn't deal with the kernel.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Run_Multiple_WebOS_Versions&diff=8792Run Multiple WebOS Versions2010-01-31T05:29:19Z<p>Destinal: </p>
<hr />
<div>'''THIS IS A WORK IN PROGRESS AND WILL DESTROY YOUR PRE'''<br />
<br />
And especially your /media/internal filesystem<br />
<br />
<pre><br />
stop LunaSysMgr<br />
pkill cryptofs<br />
umount /media/internal<br />
lvresize -L -800M /dev/mapper/store-media<br />
mkdosfs -F 32 /dev/mapper/store-media<br />
mount /media/internal<br />
mkdir /media/internal/mb<br />
dd if=/dev/mapper/store-root of=/media/internal/mb/root1.img bs=1048576<br />
dd if=/dev/mapper/store-var of=/media/internal/mb/var1.img bs=1048576<br />
</pre><br />
<br />
<br />
Later<br />
<pre><br />
lvcreate -L 256M -n var2 store<br />
lvcreate -L 40M -n log2 store<br />
lvcreate -l 100%FREE -n root2 store<br />
dd if=/media/internal/mb/root1.img of=/dev/mapper/store-root2 bs=1048576<br />
dd if=/media/internal/mb/var1.img of=/dev/mapper/store-var2 bs=1048576<br />
resize2fs /dev/mapper/store-root2<br />
resize2fs /dev/mapper/store-var2<br />
mkfs.ext3 /dev/mapper/store-log2<br />
</pre></div>Destinalhttp://wiki.webos-internals.org/index.php?title=Run_Multiple_WebOS_Versions&diff=8791Run Multiple WebOS Versions2010-01-31T05:26:44Z<p>Destinal: </p>
<hr />
<div>'''THIS IS A WORK IN PROGRESS AND WILL DESTROY YOUR PRE'''<br />
<br />
And especially your /media/internal filesystem<br />
<br />
<pre><br />
stop LunaSysMgr<br />
pkill cryptofs<br />
umount /media/internal<br />
lvresize -L -800M /dev/mapper/store-media<br />
mkdosfs -F 32 /dev/mapper/store-media<br />
mount /media/internal<br />
mkdir /media/internal/mb<br />
dd if=/dev/mapper/store-root of=/media/internal/mb/root1.img bs=1048576<br />
dd if=/dev/mapper/store-var of=/media/internal/mb/var1.img bs=1048576<br />
</pre><br />
<br />
<br />
Later<br />
<pre><br />
lvcreate -L 256M -n var2 store<br />
lvcreate -L 40M -n log2 store<br />
lvcreate -l 100%FREE -n root2 store<br />
dd if=/media/internal/mb/root1.img of=/dev/mapper/store-root2 bs=1048576<br />
resize2fs /dev/mapper/store-root2<br />
dd if=/media/internal/mb/var1.img of=/dev/mapper/store-var2 bs=1048576<br />
resize2fs /dev/mapper/store-var2<br />
e2resize /dev/mapper/store-root2<br />
mkfs.ext3 /dev/mapper/store-log2<br />
</pre></div>Destinalhttp://wiki.webos-internals.org/index.php?title=Run_Multiple_WebOS_Versions&diff=8790Run Multiple WebOS Versions2010-01-31T05:25:54Z<p>Destinal: more</p>
<hr />
<div>'''THIS IS A WORK IN PROGRESS AND WILL DESTROY YOUR PRE'''<br />
<br />
And especially your /media/internal filesystem<br />
<br />
<pre><br />
stop LunaSysMgr<br />
pkill cryptofs<br />
umount /media/internal<br />
lvresize -L -800M /dev/mapper/store-media<br />
mkdosfs -F 32 /dev/mapper/store-media<br />
mount /media/internal<br />
mkdir /media/internal/mb<br />
dd if=/dev/mapper/store-root of=/media/internal/mb/root1.img bs=1048576<br />
dd if=/dev/mapper/store-var of=/media/internal/mb/var1.img bs=1048576<br />
</pre><br />
<br />
<br />
Later<br />
<pre><br />
lvcreate -L 256M var2<br />
lvcreate -L 40M -n log2 store<br />
lvcreate -l 100%FREE -n root2 store<br />
dd if=/media/internal/mb/root1.img of=/dev/mapper/store-root2 bs=1048576<br />
resize2fs /dev/mapper/store-root2<br />
dd if=/media/internal/mb/var1.img of=/dev/mapper/store-var2 bs=1048576<br />
resize2fs /dev/mapper/store-var2<br />
e2resize /dev/mapper/store-root2<br />
mkfs.ext3 /dev/mapper/store-log2<br />
</pre></div>Destinalhttp://wiki.webos-internals.org/index.php?title=Run_Multiple_WebOS_Versions&diff=8789Run Multiple WebOS Versions2010-01-31T05:14:32Z<p>Destinal: added important missed step</p>
<hr />
<div>'''THIS IS A WORK IN PROGRESS AND WILL DESTROY YOUR PRE'''<br />
<br />
And especially your /media/internal filesystem<br />
<br />
<pre><br />
stop LunaSysMgr<br />
pkill cryptofs<br />
umount /media/internal<br />
lvresize -L -800M /dev/mapper/store-media<br />
mkdosfs -F 32 /dev/mapper/store-media<br />
mount /media/internal<br />
mkdir /media/internal/mb<br />
dd if=/dev/mapper/store-root of=/media/internal/mb/root1.img bs=1048576<br />
dd if=/dev/mapper/store-var of=/media/internal/mb/var1.img bs=1048576<br />
</pre></div>Destinalhttp://wiki.webos-internals.org/index.php?title=Run_Multiple_WebOS_Versions&diff=8788Run Multiple WebOS Versions2010-01-31T05:13:53Z<p>Destinal: highly experimental, just a beginning</p>
<hr />
<div>'''THIS IS A WORK IN PROGRESS AND WILL DESTROY YOUR PRE'''<br />
<br />
And especially your /media/internal filesystem<br />
<br />
<pre><br />
stop LunaSysMgr<br />
pkill cryptofs<br />
umount /media/internal<br />
lvresize -L -800M /dev/mapper/store-media<br />
mkdosfs -F 32 /dev/mapper/store-media<br />
mkdir /media/internal/mb<br />
dd if=/dev/mapper/store-root of=/media/internal/mb/root1.img bs=1048576<br />
dd if=/dev/mapper/store-var of=/media/internal/mb/var1.img bs=1048576<br />
</pre></div>Destinalhttp://wiki.webos-internals.org/index.php?title=Last_Resort_Emergency_BootLoader_Recovery&diff=8779Last Resort Emergency BootLoader Recovery2010-01-30T22:28:48Z<p>Destinal: added recovery techniques using installer boot image</p>
<hr />
<div>Typically, any damage to the operating system on the Palm Pre can be recovered by booting into recovery mode.<br />
<br />
One situation which cannot be recovered so easily is the extremely unlikely event of corruption of the installed bootloader ([[bootie]]) stored on the [[Pre's flash disk]].<br />
<br />
If bootie on the flash disk has been damaged or corrupted in such a way that booting into recovery mode is not possible, the Pre is still not "bricked" as the OMAP3430 processor in the Pre provides for a mechanism to boot code from its USB interface.<br />
<br />
First, ensure that the Linux SDK and novacom packages are installed, as you will need to run webOS Doctor as the final step in this process.<br />
Second, ensure that you have a copy of the webOS doctor jar ready.<br />
<br />
Download: [http://markmail.org/download.xqy?id=l4qabusyxcqsslwn&number=1 omap3_usb.tar.bz2] <br />
<br />
Compile on Linux system with "make". Optionally install with "sudo cp omap3_usbload /usr/local/bin"<br />
<br />
Now extract the bootie binary from a WebOS Doctor image:<br />
<br />
mkdir doctor; cd doctor; unzip ../webosdoctorp100eww-wro2-1.1.3.jar; cd resources<br />
mkdir webOS; cd webOS; tar xvf ../webOS.tar; mkdir nova-cust-image-castle.rootfs; cd nova-cust-image-castle.rootfs<br />
tar xvzf ../nova-cust-image-castle.rootfs.tar.gz ./boot/boot.bin; cd boot<br />
<br />
Booting bootie over USB:<br />
<br />
Ensure USB is unplugged from the Pre, and remove the Pre's battery.<br />
<br />
On your Linux system, run:<br />
<br />
sudo omap3_usbload boot.bin<br />
<br />
This should return:<br />
<br />
TI OMAP3 USB boot ROM tool, version 0.1<br />
......<br />
<br />
and a series of dots while it looks for an OMAP3 to send boot code to.<br />
<br />
Now, plug the pre into USB.<br />
<br />
If all works as it should, the usbload program should return:<br />
<br />
found device!<br />
download ok<br />
<br />
And your Pre will now show a USB logo. (this is bootie's "Recovery mode")<br />
<br />
Put the battery back in without unplugging the USB.<br />
<br />
Since you are now in USB recovery mode, you should be able to run the webOS doctor on the host Linux box. Remember that the SDK novacom package must be installed for the webOS Doctor to work in Linux.<br />
<br />
One way to do this is to launch the doctor from the command line like: <br />
<br />
sudo java -jar webosdoctorp100eww-wro2-1.1.3.jar<br />
<br />
And follow the usual steps to recover your pre's operating system from here.<br />
<br />
Alternatively..<br />
<br />
<br />
Another available option now that bootie is running is to send bootie a Linux image over USB and perform some kind of recovery work directly on the pre itself. This is not recommended unless you are very familiar with linux systems administration.<br />
<br />
First you send bootie the boot image of the doctor's installer. This can be extracted from the WebOS Doctor jar.<br />
<br />
novacom boot mem:// < nova-installer-image-castle.uImage<br />
<br />
Wait 15 seconds for the system to boot then connect in to a shell on the running linux system with novaterm. (you will see no on-screen indication that the device is booting linux, only a solid Palm logo)<br />
<br />
novaterm<br />
<br />
You should get a shell prompt<br />
<br />
root@palm-webos-device:/# <br />
<br />
Now find and activate the LVM disk voumes with the following two commands:<br />
<br />
lvm.static vgscan --ignorelockingfailure<br />
lvm.static vgchange -ay --ignorelockingfailure<br />
<br />
Next, mount all disks<br />
<br />
for N in root var media log update; do mkdir /mnt/$N; mount /dev/mapper/store-$N /mnt/$N; done<br />
<br />
When done with whatever you need to do on the system, shutting it down safely is a good idea<br />
<br />
umount -a; tellbootie reboot<br />
<br />
<br />
For a Mac, the process of running USB booting the OMAP may be much simpler.<br />
<br />
The MacOS X version of the SDK provides a pre-built executable /opt/nova/bin/cpuboot and a recovery image. You can simply run<br />
<br />
/opt/nova/bin/cpuboot -o -v -d usb -f /opt/nova/bin/recovery-castle.bin</div>Destinalhttp://wiki.webos-internals.org/index.php?title=PWI_Projects&diff=8741PWI Projects2010-01-28T20:48:39Z<p>Destinal: </p>
<hr />
<div>This is a TODO list of random or esoteric projects that someone might wish to undertake while not in their right mind:<br />
<br />
== Something like KLive for the pre ==<br />
<br />
Apparently it would be cool to have something like the Linux Kernel Live Usage project but for Pre packages, find out who's running what, in a totally anonymous / non-big-brother kind of way. Use a service? <br />
<br />
== CSS Themes == <br />
<br />
Wouldn't it be great if those people who use themes didn't have to overwrite stock images? This would eliminate the "how do I get back to stock theme" issue.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=PWI_Projects&diff=8739PWI Projects2010-01-28T20:40:18Z<p>Destinal: New page: This is a TODO list of random or esoteric projects that someone might wish to undertake while not in their right mind: == CSS Themes == Wouldn't it be great if those people who use them...</p>
<hr />
<div>This is a TODO list of random or esoteric projects that someone might wish to undertake while not in their right mind:<br />
<br />
== CSS Themes == <br />
<br />
Wouldn't it be great if those people who use themes didn't have to overwrite stock images? This would eliminate the "how do I get back to stock theme" issue.</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Application_talk:Terminus&diff=8579Application talk:Terminus2010-01-19T23:27:10Z<p>Destinal: /* Future */</p>
<hr />
<div>==Future==<br />
*Native apps will be sandboxed in future webOS versions. How will this app deal with those restrictions? [[User:Dallashigh|Dallashigh]] 00:58, 19 January 2010 (UTC)<br />
<br />
** Without knowing specifics, I'd guess Palm will probably create a non-root user and have type: game apps run as that user. If so, we'd have to either a) prompt for a user name / password at start and call login as whatever user (could be root) or b) create a shell as the new non-root user, and you could run sudo or su - yourself or c) install the program as suid root. If palm takes some other unanticipated measure (such as chroot shell as well) we'll have to deal with that when we discover what it is. [[User:Destinal|Destinal]] 23:27, 19 January 2010 (UTC)</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Mobilehotspot&diff=8373Mobilehotspot2010-01-14T21:38:27Z<p>Destinal: more format</p>
<hr />
<div>== mobilehotspotd ==<br />
<br />
/usr/bin/mobilehotspotd is a binary service (written in c/c++ probably), introduced in 1.3.5 but undocumented.<br />
<br />
== logs ==<br />
<br />
the hotspot service seems to log to /var/log/mobilehotspotd.log<br />
<br />
== Service calls ==<br />
<br />
Watch out because the program is likely to segfault when passed bad JSON arrays. Luna will return "not running" though a sysinfo will return valid information after a moment (upstart restarts it)<br />
<br />
Methods: sysInfo clientList setDebugLevel interfaceAdd interfaceRemove<br />
<br />
sysInfo<br />
<br />
luna-send -n 1 palm://com.palm.mobilehotspot/sysInfo {}<br />
<br />
** Message: serviceResponse Handling: 2, { "returnValue": true, "sysInfo": { "ifbridge": "bridge12", "IPv4Address": "10.1.1.11", "IPv4Subnet": "255.255.255.0", "IPv4PoolStart": "10.1.1.200", "stateBridge": "CREATED", "stateIPv4": "REMOVED", "stateDHCPServer": "DHCP SERVER STOPPED", "stateBluetoothRadio": "OFF", "interfaces": [ ] } }<br />
<br />
setDebugLevel<br />
<br />
luna-send -n 1 palm://com.palm.mobilehotspot/setDebugLevel '{ "debugLevel": "chatty" }'<br />
<br />
Options for debugLevel seem to be:<br />
<br />
chatty verbose trace info notice warning assert require error critical alert emergency tragic<br />
<br />
interfaceAdd, interfaceRemove<br />
<br />
No idea! We're probably missing very important parameters here.<br />
<br />
luna-send -n 1 palm://com.palm.mobilehotspot/interfaceAdd {}<br />
<br />
luna-send -n 1 palm://com.palm.mobilehotspot/interfaceRemove {}</div>Destinalhttp://wiki.webos-internals.org/index.php?title=Mobilehotspot&diff=8372Mobilehotspot2010-01-14T21:36:14Z<p>Destinal: formatting</p>
<hr />
<div>/usr/bin/mobilehotspotd is a binary service (written in c/c++ probably), introduced in 1.3.5 but undocumented.<br />
<br />
Service calls:<br />
<br />
Watch out because the program is likely to segfault when passed bad JSON arrays. Luna will return "not running" though a sysinfo will return valid information after a moment (upstart restarts it)<br />
<br />
Methods: sysInfo clientList setDebugLevel interfaceAdd interfaceRemove<br />
<br />
sysInfo<br />
<br />
luna-send -n 1 palm://com.palm.mobilehotspot/sysInfo {}<br />
<br />
** Message: serviceResponse Handling: 2, { "returnValue": true, "sysInfo": { "ifbridge": "bridge12", "IPv4Address": "10.1.1.11", "IPv4Subnet": "255.255.255.0", "IPv4PoolStart": "10.1.1.200", "stateBridge": "CREATED", "stateIPv4": "REMOVED", "stateDHCPServer": "DHCP SERVER STOPPED", "stateBluetoothRadio": "OFF", "interfaces": [ ] } }<br />
<br />
setDebugLevel<br />
<br />
luna-send -n 1 palm://com.palm.mobilehotspot/setDebugLevel '{ "debugLevel": "chatty" }'<br />
<br />
Options for debugLevel seem to be:<br />
<br />
chatty verbose trace info notice warning assert require error critical alert emergency tragic<br />
<br />
interfaceAdd, interfaceRemove<br />
<br />
No idea! We're probably missing very important parameters here.<br />
<br />
luna-send -n 1 palm://com.palm.mobilehotspot/interfaceAdd {}<br />
<br />
luna-send -n 1 palm://com.palm.mobilehotspot/interfaceRemove {}</div>Destinal