posts filed under "August 2008 Entries"
(.)

The Dev Team has released QuickPwn for Mac OS X. Here is the preferred and official torrent link and here is my local little mirror (23 MB download). Follow their post to get the full story.


A few days ago my mother asked, why I'm blogging predominantly in English. After all, I'm based in Germany and my mothers' English is not up-to-date. That kind of led me into checking the geographical 24100.net visitor distribution. Here are the stats for the last seven days (spiders, crawlers and spam bots have been filtered out):

Geographical distribution of 24100.net visitors 

 

Interestingly enough my home country - Germany - ranks number 4 only. By far the most visitors originate from the United States, closely followed by a large amount of Chinese visitors.

24100.net Visitors Map

Inside Europe my home country is clearly responsible for the most page impressions, though:

24100.net Europen Visitor Distribution

Once we are talking stats, I'd like to kindly thank all of my visitors for generating 100.000+ weekly hits and the large amount of feedback I do receive via the Contact options. I try my very best to answer every single email but bear with me if sometimes it takes a couple of days.

24100.net Page Views


Quick note: Internet Explorer 8 Beta 2 breaks facebook Chat, Online Friends and Profile Videos. You'll constantly get JavaScript errors. At this moment there's a simple workaround: Go to Tools > Compatibility View Settings and add facebook.com to the list of sites. Henceforward IE 8 Beta 2 will render facebook in IE 7 compatibility mode.

As a shortcut you can click the newly introduced Compatibility View Button right next to the URL in the Address Bar:

IE 8 Beta 2 Compatibility View Button

This will immediately reload and rerender the current page in IE 7 mode. The button will only be offered when IE notices that it makes sense.


The Dev Team has just released the updated PwnageTool 2.0.3.1. This version is supposed to fix all of the recent permission related issues and some other minor problems. I'm giving it a try right away and keep you posted.

Here is the direct link from the Dev Team blog. Here's my mirror. Please try the official link first and do only use my mirror in case Dev Team's servers experience bottlenecks. The update also comes through Sparkle if you select PwnageTool > Check for Updates... from the applications menu.

Wherever you get PwnageTool please verify SHA1 sum. It should be a3faf5c074d5556a40ce4c7678a51995b5767073.

In Mac OS X open a Terminal and type:

/usr/bin/openssl sha1 <path to PwnageTool.tbz>

This will output the SHA1 sum to your terminal window.

As always: Use on your own risk.

Latest News:

I've received feedback that the 2.0.3.1 update has not resolved the permission issues for some folks out there. I cannot personally confirm the reports as it seems to have worked for me. I'm following up with my readers tomorrow and constantly update this post for more.

I cannot confirm that there still is a problem with PwnageTool 2.0.3.1. I've tested it with my first generation iPhone and with my development device (3G). Both devices work like a charm and there are no permission problems anymore. Note: Unfortunately PwnageTool 2.0.3.1 in its About screen identifies itself as "2.0.3" only. Make 100% sure that you're actually using the updated version. May be it's best to pick the tbz archive via the direct link and open it right away. Otherwise in case something goes wrong while receiving the update through Sparkle you might not even notice using an old version...

 


Update August 26th 2008: Dev Team has released the updated version 2.0.3.1 of PwnageTool which solves all the below issues. The remarks made in this post with respect to PwnageTool caused problems no longer apply.

 

In case you've updated your jailbroken iPhone to Apple's firmware 2.0.2 recently and used Dev Teams PwnageTool 2.0.3 which has been released on Monday August 25th 2008 you might have encountered a couple of issues. Driven by your feedback this post summarizes in a bit more detail how to resolve these issues.

Before you apply the fixes please note that the Dev Team has acknowledge the problems and announced an immediate update for PwnageTool. In case the issues do not severely affect you I recommend to just wait until they release their update and redo the jailbreak/activation/unlock.

Otherwise just apply the quick fixes outlined in this post.

Here are the symptoms you might be facing:

  • When opening the mail application iPhone repeatedly prompts for the password. Providing the correct password yields a "username or password for account <account name> is incorrect" error.
  • iPhone loses passwords set for protected WiFi networks.
  • Exchange syncing works for Calendar, Contacts and mailbox folder structure but sending/receiving mail fails with the incorrect password issue.
  • iPhone does not allow to set a Passcode Lock. After entering a new passcode twice the Passcode Lock stays OFF.

These issues seem to all be related to wrong file system permissions. One general workaround is to not include the Cydia package manager in your custom ISPW. I'm not going into any detail for this possible solution as Cydia provides much of the value of jailbreaking your device. I don't consider turning down Cydia as a good workaround.

Here is how you fix the permission issues:

  • Install the OpenSSH package via Cydia. Start Cydia, go to the Search tab and search for OpenSSH. It's part of the Telesphoreo source. Install it. OpenSSH is a background daemon which will allow you to log into your device via a secure shell.
  • Make sure your iPhone is connected to your local WiFi network. Find out the IP address of your device: Settings > Wi-Fi > <name of your WiFi network>. Note down your current IP address. For the remainder of this post my IP Address is 192.168.1.115.
  • Next use a SSH client to log into your iPhone from a Mac/PC connected to the same local WiFi network.
    • On a Mac OS X machine open a Terminal.
      • Type ssh root@192.168.1.115
      • If you receive a security note accept it by typing yes.
      • When prompted for the password type alpine.
      • Type chmod 777 /var/Keychains
      • Type chmod -R 777 /private/var/Managed\ Preferences/
      • Type restart
    • On a Windows PC get a free SSH client like Putty.
      • Start Putty. Leave all the settings with their defaults and in the Host Name field enter 192.168.1.115.
      • At the login as prompt type root.
      • At the password prompt type alpine.
      • Type chmod 777 /var/Keychains
      • Type chmod -R 777 /private/var/Managed\ Preferences/
      • Type restart

