Automatisches Öffnen von Apples Fotos-App in OS X unterbinden

Knapp vier Monate nach Veröffentlichung habe ich nun Apple’s aktuelles Computerbetriebssystem OS X 10.11 alias El Capitan auf meinem Laptop installiert. Allerdings wurde in diesem Release eine nervige Funktion seitens Apple hinzugefügt. Sobald der Nutzer mit dem Computer ein iPhone, iPad oder eine SD-Karte verbindet, öffnet sich stets die vorinstallierte Fotos-App. Dies ist sehr störend. Mit folgendem Befehl im Terminal lässt sich dieses Verhalten unterbindet:

defaults -currentHost write com.apple.ImageCapture disableHotPlug -bool YES

Die Änderung lässt sich jederzeit mit folgendem Befehl auch wieder rückgängig machen:

defaults -currentHost write com.apple.ImageCapture disableHotPlug -bool NO

OS X von einem bootfähigen USB-Stick installieren

Erst vorgestern konnte ich einem gebeutelten Mac-Nutzer, welcher seine Systemplatte im Rechner zerschossen hatte, damit aushelfen, ihm einen bootfähigen USB-Stick so zu formatieren, dass er von diesem wieder ein frisches OS X Mavericks auf seinem Computer installieren kann. Im Internet gibt es inzwischen viele Seiten auf denen diese Vorgehensweise dazu bereits dokumentiert ist, aber der Vollständigkeit halber will ich mir das auch noch einmal notieren. Innerhalb von sechs Monaten ist das inzwischen aber auch schon das zweite Mal, wo ich diese Dienstleistung erfolgreich für andere erbringen konnte. – Ungeachtet um welches Release es sich dabei handelte.

Als erstes muss man sich mit seiner Apple-ID über den Mac App Store die gewünschte OS X Version herunterladen. Es gibt dabei die Empfehlung, dass man dieses Unternehmen eigentlich nicht für andere Nutzer machen sollte, da die eigene Apple-ID im Installer gespeichert wird. Dies war mir bisher allerdings nicht bewusst. Ich traue denen zu – und hoffe auch – dass wenn diejenigen, welchen ich damit ausgeholfen habe, meine ID ihnen über den Weg läuft, sie sie ignorieren und durch eine andere ersetzen.
Ist der Download fertig, bereitet man seinen USB-Stick, welcher über mindesten 8 GB Kapazität verfügen sollte, idealerweise mit dem grafischen Festplattendienstprogramm (Disk-Utility) vor. Im Karteireiter „Partition“ wählt man das Layout „1 Partition“, gibt dem Volume vielleicht noch einen passenderen Namen wie zum Beispiel „Stick“ und legt dieses mit dem Format „Mac OS Extended (Journaled)“ an. Man sollte dabei darauf achten, dass man vorher unter „Optionen“ die GUID-Partitionstabelle vorausgewählt hat. Mit „Anwenden“ wird der USB-Stick dann tatsächlich wie gewünscht formatiert.
Nun scheiden sich die Wege. Man kann den Installer auch mittels dem grafischen Disk-Utility auf den USB-Stick verfrachten. Dies birgt aber bei der späteren Mac OS X Installation auf den Computer einige Nachteile, welche wiederum auch nur erst wieder im Anschluss behoben werden können. So würde FileVault und die Funktion „Find my Mac“ erst einmal nicht verfügbar sein.
Eleganter ist es daher, den Kopierprozess mit einem einzigen Befehl im Terminal abzuarbeiten.:

sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/Stick/ --applicationpath /Applications/Install\ OS\ X\ Yosemite.app/ --nointeraction
  • Mit /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia wird im Installer-Paket das eigentliche Unix-Kommando ausgeführt.
  • Durch –volume /Volumes/Stick wird das Ziel-Volume übergeben. Also unser vorformatierter USB-Stick.
    Mit –applicationpath /Applications/Install\ OS\ X\ Yosemite.app teilt man mit, wo der Mavericks-Installer liegt. Dies Pfadangabe ist bereits bekannt.
  • Die Option –nointeraction sorgt schließlich dafür, dass der Befehl ohne weitere Rückfragen ausgeführt wird. Man muss sich also bewusst sein, dass hier mit Root-Rechten ein Volume ohne Sicherheitsabfragen gelöscht wird.

