Reviviendo al Airport Utility v5.6.1

There is an english version of this post here.

En términos de computación e informática es muy común que, cuando uno necesita de alguna función o utilidad del sistema operativo o de un tercero, ésta nos dé más problemas que ayuda. Así me acaba de pasar nuevamente con el Airport Utility. La primera vez no escribí al respecto pero creo que esta vez vale la pena hacerlo.

AirPort Utility Icon

En casa, el router que Telmex proporciona tiene capacidad inalámbrica y, dado que mi vieja Airport Extreme Base Station dejó de ser soportada a partir de la versión 6.0 de esta utilidad, la había ya guardado. El año pasado, sin embargo, supe de un post en un blog en el que se describía como revivir esta utilería en Mavericks. Decidí hacerlo para crear una red para las impresoras en casa y evitar movimientos y cableado cada que alguien de la familia requería imprimir.

Desafortunadamente, una actualización de OS X de los últimos meses debió alterar algo y me encontré con que la utilería dejó de funcionar nuevamente. Afortunadamente fue posible reactivarla, aunque esta vez requirió algo de actividad adicional. Este es el relato.

Primero, Airport Utility v5.6.1 mostraba un círculo cruzado, a diferencia de la versión 6.3.2 “oficial” (localizada en /Applications)en la versión 10.9.5 del OS X de mi Macbook Pro. Obvia señal de problemas.

Airport Utility v5.6.1 Airport Utility v6.3.2

Como era de esperarse la utilería no arrancaba.

Error message

Después de algunos intentos y manipulaciones pude obtener el siguiente mensaje de error

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

Aunque a librería a la que hacía referencia aparentemente existía, seguramente no contenía lo que se esperaba tuviera, como señalaba el mensaje de error. Por lo que procedí con lo siguiente:

  1. Creé una copia de Airport Utility v5.6.1.
  2. Obtuve una copia del directorio /System/Library/PrivateFrameworks/Apple80211.framework de una distribución de OS X 10.8 que aún tengo en una fiel MacBook negra.
  3. En Terminal.app me moví donde estaba la copia de Airport Utility v5.6.1 y realicé lo siguiente (donde <texto> denotan valores a cambiar):

cd <ruta a copia de Airport Utility v5.6.1>
cd <nombre de la copia>.app
cd Contents
mkdir Frameworks
cp -rf <origen>/Apple80211.framework Frameworks
cd MacOS
install_name_tool -change /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211 @executable_path/../Frameworks/Apple80211.framework/Versions/A/Apple80211 ./AirPort\ Utility
cd ..
sudo chown -R root Frameworks
sudo chgrp -R wheel Frameworks

Es necesario aún hacer ajustes en el info.plist para evitar el mensaje de error al invocar la utilería desde Finder. En este caso, usando XCode, se editó el archivo indicado dando click derecho (o cmd+click) para abrir el paquete

Finder, Show Package Contents

Dentro del directorio Contents está el archivo indicado. En este se localizó la llave mostrada como BundleIdentifier, cuyo valor com.apple.airport.airportutility se cambió a com.apple.airport.airportutility2. La llave Bundle creator OS Type code con valor 1wcu se cambió a 2wcu. El contenido del archivo quedó entonces como:

<key>CFBundleIdentifier</key>
<string>com.apple.airport.airportutility2</string>
...
<key>CFBundleSignature</key>
<string>2wcu</string>

 

Finalmente fue necesario firmar la aplicación. Para esto usamos la aplicación Keychain Access. De su menú principal se invoca al Asistente de Certificados.

Keychain Access

El nombre del certificado puede ser cualquiera…

Create certificate

Se confirma la acción …

Confirmation

… y listo.

Certificate Assistant

Tras lo cual procedemos a firmar la aplicación con

codesign -s <nombre-del-certificado> -f <ruta y nombre de la copia de Airport Utility v5.6.1>.app

que, como ejemplo, posicionado en el directorio donde está la copia lo anterior se transforma en:

$codesign -s AirportUtilityv561 -f Airport\ Utility\ v5.6.1.app
Airport Utility v5.6.1.app: replacing existing signature

y así, la aplicación nuevamente vuelve a funcionar:

Airport Utility v5.6.1Estoy seguro que Apple, Inc. tendrá una opinión al respecto de todo esto y quizás indique que estoy hackeando o haciendo ingeniería en reversa de sus productos. Yo, sin embargo, creo que todo esto es legal. Simplemente trato de poder seguir haciendo uso de aquello por lo que he pagado. Hoy en día con eso de la seguridad y la privacidad, la industria del software tiende a descontinuar, “obsoletizar” y dejar de soportar cosas muy rápido, diciendo que es por nuestra seguridad. Yo creo que es un mero pretexto más para obligarnos a seguir comprando y comprando sus productos.

Recuerden leer la declaración de este sitio si deciden seguir estas instrucciones.

Anuncios

2 comentarios en “Reviviendo al Airport Utility v5.6.1

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s