<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hparsons</id>
	<title>WebOS Internals - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hparsons"/>
	<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/wiki/Special:Contributions/Hparsons"/>
	<updated>2026-04-16T13:24:14Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Next_steps&amp;diff=8536</id>
		<title>Talk:Next steps</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Next_steps&amp;diff=8536"/>
		<updated>2010-01-18T18:52:53Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: /* Palm Pixi Differences? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This script method does not seem to account for accessing SSH via USB instead of EVDO or Wifi. I don't believe it sets up the firewall correctly to allow USB0. --[[user:SagaciousB|SagaciousB]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AND WHERE EXACTLY DO I TYPE THIS INTO?  WHAT PROGRAM, IF IN CMD WINDOW, WHERE? - [[User:Srlake314|Srlake314]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I edited the article to include a link to info re: getting the bash correct: &amp;quot;Only the default shell (/bin/ash) will work for ssh. To change your shell to bash (located in /opt/bin/bash after the install), you will have to [http://www.webos-internals.org/wiki/Setup_Bash create] an /etc/shells file, and add the following lines:&amp;quot; [[User:superduperpre|superduperpre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tring to run optware-bootstrap.sh I never get prompted to enter a username. --[[User:Alansned|alansned]] 18:28, 2 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Uninstallation before update requirements? ==&lt;br /&gt;
&lt;br /&gt;
I do not see how to uninstall.  It appears to me that the Optware instalation should be safe to leave installed as implied by the &amp;quot;we use /opt so as not to be overwritten by an update&amp;quot; statement.  Are the Quilt installation steps mentioned here also safe to leave applied during a WebOS update?  It does sound like patches and tweaks installed by quilt should be removed prior to an update.  If the command `cd / ; quilt applied` found at [[Applying_Patches#Listing_Applied_Patches]] reports that no patches are applied is it safe for an update?&lt;br /&gt;
&lt;br /&gt;
So, If I am correct in my assumptions above then everything found in /opt is safe to leave in place during an update.  But perhaps things outside that folder are not?  For example I've configured dyndns per [http://palmpre-hacks.com/palm-pre-hacks/how-to-ssh-into-your-palm-pre/] which required a new boot script named ''/etc/ppp/ip-up.d/09update-ddns'', would this cause problems.  Similarly per [http://palmpre-hacks.com/palm-pre-hacks/how-to-set-up-google-gps-tracking-on-your-palm-pre/] installing a lighttp service requires the addition of a ''/etc/event.d/optware-lighttpd'' script, would this also cause WebOS update problems?&lt;br /&gt;
&lt;br /&gt;
Thank you for any insights you might have, delaying my 1.2 update till I feel more confident... --[[User:Dolio|Dolio]] 06:49, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: So I did the 1.2.0 update and it appears that everything I described above was fine including the ddns and lighttpd additions which I left in place during the update.  I also performed the 1.2.1 update which initially appeared to be fine, but since then I have been prompted to install the 1.2.1 update multiple times.  At this point I have installed the 1.2.1 update at least 3 times and have finally chosen to ignore it by [[Blocking_Updates]] until I figure out what's going on.  Oddly enough I believe that after the 1.2.0 update I was still able to ssh into my Pre ''(I could be mistaken)'', but I am sure that the 1.2.1 update is overwriting the password file as I have to use the usb console to add my user after each update.  Anyway, that's all neither here not there and I just thought I would let anyone reading this know how things turned out after being spooked by the great [http://forums.precentral.net/palm-pre/205670-palm-profile-login-problems-4.html#post1930274 palm-profile-login-problems] during the initial 1.2.0 update push.  --[[User:Dolio|Dolio]] 22:29, 20 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Changing Package Installation Target folder ==&lt;br /&gt;
&lt;br /&gt;
Is there any way to tell ipkg-opt not to install packages in the application partition? The packages eat up a lot of space there, getting in the way with installing more apps... --[[User:Phil|Phil]] 10:32, 5 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I have not tried this but I suspect you could move the folder to another location and then create a symlink from it's original location.  For example this will make a symlink in your home folder named internal.media '''ln -s /media/internal/ ~/internal.media'''.  It could be dangerous to move things like bin folders because once moved you might find that you can no longer run those commands (Shrugs)... --[[User:Dolio|Dolio]] 11:22, 7 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Palm Pixi Differences? ==&lt;br /&gt;
I've run the script (previously optware-bootstrap.sh and now optware-bootstrap-manual.sh) several times on my Pre after running WebOS Doctor, and it's always worked; however, I've tried running it on my wife's Sprint Pixi, and it did not. I chose the WiFi only option, but I'm suspecting the issue has something to do with that. ==15:01, 18 January 2010) [[User:Hparsons|Hparsons]]&lt;br /&gt;
: Sprint Pixi, (not the verison pixi+)  has no wifi.  [[User:Rboatright|rboatright]] 15:49, 18 January 2010 (UTC)&lt;br /&gt;
:: Sorry, I mistyped. I enabled EVDO only, but still no connectivity.--[[User:Hparsons|Herb]] 18:52, 18 January 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Next_steps&amp;diff=8529</id>
		<title>Talk:Next steps</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Next_steps&amp;diff=8529"/>
		<updated>2010-01-18T15:01:15Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This script method does not seem to account for accessing SSH via USB instead of EVDO or Wifi. I don't believe it sets up the firewall correctly to allow USB0. --[[user:SagaciousB|SagaciousB]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AND WHERE EXACTLY DO I TYPE THIS INTO?  WHAT PROGRAM, IF IN CMD WINDOW, WHERE? - [[User:Srlake314|Srlake314]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I edited the article to include a link to info re: getting the bash correct: &amp;quot;Only the default shell (/bin/ash) will work for ssh. To change your shell to bash (located in /opt/bin/bash after the install), you will have to [http://www.webos-internals.org/wiki/Setup_Bash create] an /etc/shells file, and add the following lines:&amp;quot; [[User:superduperpre|superduperpre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When tring to run optware-bootstrap.sh I never get prompted to enter a username. --[[User:Alansned|alansned]] 18:28, 2 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Uninstallation before update requirements? ==&lt;br /&gt;
&lt;br /&gt;
I do not see how to uninstall.  It appears to me that the Optware instalation should be safe to leave installed as implied by the &amp;quot;we use /opt so as not to be overwritten by an update&amp;quot; statement.  Are the Quilt installation steps mentioned here also safe to leave applied during a WebOS update?  It does sound like patches and tweaks installed by quilt should be removed prior to an update.  If the command `cd / ; quilt applied` found at [[Applying_Patches#Listing_Applied_Patches]] reports that no patches are applied is it safe for an update?&lt;br /&gt;
&lt;br /&gt;
So, If I am correct in my assumptions above then everything found in /opt is safe to leave in place during an update.  But perhaps things outside that folder are not?  For example I've configured dyndns per [http://palmpre-hacks.com/palm-pre-hacks/how-to-ssh-into-your-palm-pre/] which required a new boot script named ''/etc/ppp/ip-up.d/09update-ddns'', would this cause problems.  Similarly per [http://palmpre-hacks.com/palm-pre-hacks/how-to-set-up-google-gps-tracking-on-your-palm-pre/] installing a lighttp service requires the addition of a ''/etc/event.d/optware-lighttpd'' script, would this also cause WebOS update problems?&lt;br /&gt;
&lt;br /&gt;
Thank you for any insights you might have, delaying my 1.2 update till I feel more confident... --[[User:Dolio|Dolio]] 06:49, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: So I did the 1.2.0 update and it appears that everything I described above was fine including the ddns and lighttpd additions which I left in place during the update.  I also performed the 1.2.1 update which initially appeared to be fine, but since then I have been prompted to install the 1.2.1 update multiple times.  At this point I have installed the 1.2.1 update at least 3 times and have finally chosen to ignore it by [[Blocking_Updates]] until I figure out what's going on.  Oddly enough I believe that after the 1.2.0 update I was still able to ssh into my Pre ''(I could be mistaken)'', but I am sure that the 1.2.1 update is overwriting the password file as I have to use the usb console to add my user after each update.  Anyway, that's all neither here not there and I just thought I would let anyone reading this know how things turned out after being spooked by the great [http://forums.precentral.net/palm-pre/205670-palm-profile-login-problems-4.html#post1930274 palm-profile-login-problems] during the initial 1.2.0 update push.  --[[User:Dolio|Dolio]] 22:29, 20 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Changing Package Installation Target folder ==&lt;br /&gt;
&lt;br /&gt;
Is there any way to tell ipkg-opt not to install packages in the application partition? The packages eat up a lot of space there, getting in the way with installing more apps... --[[User:Phil|Phil]] 10:32, 5 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I have not tried this but I suspect you could move the folder to another location and then create a symlink from it's original location.  For example this will make a symlink in your home folder named internal.media '''ln -s /media/internal/ ~/internal.media'''.  It could be dangerous to move things like bin folders because once moved you might find that you can no longer run those commands (Shrugs)... --[[User:Dolio|Dolio]] 11:22, 7 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Palm Pixi Differences? ==&lt;br /&gt;
I've run the script (previously optware-bootstrap.sh and now optware-bootstrap-manual.sh) several times on my Pre after running WebOS Doctor, and it's always worked; however, I've tried running it on my wife's Sprint Pixi, and it did not. I chose the WiFi only option, but I'm suspecting the issue has something to do with that.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Update_1.3.5&amp;diff=7888</id>
		<title>Update 1.3.5</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Update_1.3.5&amp;diff=7888"/>
		<updated>2009-12-30T16:42:31Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Put all information about Update 1.3.5 here, including changes made, current development ideas, etc.&lt;br /&gt;
&lt;br /&gt;
== Disabled ==&lt;br /&gt;
No information at this time&lt;br /&gt;
&lt;br /&gt;
== New Applications ==&lt;br /&gt;
No information at this time&lt;br /&gt;
&lt;br /&gt;
== Feature changes to existing applications ==&lt;br /&gt;
Update 1.3.5 has several add and updated items:&lt;br /&gt;
&lt;br /&gt;
=== App Catalog ===&lt;br /&gt;
* App Catalog significantly improves the application download experience. &lt;br /&gt;
* A user can now download multiple applications simultaneously. &lt;br /&gt;
* Downloads continue in the background if the user moves away from the download screen. &lt;br /&gt;
* A user can manually pause, resume, and cancel downloads. &lt;br /&gt;
* A user can also download all available updates for the user’s downloaded applications with a single tap. &lt;br /&gt;
* App Catalog automatically resumes downloads in cases where a download was paused because it was interrupted—for example, if a user moves out of network coverage and then moves back into coverage. &lt;br /&gt;
* Users can now take advantage of the full storage capacity of the phone for downloading applications. This gives the user more control over how to allocate the phone’s storage space across applications, music, photos, and other media. Downloaded applications are now stored on the phone’s USB drive. &lt;br /&gt;
* App Catalog lists search results based on an improved search algorithm. &lt;br /&gt;
* Locations from which users can purchase paid apps from App Catalog now include U.S. territories. &lt;br /&gt;
&lt;br /&gt;
=== Calendar ===&lt;br /&gt;
* In Day view, switching between days happens more quickly.&lt;br /&gt;
&lt;br /&gt;
=== Date &amp;amp; Time ===&lt;br /&gt;
* When the user has network time zone enabled, a city and country are no longer displayed. &lt;br /&gt;
&lt;br /&gt;
=== Device Info ===&lt;br /&gt;
* A user can perform a full erase by pressing and holding Sym + the orange/Option key + power for 10 seconds. &lt;br /&gt;
&lt;br /&gt;
=== Email ===&lt;br /&gt;
* A user can now edit forwarded text for all email account types. &lt;br /&gt;
* When the user sets up more than one Yahoo! email account, the account names displayed in Account List view include the associated email address so that the user can distinguish them. &lt;br /&gt;
* If an account mailbox is too full to send messages, after the user frees up space in the mailbox on the server, the user can send the messages successfully. &lt;br /&gt;
* The default email signature no longer includes the macron over the “e” in “Pre,” so that the product name shows correctly on a recipient’s phone.&lt;br /&gt;
&lt;br /&gt;
=== Messaging ===&lt;br /&gt;
* If a user deletes a conversation with a contact, new conversations with that contact are now correctly displayed in Conversations view..&lt;br /&gt;
&lt;br /&gt;
=== Screen &amp;amp; Lock ===&lt;br /&gt;
* When the screen is locked, the time displays in a new font.&lt;br /&gt;
&lt;br /&gt;
=== Sprint Navigation ===&lt;br /&gt;
* A user can launch Sprint Navigation from an address in an open contact entry in Contacts. &lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
* Users can now take advantage of the full storage capacity of the phone for downloading applications. This gives the user more control over how to allocate the phone’s storage space across applications, music, photos, and other media. Downloaded applications are now stored on the phone’s USB drive. &lt;br /&gt;
* This update improves battery life in areas of poor wireless network coverage. &lt;br /&gt;
* If the user is working in an application that supports landscape mode (such as Web or Videos), notifications now appear at the bottom of the landscape screen. &lt;br /&gt;
* After a user signs in to an existing Palm profile, applications the user installed from App Catalog are restored in the background. The user can use other features of the phone while the apps are being restored. &lt;br /&gt;
* Swiping to delete a list item that contains a link no longer causes the link to open in the web browser. &lt;br /&gt;
&lt;br /&gt;
=== Updates ===&lt;br /&gt;
* After taking the 1.3.5 update, users can download future updates over a 2G (1xRTT , GPRS , EDGE ) data connection by opening Updates and tapping Download Now. &lt;br /&gt;
&lt;br /&gt;
=== Web ===&lt;br /&gt;
* The web browser now supports the display of animated GIFs. &lt;br /&gt;
* Audio files with a .3g2 extension play correctly as audio files, not video files. &lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* This release includes a security fix to the dev portal. Credit to Kris Siegal for reporting the issue.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
No information at this time&lt;br /&gt;
&lt;br /&gt;
== Package Manifest ==&lt;br /&gt;
Not listed at this time&lt;br /&gt;
&lt;br /&gt;
Feel free to annotate, delete, or move this info elsewhere in the wiki as desired.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Update_1.3.5&amp;diff=7886</id>
		<title>Update 1.3.5</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Update_1.3.5&amp;diff=7886"/>
		<updated>2009-12-30T16:31:49Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Put all information about Update 1.3.5 here, including changes made, current development ideas, etc.&lt;br /&gt;
&lt;br /&gt;
Feel free to annotate, delete, or move this info elsewhere in the wiki as desired.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Update_1.3.5&amp;diff=7885</id>
		<title>Update 1.3.5</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Update_1.3.5&amp;diff=7885"/>
		<updated>2009-12-30T16:31:34Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: New page: Put all information about Update 1.3.1 here, including changes made, current development ideas, etc.  Feel free to annotate, delete, or move this info elsewhere in the wiki as desired.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Put all information about Update 1.3.1 here, including changes made, current development ideas, etc.&lt;br /&gt;
&lt;br /&gt;
Feel free to annotate, delete, or move this info elsewhere in the wiki as desired.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Portal:Patches_to_webOS&amp;diff=7884</id>
		<title>Portal:Patches to webOS</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Portal:Patches_to_webOS&amp;diff=7884"/>
		<updated>2009-12-30T16:29:07Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__notoc__&lt;br /&gt;
{{portal-header&lt;br /&gt;
|If you need info on how to properly update webOS, see [[Portal:Updating webOS Versions|Updating webOS Versions]].&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;nowiki&amp;gt;***THIS PAGE IS OUT OF DATE, PLEASE HELP IN REORGANIZING IT***&amp;lt;/nowiki&amp;gt;'''This page lists patches to webOS existing apps which modify the behavior as shipped.  '''Note''' that these patches may be version specific and may be broken by future webOS updates.  Proceed with caution. If you get one that works please move it under the correct column, alphabetically, and title the page:&lt;br /&gt;
'''&amp;quot;Patch [application] [description]&amp;quot;''' (for application specific patches) &amp;lt;br&amp;gt;&lt;br /&gt;
'''&amp;quot;Patch webOS [description]&amp;quot;''' (for patches not part of a specific application)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each page should contain at least the basic headings&lt;br /&gt;
*1. '''Introduction''': A brief description to introduce people to the patch.&lt;br /&gt;
**1.1 '''Usage''':An explanation if it is needed on how to use the modification see Add/Delete Pages in the Launcher as an example.&lt;br /&gt;
*2. '''Editing Process''': Step by step instructions to manually edit. &lt;br /&gt;
*3. '''Patching Process''': Details for making the edits with a patch file and pointing people to the [[Applying Patches]] page if the patch is also provided in the webos-internals gitorious repository.&lt;br /&gt;
&lt;br /&gt;
For patches that aren't listed here you'll also want to check out the gitorious repository at http://gitorious.org/webos-internals/modifications/trees/master&lt;br /&gt;
&lt;br /&gt;
Please refer to '''[[MIT_Open_Source_License_-_webOS-Patches| MIT Open Source License - webOS-Patches]]''' for important information regarding patches and licensing.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{portal-three-columns&lt;br /&gt;
|column1= &lt;br /&gt;
===webOS Update Information===&lt;br /&gt;
* [[Update 1.3.5|Update 1.3.5]]&lt;br /&gt;
* [[Update 1.3.1|Update 1.3.1]]&lt;br /&gt;
* [[Update 1.2.1|Update 1.2.1]]&lt;br /&gt;
* [[Update 1.2.0|Update 1.2]]&lt;br /&gt;
* [[Update 1.1.0|Update 1.1]]&lt;br /&gt;
* [[Update 1.0.4|Update 1.0.4]] &lt;br /&gt;
* [[Update 1.0.3|Update 1.0.3]]&lt;br /&gt;
&lt;br /&gt;
===Patches that Need Work===&lt;br /&gt;
* [[Bugs]]&lt;br /&gt;
&lt;br /&gt;
|column2=&lt;br /&gt;
===Patch Ideas to be Created or in Progress===&lt;br /&gt;
&lt;br /&gt;
* [[More_Calculator_Functions|Accessing additional built-in calculator functions]]&lt;br /&gt;
* [[Add_Ability_To_Choose_Snooze_Length|Add Ability to Choose Snooze Length]]&lt;br /&gt;
* [[Add_Icon_To_Quick_Launcher|Add an icon to the quick launcher]]&lt;br /&gt;
* [[Changing Clipboard Data From The Shell|Changing Clipboard Data from the Shell]]&lt;br /&gt;
* [[Development_%26_Tweak_Ideas | Development &amp;amp; Tweaking Ideas]]&lt;br /&gt;
* [[Longer Vibrate|Longer Vibrate]]&lt;br /&gt;
* [[Remove/Reduce Drag Radius]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|column3=&lt;br /&gt;
===Notes===&lt;br /&gt;
These modifications lack a patch process, please add one to the details to the page and have it added to the webOS-internals gitorious repository. Info for the repository is on [[Applying Patches]].&lt;br /&gt;
&lt;br /&gt;
*Empty&lt;br /&gt;
}}&lt;br /&gt;
{{portal-three-columns&lt;br /&gt;
|column1= &lt;br /&gt;
==Current Patches==&lt;br /&gt;
===webOS 1.3.1 OK===&lt;br /&gt;
* [[Patch Calendar Notification Repeat|Calendar: Notification Repeat]]&lt;br /&gt;
* [[Patch Calendar Snooze Duration Selection|Calendar: Snooze Duration Selection]]&lt;br /&gt;
* [[Patch Clock Add space between Snooze and Dismiss buttons|Clock: Add space between Snooze and Dismiss buttons]]&lt;br /&gt;
* ++[[Patch Enable LED Notifications|Enable LED Notifications]]&lt;br /&gt;
* ++[[Patch_Email_Change_Default_Font_for_Replies-Forwards_from_Navy_to_Black|Email: Change default font on replies/forwards from dark blue to black]]&lt;br /&gt;
* [[Patch Email DeleteAll|Email: Delete All Read All]]&lt;br /&gt;
* [[Patch Email DeleteFromNotificationBar|Email: Delete from notification bar]]&lt;br /&gt;
* [[Patch Email Notification Repeat|Email: Notification Repeat]]&lt;br /&gt;
* [[Patch Change Carrier String|Change Carrier String]]&lt;br /&gt;
* [[Patch Launcher Wrap Pages|Launcher: Wrap Pages]]&lt;br /&gt;
* [[Patch Launcher Reset Scroll on Page Change|Launcher: Reset Scroll on Page Change]]&lt;br /&gt;
* [[Patch Launcher Reset to First Page|Launcher: Reset to First Page]]&lt;br /&gt;
* [[Patch Launcher Reset to Middle Page|Launcher: Reset to Middle Page]]&lt;br /&gt;
* [[Patch Messaging Notification Repeat|Messaging: Notification Repeat]]&lt;br /&gt;
* [[Patch Phone Notification Repeat|Phone: Notification Repeat]]&lt;br /&gt;
* [[Patch webOS Browser: Show All Bookmarks (Not just first 12)]]&lt;br /&gt;
* [[Patch webOS Roam Control|Roam Control]]&lt;br /&gt;
* [[Patch webOS BypassPINLock]]&lt;br /&gt;
===webOS 1.2.1 OK===&lt;br /&gt;
* ++[[Patch Browser Global Search Addons|Browser: Global Search Addons]]&lt;br /&gt;
* [[Patch Browser Delete Individual History Items|Browser: Delete Individual History Items]]&lt;br /&gt;
* [[Patch Calendar Notification Repeat|Calendar: Notification Repeat]]&lt;br /&gt;
* [[Patch Calendar Snooze Duration Selection|Calendar: Snooze Duration Selection]]&lt;br /&gt;
* [[Patch Clock Add space between Snooze and Dismiss buttons|Clock: Add space between Snooze and Dismiss buttons]]&lt;br /&gt;
* [[Patch Clock Enabling the Hidden Theme|Clock: Enabling the Hidden Theme]]&lt;br /&gt;
* ++[[Patch Clock Change Alarm Button Order|Clock: Change Alarm Button Order]]&lt;br /&gt;
* ++[[Patch Clock Change Alarm Snooze Length|Clock: Change Alarm Snooze Length]]&lt;br /&gt;
* [[Patch Camera Easy Shutter Sound Off|Camera: Easy Shutter Sound Off]] - Called: Sound Toggle - Green (and Grey)&lt;br /&gt;
** also [[Patch Camera Shutter Sound On-Off Button|Camera: Shutter Sound On-Off Button]]&lt;br /&gt;
** also [[Camera Mod Alternate Sound Disable]]&lt;br /&gt;
* [[Patch Camera Using Volume Buttons to Take a Picture|Camera: Using Volume Buttons to Take a Picture]]&lt;br /&gt;
* [[Patch Email Confirm Deletion|Email: Confirm Deletion]]&lt;br /&gt;
* [[Patch Email Change Default Font for Replies-Forwards from Navy to Black|Email: Change Default Font for Replies/Forwards from Navy to Black]]&lt;br /&gt;
* [[Patch Email DeleteAll|Email: Delete All Read All]]&lt;br /&gt;
* [[Patch Email DeleteFromNotificationBar|Email: Delete from notification bar]]&lt;br /&gt;
* [[Patch Email Enable Landscape Viewing|Email: Enable Landscape Viewing]] &lt;br /&gt;
* [[Patch Email Notification Repeat|Email: Notification Repeat]]&lt;br /&gt;
* [[Patch Launcher Add or Delete Pages|Launcher: Add/Delete Pages]]&lt;br /&gt;
* [[Patch Launcher Hide-Delete The NASCAR App|Launcher: Hide/Delete The NASCAR App]]&lt;br /&gt;
* ++[[Patch Launcher Hide Media Sync Option|Launcher: Hide Media Sync Option]]&lt;br /&gt;
* [[Patch Launcher Unhide the DeveloperMode App|Launcher: Unhide the DeveloperMode App]]&lt;br /&gt;
* [[Patch Launcher To Allow More Icons Per Row|Launcher: Allows More Icons Per Row]]&lt;br /&gt;
* [[Patch Launcher Wrap Pages|Launcher: Wrap Pages]]&lt;br /&gt;
* [[Myavatar In Messaging App|Messaging: Avatar In Messaging App]] &lt;br /&gt;
* [[Patch Messaging Character Counter|Messaging: Character Counter]]&lt;br /&gt;
* [[Patch Messaging Display Full Status Messages|Messaging: Display Full Status Messages]]&lt;br /&gt;
* [[Patch Messaging Change &amp;quot;Enter Key&amp;quot; To Create Newline|Messaging: Change &amp;quot;Enter Key&amp;quot; To Create Newline]]&lt;br /&gt;
* [[Patch Messaging Force Offline Send Without Dialog|Messaging: Force Offline Send Without Dialog]]&lt;br /&gt;
* [[Patch Messaging Forward Messages|Messaging: Forward Messages]]&lt;br /&gt;
* [[Patch Messaging Jump Forward, Backward One Word at a Time|Messaging: Jump Forward, Backward One Word at a Time]]&lt;br /&gt;
* [[Patch Messaging Landscape Orientation|Messaging: Landscape Orientation]]&lt;br /&gt;
* [[Patch Messaging New Cards For Each Conversation|Messaging: New Cards For Each Conversation]]&lt;br /&gt;
* [[Patch Messaging Adding Timestamps to All Received Messages|Messaging: Adding Timestamps to All Received Messages]] - Three Options: Builtin, Clean, and Fancy&lt;br /&gt;
* [[Patch Messaging Notification Repeat|Messaging: Notification Repeat]]&lt;br /&gt;
* [[Patch Messaging Sounds|Messaging: Message Sound]] - Called SMS Tone Per Contact&lt;br /&gt;
* ++[[Patch MediaPlayer Ignore 'A', 'An', and 'The' In Artist and Album names|Music Player: Ignore 'A', 'An', and 'The' in Artist and Album Names]]&lt;br /&gt;
* [[Patch PDF Viewer Change Orientation|PDF Viewer: Change Orientation]]&lt;br /&gt;
* [[Patch Phone Show Call Duration in the Call Log|Phone: Show Call Duration in the Call Log]]&lt;br /&gt;
* [[Patch Phone Disable Various Call Sounds|Phone: Disable Various Call Sounds]]&lt;br /&gt;
* [[Patch Phone Notification Repeat|Phone: Notification Repeat]]&lt;br /&gt;
* [[Patch Tasks Always Show Details of New Tasks|Tasks: Always Show Details of New Tasks]]&lt;br /&gt;
* ++[[Patch Youtube Landscape Orientation|Youtube: Landscape Orientation]]&lt;br /&gt;
&lt;br /&gt;
===webOS Patches===&lt;br /&gt;
* [[Patch Enable LED Notifications|Enable LED Notifications]]&lt;br /&gt;
* [[On Screen Keyboard]]&lt;br /&gt;
* [[Patch webOS Brightness|Brightness]]&lt;br /&gt;
* [[Change_the_default_notification.wav_Sound|Change the Default notification.wav Sound]] - use SMS Tone Per Contact&lt;br /&gt;
** Also [[Changes_Alert/Notification_Sounds|Changes Alert/Notification Sounds]]&lt;br /&gt;
* [[Patch webOS Changing the &amp;quot;Turn off after X&amp;quot; time|Changing the &amp;quot;Turn off after X&amp;quot; Time]]&lt;br /&gt;
* [[Patch webOS Disable Charging Event Sounds|Disable Charging Event Sounds]]&lt;br /&gt;
* [[Patch webOS Workaround for Touchstone Charging Event Problem|Workaround for Touchstone Charging Event Problem]]&lt;br /&gt;
* [[Patch webOS Add Words to AutoCorrect Dictionary|Modify AutoCorrect Dictionary]]&lt;br /&gt;
* [[Patch webOS Radio Power Switch|Radio Power Switch]]&lt;br /&gt;
* [[Patch webOS Roam Control|Roam Control]]&lt;br /&gt;
* [[Patch webOS Show Actual Battery Percentage | Show Actual Battery Percentage]]&lt;br /&gt;
* [[Patch webOS Turning Off Dialpad Noise|Turning Off Dialpad Noise]]&lt;br /&gt;
&lt;br /&gt;
|column2=&lt;br /&gt;
&lt;br /&gt;
==Previous Patches==&lt;br /&gt;
===webOS 1.2 OK===&lt;br /&gt;
++ Indicates needs to be added to the git repository. Please help add them and remove the notation when added.&lt;br /&gt;
* ++[[Patch Phone Edit Dialer Theme|Phone: Edit Dialer Theme]]&lt;br /&gt;
* [[Patch MediaPlayer Bookmarking|Music Player: Bookmarking]] only works in 1.2.1 podcast, speech, spoken word, netcast, or audiobook genres&lt;br /&gt;
&lt;br /&gt;
===Fixed in 1.2 - No longer needed===&lt;br /&gt;
* [[Patch Amazon Download Music over EVDO|Amazon: Download Music over EVDO]]&lt;br /&gt;
* [[Patch Browser Downloading Files|Browser: Downloading Files]] &lt;br /&gt;
&lt;br /&gt;
===webOS 1.1 OK===&lt;br /&gt;
* [[Patch Calendar Show All-Day Events in Month View|Calendar: Show All-Day Events in Month View]] &lt;br /&gt;
* ++[[Patch Camera 10 Second Countdown Timer|Camera: 10 Second Countdown Timer]]&lt;br /&gt;
* ++[[Patch Email Change &amp;quot;Running Late&amp;quot; Message|Email: Change &amp;quot;Running Late&amp;quot; Message]]&lt;br /&gt;
* ++[[Patch MCraig Enabling Personals Category|mCraig: Enabling Personals Category]]&lt;br /&gt;
* ++[[Patch Phone Editing the Lock Screen|Phone: Editing the Lock Screen]]&lt;br /&gt;
* ++[[Patch WebOS Bypassing Lock Screen|Unlock: Bypass the Passcode Entry Screen]]&lt;br /&gt;
&lt;br /&gt;
===Fixed in 1.1 - No longer needed===&lt;br /&gt;
* [[Patch Email Fix Broken Formatting|Email: Fix Broken Formatting for E-mails]]&lt;br /&gt;
&lt;br /&gt;
===Not 1.1 compatible===&lt;br /&gt;
* [[Patch Camera Remote View|Camera: Remote View]]&lt;br /&gt;
* [[Patch Email Fix Attachments|Email: Fix Attachments]]&lt;br /&gt;
* [[Patch Sudoku Disable Zooming|Sudoku: Disable Zooming]]&lt;br /&gt;
&lt;br /&gt;
===webOS 1.1 OK===&lt;br /&gt;
++ Indicates needs to be added to the git repository. Please help add them and remove the notation when added.&lt;br /&gt;
* ++[[Patch webOS Boot Themes|Boot Themes]]&lt;br /&gt;
* ++[[Patch webOS Bypassing Activation|Bypassing Activation]]&lt;br /&gt;
* ++[[Patch webOS CPU Frequency or Voltage Scaling|CPU Frequency or Voltage Scaling]]&lt;br /&gt;
* ++[[Patch webOS GPS Tracking|GPS Tracking]]&lt;br /&gt;
* ++[[Patch webOS Graphics|Graphics]]&lt;br /&gt;
* ++[[Patch webOS Hourly Chime|Hourly Chime]] &lt;br /&gt;
* ++[[Patch webOS Keep Phone Awake While in Remote Session|Keep Phone Awake While in Remote Session]]&lt;br /&gt;
* [[Patch webOS Logging Information from Within Scripts|Logging Information from Within Scripts]]&lt;br /&gt;
* [[Patch webOS Modifying a Stock App While Keeping the Original|Modifying a Stock App While Keeping the Original]] &lt;br /&gt;
* ++[[Patch webOS Random Wallpaper Switching|Random Wallpaper Switching]]&lt;br /&gt;
* [[Patch webOS Reverse Tunnel|Reverse Tunnel]] &lt;br /&gt;
* [[Screenlock On When Connected|Stay On While Connected]]&lt;br /&gt;
* [[Make USB Partition Writable via SFTP|Make USB Partition writable via SFTP]]&lt;br /&gt;
&lt;br /&gt;
===Fixed in 1.1 - No longer needed===&lt;br /&gt;
* Empty&lt;br /&gt;
&lt;br /&gt;
===Not 1.1 compatible===&lt;br /&gt;
* [[Patch webOS Email App Patch to Prompt for IPK Installation|Email App Patch to Prompt for IPK Installation]] &lt;br /&gt;
&lt;br /&gt;
|column3=&lt;br /&gt;
==== The following have not been checked for compatibility with webOS 1.1. ====&lt;br /&gt;
* [[Browser_Plugins|Browser Plugins]]&lt;br /&gt;
* [[Photos Slideshow|Photos Slideshow]] &lt;br /&gt;
&lt;br /&gt;
==== The following are deprecated.  They have been replaced with methods which are easier or are moot in 1.1 ====&lt;br /&gt;
&lt;br /&gt;
* [[Installing Homebrew Apps With A Rooted Pre|Installing Homebrew Apps With A Linux Accessed Pre]]  &lt;br /&gt;
* [[Packaging Homebrew Apps for Stock Pre without Rooting|Packaging Homebrew Apps for Stock Pre without Accessing Linux]] &lt;br /&gt;
* [[Modifying Stock Applications|Modifying Stock Applications]] &lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Next_steps&amp;diff=7881</id>
		<title>Next steps</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Next_steps&amp;diff=7881"/>
		<updated>2009-12-30T14:45:47Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{deprecated|&lt;br /&gt;
If all you want to do is install an SFTP server, then just go to the Optware section in [[Preware]] and install it from there.  Then go to the OpenSSH package homepage and read the instructions there to create an SSH key for use when accessing your phone via ssh or sftp.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Automated Setup of Optware, Users and Access=&lt;br /&gt;
The webOS community asks that users who have obtained access to the Linux subsystem install a standard set of software  to ensure everyone has the necessary tools in place to use the resources the community is providing.&lt;br /&gt;
&lt;br /&gt;
In particular, this includes the Optware package manager.  Palm's webOS uses the ''ipkg'' package manager internally.  The community has a version of ''ipkg''  called  ''ipkg-opt'' which accesses the Optware library of over 1300 Linux programs available for installation on the Pre. &lt;br /&gt;
&lt;br /&gt;
Palm has indicated that they have no intention of using the /opt directory, so we direct our installs to /opt/bin rather than /bin to avoid being overwritten  by future Palm software upgrades. &lt;br /&gt;
&lt;br /&gt;
In addition, the standard package  creates a non-root user, installs ''sudo'', and includes a SSH program (''Dropbear'') and SFTP program. &lt;br /&gt;
&lt;br /&gt;
For your convenience, we've packaged all this up into a simple script.&lt;br /&gt;
&lt;br /&gt;
==Optware Setup (Manual)==&lt;br /&gt;
&lt;br /&gt;
===Installing Optware in the Emulator?===&lt;br /&gt;
If you're attempting to install these packages to your emulator, you must first add sufficient space by [[Adding_Disks_to_the_Emulator|enabling a virtual disk]].&lt;br /&gt;
&lt;br /&gt;
After completing the process of obtaining access to your Pre, do the following: &lt;br /&gt;
&lt;br /&gt;
'''Type each line exactly as it appears.  Copying and pasting is probably a good idea.''' &lt;br /&gt;
''' This is confirmed to work with webOS 1.3.1 '''&lt;br /&gt;
''Note to Windows Putty users:  To paste in putty, simply right-click and the program pastes into the terminal whatever you have copied to the clipboard.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://gitorious.org/webos-internals/bootstrap/blobs/raw/master/optware-bootstrap-manual.sh&lt;br /&gt;
 chmod 755 ./optware-bootstrap-manual.sh&lt;br /&gt;
 sh optware-bootstrap-manual.sh&lt;br /&gt;
 source /etc/profile.d/optware&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the on-screen instructions.  &lt;br /&gt;
&lt;br /&gt;
If you want to review the script before you run it, you can look here: &lt;br /&gt;
&lt;br /&gt;
[http://gitorious.org/webos-internals/bootstrap/blobs/master/optware-bootstrap.sh http://gitorious.org/webos-internals/bootstrap/blobs/master/optware-bootstrap.sh]&lt;br /&gt;
&lt;br /&gt;
Note that using the WiFi connection for the above steps is to be highly recommended over the 3G or GSM options, which are reported as sometimes failing. (Turn on aeroplane mode then turn on and connect to WiFi)&lt;br /&gt;
&lt;br /&gt;
As part of this process, you will be creating an unprivileged user account that you can later use to log in to your device.  The username that you pick must be lowercase, longer than 3 characters, contain at least one letter, and may only be letters, numbers, dashes (-), and underscores (_).  Once you enter your username, you will enter a password.  Make sure to pick a strong password for your own security.  If you make a typo when entering your password, don't panic.  Once the script has finished running, simply type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
passwd username&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;username&amp;quot; should, of course, be the username that you created.  This will allow you to re-enter your password correctly.&lt;br /&gt;
&lt;br /&gt;
==Quilt setup==&lt;br /&gt;
&lt;br /&gt;
Optionally, you can then install the ''quilt'' patch manager which allows multiple-file patches.  (Yes, the pun was intentional. Quilt manages multiple patches.)  This installation process has also been packaged into a simple script. It will install quilt, and all of its dependencies, and create a local clone of the WebOS-Internals patch repository. [[Applying_Patches | Applying Patches]] provides a more thorough guide on the use of quilt.&lt;br /&gt;
&lt;br /&gt;
'''Again, type each line exactly as it appears.  Copying and pasting is probably a good idea.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://gitorious.org/webos-internals/bootstrap/blobs/raw/master/quilt-bootstrap.sh&lt;br /&gt;
 sh quilt-bootstrap.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to review the script before you run it, you can look here: &lt;br /&gt;
&lt;br /&gt;
[http://gitorious.org/webos-internals/bootstrap/blobs/master/quilt-bootstrap.sh http://gitorious.org/webos-internals/bootstrap/blobs/master/quilt-bootstrap.sh]&lt;br /&gt;
&lt;br /&gt;
==Finishing==&lt;br /&gt;
&lt;br /&gt;
To finish off, turn Developer Mode back to &amp;quot;Off&amp;quot; (which will reboot your Pre).&lt;br /&gt;
&lt;br /&gt;
Once you are finished, you may SSH into your Pre with an SSH client like [http://www.chiark.greenend.org.uk/~sgtatham/putty/ Putty]:&lt;br /&gt;
*Find your IP address on your Pre with [http://checkmyip.com/ CheckMyIP.com]&lt;br /&gt;
**In many cases, you are in a local network, but checkmyip.com gives you the WAN addess.  Install whatismyip from the homebrew catalog to get your pre's ip address within the local network and use that&lt;br /&gt;
*SSH to that IP address on port 222&lt;br /&gt;
**If you're doing this over EVDO, there may be a lot of latency.  Be patient.&lt;br /&gt;
**You can optionally install [[Avahi]] and SSH to &amp;lt;tt&amp;gt;castle.local.&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[[Tutorials_Linux_DDNS_for_EVDO|Dynamic DNS]] is helpful for consistently accessing the Pre over EVDO with a simple name.&lt;br /&gt;
*Log in with the username and password you created during the Optware installation&lt;br /&gt;
**Many operations cannot be carried out with the permissions of that username.  You'll need to [[Basic_Linux_Use#sudo|sudo]] those operations with the new username's password&lt;br /&gt;
&lt;br /&gt;
Only the default shell (/bin/ash) will work for ssh. To change your shell to bash (which will be located in /opt/bin/bash, once you've completed the quilt install procedure above), you will have to [http://www.webos-internals.org/wiki/Setup_Bash create] an /etc/shells file, and add the following lines:&lt;br /&gt;
&lt;br /&gt;
 /bin/ash&lt;br /&gt;
 /bin/sh&lt;br /&gt;
 /opt/bin/bash&lt;br /&gt;
&lt;br /&gt;
Then you will be able to edit /etc/passwd and change the shell parameter for the user you created. Note that if you try to change your shell without adding an /etc/shells the SSH server (Dropbear) will look like it is rejecting your password on subsequent connections.&lt;br /&gt;
&lt;br /&gt;
=Install Preware=&lt;br /&gt;
To start getting the most out of your new webOS Device you should install Preware. Continue on to the [[Application:Preware|Preware]] page. There you will see all the ways to install Preware on your device. Including stand-alone installers, package installation and an automated script like you did here.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Portal:Accessing_Linux&amp;diff=7879</id>
		<title>Talk:Portal:Accessing Linux</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Portal:Accessing_Linux&amp;diff=7879"/>
		<updated>2009-12-30T14:40:02Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: New section: Installing via Preware&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Accuracy in Terminology =&lt;br /&gt;
If we really are caring about accuracy in terms now, we should be calling this page &amp;quot;Accessing GNU/Linux&amp;quot; [http://www.gnu.org/gnu/linux-and-gnu.html], since it's about getting to the mostly GNU userland. I'm not sure what &amp;quot;accessing (the kernel called) linux&amp;quot; would mean, but I assume it would involve a debugger. This is actually also an important distinction between the Palm Pre and Android/Linux based phones, since the Pre seems pretty &amp;quot;normal&amp;quot; to anyone who has used other GNU/Linux distributions from the command line, whereas the Android userland is pretty completely different, both in license (Apache) and use. If there aren't any objections here by the weekend, I'll take a stab at fixing terminology on this page and other pages that refer to it. -- [[User:Djbclark|djbclark]] 23:39, 20 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Installing via Preware ==&lt;br /&gt;
&lt;br /&gt;
Downloading the optware-bootstrap.sh script (as instructed) no longer works, and references using an automated method from Preware. Can we get some information on how it's installed from Preware?&lt;br /&gt;
--[[User:Hparsons|Herb]] 14:40, 30 December 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Update_1.3.1&amp;diff=7511</id>
		<title>Talk:Update 1.3.1</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Update_1.3.1&amp;diff=7511"/>
		<updated>2009-11-29T06:32:18Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: New page: I've taken the liberty of reformatting this to match previous pages, and to make it more easily read. If the original author takes issue, please change it back. --~~~~&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I've taken the liberty of reformatting this to match previous pages, and to make it more easily read. If the original author takes issue, please change it back.&lt;br /&gt;
--[[User:Hparsons|Herb]] 06:32, 29 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Update_1.3.1&amp;diff=7510</id>
		<title>Update 1.3.1</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Update_1.3.1&amp;diff=7510"/>
		<updated>2009-11-29T06:30:49Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Put all information about Update 1.3.1 here, including changes made, current development ideas, etc.&lt;br /&gt;
&lt;br /&gt;
== Disabled ==&lt;br /&gt;
No information at this time&lt;br /&gt;
&lt;br /&gt;
== New Applications ==&lt;br /&gt;
No new applications were introduced&lt;br /&gt;
&lt;br /&gt;
== Feature changes to existing applications ==&lt;br /&gt;
Update 1.3.1 has several add and updated items:&lt;br /&gt;
&lt;br /&gt;
=== Backup ===&lt;br /&gt;
* Backup now includes browser cookies, so that after a restart, for example, if you stored your username and password on a web-based email site, you can continue to access the site without needing to log in.&lt;br /&gt;
* Backup no longer saves online account passwords. If you perform a partial or full erase or buy a replacement phone, after signing in to your Palm profile, you are prompted to enter the password for each of your online accounts. If you choose to skip this step, to continuing synchronizing this account, you must open an app that syncs with the account (Calendar, Contacts, Email) &amp;gt; application menu &amp;gt; Preferences &amp;amp; Accounts &amp;gt; tap the account name &amp;gt; enter your username and password.&lt;br /&gt;
&lt;br /&gt;
=== Calendar ===&lt;br /&gt;
* Yahoo! now appears as a Calendar synchronization account. You can synchronize Yahoo! calendar events by opening Calendar &amp;gt; application menu &amp;gt; Preferences &amp;amp; Accounts &amp;gt; Add An Account &amp;gt; Yahoo!&lt;br /&gt;
* An event's location now appears with the same formatting in Day view and in the event notification.&lt;br /&gt;
* Calendar notifications no longer reappear after being dismissed.&lt;br /&gt;
* All-day events that span more than one day now appear correctly in all Calendar views.&lt;br /&gt;
* If you create a Google calendar event on the phone and the event location contains an apostrophe, the event now correctly synchronizes with Google online.&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
* After taking a picture, if you tap the picture thumbnail in the lower-left corner of the camera screen, the picture now opens in full-screen view, not Thumbnails view. Making the back gesture returns you to the camera.&lt;br /&gt;
&lt;br /&gt;
=== Contacts ===&lt;br /&gt;
* Yahoo! now appears as a Contacts synchronization account. You can download contacts from Yahoo! online to the phone by opening Contacts &amp;gt; application menu &amp;gt; Preferences &amp;amp; Accounts &amp;gt; Add An Account &amp;gt; Yahoo!&lt;br /&gt;
* Automatic contact linking based on name matches occurs only if the first and last name fields are populated with the same names. If either field is blank, the Contacts app no longer links the contacts. In addition, the Contacts app no longer automatically links contacts with the same name but with different suffixes (such as Jr. and Sr.).&lt;br /&gt;
* Contact phone numbers in an Exchange account display the same label that is used for the number in Outlook.&lt;br /&gt;
* If you set up Contacts to synchronize with a Google account, the account synchronizes only entries in Google's My Contacts, not all contacts.&lt;br /&gt;
* If a contact entry includes a linked Google instant message that contains a special character (such as an apostrophe or ampersand), the special character now displays correctly.&lt;br /&gt;
&lt;br /&gt;
=== Device Info ===&lt;br /&gt;
* If you copy a music file to the phone and then delete it, Device Info now shows the correct amount of available memory after the deletion.&lt;br /&gt;
&lt;br /&gt;
=== Email ===&lt;br /&gt;
* Forwarded and replied-to messages include improved formatting, such as the original sender's email address in forwarded messages and correct inline image display in replies.&lt;br /&gt;
* The list of mail types available in manual setup now includes Google Apps (Hosted Google Domains) and Yahoo! Small Business Domain email accounts. Selecting one of these types automatically enters the correct settings for these accounts.&lt;br /&gt;
* If you have multiple Exchange accounts, doing a Global Address List (GAL) contact lookup searches all the accounts.&lt;br /&gt;
* When you set up more than one email account from the same provider-for example, two Gmail or two Yahoo! accounts-in Account List view, the account names display the associated email address so that you can distinguish them.&lt;br /&gt;
* A new Select All menu item selects message body text so that you can cut or copy it. A new Copy All menu item copies the entire message contents-sender, date, recipient, subject, and body text-so that you can paste it elsewhere. These menu items appear only when a message is open.&lt;br /&gt;
* If you turn the All Inboxes preference off, email notifications now show how many new messages are in each of your email accounts.&lt;br /&gt;
* Performing a message search in the All Flagged folder returns flagged messages only.&lt;br /&gt;
* If an Exchange 2003 implementation requires a password, you can select an alphanumeric (strong) password even if the server does not require a strong password.&lt;br /&gt;
* If an Exchange implementation allows use of a simple PIN (numbers only), the phone supports entry of a PIN that is longer than four characters.&lt;br /&gt;
* If a notification appears for an incoming email message whose subject line contains an ampersand, the ampersand appears correctly in the notification.&lt;br /&gt;
&lt;br /&gt;
=== Messaging ===&lt;br /&gt;
* Yahoo! IM is available as an instant messaging account.&lt;br /&gt;
* You can select a unique ringtone for new message alerts: Open Messaging &amp;gt; application menu &amp;gt; Preferences &amp;amp; Accounts &amp;gt; Sound &amp;gt; Ringtone.&lt;br /&gt;
* You can forward a text or multimedia message by tapping the message &amp;gt; Forward.&lt;br /&gt;
* You can copy the text of a text or multimedia message by tapping the message &amp;gt; Copy Text.&lt;br /&gt;
* If you receive a message from an email address, the sender's name (if in Contacts) or email address (if not) shows up correctly on the new message notification and on the open message in Messaging.&lt;br /&gt;
* If you copy a conversation using the Copy All menu item and then pastes the conversation text, the pasted text now appears correctly as plain text, without any HTML tags.&lt;br /&gt;
* Messaging notifications now show the number of senders and the number of conversations.&lt;br /&gt;
* If you enter a message and start it with a standalone letter-for example, &amp;quot;R&amp;quot; or &amp;quot;r&amp;quot; for &amp;quot;are&amp;quot;-when the auto-correct feature expands the letter to a word, the word is correctly capitalized (&amp;quot;Are&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Music ===&lt;br /&gt;
* While listening to a song with album art displayed, you can tap the screen below the art to display a playback slider. Dragging the slider jumps forward or backward in the song.&lt;br /&gt;
&lt;br /&gt;
=== Phone ===&lt;br /&gt;
* If you are on a call, calendar notifications no longer partially cover the End Call icon.&lt;br /&gt;
&lt;br /&gt;
=== Screen &amp;amp; Lock ===&lt;br /&gt;
* A new Secure Unlock preference allows you to set the time interval the phone is idle before the phone locks, requiring you to enter the PIN/password to unlock the phone. This can be the same as or different from the interval after which the screen turns off. To set the preference: Open Screen &amp;amp; Lock &amp;gt; Lock After.&lt;br /&gt;
* If you select the Simple PIN Secure Unlock option, you can now enter a numeric PIN of more than four digits.&lt;br /&gt;
* If you press power to turn off the screen, the screen locks at the same time. Previously, there was a gap of a few seconds before the screen locked.&lt;br /&gt;
&lt;br /&gt;
=== Sounds &amp;amp; Ringtones ===&lt;br /&gt;
* If you select a new ringtone and throw the card off the screen, the phone saves the new ringtone selection.&lt;br /&gt;
* If you set the Ringer Switch Off setting to Mute and turn the ringer switch off at any time, the ringer is muted and the phone does not vibrate,regardless of any other Sounds &amp;amp; Ringtones settings.&lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
* The application information dialog box (accessed by pressing and holding the orange key/Option and tapping an app icon) displays the total (uncompressed) size of the app, including the amount of storage the app requires. For apps you installed, this number represents the amount of memory you free up on the phone by deleting the app.&lt;br /&gt;
* If you change the apps in Quick Launch, after a backup and partial erase, the new apps still appear in Quick Launch. Previously, Quick Launch reverted to the default apps.&lt;br /&gt;
* You can access USB Drive mode by pressing and holding the orange key/Option + Sym + U after connecting the phone to the computer. This enables you to access USB drive mode if the screen is broken or stops responding to taps.&lt;br /&gt;
* A new option is available for restarting the phone: press and hold power &amp;gt; Power &amp;gt; Restart. The prior restart method (Device Info &amp;gt; Reset Options &amp;gt; Restart) is still available.&lt;br /&gt;
* You have two options for shutting down the phone completely: &lt;br /&gt;
# press and hold power &amp;gt; Power &amp;gt; Shut Down/Swap Battery &amp;gt; Shut Down;&lt;br /&gt;
# open Device Info &amp;gt; Reset Options &amp;gt; Shut Down &amp;gt; Shut Down.&lt;br /&gt;
&lt;br /&gt;
=== Tasks ===&lt;br /&gt;
* If a task notification shows a single task, tapping the notification now opens the details screen for that task, not the task list screen.&lt;br /&gt;
&lt;br /&gt;
=== Videos ===&lt;br /&gt;
* Widescreen videos now display in widescreen mode on the phone by default, instead of being cropped.&lt;br /&gt;
&lt;br /&gt;
=== Web ===&lt;br /&gt;
* Backup now includes browser cookies, so that after a restart, for example, if you stored your username and password on a web-based email site, you can continue to access the site without needing to log in.&lt;br /&gt;
* If you tap to play a YouTube video embedded on a web page, the YouTube application launches and the video plays in the app.&lt;br /&gt;
&lt;br /&gt;
=== YouTube ===&lt;br /&gt;
* Widescreen videos now display in widescreen mode on the phone by default, instead of being cropped.&lt;br /&gt;
* If you tap to play a YouTube video embedded on a web page, the YouTube application launches and the video plays in the app.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
This release addresses several security issues with Palm webOS software.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
No information at this time&lt;br /&gt;
&lt;br /&gt;
== Package Manifest ==&lt;br /&gt;
Not listed at this time&lt;br /&gt;
&lt;br /&gt;
Feel free to annotate, delete, or move this info elsewhere in the wiki as desired.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Update_1.3.1&amp;diff=7509</id>
		<title>Update 1.3.1</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Update_1.3.1&amp;diff=7509"/>
		<updated>2009-11-29T06:29:44Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: Reformatted information to match previous pages, and for easier reading.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Put all information about Update 1.3.1 here, including changes made, current development ideas, etc.&lt;br /&gt;
&lt;br /&gt;
== Disabled ==&lt;br /&gt;
&lt;br /&gt;
== No New Applications ==&lt;br /&gt;
&lt;br /&gt;
== Feature changes to existing applications ==&lt;br /&gt;
Update 1.3.1 has several add and updated items:&lt;br /&gt;
&lt;br /&gt;
=== Backup ===&lt;br /&gt;
* Backup now includes browser cookies, so that after a restart, for example, if you stored your username and password on a web-based email site, you can continue to access the site without needing to log in.&lt;br /&gt;
* Backup no longer saves online account passwords. If you perform a partial or full erase or buy a replacement phone, after signing in to your Palm profile, you are prompted to enter the password for each of your online accounts. If you choose to skip this step, to continuing synchronizing this account, you must open an app that syncs with the account (Calendar, Contacts, Email) &amp;gt; application menu &amp;gt; Preferences &amp;amp; Accounts &amp;gt; tap the account name &amp;gt; enter your username and password.&lt;br /&gt;
&lt;br /&gt;
=== Calendar ===&lt;br /&gt;
* Yahoo! now appears as a Calendar synchronization account. You can synchronize Yahoo! calendar events by opening Calendar &amp;gt; application menu &amp;gt; Preferences &amp;amp; Accounts &amp;gt; Add An Account &amp;gt; Yahoo!&lt;br /&gt;
* An event's location now appears with the same formatting in Day view and in the event notification.&lt;br /&gt;
* Calendar notifications no longer reappear after being dismissed.&lt;br /&gt;
* All-day events that span more than one day now appear correctly in all Calendar views.&lt;br /&gt;
* If you create a Google calendar event on the phone and the event location contains an apostrophe, the event now correctly synchronizes with Google online.&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
* After taking a picture, if you tap the picture thumbnail in the lower-left corner of the camera screen, the picture now opens in full-screen view, not Thumbnails view. Making the back gesture returns you to the camera.&lt;br /&gt;
&lt;br /&gt;
=== Contacts ===&lt;br /&gt;
* Yahoo! now appears as a Contacts synchronization account. You can download contacts from Yahoo! online to the phone by opening Contacts &amp;gt; application menu &amp;gt; Preferences &amp;amp; Accounts &amp;gt; Add An Account &amp;gt; Yahoo!&lt;br /&gt;
* Automatic contact linking based on name matches occurs only if the first and last name fields are populated with the same names. If either field is blank, the Contacts app no longer links the contacts. In addition, the Contacts app no longer automatically links contacts with the same name but with different suffixes (such as Jr. and Sr.).&lt;br /&gt;
* Contact phone numbers in an Exchange account display the same label that is used for the number in Outlook.&lt;br /&gt;
* If you set up Contacts to synchronize with a Google account, the account synchronizes only entries in Google's My Contacts, not all contacts.&lt;br /&gt;
* If a contact entry includes a linked Google instant message that contains a special character (such as an apostrophe or ampersand), the special character now displays correctly.&lt;br /&gt;
&lt;br /&gt;
=== Device Info ===&lt;br /&gt;
* If you copy a music file to the phone and then delete it, Device Info now shows the correct amount of available memory after the deletion.&lt;br /&gt;
&lt;br /&gt;
=== Email ===&lt;br /&gt;
* Forwarded and replied-to messages include improved formatting, such as the original sender's email address in forwarded messages and correct inline image display in replies.&lt;br /&gt;
* The list of mail types available in manual setup now includes Google Apps (Hosted Google Domains) and Yahoo! Small Business Domain email accounts. Selecting one of these types automatically enters the correct settings for these accounts.&lt;br /&gt;
* If you have multiple Exchange accounts, doing a Global Address List (GAL) contact lookup searches all the accounts.&lt;br /&gt;
* When you set up more than one email account from the same provider-for example, two Gmail or two Yahoo! accounts-in Account List view, the account names display the associated email address so that you can distinguish them.&lt;br /&gt;
* A new Select All menu item selects message body text so that you can cut or copy it. A new Copy All menu item copies the entire message contents-sender, date, recipient, subject, and body text-so that you can paste it elsewhere. These menu items appear only when a message is open.&lt;br /&gt;
* If you turn the All Inboxes preference off, email notifications now show how many new messages are in each of your email accounts.&lt;br /&gt;
* Performing a message search in the All Flagged folder returns flagged messages only.&lt;br /&gt;
* If an Exchange 2003 implementation requires a password, you can select an alphanumeric (strong) password even if the server does not require a strong password.&lt;br /&gt;
* If an Exchange implementation allows use of a simple PIN (numbers only), the phone supports entry of a PIN that is longer than four characters.&lt;br /&gt;
* If a notification appears for an incoming email message whose subject line contains an ampersand, the ampersand appears correctly in the notification.&lt;br /&gt;
&lt;br /&gt;
=== Messaging ===&lt;br /&gt;
* Yahoo! IM is available as an instant messaging account.&lt;br /&gt;
* You can select a unique ringtone for new message alerts: Open Messaging &amp;gt; application menu &amp;gt; Preferences &amp;amp; Accounts &amp;gt; Sound &amp;gt; Ringtone.&lt;br /&gt;
* You can forward a text or multimedia message by tapping the message &amp;gt; Forward.&lt;br /&gt;
* You can copy the text of a text or multimedia message by tapping the message &amp;gt; Copy Text.&lt;br /&gt;
* If you receive a message from an email address, the sender's name (if in Contacts) or email address (if not) shows up correctly on the new message notification and on the open message in Messaging.&lt;br /&gt;
* If you copy a conversation using the Copy All menu item and then pastes the conversation text, the pasted text now appears correctly as plain text, without any HTML tags.&lt;br /&gt;
* Messaging notifications now show the number of senders and the number of conversations.&lt;br /&gt;
* If you enter a message and start it with a standalone letter-for example, &amp;quot;R&amp;quot; or &amp;quot;r&amp;quot; for &amp;quot;are&amp;quot;-when the auto-correct feature expands the letter to a word, the word is correctly capitalized (&amp;quot;Are&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Music ===&lt;br /&gt;
* While listening to a song with album art displayed, you can tap the screen below the art to display a playback slider. Dragging the slider jumps forward or backward in the song.&lt;br /&gt;
&lt;br /&gt;
=== Phone ===&lt;br /&gt;
* If you are on a call, calendar notifications no longer partially cover the End Call icon.&lt;br /&gt;
&lt;br /&gt;
=== Screen &amp;amp; Lock ===&lt;br /&gt;
* A new Secure Unlock preference allows you to set the time interval the phone is idle before the phone locks, requiring you to enter the PIN/password to unlock the phone. This can be the same as or different from the interval after which the screen turns off. To set the preference: Open Screen &amp;amp; Lock &amp;gt; Lock After.&lt;br /&gt;
* If you select the Simple PIN Secure Unlock option, you can now enter a numeric PIN of more than four digits.&lt;br /&gt;
* If you press power to turn off the screen, the screen locks at the same time. Previously, there was a gap of a few seconds before the screen locked.&lt;br /&gt;
&lt;br /&gt;
=== Sounds &amp;amp; Ringtones ===&lt;br /&gt;
* If you select a new ringtone and throw the card off the screen, the phone saves the new ringtone selection.&lt;br /&gt;
* If you set the Ringer Switch Off setting to Mute and turn the ringer switch off at any time, the ringer is muted and the phone does not vibrate,regardless of any other Sounds &amp;amp; Ringtones settings.&lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
* The application information dialog box (accessed by pressing and holding the orange key/Option and tapping an app icon) displays the total (uncompressed) size of the app, including the amount of storage the app requires. For apps you installed, this number represents the amount of memory you free up on the phone by deleting the app.&lt;br /&gt;
* If you change the apps in Quick Launch, after a backup and partial erase, the new apps still appear in Quick Launch. Previously, Quick Launch reverted to the default apps.&lt;br /&gt;
* You can access USB Drive mode by pressing and holding the orange key/Option + Sym + U after connecting the phone to the computer. This enables you to access USB drive mode if the screen is broken or stops responding to taps.&lt;br /&gt;
* A new option is available for restarting the phone: press and hold power &amp;gt; Power &amp;gt; Restart. The prior restart method (Device Info &amp;gt; Reset Options &amp;gt; Restart) is still available.&lt;br /&gt;
* You have two options for shutting down the phone completely: &lt;br /&gt;
# press and hold power &amp;gt; Power &amp;gt; Shut Down/Swap Battery &amp;gt; Shut Down;&lt;br /&gt;
# open Device Info &amp;gt; Reset Options &amp;gt; Shut Down &amp;gt; Shut Down.&lt;br /&gt;
&lt;br /&gt;
=== Tasks ===&lt;br /&gt;
* If a task notification shows a single task, tapping the notification now opens the details screen for that task, not the task list screen.&lt;br /&gt;
&lt;br /&gt;
=== Videos ===&lt;br /&gt;
* Widescreen videos now display in widescreen mode on the phone by default, instead of being cropped.&lt;br /&gt;
&lt;br /&gt;
=== Web ===&lt;br /&gt;
* Backup now includes browser cookies, so that after a restart, for example, if you stored your username and password on a web-based email site, you can continue to access the site without needing to log in.&lt;br /&gt;
* If you tap to play a YouTube video embedded on a web page, the YouTube application launches and the video plays in the app.&lt;br /&gt;
&lt;br /&gt;
=== YouTube ===&lt;br /&gt;
* Widescreen videos now display in widescreen mode on the phone by default, instead of being cropped.&lt;br /&gt;
* If you tap to play a YouTube video embedded on a web page, the YouTube application launches and the video plays in the app.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
This release addresses several security issues with Palm webOS software.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
== Package Manifest ==&lt;br /&gt;
&lt;br /&gt;
Feel free to annotate, delete, or move this info elsewhere in the wiki as desired.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6397</id>
		<title>Talk:Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6397"/>
		<updated>2009-10-09T16:19:57Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: /* Confirmed Section */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A call to port this script to a webOS app ==&lt;br /&gt;