Obviously for the above steps you've got to substitute my IP address with yours. You might want to consider uninstalling OpenSSH via Cydia or at least turning it off as an open SSH port with the iPhone default password constitutes a security lack. BossPrefs available via Cydia, too, is a great utility which lets you turn OpenSSH on and off easily.

This should fix the mail password, WiFi password and Passcode Lock problems.


Update August 26th 2008: Dev Team has released the updated version 2.0.3.1 of PwnageTool which solves all the below issues. The remarks made in this post with respect to PwnageTool caused problems no longer apply.

(For a preliminary potential solution see below...)

Warning: I've received scattered reports that after upgrading to Apple firmware 2.0.2 with Dev Team's PwnageTool 2.0.3 a severe username and password issue arises in Mail.app and others. The symptoms:

  • iPhone displays "Cannot Get Mail" error with "username or password is incorrect" even though you definitely entered the correct credentials. This seems to happen with IMAP and Exchange accounts.
  • When setting up Exchange syncing Calendar and Contacts sync fine. Folders of the Exchange mailbox sync fine. However, when trying to send and receive email you are prompted to enter the password again. Upon providing correct credentials iPhone continues to say "username or password for account <account name> is incorrect".
  • When using a password secured WiFi iPhone does not remember the password and constantly prompts for it.
  • When going to your email account settings iPhone has "forgotten" a previously supplied password. Instead the settings show "Required" again.
  • You cannot set Passcode Locks. Even when you enter a new Passcode twice the Passcode Lock stays off.

The issue seems to persist even after downgrading back to firmware 2.0.1.

I've contacted the Dev Team with this issue and update this post as soon as a solution is available. In the meantime if you're facing these or related issues, please comment to this post.

Update 1:

Visitor oz_paulb commented on the Dev Team blog that NOT including Cydia when you build your custom firmware seems to solve the issue. Use Expert mode to so. I haven't tried myself and can yet not confirm.

Potentially and preliminary solution:

Just "fixed" the issue on my iPhone. I cannot confirm that this will work as I don't have the initial issue anymore. May be other readers can try this and confirm in the comments:

1. Use Cydia to Install the Open SSH package.

2. SSH into your iPhone - Use your iPhone' WiFi IP address and login as user root, password alpine.

3. Once logged in type: chmod 777 /var/Keychains

4. Type: chmod -R 777 /private/var/Managed\ Preferences/

5. Step 3 will fix the ownership for the Keychains, that's where user credentials get stored in iPhone OS. Step 4 will fix the Passcode Lock issue.

6. So far this did NOT solve the problem on my iPhone.

7. Go to Settings > Fetch New Data.

8. Turn Push OFF.

9. Switch the fetch frequency to 15 Minutes.

10. Leave the Settings completely.

11. Try to get your email.

12. Go back to Settings > Fetch New Data.

13. Turn Push ON.

That's it. My Exchange email is back working. I just added an additional IMAP account and that works fine, too. Could somebody replicate?

 


Update August 26th 2008: Dev Team has released the updated version 2.0.3.1 of PwnageTool which solves all the below issues. The remarks made in this post with respect to PwnageTool caused problems no longer apply.

 

IMPORTANT: IN CASE UPDATING BREAKS YOUR EMAIL FUNCTIONALITY (INCORRECT PASSWORD ISSUE) FIND MY POTENTIAL SOLUTION HERE!

 

The world famous Dev Team has just released PwnageTool 2.0.3!

As always: To avoid version confusion: PwnageTool 2.0.3 supports Apple's official firmware version 2.0.2 (5c1) which as of this posting should be considered the current version of iPhone OS. Betas of version 2.1 have been made available to members of the iPhone Developer Program but must not be installed on non-development devices.

PwnageTool 2.0.3 is out!

The procedure to jailbreak and unlock first generation iPhones has not changed from version 2.0.2 to 2.0.3 except that in Step 6 you have to select the new version of iPhone OS. This version of PwnageTool does not yet support unlocking 3G iPhones. Just jailbreaking on 3G iPhones works just fine.

I've updated my device within eight minutes without any issues. Everything's working like a charm. Usually PwnageTool checks for updates during startup. Here is a direct download and here is my non-official mirror.

Wherever you get PwnageTool please verify SHA1 sum. It should be 91e670e0c623cd43f5e8cfbfaae6c23d98d8f31b.

In Mac OS X open a Terminal and type:

/usr/bin/openssl sha1 <path to PwnageTool.tbz>

This will output the SHA1 sum to your terminal window.

I'm curious whether this version addresses some of the recent Cydia issues and keep you updated.

 


I've received scattered reports that iPhones are stuck on the boot logo screen (Apple logo, pineapple or Steve Jobs) after a failed/aborted Cydia package install. The symptom seems to be that you select to install a package in Cydia, the installation routine starts and after some initial progress freezes your device. Once you try to reboot (by holding Home+Power for a while) the iPhone comes up with the boot logo and gets stuck. Even waiting "for hours" does not solve the problem. Multiple reboots don't help.

Common to all reports is that iTunes no longer recognizes the iPhone once plugged into the Mac/PC.

Cydia - The iPhone free software package manager

Currently the only solution seems to be to put the iPhone into Device Firmware Update (DFU) mode and completely restore to either Apple's or a custom - pwned - firmware. While I'm not yet aware of the root cause it seems as if the issues occur more often if you've got many official additional applications from App Store installed.