Jetzt ist der USB-Stick fertig. Bei eingesteckten Stick wird durch das Gedrückt Halten der „alt“-Taste während des Rechnerneustarts dieser als zu bootendes Volume dargestellt und man kann mit seinem Clean-Install beginnen.
Das Verfahren lässt sich natürlich auch auf die anderen Versionen von Mac OS X anwenden. Es ist dabei lediglich darauf zu achten, dass diese andere Namen im Installer tragen.

Automatische iCloud-Speicherung von Dokumenten verhindern

Wie sich heraus gestellt hat, speichern Programme mit iCloud-Anbindung auf dem Macintosh jedes noch ungesicherte Dokument ungefragt in diese hoch. Dies möchte man verhindern – gerade wenn man Dokumente soweit vertraulich behandeln möchte, dass sie selbst auf verschlüsselten Diensten von Dritten nichts zu suchen haben. Da es keine Möglichkeit in der GUI vom Mac OS X gibt dies zu verhindern, muss man folgenden Befehl auf der Kommandozeile absetzten.

defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false

Nach dem Beenden und erneutem Öffnen, speichern Programme mit iCloud-Unterstützung die neu angelegte Dokumente dann wieder lokal im Verzeichnis des jeweiligen Nutzers unter folgender Ordner-Struktur:

/Users/<Benutzername>/Library/Containers/<Ordnername_Applikation>/Data/Library/Autosave Information/

Möchte man hingegen das vorherige Verhalten mit der iCloud-Anbindung wieder zurück haben, reicht es den selben Befehl nur mit einem true am Ende aus zu führen.

Alternativ kann man sein Nutzungsverhalten in Bezug von Dokumentenverwaltung aber auch so einstellen, dass man auf die iCloud völlig verzichtet, oder nur einen selber gehosteten Dienst nutzt auf dem auch selbst administrativen Zugang hat.

Quelle des Tip bei Mac OS X Hints

Programme unter Mac OS X deinstallieren

Einem Thema, welchen ich mich bisher verweigert habe, ist das Deinstallieren von Programmen unter Mac OS X. Es ist ja ganz praktisch, dass die meisten Programme dank ihres Application-Framework keine Routinen für das Installieren und wieder Deinstallieren benötigen. Es bleiben aber dennoch ja nach Programm in folgen Verzeichnen programmspezifische Daten zurück.

– Voreinstellungen in ~/Library/Preferences/
– Hilfsdaten und Cache in ~/Library/Application Support/
– gespeicherte Programme in ~/Library/Saved Application State/

Meistens habe ich diese Dateien von Hand aus den Verzeichnen heraus gefummelt. Aber vor einigen Tagen habe ich mal diverse Deinstallations-Programme ausprobiert, die es einem ermöglichen per ‚Drag & Drop‘ ein Programm auf dieses zu ziehen und die Meta-Daten gleich automatisch mit löschen. Unter diesen Lösungen gibt es allerdings auch Potenzial, mit der sich das ein wenig weiter automatisieren lässt. AppTrap ist eine kleine Erweiterung für die Systemsteuerung, die einen kleinen Hintergrundprozess startet und schaut, ob der Benutzer ein Programm aus den Applikationenordner löscht, und löscht damit auch alle anderen Programmspezifischen Daten. Man sollte vielleicht aber die Abfrage eingeschaltet lassen, da dieser Mechanismus auch greift, wenn die Programme sich selbst aktualisieren und man so Gefahr läuft, dass die Daten auch dann weg sind, wenn man es nicht möchte.

