Archive for August, 2009
Free your RAM
by Vaelek on Aug.28, 2009, under Applications, Jailbreaking
If you run SBSettings, as it would seem most jailbroken users do, you’ve no doubt seen the Free Memory feature when viewing processes. This is one of those things that I would definitely not respond well to if it went away. The lack of a swap file in iPhoneOS, means memory is much more of a concern than pretty much everywhere else. If your app uses too much memory, it is swiftly terminated by the OS, no questions asked. Poorly written apps will also cause memory leaks and leave you with less free memory than you started with after running and exiting them. Apple’s solution to this? Reboot.
Wut? No thanks. Boot up time for the iPhone 3GS is anything but lightening fast, and the 3G is takes even longer. Unless it’s absolutely necessary, I don’t typically restart my phone. This is where the ‘Free Memory’ option is crucial.
The free memory option is not limited to jailbroken users. There are a few AppStore apps that have this ability as well, or at least there were. Apple it seems is having a fit over this function and is forcing developers that currently offer it to remove it or have their apps ejected from the AppStore. Why would they do that?!?!?!?
Here’s my best guess… The method used to free the memory works by allocating everything available. The OS will then see memory levels are critical and start terminating background processes. Here, this means Phone, Mail, and iPod. Of course they automatically restart, and in the end you typically have much more memory available. So what is Apple’s problem? When the apps are terminated, a crash log is produced. These are sent to Apple when you sync. Apple is likely getting flooded with these crash logs and so has decided to pull the plug on the ability to use this method.
What is my response to this? Free your RAM every chance you get. Apple has been all but negligent in their AppStore processes and their refusal to approve certain apps or the adamant rejection of apps that use undocumented or restricted API’s, not to mention the rejections that have no real merit whatsoever. Free your RAM every chance you get. Apple is not a company that exercises the skill of listening to it’s users or even acknowledging when problems exist. They come up with blatant lies to discourage and attempt to make illegal the process of jailbreaking YOUR device that YOU own1. They spew their bullshit claiming they don’t know if Google Voice uses VoiP technologies, or that it hasn’t been rejected, they just haven’t approved it yet. Come on guys, there is no doubt they have plenty of tools at their disposal that will tell them exactly what your app does, what API’s it uses, etc. Free your RAM every chance you get. They charge $99 a year for the privilege of being able to develop iPhone/iTouch apps, so that you can submit them to the AppStore so they can take another 30% of your profits. What about refunds? A little known fact is that if someone purchases one of your apps, and is later granted a refund for whatever reason, the entire purchase price comes out of YOUR pocket while Apple sits back and keeps it’s 30% commission. Apple is obviously annoyed by what results when users free their memory the efficient way, so let’s stick it to them until it hurts.
Free your RAM every chance you get and use one of the few things that has actually gotten Apple’s attention to protest their [mis]management of just about everything related to the AppStore.
1. Apple’s claim to the copyright office in response to the EFF’s request to officially declare jailbreaking a legal activity. It’s a hefty read, I’ll note some of the key pieces of manure here.
5. In testimony, the Electronic Frontier Foundation stated that the iPhone warranty would not apply to an unauthorized modification on an iPhone. Would other services or functionality be affected by “jailbreaking” an iPhone, e.g., would AT&T phone, data, or GPS functionality be affected? Would AT&T be required to provide service to an iPhone modified by the user?
Apple’s Response:
Yes, ..services and functionality of the iPhone can be affected by jailbreaking of the
phone, as well as services .. on AT&T’s phone and data network. The OS controls a critical portion .. known as the “baseband processor” (“BBP”) that is used to connect .. to a .. network and to utilize services .. Once an iPhone is jailbroken, it is much easier to hack the BBP software .. Such modifications can interfere with ..phone, data, and GPS functionality .. Modifications to the BBP software may introduce .. errors into that software or cause it not to function correctly .., which in turn can render the iPhone incapable of connecting to the network at all in order to make phone calls or send/receive data. Such modifications may also interfere with GPS functionality. There is a special GPS chip in the iPhone that .. computes location of the phone .. However, an enhanced functionality called “assisted GPS” enables the location .. to be pinpointed
with greater accuracy than ordinary GPS by utilizing data about the location of the cell tower to which the user is .. connected. If modifications to the BBP software were to render the user unable to connect to the local AT&T cell phone tower, the assisted GPS functionality would, in turn, not function.
It gets better..
…each iPhone contains a unique Exclusive Chip Identification (ECID) number that identifies the phone to the cell tower. With access to the BBP via jailbreaking, hackers may be able to change the ECID, which in turn can enable phone calls to be made anonymously (this would be desirable to drug dealers, for example) or charges for the calls to be avoided.
To me, this sounds like “We didn’t make the devices and network secure enough and people figured it out, rather than fix anything, outlaw jailbreaking!” Seriously guys… We’re on the 4th generation now with the 3GS and they haven’t managed to store this uber-sensitive data in ROM? Implement a secure handshake process between the towers and devices that is based on more than one piece of information? Add a carrier password of some form that the user chooses which is authenticated with the tower? All of the ill-doings Apple is claiming are possible with jailbreaking come down to design faults in the end. Poorly implemented protocols that can be easily hacked. History has proven time and time again that the black box design approach does not work. Security through obscurity is not a solution but an effort to cover up a poor implementation. I also like how they state specifically state “this would be desirable to drug dealers”. Ok, it would also be desirable to illegal telemarketers, robo-callers, collection agencies, scammers, politicians, basically anyone who might want to make an anonymous call.
I could go on and rant about Apple’s incompetence and need to play puppet master for another 15 paragraphs. Perhaps another day as if I continue this is likely going to meander a bit past the “all-ages” rating I aim to keep here.
FREE YOUR RAM EVERY CHANCE YOU GET. Make Apple bend over and take it without any lube while convincing them it’s really better that way, just like they do to their users.
Got something to add? Go.
Facebook 3.0 finally available
by Vaelek on Aug.28, 2009, under Applications, Reviews
Nobody can deny the fact that the Facebook app has been quite lacking for some time. After waiting forever for an update, Joe Hewitt announced 3.0 was finally complete and submitted. After waiting in queue to get its allocated 10 minutes or so of review time, it finally showed up in the AppStore tonight yesterday (believe it or not I started typing this paragraph yesterday).
By now I’d imagine most everyone has already updated but I still have to at least give it a mention. The functionality boost from 2.3 to 3.0 is the difference between Windows 3.1 and XP. Better notifications, notes, events, pages, chat, it’s all there. Long overdue is also the ability to now manually refresh posts, ‘like’ posts, and even the ability to apply your filters to the news feed. Along with all of this, icons can be added for profiles and pages that you might frequent.
The icons can also be rearranged the same way as the springboard icons, just hold one for a few seconds. This is cool, but if you’re like me it’ll take a while to get used to NOT pressing the home button when you are finished rearranging and closing the app. Doh!
All in all, this is an awesome update. Personally, given the bugs and lack of functionality, I would have considered everything prior to 3.0 to be beta. Now we wait for 3.1 on which work started immediately after submitting 3.0. The only change coming in 3.1 I can say for sure is that it will finally bring push notifications to Facebook.
A few people seem to dislike the new version. What do you all think? After only 5 minutes I could never go back to pre-3.0.
New Features
- Landscape mode
- See your upcoming Events and RSVP
- See your friends’ birthdays
- See Pages and post updates and photos to Pages you administer
- Write Notes and read your friends’ Notes
- Upload videos from an iPhone 3GS
- Upload photos to any album
- Complete photo management (create albums, delete albums, delete photos, delete photo tags)
- Change your Profile Picture
- Zoom into photos
- Like posts and photos
- See the same News Feed as the Facebook website
- Visit links in a built-in web browser
- See all of your friends’ friends and Pages
- See mutual friends
- Easily search for people and Pages
- Make friend requests
- Become a fan of Pages
- Quickly call or text your friends
- Create shortcuts to your favorite friends and Pages
- Friends sorted by first or last name according to your settings
- Chat friends sorted alphabetically
A message from Saurik to all Winterboard themers
by Vaelek on Aug.22, 2009, under Development, Tips & Tricks
Being physically unable to upgrade anything, ever, without first reading the change log, I noticed a message from Saurik in the latest Winterboard update. Given that the message is 2 taps from the package screen I’m guessing most folks have not and will not ever see it so I am re-posting it here in an attempt to spread the word.
A Word on Remapping Files
I have gotten a flood of questions from users asking why SMS themes “don’t work”. The answer is: the applications changed, and the people making the themes refused to upgrade them.
WinterBoard is designed to be very flexible: it can theme nearly anything. With such power comes responsibility. In essence, the process of making a theme for WinterBoard requires an understanding of the application you are theming and knowing what files it loads, so you know what to replace.
This, in turn, means that when the themed program changes, such as from 2.x to 3.x, the themes may also have to get upgraded to still match.
No one seems to get this fact.
![]()
Instead, theme developers complain to me to “fix WinterBoard” so that, for example, SMS themes work again.
That is simply not reasonable: every time I add code to WinterBoard to remap old filenames I slow down a performance critical component. In this case, what happened is that the SMS application got broken up into the actual application and a new 3.x framework called “ChatKit”.
Most of the images people had been theming are now part of ChatKit: if you want to keep theming them, you need to start theming that bundle, not the SMS application. I don’t think a single theme has been updated to account for this change in the last two months.
OK: I did it. I added a remapping for the SMS application. If I am loading an image for ChatKit that isn’t themed, I check to see if a file with the same name from the SMS application was themed, and take it instead. In practice this is not a big deal, as it is a single remapping and most of the cost is going to come from the SMS application, but if something similar to this were ever done for UlKit it would be downright devastatingly painful.
So, this is the last time I want to do something like this, and I even consider this ChatKit remapping “deprecated”, even in the first version of WinterBoard that includes it: people really need to upgrade their themes to theme the right files going forward. (Note: this has nothing to do with SMSBackground.png, which is a WinterBoard-specific feature that simply had to get rewritten for 3.x.)
iPhone OS 3.0.1 Advisory (For developers only)
by Vaelek on Aug.05, 2009, under Development, Tips & Tricks
This is straight from the horse’s mouth. This is a very simple step but has the potential to have a big impact if you’re unaware of it and are now on 3.0.1.
iPhone OS 3.0 SDK and iPhone OS 3.0.1 software release for Mac OS X v10.5.7
To continue development with iPhone SDK 3.0 on your iPhone, iPhone 3G and iPhone 3GS running iPhone OS 3.0.1 will need to perform the following:
1. Log into your Mac with an Admin account and launch the Terminal application
(/Applications/Utilities)2. Copy and paste the following line into Terminal:
ln -s /Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.0\ \(7A341\)/ /Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.0.1Note: If you installed iPhone SDK 3.0 somewhere other than the default /Developer
location, replace the "/Developer" directory as appropriate.
*I am seeing a lot of hits to this page from folks searching for iphone 3.0.1 advisory. This is somewhat confusing to me as I would think if you are aware of the advisory, then you know what it is. So what’s up? Are you finding what you’re looking for here? If not, please do post a note in the comments as to what you are actually trying to find out and I will be happy to update the post with whatever the answer might be.
Installing Cydia over SSH
by Vaelek on Aug.04, 2009, under Applications, Jailbreaking, Tips & Tricks
| Don’t forget to check out our current contest to win a Google Wave invite! In the next round, we will be giving away Google Voice and Ribbit Mobile invites! |
In keeping up on the logs for the site I’ve noticed quite a few people arriving here after Googling some variation of ‘install cydia over ssh’. So to all of you out there, what exactly is it that you are looking for? The only conclusion I can draw is that folks are searching for jailbreak instructions using incorrect terms. That, or some of you have managed to remove Cydia and now need to get it back. Based on the fact that you cannot have the ability to SSH without first having Cydia, what other possibilities could there be?
If you are looking for jailbreak instructions, there is a guide in the menu on the right.
If you have managed to remove Cydia, first of all, BAD USER! Go stand in the corner! Why would you do that??
All reasons aside, if you’ve managed to get into this situation, you’ve come to the right place as I have a solution for you. First, download the following file.
Now unzip the file, you will have 2 .deb files. You will need to get them onto your phone using your client of choice (WinSCP, FileZilla, etc).
In an SSH session, change to the folder you put the debs in. Type exactly the following:
- dpkg -i essential_0-1_iphoneos-arm.deb cydia_1.0.2953-59_iphoneos-arm.deb; respring
If you attempt to install either on it’s own you will get errors and it will not work. Once it has finished, your phone should respring, and if all is well, you should again have Cydia on your springboard.
If the situation is that you simply deleted the Cydia.app folder, I can make that available as well but I’m not going to unless it’s requested you can download it as a zip here. I zipped it directly on the device preserving the permissions, so you can either unzip it on the device, or make sure that after FTP’ing, you right click the Cydia.app folder to edit the permissions, set it to 755 and choose the recursive option.
So there you all go. Hopefully this is what you guys have been looking for, if it is not, be sure to make yourself heard in the comments. As you can see, your questions get answered even if you do not ask them, imagine what might happen if you do!
This last section is mainly for the search engines, but if you attempt to install just Cydia, you will get:
Unpacking cydia (from cydia_1.0.2953-59_iphoneos-arm.deb) …
dpkg: dependency problems prevent configuration of cydia:
cydia depends on essential; however:
Package essential is not installed.
dpkg: error processing cydia (–install):
dependency problems – leaving unconfigured
Errors were encountered while processing:
cydia
likewise, attempting to install just essentials will yield:
Unpacking essential (from essential_0-1_iphoneos-arm.deb) …
dpkg: dependency problems prevent configuration of essential:
essential depends on cydia | com.ripdev.icy; however:
Package cydia is not configured yet.
Package com.ripdev.icy is not installed.
dpkg: error processing essential (–install):
dependency problems – leaving unconfigured
Errors were encountered while processing:
essential
Bullet proof tracking for your iPhone
by Vaelek on Aug.01, 2009, under Tips & Tricks
There are a few services available now for tracking your phone. As far as I know, all of them can be disabled by a would be thief rather easily. I have found a method that will give no indication whatsoever that your phone is being tracked. Additionally, there is only one way to launch the app to change the settings or disable it, and for the common thief is not likely to happen.
The idea just came to me when I was backing up my Cydia applications and saw the FieldTest.app folder. If you aren’t aware, there is a special number you can dial on the phone that will open the field test application. To check it out, dial *3001#12345#*. When you hit call, the field test app opens. So I thought it could probably be replaced with something else, and that’s exactly what I’ve done.
I should note that only jailbroken phones will be able to use this method. You will need to have SSH installed, and I would recommend plist editor as it allows you to edit XML and binary plist files, both of which you will likely encounter.
Ok so the first step is to ftp to your phone. First go to /Applications. This will take you to the real location of the apps (Native and Cydia). Find and delete the FieldTest.app folder. Note that you will need to use root as the mobile account will not be able to remove it. (If you still want to have the fieldtest app available, change it’s identifier and remove the lines used further down to hide the icon)
Next you will find the folder for the app you wish to hide. If it is a native app or something installed with Cydia, you should look in /Applications. For AppStore apps, instead go to /private/var/mobile/Applications. You will see folders named something like 1B8A526F-88B8-4447-8EAD-E7F9575E07E6. You will have to look at each one until you find the app you are looking for. As an example let’s just use Navizon. You will find the folder containing Navizon.app and then enter that folder.
Copy the Info.plist file to your computer and open it in plist editor. Find the line that says
<key>CFBundleIdentifier</key>
and change the next line to say
<string>com.apple.fieldtest</string>
This will cause Navizon to be identified as the field test app. Next, go to the end of the file and right above </dict>, add the following
<key>SBAppTags</key>
<array>
<string>hidden</string>
</array>
This will prevent the icon from showing up on the springboard. All that is left is to respring.
Now, when you dial *3001#12345#*, Navizon will open.
One thing I should note is that Navizon in particular will show an icon on the status bar when it is running in the background. To get around that, simply delete or rename the TopBar.png file in the Navizon.app folder.
This method can be applied unchanged to any app you like.