As a preliminary workaround I recommend to install your Cydia applications first, before you restore your App Store applications. So if you're iPhone is currently hanging during boot I recommend to do the following steps:

  • Put your device into DFU mode.
  • Restore the device to the custom firmware.
  • Do not restore a previous back up. Do not sync. This would bring back all of your App Store applications.
  • Disconnect your device.
  • Install everything you need via Cydia.
  • Plug-in your device.
  • Let iTunes restore from your previous back up.
  • Sync.

The reports I've received where related to first generation iPhones with a pwned Apple 2.0.1 firmware (Pwnage tool 2.0.2).

I've contacted Jay Freeman - Cydia's author - and asked him to kindly look into this issue.

 


I've been asked by some folks with a .NET background how I've jump started my iPhone development journey. Well, first of all, if you're new to programing for the Mac and have a .NET/Visual Studio background, be warned: EVERYTHING IS DIFFERENT. And with "different" I mean VERY different. :-) The same applies if you're background is a Java/Eclipse one.

It took a while for me to get a hold of Apple's paradigms when it comes to application architecture and how things integrate into each others. One of my biggest difficulties was to really grasp how stuff you do with Interface Builder and the code you're writing work together.

Unfortunately Apple puts all iPhone developers under a strict NDA.

Therefore no entitled developer is allowed to post tutorials, discuss code related questions, etc. not even via email. Well, I'm not going to break mine here. :-) All I can do is help with a brief list of the stuff and the order in which I've read the documentation which got me going. This is in no way a complete list but it'll definitely get you quick results and if you take it from there you'll be able to develop iPhone applications with rich user interfaces in a relatively short amount of time.

Here's my list:

Once you've completed the above list, you're pretty well equipped to dive into more sophisticated topics. So far, I've completely read the following material to deep dive into the inner workings of iPhone OS:

  • Aaron Hillegass fantastic Cocoa (R) Programming for Mac (R) OS X book. Make sure you grab the 3rd edition as the older ones do not include Xcode 3.x material!
  • Aaron's book has nothing iPhone specific - in fact, it doesn't refer to the iPhone specifically anywhere - so you might want to additional read the Cocoa Fundamentals Guide.

Once you've completed the second block, I highly recommend to finish with the following list of guides:

This is a lot of material, I know. However, rest assured it's much fun all along the way, too! The iPhone OS is a great platform for delivering rich mobile user experiences and once you start understanding the core principles and paradigms, you can yield great results in a very short amount of time. Also: Reading the above material is not a tedious undertaking. I tend to read stuff like this in the evening and night hours and managed to get through all of the above in less than two weeks (with an average daily consumption of 3-4 hours per evening).

Should you know additional sources that have helped you jumping on the bandwagon, please feel free to add a comment to this post.

Hope this helps!


(Apologies for the somewhat wired post title - it'll all make sense later and I wanted to get it listed by Google in case you're experiencing the issues discussed here.)

November 14th update: I've just published even more details about mobile provisioning here.

I've started this post quite a while ago but never really finished it. Last night one of my colleagues ran into a mysterious PreflightingApplication error when trying to deploy an application from Xcode to the iPhone.

We finally solved the problem by setting him up completely new and while so doing I again noticed that some of the instructions Apple is providing are confusing if not imprecise. Therefore I finally decided to finish the post up and highlight some of the subtleties of the process. Hope it helps!

Prerequisites

Here is a brief overview of the environment we are working in:

  • We are approved and paying members of the iPhone Developer Program.
  • We are using iMacs with Mac OS X 10.5.4, Xcode 3.1 and the final version of iPhone SDK 2.0 (build 9M2199a).
  • Our iPhones are running the pwned Apple firmware 2.0.1 with Jailbreak and Unlock applied. We've used Pwnage tool 2.0.2 to do the magic.
  • We are not using any methods to circumvent Apple's code signing practices and generally do not endorse those.

The Developer Program Portal

Your entry point into iPhone developer heaven is the Developer Program Portal. Navigate to the iPhone Dev Center and log in with your Apple ID.
Log into the iPhone Developer Center

The iPhone SDK download is available for free. However, in order to set up iPhone developers for code signing and provisioning, you need to be an approved iPhone developer and should see the login for the Developer Program Portal in the upper right corner.
image

Apple's Guide to setting everything up and some additional remarks

