AirPort Utility 5.6 und Mavericks verwenden

Nach Update auf Mavericks (Mac OS 10.9) kann das AirPort Utility 5.x nicht mehr gestartet werden. Bei jedem Startversuch kommt die Fehlermeldung:

dyld: Symbol not found: _wlScanAuthenticationModesArray
Referenced from: /Applications/Utilities/AirPort Utility.app/Contents/MacOS/AirPort Utility
Expected in: /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211


Offensichtlich fehlt in der Apple-Bibiothek Apple80211.framework ab 10.9 ein Symbol.

Als Ersatz hat Apple aktuell das AirPort-Utility 6.3.x im Angebot. Leider fehlen hier einige Funktionen, wie etwa Status-Log oder das setzen der Funksendestärke.

Damit das alte 5.6.x verwendbar ist, hat bei mir folgender Hack geholfen. Aus einem TimeMachine-Backup kopiere ich die alte Bibliothek und füge sie dem AirPort Bundle als lokales Framework hinzu.

Hierzu sind folgende Schritte notwendig.

mkdir -p /Applications/Utilities/AirPort\ Utility.app/Contents/Frameworks
cd /Volumes/TimeMachine/Backups.backupdb/*/Latest/*/
cp -rf System/Library/PrivateFrameworks/Apple80211.framework /Applications/Utilities/AirPort\ Utility.app/Contents/Frameworks
cd /Applications/Utilities/AirPort\ Utility.app/Contents/MacOS
install_name_tool -change /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211 @executable_path/../Frameworks/Apple80211.framework/Versions/A/Apple80211 ./AirPort\ Utility
cd /Applications/Utilities/AirPort\ Utility.app/Contents/
sudo chown -R root /Applications/Utilities/AirPort\ Utility.app/Contents/Frameworks
sudo chgrp -R wheel /Applications/Utilities/AirPort\ Utility.app/Contents/Frameworks

Ab diesen Punkt könnte man das AirPort Utility als Executable direkt aufrufen. Vom Finder aus aber bekommt man noch eine Fehlermeldung, dass diese Anwendung unter diesen MacOS nicht funktioniert. Der Grund ist noch eine Einstellung in der Info.plist.

Hierzu muss man noch aus dem Bundle die Datei Contens/Info.plist bearbeiten und folgendes ändern:

<key>CFBundleIdentifier</key>
<string>com.apple.airport.airportutility2</string>
...

<key>CFBundleSignature</key>
<string>2wcu</string>


Nun kann der Finder auch die Anwendung starten. Leider ist nun die Digitale Signatur (codesign) gebrochen. Wenn das stört, der muss die App neu signieren.

Um das Bundle zu signieren, braucht man ein Zertifikat. Hat man kein Apple-ID-Zertifikat, so erstellt man mit der Schlüsselbundverwaltung ein neues Zertifikat (Zertifikatassistent->Zertifikat erstellen->Root-Self-sign-->Code-Signing)

Danach kann man das Bundle erneut signieren:

codesign -s Identity-Name -f /Applications/Utilities/AirPort\ Utility.app

Fertig! In meinen Fall kann ich unter Mavericks (10.9.1) das AirPort Utility wieder verwenden. Wirklich schade, das Apple ab der Version 6.x einige Features entfernt hat. :-(

Anmerkung:
Wer das AirPort Utility 5.6.x nicht mehr hat, kann es aus seinem TimeMachine Backup holen. Alternativ findet man es auf der Internet Seite von Apple (für Snow Leopard). Das Paket sollte man aber nicht Installieren, sondern statt dessen auspacken mittels:

pkgutil --expand ../AirPortUtility.pkg temp42
cd temp42/AirPortUtility.pkg
cat Payload | gzip -d | cpio -id