<?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=Paraplegicemu</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=Paraplegicemu"/>
	<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/wiki/Special:Contributions/Paraplegicemu"/>
	<updated>2026-05-04T12:19:21Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Patch_webOS_Radio_Power_Switch&amp;diff=4369</id>
		<title>Talk:Patch webOS Radio Power Switch</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Patch_webOS_Radio_Power_Switch&amp;diff=4369"/>
		<updated>2009-08-15T03:14:28Z</updated>

		<summary type="html">&lt;p&gt;Paraplegicemu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What does this get around? The Pre does support this feature by default. If you put the phone in Airplane mode, you can enable both WiFi and Bluetooth while having the transmitter off. This seems completely unnecessary?&lt;br /&gt;
&lt;br /&gt;
I am trying to create a switch that toggles forced roaming, and I have tried to edit this patch so that it switches the forced roaming on and off, however to no avail. Any help with this from pEEf or HattCzech? It would be immensely appreciate as I have tried for 3+ days to get it to function. - paraplegicemu&lt;/div&gt;</summary>
		<author><name>Paraplegicemu</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Patch_webOS_Radio_Power_Switch&amp;diff=4368</id>
		<title>Talk:Patch webOS Radio Power Switch</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Patch_webOS_Radio_Power_Switch&amp;diff=4368"/>
		<updated>2009-08-15T03:14:16Z</updated>

		<summary type="html">&lt;p&gt;Paraplegicemu: Question?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What does this get around? The Pre does support this feature by default. If you put the phone in Airplane mode, you can enable both WiFi and Bluetooth while having the transmitter off. This seems completely unnecessary?&lt;br /&gt;
&lt;br /&gt;
I am trying to create a switch that toggles forced roaming, and I have tried to edit this patch so that it switches the forced roaming on and off, however to no avail. Any help with this from pEEf or HattCzech? It would be immensely appreciate as I have tried for 3+ days to get it to function.&lt;/div&gt;</summary>
		<author><name>Paraplegicemu</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Character_Counter&amp;diff=4061</id>
		<title>Patch Messaging Character Counter</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_Messaging_Character_Counter&amp;diff=4061"/>
		<updated>2009-08-08T15:33:15Z</updated>

		<summary type="html">&lt;p&gt;Paraplegicemu: Does not work&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
[[Image:Messaging_CharacterCounter.jpg|border|right|Character Counter]]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
One of the features I liked about my old Treo was the character counter built-in to the messaging application. I thought it would be useful on the Pre, so I modified the messaging application to show the current character count. I made this a separate page from the other modifications because it requires many code changes. Maybe the other messaging modifications could be rolled into this page as well.&lt;br /&gt;
&lt;br /&gt;
== Procedure ==&lt;br /&gt;
&lt;br /&gt;
Run the following commands:&lt;br /&gt;
&lt;br /&gt;
''In this example, I have the patch file located in my home directory under '''patches'''''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /&lt;br /&gt;
sudo patch -p0 --backup-if-mismatch &amp;lt; ~/patches/charcounter.patch&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is what you should see if it ran properly:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
patching file /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js&lt;br /&gt;
patching file /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js&lt;br /&gt;
patching file /usr/palm/applications/com.palm.app.messaging/app/utilities/CharacterCounter.js&lt;br /&gt;
patching file /usr/palm/applications/com.palm.app.messaging/app/views/chatview/chatview-scene.html&lt;br /&gt;
patching file /usr/palm/applications/com.palm.app.messaging/app/views/compose/compose-scene.html&lt;br /&gt;
patching file /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These modifications will require LunaSysMgr to be restarted. A rescan will not work. After you've run the commands above, run one more command:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pkill LunaSysMgr&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== charcounter.patch ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
diff -ur /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js /usr/palm/app-modified/com.palm.app.messaging/app/controllers/chatview-assistant.js&lt;br /&gt;
--- /usr/palm/applications/com.palm.app.messaging/app/controllers/chatview-assistant.js	2009-07-18 00:22:14.000000000 -0500&lt;br /&gt;
+++ /usr/palm/app-modified/com.palm.app.messaging/app/controllers/chatview-assistant.js	2009-07-23 23:13:19.000000000 -0500&lt;br /&gt;
@@ -160,6 +160,11 @@&lt;br /&gt;
 				segmentCountContainer: this.controller.get('segmentCounterContainer'),&lt;br /&gt;
 				segmentCountElement: this.controller.get('segmentCounter'),&lt;br /&gt;
 				setTextFieldValueFn: this.setTextFieldValue.bind(this)&lt;br /&gt;