Apple has published a pretty comprehensive guide how to do the basic set up. You need to be an approved iPhone developer to access this download. Here are some tips which helped us getting things right:

  • Make sure you've downloaded all certificates and stored them in a secure place on your hard disk. This includes the WWDR Intermediate Certificate and your personal certificate issued by Apple which you can download from the Developer Program Portal.
    Download your Certificate

  • Install the certificates by double-clicking them. This will launch the Keychain Access application. Make sure you install to the login chain which should be selected by default. Validate that your keys have been correctly installed and validated by opening Applications > Utilities > Keychain Access and expanding the iPhone Developer: Your Name section in the login Keychain.
    FlySketchWorkflow-2008.08.21 13.51.32

  • Make sure your App IDs are set up correctly.

    App IDs are an important piece of the overall iPhone developer infrastructure and one, where I found many people struggling with subtle details. Unfortunately neither the Developer Program Portal's How to section nor Apple's guide are extremely clear on what needs to be done to get things going.

    An App ID is a unique digital fingerprint that OS X iPhone uses to grant your application access to a portion of the Keychain and is one part of your development provisioning profile. In the App IDs section of the Developer Program Portal create an App ID if you have not yet done so. You can give your App ID an arbitrary Name. The name is used for reference purposes only.

    The ID itself must be unique. Therefore most developers use a reversed version of their domain name (or their companies domain name) as it is pretty common for namespaces. In case you would like to use a single App ID for all of your applications, you have to add a trailing asterisk. With that said I'm using the following ID:

    net.24100.*

    Important: Apple generates a Bundle Seed ID for every App ID you create and appends it to your App ID as a prefix, however, the Bundle Seed ID must not be considered as a part of your App ID. So whenever you're prompted for your App ID anywhere in Xcode or elsewhere, you must only use your App ID without the Bundle Seed ID. To make this very clear: In my case in the ID column of the Portal it says C5LRL9WHCV.net.24100.*. The "C5LRL9WHCV" part is the Apple generated Bundle Seed ID and only the net.24100.* part is my App ID!

  • Use the Developer Program Portal's Devices section to set up your development device. Make sure to use the correct Device ID by copying it from Xcodes Window > Organizer.

  • In the Provisioning section of the Developer Program Portal make sure you've set up at least a single Provisioning Profile. Provisioning profiles combine a developer certificate, an App ID and a device and link them together. Once you've double-checked everything, download the provisioning profile to your hard disk. If you have not yet done so, you need to install the provisioning profile to your iPhone. I'd suggest not to use the method outlined by Apple (dragging the downloaded provisioning profile file to the Xcode icon) but instead open Window > Organizer in Xcode with your device connected, selecting the device and hitting the [+] in the Provisioning section.
    image
    You can double-check whether the profile has been installed correctly by going to Settings > General > Profile on your device.

Fixing settings in Xcode

You've got to go through the previously outlined one-time process in order to start deploying and debugging applications to your iPhone. There are also some additional important details which - if you're not doing it right - can cause wired errors once you deploy.

You might see error messages like the one we've encountered:

"Your mobile device has encountered an unexpected error (0xE8000001) during the install phase: PreflightingApplication"

Chances are you also occasionally see application verification failed errors with the same or similar hexadecimal error codes. In almost all cases related to this error the problem has been a wrongly configured Bundle Identifier in Xcode's project settings.

Even though Apple explicitly states somewhere on their web site that you don't need to set the Bundle Identifier manually anymore, we never got deployment working without having it set correctly manually. So before you move on check your project settings:

  • In Xcodes project organizer expand the Resources section.

  • Find the Info.plist file and double-click to open it.

  • Enter your App ID into the Bundle identifier field. In my case I've entered net.24100.*.
    image
    Note: I've seen others recommending to put something like net.24100.${PRODUCT_NAME:identifier} in here. While this might be perfectly correct, it simply did not work for us in most cases. The reason might be (and this is a purely personal assumption as Apple unfortunately does not reveal specific details about the inner workings of the deployment process) that with the ${PRODUCT_NAME:identifier} set as the Bundle identifier the deployment can not uninstall a previous version of the application. If you manually uninstall the application on your iPhone and redeploy, this version seems to work, too. Again, this is pure speculation and in case you've got further information, I'd love to see your comments. Anyway, we simply put net.24100.* in the field and it works like a charm.

  • The last thing I found many people struggling with are the correct project settings. You might want to verify those, too. To access your project settings select the first entry in the Group & Files pane in Xcode project window. Double-click it or select Get Info from the context menu. Here are my current settings. I've highlighted the area which is important for deploying: image

    In the Code Signing Identity field enter iPhone Developer: Your Name. The name must match the one used for the certificate. You might find it awkward but you really do have to manually type in iPhone Developer a colon a blank and then your name.

    In the Code Signing Identity > Any iPhone OS Device filed make sure it says iPhone Developer.

    In Code Signing Provisioning Profile > Any iPhone OS Device you should be able to select a provisioning profile. In case no provisioning profiles show up here, you most likely have a typo in the Code Signing Identity field.

That's it for today. I hope this helps. In case you've got additional tips and findings, please do use the comment feature as others very likely will find your information valuable, too.


Quickly after version 2.0.1 came out, Apple on Monday evening released version 2.0.2 firmware for the iPhone. The 248.7 MB update is available only through iTunes and comes just two weeks after version 2.0.1

As always - and very unfortunate - Apple does not provide detailed release notes identifying individual issues that might have been fixed and only broadly says they've fixed some bugs.

Lately many users of the 3G version reported faulty UMTS connections and occasional connection drops with firmware 2.0.1 so this might be the reason for the very quick release of this update, though Apple did not confirm any of these.

A brief look into the new firmware showed that there are no new settings, applications obtained through the App Store do not require to be updated and NetShare still works. The transition from music list to Coverflow view has changed.

As of now Pwnage tool does not allow to jailbreak this new version. Stay tuned for updates!

 


I'm running 24100.net on Subtext. In good accompany with Windows Live Writer I just love the solution. The Subtext team has just released version 2.0. Following a brief IM session with Tim Heuer - who runs his blog on Subtext, too - I've decided to migrate to the new version asap. While I'm doing so this site will experience some downtime. Please accept my apologies for that. Unfortunately I've tweaked the skin of this blog quite a bit to get Technorati and some other stuff working and went beyond standard Subtext skinning. Therefore the update will eventually take a bit longer than with a vanilla Subtext install.

So keep your fingers crossed, I'll be back and hopefully you won't notice anything. :-)

It has been a pure pleasure!

There's nothing to add. I updated my Subtext 1.9.6 driven blog to the newly released Subtext 2.0 without any issues. Here is what I did:

1. Made a back up of the MS SQL 2000 database.
2. Ordered a new MS SQL 2005 database. (Thanks to the guys at discountASP who proceeded with my order within seconds.
3. Restored the MS SQL 2000 back up to the newly created MS SQL 2005 database. No issues at all.
4. Uploaded the clean Subtext 2.0 web files to a newly created \blogv2 directory.
5. Changed the Web.config to point to the MS SQL 2005 database as a data source.
6. Accessing the Subtext 2.0 Control Panel started the database migration. Again, no issues whatsoever!
7. Uploaded my 24100.net skin files and added the skin to Skins.config.
8. Uploaded the images folder to my skin folder. I believe Windows Live Writer creates it.
9. Deleted the old blog directory. Renamed \blogv2 into \blog.
10. Replicated some of the manual modifications and tweaks for the updated Subtext source files.  I used a few to make some special things working which were beyond Subtext skinning.

Here you are. No difference - I hope - for my visitors except a possible minor increase in speed.

Now running on the latest Subtext version: 24100.net.

 


I've been overwhelmed by the massive feedback and response I've received related to my iPhone 2.0.2 update post.

Google.com currently ranks this post as the 1st entry even before the official Dev Team page:

Google for iPhone update 2.0.2 
(Click to enlarge)

Thanks for all the positive feedback and linking back!

I'd like to encourage everybody to comment as opposed to sending me personal emails. This will contribute to everybody's knowledge. :-)

Also: I'm on the run. Attending a birthday party tonight (CET time zone). So I will be unable to answer your comments for the next couple of hours.

With the US folks waking up :-) most of the servers related to the latest iPhone update seem to get more and more busy and ultimately no longer serve you the desperately awaited files. I will provide a personal mirror later tonight - again CET time zone. Please stay tuned.

Meanwhile you might want to subscribe to my RSS feed and help spreading the word.

I'll do my very best to address most of the issues and questions you're sending to me. I'll also plan to post a Q&A on Sunday which goes beyond the step-by-step guide and addresses common issues.

Thanks everbody. These are interesting times.


(Note: This blog post gets constantly updated as I receive more and more feedback. Make sure you subscribe to the RSS feed to stay up-to-date!)

Two hours ago the Dev Team has released the desperately awaited update Pwnage Tool 2.0.2.

I highly recommend updating. While I'm not having any real numbers my personal perception is that after upgrading to 2.0.1 the overall responsiveness of my iPhone has almost doubled compared to the loss I've experienced after updating from 1.4 to 2.0. Also I've noticed a slightly weaker Wifi performance after going from 1.4 to 2.0. The known strong performance has returned after this update.

Just for clarification: Pwnage tool 2.0.2 does not unlock 3G iPhones. It jailbreaks first generation and 3G iPhones but as of today it only unlocks first generation iPhones.
  
PwnageTool 2.0.2 available for download

The brief list of changes as provided by Dev Team:

    • iPhone/iPod firmware 2.0.1 5B108 support
    • Added new Cydia build
    • Added Installer BETA - USE AT YOUR OWN RISK!
    • Added new Custom Package command "RunScript"
    • Added French, Hungarian and Russian language localizations
    • Added path for custom packages "~Library/Application Support/Pwnage/Tool/CustomPackages"
    • Various bugfixes

To avoid confusion: This current version of the Pwnage tool support the latest official release of Apple's iPhone firmware, which is version 2.0.1. However, the Pwnage tool itself currently is available in version 2.0.2. Or, to put it this way:

Pwnage tool 2.0.1 > Supports iPhone firmware 2.0

Pwnage tool 2.0.2 > Supports iPhone firmware 2.0.1

This new version supports first generation iPhones (the ones without 3G/UMTS) as usual and includes the jailbreak for the 3G version. Please note that as of this writing it is only available as a universal binary for the Mac platform.

Mirrors Summary

Before we start with step-by-step instructions for the impatient ones I've summarized all mirrored files. Disclaimer: Please do note that all downloads are provided as is with no warranties implied. I've tested most of the files myself but obviously can provide no guarantee whether these files will work for you, too. If you encounter broken links, please contact me.

  • Pwnage tool 2.0.2
    Universal binary for Mac users.

  • Custom Apple firmware 2.0.1 Part 1, Part 2, Part 3 [ca. 94 MB, 94 MB, 56 MB = 245+ MB joined]
    Can be used by Windows users and includes Cydia, installer.app, custom boot logos, Jailbreak, Activate and Unlock. Important note: Download all three parts and join them. Please rename the file to exactly iPhone1,1_2.0.1_5B108_Custom_Restore.ipsw after downloading. Otherwise iTunes might not accept it.

  • Bootloaders 39 and 46 [17 MB]
    Required by Pwnage tool if this is your first Pwne attempt.

 

Updating to Apple fimware 2.0.1 with Pwnage tool 2.0.2

I'm currently updating my iPhones and keep you posted. I've successfully updated my iPhones and written this step-by-step guide during the process. As the Dev Team's servers might very well be overwhelmed by the run, I'm going to provide a non-official mirror in a bit. I've mirrored the update, so if updating via Pwnage tool's built-in updater (Sparkle) or downloading from the official mirrors does not work for you feel free to grab Pwnage tool here.

In case you are a Windows user and your iPhone has been Pwned before - it already shows the pineapple logo - you might want to download the customized firmware ready to be restored via iTunes.

Important note: Download Part 1, Part 2 and Part 3 and join the files into one. File size should be 245+ MB after joining. Please rename the file to exactly iPhone1,1_2.0.1_5B108_Custom_Restore.ipsw after downloading. Otherwise iTunes might not accept it. Shift-click the Restore button in Windows iTunes to select the .ipsw file.

It contains Cydia and installer.app, custom boot logos, Jailbreak, Activate and Unlock. That way you don't have to wait until somebody releases a Windows version of Pwnage.

