Jul 27, 2010

Now Legal to Jailbreak Your iPhone in the U.S.

Feel like jailbreaking your Apple iOS device? Fearful that Apple will set the law on you if you do? Fear not, because a decision just rendered by the U.S. Copyright Office now allows you to legally jailbreak your device for a number of purposes. The alterations to the Digital Media Copyright Act (DMCA) are huge news for both Apple and Apple users alike.

Not only is jailbreaking now okay, but ripping DVDs and cracking video game or software encryption is too, in certain special circumstances. It doesn’t exactly mean it’s open season for any and all piracy, but it does relax things quite a bit, and will probably make it much harder to prosecute those kinds of violations.

The new rules designate six classes of work that are now exempt from prosecution under the DMCA. Here’s the categories, briefly explained:

1. Movies on DVD, when used for educational, non-commercial purposes. Bypassing encryption on said videos is now legal. NewTeeVee has more on this portion of the rule changes.
2. Applications that allow for the use of legally obtained software on platforms that otherwise wouldn’t allow it. For instance, jailbreaking iOS so you can run Backgrounder or Wi-Fi Sync.
3. Applications that allow for the use of cellular devices on networks for which they weren’t originally designed. Case in point, unlocking an iPhone so that you can use it on Sprint instead of AT&T.
4. Video games can be cracked when the reason behind it is to promote, investigate or test for security of a computer, computer system or network.
5. Hardware-dongle protected software for which the dongle is no longer available or is obsolete, rendering the software otherwise unusable.
6. Enabling text-to-speech in ebooks which contain methods to prevent those read-aloud features, since, presumably this limits access by those with disabilities, though that isn’t specific stated in the rule itself.

Now, as you might have guessed, that doesn’t mean there aren’t any consequences for jailbreaking. Apple is still well within its rights to void your warranty, or even to suspend your Apple Store account if it manages to discover that you’re using jailbreak software. But not having to fear the long arm of the law is yet another argument in favor of jailbreaking still being worth it.

I’ve been leaning heavily towards jailbreaking my iPad, mainly because Apple seems not to be in a hurry to get iOS 4 on the device. This ruling pretty much cinches it for me, though I think I’ll do some more research about the effect it has on battery life before I commit. Anyone else motivated to jailbreak because of this news, or was the threat of legal action never much of a scare tactic to begin with?

theappleblog.com

Jul 15, 2010

Apple Releases iOS 4.1 Beta to Developers

Apple has announced to developers that iOS SDK and iOS 4.1 beta are now available from the iPhone Dev Center.

Apps built with iOS SDK 4.1 beta should only be tested on devices running iOS 4.1. Make sure to read the Xcode 3.2.4 Readme and the iOS SDK 4.1 beta Release Notes before installing and downloading these new releases.

The SDK build number is 10M2304 and the firmware build number is 8B5080c.

Hopefully some of the false reception readings and proximity sensor issues will be resolved in this update. Developers please let us know your experiences in the comments...

Changes:
1. Signal Bars seem to be fixed and are taller
2. New Baseband (02.07.01)
3. Game Center is back with new look (see screenshot)
4. Camera Switch and Flash buttons reposition in landscape mode (see screenshot)
5. You can now choose to add Favorite as voice or FaceTime.
6. Spell Check can be turned off in Settings

Jul 14, 2010

Planetbeing Demos iPhone 4 Unlock

Why Apple—and not its customers—should fix the iPhone 4

In our reporting and a video yesterday, we made the point that the signal drop that iPhone 4 customers have observed when they hold their phones the "wrong" way is real—and we've called on Apple to do something about it. In an earlier statement, the company noted that attenuated performance is a "fact of life" for every wireless phone. Apple suggested owners mitigate the problem by holding the phone differently or purchasing a case. But those solutions put the onus on consumers and skirt Apple's obligation to offer a product that works consistently and reliably out of the box.