+			},&lt;br /&gt;
+			charCounter: {&lt;br /&gt;
+				charCountContainer: this.controller.get('charCounterContainer'),&lt;br /&gt;
+				charCountElement: this.controller.get('charCounter'),&lt;br /&gt;
+				setTextFieldValueFn: this.setTextFieldValue.bind(this)&lt;br /&gt;
 			}&lt;br /&gt;
 		};&lt;br /&gt;
 &lt;br /&gt;
diff -ur /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js /usr/palm/app-modified/com.palm.app.messaging/app/controllers/compose-assistant.js&lt;br /&gt;
--- /usr/palm/applications/com.palm.app.messaging/app/controllers/compose-assistant.js	2009-07-18 00:22:14.000000000 -0500&lt;br /&gt;
+++ /usr/palm/app-modified/com.palm.app.messaging/app/controllers/compose-assistant.js	2009-07-23 23:14:11.000000000 -0500&lt;br /&gt;
@@ -140,6 +140,11 @@&lt;br /&gt;
 			segmentCountContainer: this.controller.get('segmentCounterContainer'),&lt;br /&gt;
 			segmentCountElement: this.controller.get('segmentCounter'),&lt;br /&gt;
 			setTextFieldValueFn: this.setTextFieldValue.bind(this)&lt;br /&gt;
+		},&lt;br /&gt;
+		charCounter: {&lt;br /&gt;
+			charCountContainer: this.controller.get('charCounterContainer'),&lt;br /&gt;
+			charCountElement: this.controller.get('charCounter'),&lt;br /&gt;
+			setTextFieldValueFn: this.setTextFieldValue.bind(this)&lt;br /&gt;
 		}&lt;br /&gt;
 	};&lt;br /&gt;
 &lt;br /&gt;
diff -ur /usr/palm/applications/com.palm.app.messaging/app/utilities/CharacterCounter.js /usr/palm/app-modified/com.palm.app.messaging/app/utilities/CharacterCounter.js&lt;br /&gt;
--- /usr/palm/applications/com.palm.app.messaging/app/utilities/CharacterCounter.js	2009-07-18 00:22:14.000000000 -0500&lt;br /&gt;
+++ /usr/palm/app-modified/com.palm.app.messaging/app/utilities/CharacterCounter.js	2009-07-23 23:47:32.000000000 -0500&lt;br /&gt;
@@ -39,6 +39,10 @@&lt;br /&gt;
 				containerElement: null,&lt;br /&gt;
 				valueElement: null&lt;br /&gt;
 			};&lt;br /&gt;
+			var charCounterUI = {&lt;br /&gt;
+				containerElement: null,&lt;br /&gt;
+				valueElement: null&lt;br /&gt;
+			};&lt;br /&gt;
 			&lt;br /&gt;
 						&lt;br /&gt;
 			// TODO: eventually we might want to implement some cleverness that counts&lt;br /&gt;
@@ -185,6 +189,20 @@&lt;br /&gt;
 				}&lt;br /&gt;
 			};&lt;br /&gt;
 			&lt;br /&gt;
+			var setCurrentCharCount = function(newCharCount) {&lt;br /&gt;
+				if(charCounterUI.valueElement)&lt;br /&gt;
+					charCounterUI.valueElement.update(newCharCount);&lt;br /&gt;
+				if(charCounterUI.containerElement) {&lt;br /&gt;
+					if (newCharCount == 0) {&lt;br /&gt;
+						if (charCounterUI.containerElement.visible())&lt;br /&gt;
+							charCounterUI.containerElement.hide();&lt;br /&gt;
+					} else {&lt;br /&gt;
+						if (!charCounterUI.containerElement.visible())&lt;br /&gt;
+							charCounterUI.containerElement.show();&lt;br /&gt;
+					}&lt;br /&gt;
+				}&lt;br /&gt;
+			};&lt;br /&gt;
+			&lt;br /&gt;
 			return {&lt;br /&gt;
 				&lt;br /&gt;
 				init: function(controller,platform,textElement,params) {&lt;br /&gt;
@@ -265,7 +283,13 @@&lt;br /&gt;
 								setTextFieldValueFn = params.segmentCounter.setTextFieldValueFn;&lt;br /&gt;
 							}						&lt;br /&gt;
 						}&lt;br /&gt;
