Difference between revisions of "Patch Phone Show Call Duration in the Call Log"
Hopspitfire (talk | contribs) |
|||
(10 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{template:patch}} | ||
This page details ways to enable hidden functionality in on the palm pre. You will need root shell access to perform these changes. Follow these instructions at your own risk, if you make an error (or perhaps even if you do it correctly) you risk bricking your phone, voiding your warranty, etc. These instructions assume a working knowledge of unix. Also, note that these changes require rebooting the phone to take effect. | This page details ways to enable hidden functionality in on the palm pre. You will need root shell access to perform these changes. Follow these instructions at your own risk, if you make an error (or perhaps even if you do it correctly) you risk bricking your phone, voiding your warranty, etc. These instructions assume a working knowledge of unix. Also, note that these changes require rebooting the phone to take effect. | ||
Line 4: | Line 5: | ||
Sprint always customizes their phones to conceal call duration information. This avoids angry phone calls from confused customers who are surprised when their 1:01 phone call results in 2:00 minutes charged to their account. I can sympathize. However, I won't call complain, and I occasionally want to know how long a call was after the fact. | Sprint always customizes their phones to conceal call duration information. This avoids angry phone calls from confused customers who are surprised when their 1:01 phone call results in 2:00 minutes charged to their account. I can sympathize. However, I won't call complain, and I occasionally want to know how long a call was after the fact. | ||
− | There is now a shell script for executing the commands below if you do not feel comfortable doing the steps below manually. See http: | + | There is now a shell script for executing the commands below if you do not feel comfortable doing the steps below manually. See http://gitorious.org/webos-internals/modifications/commit/3b2e55a22e64b5302b5d45521ccf94fe28db3595 |
There is a system preference <tt>phoneAppHideCallDuration</tt> which appears to control this, but it merely provides a default value. The phone app caches the value and saves it as a cookie. As an exercise, I'll show you how to set the preference as well. | There is a system preference <tt>phoneAppHideCallDuration</tt> which appears to control this, but it merely provides a default value. The phone app caches the value and saves it as a cookie. As an exercise, I'll show you how to set the preference as well. | ||
− | To set the | + | To set the <tt>phoneAppHideCallDuration</tt> preference: |
<source lang="text"> | <source lang="text"> | ||
[user@linuxhost]$ ssh -p 222 palm-pre | [user@linuxhost]$ ssh -p 222 palm-pre | ||
user@castle:~$ su | user@castle:~$ su | ||
− | root@castle:/home/user# luna-send -n 1 palm: | + | root@castle:/home/user# luna-send -n 1 palm://com.palm.systemservice/setPreferences '{"phoneAppHideCallDuration": false}' |
** Message: serviceResponse Handling: 2, { "returnValue": true } | ** Message: serviceResponse Handling: 2, { "returnValue": true } | ||
</source> | </source> | ||
− | Here we've used | + | Here we've used <tt>luna-send</tt> to broadcast a message requesting the <tt>systemservice</tt> to set a preference (I believe you can actually specify multiple preferences at once, the payload format is a json hashtable). Unfortunately, that only sets the default, so to actually see the change we need to update a cookie stored in the phone app. We'll do that now: |
<source lang="text"> | <source lang="text"> | ||
Line 32: | Line 33: | ||
</source> | </source> | ||
− | This time we've used | + | This time we've used <tt>sqlite3</tt> to update the cookies database directly. The primary key of the Cookies table (in the cookies database) is (domain_head, domain_tail, path, name), we specify the full key, and update the value. Note the value field is always ''percent-encoded'' and in this case represents the string <tt>"0"</tt> (including the quotes). |
− | + | To see your changes, you can either reboot your phone or just restart the LunaSysMgr front-end. | |
+ | * To reboot: Hold the power key and turning it off '''or''' type <tt>shutdown -r</tt> in the shell. | ||
+ | * To restart the system manager without rebooting (faster): | ||
+ | <pre><nowiki> | ||
+ | initctl stop LunaSysMgr | ||
+ | initctl start LunaSysMgr | ||
+ | </nowiki></pre> | ||
− | + | ''Note: if you are typing in the sql by hand, take care you get it correct. If you make a typo and the where portion does not match any records you will not get any feedback. To verify that your update was successful run the following SQL after your issue the update:'' <tt>select * from Cookies where domain_tail = "app.phone"</tt> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | </ | ||
− | |||
− | |||
− | |||
− |
Latest revision as of 00:17, 3 August 2009
This page details ways to enable hidden functionality in on the palm pre. You will need root shell access to perform these changes. Follow these instructions at your own risk, if you make an error (or perhaps even if you do it correctly) you risk bricking your phone, voiding your warranty, etc. These instructions assume a working knowledge of unix. Also, note that these changes require rebooting the phone to take effect.
Show call duration in the call log
Sprint always customizes their phones to conceal call duration information. This avoids angry phone calls from confused customers who are surprised when their 1:01 phone call results in 2:00 minutes charged to their account. I can sympathize. However, I won't call complain, and I occasionally want to know how long a call was after the fact.
There is now a shell script for executing the commands below if you do not feel comfortable doing the steps below manually. See http://gitorious.org/webos-internals/modifications/commit/3b2e55a22e64b5302b5d45521ccf94fe28db3595
There is a system preference phoneAppHideCallDuration which appears to control this, but it merely provides a default value. The phone app caches the value and saves it as a cookie. As an exercise, I'll show you how to set the preference as well.
To set the phoneAppHideCallDuration preference:
<source lang="text"> [user@linuxhost]$ ssh -p 222 palm-pre user@castle:~$ su root@castle:/home/user# luna-send -n 1 palm://com.palm.systemservice/setPreferences '{"phoneAppHideCallDuration": false}'
- Message: serviceResponse Handling: 2, { "returnValue": true }
</source>
Here we've used luna-send to broadcast a message requesting the systemservice to set a preference (I believe you can actually specify multiple preferences at once, the payload format is a json hashtable). Unfortunately, that only sets the default, so to actually see the change we need to update a cookie stored in the phone app. We'll do that now:
<source lang="text"> root@castle:/home/user# cd /var/palm/data/ root@castle:/var/palm/data# sqlite3 cookies.db SQLite version 3.6.1 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> update Cookies set value = "%220%22" where domain_head = ".usr.palm.applications.com.palm." and domain_tail = "app.phone" and path = "/usr/palm/applications/com.palm.app.phone" and "name" = "mojo_cookie_hidecalllogduration"; sqlite> .exit root@castle:/var/palm/data# exit user@castle:~$ exit Connection to palm-pre closed. </source>
This time we've used sqlite3 to update the cookies database directly. The primary key of the Cookies table (in the cookies database) is (domain_head, domain_tail, path, name), we specify the full key, and update the value. Note the value field is always percent-encoded and in this case represents the string "0" (including the quotes).
To see your changes, you can either reboot your phone or just restart the LunaSysMgr front-end.
- To reboot: Hold the power key and turning it off or type shutdown -r in the shell.
- To restart the system manager without rebooting (faster):
initctl stop LunaSysMgr initctl start LunaSysMgr
Note: if you are typing in the sql by hand, take care you get it correct. If you make a typo and the where portion does not match any records you will not get any feedback. To verify that your update was successful run the following SQL after your issue the update: select * from Cookies where domain_tail = "app.phone"