We think it's the company's responsibility to provide the fix—at no extra cost to consumers.

Our tests, conducted in our labs using controlled signals, confirm growing anecdotal indications that the iPhone 4's problems are anything but illusory. Our tests found that when your finger or hand touches a spot on the phone's lower left side—an easy thing to do—the signal can significantly degrade enough to cause you to lose your connection altogether if you're in an area with a weak signal. We tested several other AT&T phones the same way, including the iPhone 3G S and the Palm Pre. None of those phones had the significant signal-loss problems of the iPhone 4.

Ironically, aside from these reception glitches, our other tests placed the iPhone 4 atop the latest Ratings of smart phones. But we did not feel comfortable listing a phone with such a problem as "recommended," and therefore have withheld that tag.

Our stopgap fix for the issues of applying duct tape to the phone—while inexpensive and easily done—obviously isn't meant to be a permanent solution. The real fix, we believe, should come from Apple. The company has said it will issue a software update that will make the phone's bars more accurate, though it remains to be seen if fixing metering inaccuracies will address the problem of dropped calls. The company will also provide a full refund to users who return their iPhone within 30 days.

But for those who prefer to keep their iPhone, we encourage Apple to step forward soon with a remedy that fixes the confirmed antenna issue, and not one that requires additional consumer expense.

source

Jul 11, 2010

The Smartest People in Tech


CEO, Apple

When Steve Jobs returned to Apple in 1997 after a 12-year exile, the company was close to bankruptcy. Thirteen years later it has a market cap of $250 billion and is the world's most valuable tech company, transforming whole industries along the way. iTunes reinvented music. Pixar, now part of Disney, elevated animated films. The iPhone changed telecom. And the new iPad has other computer makers scrambling to respond. Rocking one industry could be luck, but upending four? That's smart.

He is a visionary, a micromanager, and a showman who creates such anticipation around new products that their releases are veritable holidays. And Jobs is a pop culture icon like no other business executive: An episode of The Simpsons a few years ago featured a Jobs-like character named Steve Mobs.

His dictator-like control can cause havoc for partners: Jobs, 55, has decided, for example, that Apple products won't support Adobe Flash, the code most video-heavy websites depend on, leading designers to switch to new tools. But Jobs' vision is also what gives these devices their elegance, causing consumers' hearts to flutter. --Jessi Hempel

Geohot Jailbreaks the iPhone 4 ( not anymore )

Geohot has announced that he has jailbroken the iPhone 4.

As far as a release goes, it probably won't happen from me. limera1n is little more than a raindrop on a website; it was never mentioned by me previous to this post. pwned4life is a complete invention of some blogger in a basement somewhere. When I said pwned for life, I was referring to the original iPhone, 3G, and Touch; which of course are, by the aptly named PwnageTool. Again, please don't ask for release dates. Every person that does makes me want to release a little bit less.

Considering that there already is a userland jailbreak coming for all 4.0 devices; Geohot may save his exploit for the future.

Update 1 :
Geohot Withdraws from iPhone Jailbreak and Unlock Scene

Geohot has also now shut down his Twitter account which has 113,761 followers. Visiting the account now says, "This person has protected their tweets" and no past tweets are viewable to the public.

Here are his last messages:

"I was just having fun but some people had to take this all way too seriously. it's just a phone, and it isn't much fun anymore.

my bio isn't "iPhone hacker" it was just something i did occasionally when i was bored. seriously, i think many of you care way more than me

it was a cool ride, and i've learned a lot about a lot. perhaps one of these days i'll do a more formal goodbye."

Jul 7, 2010

Understanding iOS 4 Backgrounding and Delegate Messaging

The World Before Multitasking

The first thing that I learned from this is that applicationDidBecomeActive: is being called right after application:didFinishLaunchingWithOptions:. So even before 4.0 it would have been smart to put there any kind of code that you want executed whenever the app becomes active, be it after app start or upon rejecting a phone call.