-&lt;br /&gt;
+						if(params.charCounter) {&lt;br /&gt;
+							charCounterUI.containerElement = params.charCounter.charCountContainer;&lt;br /&gt;
+							charCounterUI.valueElement = params.charCounter.charCountElement;&lt;br /&gt;
+							if(params.charCounter.setTextFieldValueFn) {&lt;br /&gt;
+								setTextFieldValueFn = params.charCounter.setTextFieldValueFn;&lt;br /&gt;
+							}						&lt;br /&gt;
+						}&lt;br /&gt;
 					}					&lt;br /&gt;
 				},&lt;br /&gt;
 				&lt;br /&gt;
@@ -304,6 +328,7 @@&lt;br /&gt;
 					var rawCharacterData = getRawCharacterData();&lt;br /&gt;
 					var messageData = parseMessage(rawCharacterData.message,rawCharacterData.count,_maxLength,true);&lt;br /&gt;
 					adjustedCharacterCount = messageData.adjustedCharacterCount;&lt;br /&gt;
+					setCurrentCharCount(rawCharacterData.count);&lt;br /&gt;
 					if (_maxLength &amp;gt; 0)&lt;br /&gt;
 						setOverLimit(messageData.isOverLimit);&lt;br /&gt;
 					setCurrentSegmentCount(messageData.segmentCount);				&lt;br /&gt;
diff -ur /usr/palm/applications/com.palm.app.messaging/app/views/chatview/chatview-scene.html /usr/palm/app-modified/com.palm.app.messaging/app/views/chatview/chatview-scene.html&lt;br /&gt;
--- /usr/palm/applications/com.palm.app.messaging/app/views/chatview/chatview-scene.html	2009-07-18 00:22:14.000000000 -0500&lt;br /&gt;
+++ /usr/palm/app-modified/com.palm.app.messaging/app/views/chatview/chatview-scene.html	2009-07-23 23:16:55.000000000 -0500&lt;br /&gt;
@@ -22,6 +22,10 @@&lt;br /&gt;
 			&amp;lt;div id=&amp;quot;messageContainer&amp;quot; class='palm-row'&amp;gt;&lt;br /&gt;
 				&amp;lt;div class=&amp;quot;palm-row-wrapper textfield-group focused&amp;quot;&amp;gt;&lt;br /&gt;
 					&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;&lt;br /&gt;
+						&amp;lt;div id=&amp;quot;charCounterContainer&amp;quot;&amp;gt;&lt;br /&gt;
+							&amp;lt;div id=&amp;quot;charCounter&amp;quot;&amp;gt;&lt;br /&gt;
+							&amp;lt;/div&amp;gt;&lt;br /&gt;
+						&amp;lt;/div&amp;gt;&lt;br /&gt;
 						&amp;lt;div id=&amp;quot;attachmentContainer&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&lt;br /&gt;
 							&amp;lt;div id=&amp;quot;cancelAttachment&amp;quot;&amp;gt;&lt;br /&gt;
 							&amp;lt;/div&amp;gt;&lt;br /&gt;
diff -ur /usr/palm/applications/com.palm.app.messaging/app/views/compose/compose-scene.html /usr/palm/app-modified/com.palm.app.messaging/app/views/compose/compose-scene.html&lt;br /&gt;
--- /usr/palm/applications/com.palm.app.messaging/app/views/compose/compose-scene.html	2009-07-18 00:22:14.000000000 -0500&lt;br /&gt;
+++ /usr/palm/app-modified/com.palm.app.messaging/app/views/compose/compose-scene.html	2009-07-23 23:17:14.000000000 -0500&lt;br /&gt;
@@ -6,6 +6,10 @@&lt;br /&gt;
 		&amp;lt;div id=&amp;quot;messageContainer&amp;quot; class='palm-row'&amp;gt;&lt;br /&gt;
 			&amp;lt;div class=&amp;quot;palm-row-wrapper textfield-group focused&amp;quot;&amp;gt;&lt;br /&gt;
 				&amp;lt;div class=&amp;quot;title&amp;quot;&amp;gt;&lt;br /&gt;