&lt;br /&gt;
This is just a proof of concept script, which I didn't intend to mature to this level.  Ideally this would be ported as a standalone webOS app for App Management or included in PreWare and other homebrew app installers.&lt;br /&gt;
&lt;br /&gt;
If you are interested in porting (or applying the basic symbolic link concept), please post your interest here.&lt;br /&gt;
&lt;br /&gt;
--[[User:Xorg|Xorg]] 01:26, 5 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modified the APP variable in the script ==&lt;br /&gt;
&lt;br /&gt;
Modified the script to change&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
to&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=/var/usr/palm/applications/$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm no script writer, and wouldn't normally change someone else's code, but the script did not work as originally written unless you were already in that directory. I tested it with the changes, and it works properly now.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 14:31, 30 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Not sure why it didn't work for you as your change didn't work for me.  Are you using a different shell?  I added a line to force #!/bin/sh and altered the code back with a note about your change.&lt;br /&gt;
&lt;br /&gt;
--[[User:Xorg|Xorg]] 03:12, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
My bad. The way the code was originally formatted, I couldn't cut and paste, and when entering it, I somehow missed the &amp;lt;code&amp;gt;cd $ORG&amp;lt;/code&amp;gt; command. You're right, it should (and does) work in the original format.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 06:01, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Changing app directory to .app  ==&lt;br /&gt;
&lt;br /&gt;
I had noticed that with the 1.2 update, all of the graphics on the USB directory were being scanned as if they were photos. This was pretty much a mess, and hand planned on coming back here to suggest that the &amp;quot;app&amp;quot; directory be changed to &amp;quot;.app&amp;quot; so it would be hidden. I noticed the altered code already had that change, but the original intro did not. Assuming this was the intent, I changed that.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 14:36, 30 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Restructured script to use functions ==&lt;br /&gt;
&lt;br /&gt;
I've restructured the script to use functions.  This allows anyone to post in their own functions and additional features.&lt;br /&gt;
&lt;br /&gt;
--[[User:Xorg|Xorg]] 19:50, 2 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Suggestion for the script ==&lt;br /&gt;
&lt;br /&gt;
Perhaps in preparation for the &amp;quot;unlink&amp;quot; command, the &amp;quot;link&amp;quot; command can also create a full backup of the app (.tgz) which will contain the full permissions and any symbolic links that will be lost when copying the app to  the /media/internal/.apps directory. That way if we find that the app does not run correctly from the linked version on /media/internal/.apps, we can restore it fully to /var with no loss of data.&lt;br /&gt;
&lt;br /&gt;
--[[User:Plee3|plee3]] 21:46, 2 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I just added tar backups.  It's an option that currently is on by default.  You need to change the flag in variable setup to turn off.&lt;br /&gt;
&lt;br /&gt;
--[[User:Xorg|Xorg]] 20:53, 5 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Versioning ==&lt;br /&gt;
&lt;br /&gt;
Possibly could those modifying the script start using some sort of versioning, with the version at the front of the script, with information about what the new version does added to the main article page?&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 00:22, 5 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Added&lt;br /&gt;
&lt;br /&gt;
--[[User:Xorg|Xorg]] 01:17, 5 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== cp -rp? ==&lt;br /&gt;
&lt;br /&gt;
Why do you not use cp -rp to link the app? This would save the permissions needed.&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
^Because /media is a FAT filesystem and permissions will be lost.  I suppose it wouldn't hurt to code -rp though.&lt;br /&gt;
&lt;br /&gt;
== Confirmed Section ==&lt;br /&gt;
&lt;br /&gt;
Added a section for confirmed files, with subsections for confirmed to work, and confirmed not to work. Feel free to delete or change as you see appropriate Xorg.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 16:19, 9 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6396</id>
		<title>Talk:Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6396"/>
		<updated>2009-10-09T16:19:25Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: New section: Confirmed Section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A call to port this script to a webOS app ==&lt;br /&gt;
&lt;br /&gt;
This is just a proof of concept script, which I didn't intend to mature to this level.  Ideally this would be ported as a standalone webOS app for App Management or included in PreWare and other homebrew app installers.&lt;br /&gt;
&lt;br /&gt;
If you are interested in porting (or applying the basic symbolic link concept), please post your interest here.&lt;br /&gt;
&lt;br /&gt;
--[[User:Xorg|Xorg]] 01:26, 5 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modified the APP variable in the script ==&lt;br /&gt;
&lt;br /&gt;
Modified the script to change&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
to&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=/var/usr/palm/applications/$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm no script writer, and wouldn't normally change someone else's code, but the script did not work as originally written unless you were already in that directory. I tested it with the changes, and it works properly now.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 14:31, 30 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Not sure why it didn't work for you as your change didn't work for me.  Are you using a different shell?  I added a line to force #!/bin/sh and altered the code back with a note about your change.&lt;br /&gt;
&lt;br /&gt;
--[[User:Xorg|Xorg]] 03:12, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
My bad. The way the code was originally formatted, I couldn't cut and paste, and when entering it, I somehow missed the &amp;lt;code&amp;gt;cd $ORG&amp;lt;/code&amp;gt; command. You're right, it should (and does) work in the original format.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 06:01, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Changing app directory to .app  ==&lt;br /&gt;
&lt;br /&gt;
I had noticed that with the 1.2 update, all of the graphics on the USB directory were being scanned as if they were photos. This was pretty much a mess, and hand planned on coming back here to suggest that the &amp;quot;app&amp;quot; directory be changed to &amp;quot;.app&amp;quot; so it would be hidden. I noticed the altered code already had that change, but the original intro did not. Assuming this was the intent, I changed that.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 14:36, 30 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Restructured script to use functions ==&lt;br /&gt;
&lt;br /&gt;
I've restructured the script to use functions.  This allows anyone to post in their own functions and additional features.&lt;br /&gt;
&lt;br /&gt;
--[[User:Xorg|Xorg]] 19:50, 2 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Suggestion for the script ==&lt;br /&gt;
&lt;br /&gt;
Perhaps in preparation for the &amp;quot;unlink&amp;quot; command, the &amp;quot;link&amp;quot; command can also create a full backup of the app (.tgz) which will contain the full permissions and any symbolic links that will be lost when copying the app to  the /media/internal/.apps directory. That way if we find that the app does not run correctly from the linked version on /media/internal/.apps, we can restore it fully to /var with no loss of data.&lt;br /&gt;
&lt;br /&gt;
--[[User:Plee3|plee3]] 21:46, 2 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I just added tar backups.  It's an option that currently is on by default.  You need to change the flag in variable setup to turn off.&lt;br /&gt;
&lt;br /&gt;
--[[User:Xorg|Xorg]] 20:53, 5 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Versioning ==&lt;br /&gt;
&lt;br /&gt;
Possibly could those modifying the script start using some sort of versioning, with the version at the front of the script, with information about what the new version does added to the main article page?&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 00:22, 5 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Added&lt;br /&gt;
&lt;br /&gt;
--[[User:Xorg|Xorg]] 01:17, 5 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== cp -rp? ==&lt;br /&gt;
&lt;br /&gt;
Why do you not use cp -rp to link the app? This would save the permissions needed.&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
^Because /media is a FAT filesystem and permissions will be lost.  I suppose it wouldn't hurt to code -rp though.&lt;br /&gt;
&lt;br /&gt;
== Confirmed Section ==&lt;br /&gt;
&lt;br /&gt;
Added a section for confirmed files, with subsections for confirmed to work, and confirmed not to work. Feel free to delete or change appropriate.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6395</id>
		<title>Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6395"/>
		<updated>2009-10-09T16:17:44Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Based on rwhitby's findings that temporarily moving /var/usr/palm/applications will allow installing apps from the App Catalog, here's a permanent way to keep the apps on (much larger) /media/internal by using links. This will permanently save space on /var.&lt;br /&gt;