Update: I'm currently getting huge traffic. As it turns out Google lists my blog at number three if you're searching for the terms "pwnage" "2.0.2" "update". I'm running a dedicated web server so the mirror should be just fine. If you're experiencing trouble, please let me know.

image

I'm also keeping you updated while I go through the process so expect this post to evolve under your fingertips! Completed everything successfully. Read on! For reference purposes here is a link to my previous step-by-step guide for the last version of Pwnage tool.

Step by Step guide to updating

As always I've followed my instructions with my personal first generation iPhone and they worked perfectly well for me.

However, I do not grant any warranties whatsoever and I will not take any responsibility. Do this at your own risk!

Step 0:

Make sure you've got the latest version of iTunes on your Mac. Mine says 7.7 (43).

Step 1:

As should be normal procedure before you do major changes: Back up your iPhone! In iTunes right-click the entry for your iPhone and choose Back Up. Usually iTunes starts backing up your iPhone automatically before it syncs but I recommend to double check before you go ahead and make sure you get an up-to-date back up. Please note that backing up via iTunes does not take care for audios, videos, short messages and pictures. You need to take care for those on your own. Also, iTunes back up does not save any applications installed via Cydia. It'll only take care for official App Store software.

 Use iTunes...

... to back up your iPhone!

This step might be very time consuming. In fact, it took almost an hour for me with a 16 GB iPhone. Stay calm. Be patient. It's so much easier to restore all of your settings, applications, etc. later in the process. You for sure don't want to miss your back up!

Step 2:

In case you've used a previous version of Pwnage tool make sure that you delete any ISPW files which have possibly been left from that procedure. This helps avoiding duplicate file issues.

Step 3:

You still do need bootloader version 3.9 and 4.6 which you can download here. Make sure you unpack the Rar archives because the Pwnage tool will search for the unpacked contents later in the process. I simply created a bootloaders folder inside my Downloads folder and unpacked bootloaders.rar into it.

Step 4:

Once your back up has finished unplug your iPhone and plug it in again. iTunes will ask you to Download / Install the latest 2.0.1 firmware. Select the Download Only option. Do not install! Just download the firmware!

Let iTunes download the current Apple firmware 2.0.1

Step 5:

Launch the Pwnage tool 2.0.2 and select the iPhone icon on the very left if you've got a first generation iPhone. That's the path I'm going. (In Finder the application is called PwnageTool 2.app. Make sure you're using the latest version. The About Screen shoot look like the one at the beginning of this post and indicate the correct version).

Optional Step:

You might want to make screen shots of the most important settings before you move on. From version 2.0 of the iPhone firmware onwards you can easily make screen shots by quickly pressing and releasing the Home and the Power button simultaneously. The images will be appended to your Camera Roll. From there you can email them to yourself or send them to your MobileMe Gallery. I at least took shots from my Exchange sync settings.

Step 6:

Click the Continue Arrow. Pwnage will search for the firmware bundle .ispw. Chances are it'll find more than one. Make sure to select the one named iPhone1,1_2.0.1_5B108_Restore.ispw.

Select the correct version of the original Apple iPhone firmware

Step 7:

Answer Yes to the question whether you want the new .ispw file created and placed on your desktop.

Step 8:

I answered No to "Do you have an iPhone contract that would activate normally through iTunes?". Pwnage tool is going to build the IPSW. This might take some time. Finder windows might open and you might get asked to provide Administrator credentials. Go ahead and do so.

The build process has started...

Step 9:

If your iPhone has been Pwned before (you'd recognize the pineapple logo) answer Yes to the next dialog. If not, select No. I selected Yes.

At this stage the process might vary depending on whether this is the first jailbreak you're applying to your iPhone or whether you've previously used Pwnage tool. If this is your first jailbreak, you might have to put your iPhone into Device Firmware Update (DFU) mode. Pwnage tool supports you in doing so but here are the steps for clarity:

This step can be a bit awkward and you might need multiple tries. The Pwnage tool actually illustrates the process in great detail but let me summarize what you're supposed to do:

> Plug in your iPhone.
> Turn it off.
> Press and hold the Home and the Power buttons simultaneously for exactly 10 seconds.
> Release the Power button but keep the Home button pressed for 10 more seconds. You needn't be exact here. Just keep the Home button pressed until the device switches to DFU mode.
> Release the Home button after the 10 seconds have passed.

In case you have used Pwnage tool before, this step is not required! You can move on to Step 10 directly.

Step 10:

iTunes will pop up and ask you whether you would like to restore. While holding the Option Key (equals the key labeled "alt" on older keyboards) on your Mac, hit the Restore button. iTunes will allow you to select an ISPW file. Select the one created by the Pwnage tool which is on your desktop (iPhone1,1_2.0.1_5B108_Custom_Restore.ipsw). Note: If you're a Windows user and downloaded the .ipsw file from one of the sources outlined above, you have to Shift-click the Restore button in Windows iTunes in order to select a custom .ipsw file.

Once iTunes has restored to the updated custom firmware, your iPhone will reboot and you're done! (Reader Stefan S commented, that the iPhone might take some "nervous minutes" with rebooting etc. This is true. Don't panic. It'll work just fine!)

Restored to factory settings. Now let's try to restore settings from my Step 1 back up!

Step 11:

Right-click your iPhone in iTunes and select Restore from Back up. This is not the same restore as restoring to a firmware. (Don't actually know why Apple often uses a single term for two totally different commands.. .) It'll restore your settings, applications, mail accounts etc. but leave the updated firmware alone! (Apple's knowledge base document provides further info.)

Restoring my custom settings... 

Done!

The restore worked like a charme. All settings have been restored. Mail accounts and syncing are back. Contacts have been restored. Even the arrangements of the icons on the SpringBoard and my modified carrier name are back. All my official App Store applications are back and working. Now I'm finally going to sync back audio, video and photos and - of course - my Cydia applications!

Settings > General > About SpringBoard installer.app

I've read scattered reports that Cydia does not work and crashed after this update. I cannot confirm these. Cydia and installer.app work just fine. Most of the users reporting Cydia crashes seem to have used Pwnage tool downloaded from a RapidShare mirror and are suspecting wrong file permissions as a possible root cause. I've updated directly from within the Pwnage 2.0.1 application and - as said - everything worked like a charm. In case you're having trouble with any of the versions downloaded from my mirror, please contact me.

 

For your convenience I copied my original list of additional stuff from my first jailbreak post here again. These are all optional steps you might want to do or not. Some of them might actually not be required anymore because the updated firmware might have addressed some issues listed here. Anyway, feel free to use and distribute!

Moving on from here...

After you've freshly jailbroken your iPhone, you might want to get a couple of things working:

Fixing Voicemail

Visual Voicemail only works if you subscribe to one of the official iPhone plans. However, you might want to enable the Voicemail button in your phone application. Do the following:

Step 1:
Note down the voicemail number for your carrier. For example for Germany's Vodafone it is +49-xxx-55-xxxxxxx, where xxx represents your number.

Step 2:
Click the Phone button in your iPhone.

Step 3:
Click the keypad tab.

Step 4:
Type
*5005*86*xxx#
where xxx is your voicemail number. For example if your German Vodafone number would be 0172-333-44-55 you would type *5005*86*+49172553334455#.

Step 5:
Hit Call.

After a while the new number for the Voicemail button will be set and active. Give it a try and hit the Voicemail button.

Getting rid of "Call forward active" pop up

In case you forward calls to your voicemail chances are that you see an annoying "Call forward active. Dismiss" popup whenever you initiate a call. There is a not-so-easy way to get rid of it. Here is how:

Step 1:
SSH into your iPhone using WinSCP or Putty.

Step 2:
Go to /private/var/mobile/Library/preferences and download the file com.apple.carrier.plist to your computer.

Step 3:
Open the file and change the ShowCallForwarding to <false/>.

Step 4:
Upload the changed plist file and reboot your iPhone.

Note: On Macs xCode has a plist editor. On Windows PCs you might want to use this online tool to convert the downloaded plist file into an XML representation. (You do NOT need to convert it back, just upload the XML version to your iPhone and all will be fine.)

Changing the carrier name (text)

For older versions of the firmware you could use Erica Sadun's excellent mini application Make it mine to change the carrier name on the fly. As of this writing the application has not been ported to firmware 2.0.1. (Update 25th July: Make it Mine is available via Cydia now and makes changing the carrier name and the banner - the part where the iPhone shows the current time - very easy! I still include the manual steps of the original post below.) Therefore you've got to do it manually but it's a very straight forward process, too:

Step 1:
Use Cydia to install Erica Utilities. Start Cydia. Go to the Search tab. Type in "Erica" and install Erica Utilities. (Erica Utilities are a set of command line tools. You'll not find any new icons on your springboard!)

Step 2:
If you've not yet done so install MobileTerminal via Cydia. This will allow you to open a local terminal session into your iPhone's OS. (Alternatively, you could use SSH to log into your iPhone from a Mac or Windows PC.)

Step 3:
Open the terminal and type login. If you're not using MobileTerminal use SSH to log into your iPhone. Login with user root and password alpine.

Step 4:
Change the directory to /var/root/Library/Preferences by typing

cd /var/root/Library/Peferences

Step 5:
Type in

sb -s “NewName” SBFakeCarrier

where NewName is the text you want to be displayed as the Carrier name.

Step 6:

Type in

restart

You're done.

 


It might seem like a subtle difference but in fact it is a very important one: The difference between designing a software product for customizability versus (massive) customization often carried out in a build-to-order fashion.

The problem area is pretty well defined: In order to create substantial value software vendors strive - and they have to - to build standard products which they can sell in terms of software licenses. This is the only way of getting a solid return to fund further innovation, research and development and create value long term. At the same time, however, customers have an increasing demand for personalized, tailored and customized solutions.

System Integrators (SIs) have traditionally specialized more and more to address this situation and have created offerings where they use the increasing number of Rapid Application Development frameworks to build applications from scratch based entirely on customers' requirements. Some of them have evolved into Solution Providers which more often than not means they simply reuse code they've created for Customer A to build something for Customer B.

While the SI approach is perfectly legal it is important to understand the difference between selling custom code and designing software that is customizable. The first one often provides short-term revenue and allows companies to sell opportunistically. This comes at the cost of maintainability and for companies that have set out to become true software vendors it even decreases the overall company value because it takes away the ability to create once and sell often. Long-term most often it means company death as the vicious circle of overselling > build-to-order > deliver to early > fix > oversell again > build-the-next-piece > ... does not at all scale with any increasing customer base.

However, I've seen many companies misunderstanding the difference between crafting customized solutions and creating a product that can be customized. What is it, that makes something that obvious so difficult to understand?

Well, there are various reasons:

Time to market

More and more companies are focused towards short-term and immediate revenue. (Some even call this shareholder value.) Crafting custom code seems to be a very straight forward business. Once a project has been sold your delivery team starts to code. Usually you get up to 40% of the money up-front and once you deliver the software you're done. This straight-forward character makes this approach extremely appealing for managers that do not understand the nature of the software product business.

While it delivers immediate returns, it does not contribute to the overall value creation of a company mid-term, because it does not produce saleable items. The next project requires you to start from scratch, even though you might be able to reuse some parts of what you've done before. I've seen many presentations which cite the old 80/20 rule where 80% should be considered reusable while 20% must be crafted individually. A lot of software developers are seduced by the old 80/20 rule in a slightly different way, too. It seems to make a lot of sense: 80% of the people use 20% of the features. So you convince yourself that you only need to implement 20% of the features, and you can still sell 80% as many copies. Unfortunately, it's never the same 20%!

The truth is the 80/20 rule has never been true for companies that take a custom solution approach. In fact, it more-often-than-not is the other way around: If you do not design for reuse, 20% can be reused while 80% stays individual time and again. On the other hand, custom code in a packaged solution creates a variety of evils, which taken together lead to cost and time over-runs downstream, aside from increased development costs and risks during the project.

While custom code projects do produce immediate revenues there literally is no way of speaking from a time-to-market, as you're not at all going after a market but merely after a single customer and her individual requirements. Then you're going after the next single customer. In other words: You're hunting for many micro-markets as opposed to creating opportunities that can be repeated easily and scale well.

Required Investment

Incorporating means for customization into a standard software product is an undertaking which requires a significant and up front investment of time and resources. It is far more easy to code to order. Coding to order does not require substantial investment. You create the factory and switch it on ones orders flow in. This simple fact makes it more difficult and sometimes impossible to enter the space of software vendors and I believe it has forced many companies which started to become product houses to stay with their System Integrator type of business. They did not seek for investors early enough in the process.

All you need to code to order are medium skilled programmers and a project manager that understands Microsoft Excel and from time to time jumps into telephone conferences to calm customers down.

Creating a product line which needs to address requirements of multiple customers - meaning it targets a market as opposed to targeting a single business - requires many additional skills which do not directly create revenue from day one onwards. You do need to think about frameworks, conduct research and execute smaller iterations to allow yourself to more carefully prove each achieved milestone.

This initial overhead must be financed somehow. Depending on the complexity of the environment you're dealing with chances are you've got to be able to bridge more than 12 months before you can start selling. I'm a strong believer that crafting first class products cannot be cash-flow financed. There are companies which are pretty good in shifting revenues earned through Professional Services and occasional project work into their product development engagements, but most of them fail when it comes to bridge the last third. (Ironically there seems to be a notion of "panicking" to totally different models instead of doing root cause analysis and finding ways to finish all the good work that has been done during the first to thirds.)

Clearly, if you don't have solid means to invest into product development, crafting custom solutions combined with opportunistic sales is the only way to move forward and survive - though it immediately creates mid- to long-term risks and does not constitute a strategy for survival.

Not understanding the technical difference

A very common mistake I've found is that companies do not understand that there is a difference at all. In fact the difference between customizing-hell and designing for customizability might be considered subtle but is tremendously significant. Technically if you plan to design for customization you typically look into areas such as Inversion of Control, Dependency Injection, Plug-in Infrastructures, Software Development Kits and others. Initially the time you're going to spend conducting solid research will be exhaustive. It has to because the return it is promising to deliver scales in multiples.

On the other hand, when you build to order you typically find your developers and architects spending much time on low level user interface details, quick workaround discussions, in rush-features-in-we-fix-them-later-land and very often in full-day-remaining-estimate-promised-release-date-is-coming sessions. Again, this approach is a legitimate one but it does not contribute to a company's overall value.

 

With that said I'm happy that I've got the pleasure to having spent the last years of my professional life in a product centric role which involved every aspect of designing for customizability. I'm planning to publish a series of more technical posts addressing some of the learnings we've made and - as always - am looking forward to your feedback.

I hope I've set the stage!

 


Time flies by. I still remember when 40 MB HDD storage was considered BIG.

Well, after a recent mess with our corporate Exchange server syncing back an almost empty Outlook data file to my various connected devices and thus wiped out all my contacts (2.000+ fully qualified private and business contacts from more than a decade of networking...) I decided to peruse my options and finally added a Freecom Network Drive with a capacity of 1 TB. (I could not find the 1 TB version on the international Freecom site, so the previous link points to the German version.) Over the course of the last years I've become a huge fan of most of Freecom's external disk products.

Freecom Network Drive 1 TB

Installing the drive worked like a charm. NTFS formatting 1 TB takes a looooooooong while but finally, everything is just fine.

Acronis True Image Echo Workstation 11 from now on does permanent incremental backup images of all of my Windows Vista Ultimate drives. So far I can only say good about the product. It works silently in the background and gives me exactly the options I like:

1. Restoring an image (equals a bit-by-bit copy) of my current running system or any previous version to the same hardware.

2. Restoring the image back to a totally different hardware.

3. Selectively restoring files back to wherever I want.

4. All of the above with full versioning support.

There must have been a reason why the solution is a 2008 Community Choice Award Winner by Windows IT PRO.

 


In case you want to share the 3G (or EDGE) data connection of your iPhone with your notebook, you should hurry up and grab Nullriver's NetShare application. Use this link to purchase it from Apple's App Store. You do have to use the direct link as the application does not show up in App Store and is not showing up in search results!

NetShare has been posted to the App Store last night but Apple pulled it down right away.

Nullriver's NetShare

Here is the App Store description:

App Store application description

Please note that some carriers do not allow you to share the iPhone's data connection with anything else than the iPhone (however, they will not find out if you use NetShare) but you might want to be warned that you're potentially going to break your contract by using NetShare. (Obviously, 24100.net does not encourage you to do so in any way!)