+					&amp;lt;div id=&amp;quot;charCounterContainer&amp;quot;&amp;gt;&lt;br /&gt;
+						&amp;lt;div id=&amp;quot;charCounter&amp;quot;&amp;gt;&lt;br /&gt;
+						&amp;lt;/div&amp;gt;&lt;br /&gt;
+					&amp;lt;/div&amp;gt;&lt;br /&gt;
 					&amp;lt;div id=&amp;quot;attachmentContainer&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&lt;br /&gt;
 						&amp;lt;div id=&amp;quot;cancelAttachment&amp;quot;&amp;gt;&lt;br /&gt;
 						&amp;lt;/div&amp;gt;&lt;br /&gt;
diff -ur /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css /usr/palm/app-modified/com.palm.app.messaging/stylesheets/messaging.css&lt;br /&gt;
--- /usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css	2009-07-18 00:22:22.000000000 -0500&lt;br /&gt;
+++ /usr/palm/app-modified/com.palm.app.messaging/stylesheets/messaging.css	2009-07-23 23:19:25.000000000 -0500&lt;br /&gt;
@@ -837,6 +837,23 @@&lt;br /&gt;
 #messageContainer.palm-row .icon.right {&lt;br /&gt;
 	height: 61px;&lt;br /&gt;
 }&lt;br /&gt;
+#messageContainer #charCounterContainer {&lt;br /&gt;
+	line-height: 20px;&lt;br /&gt;
+	display:block;&lt;br /&gt;
+	height: 20px;&lt;br /&gt;
+	border-width: 0px 10px 0px 9px;&lt;br /&gt;
+	-webkit-border-image: url(../images/message-segment-badge.png) 0 10 0 9 stretch stretch;&lt;br /&gt;
+	position: absolute;&lt;br /&gt;
+	z-index: 3;&lt;br /&gt;
+	top: 2px;&lt;br /&gt;
+	left: 2px;&lt;br /&gt;
+}&lt;br /&gt;
+#messageContainer #charCounterContainer #charCounter {&lt;br /&gt;
+	font-size: 12px;&lt;br /&gt;
+	font-weight: bold;&lt;br /&gt;
+	color: #679BC2;&lt;br /&gt;
+	margin: 0px -4px 3px -3px;&lt;br /&gt;
+}&lt;br /&gt;
 #messageContainer #attachmentContainer {&lt;br /&gt;
 	position: relative;&lt;br /&gt;
 	margin-top:10px;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Post os1.1 update, you will need to swap in the following for the utilities/CharacterCounter.js section: (mod confirmed working by tcurtin, 7/24/09)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
diff -ur /usr/palm/applications/com.palm.app.messaging/app/utilities/CharacterCounter.js /usr/palm/app-modified/com.palm.app.messaging/app/utilities/CharacterCounter.js&lt;br /&gt;
--- /usr/palm/applications/com.palm.app.messaging/app/utilities/CharacterCounter.js	2009-07-18 00:22:14.000000000 -0500&lt;br /&gt;
+++ /usr/palm/app-modified/com.palm.app.messaging/app/utilities/CharacterCounter.js	2009-07-24 12:20:12.000000000 -0500&lt;br /&gt;
@@ -39,6 +39,11 @@&lt;br /&gt;
                                containerElement: null,&lt;br /&gt;
                                valueElement: null&lt;br /&gt;
                        };&lt;br /&gt;
+                       var charCounterUI = {&lt;br /&gt;
+                               containerElement: null,&lt;br /&gt;
+                               valueElement: null&lt;br /&gt;
+                       };&lt;br /&gt;
+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        // TODO: eventually we might want to implement some cleverness that counts&lt;br /&gt;
@@ -51,6 +56,10 @@&lt;br /&gt;
                                var message = textAreaElement.value;&lt;br /&gt;
                                return {count:message.length, message:message};&lt;br /&gt;
                        };&lt;br /&gt;