Not shown on this diagram is the situation that your app is eating up all the system memory and ignores both the level 1 and level 2 memory warnings. In that case the OS will also terminate your app without totally unscrupulous.

The mechanism with WillResignActive and DidBecomeActive is sort of the Backgrounding Lite that has always been there. This occurs whenever some other thing is displayed in front of your app. This could be the UI to accept a phone call or something as benign as the synching screen.

Multitasking ON

Adding multitasking to this flow chart makes it about twice as complex. I probably spent an hour trying to fit it all together with no crossing lines. Another thing that I noticed while doing this is that applicationWillResignActive: is the only delegate method that I could not optimize into a single box, because one use is to show that the app has been interrupted, the other is to the path into the background.


An app built with 3.2 will still go through a short background stage where applicationDidEnterBackground: is called. but then it will be terminated as usual. If the same app is built against a 4.x SDK then it will not go straight from background to being terminated. Instead it will stick around and so will be the debugger. As soon as you tap the app icon again or choose it from the app switcher it is first informed that applicationWillEnterForeground and then applicationDidBecomeActive.

An app that is suspended but still in RAM might be terminated by the OS if memory runs low. But after entering the background there is no longer any delegate method being called, instead the app will receive a KILL signal. This occurs also if the user long-presses the app icon in app switcher and then removes the app from there with the removal button.

Accepting a phone call no longer terminates your app but will send it into the appropriate background mode. Within the background box you see two purple states that the app can be in. All apps are suspended in RAM per default. You might want to slim down your memory footprint to make your app a less likely target for killing if the system runs low on memory.

Only apps that actually require background processing continue to be executing. This requirement is either set in info.plist or by telling the OS that you have a task to complete, like for example a file upload.

The following kinds of activities get to run in true multi tasking behind the foreground app with lesser CPU priority.

  • playing music: “App plays audio”
  • geo location: “App registers for location updates”
  • VOIP: “App provides Voice over IP services”

If your app does one of these things then adding the key to info.plist is all it takes. But be aware that as soon as your app stops doing what it stated it would be doing the OS again will send it to sleep, only to be awakend by another gentle tap by the user.

In background mode you’re advised to stop updating the UI. Especially with OpenGL Apple is really strict. If you app as much as touches OpenGL while in background the app gets killed right away.

There are only two scenarios left where your app’s applicationWillTerminate: will actually be called: if it’s build with an SDK of less than version 4.0 or if you chose to opt out of backgrounding by adding the UIApplicationExitsOnSuspend key to your info.plist.

So, let’s ask the question we’ve been doing all this fuss for: Where should you now put your code to initialize, update or save changes? applicationWillTerminate not being called in the majority of cases makes it a rather bad candidate to save user defaults or data.

Looking at the chart I see applicationDidEnterBackground as the ideal candidate delegate method for saving state. This is also the last method to be called before a regular 4.0 app gets put to sleep and before a possible kill.

For updating data from the web the case is not as clear. You would not want to reload every time the user comes back to your app. Possible applicationDidBecomeActive: is a good place, provided that you only reload data if sufficient time has passed to be able to assume that something new is available.

Only the first loading of data can stay in application:didFinishLaunchingWithOptions: since every call applicationDidBecomeActive: most likely has the data already loaded previously.

Conclusion

Adding fast app switching and multitasking support is quite easy since for the most part you don’t need to do anything. But you WILL have to review the contents of your app delegate methods to see which code has to be moved into one of the other delegate methods now. Clean out applicationWillTerminate: and have a close look at application:didFinishLaunchingWithOptions: to check if you have something in there that needs to be done every time the app becomes active.

These charts come from some experimentation that I did and what I remembered from the WWDC 2010 session videos on multitasking. Potentially there are mistakes or more surprises hidden in there. Please let me know if you find any.

Here’s the chart in PDF format in case you want to print it out and frame it.

source