-
04-02-2008, 08:57 AM #1
Editing com.apple.springboard.plist without reloading springboard SCPreferences
'm currently building a tool - daemon that will dynamically edit springboard settings depending on what you have loaded on your phone.For that reason im using plutil from Erica's ported utilities to edit ~/Library/Preferences/com.apple.springboard.plist.The main problem lies that no matter what modification I do in that file in order for it to work it needs a springboard restart.
To test it try altering any value with SSH and you will see that even though it shows it changed it will still do what the initial value does till the time you respring.Use autolock time or dim time for easy testing.
Since the prefferences.app manages to load any change on the fly without the need for restart im currenlty in dire need on any idea of how can this be achieved
I do suspect that all I need to do is call SCPreferences or CFPreferences to apply the changes but i have no idea how to do that on the iphone
Any idea is greatly appreciated....
-
04-10-2008, 03:32 PM #2
theres a tool out there currently that will allow the phone to respring without restarting...
-
07-29-2008, 04:13 PM #3
I am also looking to build this functionality in my app. I started looking at MakeItMine by Erica Sadun which can apply SBFakeTime SBFakeTimeString and SBFakeCarrier without restarting. I did a little bit of reverse engineering and found this.
And a hex dump shows thisiPhone:/Applications/MakeItMine.app root# strings MakeItMine
.......
/System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices
GSSendAppPreferencesChanged
com.apple.springboard
.......
/private/var/mobile/Library/Preferences/com.apple.springboard.plist
SBFakeTime
SBFakeTimeString
SBFakeCarrier
Banner
Carrier
.......
But when i try to do a class dump of GraphicsServices i get an error.3470 66756e63 73000000 2f537973 74656d2f funcs.../System/
3480 4c696272 6172792f 50726976 61746546 Library/PrivateF
3490 72616d65 776f726b 732f4772 61706869 rameworks/Graphi
34a0 63735365 72766963 65732e66 72616d65 csServices.frame
34b0 776f726b 2f477261 70686963 73536572 work/GraphicsSer
34c0 76696365 73000000 00000000 47535365 vices.......GSSe
34d0 6e644170 70507265 66657265 6e636573 ndAppPreferences
34e0 4368616e 67656400 636f6d2e 6170706c Changed.com.appl
34f0 652e7370 72696e67 626f6172 64000000 e.springboard...
As I am fairly new to Objective-C it would be great if someone could post some sample code or figure out how to get a class dump or something to point me in the right direction!iPhone:/System/Library/Frameworks/GraphicsServices.framework root# class-dump -H GraphicsServices
2008-07-29 16:10:39.190 class-dump[1309:10b] Warning: This file does not contain any Objective-C runtime information.
-
07-30-2008, 05:08 PM #4
GS is GraphicsServices, so what if you do a strings dump on the GraphicsServices.framework? Can you find a reference to GSSendAppPreferencesChanges?
Based on what else we see, I'd be tempted to try a
extern void GSSendAppPreferencesChanged(CFString*);
-
07-30-2008, 06:41 PM #5
a quick srings and grep with MobileTerminal shows nothing. But we all know that MakeItMine works and that is the only likely result so it's likely that apple obfuscated it as it is a private function. The CFString you are refering to would be com.apple.springboard bundle identifier right?
Sent from my iPhone 3G!
-
07-30-2008, 10:33 PM #6
Yes, looking at my strings and disassembly from GraphicsServices that appears to be one of the parameters.
Unfortunately it also looks like it takes another parameter NamedPurplePort? Not sure on this one...
-
07-30-2008, 11:41 PM #7
What tool are you using to disassemble the framework? I've tried otool otx and a few others I don't remember but they all gave me an error like no objective c header or something.
Perhaps we could try looking at something that uses CGSendAppPreferencesChanged? I think preferences.app uses it. What about activation? It sets the carrier logo and settings without a restart (I think) maybe that could help.
-
07-31-2008, 04:31 PM #8
I use otool -tv to disassemble files
-
05-09-2009, 01:17 PM #9
Changing settings without respring
I found a way, in hurry to post it. if you need send me mail at neha two zero zero six (in digits two times) at hotmail
or post it here, i will get notification.Last edited by beyondhorizon; 05-09-2009 at 01:17 PM. Reason: Automerged Doublepost
-
07-14-2009, 07:41 AM #10
Hi beyondhorizon, I'm trying to do this as well... How did you find the way? Could you post it?



LinkBack URL
About LinkBacks
Reply With Quote