+                       var charCounterUI = {&lt;br /&gt;
+                               containerElement: null,&lt;br /&gt;
+                               valueElement: null&lt;br /&gt;
+                       };&lt;br /&gt;
&lt;br /&gt;
                        var setOverLimit = function(isOver) {&lt;br /&gt;
                                if (isOver) {&lt;br /&gt;
@@ -185,6 +194,21 @@&lt;br /&gt;
                                }&lt;br /&gt;
                        };&lt;br /&gt;
&lt;br /&gt;
+                       var setCurrentCharCount = function(newCharCount) {&lt;br /&gt;
+                               if(charCounterUI.valueElement)&lt;br /&gt;
+                                       charCounterUI.valueElement.update(newCharCount);&lt;br /&gt;
+                               if(charCounterUI.containerElement) {&lt;br /&gt;
+                                       if (newCharCount == 0) {&lt;br /&gt;
+                                               if (charCounterUI.containerElement.visible())&lt;br /&gt;
+                                                       charCounterUI.containerElement.hide();&lt;br /&gt;
+                                       } else {&lt;br /&gt;
+                                               if (!charCounterUI.containerElement.visible())&lt;br /&gt;
+                                                       charCounterUI.containerElement.show();&lt;br /&gt;
+                                       }&lt;br /&gt;
+                               }&lt;br /&gt;
+                       };&lt;br /&gt;
+&lt;br /&gt;
+&lt;br /&gt;
                        return {&lt;br /&gt;
&lt;br /&gt;
                                init: function(controller,platform,textElement,params) {&lt;br /&gt;
@@ -265,7 +289,13 @@&lt;br /&gt;
                                                                setTextFieldValueFn = params.segmentCounter.setTextFieldValueFn;&lt;br /&gt;
                                                        }&lt;br /&gt;
                                                }&lt;br /&gt;
-&lt;br /&gt;
+                                               if(params.charCounter) {&lt;br /&gt;
+                                                       charCounterUI.containerElement = params.charCounter.charCountContainer;&lt;br /&gt;
+                                                       charCounterUI.valueElement = params.charCounter.charCountElement;&lt;br /&gt;
+                                                       if(params.charCounter.setTextFieldValueFn) {&lt;br /&gt;
+                                                               setTextFieldValueFn = params.charCounter.setTextFieldValueFn;&lt;br /&gt;
+                                                       }&lt;br /&gt;
+                                               }&lt;br /&gt;
                                        }&lt;br /&gt;
                                },&lt;br /&gt;
&lt;br /&gt;
@@ -304,6 +334,7 @@&lt;br /&gt;
                                        var rawCharacterData = getRawCharacterData();&lt;br /&gt;
                                        var messageData = parseMessage(rawCharacterData.message,rawCharacterData.count,_maxLength,true);&lt;br /&gt;
                                        adjustedCharacterCount = messageData.adjustedCharacterCount;&lt;br /&gt;
+                                       setCurrentCharCount(rawCharacterData.count);&lt;br /&gt;
                                        if (_maxLength &amp;gt; 0)&lt;br /&gt;
                                                setOverLimit(messageData.isOverLimit);&lt;br /&gt;
                                        setCurrentSegmentCount(messageData.segmentCount);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
[[Patch Messaging Forward Messages]] will not work when applying this patch. Please take a look into this. -thatdude&lt;br /&gt;
&lt;br /&gt;
If this patch is applied manually it works fine with the [[Patch Messaging Forward Messages]] patch. -NetWhiz&lt;br /&gt;
&lt;br /&gt;
This patch keeps giving me an error that it is malformed at line 15, and i cannot seem to fix it. Is there an already made patch file that doesnt involve me cutting and pasting? -paraplegicemu&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
HattCzech&lt;/div&gt;</summary>
		<author><name>Paraplegicemu</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Accessing_Linux_From_OSX&amp;diff=1392</id>
		<title>Accessing Linux From OSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Accessing_Linux_From_OSX&amp;diff=1392"/>
		<updated>2009-07-21T21:26:16Z</updated>

		<summary type="html">&lt;p&gt;Paraplegicemu: /* Mac OS X: */ To clarify for newbies, run these commands in Terminal.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mac OS X: =&lt;br /&gt;