Ein anderes Thema sind aber Programme oder Betribessystemkomponenten, die eine Installationsroutine mitbringen. Sie befinden sich in einem .pkg oder .dpkg Paket. Hier reicht nicht das einfache verschieben des Programm-Icon in den Papierkorb – wenn es überhaupt eines gibt. Sondern man will unter Umständen wieder Teile aus dem systemweiten Ordnern /Library und /System entfernen. Seit Ewigkeiten gibt es mit dem Paketmanager OSXPM ein Tool, welches diese Funktion auch beherrscht. Problem ist aber, dass das Programm bei neueren Mac OS X Versionen als Snow Leopard (10.6.x) nicht mehr lauffähig ist, da es für die PowerPC-Architektur geschrieben wurde und die neuen Betriebssystemversionen keinen PowerPC-Code mehr ausführen können.
Abhilfe hierbei schafft hierfür endlich nach langer Zeit das Programm UninstallPKG welches vom corecode-Entwicklerteam für ca 7 € angeboten wird. Es listet ausschliesslich alle Programme und Komponenten auf, die mit einer Installationsroutine auf dem System installiert wurden und man kann diese – beziehungsweise dessen verwaisten Einträge – wieder löschen. Hintergrund ist: Das das Mac OS X einen eigenen ProperyList-Eintrag für jede Komponente führt, der so wieder heraus genommen werden kann.

Verschlüsselten USB-Stick mit Mac OS X erstellen

Da ein USB-Stick gerne mal verloren geht oder auch längere Zeit z.B. am Arbeitsplatz für jeden erreichbar liegt und entwendet werden kann (z.B. Mittagspause, Meetings), ist es nur von Vorteil wenn der USB-Stick verschlüsselt ist und somit nicht für andere einsehbar ist.

Hier gibt einem Apple seit Mac OS in der Version 10.7 Lion mit Core Storage eine nützliche Funktion in die Hand, verschlüsselte Partitionen auch auf externen Datenträgern zu erstellen, um sich vor ungewollter Einsicht in seine Daten zu schützen.

Korrektes Medium ermitteln

Im ersten Schritt muss das korrekte Medium ermittelt werden. Hier im Beispiel verwende ich meinen USB-Stick mit 64 MiB Kapazität, der unter /dev/disk2 angesprochen werden kann.

/dev/disk2
   #:                        TYPE NAME             SIZE       IDENTIFIER
   0:      FDisk_partition_scheme                 *65.9 MB    disk2
   1:                  DOS_FAT_32 NO_NAME          65.9 MB    disk2s1

CoreStorage logical volume group erstellen

Nun muss eine CoreStorage logical volume group erstellt werden.

sommteck:~ franky$  diskutil coreStorage create USB-Stick /dev/disk2
Started CoreStorage operation
Unmounting disk2
Repartitioning disk2
Unmounting disk
Creating the partition map
Rediscovering disk2
Adding disk2s1 to Logical Volume Group
Creating Core Storage Logical Volume Group
Switching disk2s1 to Core Storage
Waiting for Logical Volume Group to appear
Discovered new Logical Volume Group "EA1AFCC1-D33A-4948-B210-8A765E0BE902"
Core Storage LVG UUID: EA1AFCC1-D33A-4948-B210-8A765E0BE902
Finished CoreStorage operation

Die Core Storage LVG UUID sollte notiert werden, da diese für den nächsten Schritt in dem eine CoreStorage logical volume erstellt wird benötigt wird.

CoreStorage logical volume erstellen

In der CoreStorage logical volume group wird nun ein CoreStorage logical volume erstellt. Als UUID wird die vom vorherigen Befehl ausgegebene EA1AFCC1-D33A-4948-B210-8A765E0BE902 angegeben. Der Parameter jhfs+ steht für HFS+ mit Journaling, danach folgt der Name des Volumes und die Grösse (hier 100%). Der letzte Parameter -passphrase sorgt dafür, dass ein verschlüsseltes Volume angelegt wird. Das Passwort wird beim erstellen des Volumes eingegeben und wird immer abgefragt, wenn das Volume gemountet wird.