&lt;br /&gt;
It's unfortunate that Palm has not resolved the issue in the 1.2 update. This is a tactical workaround that could potentially work long term, also saving space on /var, but this needs support by the homebrew community to add in the homebrew installer apps.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
This solution involves creating a (hidden) directory in the /media/internal area, moving selected applications to the newly created directory, and then creating a symbolic link in the /var/usr/palm/applications directory pointing to the new location. This frees up the disk space from the relatively limited /var volume to the larger /media/internal. The included script (which must be created) will move the files and create the appropriate link. It will also provide information on the size of the applications stored in the /var/usr/palm/applications directory.&lt;br /&gt;
&lt;br /&gt;
== Solution (symbolic link method) ==&lt;br /&gt;
&lt;br /&gt;
Create a script to move apps to new home and create link.  You can use an editor or use the following cat command to paste the code, for those not familiar with editors.&lt;br /&gt;
&lt;br /&gt;
Here's how to do it for those comfortable with accessing Linux...&lt;br /&gt;
&lt;br /&gt;
- Enter Linux mode on Pre through a computer (linux commands are in bold)&lt;br /&gt;
&lt;br /&gt;
- Set read/write to allow creating script&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''mount -o remount,rw / '''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- create a script using cat command, paste the code below and then do 'ctrl c' on the keyboard to break out.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''cat &amp;gt;/usr/bin/mvapp''' &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- paste the code below here, press ctrl-c on keyboard to exit after pasting the code.&lt;br /&gt;
&lt;br /&gt;
- when you see a linux prompt, set command to be executable&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt; '''chmod 755 /usr/bin/mvapp''' &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# This code is open for re-use with no restrictions.  xorg&lt;br /&gt;
# This is a working proof of concept script still in development.&lt;br /&gt;
# Intent is for someone to port to a webOS app.&lt;br /&gt;
# Use at your own risk.&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# versions:&lt;br /&gt;
# 0.1.0 - original (xorg)&lt;br /&gt;
# 0.1.1 - added unlink and clean functions (daventx)&lt;br /&gt;
# 0.1.2 - added bulkmv function, allows moving many apps (xorg)&lt;br /&gt;
# 0.1.3 - added option for tar backups (xorg)&lt;br /&gt;
# 0.1.4 - added listmoved function to show apps already moved (xorg)&lt;br /&gt;
# 0.1.5 - added restoreall function, couple cleanup items (xorg)&lt;br /&gt;
# 0.1.6 - fixed to show usage if no appname supplied to link/unlink (xorg)&lt;br /&gt;
# 0.1.7 - added cleanexit (w/mount ro /) &lt;br /&gt;
#       - added exit code documentation for javascripts calling this (xorg)&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# variables: these are globally available to all functions&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
COMMAND=$1&lt;br /&gt;
APP=$2&lt;br /&gt;
MEDIA=/media/internal/.apps&lt;br /&gt;
VAR=/var/usr/palm/applications&lt;br /&gt;
&lt;br /&gt;
# Backup keeps file attributes but uses more /media space. Recommend doing backups.&lt;br /&gt;
BACKUP=1  # set to 1 for tar backups, 0 to disable&lt;br /&gt;
BACKUPDIR=/media/internal/.appbackups&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# exit codes for javascripts:&lt;br /&gt;
# function usage:&lt;br /&gt;
# 1 - normal usage error&lt;br /&gt;
#&lt;br /&gt;
# function cleanapp:&lt;br /&gt;
# 0 - normal exit&lt;br /&gt;
#&lt;br /&gt;
# function linkapp:&lt;br /&gt;
# 10 - app name not supplied&lt;br /&gt;
# 11 - link already exists&lt;br /&gt;
# 12 - app does not exit in VAR&lt;br /&gt;
# 13 - copy failed from VAR to MEDIA&lt;br /&gt;
# 14 - removing app from VAR failed&lt;br /&gt;
#&lt;br /&gt;
# function unlinkapp:&lt;br /&gt;
# 20 - app name not supplied&lt;br /&gt;
# 21 - app doesn't exit on MEDIA&lt;br /&gt;
# 22 - tar restore failed&lt;br /&gt;
# 23 - copy failed&lt;br /&gt;
# 24 - remove failed&lt;br /&gt;
#&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: cleanexit - exit with cleanup items&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
cleanexit () {&lt;br /&gt;
 code=$1&lt;br /&gt;
&lt;br /&gt;
# put / back to read only&lt;br /&gt;
  mount -o remount,ro /&lt;br /&gt;
&lt;br /&gt;
# Uncomment if you want verbose exit codes&lt;br /&gt;
# echo &amp;quot;exit code: $code&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 exit $code&lt;br /&gt;
}&lt;br /&gt;
# end of cleanexit function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: usage - show command usage options&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
usage () {&lt;br /&gt;
   exitcode=$1&lt;br /&gt;
   if [ ! $exitcode ]&lt;br /&gt;
   then&lt;br /&gt;
     exitcode=1  # default exit code for usage, otherwise exit with incode&lt;br /&gt;
   fi&lt;br /&gt;
&lt;br /&gt;
   echo &amp;quot;Usage: mvapp link domain.appname    - move app to media and link&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp unlink domain.appname  - restore app to var, remove link&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp clean domain.appname   - remove app dir and links&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp list                   - list all apps sorted by size&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp bulkmv                 - move/link bulk apps&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp listmoved              - list apps that have been moved&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp restoreall             - restore all apps to original&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  cleanexit $exitcode&lt;br /&gt;
}&lt;br /&gt;
# end of usage function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: cleanapp - removes symbolic links and folder in media and var&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
cleanapp () {&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 # exit to usage if no app name supplied&lt;br /&gt;
 if [ ! $APP ]&lt;br /&gt;
 then&lt;br /&gt;
   usage&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 # Optional&lt;br /&gt;
 echo &amp;quot;This will remove $APP from both $VAR and $MEDIA.&amp;quot;&lt;br /&gt;
 echo &amp;quot;You should first attempt to remove the app using the official Pre methods.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Are you sure you want to remove $APP? [y/N]: &amp;quot;&lt;br /&gt;
 read answer&lt;br /&gt;
 case $answer in&lt;br /&gt;
   [Yy]*) continue;;&lt;br /&gt;
       *) cleanexit 0;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
 if [ -h $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Removing all traces of $APP.&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
   echo &amp;quot;$APP does not exist...&amp;quot;&lt;br /&gt;
   usage 10&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Size of $VAR before cleanup... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
&lt;br /&gt;
 if [ -d $MEDIA/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
     rm -r $MEDIA/$APP&lt;br /&gt;
      echo &amp;quot;Removed directory&amp;quot; $MEDIA/$APP&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -d $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
      rm -r $VAR/$APP&lt;br /&gt;
      echo &amp;quot;Removed directory&amp;quot; $VAR/$APP&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -L $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
      rm -r $VAR/$APP&lt;br /&gt;
      echo &amp;quot;Removed link&amp;quot; $VAR/$APP&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -f $BACKUPDIR/$APP.tgz ]&lt;br /&gt;
 then&lt;br /&gt;
      rm -r $BACKUPDIR/$APP.tgz&lt;br /&gt;
      echo &amp;quot;Removed tar backup&amp;quot; $BACKUPDIR/$APP.tgz&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # rescan luna in case it's needed&lt;br /&gt;
 luna-send -n 1 palm://com.palm.applicationManager/rescan {} &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 echo &amp;quot;$APP directories and links removed.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Size of $VAR after cleanup... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
 cleanexit 0&lt;br /&gt;
}&lt;br /&gt;
# end of cleanup function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: listapps - list the size of each app, sort showing largest last&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
listapps () {&lt;br /&gt;
 du -s $VAR/* | sort -n&lt;br /&gt;
 cleanexit 0&lt;br /&gt;
}&lt;br /&gt;
# end of listapps function&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: listmoved - list apps moved/linked, sort showing largest last&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
listmoved () {&lt;br /&gt;
 du -sk $MEDIA/* | sort -n&lt;br /&gt;
 cleanexit 0&lt;br /&gt;
}&lt;br /&gt;
# end of listmoved function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: linkapp - move the app to media and create symbolic link&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
linkapp () {&lt;br /&gt;
&lt;br /&gt;
 if [ ! $APP ]&lt;br /&gt;
 then&lt;br /&gt;
      echo &amp;quot;No application supplied...&amp;quot;&lt;br /&gt;
      usage 10&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 if [ ! -d $MEDIA ]&lt;br /&gt;
 then&lt;br /&gt;
      mkdir $MEDIA&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 if [ -h $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
      echo &amp;quot;Link already exists for... ${APP}&amp;quot;&lt;br /&gt;
      cleanexit 11&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 if [ -d $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Moving $APP to $MEDIA...&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
   echo &amp;quot;$APP does not exist...&amp;quot;&lt;br /&gt;
   usage 12&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 # Backup using tar if enabled&lt;br /&gt;
 if [ $BACKUP ]&lt;br /&gt;
 then&lt;br /&gt;
   if [ ! -d $BACKUPDIR ]&lt;br /&gt;
   then&lt;br /&gt;
    mkdir $BACKUPDIR&lt;br /&gt;
   fi&lt;br /&gt;
   echo &amp;quot;Backing up $APP to $BACKUPDIR...&amp;quot;&lt;br /&gt;
   tar czf $BACKUPDIR/${APP}.tgz $VAR/$APP&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Size of $VAR before move... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
&lt;br /&gt;
 # move over to USB drive&lt;br /&gt;
 cp -rp  $VAR/$APP $MEDIA&lt;br /&gt;
 if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
  echo &amp;quot;Copy failed. Leaving app in $VAR.&amp;quot;&lt;br /&gt;
  rm -r $MEDIA/$APP&lt;br /&gt;
  cleanexit 13&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 rm -r $VAR/$APP&lt;br /&gt;
 if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
  echo &amp;quot;Remove failed. Leaving app in $VAR.&amp;quot;&lt;br /&gt;
  rm -r $MEDIA/$APP&lt;br /&gt;
  cleanexit 14&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 # create the symbolic link&lt;br /&gt;
 ln -s $MEDIA/$APP $VAR/$APP&lt;br /&gt;
&lt;br /&gt;
 # rescan luna in case it's needed&lt;br /&gt;
 luna-send -n 1 palm://com.palm.applicationManager/rescan {} &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;$APP moved and linked.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Size of $VAR after move... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
}&lt;br /&gt;
# end of linkapp function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: unlinkapp -  restore the app to var and remove symbolic link&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
unlinkapp () {&lt;br /&gt;
&lt;br /&gt;
 if [ ! $APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;No application supplied...&amp;quot;&lt;br /&gt;
   usage 20&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 if [ -d $MEDIA/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Restoring $APP...&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
   echo &amp;quot;$APP does not exist...&amp;quot;&lt;br /&gt;
   usage 21&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Size of $VAR before move... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
&lt;br /&gt;
 # remove the old symbolic link&lt;br /&gt;
 rm -r $VAR/$APP&lt;br /&gt;
&lt;br /&gt;
 # move to original location or restore from tar if it exists&lt;br /&gt;
 if [ -f $BACKUPDIR/$APP.tgz ]&lt;br /&gt;
 then&lt;br /&gt;
  cd /&lt;br /&gt;
  tar xzf $BACKUPDIR/$APP.tgz&lt;br /&gt;
  if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Tar restore failed. Remove and restore app using official webOS/Pre methods.&amp;quot;&lt;br /&gt;
   cleanexit 22&lt;br /&gt;
  else&lt;br /&gt;
   rm -r $BACKUPDIR/$APP.tgz&lt;br /&gt;
  fi&lt;br /&gt;
 else&lt;br /&gt;
  cp -r  $MEDIA/$APP $VAR&lt;br /&gt;
  if [ $? != 0 ]&lt;br /&gt;
  then&lt;br /&gt;
   echo &amp;quot;Copy failed. Leaving app in $MEDIA.&amp;quot;&lt;br /&gt;
   cleanexit 23&lt;br /&gt;
  fi&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 rm -r $MEDIA/$APP&lt;br /&gt;
 if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
  echo &amp;quot;Remove failed. Leaving app in $MEDIA.&amp;quot;&lt;br /&gt;
  rm -r $VAR/$APP&lt;br /&gt;
  cleanexit 24&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 # rescan luna in case it's needed&lt;br /&gt;
 luna-send -n 1 palm://com.palm.applicationManager/rescan {} &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;$APP moved and unlinked.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Size of $VAR after move... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
}&lt;br /&gt;
# end of unlinkapp function&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: bulkvm -  move/link many apps&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
bulkmv() {&lt;br /&gt;
 echo&lt;br /&gt;
 echo&lt;br /&gt;
 echo &amp;quot;This allows moving many apps, asking which you'd like to move.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Starting with the largest apps.&amp;quot;&lt;br /&gt;
 echo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
 cd $VAR&lt;br /&gt;
&lt;br /&gt;
 for i in `du -s * | sort -nr |cut -f 2`&lt;br /&gt;
 do&lt;br /&gt;
    export APP=$i&lt;br /&gt;
    SIZE=`du -sh $APP |cut -f 1`&lt;br /&gt;
    echo &amp;quot;Size of $APP is $SIZE.&amp;quot;&lt;br /&gt;
    echo &amp;quot;Would you like to move and link $APP ? [y/N/q]: &amp;quot;&lt;br /&gt;
    read answer&lt;br /&gt;
    case $answer in&lt;br /&gt;
    [Yy]*) linkapp;;&lt;br /&gt;
    [Qq]*) cleanexit 0;;&lt;br /&gt;
        *) echo &amp;quot;$APP not moved.&amp;quot;&lt;br /&gt;
           continue;;&lt;br /&gt;
    esac&lt;br /&gt;
&lt;br /&gt;
    echo&lt;br /&gt;
 done&lt;br /&gt;
}&lt;br /&gt;
# end of bulkmv function&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: restoreall - restore all apps, back to /var&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
restoreall() {&lt;br /&gt;
  echo &amp;quot;This will restore all applications back to original location&amp;quot;&lt;br /&gt;
  echo &amp;quot;and remove the links.  Are you sure you want to continue? [y/N]:&amp;quot;&lt;br /&gt;
  read answer&lt;br /&gt;
  case $answer in&lt;br /&gt;
    [Yy]*) continue;;&lt;br /&gt;
        *) cleanexit 0;;&lt;br /&gt;
  esac&lt;br /&gt;
&lt;br /&gt;
  ls $MEDIA | while read APP&lt;br /&gt;
  do&lt;br /&gt;
    echo &amp;quot;Restoring $APP and unlinking...&amp;quot;&lt;br /&gt;
    unlinkapp&lt;br /&gt;
  done&lt;br /&gt;
}&lt;br /&gt;
# end of restoreall function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# main - begins here&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
case $COMMAND in&lt;br /&gt;
&amp;quot;clean&amp;quot;)&lt;br /&gt;
   cleanapp&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;list&amp;quot;)&lt;br /&gt;
   listapps&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;listmoved&amp;quot;)&lt;br /&gt;
   listmoved&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;link&amp;quot;)&lt;br /&gt;
   linkapp&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;unlink&amp;quot;)&lt;br /&gt;
   unlinkapp&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;bulkmv&amp;quot;)&lt;br /&gt;
   bulkmv&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;restoreall&amp;quot;)&lt;br /&gt;
   restoreall&lt;br /&gt;
   ;;&lt;br /&gt;
*)&lt;br /&gt;
   usage 0&lt;br /&gt;
   ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
cleanexit 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Be sure to set execute permissions if you missed the step above...&lt;br /&gt;
&amp;lt;code&amp;gt;chmod 755 /usr/bin/mvapp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Precautions ==&lt;br /&gt;
&lt;br /&gt;
So far, no one has reported an app that has issues due to linking.  These are best practices to avoid issues.&lt;br /&gt;
&lt;br /&gt;
- Be selective about what you move.  You may not want to move apps that store important information to you such as password lockers, memo apps, EverNote, Agenda, etc. Games, web content apps and information viewing apps should be safer to move as there is no data at risk.&lt;br /&gt;
&lt;br /&gt;
- Close apps before moving them.  Do not move an app while it is open and running.  I actually tested this and figured some apps would break but none have yet.  It is still not wise to move apps while they are open and running.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
&lt;br /&gt;
'''To find the largest apps in /var/usr/palm/applications'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows the largest apps last... IE....&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
8352 com.apnews.webos&amp;lt;br&amp;gt;&lt;br /&gt;
8512 com.fandango.app.fandango&amp;lt;br&amp;gt;&lt;br /&gt;
8672 com.palm.app.musicplayerremix&amp;lt;br&amp;gt;&lt;br /&gt;
10304 com.shortcovers.palm.pre&amp;lt;br&amp;gt;&lt;br /&gt;
10432 com.fusioncreativestudios.deadman&amp;lt;br&amp;gt;&lt;br /&gt;
10656 com.ulocate.app.where&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To move and link an app to /media'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp link domain.appname&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:  mvapp link com.ulocate.app.where&lt;br /&gt;
&lt;br /&gt;
The app should now work in the new location thanks to the link. Test each app to make sure it works before doing another. Looping the script to do every app in the dir or to link the entire app dir is not recommended. File attributes are lost on the move, which some apps may need. You need to test each app after a move.&lt;br /&gt;
&lt;br /&gt;
Continue moving apps until it reports that /var.../applications is about 25MB or less.&lt;br /&gt;
&lt;br /&gt;
There is an option to turn on/off tar-based backups.  See the BACKUP variable in the script.  If set to 1, it will perform a tar backup.  This takes up more space on /media but if you need to restore, it puts it back with full file attributes.  Recommend keeping this on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To move and link many apps''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp bulkmv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will show largest app first, ask if you want to move/link and then moves on to the next largest app.  If you answer no to an app, it will skip to the next.  Answer 'q' to quit.  Is easiest to use this method directly on a device using the Terminal app.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To revert the move and delete the link'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp unlink domain.appname&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The application will be moved back to the original directory. File attributes are lost on the move if tar backup is turned off, which some apps may need. You need to test each app after a move.  If tar backup is turned on (default - see BACKUP variable in script), file attributes will be restored.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To list apps that have been moved and linked...'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp listmoved&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This shows a list of apps that have been moved and linked to /media.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To restore all moved apps back to original location'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp restoreall&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If backup was turned on, this will restore ALL applications that have been moved/linked, back to the original location in /var with original attributes (using tar).  If backup was not turned on, it will still attempt to move the applications back to /var using the files in /media, but without original file attributes.  This may take several minutes to complete.  It will show each application progress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To cleanup and remove directories and symlinks'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp clean domain.appname&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have any issues, first attempt to remove the app from the App Catalog or Homebrew app installer.  Then issue the 'clean' command to remove the applications directories at both locations and also the symlink.  You can then reinstall the app from the App Catalog or any Homebrew App installer.&lt;br /&gt;
&lt;br /&gt;
== Contingency Plan==&lt;br /&gt;
&lt;br /&gt;
If you have problems with an application, follow these steps...&amp;lt;br&amp;gt;&lt;br /&gt;
-- Close the application if open&amp;lt;br&amp;gt;&lt;br /&gt;
-- mvapp unlink domain.appname&amp;lt;br&amp;gt;&lt;br /&gt;
-- Try using the App&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the application still does now work correctly...&amp;lt;br&amp;gt;&lt;br /&gt;
-- Remove the App using official methods&amp;lt;br&amp;gt;&lt;br /&gt;
-- mvapp clean domain.appname&amp;lt;br&amp;gt;&lt;br /&gt;
-- Reinstall through the App Catalog or Homebrew installer app&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Proposal to Dev Community ==&lt;br /&gt;
&lt;br /&gt;
This is a formal proposal to the Dev Community suggesting that PreWare, WebOS Quick Install and other Pre installer apps provide an option to move any app in /var to the /media fs and create a link similar to the code above.  &lt;br /&gt;
&lt;br /&gt;
The Homebrew Community somewhat created part of the storage problem so needs to come up with their own solution. The symbolic link proponents propose that Homebrew apps be moved with a link to /media/internal by default and physically use /var only if needed (per conditions stated below). The developer would put a flag in the package (or some other method during submission) to state their app is able to run linked to /media or if it specifically needs to physically be on /var.  Will propose additions to Packing Standards to support /media links.  The homebrew installer apps could then automatically do the move/link if the package is flagged for it.&lt;br /&gt;
&lt;br /&gt;
Candidate apps for moving to /media&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that do not depend on file attributes (such as executable bit)&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that do not perform data operations to home app directory when device is USB mounted&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exceptions for maintaining apps on /var&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that depend on file attributes&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that won't work well when device is USB mounted, such as performing data or DB operations in home app directory&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Please update with other known candidates/exceptions)&lt;br /&gt;
&lt;br /&gt;
== Benefits over other methods ==&lt;br /&gt;
&lt;br /&gt;
''Resizing /var''  &amp;lt;br&amp;gt;&lt;br /&gt;
One challenge with resizing /var is that it will still have a fixed static limit - how do you decide how much to increase it? Many will still probably hit the limit or waste space if setting too high.  There is also the warning from Palm that resizing var may interfere with future updates.  The link method allows to dynamically use the /media partition, so there is no need to set a specific size dedicated to apps. If the USB drive is filled, users can decide if they use the space for media or apps on the fly.&lt;br /&gt;
&lt;br /&gt;
''AppPath in /etc/luna.conf'' &amp;lt;br&amp;gt;&lt;br /&gt;
I proposed a while back adding an AppPath to luna.conf to include apps stored on /media.  Some apps would not work because some apparently reference /var.  IE, the vampire/mafia/quest series could not access graphics.  The symbolic link fixed this because apps think they are in /var.&lt;br /&gt;
&lt;br /&gt;
''Link/mount [[all]] of /var/usr/palm/applications/ to /media/internal'' &amp;lt;BR&amp;gt;&lt;br /&gt;
If some apps rely on file attributes this won't work since file attributes are lost when moved to FAT fs.  While this is rare, it probably isn't wise to force all /var apps to /media.  Selectively moving apps one at a time is less risky.  Update:  Have found that &amp;quot;PDF View&amp;quot; app does not allow to be linked, so it appears that selectively moving apps is necessary.&lt;br /&gt;
&lt;br /&gt;
''Creating a loopback filesystem to a virtual file located on /media/internal'' &amp;lt;br&amp;gt;&lt;br /&gt;
This has been worked on [http://www.webos-internals.org/wiki/Tutorials_Linux_opt_on_loopback here] and still has potential.  Unfortunately it locks out USB mount and media sync altogether.  If a workaround can be found with low risk, this may be the most ideal solution.&lt;br /&gt;
&lt;br /&gt;
== Risks, Issues, Dependencies ==&lt;br /&gt;
&lt;br /&gt;
- File attributes of linux fs are not copied over to fat fs.  May not work with apps that rely on file attributes.  In general, javascript apps will likely work fine located on /media.  No one has reported an app (yet) that does not work.&lt;br /&gt;
&lt;br /&gt;
- Some apps may not behave well if USB drive is mounted to computer, though I've tested several that behaved fine. Linux type background services probably would not work well so probably should not be moved.  Apps that do IO to the home directory of the app while USB mounted may have issues when located on /media.&lt;br /&gt;
&lt;br /&gt;
- Jason Robitaille has indicated that a future version of WebOS Quick Install will include a routine to resize the /var partition. He has also indicated that doing so will wipe the /media/internal area, so any applications stored there would need to be backed up first. It might be good to be able to reverse the process of this solution. This could be done either by adding to this &amp;lt;code&amp;gt;mvapp&amp;lt;/code&amp;gt; script, or creating a new one.&lt;br /&gt;
&lt;br /&gt;
== Future Versions ==&lt;br /&gt;
&lt;br /&gt;
Plans for future versions...&lt;br /&gt;
&lt;br /&gt;
- The script will soon be modified to be friendly for javascript calls... no prompting and no output, just result codes.   Will still maintain user interaction capability as well.&lt;br /&gt;
&lt;br /&gt;
== Confirmed Files ==&lt;br /&gt;
=== Files Confirmed to Work ===&lt;br /&gt;
:com.accuweather.palm&lt;br /&gt;
:com.asc.funfactsw&lt;br /&gt;
:com.biocandy.prejeweled&lt;br /&gt;
:com.bitsofgodsoftware.simplebible&lt;br /&gt;
:com.bytesequencing.pre.balls&lt;br /&gt;
:com.bytesequencing.pre.spades&lt;br /&gt;
:com.cakefight.sudoku&lt;br /&gt;
:com.deliciousmorsel.twee&lt;br /&gt;
:com.engineequalscar.games.mines&lt;br /&gt;
:com.fandango.app.fandango&lt;br /&gt;
:com.flixster.app.movies&lt;br /&gt;
:com.friendsflow.friendsflowbeta&lt;br /&gt;
:com.fusioncreativestudios.deadman&lt;br /&gt;
:com.jackintheboxsoftwareinc.app.mobios&lt;br /&gt;
:com.landgrabgames.zilch.lite&lt;br /&gt;
:com.longbeachit.gototoollite&lt;br /&gt;
:com.mediafly.mediafly-pre&lt;br /&gt;
:com.mrjspeed.toppleball&lt;br /&gt;
:com.myappcatalog.cardmessagesbeta&lt;br /&gt;
:com.myappcatalog.guitaristsreference&lt;br /&gt;
:com.myappcatalog.superhangmanbeta&lt;br /&gt;
:com.orbsix.app.magic8ball&lt;br /&gt;
:com.palm.app.agenda&lt;br /&gt;
:com.palm.pandora&lt;br /&gt;
:com.palm.repomanager&lt;br /&gt;
:com.quigley-jones.preopoly&lt;br /&gt;
:com.sachersoft.wordwhirllite&lt;br /&gt;
:com.splashdata.app.mcraig&lt;br /&gt;
:com.stickywhipit.yatz&lt;br /&gt;
:com.tj.solitaire&lt;br /&gt;
:com.wikihow.wikihowapp&lt;br /&gt;
:net.keenstudios.app.checkers&lt;br /&gt;
:ws.junk.blocked&lt;br /&gt;
:ws.junk.dotgame&lt;br /&gt;
&lt;br /&gt;
=== Files Confirmed ''Not'' to Work ===&lt;br /&gt;
:com.palm.app.pdfviewer&lt;br /&gt;
&lt;br /&gt;
== Discuss ==&lt;br /&gt;
Discuss in the Discussion tab or PreCentral...&lt;br /&gt;
&lt;br /&gt;
http://forums.precentral.net/web-os-development/205649-resolution-app-catalog-install-limit-proposal.html&lt;br /&gt;
&lt;br /&gt;
'''Your Experiences'''&lt;br /&gt;
&lt;br /&gt;
Please post your experiences, good or bad.  I'd like to get any kinks worked out before attempting to turn this into a webOS app.&lt;br /&gt;
&lt;br /&gt;
- How many apps did you move? &amp;lt;br&amp;gt;&lt;br /&gt;
- Did you find an app that won't work linked? &amp;lt;br&amp;gt;&lt;br /&gt;
- Did you move any back?  (please test)&amp;lt;br&amp;gt;&lt;br /&gt;
- How far down did you have to get /var.../applications down in MB before you could start adding apps from the App Catalog?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
xorg - initially developed script and proposal.  maintainer of this page.&amp;lt;br&amp;gt;&lt;br /&gt;
daventx - added unlink and clean functions.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6394</id>
		<title>Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6394"/>
		<updated>2009-10-09T16:15:44Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: /* Files Confirmed ''Not'' to Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Based on rwhitby's findings that temporarily moving /var/usr/palm/applications will allow installing apps from the App Catalog, here's a permanent way to keep the apps on (much larger) /media/internal by using links. This will permanently save space on /var.&lt;br /&gt;
&lt;br /&gt;
It's unfortunate that Palm has not resolved the issue in the 1.2 update. This is a tactical workaround that could potentially work long term, also saving space on /var, but this needs support by the homebrew community to add in the homebrew installer apps.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
This solution involves creating a (hidden) directory in the /media/internal area, moving selected applications to the newly created directory, and then creating a symbolic link in the /var/usr/palm/applications directory pointing to the new location. This frees up the disk space from the relatively limited /var volume to the larger /media/internal. The included script (which must be created) will move the files and create the appropriate link. It will also provide information on the size of the applications stored in the /var/usr/palm/applications directory.&lt;br /&gt;
&lt;br /&gt;
== Solution (symbolic link method) ==&lt;br /&gt;
&lt;br /&gt;
Create a script to move apps to new home and create link.  You can use an editor or use the following cat command to paste the code, for those not familiar with editors.&lt;br /&gt;
&lt;br /&gt;
Here's how to do it for those comfortable with accessing Linux...&lt;br /&gt;
&lt;br /&gt;
- Enter Linux mode on Pre through a computer (linux commands are in bold)&lt;br /&gt;
&lt;br /&gt;
- Set read/write to allow creating script&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''mount -o remount,rw / '''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- create a script using cat command, paste the code below and then do 'ctrl c' on the keyboard to break out.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''cat &amp;gt;/usr/bin/mvapp''' &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- paste the code below here, press ctrl-c on keyboard to exit after pasting the code.&lt;br /&gt;
&lt;br /&gt;
- when you see a linux prompt, set command to be executable&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt; '''chmod 755 /usr/bin/mvapp''' &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# This code is open for re-use with no restrictions.  xorg&lt;br /&gt;
# This is a working proof of concept script still in development.&lt;br /&gt;
# Intent is for someone to port to a webOS app.&lt;br /&gt;
# Use at your own risk.&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# versions:&lt;br /&gt;
# 0.1.0 - original (xorg)&lt;br /&gt;
# 0.1.1 - added unlink and clean functions (daventx)&lt;br /&gt;
# 0.1.2 - added bulkmv function, allows moving many apps (xorg)&lt;br /&gt;
# 0.1.3 - added option for tar backups (xorg)&lt;br /&gt;
# 0.1.4 - added listmoved function to show apps already moved (xorg)&lt;br /&gt;
# 0.1.5 - added restoreall function, couple cleanup items (xorg)&lt;br /&gt;
# 0.1.6 - fixed to show usage if no appname supplied to link/unlink (xorg)&lt;br /&gt;
# 0.1.7 - added cleanexit (w/mount ro /) &lt;br /&gt;
#       - added exit code documentation for javascripts calling this (xorg)&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# variables: these are globally available to all functions&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
COMMAND=$1&lt;br /&gt;
APP=$2&lt;br /&gt;
MEDIA=/media/internal/.apps&lt;br /&gt;
VAR=/var/usr/palm/applications&lt;br /&gt;
&lt;br /&gt;
# Backup keeps file attributes but uses more /media space. Recommend doing backups.&lt;br /&gt;
BACKUP=1  # set to 1 for tar backups, 0 to disable&lt;br /&gt;
BACKUPDIR=/media/internal/.appbackups&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# exit codes for javascripts:&lt;br /&gt;
# function usage:&lt;br /&gt;
# 1 - normal usage error&lt;br /&gt;
#&lt;br /&gt;
# function cleanapp:&lt;br /&gt;
# 0 - normal exit&lt;br /&gt;
#&lt;br /&gt;
# function linkapp:&lt;br /&gt;
# 10 - app name not supplied&lt;br /&gt;
# 11 - link already exists&lt;br /&gt;
# 12 - app does not exit in VAR&lt;br /&gt;
# 13 - copy failed from VAR to MEDIA&lt;br /&gt;
# 14 - removing app from VAR failed&lt;br /&gt;
#&lt;br /&gt;
# function unlinkapp:&lt;br /&gt;
# 20 - app name not supplied&lt;br /&gt;
# 21 - app doesn't exit on MEDIA&lt;br /&gt;
# 22 - tar restore failed&lt;br /&gt;
# 23 - copy failed&lt;br /&gt;
# 24 - remove failed&lt;br /&gt;
#&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: cleanexit - exit with cleanup items&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
cleanexit () {&lt;br /&gt;
 code=$1&lt;br /&gt;
&lt;br /&gt;
# put / back to read only&lt;br /&gt;
  mount -o remount,ro /&lt;br /&gt;
&lt;br /&gt;
# Uncomment if you want verbose exit codes&lt;br /&gt;
# echo &amp;quot;exit code: $code&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 exit $code&lt;br /&gt;
}&lt;br /&gt;
# end of cleanexit function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: usage - show command usage options&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
usage () {&lt;br /&gt;
   exitcode=$1&lt;br /&gt;
   if [ ! $exitcode ]&lt;br /&gt;
   then&lt;br /&gt;
     exitcode=1  # default exit code for usage, otherwise exit with incode&lt;br /&gt;
   fi&lt;br /&gt;
&lt;br /&gt;
   echo &amp;quot;Usage: mvapp link domain.appname    - move app to media and link&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp unlink domain.appname  - restore app to var, remove link&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp clean domain.appname   - remove app dir and links&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp list                   - list all apps sorted by size&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp bulkmv                 - move/link bulk apps&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp listmoved              - list apps that have been moved&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp restoreall             - restore all apps to original&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  cleanexit $exitcode&lt;br /&gt;
}&lt;br /&gt;
# end of usage function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: cleanapp - removes symbolic links and folder in media and var&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
cleanapp () {&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 # exit to usage if no app name supplied&lt;br /&gt;
 if [ ! $APP ]&lt;br /&gt;
 then&lt;br /&gt;
   usage&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 # Optional&lt;br /&gt;
 echo &amp;quot;This will remove $APP from both $VAR and $MEDIA.&amp;quot;&lt;br /&gt;
 echo &amp;quot;You should first attempt to remove the app using the official Pre methods.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Are you sure you want to remove $APP? [y/N]: &amp;quot;&lt;br /&gt;
 read answer&lt;br /&gt;
 case $answer in&lt;br /&gt;
   [Yy]*) continue;;&lt;br /&gt;
       *) cleanexit 0;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
 if [ -h $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Removing all traces of $APP.&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
   echo &amp;quot;$APP does not exist...&amp;quot;&lt;br /&gt;
   usage 10&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Size of $VAR before cleanup... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
&lt;br /&gt;
 if [ -d $MEDIA/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
     rm -r $MEDIA/$APP&lt;br /&gt;
      echo &amp;quot;Removed directory&amp;quot; $MEDIA/$APP&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -d $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
      rm -r $VAR/$APP&lt;br /&gt;
      echo &amp;quot;Removed directory&amp;quot; $VAR/$APP&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -L $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
      rm -r $VAR/$APP&lt;br /&gt;
      echo &amp;quot;Removed link&amp;quot; $VAR/$APP&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -f $BACKUPDIR/$APP.tgz ]&lt;br /&gt;
 then&lt;br /&gt;
      rm -r $BACKUPDIR/$APP.tgz&lt;br /&gt;
      echo &amp;quot;Removed tar backup&amp;quot; $BACKUPDIR/$APP.tgz&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # rescan luna in case it's needed&lt;br /&gt;
 luna-send -n 1 palm://com.palm.applicationManager/rescan {} &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 echo &amp;quot;$APP directories and links removed.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Size of $VAR after cleanup... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
 cleanexit 0&lt;br /&gt;
}&lt;br /&gt;
# end of cleanup function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: listapps - list the size of each app, sort showing largest last&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
listapps () {&lt;br /&gt;
 du -s $VAR/* | sort -n&lt;br /&gt;
 cleanexit 0&lt;br /&gt;
}&lt;br /&gt;
# end of listapps function&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: listmoved - list apps moved/linked, sort showing largest last&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
listmoved () {&lt;br /&gt;
 du -sk $MEDIA/* | sort -n&lt;br /&gt;
 cleanexit 0&lt;br /&gt;
}&lt;br /&gt;
# end of listmoved function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: linkapp - move the app to media and create symbolic link&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
linkapp () {&lt;br /&gt;
&lt;br /&gt;
 if [ ! $APP ]&lt;br /&gt;
 then&lt;br /&gt;
      echo &amp;quot;No application supplied...&amp;quot;&lt;br /&gt;
      usage 10&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 if [ ! -d $MEDIA ]&lt;br /&gt;
 then&lt;br /&gt;
      mkdir $MEDIA&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 if [ -h $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
      echo &amp;quot;Link already exists for... ${APP}&amp;quot;&lt;br /&gt;
      cleanexit 11&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 if [ -d $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Moving $APP to $MEDIA...&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
   echo &amp;quot;$APP does not exist...&amp;quot;&lt;br /&gt;
   usage 12&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 # Backup using tar if enabled&lt;br /&gt;
 if [ $BACKUP ]&lt;br /&gt;
 then&lt;br /&gt;
   if [ ! -d $BACKUPDIR ]&lt;br /&gt;
   then&lt;br /&gt;
    mkdir $BACKUPDIR&lt;br /&gt;
   fi&lt;br /&gt;
   echo &amp;quot;Backing up $APP to $BACKUPDIR...&amp;quot;&lt;br /&gt;
   tar czf $BACKUPDIR/${APP}.tgz $VAR/$APP&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Size of $VAR before move... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
&lt;br /&gt;
 # move over to USB drive&lt;br /&gt;
 cp -rp  $VAR/$APP $MEDIA&lt;br /&gt;
 if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
  echo &amp;quot;Copy failed. Leaving app in $VAR.&amp;quot;&lt;br /&gt;
  rm -r $MEDIA/$APP&lt;br /&gt;
  cleanexit 13&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 rm -r $VAR/$APP&lt;br /&gt;
 if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
  echo &amp;quot;Remove failed. Leaving app in $VAR.&amp;quot;&lt;br /&gt;
  rm -r $MEDIA/$APP&lt;br /&gt;
  cleanexit 14&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 # create the symbolic link&lt;br /&gt;
 ln -s $MEDIA/$APP $VAR/$APP&lt;br /&gt;
&lt;br /&gt;
 # rescan luna in case it's needed&lt;br /&gt;
 luna-send -n 1 palm://com.palm.applicationManager/rescan {} &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;$APP moved and linked.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Size of $VAR after move... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
}&lt;br /&gt;
# end of linkapp function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: unlinkapp -  restore the app to var and remove symbolic link&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
unlinkapp () {&lt;br /&gt;
&lt;br /&gt;
 if [ ! $APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;No application supplied...&amp;quot;&lt;br /&gt;
   usage 20&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 if [ -d $MEDIA/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Restoring $APP...&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
   echo &amp;quot;$APP does not exist...&amp;quot;&lt;br /&gt;
   usage 21&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Size of $VAR before move... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
&lt;br /&gt;
 # remove the old symbolic link&lt;br /&gt;
 rm -r $VAR/$APP&lt;br /&gt;
&lt;br /&gt;
 # move to original location or restore from tar if it exists&lt;br /&gt;
 if [ -f $BACKUPDIR/$APP.tgz ]&lt;br /&gt;
 then&lt;br /&gt;
  cd /&lt;br /&gt;
  tar xzf $BACKUPDIR/$APP.tgz&lt;br /&gt;
  if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Tar restore failed. Remove and restore app using official webOS/Pre methods.&amp;quot;&lt;br /&gt;
   cleanexit 22&lt;br /&gt;
  else&lt;br /&gt;
   rm -r $BACKUPDIR/$APP.tgz&lt;br /&gt;
  fi&lt;br /&gt;
 else&lt;br /&gt;
  cp -r  $MEDIA/$APP $VAR&lt;br /&gt;
  if [ $? != 0 ]&lt;br /&gt;
  then&lt;br /&gt;
   echo &amp;quot;Copy failed. Leaving app in $MEDIA.&amp;quot;&lt;br /&gt;
   cleanexit 23&lt;br /&gt;
  fi&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 rm -r $MEDIA/$APP&lt;br /&gt;
 if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
  echo &amp;quot;Remove failed. Leaving app in $MEDIA.&amp;quot;&lt;br /&gt;
  rm -r $VAR/$APP&lt;br /&gt;
  cleanexit 24&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 # rescan luna in case it's needed&lt;br /&gt;
 luna-send -n 1 palm://com.palm.applicationManager/rescan {} &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;$APP moved and unlinked.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Size of $VAR after move... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
}&lt;br /&gt;
# end of unlinkapp function&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: bulkvm -  move/link many apps&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
bulkmv() {&lt;br /&gt;
 echo&lt;br /&gt;
 echo&lt;br /&gt;
 echo &amp;quot;This allows moving many apps, asking which you'd like to move.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Starting with the largest apps.&amp;quot;&lt;br /&gt;
 echo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
 cd $VAR&lt;br /&gt;
&lt;br /&gt;
 for i in `du -s * | sort -nr |cut -f 2`&lt;br /&gt;
 do&lt;br /&gt;
    export APP=$i&lt;br /&gt;
    SIZE=`du -sh $APP |cut -f 1`&lt;br /&gt;
    echo &amp;quot;Size of $APP is $SIZE.&amp;quot;&lt;br /&gt;
    echo &amp;quot;Would you like to move and link $APP ? [y/N/q]: &amp;quot;&lt;br /&gt;
    read answer&lt;br /&gt;
    case $answer in&lt;br /&gt;
    [Yy]*) linkapp;;&lt;br /&gt;
    [Qq]*) cleanexit 0;;&lt;br /&gt;
        *) echo &amp;quot;$APP not moved.&amp;quot;&lt;br /&gt;
           continue;;&lt;br /&gt;
    esac&lt;br /&gt;
&lt;br /&gt;
    echo&lt;br /&gt;
 done&lt;br /&gt;
}&lt;br /&gt;
# end of bulkmv function&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: restoreall - restore all apps, back to /var&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
restoreall() {&lt;br /&gt;
  echo &amp;quot;This will restore all applications back to original location&amp;quot;&lt;br /&gt;
  echo &amp;quot;and remove the links.  Are you sure you want to continue? [y/N]:&amp;quot;&lt;br /&gt;
  read answer&lt;br /&gt;
  case $answer in&lt;br /&gt;
    [Yy]*) continue;;&lt;br /&gt;
        *) cleanexit 0;;&lt;br /&gt;
  esac&lt;br /&gt;
&lt;br /&gt;
  ls $MEDIA | while read APP&lt;br /&gt;
  do&lt;br /&gt;
    echo &amp;quot;Restoring $APP and unlinking...&amp;quot;&lt;br /&gt;
    unlinkapp&lt;br /&gt;
  done&lt;br /&gt;
}&lt;br /&gt;
# end of restoreall function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# main - begins here&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
case $COMMAND in&lt;br /&gt;
&amp;quot;clean&amp;quot;)&lt;br /&gt;
   cleanapp&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;list&amp;quot;)&lt;br /&gt;
   listapps&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;listmoved&amp;quot;)&lt;br /&gt;
   listmoved&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;link&amp;quot;)&lt;br /&gt;
   linkapp&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;unlink&amp;quot;)&lt;br /&gt;
   unlinkapp&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;bulkmv&amp;quot;)&lt;br /&gt;
   bulkmv&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;restoreall&amp;quot;)&lt;br /&gt;
   restoreall&lt;br /&gt;
   ;;&lt;br /&gt;
*)&lt;br /&gt;
   usage 0&lt;br /&gt;
   ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
cleanexit 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Be sure to set execute permissions if you missed the step above...&lt;br /&gt;
&amp;lt;code&amp;gt;chmod 755 /usr/bin/mvapp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Precautions ==&lt;br /&gt;
&lt;br /&gt;
So far, no one has reported an app that has issues due to linking.  These are best practices to avoid issues.&lt;br /&gt;
&lt;br /&gt;
- Be selective about what you move.  You may not want to move apps that store important information to you such as password lockers, memo apps, EverNote, Agenda, etc. Games, web content apps and information viewing apps should be safer to move as there is no data at risk.&lt;br /&gt;
&lt;br /&gt;
- Close apps before moving them.  Do not move an app while it is open and running.  I actually tested this and figured some apps would break but none have yet.  It is still not wise to move apps while they are open and running.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
&lt;br /&gt;
'''To find the largest apps in /var/usr/palm/applications'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows the largest apps last... IE....&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
8352 com.apnews.webos&amp;lt;br&amp;gt;&lt;br /&gt;
8512 com.fandango.app.fandango&amp;lt;br&amp;gt;&lt;br /&gt;
8672 com.palm.app.musicplayerremix&amp;lt;br&amp;gt;&lt;br /&gt;
10304 com.shortcovers.palm.pre&amp;lt;br&amp;gt;&lt;br /&gt;
10432 com.fusioncreativestudios.deadman&amp;lt;br&amp;gt;&lt;br /&gt;
10656 com.ulocate.app.where&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To move and link an app to /media'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp link domain.appname&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:  mvapp link com.ulocate.app.where&lt;br /&gt;
&lt;br /&gt;
The app should now work in the new location thanks to the link. Test each app to make sure it works before doing another. Looping the script to do every app in the dir or to link the entire app dir is not recommended. File attributes are lost on the move, which some apps may need. You need to test each app after a move.&lt;br /&gt;
&lt;br /&gt;
Continue moving apps until it reports that /var.../applications is about 25MB or less.&lt;br /&gt;
&lt;br /&gt;
There is an option to turn on/off tar-based backups.  See the BACKUP variable in the script.  If set to 1, it will perform a tar backup.  This takes up more space on /media but if you need to restore, it puts it back with full file attributes.  Recommend keeping this on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To move and link many apps''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp bulkmv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will show largest app first, ask if you want to move/link and then moves on to the next largest app.  If you answer no to an app, it will skip to the next.  Answer 'q' to quit.  Is easiest to use this method directly on a device using the Terminal app.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To revert the move and delete the link'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp unlink domain.appname&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The application will be moved back to the original directory. File attributes are lost on the move if tar backup is turned off, which some apps may need. You need to test each app after a move.  If tar backup is turned on (default - see BACKUP variable in script), file attributes will be restored.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To list apps that have been moved and linked...'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp listmoved&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This shows a list of apps that have been moved and linked to /media.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To restore all moved apps back to original location'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp restoreall&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If backup was turned on, this will restore ALL applications that have been moved/linked, back to the original location in /var with original attributes (using tar).  If backup was not turned on, it will still attempt to move the applications back to /var using the files in /media, but without original file attributes.  This may take several minutes to complete.  It will show each application progress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To cleanup and remove directories and symlinks'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp clean domain.appname&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have any issues, first attempt to remove the app from the App Catalog or Homebrew app installer.  Then issue the 'clean' command to remove the applications directories at both locations and also the symlink.  You can then reinstall the app from the App Catalog or any Homebrew App installer.&lt;br /&gt;
&lt;br /&gt;
== Contingency Plan==&lt;br /&gt;
&lt;br /&gt;
If you have problems with an application, follow these steps...&amp;lt;br&amp;gt;&lt;br /&gt;
-- Close the application if open&amp;lt;br&amp;gt;&lt;br /&gt;
-- mvapp unlink domain.appname&amp;lt;br&amp;gt;&lt;br /&gt;
-- Try using the App&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the application still does now work correctly...&amp;lt;br&amp;gt;&lt;br /&gt;
-- Remove the App using official methods&amp;lt;br&amp;gt;&lt;br /&gt;
-- mvapp clean domain.appname&amp;lt;br&amp;gt;&lt;br /&gt;
-- Reinstall through the App Catalog or Homebrew installer app&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Proposal to Dev Community ==&lt;br /&gt;
&lt;br /&gt;
This is a formal proposal to the Dev Community suggesting that PreWare, WebOS Quick Install and other Pre installer apps provide an option to move any app in /var to the /media fs and create a link similar to the code above.  &lt;br /&gt;
&lt;br /&gt;
The Homebrew Community somewhat created part of the storage problem so needs to come up with their own solution. The symbolic link proponents propose that Homebrew apps be moved with a link to /media/internal by default and physically use /var only if needed (per conditions stated below). The developer would put a flag in the package (or some other method during submission) to state their app is able to run linked to /media or if it specifically needs to physically be on /var.  Will propose additions to Packing Standards to support /media links.  The homebrew installer apps could then automatically do the move/link if the package is flagged for it.&lt;br /&gt;
&lt;br /&gt;
Candidate apps for moving to /media&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that do not depend on file attributes (such as executable bit)&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that do not perform data operations to home app directory when device is USB mounted&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exceptions for maintaining apps on /var&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that depend on file attributes&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that won't work well when device is USB mounted, such as performing data or DB operations in home app directory&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Please update with other known candidates/exceptions)&lt;br /&gt;
&lt;br /&gt;
== Benefits over other methods ==&lt;br /&gt;
&lt;br /&gt;
''Resizing /var''  &amp;lt;br&amp;gt;&lt;br /&gt;
One challenge with resizing /var is that it will still have a fixed static limit - how do you decide how much to increase it? Many will still probably hit the limit or waste space if setting too high.  There is also the warning from Palm that resizing var may interfere with future updates.  The link method allows to dynamically use the /media partition, so there is no need to set a specific size dedicated to apps. If the USB drive is filled, users can decide if they use the space for media or apps on the fly.&lt;br /&gt;
&lt;br /&gt;
''AppPath in /etc/luna.conf'' &amp;lt;br&amp;gt;&lt;br /&gt;
I proposed a while back adding an AppPath to luna.conf to include apps stored on /media.  Some apps would not work because some apparently reference /var.  IE, the vampire/mafia/quest series could not access graphics.  The symbolic link fixed this because apps think they are in /var.&lt;br /&gt;
&lt;br /&gt;
''Link/mount [[all]] of /var/usr/palm/applications/ to /media/internal'' &amp;lt;BR&amp;gt;&lt;br /&gt;
If some apps rely on file attributes this won't work since file attributes are lost when moved to FAT fs.  While this is rare, it probably isn't wise to force all /var apps to /media.  Selectively moving apps one at a time is less risky.  Update:  Have found that &amp;quot;PDF View&amp;quot; app does not allow to be linked, so it appears that selectively moving apps is necessary.&lt;br /&gt;
&lt;br /&gt;
''Creating a loopback filesystem to a virtual file located on /media/internal'' &amp;lt;br&amp;gt;&lt;br /&gt;
This has been worked on [http://www.webos-internals.org/wiki/Tutorials_Linux_opt_on_loopback here] and still has potential.  Unfortunately it locks out USB mount and media sync altogether.  If a workaround can be found with low risk, this may be the most ideal solution.&lt;br /&gt;
&lt;br /&gt;
== Risks, Issues, Dependencies ==&lt;br /&gt;
&lt;br /&gt;
- File attributes of linux fs are not copied over to fat fs.  May not work with apps that rely on file attributes.  In general, javascript apps will likely work fine located on /media.  No one has reported an app (yet) that does not work.&lt;br /&gt;
&lt;br /&gt;
- Some apps may not behave well if USB drive is mounted to computer, though I've tested several that behaved fine. Linux type background services probably would not work well so probably should not be moved.  Apps that do IO to the home directory of the app while USB mounted may have issues when located on /media.&lt;br /&gt;
&lt;br /&gt;
- Jason Robitaille has indicated that a future version of WebOS Quick Install will include a routine to resize the /var partition. He has also indicated that doing so will wipe the /media/internal area, so any applications stored there would need to be backed up first. It might be good to be able to reverse the process of this solution. This could be done either by adding to this &amp;lt;code&amp;gt;mvapp&amp;lt;/code&amp;gt; script, or creating a new one.&lt;br /&gt;
&lt;br /&gt;
== Future Versions ==&lt;br /&gt;
&lt;br /&gt;
Plans for future versions...&lt;br /&gt;
&lt;br /&gt;
- The script will soon be modified to be friendly for javascript calls... no prompting and no output, just result codes.   Will still maintain user interaction capability as well.&lt;br /&gt;
== Files Confirmed to Work ==&lt;br /&gt;
:com.accuweather.palm&lt;br /&gt;
:com.asc.funfactsw&lt;br /&gt;
:com.biocandy.prejeweled&lt;br /&gt;
:com.bitsofgodsoftware.simplebible&lt;br /&gt;
:com.bytesequencing.pre.balls&lt;br /&gt;
:com.bytesequencing.pre.spades&lt;br /&gt;
:com.cakefight.sudoku&lt;br /&gt;
:com.deliciousmorsel.twee&lt;br /&gt;
:com.engineequalscar.games.mines&lt;br /&gt;
:com.fandango.app.fandango&lt;br /&gt;
:com.flixster.app.movies&lt;br /&gt;
:com.friendsflow.friendsflowbeta&lt;br /&gt;
:com.fusioncreativestudios.deadman&lt;br /&gt;
:com.jackintheboxsoftwareinc.app.mobios&lt;br /&gt;
:com.landgrabgames.zilch.lite&lt;br /&gt;
:com.longbeachit.gototoollite&lt;br /&gt;
:com.mediafly.mediafly-pre&lt;br /&gt;
:com.mrjspeed.toppleball&lt;br /&gt;
:com.myappcatalog.cardmessagesbeta&lt;br /&gt;
:com.myappcatalog.guitaristsreference&lt;br /&gt;
:com.myappcatalog.superhangmanbeta&lt;br /&gt;
:com.orbsix.app.magic8ball&lt;br /&gt;
:com.palm.app.agenda&lt;br /&gt;
:com.palm.pandora&lt;br /&gt;
:com.palm.repomanager&lt;br /&gt;
:com.quigley-jones.preopoly&lt;br /&gt;
:com.sachersoft.wordwhirllite&lt;br /&gt;
:com.splashdata.app.mcraig&lt;br /&gt;
:com.stickywhipit.yatz&lt;br /&gt;
:com.tj.solitaire&lt;br /&gt;
:com.wikihow.wikihowapp&lt;br /&gt;
:net.keenstudios.app.checkers&lt;br /&gt;
:ws.junk.blocked&lt;br /&gt;
:ws.junk.dotgame&lt;br /&gt;
&lt;br /&gt;
== Files Confirmed ''Not'' to Work ==&lt;br /&gt;
:com.palm.app.pdfviewer&lt;br /&gt;
&lt;br /&gt;
== Discuss ==&lt;br /&gt;
Discuss in the Discussion tab or PreCentral...&lt;br /&gt;
&lt;br /&gt;
http://forums.precentral.net/web-os-development/205649-resolution-app-catalog-install-limit-proposal.html&lt;br /&gt;
&lt;br /&gt;
'''Your Experiences'''&lt;br /&gt;
&lt;br /&gt;
Please post your experiences, good or bad.  I'd like to get any kinks worked out before attempting to turn this into a webOS app.&lt;br /&gt;
&lt;br /&gt;
- How many apps did you move? &amp;lt;br&amp;gt;&lt;br /&gt;
- Did you find an app that won't work linked? &amp;lt;br&amp;gt;&lt;br /&gt;
- Did you move any back?  (please test)&amp;lt;br&amp;gt;&lt;br /&gt;
- How far down did you have to get /var.../applications down in MB before you could start adding apps from the App Catalog?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
xorg - initially developed script and proposal.  maintainer of this page.&amp;lt;br&amp;gt;&lt;br /&gt;
daventx - added unlink and clean functions.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6393</id>
		<title>Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6393"/>
		<updated>2009-10-09T16:15:01Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Based on rwhitby's findings that temporarily moving /var/usr/palm/applications will allow installing apps from the App Catalog, here's a permanent way to keep the apps on (much larger) /media/internal by using links. This will permanently save space on /var.&lt;br /&gt;
&lt;br /&gt;
It's unfortunate that Palm has not resolved the issue in the 1.2 update. This is a tactical workaround that could potentially work long term, also saving space on /var, but this needs support by the homebrew community to add in the homebrew installer apps.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
This solution involves creating a (hidden) directory in the /media/internal area, moving selected applications to the newly created directory, and then creating a symbolic link in the /var/usr/palm/applications directory pointing to the new location. This frees up the disk space from the relatively limited /var volume to the larger /media/internal. The included script (which must be created) will move the files and create the appropriate link. It will also provide information on the size of the applications stored in the /var/usr/palm/applications directory.&lt;br /&gt;
&lt;br /&gt;
== Solution (symbolic link method) ==&lt;br /&gt;
&lt;br /&gt;
Create a script to move apps to new home and create link.  You can use an editor or use the following cat command to paste the code, for those not familiar with editors.&lt;br /&gt;
&lt;br /&gt;
Here's how to do it for those comfortable with accessing Linux...&lt;br /&gt;
&lt;br /&gt;
- Enter Linux mode on Pre through a computer (linux commands are in bold)&lt;br /&gt;
&lt;br /&gt;
- Set read/write to allow creating script&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''mount -o remount,rw / '''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- create a script using cat command, paste the code below and then do 'ctrl c' on the keyboard to break out.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''cat &amp;gt;/usr/bin/mvapp''' &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- paste the code below here, press ctrl-c on keyboard to exit after pasting the code.&lt;br /&gt;
&lt;br /&gt;
- when you see a linux prompt, set command to be executable&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt; '''chmod 755 /usr/bin/mvapp''' &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# This code is open for re-use with no restrictions.  xorg&lt;br /&gt;
# This is a working proof of concept script still in development.&lt;br /&gt;
# Intent is for someone to port to a webOS app.&lt;br /&gt;
# Use at your own risk.&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# versions:&lt;br /&gt;
# 0.1.0 - original (xorg)&lt;br /&gt;
# 0.1.1 - added unlink and clean functions (daventx)&lt;br /&gt;
# 0.1.2 - added bulkmv function, allows moving many apps (xorg)&lt;br /&gt;
# 0.1.3 - added option for tar backups (xorg)&lt;br /&gt;
# 0.1.4 - added listmoved function to show apps already moved (xorg)&lt;br /&gt;
# 0.1.5 - added restoreall function, couple cleanup items (xorg)&lt;br /&gt;
# 0.1.6 - fixed to show usage if no appname supplied to link/unlink (xorg)&lt;br /&gt;
# 0.1.7 - added cleanexit (w/mount ro /) &lt;br /&gt;
#       - added exit code documentation for javascripts calling this (xorg)&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# variables: these are globally available to all functions&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
COMMAND=$1&lt;br /&gt;
APP=$2&lt;br /&gt;
MEDIA=/media/internal/.apps&lt;br /&gt;
VAR=/var/usr/palm/applications&lt;br /&gt;
&lt;br /&gt;
# Backup keeps file attributes but uses more /media space. Recommend doing backups.&lt;br /&gt;
BACKUP=1  # set to 1 for tar backups, 0 to disable&lt;br /&gt;
BACKUPDIR=/media/internal/.appbackups&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# exit codes for javascripts:&lt;br /&gt;
# function usage:&lt;br /&gt;
# 1 - normal usage error&lt;br /&gt;
#&lt;br /&gt;
# function cleanapp:&lt;br /&gt;
# 0 - normal exit&lt;br /&gt;
#&lt;br /&gt;
# function linkapp:&lt;br /&gt;
# 10 - app name not supplied&lt;br /&gt;
# 11 - link already exists&lt;br /&gt;
# 12 - app does not exit in VAR&lt;br /&gt;
# 13 - copy failed from VAR to MEDIA&lt;br /&gt;
# 14 - removing app from VAR failed&lt;br /&gt;
#&lt;br /&gt;
# function unlinkapp:&lt;br /&gt;
# 20 - app name not supplied&lt;br /&gt;
# 21 - app doesn't exit on MEDIA&lt;br /&gt;
# 22 - tar restore failed&lt;br /&gt;
# 23 - copy failed&lt;br /&gt;
# 24 - remove failed&lt;br /&gt;
#&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: cleanexit - exit with cleanup items&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
cleanexit () {&lt;br /&gt;
 code=$1&lt;br /&gt;
&lt;br /&gt;
# put / back to read only&lt;br /&gt;
  mount -o remount,ro /&lt;br /&gt;
&lt;br /&gt;
# Uncomment if you want verbose exit codes&lt;br /&gt;
# echo &amp;quot;exit code: $code&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 exit $code&lt;br /&gt;
}&lt;br /&gt;
# end of cleanexit function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: usage - show command usage options&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
usage () {&lt;br /&gt;
   exitcode=$1&lt;br /&gt;
   if [ ! $exitcode ]&lt;br /&gt;
   then&lt;br /&gt;
     exitcode=1  # default exit code for usage, otherwise exit with incode&lt;br /&gt;
   fi&lt;br /&gt;
&lt;br /&gt;
   echo &amp;quot;Usage: mvapp link domain.appname    - move app to media and link&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp unlink domain.appname  - restore app to var, remove link&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp clean domain.appname   - remove app dir and links&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp list                   - list all apps sorted by size&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp bulkmv                 - move/link bulk apps&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp listmoved              - list apps that have been moved&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp restoreall             - restore all apps to original&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  cleanexit $exitcode&lt;br /&gt;
}&lt;br /&gt;
# end of usage function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: cleanapp - removes symbolic links and folder in media and var&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
cleanapp () {&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 # exit to usage if no app name supplied&lt;br /&gt;
 if [ ! $APP ]&lt;br /&gt;
 then&lt;br /&gt;
   usage&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 # Optional&lt;br /&gt;
 echo &amp;quot;This will remove $APP from both $VAR and $MEDIA.&amp;quot;&lt;br /&gt;
 echo &amp;quot;You should first attempt to remove the app using the official Pre methods.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Are you sure you want to remove $APP? [y/N]: &amp;quot;&lt;br /&gt;
 read answer&lt;br /&gt;
 case $answer in&lt;br /&gt;
   [Yy]*) continue;;&lt;br /&gt;
       *) cleanexit 0;;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
 if [ -h $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Removing all traces of $APP.&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
   echo &amp;quot;$APP does not exist...&amp;quot;&lt;br /&gt;
   usage 10&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Size of $VAR before cleanup... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
&lt;br /&gt;
 if [ -d $MEDIA/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
     rm -r $MEDIA/$APP&lt;br /&gt;
      echo &amp;quot;Removed directory&amp;quot; $MEDIA/$APP&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -d $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
      rm -r $VAR/$APP&lt;br /&gt;
      echo &amp;quot;Removed directory&amp;quot; $VAR/$APP&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -L $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
      rm -r $VAR/$APP&lt;br /&gt;
      echo &amp;quot;Removed link&amp;quot; $VAR/$APP&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -f $BACKUPDIR/$APP.tgz ]&lt;br /&gt;
 then&lt;br /&gt;
      rm -r $BACKUPDIR/$APP.tgz&lt;br /&gt;
      echo &amp;quot;Removed tar backup&amp;quot; $BACKUPDIR/$APP.tgz&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # rescan luna in case it's needed&lt;br /&gt;
 luna-send -n 1 palm://com.palm.applicationManager/rescan {} &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 echo &amp;quot;$APP directories and links removed.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Size of $VAR after cleanup... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
 cleanexit 0&lt;br /&gt;
}&lt;br /&gt;
# end of cleanup function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: listapps - list the size of each app, sort showing largest last&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
listapps () {&lt;br /&gt;
 du -s $VAR/* | sort -n&lt;br /&gt;
 cleanexit 0&lt;br /&gt;
}&lt;br /&gt;
# end of listapps function&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: listmoved - list apps moved/linked, sort showing largest last&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
listmoved () {&lt;br /&gt;
 du -sk $MEDIA/* | sort -n&lt;br /&gt;
 cleanexit 0&lt;br /&gt;
}&lt;br /&gt;
# end of listmoved function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: linkapp - move the app to media and create symbolic link&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
linkapp () {&lt;br /&gt;
&lt;br /&gt;
 if [ ! $APP ]&lt;br /&gt;
 then&lt;br /&gt;
      echo &amp;quot;No application supplied...&amp;quot;&lt;br /&gt;
      usage 10&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 if [ ! -d $MEDIA ]&lt;br /&gt;
 then&lt;br /&gt;
      mkdir $MEDIA&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 if [ -h $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
      echo &amp;quot;Link already exists for... ${APP}&amp;quot;&lt;br /&gt;
      cleanexit 11&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 if [ -d $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Moving $APP to $MEDIA...&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
   echo &amp;quot;$APP does not exist...&amp;quot;&lt;br /&gt;
   usage 12&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 # Backup using tar if enabled&lt;br /&gt;
 if [ $BACKUP ]&lt;br /&gt;
 then&lt;br /&gt;
   if [ ! -d $BACKUPDIR ]&lt;br /&gt;
   then&lt;br /&gt;
    mkdir $BACKUPDIR&lt;br /&gt;
   fi&lt;br /&gt;
   echo &amp;quot;Backing up $APP to $BACKUPDIR...&amp;quot;&lt;br /&gt;
   tar czf $BACKUPDIR/${APP}.tgz $VAR/$APP&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Size of $VAR before move... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
&lt;br /&gt;
 # move over to USB drive&lt;br /&gt;
 cp -rp  $VAR/$APP $MEDIA&lt;br /&gt;
 if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
  echo &amp;quot;Copy failed. Leaving app in $VAR.&amp;quot;&lt;br /&gt;
  rm -r $MEDIA/$APP&lt;br /&gt;
  cleanexit 13&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 rm -r $VAR/$APP&lt;br /&gt;
 if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
  echo &amp;quot;Remove failed. Leaving app in $VAR.&amp;quot;&lt;br /&gt;
  rm -r $MEDIA/$APP&lt;br /&gt;
  cleanexit 14&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 # create the symbolic link&lt;br /&gt;
 ln -s $MEDIA/$APP $VAR/$APP&lt;br /&gt;
&lt;br /&gt;
 # rescan luna in case it's needed&lt;br /&gt;
 luna-send -n 1 palm://com.palm.applicationManager/rescan {} &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;$APP moved and linked.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Size of $VAR after move... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
}&lt;br /&gt;
# end of linkapp function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: unlinkapp -  restore the app to var and remove symbolic link&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
unlinkapp () {&lt;br /&gt;
&lt;br /&gt;
 if [ ! $APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;No application supplied...&amp;quot;&lt;br /&gt;
   usage 20&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 if [ -d $MEDIA/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Restoring $APP...&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
   echo &amp;quot;$APP does not exist...&amp;quot;&lt;br /&gt;
   usage 21&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Size of $VAR before move... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
&lt;br /&gt;
 # remove the old symbolic link&lt;br /&gt;
 rm -r $VAR/$APP&lt;br /&gt;
&lt;br /&gt;
 # move to original location or restore from tar if it exists&lt;br /&gt;
 if [ -f $BACKUPDIR/$APP.tgz ]&lt;br /&gt;
 then&lt;br /&gt;
  cd /&lt;br /&gt;
  tar xzf $BACKUPDIR/$APP.tgz&lt;br /&gt;
  if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Tar restore failed. Remove and restore app using official webOS/Pre methods.&amp;quot;&lt;br /&gt;
   cleanexit 22&lt;br /&gt;
  else&lt;br /&gt;
   rm -r $BACKUPDIR/$APP.tgz&lt;br /&gt;
  fi&lt;br /&gt;
 else&lt;br /&gt;
  cp -r  $MEDIA/$APP $VAR&lt;br /&gt;
  if [ $? != 0 ]&lt;br /&gt;
  then&lt;br /&gt;
   echo &amp;quot;Copy failed. Leaving app in $MEDIA.&amp;quot;&lt;br /&gt;
   cleanexit 23&lt;br /&gt;
  fi&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 rm -r $MEDIA/$APP&lt;br /&gt;
 if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
  echo &amp;quot;Remove failed. Leaving app in $MEDIA.&amp;quot;&lt;br /&gt;
  rm -r $VAR/$APP&lt;br /&gt;
  cleanexit 24&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 # rescan luna in case it's needed&lt;br /&gt;
 luna-send -n 1 palm://com.palm.applicationManager/rescan {} &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;$APP moved and unlinked.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Size of $VAR after move... &amp;quot;&lt;br /&gt;
 du -sh $VAR&lt;br /&gt;
}&lt;br /&gt;
# end of unlinkapp function&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: bulkvm -  move/link many apps&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
bulkmv() {&lt;br /&gt;
 echo&lt;br /&gt;
 echo&lt;br /&gt;
 echo &amp;quot;This allows moving many apps, asking which you'd like to move.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Starting with the largest apps.&amp;quot;&lt;br /&gt;
 echo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
 cd $VAR&lt;br /&gt;
&lt;br /&gt;
 for i in `du -s * | sort -nr |cut -f 2`&lt;br /&gt;
 do&lt;br /&gt;
    export APP=$i&lt;br /&gt;
    SIZE=`du -sh $APP |cut -f 1`&lt;br /&gt;
    echo &amp;quot;Size of $APP is $SIZE.&amp;quot;&lt;br /&gt;
    echo &amp;quot;Would you like to move and link $APP ? [y/N/q]: &amp;quot;&lt;br /&gt;
    read answer&lt;br /&gt;
    case $answer in&lt;br /&gt;
    [Yy]*) linkapp;;&lt;br /&gt;
    [Qq]*) cleanexit 0;;&lt;br /&gt;
        *) echo &amp;quot;$APP not moved.&amp;quot;&lt;br /&gt;
           continue;;&lt;br /&gt;
    esac&lt;br /&gt;
&lt;br /&gt;
    echo&lt;br /&gt;
 done&lt;br /&gt;
}&lt;br /&gt;
# end of bulkmv function&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: restoreall - restore all apps, back to /var&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
restoreall() {&lt;br /&gt;
  echo &amp;quot;This will restore all applications back to original location&amp;quot;&lt;br /&gt;
  echo &amp;quot;and remove the links.  Are you sure you want to continue? [y/N]:&amp;quot;&lt;br /&gt;
  read answer&lt;br /&gt;
  case $answer in&lt;br /&gt;
    [Yy]*) continue;;&lt;br /&gt;
        *) cleanexit 0;;&lt;br /&gt;
  esac&lt;br /&gt;
&lt;br /&gt;
  ls $MEDIA | while read APP&lt;br /&gt;
  do&lt;br /&gt;
    echo &amp;quot;Restoring $APP and unlinking...&amp;quot;&lt;br /&gt;
    unlinkapp&lt;br /&gt;
  done&lt;br /&gt;
}&lt;br /&gt;
# end of restoreall function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# main - begins here&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
case $COMMAND in&lt;br /&gt;
&amp;quot;clean&amp;quot;)&lt;br /&gt;
   cleanapp&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;list&amp;quot;)&lt;br /&gt;
   listapps&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;listmoved&amp;quot;)&lt;br /&gt;
   listmoved&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;link&amp;quot;)&lt;br /&gt;
   linkapp&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;unlink&amp;quot;)&lt;br /&gt;
   unlinkapp&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;bulkmv&amp;quot;)&lt;br /&gt;
   bulkmv&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;restoreall&amp;quot;)&lt;br /&gt;
   restoreall&lt;br /&gt;
   ;;&lt;br /&gt;
*)&lt;br /&gt;
   usage 0&lt;br /&gt;
   ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
cleanexit 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Be sure to set execute permissions if you missed the step above...&lt;br /&gt;
&amp;lt;code&amp;gt;chmod 755 /usr/bin/mvapp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Precautions ==&lt;br /&gt;
&lt;br /&gt;
So far, no one has reported an app that has issues due to linking.  These are best practices to avoid issues.&lt;br /&gt;
&lt;br /&gt;
- Be selective about what you move.  You may not want to move apps that store important information to you such as password lockers, memo apps, EverNote, Agenda, etc. Games, web content apps and information viewing apps should be safer to move as there is no data at risk.&lt;br /&gt;
&lt;br /&gt;
- Close apps before moving them.  Do not move an app while it is open and running.  I actually tested this and figured some apps would break but none have yet.  It is still not wise to move apps while they are open and running.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
&lt;br /&gt;
'''To find the largest apps in /var/usr/palm/applications'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows the largest apps last... IE....&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
8352 com.apnews.webos&amp;lt;br&amp;gt;&lt;br /&gt;
8512 com.fandango.app.fandango&amp;lt;br&amp;gt;&lt;br /&gt;
8672 com.palm.app.musicplayerremix&amp;lt;br&amp;gt;&lt;br /&gt;
10304 com.shortcovers.palm.pre&amp;lt;br&amp;gt;&lt;br /&gt;
10432 com.fusioncreativestudios.deadman&amp;lt;br&amp;gt;&lt;br /&gt;
10656 com.ulocate.app.where&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To move and link an app to /media'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp link domain.appname&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:  mvapp link com.ulocate.app.where&lt;br /&gt;
&lt;br /&gt;
The app should now work in the new location thanks to the link. Test each app to make sure it works before doing another. Looping the script to do every app in the dir or to link the entire app dir is not recommended. File attributes are lost on the move, which some apps may need. You need to test each app after a move.&lt;br /&gt;
&lt;br /&gt;
Continue moving apps until it reports that /var.../applications is about 25MB or less.&lt;br /&gt;
&lt;br /&gt;
There is an option to turn on/off tar-based backups.  See the BACKUP variable in the script.  If set to 1, it will perform a tar backup.  This takes up more space on /media but if you need to restore, it puts it back with full file attributes.  Recommend keeping this on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To move and link many apps''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp bulkmv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will show largest app first, ask if you want to move/link and then moves on to the next largest app.  If you answer no to an app, it will skip to the next.  Answer 'q' to quit.  Is easiest to use this method directly on a device using the Terminal app.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To revert the move and delete the link'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp unlink domain.appname&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The application will be moved back to the original directory. File attributes are lost on the move if tar backup is turned off, which some apps may need. You need to test each app after a move.  If tar backup is turned on (default - see BACKUP variable in script), file attributes will be restored.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To list apps that have been moved and linked...'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp listmoved&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This shows a list of apps that have been moved and linked to /media.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To restore all moved apps back to original location'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp restoreall&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If backup was turned on, this will restore ALL applications that have been moved/linked, back to the original location in /var with original attributes (using tar).  If backup was not turned on, it will still attempt to move the applications back to /var using the files in /media, but without original file attributes.  This may take several minutes to complete.  It will show each application progress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To cleanup and remove directories and symlinks'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp clean domain.appname&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have any issues, first attempt to remove the app from the App Catalog or Homebrew app installer.  Then issue the 'clean' command to remove the applications directories at both locations and also the symlink.  You can then reinstall the app from the App Catalog or any Homebrew App installer.&lt;br /&gt;
&lt;br /&gt;
== Contingency Plan==&lt;br /&gt;
&lt;br /&gt;
If you have problems with an application, follow these steps...&amp;lt;br&amp;gt;&lt;br /&gt;
-- Close the application if open&amp;lt;br&amp;gt;&lt;br /&gt;
-- mvapp unlink domain.appname&amp;lt;br&amp;gt;&lt;br /&gt;
-- Try using the App&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the application still does now work correctly...&amp;lt;br&amp;gt;&lt;br /&gt;
-- Remove the App using official methods&amp;lt;br&amp;gt;&lt;br /&gt;
-- mvapp clean domain.appname&amp;lt;br&amp;gt;&lt;br /&gt;
-- Reinstall through the App Catalog or Homebrew installer app&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Proposal to Dev Community ==&lt;br /&gt;
&lt;br /&gt;
This is a formal proposal to the Dev Community suggesting that PreWare, WebOS Quick Install and other Pre installer apps provide an option to move any app in /var to the /media fs and create a link similar to the code above.  &lt;br /&gt;
&lt;br /&gt;
The Homebrew Community somewhat created part of the storage problem so needs to come up with their own solution. The symbolic link proponents propose that Homebrew apps be moved with a link to /media/internal by default and physically use /var only if needed (per conditions stated below). The developer would put a flag in the package (or some other method during submission) to state their app is able to run linked to /media or if it specifically needs to physically be on /var.  Will propose additions to Packing Standards to support /media links.  The homebrew installer apps could then automatically do the move/link if the package is flagged for it.&lt;br /&gt;
&lt;br /&gt;
Candidate apps for moving to /media&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that do not depend on file attributes (such as executable bit)&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that do not perform data operations to home app directory when device is USB mounted&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exceptions for maintaining apps on /var&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that depend on file attributes&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that won't work well when device is USB mounted, such as performing data or DB operations in home app directory&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Please update with other known candidates/exceptions)&lt;br /&gt;
&lt;br /&gt;
== Benefits over other methods ==&lt;br /&gt;
&lt;br /&gt;
''Resizing /var''  &amp;lt;br&amp;gt;&lt;br /&gt;
One challenge with resizing /var is that it will still have a fixed static limit - how do you decide how much to increase it? Many will still probably hit the limit or waste space if setting too high.  There is also the warning from Palm that resizing var may interfere with future updates.  The link method allows to dynamically use the /media partition, so there is no need to set a specific size dedicated to apps. If the USB drive is filled, users can decide if they use the space for media or apps on the fly.&lt;br /&gt;
&lt;br /&gt;
''AppPath in /etc/luna.conf'' &amp;lt;br&amp;gt;&lt;br /&gt;
I proposed a while back adding an AppPath to luna.conf to include apps stored on /media.  Some apps would not work because some apparently reference /var.  IE, the vampire/mafia/quest series could not access graphics.  The symbolic link fixed this because apps think they are in /var.&lt;br /&gt;
&lt;br /&gt;
''Link/mount [[all]] of /var/usr/palm/applications/ to /media/internal'' &amp;lt;BR&amp;gt;&lt;br /&gt;
If some apps rely on file attributes this won't work since file attributes are lost when moved to FAT fs.  While this is rare, it probably isn't wise to force all /var apps to /media.  Selectively moving apps one at a time is less risky.  Update:  Have found that &amp;quot;PDF View&amp;quot; app does not allow to be linked, so it appears that selectively moving apps is necessary.&lt;br /&gt;
&lt;br /&gt;
''Creating a loopback filesystem to a virtual file located on /media/internal'' &amp;lt;br&amp;gt;&lt;br /&gt;
This has been worked on [http://www.webos-internals.org/wiki/Tutorials_Linux_opt_on_loopback here] and still has potential.  Unfortunately it locks out USB mount and media sync altogether.  If a workaround can be found with low risk, this may be the most ideal solution.&lt;br /&gt;
&lt;br /&gt;
== Risks, Issues, Dependencies ==&lt;br /&gt;
&lt;br /&gt;
- File attributes of linux fs are not copied over to fat fs.  May not work with apps that rely on file attributes.  In general, javascript apps will likely work fine located on /media.  No one has reported an app (yet) that does not work.&lt;br /&gt;
&lt;br /&gt;
- Some apps may not behave well if USB drive is mounted to computer, though I've tested several that behaved fine. Linux type background services probably would not work well so probably should not be moved.  Apps that do IO to the home directory of the app while USB mounted may have issues when located on /media.&lt;br /&gt;
&lt;br /&gt;
- Jason Robitaille has indicated that a future version of WebOS Quick Install will include a routine to resize the /var partition. He has also indicated that doing so will wipe the /media/internal area, so any applications stored there would need to be backed up first. It might be good to be able to reverse the process of this solution. This could be done either by adding to this &amp;lt;code&amp;gt;mvapp&amp;lt;/code&amp;gt; script, or creating a new one.&lt;br /&gt;
&lt;br /&gt;
== Future Versions ==&lt;br /&gt;
&lt;br /&gt;
Plans for future versions...&lt;br /&gt;
&lt;br /&gt;
- The script will soon be modified to be friendly for javascript calls... no prompting and no output, just result codes.   Will still maintain user interaction capability as well.&lt;br /&gt;
== Files Confirmed to Work ==&lt;br /&gt;
:com.accuweather.palm&lt;br /&gt;
:com.asc.funfactsw&lt;br /&gt;
:com.biocandy.prejeweled&lt;br /&gt;
:com.bitsofgodsoftware.simplebible&lt;br /&gt;
:com.bytesequencing.pre.balls&lt;br /&gt;
:com.bytesequencing.pre.spades&lt;br /&gt;
:com.cakefight.sudoku&lt;br /&gt;
:com.deliciousmorsel.twee&lt;br /&gt;
:com.engineequalscar.games.mines&lt;br /&gt;
:com.fandango.app.fandango&lt;br /&gt;
:com.flixster.app.movies&lt;br /&gt;
:com.friendsflow.friendsflowbeta&lt;br /&gt;
:com.fusioncreativestudios.deadman&lt;br /&gt;
:com.jackintheboxsoftwareinc.app.mobios&lt;br /&gt;
:com.landgrabgames.zilch.lite&lt;br /&gt;
:com.longbeachit.gototoollite&lt;br /&gt;
:com.mediafly.mediafly-pre&lt;br /&gt;
:com.mrjspeed.toppleball&lt;br /&gt;
:com.myappcatalog.cardmessagesbeta&lt;br /&gt;
:com.myappcatalog.guitaristsreference&lt;br /&gt;
:com.myappcatalog.superhangmanbeta&lt;br /&gt;
:com.orbsix.app.magic8ball&lt;br /&gt;
:com.palm.app.agenda&lt;br /&gt;
:com.palm.pandora&lt;br /&gt;
:com.palm.repomanager&lt;br /&gt;
:com.quigley-jones.preopoly&lt;br /&gt;
:com.sachersoft.wordwhirllite&lt;br /&gt;
:com.splashdata.app.mcraig&lt;br /&gt;
:com.stickywhipit.yatz&lt;br /&gt;
:com.tj.solitaire&lt;br /&gt;
:com.wikihow.wikihowapp&lt;br /&gt;
:net.keenstudios.app.checkers&lt;br /&gt;
:ws.junk.blocked&lt;br /&gt;
:ws.junk.dotgame&lt;br /&gt;
&lt;br /&gt;
== Files Confirmed ''Not'' to Work ==&lt;br /&gt;
&lt;br /&gt;
== Discuss ==&lt;br /&gt;
Discuss in the Discussion tab or PreCentral...&lt;br /&gt;
&lt;br /&gt;
http://forums.precentral.net/web-os-development/205649-resolution-app-catalog-install-limit-proposal.html&lt;br /&gt;
&lt;br /&gt;
'''Your Experiences'''&lt;br /&gt;
&lt;br /&gt;
Please post your experiences, good or bad.  I'd like to get any kinks worked out before attempting to turn this into a webOS app.&lt;br /&gt;
&lt;br /&gt;
- How many apps did you move? &amp;lt;br&amp;gt;&lt;br /&gt;
- Did you find an app that won't work linked? &amp;lt;br&amp;gt;&lt;br /&gt;
- Did you move any back?  (please test)&amp;lt;br&amp;gt;&lt;br /&gt;
- How far down did you have to get /var.../applications down in MB before you could start adding apps from the App Catalog?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
xorg - initially developed script and proposal.  maintainer of this page.&amp;lt;br&amp;gt;&lt;br /&gt;
daventx - added unlink and clean functions.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6174</id>
		<title>Talk:Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6174"/>
		<updated>2009-10-05T00:22:45Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: /* Versioning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Modified the APP variable in the script ==&lt;br /&gt;
&lt;br /&gt;
Modified the script to change&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
to&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=/var/usr/palm/applications/$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm no script writer, and wouldn't normally change someone else's code, but the script did not work as originally written unless you were already in that directory. I tested it with the changes, and it works properly now.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 14:31, 30 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Not sure why it didn't work for you as your change didn't work for me.  Are you using a different shell?  I added a line to force #!/bin/sh and altered the code back with a note about your change.&lt;br /&gt;
&lt;br /&gt;
--[[User:Xorg|Xorg]] 03:12, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
My bad. The way the code was originally formatted, I couldn't cut and paste, and when entering it, I somehow missed the &amp;lt;code&amp;gt;cd $ORG&amp;lt;/code&amp;gt; command. You're right, it should (and does) work in the original format.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 06:01, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Changing app directory to .app  ==&lt;br /&gt;
&lt;br /&gt;
I had noticed that with the 1.2 update, all of the graphics on the USB directory were being scanned as if they were photos. This was pretty much a mess, and hand planned on coming back here to suggest that the &amp;quot;app&amp;quot; directory be changed to &amp;quot;.app&amp;quot; so it would be hidden. I noticed the altered code already had that change, but the original intro did not. Assuming this was the intent, I changed that.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 14:36, 30 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Restructured script to use functions ==&lt;br /&gt;
&lt;br /&gt;
I've restructured the script to use functions.  This allows anyone to post in their own functions and additional features.&lt;br /&gt;
&lt;br /&gt;
--[[User:Xorg|Xorg]] 19:50, 2 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Suggestion for the script ==&lt;br /&gt;
&lt;br /&gt;
Perhaps in preparation for the &amp;quot;unlink&amp;quot; command, the &amp;quot;link&amp;quot; command can also create a full backup of the app (.tgz) which will contain the full permissions and any symbolic links that will be lost when copying the app to  the /media/internal/.apps directory. That way if we find that the app does not run correctly from the linked version on /media/internal/.apps, we can restore it fully to /var with no loss of data.&lt;br /&gt;
&lt;br /&gt;
--[[User:Plee3|plee3]] 21:46, 2 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Versioning ==&lt;br /&gt;
&lt;br /&gt;
Possibly could those modifying the script start using some sort of versioning, with the version at the front of the script, with information about what the new version does added to the main article page?&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 00:22, 5 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6173</id>
		<title>Talk:Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6173"/>
		<updated>2009-10-05T00:22:33Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: New section: Versioning&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Modified the APP variable in the script ==&lt;br /&gt;
&lt;br /&gt;
Modified the script to change&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
to&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=/var/usr/palm/applications/$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm no script writer, and wouldn't normally change someone else's code, but the script did not work as originally written unless you were already in that directory. I tested it with the changes, and it works properly now.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 14:31, 30 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Not sure why it didn't work for you as your change didn't work for me.  Are you using a different shell?  I added a line to force #!/bin/sh and altered the code back with a note about your change.&lt;br /&gt;
&lt;br /&gt;
--[[User:Xorg|Xorg]] 03:12, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
My bad. The way the code was originally formatted, I couldn't cut and paste, and when entering it, I somehow missed the &amp;lt;code&amp;gt;cd $ORG&amp;lt;/code&amp;gt; command. You're right, it should (and does) work in the original format.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 06:01, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Changing app directory to .app  ==&lt;br /&gt;
&lt;br /&gt;
I had noticed that with the 1.2 update, all of the graphics on the USB directory were being scanned as if they were photos. This was pretty much a mess, and hand planned on coming back here to suggest that the &amp;quot;app&amp;quot; directory be changed to &amp;quot;.app&amp;quot; so it would be hidden. I noticed the altered code already had that change, but the original intro did not. Assuming this was the intent, I changed that.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 14:36, 30 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Restructured script to use functions ==&lt;br /&gt;
&lt;br /&gt;
I've restructured the script to use functions.  This allows anyone to post in their own functions and additional features.&lt;br /&gt;
&lt;br /&gt;
--[[User:Xorg|Xorg]] 19:50, 2 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Suggestion for the script ==&lt;br /&gt;
&lt;br /&gt;
Perhaps in preparation for the &amp;quot;unlink&amp;quot; command, the &amp;quot;link&amp;quot; command can also create a full backup of the app (.tgz) which will contain the full permissions and any symbolic links that will be lost when copying the app to  the /media/internal/.apps directory. That way if we find that the app does not run correctly from the linked version on /media/internal/.apps, we can restore it fully to /var with no loss of data.&lt;br /&gt;
&lt;br /&gt;
--[[User:Plee3|plee3]] 21:46, 2 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Versioning ==&lt;br /&gt;
&lt;br /&gt;
Possibly could those modifying the script start using some sort of versioning, with the version at the front of the script, with information about what the new version does added to the main article page?&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6094</id>
		<title>Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6094"/>
		<updated>2009-10-02T18:00:39Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: /* Risks, Issues, Dependencies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Based on rwhitby's findings that temporarily moving /var/usr/palm/applications will allow installing apps from the App Catalog, here's a permanent way to keep the apps on (much larger) /media/internal by using links. This will permanently save space on /var.&lt;br /&gt;
&lt;br /&gt;
It's unfortunate that Palm has not resolved the issue in the 1.2 update. This is a workaround that could work long term, also saving space on /var, but this needs support by the homebrew community to add in the homebrew installer apps.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
This solution involves creating a (hidden) directory in the /media/internal area, moving selected applications to the newly created directory, and then creating a symbolic link in the /var/usr/palm/applications directory pointing to the new location. This frees up the disk space from the relatively limited /var volume to the larger /media/internal. The included script (which must be created) will move the files and create the appropriate link. It will also provide information on the size of the applications stored in the /var/usr/palm/applications directory.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
- create a script to move apps to new home and create link&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vi /usr/bin/mvapp&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# This code is open for re-use with no restrictions.  xorg&lt;br /&gt;
&lt;br /&gt;
# Usage: mvapp com.org.appname - mvapp app to destination&lt;br /&gt;
# Usage: mvapp list - list all apps sorted by size&lt;br /&gt;
&lt;br /&gt;
APP=$1&lt;br /&gt;
# can change destination to anything you want, but use a leading . - props to emoney_33&lt;br /&gt;
DEST=/media/internal/.apps&lt;br /&gt;
ORG=/var/usr/palm/applications&lt;br /&gt;
&lt;br /&gt;
cd $ORG&lt;br /&gt;
&lt;br /&gt;
# list app directory with size, props to daventx&lt;br /&gt;
if [ $APP == &amp;quot;list&amp;quot; ]&lt;br /&gt;
then&lt;br /&gt;
  du -s $ORG/* | sort -n&lt;br /&gt;
  exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d $DEST ]&lt;br /&gt;
then&lt;br /&gt;
  echo &amp;quot;Directory exists...&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  mkdir $DEST&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -h $APP ]&lt;br /&gt;
then&lt;br /&gt;
  echo &amp;quot;Link already exists for... ${APP}&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d $APP ]&lt;br /&gt;
then&lt;br /&gt;
  echo &amp;quot;Moving $APP to $DEST...&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;Not a valid application directory.&amp;quot;&lt;br /&gt;
  echo &amp;quot;Usage: mvapp com.org.appname &amp;quot;&lt;br /&gt;
  echo &amp;quot;Usage: mvapp list&amp;quot;&lt;br /&gt;
  exit 2&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
cd $ORG&lt;br /&gt;
echo &amp;quot;Size of $ORG before move... &amp;quot;&lt;br /&gt;
du -sh .&lt;br /&gt;
&lt;br /&gt;
# move over to USB drive&lt;br /&gt;
cp -r  $ORG/$APP $DEST&lt;br /&gt;
if [ $? != 0 ]&lt;br /&gt;
then&lt;br /&gt;
  echo &amp;quot;Copy failed. Leaving app in $ORG.&amp;quot;&lt;br /&gt;
  exit 3&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
rm -r $ORG/$APP&lt;br /&gt;
if [ $? != 0 ]&lt;br /&gt;
then&lt;br /&gt;
  echo &amp;quot;Remove failed. Leaving app in $ORG.&amp;quot;&lt;br /&gt;
  rm -r $DEST/$APP&lt;br /&gt;
  exit 4&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# create the symbolic link&lt;br /&gt;
ln -s $DEST/$APP $ORG/$APP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# rescan luna in case it's needed&lt;br /&gt;
luna-send -n 1 palm://com.palm.applicationManager/rescan {}&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$APP moved and linked.&amp;quot;&lt;br /&gt;
echo &amp;quot;Size of $ORG after move... &amp;quot;&lt;br /&gt;
du -sh .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod 777 /usr/bin/mvapp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use, find the largest apps in /var/usr/palm/applications...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows the largest apps last... IE....&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
6720 com.accuweather.palm&amp;lt;br&amp;gt;&lt;br /&gt;
6720 net.likeme&amp;lt;br&amp;gt;&lt;br /&gt;
6816 com.goodrec.app.goodfood&amp;lt;br&amp;gt;&lt;br /&gt;
7232 com.apps.forwebos.ahs&amp;lt;br&amp;gt;&lt;br /&gt;
7456 com.citysearch.mobile&amp;lt;br&amp;gt;&lt;br /&gt;
8352 com.apnews.webos&amp;lt;br&amp;gt;&lt;br /&gt;
8512 com.fandango.app.fandango&amp;lt;br&amp;gt;&lt;br /&gt;
8672 com.palm.app.musicplayerremix&amp;lt;br&amp;gt;&lt;br /&gt;
10304 com.shortcovers.palm.pre&amp;lt;br&amp;gt;&lt;br /&gt;
10432 com.fusioncreativestudios.deadman&amp;lt;br&amp;gt;&lt;br /&gt;
10656 com.ulocate.app.where&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
To move com.ulocate.app.where, use the script...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp com.ulocate.app.where&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should now work in the new location thanks to the link. Test each app to make sure it works before doing another. I don't recommend looping the script to do every app in the dir or to link the entire app dir. File attributes are lost on the move, which some apps may need. You need to test each app after a move.&lt;br /&gt;
&lt;br /&gt;
If you have issues with an app, remove it and reinstall through the respective app catalog or homebrew installer app.&lt;br /&gt;
&lt;br /&gt;
== Proposal==&lt;br /&gt;
&lt;br /&gt;
Would like to propose that PreWare, WebOS Quick Install and other Pre installer apps provide an option to move any app in /var to the /media fs and create a link per the code above. Also provide option to move back. Could make a backup retaining file attributes using tar and restore that way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Risks, Issues, Dependencies ==&lt;br /&gt;
&lt;br /&gt;
- File attributes of linux fs are not copied over to fat fs.  May not work with apps that rely on file attributes.&lt;br /&gt;
&lt;br /&gt;
- Jason Robitaille has indicated that a future version of WebOS Quick Install will include a routine to resize the /var partition. He has also indicated that doing so will wipe the /media/internal area, so any applications stored there would need to be backed up first. It might be good to be able to reverse the process of this soulution. This could be done either by adding to this &amp;lt;code&amp;gt;mvapp&amp;lt;/code&amp;gt; script, or cerating a new one.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6093</id>
		<title>Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6093"/>
		<updated>2009-10-02T17:50:14Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Based on rwhitby's findings that temporarily moving /var/usr/palm/applications will allow installing apps from the App Catalog, here's a permanent way to keep the apps on (much larger) /media/internal by using links. This will permanently save space on /var.&lt;br /&gt;
&lt;br /&gt;
It's unfortunate that Palm has not resolved the issue in the 1.2 update. This is a workaround that could work long term, also saving space on /var, but this needs support by the homebrew community to add in the homebrew installer apps.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
This solution involves creating a (hidden) directory in the /media/internal area, moving selected applications to the newly created directory, and then creating a symbolic link in the /var/usr/palm/applications directory pointing to the new location. This frees up the disk space from the relatively limited /var volume to the larger /media/internal. The included script (which must be created) will move the files and create the appropriate link. It will also provide information on the size of the applications stored in the /var/usr/palm/applications directory.&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
- create a script to move apps to new home and create link&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vi /usr/bin/mvapp&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# This code is open for re-use with no restrictions.  xorg&lt;br /&gt;
&lt;br /&gt;
# Usage: mvapp com.org.appname - mvapp app to destination&lt;br /&gt;
# Usage: mvapp list - list all apps sorted by size&lt;br /&gt;
&lt;br /&gt;
APP=$1&lt;br /&gt;
# can change destination to anything you want, but use a leading . - props to emoney_33&lt;br /&gt;
DEST=/media/internal/.apps&lt;br /&gt;
ORG=/var/usr/palm/applications&lt;br /&gt;
&lt;br /&gt;
cd $ORG&lt;br /&gt;
&lt;br /&gt;
# list app directory with size, props to daventx&lt;br /&gt;
if [ $APP == &amp;quot;list&amp;quot; ]&lt;br /&gt;
then&lt;br /&gt;
  du -s $ORG/* | sort -n&lt;br /&gt;
  exit 0&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d $DEST ]&lt;br /&gt;
then&lt;br /&gt;
  echo &amp;quot;Directory exists...&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  mkdir $DEST&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -h $APP ]&lt;br /&gt;
then&lt;br /&gt;
  echo &amp;quot;Link already exists for... ${APP}&amp;quot;&lt;br /&gt;
  exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d $APP ]&lt;br /&gt;
then&lt;br /&gt;
  echo &amp;quot;Moving $APP to $DEST...&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;Not a valid application directory.&amp;quot;&lt;br /&gt;
  echo &amp;quot;Usage: mvapp com.org.appname &amp;quot;&lt;br /&gt;
  echo &amp;quot;Usage: mvapp list&amp;quot;&lt;br /&gt;
  exit 2&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
cd $ORG&lt;br /&gt;
echo &amp;quot;Size of $ORG before move... &amp;quot;&lt;br /&gt;
du -sh .&lt;br /&gt;
&lt;br /&gt;
# move over to USB drive&lt;br /&gt;
cp -r  $ORG/$APP $DEST&lt;br /&gt;
if [ $? != 0 ]&lt;br /&gt;
then&lt;br /&gt;
  echo &amp;quot;Copy failed. Leaving app in $ORG.&amp;quot;&lt;br /&gt;
  exit 3&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
rm -r $ORG/$APP&lt;br /&gt;
if [ $? != 0 ]&lt;br /&gt;
then&lt;br /&gt;
  echo &amp;quot;Remove failed. Leaving app in $ORG.&amp;quot;&lt;br /&gt;
  rm -r $DEST/$APP&lt;br /&gt;
  exit 4&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# create the symbolic link&lt;br /&gt;
ln -s $DEST/$APP $ORG/$APP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# rescan luna in case it's needed&lt;br /&gt;
luna-send -n 1 palm://com.palm.applicationManager/rescan {}&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$APP moved and linked.&amp;quot;&lt;br /&gt;
echo &amp;quot;Size of $ORG after move... &amp;quot;&lt;br /&gt;
du -sh .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod 777 /usr/bin/mvapp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use, find the largest apps in /var/usr/palm/applications...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows the largest apps last... IE....&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
6720 com.accuweather.palm&amp;lt;br&amp;gt;&lt;br /&gt;
6720 net.likeme&amp;lt;br&amp;gt;&lt;br /&gt;
6816 com.goodrec.app.goodfood&amp;lt;br&amp;gt;&lt;br /&gt;
7232 com.apps.forwebos.ahs&amp;lt;br&amp;gt;&lt;br /&gt;
7456 com.citysearch.mobile&amp;lt;br&amp;gt;&lt;br /&gt;
8352 com.apnews.webos&amp;lt;br&amp;gt;&lt;br /&gt;
8512 com.fandango.app.fandango&amp;lt;br&amp;gt;&lt;br /&gt;
8672 com.palm.app.musicplayerremix&amp;lt;br&amp;gt;&lt;br /&gt;
10304 com.shortcovers.palm.pre&amp;lt;br&amp;gt;&lt;br /&gt;
10432 com.fusioncreativestudios.deadman&amp;lt;br&amp;gt;&lt;br /&gt;
10656 com.ulocate.app.where&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
To move com.ulocate.app.where, use the script...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp com.ulocate.app.where&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should now work in the new location thanks to the link. Test each app to make sure it works before doing another. I don't recommend looping the script to do every app in the dir or to link the entire app dir. File attributes are lost on the move, which some apps may need. You need to test each app after a move.&lt;br /&gt;
&lt;br /&gt;
If you have issues with an app, remove it and reinstall through the respective app catalog or homebrew installer app.&lt;br /&gt;
&lt;br /&gt;
== Proposal==&lt;br /&gt;
&lt;br /&gt;
Would like to propose that PreWare, WebOS Quick Install and other Pre installer apps provide an option to move any app in /var to the /media fs and create a link per the code above. Also provide option to move back. Could make a backup retaining file attributes using tar and restore that way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Risks, Issues, Dependencies ==&lt;br /&gt;
&lt;br /&gt;
- File attributes of linux fs are not copied over to fat fs.  May not work with apps that rely on file attributes.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6063</id>
		<title>Talk:Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6063"/>
		<updated>2009-10-01T06:01:49Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Modified the APP variable in the script ==&lt;br /&gt;
&lt;br /&gt;
Modified the script to change&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
to&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=/var/usr/palm/applications/$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm no script writer, and wouldn't normally change someone else's code, but the script did not work as originally written unless you were already in that directory. I tested it with the changes, and it works properly now.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 14:31, 30 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Not sure why it didn't work for you as your change didn't work for me.  Are you using a different shell?  I added a line to force #!/bin/sh and altered the code back with a note about your change.&lt;br /&gt;
&lt;br /&gt;
--[[User:Xorg|Xorg]] 03:12, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
My bad. The way the code was originally formatted, I couldn't cut and paste, and when entering it, I somehow missed the &amp;lt;code&amp;gt;cd $ORG&amp;lt;/code&amp;gt; command. You're right, it should (and does) work in the original format.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 06:01, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Changing app directory to .app  ==&lt;br /&gt;
&lt;br /&gt;
I had noticed that with the 1.2 update, all of the graphics on the USB directory were being scanned as if they were photos. This was pretty much a mess, and hand planned on coming back here to suggest that the &amp;quot;app&amp;quot; directory be changed to &amp;quot;.app&amp;quot; so it would be hidden. I noticed the altered code already had that change, but the original intro did not. Assuming this was the intent, I changed that.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 14:36, 30 September 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6036</id>
		<title>Talk:Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6036"/>
		<updated>2009-09-30T14:36:42Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: New section: Changing app directory to .app &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Modified the APP variable in the script ==&lt;br /&gt;
&lt;br /&gt;
Modified the script to change&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
to&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=/var/usr/palm/applications/$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm no script writer, and wouldn't normally change someone else's code, but the script did not work as originally written unless you were already in that directory. I tested it with the changes, and it works properly now.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 14:31, 30 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Changing app directory to .app  ==&lt;br /&gt;
&lt;br /&gt;
I had noticed that with the 1.2 update, all of the graphics on the USB directory were being scanned as if they were photos. This was pretty much a mess, and hand planned on coming back here to suggest that the &amp;quot;app&amp;quot; directory be changed to &amp;quot;.app&amp;quot; so it would be hidden. I noticed the altered code already had that change, but the original intro did not. Assuming this was the intent, I changed that.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 14:36, 30 September 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6035</id>
		<title>Talk:Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6035"/>
		<updated>2009-09-30T14:34:04Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: New section: Modified the APP variable in the script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Modified the APP variable in the script ==&lt;br /&gt;
&lt;br /&gt;
Modified the script to change&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
to&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=/var/usr/palm/applications/$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm no script writer, and wouldn't normally change someone else's code, but the script did not work as originally written unless you were already in that directory. I tested it with the changes, and it works properly now.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 14:31, 30 September 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6034</id>
		<title>Talk:Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6034"/>
		<updated>2009-09-30T14:33:30Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6033</id>
		<title>Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6033"/>
		<updated>2009-09-30T14:32:33Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Based on rwhitby's findings that temporarily moving /var/usr/palm/applications will allow installing apps from the App Catalog, here's a permanent way to keep the apps on (much larger) /media/internal by using links. This will permanently save space on /var.&lt;br /&gt;
&lt;br /&gt;
It's unfortunate that Palm has not resolved the issue in the 1.2 update. This is a workaround that could work long term, also saving space on /var, but this needs support by the homebrew community to add in the homebrew installer apps.&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
- create a dir&lt;br /&gt;
mkdir /media/internal/.apps&lt;br /&gt;
&lt;br /&gt;
- create a script to move apps to new home and create link&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vi /usr/bin/mvapp&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
APP=/var/usr/palm/applications/$1&lt;br /&gt;
DEST=/media/internal/.apps&lt;br /&gt;
ORG=/var/usr/palm/applications&lt;br /&gt;
&lt;br /&gt;
if [ -d $DEST ]&lt;br /&gt;
then&lt;br /&gt;
echo &amp;quot;&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
mkdir $DEST&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -h $APP ]&lt;br /&gt;
then&lt;br /&gt;
echo &amp;quot;Link already exists for... ${APP}&amp;quot;&lt;br /&gt;
exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d $APP ]&lt;br /&gt;
then&lt;br /&gt;
echo &amp;quot;Moving $APP to $DEST...&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
echo &amp;quot;Not a valid application directory.&amp;quot;&lt;br /&gt;
echo &amp;quot;Usage: mvapp com.org.appname &amp;quot;&lt;br /&gt;
exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
cd $ORG&lt;br /&gt;
echo &amp;quot;Size of /var/usr/palm/applications before move... &amp;quot;&lt;br /&gt;
du -sh .&lt;br /&gt;
&lt;br /&gt;
# move over to USB drive&lt;br /&gt;
cp -r $ORG/$1 $DEST&lt;br /&gt;
if [ $? != 0 ]&lt;br /&gt;
then&lt;br /&gt;
echo &amp;quot;Copy failed. Leaving app in $ORG.&amp;quot;&lt;br /&gt;
exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
rm -r $ORG/$1&lt;br /&gt;
&lt;br /&gt;
# create the link&lt;br /&gt;
ln -s $DEST/$1 $ORG/$1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# rescan luna in case it's needed&lt;br /&gt;
luna-send -n 1 palm://com.palm.applicationManager/rescan {}&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$1 moved and linked.&amp;quot;&lt;br /&gt;
echo &amp;quot;Size of $ORG after move... &amp;quot;&lt;br /&gt;
du -sh .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod 777 /usr/bin/mvapp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use, find the largest apps in /var/usr/palm/applications...&lt;br /&gt;
&amp;lt;code&amp;gt;du -s /var/usr/palm/applications |sort -n&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows the largest apps last... IE....&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
6720 com.accuweather.palm&amp;lt;br&amp;gt;&lt;br /&gt;
6720 net.likeme&amp;lt;br&amp;gt;&lt;br /&gt;
6816 com.goodrec.app.goodfood&amp;lt;br&amp;gt;&lt;br /&gt;
7232 com.apps.forwebos.ahs&amp;lt;br&amp;gt;&lt;br /&gt;
7456 com.citysearch.mobile&amp;lt;br&amp;gt;&lt;br /&gt;
8352 com.apnews.webos&amp;lt;br&amp;gt;&lt;br /&gt;
8512 com.fandango.app.fandango&amp;lt;br&amp;gt;&lt;br /&gt;
8672 com.palm.app.musicplayerremix&amp;lt;br&amp;gt;&lt;br /&gt;
10304 com.shortcovers.palm.pre&amp;lt;br&amp;gt;&lt;br /&gt;
10432 com.fusioncreativestudios.deadman&amp;lt;br&amp;gt;&lt;br /&gt;
10656 com.ulocate.app.where&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
To move com.ulocate.app.where, use the script...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp com.ulocate.app.where&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should now work in the new location thanks to the link. Test each app to make sure it works before doing another. I don't recommend looping the script to do every app in the dir or to link the entire app dir. File attributes are lost on the move, which some apps may need. You need to test each app after a move.&lt;br /&gt;
&lt;br /&gt;
If you have issues with an app, remove it and reinstall through the respective app catalog or homebrew installer app.&lt;br /&gt;
&lt;br /&gt;
'''Proposal'''&lt;br /&gt;
&lt;br /&gt;
Would like to propose that PreWare, WebOS Quick Install and other Pre installer apps provide an option to move any app in /var to the /media fs and create a link per the code above. Also provide option to move back. Could make a backup retaining file attributes using tar and restore that way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Risks, Issues, Dependencies'''&lt;br /&gt;
&lt;br /&gt;
- File attributes of linux fs are not copied over to fat fs.  May not work with apps that rely on file attributes.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6032</id>
		<title>Talk:Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Solution_to_App_Catalog_Installation_Limit&amp;diff=6032"/>
		<updated>2009-09-30T14:31:25Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: New page: Modified the script to change&amp;lt;br&amp;gt; &amp;lt;code&amp;gt;APP=$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt; to&amp;lt;br&amp;gt; &amp;lt;code&amp;gt;APP=/var/usr/palm/applications/$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt; I'm no script writer, and wouldn't normally change someone else's code, ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Modified the script to change&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
to&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;APP=/var/usr/palm/applications/$1&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I'm no script writer, and wouldn't normally change someone else's code, but the script did not work as originally written unless you were already in that directory. I tested it with the changes, and it works properly now.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 14:31, 30 September 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6031</id>
		<title>Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6031"/>
		<updated>2009-09-30T14:27:39Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Based on rwhitby's findings that temporarily moving /var/usr/palm/applications will allow installing apps from the App Catalog, here's a permanent way to keep the apps on (much larger) /media/internal by using links. This will permanently save space on /var.&lt;br /&gt;
&lt;br /&gt;
It's unfortunate that Palm has not resolved the issue in the 1.2 update. This is a workaround that could work long term, also saving space on /var, but this needs support by the homebrew community to add in the homebrew installer apps.&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
- create a dir&lt;br /&gt;
mkdir /media/internal/apps&lt;br /&gt;
&lt;br /&gt;
- create a script to move apps to new home and create link&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vi /usr/bin/mvapp&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
APP=/var/usr/palm/applications/$1&lt;br /&gt;
DEST=/media/internal/.apps&lt;br /&gt;
ORG=/var/usr/palm/applications&lt;br /&gt;
&lt;br /&gt;
if [ -d $DEST ]&lt;br /&gt;
then&lt;br /&gt;
echo &amp;quot;&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
mkdir $DEST&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -h $APP ]&lt;br /&gt;
then&lt;br /&gt;
echo &amp;quot;Link already exists for... ${APP}&amp;quot;&lt;br /&gt;
exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d $APP ]&lt;br /&gt;
then&lt;br /&gt;
echo &amp;quot;Moving $APP to $DEST...&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
echo &amp;quot;Not a valid application directory.&amp;quot;&lt;br /&gt;
echo &amp;quot;Usage: mvapp com.org.appname &amp;quot;&lt;br /&gt;
exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
cd $ORG&lt;br /&gt;
echo &amp;quot;Size of /var/usr/palm/applications before move... &amp;quot;&lt;br /&gt;
du -sh .&lt;br /&gt;
&lt;br /&gt;
# move over to USB drive&lt;br /&gt;
cp -r $ORG/$1 $DEST&lt;br /&gt;
if [ $? != 0 ]&lt;br /&gt;
then&lt;br /&gt;
echo &amp;quot;Copy failed. Leaving app in $ORG.&amp;quot;&lt;br /&gt;
exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
rm -r $ORG/$1&lt;br /&gt;
&lt;br /&gt;
# create the link&lt;br /&gt;
ln -s $DEST/$1 $ORG/$1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# rescan luna in case it's needed&lt;br /&gt;
luna-send -n 1 palm://com.palm.applicationManager/rescan {}&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$1 moved and linked.&amp;quot;&lt;br /&gt;
echo &amp;quot;Size of $ORG after move... &amp;quot;&lt;br /&gt;
du -sh .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod 777 /usr/bin/mvapp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use, find the largest apps in /var/usr/palm/applications...&lt;br /&gt;
&amp;lt;code&amp;gt;du -s /var/usr/palm/applications |sort -n&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows the largest apps last... IE....&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
6720 com.accuweather.palm&amp;lt;br&amp;gt;&lt;br /&gt;
6720 net.likeme&amp;lt;br&amp;gt;&lt;br /&gt;
6816 com.goodrec.app.goodfood&amp;lt;br&amp;gt;&lt;br /&gt;
7232 com.apps.forwebos.ahs&amp;lt;br&amp;gt;&lt;br /&gt;
7456 com.citysearch.mobile&amp;lt;br&amp;gt;&lt;br /&gt;
8352 com.apnews.webos&amp;lt;br&amp;gt;&lt;br /&gt;
8512 com.fandango.app.fandango&amp;lt;br&amp;gt;&lt;br /&gt;
8672 com.palm.app.musicplayerremix&amp;lt;br&amp;gt;&lt;br /&gt;
10304 com.shortcovers.palm.pre&amp;lt;br&amp;gt;&lt;br /&gt;
10432 com.fusioncreativestudios.deadman&amp;lt;br&amp;gt;&lt;br /&gt;
10656 com.ulocate.app.where&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
To move com.ulocate.app.where, use the script...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp com.ulocate.app.where&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should now work in the new location thanks to the link. Test each app to make sure it works before doing another. I don't recommend looping the script to do every app in the dir or to link the entire app dir. File attributes are lost on the move, which some apps may need. You need to test each app after a move.&lt;br /&gt;
&lt;br /&gt;
If you have issues with an app, remove it and reinstall through the respective app catalog or homebrew installer app.&lt;br /&gt;
&lt;br /&gt;
'''Proposal'''&lt;br /&gt;
&lt;br /&gt;
Would like to propose that PreWare, WebOS Quick Install and other Pre installer apps provide an option to move any app in /var to the /media fs and create a link per the code above. Also provide option to move back. Could make a backup retaining file attributes using tar and restore that way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Risks, Issues, Dependencies'''&lt;br /&gt;
&lt;br /&gt;
- File attributes of linux fs are not copied over to fat fs.  May not work with apps that rely on file attributes.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6029</id>
		<title>Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6029"/>
		<updated>2009-09-30T05:59:50Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Based on rwhitby's findings that temporarily moving /var/usr/palm/applications will allow installing apps from the App Catalog, here's a permanent way to keep the apps on (much larger) /media/internal by using links. This will permanently save space on /var.&lt;br /&gt;
&lt;br /&gt;
It's unfortunate that Palm has not resolved the issue in the 1.2 update. This is a workaround that could work long term, also saving space on /var, but this needs support by the homebrew community to add in the homebrew installer apps.&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
- create a dir&lt;br /&gt;
mkdir /media/internal/apps&lt;br /&gt;
&lt;br /&gt;
- create a script to move apps to new home and create link&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vi /usr/bin/mvapp&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
APP=$1&lt;br /&gt;
DEST=/media/internal/.apps&lt;br /&gt;
ORG=/var/usr/palm/applications&lt;br /&gt;
&lt;br /&gt;
if [ -d $DEST ]&lt;br /&gt;
then&lt;br /&gt;
echo &amp;quot;&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
mkdir $DEST&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -h $APP ]&lt;br /&gt;
then&lt;br /&gt;
echo &amp;quot;Link already exists for... ${APP}&amp;quot;&lt;br /&gt;
exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d $APP ]&lt;br /&gt;
then&lt;br /&gt;
echo &amp;quot;Moving $APP to $DEST...&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
echo &amp;quot;Not a valid application directory.&amp;quot;&lt;br /&gt;
echo &amp;quot;Usage: mvapp com.org.appname &amp;quot;&lt;br /&gt;
exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
cd $ORG&lt;br /&gt;
echo &amp;quot;Size of /var/usr/palm/applications before move... &amp;quot;&lt;br /&gt;
du -sh .&lt;br /&gt;
&lt;br /&gt;
# move over to USB drive&lt;br /&gt;
cp -r $ORG/$1 $DEST&lt;br /&gt;
if [ $? != 0 ]&lt;br /&gt;
then&lt;br /&gt;
echo &amp;quot;Copy failed. Leaving app in $ORG.&amp;quot;&lt;br /&gt;
exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
rm -r $ORG/$1&lt;br /&gt;
&lt;br /&gt;
# create the link&lt;br /&gt;
ln -s $DEST/$1 $ORG/$1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# rescan luna in case it's needed&lt;br /&gt;
luna-send -n 1 palm://com.palm.applicationManager/rescan {}&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$1 moved and linked.&amp;quot;&lt;br /&gt;
echo &amp;quot;Size of $ORG after move... &amp;quot;&lt;br /&gt;
du -sh .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod 777 /usr/bin/mvapp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use, find the largest apps in /var/usr/palm/applications...&lt;br /&gt;
&amp;lt;code&amp;gt;du -s /var/usr/palm/applications |sort -n&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows the largest apps last... IE....&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
6720 com.accuweather.palm&amp;lt;br&amp;gt;&lt;br /&gt;
6720 net.likeme&amp;lt;br&amp;gt;&lt;br /&gt;
6816 com.goodrec.app.goodfood&amp;lt;br&amp;gt;&lt;br /&gt;
7232 com.apps.forwebos.ahs&amp;lt;br&amp;gt;&lt;br /&gt;
7456 com.citysearch.mobile&amp;lt;br&amp;gt;&lt;br /&gt;
8352 com.apnews.webos&amp;lt;br&amp;gt;&lt;br /&gt;
8512 com.fandango.app.fandango&amp;lt;br&amp;gt;&lt;br /&gt;
8672 com.palm.app.musicplayerremix&amp;lt;br&amp;gt;&lt;br /&gt;
10304 com.shortcovers.palm.pre&amp;lt;br&amp;gt;&lt;br /&gt;
10432 com.fusioncreativestudios.deadman&amp;lt;br&amp;gt;&lt;br /&gt;
10656 com.ulocate.app.where&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
To move com.ulocate.app.where, use the script...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp com.ulocate.app.where&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should now work in the new location thanks to the link. Test each app to make sure it works before doing another. I don't recommend looping the script to do every app in the dir or to link the entire app dir. File attributes are lost on the move, which some apps may need. You need to test each app after a move.&lt;br /&gt;
&lt;br /&gt;
If you have issues with an app, remove it and reinstall through the respective app catalog or homebrew installer app.&lt;br /&gt;
&lt;br /&gt;
'''Proposal'''&lt;br /&gt;
&lt;br /&gt;
Would like to propose that PreWare, WebOS Quick Install and other Pre installer apps provide an option to move any app in /var to the /media fs and create a link per the code above. Also provide option to move back. Could make a backup retaining file attributes using tar and restore that way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Risks, Issues, Dependencies'''&lt;br /&gt;
&lt;br /&gt;
- File attributes of linux fs are not copied over to fat fs.  May not work with apps that rely on file attributes.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Patch_Phone_Edit_Dialer_Theme&amp;diff=6003</id>
		<title>Talk:Patch Phone Edit Dialer Theme</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Patch_Phone_Edit_Dialer_Theme&amp;diff=6003"/>
		<updated>2009-09-29T18:52:58Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Skinning===&lt;br /&gt;
Its seems like this method of &amp;quot;skinning&amp;quot; could be simplified and applied to all applications.  Obviously I dont think we are at the point of changing the themes live from within the phone, but until then there could at least be a directory hosted that has app skins, or maybe use the quilt directory.&lt;br /&gt;
&lt;br /&gt;
If the default skin was included with all the user created skins, all you would need to do is tar up the skins, and extract them into the directory overwriting the existing png files.  Users could then grab the default from the site if they want to revert.  essentially cuts the time, and ease down to 2 commands.  copy the tar to / and extract.  Done.  The best part is you could apply this to files other than png's too.  Say you wanted to make a skin for the mail app that changes the app colors to dark shades with a white or light colored font, you could override the existing files ( js, css, xml, etc).&lt;br /&gt;
&lt;br /&gt;
The only conflict i see is if you get into the realm of multiple patches for the same app that touch the same file.  Does quilt manage this/have some kind of smart merge functionality?&lt;br /&gt;
===WebOS 1.2===&lt;br /&gt;
What has changed in the dialer themes in WebOS 1.2? If you use any of the previous themes, when you go to the phone call list, the fader is incorrect; however, none of the sizes changed, and looking at the images, I can't see what the changed entailed; however, they now don't work correctly. Anyone have any clues?&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 18:52, 29 September 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Patch_Enable_LED_Notifications&amp;diff=6002</id>
		<title>Talk:Patch Enable LED Notifications</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Patch_Enable_LED_Notifications&amp;diff=6002"/>
		<updated>2009-09-29T18:46:17Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Interesting. Did&lt;br /&gt;
''/usr/palm/applications/com.app.screenlock''&lt;br /&gt;
become&lt;br /&gt;
''/usr/palm/applications/com.'''palm'''.app.screenlock''&lt;br /&gt;
after the original leaked WebOSDoctor, or was that just a typo in the original?&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 18:44, 29 September 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Patch_Enable_LED_Notifications&amp;diff=6001</id>
		<title>Talk:Patch Enable LED Notifications</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Patch_Enable_LED_Notifications&amp;diff=6001"/>
		<updated>2009-09-29T18:45:17Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Interesting. Did&lt;br /&gt;
'''/usr/palm/applications/com.app.screenlock'''&lt;br /&gt;
become&lt;br /&gt;
'''/usr/palm/applications/com.palm.app.screenlock'''&lt;br /&gt;
after the original leaked WebOSDoctor, or was that just a typo in the original?&lt;br /&gt;
&lt;br /&gt;
--[[User:Hparsons|Herb]] 18:44, 29 September 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Patch_Enable_LED_Notifications&amp;diff=6000</id>
		<title>Talk:Patch Enable LED Notifications</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Patch_Enable_LED_Notifications&amp;diff=6000"/>
		<updated>2009-09-29T18:44:57Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: New page: Interesting. Did '''/usr/palm/applications/com.app.screenlock''' become '''/usr/palm/applications/com.palm.app.screenlock''' after the original leaked WebOSDoctor, or was that just a typo ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Interesting. Did&lt;br /&gt;
'''/usr/palm/applications/com.app.screenlock'''&lt;br /&gt;
become&lt;br /&gt;
'''/usr/palm/applications/com.palm.app.screenlock'''&lt;br /&gt;
after the original leaked WebOSDoctor, or was that just a typo in the original&lt;br /&gt;
--[[User:Hparsons|Herb]] 18:44, 29 September 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_Enable_LED_Notifications&amp;diff=5999</id>
		<title>Patch Enable LED Notifications</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_Enable_LED_Notifications&amp;diff=5999"/>
		<updated>2009-09-29T18:39:39Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This patch needs a rooted Pre to manually make these changes though a command line.&lt;br /&gt;
&lt;br /&gt;
Two files need to be modified.&lt;br /&gt;
&lt;br /&gt;
/usr/palm/applications/com.palm.app.screenlock/app/controllers/securityconfig-assistant.js&lt;br /&gt;
&lt;br /&gt;
Uncomment lines 54,55,248-251.&lt;br /&gt;
&lt;br /&gt;
Here is what the files should look like:&lt;br /&gt;
&amp;lt;source lang=text&amp;gt;&lt;br /&gt;
Lines 54/55:&lt;br /&gt;
		//this.controller.setupWidget('blinkAlerts', this.onOffToggleOpt, this.ledThrobberToggleModel);&lt;br /&gt;
		//Mojo.Event.listen($('blinkAlerts'),'mojo-property-change', this.toggleLEDThrobber.bindAsEventListener(this));&lt;br /&gt;
&lt;br /&gt;
Should be changed to: &lt;br /&gt;
		this.controller.setupWidget('blinkAlerts', this.onOffToggleOpt, this.ledThrobberToggleModel);&lt;br /&gt;
		Mojo.Event.listen($('blinkAlerts'),'mojo-property-change', this.toggleLEDThrobber.bindAsEventListener(this));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=text&amp;gt;&lt;br /&gt;
Lines 248-251:&lt;br /&gt;
                /*if (payload.LEDThrobberEnabled != undefined) {&lt;br /&gt;
			this.ledThrobberToggleModel.value = payload.LEDThrobberEnabled;&lt;br /&gt;
			this.controller.modelChanged(this.ledThrobberToggleModel, this);&lt;br /&gt;
		}*/&lt;br /&gt;
&lt;br /&gt;
Should be changed to:&lt;br /&gt;
                if (payload.LEDThrobberEnabled != undefined) {&lt;br /&gt;
			this.ledThrobberToggleModel.value = payload.LEDThrobberEnabled;&lt;br /&gt;
			this.controller.modelChanged(this.ledThrobberToggleModel, this);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/usr/palm/applications/com.palm.app.screenlock/app/views/securityconfig/securityconfig-scene.html:&lt;br /&gt;
&lt;br /&gt;
Uncomment 92-97 and 101-103.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=text&amp;gt;&lt;br /&gt;
Lines 92-97:&lt;br /&gt;
                        &amp;lt;!--&amp;lt;div class=&amp;quot;palm-row last&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;palm-row-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;div x-mojo-element=&amp;quot;ToggleButton&amp;quot; id=&amp;quot;blinkAlerts&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
					&amp;lt;div class=&amp;quot;title capitalize&amp;quot; x-mojo-loc=''&amp;gt;Blink notifications&amp;lt;/div&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/div&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Should be changed to:&lt;br /&gt;
                        &amp;lt;div class=&amp;quot;palm-row last&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;div class=&amp;quot;palm-row-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;div x-mojo-element=&amp;quot;ToggleButton&amp;quot; id=&amp;quot;blinkAlerts&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
					&amp;lt;div class=&amp;quot;title capitalize&amp;quot; x-mojo-loc=''&amp;gt;Blink notifications&amp;lt;/div&amp;gt;&lt;br /&gt;
				&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=text&amp;gt;&lt;br /&gt;
Lines 101-103:&lt;br /&gt;
        &amp;lt;!--&amp;lt;div class=&amp;quot;palm-info-text single&amp;quot; x-mojo-loc=''&amp;gt;&lt;br /&gt;
		The gesture area blinks when new notifications arrive.&lt;br /&gt;
	&amp;lt;/div&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Should be changed to:&lt;br /&gt;
        &amp;lt;div class=&amp;quot;palm-info-text single&amp;quot; x-mojo-loc=''&amp;gt;&lt;br /&gt;
		The gesture area blinks when new notifications arrive.&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Update_1.2.0&amp;diff=5417</id>
		<title>Talk:Update 1.2.0</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Update_1.2.0&amp;diff=5417"/>
		<updated>2009-09-06T08:31:44Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Could I get some others to verify the information about Quick Install not working? I used it to install File Coaster on my Pre with 1.2, and it worked.&amp;lt;br&amp;gt;&lt;br /&gt;
--[[User:Hparsons|Herb]] 08:31, 6 September 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Update_1.2.0&amp;diff=5416</id>
		<title>Talk:Update 1.2.0</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Update_1.2.0&amp;diff=5416"/>
		<updated>2009-09-06T08:31:22Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Could I get some others to verify the information about Quick Install not working? I used it to install File Coaster on my Pre with 1.2, and it worked.&lt;br /&gt;
--[[User:Hparsons|Herb]] 08:31, 6 September 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Update_1.2.0&amp;diff=5415</id>
		<title>Talk:Update 1.2.0</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Update_1.2.0&amp;diff=5415"/>
		<updated>2009-09-06T08:31:05Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: New page: Could I get some others to verify the information about Quick Install not working? I used it to install File Coaster on my Pre with 1.2, and it worked.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Could I get some others to verify the information about Quick Install not working? I used it to install File Coaster on my Pre with 1.2, and it worked.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Update_1.2.0&amp;diff=5414</id>
		<title>Update 1.2.0</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Update_1.2.0&amp;diff=5414"/>
		<updated>2009-09-06T08:29:37Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Put all information about Update 1.2 here, including changes made, current development ideas, etc.&lt;br /&gt;
&lt;br /&gt;
== Disabled ==&lt;br /&gt;
* A vary of patches including the OnScreen Keyboard. &lt;br /&gt;
* Flashlight app does not work anymore.&lt;br /&gt;
* All of the messaging mods, patches, and edits don't work anymore. However, thing such as forwarding a message, you can copy-paste to forward.&lt;br /&gt;
* Latest version of Quick Install does not recognize the Pre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Changes ==&lt;br /&gt;
&lt;br /&gt;
* Find-as-you-type search support in Email&lt;br /&gt;
* App Catalog updated to support purchasing apps&lt;br /&gt;
* Web browser enhanced&lt;br /&gt;
* auto zooms to forms&lt;br /&gt;
* download in browser enabled (including opening pdfs)&lt;br /&gt;
* better rendering of mobile pages&lt;br /&gt;
* Orange+click context menu on links&lt;br /&gt;
* save images&lt;br /&gt;
* &amp;quot;Real&amp;quot; copy and paste&lt;br /&gt;
* shift tap to select areas of text in the browser allows for copy and paste.&lt;br /&gt;
* Select All option in Edit menu&lt;br /&gt;
* Save images in browser(Not GIF, assuming JPG and PNG only, Orange+click to do this)&lt;br /&gt;
* Clock app allows you to turn off alarms when mute switch is on&lt;br /&gt;
* The full Facebook page now saves your login info, and is much easier to use because of auto zooming to text boxes&lt;br /&gt;
* Speed increases across the board, notifications are much snappier&lt;br /&gt;
* Dialer is snappy, minimal to no lag on anything&lt;br /&gt;
* Selecting text and scrolling through text boxes is smoother, more accurate, and selects full words now&lt;br /&gt;
* Can now disable Data(EVDO) and use WiFi in conjunction with standard voice service(Major battery saver, though there is an issue with it, you cannot make WiFi stay active when the screen is off and the phone isn't plugged in)&lt;br /&gt;
* Can now copy entire conversations in Messager&lt;br /&gt;
* Displays phone number when using the phone, instead of just Mobile or Home etc&lt;br /&gt;
* If you are on the main screen or launcher.. in you press gesture+v to paste, it will start a global search with whatever you pasted.&lt;br /&gt;
* Tasks now gives the option to sort in &amp;quot;My Order&amp;quot; (how things were entered), by due date, or priority.&lt;br /&gt;
* Email search, though it only searches subject and sender right now&lt;br /&gt;
* No more having to manually link AIM contacts to people if you already have that AIM name in the Google profile&lt;br /&gt;
* The default Pre Ringtone has changed&lt;br /&gt;
* Text Notifications now include a contact picture&lt;br /&gt;
* Pinch to expand emails has been removed.&lt;br /&gt;
* Updated mojo framework (200.18) on 1.1 it was 191.15(Probably responsible for the performance increases across the board)&lt;br /&gt;
* Sprint Configuration is now v1.8&lt;br /&gt;
* There is a &amp;quot;Send all to Car Kit&amp;quot; option in the Contacts Application now&lt;br /&gt;
* Calendar now has additional preference setting for &amp;quot;Calendar View Options&amp;quot; to set the color of your calendars and to show them in the &amp;quot;All Calendars&amp;quot; view.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you find anything missing your are welcome to add it.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
== Package Manifest ==&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Update_1.2.0&amp;diff=5390</id>
		<title>Update 1.2.0</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Update_1.2.0&amp;diff=5390"/>
		<updated>2009-09-05T21:54:51Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: My change was incorrect. The phone wasn't seated properly.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Put all information about Update 1.2 here, including changes made, current development ideas, etc.&lt;br /&gt;
&lt;br /&gt;
== Disabled ==&lt;br /&gt;
&lt;br /&gt;
== Changes ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
== Package Manifest ==&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Update_1.2.0&amp;diff=5389</id>
		<title>Update 1.2.0</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Update_1.2.0&amp;diff=5389"/>
		<updated>2009-09-05T21:48:18Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: /* Changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Put all information about Update 1.2 here, including changes made, current development ideas, etc.&lt;br /&gt;
&lt;br /&gt;
== Disabled ==&lt;br /&gt;
&lt;br /&gt;
== Changes ==&lt;br /&gt;
* It appears that the device &amp;quot;goes to sleep&amp;quot; even when on the Touchstone.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
== Package Manifest ==&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Portal:Patches_to_webOS&amp;diff=5388</id>
		<title>Portal:Patches to webOS</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Portal:Patches_to_webOS&amp;diff=5388"/>
		<updated>2009-09-05T21:44:32Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__notoc__&lt;br /&gt;
{{portal-header&lt;br /&gt;
|This page lists patches to webOS existing apps which modify the behavior as shipped.  '''Note''' that these patches may be version specific and may be broken by future webOS updates.  Proceed with caution. If you get one that works please move it under the correct column, alphabetically, and title the page:&lt;br /&gt;
'''&amp;quot;Patch [application] [description]&amp;quot;''' (for application specific patches) &amp;lt;br&amp;gt;&lt;br /&gt;
'''&amp;quot;Patch webOS [description]&amp;quot;''' (for patches not part of a specific application)&lt;br /&gt;
}}&lt;br /&gt;
This page is undergoing structuring please contribute moving or adding new entries under the appropriate headings. For now put pages in alphabetical order. Each page should contain at least the basic headings&lt;br /&gt;
*1. '''Introduction''': A brief description to introduce people to the patch.&lt;br /&gt;
**1.1 '''Usage''':An explanation if it is needed on how to use the modification see Add/Delete Pages in the Launcher as an example.&lt;br /&gt;
*2. '''Editing Process''': Step by step instructions to manually edit. &lt;br /&gt;
*3. '''Patching Process''': Details for making the edits with a patch file and pointing people to the [[Applying Patches]] page if the patch is also provided in the webos-internals gitorious repository.&lt;br /&gt;
&lt;br /&gt;
{{portal-three-columns&lt;br /&gt;
|column1= &lt;br /&gt;
===webOS Update Information===&lt;br /&gt;
* [[Update 1.2.0|Update 1.2]]&amp;lt;br&amp;gt;'''''Note''' ''the 1.2 update is not official yet, but has been &amp;quot;leaked&amp;quot;''&lt;br /&gt;
* [[Update 1.1.0|Update 1.1]]&lt;br /&gt;
* [[Update 1.0.4|Update 1.0.4]] &lt;br /&gt;
* [[Update 1.0.3|Update 1.0.3]]&lt;br /&gt;
&lt;br /&gt;
===Patches that Need Work===&lt;br /&gt;
* [[Bugs]]&lt;br /&gt;
&lt;br /&gt;
|column2=&lt;br /&gt;
===Patch Ideas to be Created or in Progress===&lt;br /&gt;
&lt;br /&gt;
* [[More_Calculator_Functions|Accessing additional built-in calculator functions]]&lt;br /&gt;
* [[Add_Ability_To_Choose_Snooze_Length|Add Ability to Choose Snooze Length]]&lt;br /&gt;
* [[Add_Icon_To_Quick_Launcher|Add an icon to the quick launcher]]&lt;br /&gt;
* [[Changing Clipboard Data From The Shell|Changing Clipboard Data from the Shell]]&lt;br /&gt;
* [[Development_%26_Tweak_Ideas | Development &amp;amp; Tweaking Ideas]]&lt;br /&gt;
* [[Longer Vibrate|Longer Vibrate]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|column3=&lt;br /&gt;
===Notes===&lt;br /&gt;
These modifications lack a patch process, please add one to the details to the page and have it added to the webOS-internals gitorious repository. Info for the repository is on [[Applying Patches]].&lt;br /&gt;
&lt;br /&gt;
*Empty&lt;br /&gt;
}}&lt;br /&gt;
{{portal-three-columns&lt;br /&gt;
|column1= &lt;br /&gt;
==Patches to webOS apps==&lt;br /&gt;
===webOS 1.1 OK===&lt;br /&gt;
&lt;br /&gt;
* [[Patch Amazon Download Music over EVDO|Amazon: Download Music over EVDO]]&lt;br /&gt;
* [[Patch Browser Global Search Addons|Browser: Global Search Addons]]&lt;br /&gt;
* [[Patch Browser Delete Individual History Items|Browser: Delete Individual History Items]]&lt;br /&gt;
* [[Patch Browser Downloading Files|Browser: Downloading Files]] &lt;br /&gt;
* [[Patch Calendar Show All-Day Events in Month View|Calendar: Show All-Day Events in Month View]] &lt;br /&gt;
* [[Patch Camera 10 Second Countdown Timer|Camera: 10 Second Countdown Timer]]&lt;br /&gt;
* [[Patch Camera Shutter Sound On-Off Button|Camera: Shutter Sound On-Off Button]]&lt;br /&gt;
* [[Patch Camera Using Volume Buttons to Take a Picture|Camera: Using Volume Buttons to Take a Picture]]&lt;br /&gt;
* [[Patch Clock Changing Alarm Button Order and Snooze Duration|Clock: Changing Alarm Button Order and Snooze Duration]]&lt;br /&gt;
* [[Patch Clock Enabling the Hidden Theme|Clock: Enabling the Hidden Theme]]&lt;br /&gt;
* [[Patch Email Change &amp;quot;Running Late&amp;quot; Message|Email: Change &amp;quot;Running Late&amp;quot; Message]]&lt;br /&gt;
* [[Patch Email Confirm Deletion|Email: Confirm Deletion]]&lt;br /&gt;
* [[Patch Email Change Default Font for Replies-Forwards from Navy to Black|Email: Change Default Font for Replies/Forwards from Navy to Black]]&lt;br /&gt;
* [[Patch Email DeleteAll|Email: Delete All]]&lt;br /&gt;
* [[Patch Launcher Add or Delete Pages|Launcher: Add/Delete Pages]]&lt;br /&gt;
* [[Patch Launcher To Allow More Icons Per Row|Launcher: Allows More Icons Per Row]]&lt;br /&gt;
* [[Patch Launcher Hide-Delete The NASCAR App|Launcher: Hide/Delete The NASCAR App]]&lt;br /&gt;
* [[Patch Launcher Hide Media Sync Option|Launcher: Hide Media Sync Option]]&lt;br /&gt;
* [[Patch Launcher Reset Scroll on Page Change|Launcher: Reset Scroll on Page Change]]&lt;br /&gt;
* [[Patch Launcher Unhide the DeveloperMode App|Launcher: Unhide the DeveloperMode App]]&lt;br /&gt;
* [[Patch Messaging Adding Timestamps to All Received Messages|Messaging: Adding Timestamps to All Received Messages]]&lt;br /&gt;
* [[Patch Messaging Change &amp;quot;Enter Key&amp;quot; To Create Newline|Messaging: Change &amp;quot;Enter Key&amp;quot; To Create Newline]]&lt;br /&gt;
* [[Patch Messaging Character Counter|Messaging: Character Counter]]&lt;br /&gt;
* [[Patch Messaging Display Full Status Messages|Messaging: Display Full Status Messages]] &lt;br /&gt;
* [[Patch Messaging Force Offline Send Without Dialog|Messaging: Force Offline Send Without Dialog]]&lt;br /&gt;
* [[Patch Messaging Forward Messages|Messaging: Forward Messages]]&lt;br /&gt;
* [[Patch Messaging Jump Forward, Backward One Word at a Time|Messaging: Jump Forward, Backward One Word at a Time]]&lt;br /&gt;
* [[Patch Messaging Landscape Orientation|Messaging: Landscape Orientation]]&lt;br /&gt;
* [[Patch Messaging Sounds|Messaging: Message Sound]]&lt;br /&gt;
* [[Patch Messaging New Cards For Each Conversation|Messaging: New Cards For Each Conversation]]&lt;br /&gt;
* [[Patch MCraig Enabling Personals Category|mCraig: Enabling Personals Category]]&lt;br /&gt;
* [[Patch MediaPlayer Bookmarking|Music Player: Bookmarking]]&lt;br /&gt;
* [[Patch MediaPlayer Ignore 'A', 'An', and 'The' In Artist and Album names|Music Player: Ignore 'A', 'An', and 'The' in Artist and Album Names]]&lt;br /&gt;
* [[Patch PDF Viewer Change Orientation|PDF Viewer: Change Orientation]]&lt;br /&gt;
* [[Patch Phone Disable Various Call Sounds|Phone: Disable Various Call Sounds]]&lt;br /&gt;
* [[Patch Phone Edit Dialer Theme|Phone: Edit Dialer Theme]]&lt;br /&gt;
* [[Patch Phone Editing the Lock Screen|Phone: Editing the Lock Screen]]&lt;br /&gt;
* [[Patch Phone Show Call Duration in the Call Log|Phone: Show Call Duration in the Call Log]]&lt;br /&gt;
* [[Patch Tasks Always Show Details of New Tasks|Tasks: Always Show Details of New Tasks]]&lt;br /&gt;
* [[Patch WebOS Bypassing Lock Screen|Unlock: Bypass the Passcode Entry Screen]]&lt;br /&gt;
&lt;br /&gt;
===Fixed in 1.1 - No longer needed===&lt;br /&gt;
* [[Patch Email Fix Broken Formatting|Email: Fix Broken Formatting for E-mails]]&lt;br /&gt;
&lt;br /&gt;
===Not 1.1 compatible===&lt;br /&gt;
* [[Patch Camera Remote View|Camera: Remote View]]&lt;br /&gt;
* [[Patch Email Enable Landscape Viewing|Email: Enable Landscape Viewing]] &lt;br /&gt;
* [[Patch Email Fix Attachments|Email: Fix Attachments]]&lt;br /&gt;
* [[Patch Sudoku Disable Zooming|Sudoku: Disable Zooming]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
|column2=&lt;br /&gt;
==Patches not part of a specific app==&lt;br /&gt;
===webOS 1.1 OK===&lt;br /&gt;
* [[Patch webOS Boot Themes|Boot Themes]]&lt;br /&gt;
* [[Patch webOS Brightness|Brightness]]&lt;br /&gt;
* [[Patch webOS Bypassing Activation|Bypassing Activation]]&lt;br /&gt;
* [[Patch webOS Change Carrier String|Change Carrier String]]&lt;br /&gt;
* [[Change_the_default_notification.wav_Sound|Change the Default notification.wav Sound]]&lt;br /&gt;
* [[Patch webOS Changing the &amp;quot;Turn off after X&amp;quot; time|Changing the &amp;quot;Turn off after X&amp;quot; Time]]&lt;br /&gt;
* [[Patch webOS CPU Frequency or Voltage Scaling|CPU Frequency or Voltage Scaling]]&lt;br /&gt;
* [[Patch webOS Disable Charging Event Sounds|Disable Charging Event Sounds]]&lt;br /&gt;
* [[Patch webOS GPS Tracking|GPS Tracking]]&lt;br /&gt;
* [[Patch webOS Graphics|Graphics]]&lt;br /&gt;
* [[Patch webOS Hourly Chime|Hourly Chime]] &lt;br /&gt;
* [[Patch webOS Turning Off Dialpad Noise|Turning Off Dialpad Noise]]&lt;br /&gt;
* [[Patch webOS Keep Phone Awake While in Remote Session|Keep Phone Awake While in Remote Session]]&lt;br /&gt;
* [[Patch webOS Logging Information from Within Scripts|Logging Information from Within Scripts]]&lt;br /&gt;
* [[Patch webOS Modifying a Stock App While Keeping the Original|Modifying a Stock App While Keeping the Original]] &lt;br /&gt;
* [[Patch webOS Add Words to AutoCorrect Dictionary|Modify AutoCorrect Dictionary]]&lt;br /&gt;
* [[On Screen Keyboard]]&lt;br /&gt;
* [[Patch webOS Radio Power Switch|Radio Power Switch]]&lt;br /&gt;
* [[Patch webOS Random Wallpaper Switching|Random Wallpaper Switching]]&lt;br /&gt;
* [[Patch webOS Reverse Tunnel|Reverse Tunnel]] &lt;br /&gt;
* [[Patch webOS Roam Control|Roam Control]]&lt;br /&gt;
* [[Patch webOS Show Actual Battery Percentage | Show Actual Battery Percentage]]&lt;br /&gt;
* [[Screenlock On When Connected|Stay On While Connected]]&lt;br /&gt;
* [[Make USB Partition Writable via SFTP|Make USB Partition writable via SFTP]]&lt;br /&gt;
&lt;br /&gt;
===Fixed in 1.1 - No longer needed===&lt;br /&gt;
* Empty&lt;br /&gt;
&lt;br /&gt;
===Not 1.1 compatible===&lt;br /&gt;
* [[Patch webOS Email App Patch to Prompt for IPK Installation|Email App Patch to Prompt for IPK Installation]] &lt;br /&gt;
&lt;br /&gt;
|column3=&lt;br /&gt;
==== The following have not been checked for compatibility with webOS 1.1. ====&lt;br /&gt;
&lt;br /&gt;
* [[Browser_Plugins|Browser Plugins]]&lt;br /&gt;
* [[Camera Mod Alternate Sound Disable]]&lt;br /&gt;
* [[Changes_Alert/Notification_Sounds|Changes Alert/Notification Sounds]]&lt;br /&gt;
* [[Myavatar In Messaging App|Myavatar In Messaging App]] &lt;br /&gt;
* [[Photos Slideshow|Photos Slideshow]] &lt;br /&gt;
&lt;br /&gt;
==== The following are deprecated.  They have been replaced with methods which are easier or are moot in 1.1 ====&lt;br /&gt;
&lt;br /&gt;
* [[Installing Homebrew Apps With A Rooted Pre|Installing Homebrew Apps With A Linux Accessed Pre]]  &lt;br /&gt;
* [[Packaging Homebrew Apps for Stock Pre without Rooting|Packaging Homebrew Apps for Stock Pre without Accessing Linux]] &lt;br /&gt;
* [[Modifying Stock Applications|Modifying Stock Applications]] &lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Update_1.2.0&amp;diff=5387</id>
		<title>Update 1.2.0</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Update_1.2.0&amp;diff=5387"/>
		<updated>2009-09-05T21:40:56Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: New page: Put all information about Update 1.2 here, including changes made, current development ideas, etc.  == Disabled ==  == Changes ==  == Troubleshooting ==  == Package Manifest ==&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Put all information about Update 1.2 here, including changes made, current development ideas, etc.&lt;br /&gt;
&lt;br /&gt;
== Disabled ==&lt;br /&gt;
&lt;br /&gt;
== Changes ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
== Package Manifest ==&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Patch_webOS_GPS_Tracking&amp;diff=4513</id>
		<title>Talk:Patch webOS GPS Tracking</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Patch_webOS_GPS_Tracking&amp;diff=4513"/>
		<updated>2009-08-18T14:42:39Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Another Idea to use this hack with would be to save your current location to a file throughout a poling period, and then using that info to geotag photos taken with a camera. (Other than the Pre's obviously).&lt;br /&gt;
&lt;br /&gt;
Did we lose some information in moving this from one site to another? I see information about enabling cron, but it's only a link. I don't see the information about how cron relates to this script. I seem to remember previously, you called the script every 5 minutes, but not sure.&lt;br /&gt;
[[User:Hparsons|Herb]]&lt;br /&gt;
&lt;br /&gt;
I saw no response on this, so I did some comparisons and found the deleted cron entry (5 minutes), and readded it.&lt;br /&gt;
[[User:Hparsons|Herb]]&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Patch_webOS_GPS_Tracking&amp;diff=4339</id>
		<title>Talk:Patch webOS GPS Tracking</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Patch_webOS_GPS_Tracking&amp;diff=4339"/>
		<updated>2009-08-13T22:27:49Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Another Idea to use this hack with would be to save your current location to a file throughout a poling period, and then using that info to geotag photos taken with a camera. (Other than the Pre's obviously).&lt;br /&gt;
&lt;br /&gt;
Did we lose some information in moving this from one site to another? I see information about enabling cron, but it's only a link. I don't see the information about how cron relates to this script. I seem to remember previously, you called the script every 5 minutes, but not sure.&lt;br /&gt;
&lt;br /&gt;
I saw no response on this, so I did some comparisons and found the deleted cron entry (5 minutes), and readded it.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_webOS_GPS_Tracking&amp;diff=4338</id>
		<title>Patch webOS GPS Tracking</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_webOS_GPS_Tracking&amp;diff=4338"/>
		<updated>2009-08-13T22:24:46Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: This corrects the omissin of the entry in the &amp;quot;root&amp;quot; crontab&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
Here is my super happy awesome tracker script!&lt;br /&gt;
&lt;br /&gt;
== Script code ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
SECRET=make up any secret code here&lt;br /&gt;
DEST=put your e-mail address here&lt;br /&gt;
&lt;br /&gt;
track()&lt;br /&gt;
{&lt;br /&gt;
        export IFS=$'\n'&lt;br /&gt;
        for loc in $(luna-send -n 3 palm://com.palm.location/startTracking '{&amp;quot;appId&amp;quot;: &amp;quot;ILovePalm&amp;quot;, &amp;quot;subscribe&amp;quot;: true}' 2&amp;gt;&amp;amp;1); do&lt;br /&gt;
                send $(echo $loc|cut -f3- -d,)&lt;br /&gt;
        done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
send()&lt;br /&gt;
{&lt;br /&gt;
        echo &amp;quot;Sending Message: $1&amp;quot;&lt;br /&gt;
        msg=$(echo $1| sed s/\&amp;quot;/\\\\\&amp;quot;/g)&lt;br /&gt;
        luna-send -n 1 palm://com.palm.messaging/sendMessageFromCompose '{&amp;quot;recipientJSONArray&amp;quot;: [{&amp;quot;value&amp;quot;: &amp;quot;'${DEST}'&amp;quot;, &amp;quot;contactDisplay&amp;quot;: &amp;quot;'${DEST}'&amp;quot;, &amp;quot;prefix&amp;quot;: &amp;quot;to$A&amp;quot;, &amp;quot;identifier&amp;quot;: &amp;quot;palm_anon_element_8&amp;quot;}], &amp;quot;messageText&amp;quot;: &amp;quot;'&amp;quot;$msg&amp;quot;'&amp;quot;}'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
checkmsg()&lt;br /&gt;
{&lt;br /&gt;
        echo &amp;quot;.timeout 30000&amp;quot; &amp;gt; /tmp/trackersql&lt;br /&gt;
        cmd='SELECT messageText FROM com_palm_pim_FolderEntry WHERE timeStamp &amp;gt; (strftime(&amp;quot;%s000&amp;quot;, &amp;quot;now&amp;quot;)-600000);'&lt;br /&gt;
#       output=$(echo $cmd|sqlite3 /var/luna/data/dbdata/PalmDatabase.db3)&lt;br /&gt;
        output=$(echo $cmd|sqlite3 -init /tmp/trackersql /var/luna/data/dbdata/PalmDatabase.db3)&lt;br /&gt;
        echo $output|grep $SECRET 2&amp;gt; /dev/null &amp;gt; /dev/null&lt;br /&gt;
        status=$?&lt;br /&gt;
&lt;br /&gt;
        if [ $status = 0 ]; then&lt;br /&gt;
                track&lt;br /&gt;
        fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
checkmsg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation==&lt;br /&gt;
# mkdir -p /home/scripts&lt;br /&gt;
# Let's say you put the script in /home/scripts/track.sh&lt;br /&gt;
# rootfs_open -w&lt;br /&gt;
# Go [[Crond | here ]] to enable crond.&lt;br /&gt;
# Add the following line to /etc/cron/crontabs/root&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;*/5 * * * * /home/scripts/track.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Now just send the secret code you set in the script to $YOURNUMBER@messaging.sprintpcs.com (without dollar sign but as a ten digit number with area code prefix)&lt;br /&gt;
&amp;gt; Ex: 3335554444@messaging.sprintpcs.com where 333 is your area code, and 5554444 the rest of your phone number.&lt;br /&gt;
and it will send $DEST the GPS data for the device.&lt;br /&gt;
&lt;br /&gt;
Now, just take the latitude and longitude data and generate the URL. As to the other GPS parameter data available we'll have to investigate to see if Google Maps can take those parameters and how they map to the URL. ~Robi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
luna-send -n 1 palm://com.palm.location/getCurrentPosition {}&lt;br /&gt;
** Message: serviceResponse Handling: 2, {&amp;quot;errorCode&amp;quot;:0,&amp;quot;timestamp&amp;quot;:1.245799702311E12,&amp;quot;latitude&amp;quot;:37.48660683631897,&amp;quot;longitude&amp;quot;:-122.23269581794739,&amp;quot;horizAccuracy&amp;quot;:37.947330474853516,&amp;quot;heading&amp;quot;:178,&amp;quot;velocity&amp;quot;:0.75,&amp;quot;altitude&amp;quot;:-13,&amp;quot;vertAccuracy&amp;quot;:24}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which means we can transpose some of that to a Google Maps link:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
http://maps.google.com/?ie=UTF8&amp;amp;q=37.48660683631897,-122.23269581794739+(Heading:%20178%0DSpeed:%200.75%20mph)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you know more about the GPS parameters, let us know by updating the page. ~Robi&lt;br /&gt;
&lt;br /&gt;
* Added heading and speed parameters to the URL. If you hover over the pinpoint on the google map, you can see the information, as well as in the info window if you click on the pinpoint. -xluryan&lt;br /&gt;
&lt;br /&gt;
&amp;quot;If [ll=] is used without a query, then the map is centered at the point but no marker or info window is displayed.&amp;quot; To get around this, use q=[Lon,Lat] instead of ll=[Lon,Lat]. I changed the maps link above. -hopspitfire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Troubleshooting Tip:''' Make sure track.sh has the correct file permissions set. To encompass all possibilities, try 'chmod 755 /home/scripts/track.sh'. You can restrict permissions later if you wish. On Windows it's probably easiest to do this through WinSCP (right click&amp;gt;Properties&amp;gt;Permissions).&lt;br /&gt;
&lt;br /&gt;
== Development Ideas==&lt;br /&gt;
1.  Send response as a google maps link that clicked on shows the phones position on a map.&lt;br /&gt;
2.  Find a way to put a hook into message reception so that messages don't have to be checked with a cron job.  Even better if the message could be intercepted before appearing on the phone, it would be a useful way to track a stolen phone.&lt;br /&gt;
3. After implementing the script that emails me every 20 minutes, it occured to me that the following would be great:&lt;br /&gt;
  3a. The ability to log the entries instead of just sending an email, and maintain a preset number of logged entries (say the last 24 entries).&lt;br /&gt;
  3b. Using the original implementation - send a message to the device to have the logged information emailed. This would show a &amp;quot;track&amp;quot; of where the device has been.&lt;br /&gt;
  3c. Control of the number of log entries, and the frequency.&lt;br /&gt;
== Another Simple Method==&lt;br /&gt;
Why not use this script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
pos=$(luna-send -n 2 palm://com.palm.location/startTracking '{&amp;quot;appId&amp;quot;: &amp;quot;ILovePalm&amp;quot;, &amp;quot;subscribe&amp;quot;: true}' 2&amp;gt;&amp;amp;1 | tail -1 | cut -d, -f4,5,8 | sed -r 's/[^-\.0-9,]//g')&lt;br /&gt;
&lt;br /&gt;
lat=$(echo $pos | cut -d, -f1)&lt;br /&gt;
lon=$(echo $pos | cut -d, -f2)&lt;br /&gt;
spd=$(echo $pos | cut -d, -f3)&lt;br /&gt;
bat=$(grep BATTERY: /var/log/messages | tail -1 | awk '{print $8}' | sed 's/%,//')&lt;br /&gt;
&lt;br /&gt;
ret=$(wget -qO- &amp;quot;http://yoursite.com/trackme/$1/requests.php?lat=$lat&amp;amp;lon=$lon&amp;amp;speed=$spd&amp;amp;batt=$bat&amp;quot; | egrep -o '[0-9]+$')&lt;br /&gt;
exit $ret&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I have a web server setup with //requests.php// taking '''//lat//''', '''//lon//''', '''//speed//''', and '''//batt//''' arguments. Then it writes them to a file. Use the data however you want. I have mine plug into a google map and show me the data.&lt;br /&gt;
&lt;br /&gt;
Just set up a cron job to call the script every 20 minutes or so. Hardly effects battery life at all :)&lt;br /&gt;
&lt;br /&gt;
Credit to ddoc for info on how to grab battery status. I would still like to find a more efficient way of grabbing battery level rather than searching through the entire message log. Though for now, it works exactly like it should.&lt;br /&gt;
&lt;br /&gt;
Here's the Method for getting battery status:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;Mojo.Service.Request('palm://com.palm.power/com/palm/power/', {method: 'batteryStatusQuery',});&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
-pEEf&lt;br /&gt;
&lt;br /&gt;
== Email a URL to open Google Maps showing location of phone.==&lt;br /&gt;
Below is a code snippet that will send an email with working URL to open Google Map and show you the location of your phone.&lt;br /&gt;
The cron job mentioned above is setup to call this script every 20 minutes on my machine...works great.  I let GMAIL archive them.&lt;br /&gt;
If the phone gets stolen, I can find it as long as it has service.&lt;br /&gt;
&lt;br /&gt;
The larger Accuracy is, the further away the coordinates output will be from your actual position.&lt;br /&gt;
&lt;br /&gt;
Added speed &amp;amp; heading to Google URL. Is there any way to have the sent messages not appear in the Text Messaging app, or to use the shell to email the output via mailx? Until I figure out a built-in mail function, you can use an alternative I'm testing that uses a server's mailx command: echo &amp;quot;$msg2&amp;quot; | /opt/bin/ssh -x user@server /bin/mailx $DEST     -hopspitfire&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
DEST=YOUR_USERID@DOMAIN.com&lt;br /&gt;
&lt;br /&gt;
pos=$(luna-send -n 2 palm://com.palm.location/startTracking '{&amp;quot;appId&amp;quot;: &amp;quot;ILovePalm&amp;quot;, &amp;quot;subscribe&amp;quot;: true}' 2&amp;gt;&amp;amp;1 | tail -1 | cut -d, -f4,5,6,7,8 | sed -r 's/[^-\.0-9,]//g')&lt;br /&gt;
&lt;br /&gt;
lat=$(echo $pos | cut -d, -f1)&lt;br /&gt;
lon=$(echo $pos | cut -d, -f2)&lt;br /&gt;
acc=$(echo $pos | cut -d, -f3)&lt;br /&gt;
dir=$(echo $pos | cut -d, -f4)&lt;br /&gt;
spd=$(echo $pos | cut -d, -f5)&lt;br /&gt;
bat=$(grep BATTERY: /var/log/messages | tail -1 | awk '{print $8}' | sed 's/%,//')&lt;br /&gt;
&lt;br /&gt;
now=$(date)&lt;br /&gt;
&lt;br /&gt;
# Enable this below if you want to keep logs - not sure where to write them /var/home/root not the best place.&lt;br /&gt;
# echo $now,$lat,$lon,$acc,$dir,$spd,$bat &amp;gt;&amp;gt;mygpsdata.log&lt;br /&gt;
&lt;br /&gt;
#Build a message variable for all the data to be logged.&lt;br /&gt;
msg=$(echo $now,$lat,$lon,$acc,$dir,$spd,$bat )&lt;br /&gt;
&lt;br /&gt;
#Build message content to be sent&lt;br /&gt;
msg2=$(echo $now Battery:$bat Accuracy:$acc  &amp;quot;http://maps.google.com/maps?q=$lat%2C$lon+(Heading:%20$dir%0DSpeed:%20$spd)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ret1=$(luna-send -n 1 palm://com.palm.messaging/sendMessageFromCompose '{&amp;quot;recipientJSONArray&amp;quot;: [{&amp;quot;value&amp;quot;: &amp;quot;'${DEST}'&amp;quot;, &amp;quot;contactDisplay&amp;quot;: &amp;quot;'${DEST}'&amp;quot;, &amp;quot;prefix&amp;quot;: &amp;quot;to$A&amp;quot;, &amp;quot;identifier&amp;quot;: &amp;quot;palm_anon_element_8&amp;quot;}], &amp;quot;messageText&amp;quot;: &amp;quot;'&amp;quot;$msg2&amp;quot;'&amp;quot;}' 2&amp;gt;&amp;amp;1)&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This has been running every 20 minutes on my phone for the last 4 days, no problem.&lt;br /&gt;
-dld121&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_webOS_Random_Wallpaper_Switching&amp;diff=3776</id>
		<title>Patch webOS Random Wallpaper Switching</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_webOS_Random_Wallpaper_Switching&amp;diff=3776"/>
		<updated>2009-08-04T19:19:31Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
===Homebrew App for Random Wallpaper Switching===&lt;br /&gt;
&lt;br /&gt;
There is now a homebrew application (no rooting required) that allows this same function without performing the patch below.  It can be found at http://forums.precentral.net/homebrew-apps/195990-switcharoo-random-wallpaper-switching-v0-9-0-7-30-a.html&lt;br /&gt;
&lt;br /&gt;
=== Goal===&lt;br /&gt;
&lt;br /&gt;
On my desktop I have installed desktop drapes and my wallpaper switches every few hours to a random image in a wallpapers folder.  I wanted to have the same functionality on my pre.&lt;br /&gt;
&lt;br /&gt;
=== Requirements===&lt;br /&gt;
&lt;br /&gt;
* [[Portal:Accessing_Linux | Access to Linux]] on your Pre.&lt;br /&gt;
* [[Next_steps | Installed backdoor with sudo]]&lt;br /&gt;
* The PATH variable should be set up in your .profile in your backdoor account, for example mine is set as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin/:/usr/local/bin:/opt/bin:/opt/sbin&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Procedure===&lt;br /&gt;
&lt;br /&gt;
Note: I prefer doing everything with sudo and not logging in as root via the backdoor.  I would recommend getting into the same habit.&lt;br /&gt;
&lt;br /&gt;
==== Transfering Wallpapers====&lt;br /&gt;
&lt;br /&gt;
* Connect your Pre to your computer as a USB drive.&lt;br /&gt;
* Create a folder named 'wallpapers' on the Pre (if its not already there).&lt;br /&gt;
* Put all your wallpapers there.&lt;br /&gt;
* Disconnect the Pre from your PC.  You might want to make sure to disconnect it safely so everything writes to storage okay.&lt;br /&gt;
&lt;br /&gt;
Make sure to remove any wallpapers which you don't want to show up, though, since the switcher will pick a random one.&lt;br /&gt;
&lt;br /&gt;
==== Enable Write Access====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo mount -o remount,rw /&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Enabling Cron====&lt;br /&gt;
&lt;br /&gt;
Go [[Crond | here ]] to enable crond.&lt;br /&gt;
&lt;br /&gt;
==== The Wallpaper Switcher Script====&lt;br /&gt;
&lt;br /&gt;
First lets make a place for the script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo mkdir /opt/share/wallswitcher&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit wallswitcher.sh inside /opt/share/wallswitcher directory and place the following code there:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
  DIR='/media/internal/wallpapers/'&lt;br /&gt;
  IFS=&amp;quot;&lt;br /&gt;
&amp;quot;&lt;br /&gt;
  NUM_FILES=0&lt;br /&gt;
  for cur in `ls -1 $DIR`; do&lt;br /&gt;
    if [ -f &amp;quot;$DIR$cur&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
      NUM_FILES=$((NUM_FILES+1))&lt;br /&gt;
      eval &amp;quot;FILE_$NUM_FILES=$cur&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
  RANDOM_NUMBER=`awk &amp;quot;BEGIN{srand();print int($NUM_FILES * rand()) + 1;}&amp;quot;`&lt;br /&gt;
  eval &amp;quot;RANDOM_FILE=\$FILE_$((RANDOM_NUMBER))&amp;quot;&lt;br /&gt;
  IMPORT_STRING=&amp;quot;{ \&amp;quot;target\&amp;quot;: \&amp;quot;$DIR$RANDOM_FILE\&amp;quot; }&amp;quot;&lt;br /&gt;
  SET_STRING=&amp;quot;{ \&amp;quot;wallpaper\&amp;quot;: { \&amp;quot;wallpaperName\&amp;quot;: \&amp;quot;$RANDOM_FILE\&amp;quot;, \&amp;quot;wallpaperFile\&amp;quot;: \&amp;quot;$DIR$RANDOM_FILE\&amp;quot; } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  echo &amp;quot;Found $NUM_FILES in $DIR&amp;quot;&lt;br /&gt;
  echo &amp;quot;Using random file: $RANDOM_FILE&amp;quot;&lt;br /&gt;
  echo &amp;quot;JSON Import String: $IMPORT_STRING&amp;quot;&lt;br /&gt;
  echo &amp;quot;JSON Set String: $SET_STRING&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  eval &amp;quot;luna-send -n 1 palm://com.palm.systemservice/wallpaper/importWallpaper '$IMPORT_STRING'&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  eval &amp;quot;luna-send -n 1 palm://com.palm.systemservice/setPreferences '$SET_STRING'&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
main&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save the file and make sure it has execute permissions. The following command will insure that:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo chmod 755 /opt/share/wallswitcher/wallswitcher.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some notes on the script:&lt;br /&gt;
* I am a Java/Groovy developer mostly and am not as good at shell scripting as I would like.  Any improvements on the script itself are welcome&lt;br /&gt;
* The main piece of code that performs the switch are the two luna-send commands. T he first command is required if a wallpaper has never been used before and will generate some thumbnails and copy the main image into /media/internal/.wallpapers.  The second luna-send command actually performs the switch.&lt;br /&gt;
* This method currently only supports wallpapers sized to exactly 320 x 480 px.  The import luna-send call can take more parameters in its JSON string, such as scaling and x/y offsets from center.  I have not used these yet since all my wallpapers are correctly sized.&lt;br /&gt;
* Again, being a not-so-good shell developer, the way I obtain random numbers and use them is a bit wrong.  Awk is used to get a random number.  Instead of arrays (as in bash), dynamic variable naming is used.&lt;br /&gt;
* The DIR variable controls where the script looks for wallpapers—you can change it to where your pictures are instead.  Currently the scan is not recursive.&lt;br /&gt;
&lt;br /&gt;
==== Testing the Script====&lt;br /&gt;
&lt;br /&gt;
If you have more then one wallpaper in /media/internal/wallpapers, you can test the switcher with the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo /opt/share/wallswitcher/wallswitcher.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response should look something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Found 24 in /media/internal/wallpapers/&lt;br /&gt;
Using random file: wall_409.jpg&lt;br /&gt;
JSON Import String: { &amp;quot;target&amp;quot;: &amp;quot;/media/internal/wallpapers/wall_409.jpg&amp;quot; }&lt;br /&gt;
JSON Set String: { &amp;quot;wallpaper&amp;quot;: { &amp;quot;wallpaperName&amp;quot;: &amp;quot;wall_409.jpg&amp;quot;, &amp;quot;wallpaperFile&amp;quot;: &amp;quot;/media/internal/wallpapers/wall_409.jpg&amp;quot; } }&lt;br /&gt;
** Message: serviceResponse Handling: 2, { &amp;quot;returnValue&amp;quot;: true, &amp;quot;wallpaper&amp;quot;: { &amp;quot;wallpaperName&amp;quot;: &amp;quot;wall_409.jpg&amp;quot;, &amp;quot;wallpaperFile&amp;quot;: &amp;quot;\/media\/internal\/.wallpapers\/wall_409.jpg&amp;quot;, &amp;quot;wallpaperThumbFile&amp;quot;: &amp;quot;\/media\/internal\/.wallpapers\/thumbs\/wall_409.jpg&amp;quot; } }&lt;br /&gt;
** Message: serviceResponse Handling: 2, { &amp;quot;returnValue&amp;quot;: true }&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the two service calls are not returning correctly, something is wrong. Contact me (fxdemolisher[at]gmail[dawt]com) if you are stuck debugging it.&lt;br /&gt;
&lt;br /&gt;
==== Schedule the Script====&lt;br /&gt;
&lt;br /&gt;
This step is pretty easy. Since you have an empty root crontab set up all that needs to be done is a scheduling command.  Edit /etc/cron/crontabs/root and place the following scheduling test line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;*/1 * * * * /opt/share/wallswitcher/wallswitcher.sh &amp;gt; /opt/share/wallswitcher/wallswitcher.log 2&amp;gt;&amp;amp;1&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will execute the switcher every minute and log to the /opt/share/wallswitcher/wallswitcher.log log.  After you have it switching correctly every minute you can edit the cron definition to run as often as you like.  Mine is set to run at the top of the hour using this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;0 * * * * /opt/share/wallswitcher/wallswitcher.sh &amp;gt; /opt/share/wallswitcher/wallswitcher.log 2&amp;gt;&amp;amp;1&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: Do not use crontab -e as this does not really write to /etc/cron/crontabs/root and will be overriden when the device restarts.&lt;br /&gt;
&lt;br /&gt;
==== Restore Read-Only Filesystem====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo mount -o remount,ro /&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tested and verified as written by optik678.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Uses===&lt;br /&gt;
Modifications to original script for other uses&lt;br /&gt;
==== &amp;quot;Missing Pre&amp;quot; Wallpaper ====&lt;br /&gt;
This is a simple alternate use to create a wallpaper indicating the Pre is &amp;quot;missing&amp;quot; (&amp;quot;stolen&amp;quot; sounds rather harsh...)&lt;br /&gt;
&lt;br /&gt;
'''1.''' Create a PNG file and put in a directory of your choosing ( &amp;lt;YOUR-DIRECTORY&amp;gt; ) naming it &amp;quot;missingpre.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''2.''' Create a script file in a location of your choosing, naming it missingpre.sh (I use &amp;quot;/home/scripts&amp;quot;) using the following script (be sure to change &amp;lt;YOUR-DIRECTORY&amp;gt; to the actual directory where you stored your missingpre.png file):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
  MYFILE='&amp;lt;YOUR-DIRECTORY&amp;gt;/missingpre.png'&lt;br /&gt;
&lt;br /&gt;
  IMPORT_STRING=&amp;quot;{ \&amp;quot;target\&amp;quot;: \&amp;quot;$MYFILE\&amp;quot; }&amp;quot;&lt;br /&gt;
  SET_STRING=&amp;quot;{ \&amp;quot;wallpaper\&amp;quot;: { \&amp;quot;wallpaperName\&amp;quot;: \&amp;quot;mypre.png\&amp;quot;, \&amp;quot;wallpaperFile\&amp;quot;: \&amp;quot;$MYFILE\&amp;quot; } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  echo &amp;quot;JSON Import String: $IMPORT_STRING&amp;quot;&lt;br /&gt;
  echo &amp;quot;JSON Set String: $SET_STRING&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  eval &amp;quot;luna-send -n 1 palm://com.palm.systemservice/wallpaper/importWallpaper '$IMPORT_STRING'&amp;quot;&lt;br /&gt;
  eval &amp;quot;luna-send -n 1 palm://com.palm.systemservice/setPreferences '$SET_STRING'&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
main&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''3.''' Add the following to /etc/cron/crontabs/root file (using the directory you chose for your script):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;*/1 * * * * /home/scripts/missingpre.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''4.''' Restart crond&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;/sbin/stop crond &amp;amp;&amp;amp; /sbin/start crond&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Result.''' Every minute this will over-ride whatever wallpaper was set.&lt;br /&gt;
Obviously, this won't force anyone to return your device, nor will it work if someone knows what they're doing with the Pre, but if your wallpaper is obnoxious enough, you might get lucky and have them call you back.&lt;br /&gt;
&lt;br /&gt;
[[image:Missingpre.png]]&lt;br /&gt;
&lt;br /&gt;
=== Acknowledgements===&lt;br /&gt;
&lt;br /&gt;
I would like to thank this site and the wonderful hackers on it. I would not be able to do this without various examples from other pages.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=File:Missingpre.png&amp;diff=3775</id>
		<title>File:Missingpre.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=File:Missingpre.png&amp;diff=3775"/>
		<updated>2009-08-04T19:16:00Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: Image used in the wallpaper script alternate use page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image used in the wallpaper script alternate use page&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_webOS_Random_Wallpaper_Switching&amp;diff=3774</id>
		<title>Patch webOS Random Wallpaper Switching</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_webOS_Random_Wallpaper_Switching&amp;diff=3774"/>
		<updated>2009-08-04T19:06:37Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: Added alternative uses section, and &amp;quot;missingpre&amp;quot; script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
===Homebrew App for Random Wallpaper Switching===&lt;br /&gt;
&lt;br /&gt;
There is now a homebrew application (no rooting required) that allows this same function without performing the patch below.  It can be found at http://forums.precentral.net/homebrew-apps/195990-switcharoo-random-wallpaper-switching-v0-9-0-7-30-a.html&lt;br /&gt;
&lt;br /&gt;
=== Goal===&lt;br /&gt;
&lt;br /&gt;
On my desktop I have installed desktop drapes and my wallpaper switches every few hours to a random image in a wallpapers folder.  I wanted to have the same functionality on my pre.&lt;br /&gt;
&lt;br /&gt;
=== Requirements===&lt;br /&gt;
&lt;br /&gt;
* [[Portal:Accessing_Linux | Access to Linux]] on your Pre.&lt;br /&gt;
* [[Next_steps | Installed backdoor with sudo]]&lt;br /&gt;
* The PATH variable should be set up in your .profile in your backdoor account, for example mine is set as follows: &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin/:/usr/local/bin:/opt/bin:/opt/sbin&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Procedure===&lt;br /&gt;
&lt;br /&gt;
Note: I prefer doing everything with sudo and not logging in as root via the backdoor.  I would recommend getting into the same habit.&lt;br /&gt;
&lt;br /&gt;
==== Transfering Wallpapers====&lt;br /&gt;
&lt;br /&gt;
* Connect your Pre to your computer as a USB drive.&lt;br /&gt;
* Create a folder named 'wallpapers' on the Pre (if its not already there).&lt;br /&gt;
* Put all your wallpapers there.&lt;br /&gt;
* Disconnect the Pre from your PC.  You might want to make sure to disconnect it safely so everything writes to storage okay.&lt;br /&gt;
&lt;br /&gt;
Make sure to remove any wallpapers which you don't want to show up, though, since the switcher will pick a random one.&lt;br /&gt;
&lt;br /&gt;
==== Enable Write Access====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo mount -o remount,rw /&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Enabling Cron====&lt;br /&gt;
&lt;br /&gt;
Go [[Crond | here ]] to enable crond.&lt;br /&gt;
&lt;br /&gt;
==== The Wallpaper Switcher Script====&lt;br /&gt;
&lt;br /&gt;
First lets make a place for the script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo mkdir /opt/share/wallswitcher&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit wallswitcher.sh inside /opt/share/wallswitcher directory and place the following code there:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
  DIR='/media/internal/wallpapers/'&lt;br /&gt;
  IFS=&amp;quot;&lt;br /&gt;
&amp;quot;&lt;br /&gt;
  NUM_FILES=0&lt;br /&gt;
  for cur in `ls -1 $DIR`; do&lt;br /&gt;
    if [ -f &amp;quot;$DIR$cur&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
      NUM_FILES=$((NUM_FILES+1))&lt;br /&gt;
      eval &amp;quot;FILE_$NUM_FILES=$cur&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
  RANDOM_NUMBER=`awk &amp;quot;BEGIN{srand();print int($NUM_FILES * rand()) + 1;}&amp;quot;`&lt;br /&gt;
  eval &amp;quot;RANDOM_FILE=\$FILE_$((RANDOM_NUMBER))&amp;quot;&lt;br /&gt;
  IMPORT_STRING=&amp;quot;{ \&amp;quot;target\&amp;quot;: \&amp;quot;$DIR$RANDOM_FILE\&amp;quot; }&amp;quot;&lt;br /&gt;
  SET_STRING=&amp;quot;{ \&amp;quot;wallpaper\&amp;quot;: { \&amp;quot;wallpaperName\&amp;quot;: \&amp;quot;$RANDOM_FILE\&amp;quot;, \&amp;quot;wallpaperFile\&amp;quot;: \&amp;quot;$DIR$RANDOM_FILE\&amp;quot; } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  echo &amp;quot;Found $NUM_FILES in $DIR&amp;quot;&lt;br /&gt;
  echo &amp;quot;Using random file: $RANDOM_FILE&amp;quot;&lt;br /&gt;
  echo &amp;quot;JSON Import String: $IMPORT_STRING&amp;quot;&lt;br /&gt;
  echo &amp;quot;JSON Set String: $SET_STRING&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  eval &amp;quot;luna-send -n 1 palm://com.palm.systemservice/wallpaper/importWallpaper '$IMPORT_STRING'&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  eval &amp;quot;luna-send -n 1 palm://com.palm.systemservice/setPreferences '$SET_STRING'&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
main&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save the file and make sure it has execute permissions. The following command will insure that:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo chmod 755 /opt/share/wallswitcher/wallswitcher.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some notes on the script:&lt;br /&gt;
* I am a Java/Groovy developer mostly and am not as good at shell scripting as I would like.  Any improvements on the script itself are welcome&lt;br /&gt;
* The main piece of code that performs the switch are the two luna-send commands. T he first command is required if a wallpaper has never been used before and will generate some thumbnails and copy the main image into /media/internal/.wallpapers.  The second luna-send command actually performs the switch.&lt;br /&gt;
* This method currently only supports wallpapers sized to exactly 320 x 480 px.  The import luna-send call can take more parameters in its JSON string, such as scaling and x/y offsets from center.  I have not used these yet since all my wallpapers are correctly sized.&lt;br /&gt;
* Again, being a not-so-good shell developer, the way I obtain random numbers and use them is a bit wrong.  Awk is used to get a random number.  Instead of arrays (as in bash), dynamic variable naming is used.&lt;br /&gt;
* The DIR variable controls where the script looks for wallpapers—you can change it to where your pictures are instead.  Currently the scan is not recursive.&lt;br /&gt;
&lt;br /&gt;
==== Testing the Script====&lt;br /&gt;
&lt;br /&gt;
If you have more then one wallpaper in /media/internal/wallpapers, you can test the switcher with the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo /opt/share/wallswitcher/wallswitcher.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response should look something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Found 24 in /media/internal/wallpapers/&lt;br /&gt;
Using random file: wall_409.jpg&lt;br /&gt;
JSON Import String: { &amp;quot;target&amp;quot;: &amp;quot;/media/internal/wallpapers/wall_409.jpg&amp;quot; }&lt;br /&gt;
JSON Set String: { &amp;quot;wallpaper&amp;quot;: { &amp;quot;wallpaperName&amp;quot;: &amp;quot;wall_409.jpg&amp;quot;, &amp;quot;wallpaperFile&amp;quot;: &amp;quot;/media/internal/wallpapers/wall_409.jpg&amp;quot; } }&lt;br /&gt;
** Message: serviceResponse Handling: 2, { &amp;quot;returnValue&amp;quot;: true, &amp;quot;wallpaper&amp;quot;: { &amp;quot;wallpaperName&amp;quot;: &amp;quot;wall_409.jpg&amp;quot;, &amp;quot;wallpaperFile&amp;quot;: &amp;quot;\/media\/internal\/.wallpapers\/wall_409.jpg&amp;quot;, &amp;quot;wallpaperThumbFile&amp;quot;: &amp;quot;\/media\/internal\/.wallpapers\/thumbs\/wall_409.jpg&amp;quot; } }&lt;br /&gt;
** Message: serviceResponse Handling: 2, { &amp;quot;returnValue&amp;quot;: true }&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the two service calls are not returning correctly, something is wrong. Contact me (fxdemolisher[at]gmail[dawt]com) if you are stuck debugging it.&lt;br /&gt;
&lt;br /&gt;
==== Schedule the Script====&lt;br /&gt;
&lt;br /&gt;
This step is pretty easy. Since you have an empty root crontab set up all that needs to be done is a scheduling command.  Edit /etc/cron/crontabs/root and place the following scheduling test line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;*/1 * * * * /opt/share/wallswitcher/wallswitcher.sh &amp;gt; /opt/share/wallswitcher/wallswitcher.log 2&amp;gt;&amp;amp;1&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will execute the switcher every minute and log to the /opt/share/wallswitcher/wallswitcher.log log.  After you have it switching correctly every minute you can edit the cron definition to run as often as you like.  Mine is set to run at the top of the hour using this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;0 * * * * /opt/share/wallswitcher/wallswitcher.sh &amp;gt; /opt/share/wallswitcher/wallswitcher.log 2&amp;gt;&amp;amp;1&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: Do not use crontab -e as this does not really write to /etc/cron/crontabs/root and will be overriden when the device restarts.&lt;br /&gt;
&lt;br /&gt;
==== Restore Read-Only Filesystem====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo mount -o remount,ro /&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tested and verified as written by optik678.&lt;br /&gt;
&lt;br /&gt;
=== Alternate Uses===&lt;br /&gt;
Modifications to original script for other uses&lt;br /&gt;
==== &amp;quot;Missing Pre&amp;quot; Wallpaper ====&lt;br /&gt;
This is a simple alternate use to create a wallpaper indicating the Pre is &amp;quot;missing&amp;quot; (&amp;quot;stolen&amp;quot; sounds rather harsh...)&lt;br /&gt;
&lt;br /&gt;
'''1.''' Create a PNG file and put in a directory of your choosing ( &amp;lt;YOUR-DIRECTORY&amp;gt; ) naming it &amp;quot;missingpre.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''2.''' Create a script file in a location of your choosing, naming it missingpre.sh (I use &amp;quot;/home/scripts&amp;quot;) using the following script (be sure to change &amp;lt;YOUR-DIRECTORY&amp;gt; to the actual directory where you stored your missingpre.png file):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
  MYFILE='&amp;lt;YOUR-DIRECTORY&amp;gt;/missingpre.png'&lt;br /&gt;
&lt;br /&gt;
  IMPORT_STRING=&amp;quot;{ \&amp;quot;target\&amp;quot;: \&amp;quot;$MYFILE\&amp;quot; }&amp;quot;&lt;br /&gt;
  SET_STRING=&amp;quot;{ \&amp;quot;wallpaper\&amp;quot;: { \&amp;quot;wallpaperName\&amp;quot;: \&amp;quot;mypre.png\&amp;quot;, \&amp;quot;wallpaperFile\&amp;quot;: \&amp;quot;$MYFILE\&amp;quot; } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  echo &amp;quot;JSON Import String: $IMPORT_STRING&amp;quot;&lt;br /&gt;
  echo &amp;quot;JSON Set String: $SET_STRING&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  eval &amp;quot;luna-send -n 1 palm://com.palm.systemservice/wallpaper/importWallpaper '$IMPORT_STRING'&amp;quot;&lt;br /&gt;
  eval &amp;quot;luna-send -n 1 palm://com.palm.systemservice/setPreferences '$SET_STRING'&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
main&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''3.''' Add the following to /etc/cron/crontabs/root file (using the directory you chose for your script):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;*/1 * * * * /home/scripts/missingpre.sh&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''4.''' Restart crond&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;/sbin/stop crond &amp;amp;&amp;amp; /sbin/start crond&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Result.''' Every minute this will over-ride whatever wallpaper was set. Obviously, this won't force anyone to return your device, nor will it work if someone knows what they're doing with the Pre, but if your wallpaper is obnoxious enough, you might get lucky and have them call you back.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Acknowledgements===&lt;br /&gt;
&lt;br /&gt;
I would like to thank this site and the wonderful hackers on it. I would not be able to do this without various examples from other pages.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Patch_webOS_GPS_Tracking&amp;diff=3771</id>
		<title>Talk:Patch webOS GPS Tracking</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Patch_webOS_GPS_Tracking&amp;diff=3771"/>
		<updated>2009-08-04T15:54:10Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: How to use cron with this?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Another Idea to use this hack with would be to save your current location to a file throughout a poling period, and then using that info to geotag photos taken with a camera. (Other than the Pre's obviously).&lt;br /&gt;
&lt;br /&gt;
Did we lose some information in moving this from one site to another? I see information about enabling cron, but it's only a link. I don't see the information about how cron relates to this script. I seem to remember previously, you called the script every 5 minutes, but not sure.&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Portal:Patches_to_webOS&amp;diff=3318</id>
		<title>Portal:Patches to webOS</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Portal:Patches_to_webOS&amp;diff=3318"/>
		<updated>2009-07-31T22:45:11Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: Should have been column 2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__notoc__&lt;br /&gt;
{{portal-header&lt;br /&gt;
|This page lists patches to webOS existing apps which modify the behavior as shipped.  '''Note''' that these patches may be version specific and may be broken by future webOS updates.  Proceed with caution. If you get one that works please move it under the correct column, alphabetically, and title the page:&lt;br /&gt;
'''&amp;quot;Patch [application] [description]&amp;quot;'''&lt;br /&gt;
}}&lt;br /&gt;
This page is undergoing structuring please contribute moving or adding new entries under the appropriate headings. For now put pages in alphabetical order. Each page should contain at least the basic headings&lt;br /&gt;
*1. '''Introduction''': A brief description to introduce people to the patch.&lt;br /&gt;
**1.1 '''Usage''':An explanation if it is needed on how to use the modification see Add/Delete Pages in the Launcher as an example.&lt;br /&gt;
*2. '''Editing Process''': Step by step instructions to manually edit. &lt;br /&gt;
*3. '''Patching Process''': Details for making the edits with a patch file and pointing people to the [[Applying Patches]] page if the patch is also provided in the webos-internals gitorious repository.&lt;br /&gt;
&lt;br /&gt;
{{portal-three-columns&lt;br /&gt;
|column1= &lt;br /&gt;
===webOS Update Information===&lt;br /&gt;
* [[Update 1.1.0|Update 1.1]]&lt;br /&gt;
* [[Update 1.0.4|Update 1.0.4]] &lt;br /&gt;
* [[Update 1.0.3|Update 1.0.3]]&lt;br /&gt;
&lt;br /&gt;
===Patches that Need Work===&lt;br /&gt;
* [[Bugs]]&lt;br /&gt;
&lt;br /&gt;
|column2=&lt;br /&gt;
===Patch Ideas to be Created or in Progress===&lt;br /&gt;
&lt;br /&gt;
* [[Add_Ability_To_Choose_Snooze_Length|Add Ability to Choose Snooze Length]]&lt;br /&gt;
* [[Changing_clipboard_data_from_the_shell|Changing Clipboard Data from the Shell]]&lt;br /&gt;
* [[Development_%26_Tweak_Ideas | Development &amp;amp; Tweaking Ideas]]&lt;br /&gt;
* [[Longer Vibrate|Longer Vibrate]]&lt;br /&gt;
* [[More_Calculator_Functions|Accessing additional built-in calculator functions]]&lt;br /&gt;
&lt;br /&gt;
|column3=&lt;br /&gt;
===Notes===&lt;br /&gt;
These modifications lack a patch process, please add one to the details to the page and have it added to the webOS-internals gitorious repository. Info for the repository is on [[Applying Patches]].&lt;br /&gt;
&lt;br /&gt;
*Empty&lt;br /&gt;
}}&lt;br /&gt;
{{portal-three-columns&lt;br /&gt;
|column1= &lt;br /&gt;
==Patches to webOS apps==&lt;br /&gt;
===webOS 1.1 OK===&lt;br /&gt;
&lt;br /&gt;
* [[Always_Show_Details_of_New_Tasks|Always Show Details of New Tasks]]&lt;br /&gt;
* [[Patch Browser Global Search Addons|Browser: Global Search Addons]]&lt;br /&gt;
* [[Bookmarking_MediaPlayer|Bookmarking MediaPlayer]]&lt;br /&gt;
* [[Camera Mod Shutter Sound On-Off Button]]&lt;br /&gt;
* [[Camera Mod 10 Second Countdown Timer]]&lt;br /&gt;
* [[Patch Clock Enabling the Hidden Theme|Clock: Enabling the Hidden Theme]]&lt;br /&gt;
* [[Confirm Deletion on Email|Confirm Deletion on Email]]&lt;br /&gt;
* [[Patch Email Change Default Font for Replies-Forwards from Navy to Black|Email: Change Default Font for Replies/Forwards from Navy to Black]]&lt;br /&gt;
* [[GPS Tracking|GPS Tracking]]&lt;br /&gt;
* [[Patch Launcher Add or Delete Pages|Launcher: Add/Delete Pages]]&lt;br /&gt;
* [[Patch Launcher Hide-Delete The NASCAR App|Launcher: Hide/Delete The NASCAR App]]&lt;br /&gt;
* [[Patch Launcher Unhide the DeveloperMode App|Launcher: Unhide the DeveloperMode App]]&lt;br /&gt;
* [[Patch Messaging Character Counter|Messaging: Character Counter]]&lt;br /&gt;
* [[Patch Messaging Forward Messages|Messaging: Forward Messages]]&lt;br /&gt;
* [[Patch Messaging New Cards For Each Conversation|Messaging: New Cards For Each Conversation]]&lt;br /&gt;
* [[Patch MCraig Enabling Personals Category|mCraig: Enabling Personals Category]]&lt;br /&gt;
* [[Patch Phone Disable Missed-Dropped Call Sound|Phone: Disable Missed-Dropped Call Sound]]&lt;br /&gt;
* [[Patch Phone Edit Dialer Theme|Phone: Edit Dialer Theme]]&lt;br /&gt;
* [[Patch Phone Editing the Lock Screen|Phone: Editing the Lock Screen]]&lt;br /&gt;
* [[Using Volume Buttons to Take a Picture|Using Volume Buttons to Take a Picture]]&lt;br /&gt;
* [[Changing Alarm Clock Button Order and Snooze Duration]]&lt;br /&gt;
* [[Download Amazon Music over EVDO]]&lt;br /&gt;
* [[Change_Running_Late_Email|Change &amp;quot;Running Late&amp;quot; Email]]&lt;br /&gt;
&lt;br /&gt;
===Fixed in 1.1 - No longer needed===&lt;br /&gt;
* [[Patch Email Fix Broken Formatting|Email: Fix Broken Formatting for E-mails]]&lt;br /&gt;
&lt;br /&gt;
===Not 1.1 compatible===&lt;br /&gt;
* [[Camera_Remote_View|Camera Remote View]]&lt;br /&gt;
* [[Downloading From The Browser|Downloading From The Browser]] &lt;br /&gt;
* [[Enable Landscape Viewing in Email|Enable Landscape Viewing in Email]] &lt;br /&gt;
* [[Fix Email Attachments|Fix Email Attachments]] &lt;br /&gt;
&lt;br /&gt;
|column2=&lt;br /&gt;
==Patches not part of a specific app==&lt;br /&gt;
===webOS 1.1 OK===&lt;br /&gt;
* [[Boot_Themes|Boot Themes]]&lt;br /&gt;
* [[Brightness]]&lt;br /&gt;
* [[Bypassing_Activation|Bypassing Activation]]&lt;br /&gt;
* [[Change_Carrier_String|Change Carrier String]]&lt;br /&gt;
* [[Changing_the_%22Turn_off_after_X%22_time|Changing the &amp;quot;Turn off after X&amp;quot; Time]]&lt;br /&gt;
* [[CPU Frequency or Voltage Scaling|CPU Frequency or Voltage Scaling]]&lt;br /&gt;
* [[Disable Charging Event Alerts Sounds|Disable Charging Event Alerts Sounds]]&lt;br /&gt;
* [[Graphics]]&lt;br /&gt;
* [[Keep Phone From Entering Standby While in Remote Session]]&lt;br /&gt;
* [[Logging information from within scripts|Logging information from within scripts]]&lt;br /&gt;
* [[Message Sound|Message Sound]]&lt;br /&gt;
* [[Modifying a Stock App While Keeping the Original|Modifying a Stock App While Keeping the Original]] &lt;br /&gt;
* [[Add_Words_to_AutoCorrect_Dictionary|Modify AutoCorrect Dictionary]]&lt;br /&gt;
* [[Radio_Power_Switch|Phone On/Off Switch]]&lt;br /&gt;
* [[Random Wallpaper Switching|Random Wallpaper Switching]]&lt;br /&gt;
* [[Reverse Tunnel|Reverse Tunnel]] &lt;br /&gt;
* [[Roam Control|Roam Control]]&lt;br /&gt;
* [[Show_Actual_Battery_Percent | Show Actual Battery Percentage]]&lt;br /&gt;
&lt;br /&gt;
===Fixed in 1.1 - No longer needed===&lt;br /&gt;
* Empty&lt;br /&gt;
&lt;br /&gt;
===Not 1.1 compatible===&lt;br /&gt;
* [[Email App Patch to Prompt for IPK Installation|Email App Patch to Prompt for IPK Installation]] &lt;br /&gt;
&lt;br /&gt;
|column3=&lt;br /&gt;
==== The following have not been checked for compatibility with webOS 1.1. ====&lt;br /&gt;
&lt;br /&gt;
* [[Adding Timestamps to All Received Messages]]&lt;br /&gt;
* [[Browser_Plugins|Browser Plugins]]&lt;br /&gt;
* [[Camera Mod Alternate Sound Disable]]&lt;br /&gt;
* [[Change_Enter_To_Create_Newline_Instead_of_Send_Message|Change Enter to Create Newline Instead of Send Message]]&lt;br /&gt;
* [[Change_the_default_notification.wav_Sound|Change the Default notification.wav Sound]]&lt;br /&gt;
* [[Changes_Alert/Notification_Sounds|Changes Alert/Notification Sounds]]&lt;br /&gt;
* [[Display_Full_Status_Messages(Messenger)|Display Full Status Messages(Messenger)]] &lt;br /&gt;
* [[Hourly Chime|Hourly Chime]] &lt;br /&gt;
* [[Ignore 'A', 'An', and 'The' In Artist and Album names|Ignore 'A', 'An', and 'The' In Artist and Album names]] &lt;br /&gt;
* [[Installing Homebrew Apps With A Rooted Pre|Installing Homebrew Apps With A Linux Accessed Pre]]  &lt;br /&gt;
* [[Messaging Mod Force Offline Send Without Dialog]]&lt;br /&gt;
* [[Modifying Stock Applications|Modifying Stock Applications]] &lt;br /&gt;
* [[My notification|My notification]] &lt;br /&gt;
* [[Myavatar In Messaging App|Myavatar In Messaging App]] &lt;br /&gt;
* [[Packaging Homebrew Apps for Stock Pre without Rooting|Packaging Homebrew Apps for Stock Pre without Accessing Linux]] &lt;br /&gt;
* [[Patch PDF Viewer|PDF Viewer]]&lt;br /&gt;
* [[Photos Slideshow|Photos Slideshow]] &lt;br /&gt;
* [[Screenlock On When Connected|Stay On While Connected]]&lt;br /&gt;
* [[Show allday events in calendar month view]] &lt;br /&gt;
* [[Show Call Duration in the Call Log]] &lt;br /&gt;
* [[Patch Sudoku Disable Zooming|Sudoku: Disable Zooming]]&lt;br /&gt;
* [[Turning Off Dialpad Noise]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Portal:Patches_to_webOS&amp;diff=3317</id>
		<title>Portal:Patches to webOS</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Portal:Patches_to_webOS&amp;diff=3317"/>
		<updated>2009-07-31T22:43:56Z</updated>

		<summary type="html">&lt;p&gt;Hparsons: Moved standby added options to the 1.1 OK list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__notoc__&lt;br /&gt;
{{portal-header&lt;br /&gt;
|This page lists patches to webOS existing apps which modify the behavior as shipped.  '''Note''' that these patches may be version specific and may be broken by future webOS updates.  Proceed with caution. If you get one that works please move it under the correct column, alphabetically, and title the page:&lt;br /&gt;
'''&amp;quot;Patch [application] [description]&amp;quot;'''&lt;br /&gt;
}}&lt;br /&gt;
This page is undergoing structuring please contribute moving or adding new entries under the appropriate headings. For now put pages in alphabetical order. Each page should contain at least the basic headings&lt;br /&gt;
*1. '''Introduction''': A brief description to introduce people to the patch.&lt;br /&gt;
**1.1 '''Usage''':An explanation if it is needed on how to use the modification see Add/Delete Pages in the Launcher as an example.&lt;br /&gt;
*2. '''Editing Process''': Step by step instructions to manually edit. &lt;br /&gt;
*3. '''Patching Process''': Details for making the edits with a patch file and pointing people to the [[Applying Patches]] page if the patch is also provided in the webos-internals gitorious repository.&lt;br /&gt;
&lt;br /&gt;
{{portal-three-columns&lt;br /&gt;
|column1= &lt;br /&gt;
===webOS Update Information===&lt;br /&gt;
* [[Update 1.1.0|Update 1.1]]&lt;br /&gt;
* [[Update 1.0.4|Update 1.0.4]] &lt;br /&gt;
* [[Update 1.0.3|Update 1.0.3]]&lt;br /&gt;
&lt;br /&gt;
===Patches that Need Work===&lt;br /&gt;
* [[Bugs]]&lt;br /&gt;
&lt;br /&gt;
|column2=&lt;br /&gt;
===Patch Ideas to be Created or in Progress===&lt;br /&gt;
&lt;br /&gt;
* [[Add_Ability_To_Choose_Snooze_Length|Add Ability to Choose Snooze Length]]&lt;br /&gt;
* [[Changing_clipboard_data_from_the_shell|Changing Clipboard Data from the Shell]]&lt;br /&gt;
* [[Development_%26_Tweak_Ideas | Development &amp;amp; Tweaking Ideas]]&lt;br /&gt;
* [[Longer Vibrate|Longer Vibrate]]&lt;br /&gt;
* [[More_Calculator_Functions|Accessing additional built-in calculator functions]]&lt;br /&gt;
&lt;br /&gt;
|column3=&lt;br /&gt;
===Notes===&lt;br /&gt;
These modifications lack a patch process, please add one to the details to the page and have it added to the webOS-internals gitorious repository. Info for the repository is on [[Applying Patches]].&lt;br /&gt;
&lt;br /&gt;
*Empty&lt;br /&gt;
}}&lt;br /&gt;
{{portal-three-columns&lt;br /&gt;
|column1= &lt;br /&gt;
==Patches to webOS apps==&lt;br /&gt;
===webOS 1.1 OK===&lt;br /&gt;
&lt;br /&gt;
* [[Always_Show_Details_of_New_Tasks|Always Show Details of New Tasks]]&lt;br /&gt;
* [[Patch Browser Global Search Addons|Browser: Global Search Addons]]&lt;br /&gt;
* [[Bookmarking_MediaPlayer|Bookmarking MediaPlayer]]&lt;br /&gt;
* [[Camera Mod Shutter Sound On-Off Button]]&lt;br /&gt;
* [[Camera Mod 10 Second Countdown Timer]]&lt;br /&gt;
* [[Patch Clock Enabling the Hidden Theme|Clock: Enabling the Hidden Theme]]&lt;br /&gt;
* [[Confirm Deletion on Email|Confirm Deletion on Email]]&lt;br /&gt;
* [[Patch Email Change Default Font for Replies-Forwards from Navy to Black|Email: Change Default Font for Replies/Forwards from Navy to Black]]&lt;br /&gt;
* [[GPS Tracking|GPS Tracking]]&lt;br /&gt;
* [[Keep Phone From Entering Standby While in Remote Session]]&lt;br /&gt;
* [[Patch Launcher Add or Delete Pages|Launcher: Add/Delete Pages]]&lt;br /&gt;
* [[Patch Launcher Hide-Delete The NASCAR App|Launcher: Hide/Delete The NASCAR App]]&lt;br /&gt;
* [[Patch Launcher Unhide the DeveloperMode App|Launcher: Unhide the DeveloperMode App]]&lt;br /&gt;
* [[Patch Messaging Character Counter|Messaging: Character Counter]]&lt;br /&gt;
* [[Patch Messaging Forward Messages|Messaging: Forward Messages]]&lt;br /&gt;
* [[Patch Messaging New Cards For Each Conversation|Messaging: New Cards For Each Conversation]]&lt;br /&gt;
* [[Patch MCraig Enabling Personals Category|mCraig: Enabling Personals Category]]&lt;br /&gt;
* [[Patch Phone Disable Missed-Dropped Call Sound|Phone: Disable Missed-Dropped Call Sound]]&lt;br /&gt;
* [[Patch Phone Edit Dialer Theme|Phone: Edit Dialer Theme]]&lt;br /&gt;
* [[Patch Phone Editing the Lock Screen|Phone: Editing the Lock Screen]]&lt;br /&gt;
* [[Using Volume Buttons to Take a Picture|Using Volume Buttons to Take a Picture]]&lt;br /&gt;
* [[Changing Alarm Clock Button Order and Snooze Duration]]&lt;br /&gt;
* [[Download Amazon Music over EVDO]]&lt;br /&gt;
* [[Change_Running_Late_Email|Change &amp;quot;Running Late&amp;quot; Email]]&lt;br /&gt;
&lt;br /&gt;
===Fixed in 1.1 - No longer needed===&lt;br /&gt;
* [[Patch Email Fix Broken Formatting|Email: Fix Broken Formatting for E-mails]]&lt;br /&gt;
&lt;br /&gt;
===Not 1.1 compatible===&lt;br /&gt;
* [[Camera_Remote_View|Camera Remote View]]&lt;br /&gt;
* [[Downloading From The Browser|Downloading From The Browser]] &lt;br /&gt;
* [[Enable Landscape Viewing in Email|Enable Landscape Viewing in Email]] &lt;br /&gt;
* [[Fix Email Attachments|Fix Email Attachments]] &lt;br /&gt;
&lt;br /&gt;
|column2=&lt;br /&gt;
==Patches not part of a specific app==&lt;br /&gt;
===webOS 1.1 OK===&lt;br /&gt;
* [[Boot_Themes|Boot Themes]]&lt;br /&gt;
* [[Brightness]]&lt;br /&gt;
* [[Bypassing_Activation|Bypassing Activation]]&lt;br /&gt;
* [[Change_Carrier_String|Change Carrier String]]&lt;br /&gt;
* [[Changing_the_%22Turn_off_after_X%22_time|Changing the &amp;quot;Turn off after X&amp;quot; Time]]&lt;br /&gt;
* [[CPU Frequency or Voltage Scaling|CPU Frequency or Voltage Scaling]]&lt;br /&gt;
* [[Disable Charging Event Alerts Sounds|Disable Charging Event Alerts Sounds]]&lt;br /&gt;
* [[Graphics]]&lt;br /&gt;
* [[Logging information from within scripts|Logging information from within scripts]]&lt;br /&gt;
* [[Message Sound|Message Sound]]&lt;br /&gt;
* [[Modifying a Stock App While Keeping the Original|Modifying a Stock App While Keeping the Original]] &lt;br /&gt;
* [[Add_Words_to_AutoCorrect_Dictionary|Modify AutoCorrect Dictionary]]&lt;br /&gt;
* [[Radio_Power_Switch|Phone On/Off Switch]]&lt;br /&gt;
* [[Random Wallpaper Switching|Random Wallpaper Switching]]&lt;br /&gt;
* [[Reverse Tunnel|Reverse Tunnel]] &lt;br /&gt;
* [[Roam Control|Roam Control]]&lt;br /&gt;
* [[Show_Actual_Battery_Percent | Show Actual Battery Percentage]]&lt;br /&gt;
&lt;br /&gt;
===Fixed in 1.1 - No longer needed===&lt;br /&gt;
* Empty&lt;br /&gt;
&lt;br /&gt;
===Not 1.1 compatible===&lt;br /&gt;
* [[Email App Patch to Prompt for IPK Installation|Email App Patch to Prompt for IPK Installation]] &lt;br /&gt;
&lt;br /&gt;
|column3=&lt;br /&gt;
==== The following have not been checked for compatibility with webOS 1.1. ====&lt;br /&gt;
&lt;br /&gt;
* [[Adding Timestamps to All Received Messages]]&lt;br /&gt;
* [[Browser_Plugins|Browser Plugins]]&lt;br /&gt;
* [[Camera Mod Alternate Sound Disable]]&lt;br /&gt;
* [[Change_Enter_To_Create_Newline_Instead_of_Send_Message|Change Enter to Create Newline Instead of Send Message]]&lt;br /&gt;
* [[Change_the_default_notification.wav_Sound|Change the Default notification.wav Sound]]&lt;br /&gt;
* [[Changes_Alert/Notification_Sounds|Changes Alert/Notification Sounds]]&lt;br /&gt;
* [[Display_Full_Status_Messages(Messenger)|Display Full Status Messages(Messenger)]] &lt;br /&gt;
* [[Hourly Chime|Hourly Chime]] &lt;br /&gt;
* [[Ignore 'A', 'An', and 'The' In Artist and Album names|Ignore 'A', 'An', and 'The' In Artist and Album names]] &lt;br /&gt;
* [[Installing Homebrew Apps With A Rooted Pre|Installing Homebrew Apps With A Linux Accessed Pre]]  &lt;br /&gt;
* [[Messaging Mod Force Offline Send Without Dialog]]&lt;br /&gt;
* [[Modifying Stock Applications|Modifying Stock Applications]] &lt;br /&gt;
* [[My notification|My notification]] &lt;br /&gt;
* [[Myavatar In Messaging App|Myavatar In Messaging App]] &lt;br /&gt;
* [[Packaging Homebrew Apps for Stock Pre without Rooting|Packaging Homebrew Apps for Stock Pre without Accessing Linux]] &lt;br /&gt;
* [[Patch PDF Viewer|PDF Viewer]]&lt;br /&gt;
* [[Photos Slideshow|Photos Slideshow]] &lt;br /&gt;
* [[Screenlock On When Connected|Stay On While Connected]]&lt;br /&gt;
* [[Show allday events in calendar month view]] &lt;br /&gt;
* [[Show Call Duration in the Call Log]] &lt;br /&gt;
* [[Patch Sudoku Disable Zooming|Sudoku: Disable Zooming]]&lt;br /&gt;
* [[Turning Off Dialpad Noise]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Hparsons</name></author>
	</entry>
</feed>