&lt;br /&gt;
If you are not on a mac, follow the instructions [[Accessing_Linux_From_Windows|here]] instead.&lt;br /&gt;
&lt;br /&gt;
# Download the [http://palm.cdnetworks.net/rom/pre_p100eww/webosdoctorp100ewwsprint.jar webOS image].&lt;br /&gt;
# Rename this file to .zip, and extract it.&lt;br /&gt;
# Untar resources/NovacomInstaller.pkg.tar.gz (tar -xzvf).&lt;br /&gt;
# Run NovacomInstaller.pkg.&lt;br /&gt;
# Click through the installer.&lt;br /&gt;
# From the Pre desktop, with no applicatons open on the Pre, type in the Konami code on your Pre's keyboard. ('''upupdowndownleftrightleftrightbastart''') to access the developer mode application.   You do not need to press enter.  When you press the &amp;quot;t&amp;quot; of start, the developer app will become visible. &lt;br /&gt;
# Open the DeveloperMode application on your Pre and enable the developer mode switch, resetting the device when prompted.&lt;br /&gt;
# Connect to your Mac via USB cable. There is no need to answer the question on your Pre regarding mounting the drive or just charging.  '''Don't select anything''' (or select &amp;quot;Just Charge&amp;quot; if not selecting anything really bothers you).  '''Warning:  Selecting a USB mode will turn off the Pre's WiFi &amp;amp; Cellular connections and mess up later steps by giving you a &amp;quot;wget: bad address&amp;quot; error when you try and install additional packages.'''&lt;br /&gt;
# Open Terminal, and type in cd /opt/nova/bin&lt;br /&gt;
# Then type ./novaterm&lt;br /&gt;
# At this point you should have root.&lt;br /&gt;
# Login with username '''root''' and a blank password.  (Note that you can only use root and a blank password while dev mode is on - rebooting turns this insecure access off again)&lt;br /&gt;
 &lt;br /&gt;
* This is what you should see&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
root@castle:/#&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Assuming that worked, you are in as root.  You can prove this by typing  '''ls -al'''  and hitting enter.  You should get a directory listing.  &lt;br /&gt;
&lt;br /&gt;
Congrats, you are now in as root.  Tread lightly.&lt;br /&gt;
&lt;br /&gt;
== Next Steps: ==&lt;br /&gt;
&lt;br /&gt;
Your rooted pre is in a very sensitive and unusual state.  There are several steps you should take immidiately:&lt;br /&gt;
&lt;br /&gt;
* Create a new username and password so that you don't connect as root&lt;br /&gt;
* Open up ports in the pre so that you can connect to it.&lt;br /&gt;
* Create a secure connection so that your pre is not open to everyone in the universe.   **If you do not secure the network, your device will be accessible by anyone on the internet until it is rebooted.**&lt;br /&gt;
* Install the Optware package manager so that you can install software onto the Pre.  &lt;br /&gt;
&lt;br /&gt;
All this picks up in [[Next_steps | Next steps after rooting ]].&lt;br /&gt;
&lt;br /&gt;
== What You Should See: ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
root@castle:/# ls&lt;br /&gt;
bin         dev         etc         lib         md5sums     mnt sbin        tmp         var&lt;br /&gt;
boot        dspbridge   home        lost+found  media       proc sys         usr&lt;br /&gt;
root@castle:/# uname -a&lt;br /&gt;
Linux castle 2.6.24-palm-joplin-3430 #1 175.1.15 armv7l unknown&lt;br /&gt;
root@castle:/# whoami&lt;br /&gt;
root&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Enabling Developer Mode As A Button ==&lt;br /&gt;
&lt;br /&gt;
Having to type the Konami code every time is tedious so you can make the developer mode button visible by doing the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
cp -ip /usr/palm/applications/com.palm.app.devmodeswitcher/appinfo.json /usr/palm/applications/com.palm.app.devmodeswitcher/appinfo.json.bak&lt;br /&gt;
vi /usr/palm/applications/com.palm.app.devmodeswitcher/appinfo.json&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Line 8. Change visible to true.&lt;/div&gt;</summary>
		<author><name>Paraplegicemu</name></author>
	</entry>
</feed>