sommteck:~ franky$ diskutil coreStorage createVolume EA1AFCC1-D33A-4948-B210-8A765E0BE902 jhfs+ USB-Stick 100% -passphrase
Passphrase for new volume:
Confirm new passphrase:
Started CoreStorage operation
Waiting for Logical Volume to appear
Formatting file system for Logical Volume
Initialized /dev/rdisk3 as a 27 MB HFS Plus volume with a 512k journal
Mounting disk
Core Storage LV UUID: A1A760EF-AD75-44FB-948D-30D5A5978A72
Core Storage disk: disk3
Finished CoreStorage operation

Einstellungen prüfen

sommteck:~ franky$ diskutil coreStorage list
CoreStorage logical volume groups (2 found)
|
+-- Logical Volume Group ...
|   =========================================================
|   Name:         ...
|
|   ...

|
|
+-- Logical Volume Group EA1AFCC1-D33A-4948-B210-8A765E0BE902
    =========================================================
    Name:         USB-Stick
    Sequence:     2
    Free Space:   0 B (0 B)
    |
    +- Logical Volume Family C1410A87-179F-4085-BDEF-51017F06C5B3
        ----------------------------------------------------------
        Sequence:               2
        Encryption Status:      Unlocked
        Encryption Type:        AES-XTS
        Encryption Context:     Present
        Conversion Status:      NoConversion
        Has Encrypted Extents:  Yes
        Conversion Direction:   -none-
        |
        +-> Logical Volume A1A760EF-AD75-44FB-948D-30D5A5978A72
            ---------------------------------------------------
            Disk:               disk3
            Status:             Online
            Sequence:           2
            Size (Total):       28065792 B (28.1 MB)
            Size (Converted):   -none-
            Revertible:         No
            LV Name:            USB-Stick
            Volume Name:        USB-Stick
            Content Hint:       Apple_HFS

Wie an Has Encrypted Extents: YES zu erkennen ist, wurde erfolgreich ein verschlüsseltes Volume angelegt. Wurde der Parameter -passphrase beim Anlegen der CoreStorage logical volume vergessen, so steht hier no.
Und wie ich schon zu Anfang erwähnte, habe ich für den Versuch einen uralten USB-Stick mit 64 Megabyte verwendet. Das Kuriose dabei ist, dass das GUI- „Festplattendienstprogramm“ (engl.: Disk Utility) unter Mac OS X Lion prinzipiell beim Versuch ein Logical Volume zu erstellen immer abstürzte. Deswegen habe ich das ganze Prozedere auf dem Terminal mit dem Befehl diskutil durchgeführt. Man muss ausserdem dazu sagen, dass je geringer die Speicherkapazität des Medium ist, umso weniger für die restlich verfügbare Kapazität bleibt. Im Fall meines USB-Stick bleiben von den 64 nur noch 28 Megabyte an nutzbaren Speicher übrig. Der Rest geht für die Metadaten drauf. Das macht mir aber in diesem Fall nichts aus, da ich diesen Stick als ein weiteres Backup-Medium für die KeyChain der Schlüsselbundsoftware von Mac OS und für weitere asymmetrische Schlüsselpaare der SSH und OpenVPN nutze. Das macht bei mir nur ein bis zwei Megabyte aus.

Bei Mac OS X Montain Lion hat zwar Apple die Stabilität vom Festplattendienstprogramm verbessert, aber der kleine USB-Stick lässt sich sowohl unter diesen als auch mit dem diskutil-Terminalbefehl nicht mehr zu einem logical Volume verwandeln. Hier moniert das Programm, dass das Medium dafür über zu wenig Speicher verfüge. Einen Sinneswandel, den ich technisch überhaupt nicht verstehen kann.