it-swarm.com.de

Extrahieren Sie .xip-Dateien in einen bestimmten Ordner

EineXIP-Datei ist analog zu Zip, ermöglicht jedoch das Anlegen und Überprüfen einer digitalen Signatur auf dem empfangenden System, bevor das Archiv erweitert wird. Wenn eineXIP-Datei geöffnet wird (durch Doppelklicken), wird sie vom Archivierungsprogramm automatisch erweitert (jedoch nur, wenn die digitale Signatur intakt ist).

Im Wesentlichen handelt es sich bei einer .xip-Datei nur um eine ZIP-Datei mit einer Signatur, um sicherzustellen, dass sich die Datei nicht geändert hat, seit der Ersteller sie gespeichert hat. Dies schützt sowohl vor Schäden durch einen Festplattenfehler als auch vor Manipulationen durch Dritte.

Weiß jemand, wie man diese Datei extrahiert, z. Verwenden von Terminal in einen bestimmten Ordner statt in den Ordner, in dem sich die .xip-Datei befindet?

7
Antony Raphel

Vielleicht versuchen Sie es:

xip -x [path to .xip file]

Dadurch wird das Archiv in Ihr aktuelles Arbeitsverzeichnis entpackt.

Für das Extrahieren in ein bestimmtes Verzeichnis gibt es hierfür nicht explizit eine Option, sondern xip -x wird in das aktuelle Arbeitsverzeichnis extrahiert. Daher sollte cding dort arbeiten, wo Sie die Datei extrahieren möchten. wenn Sie dies speziell automatisieren müssen, ein Skript mit der Wirkung von:

#!/bin/sh

xipfile="$(cd $(dirname "$1"); pwd -P)/$(basename "$1")" # a portable "realpath"

cd "$2"
xip -x "$xipfile"

Soll ich den Trick machen?

10
Geoff Nixon

Ich würde empfehlen, das Archiv einfach in den Ordner zu extrahieren, in dem Sie Folgendes versuchen:

xar -xf file.xip -C /path/to/target

(und/oder)

tar -zxvf file.xip -C /path/to/target

Die Befehle xar und tar extrahieren den .xip "Inhalt" und "Metadaten" in einem Rohformat. 

Mit einem pbzx-Stream-Parser müssen Sie den "Content" extrahieren, der eine Lzma-komprimierte Payload ist. Das Format ist dem Format ähnlich, das in einem Paketinstallationsprogramm gefunden wird (z. B. .pkg). Sie können die pbzx-Quelle von hier aus kompilieren oder die kompilierte Binärdatei herunterladen und in /usr/local/bin installieren und dann den Befehl pbzx aufrufen: 

pbzx -n Content | cpio -i

Nachdem der Befehl die Analyse des Inhalts abgeschlossen hat, sollten Sie die ursprüngliche Form des .xip-Archivs erhalten.

Nützliche/zusätzliche Informationen :

$ pkgutil --check-signature file.xip 

Xcode_9_beta_2.xip gibt zurück:

Package "Xcode_9_beta_2.xip":
   Status: signed Apple Software
   Certificate Chain:
    1. Software Update
       SHA1 fingerprint: 1E 34 E3 91 C6 44 37 DD 24 BE 57 B1 66 7B 2F DA 09 76 E1 FD
       -----------------------------------------------------------------------------
    2. Apple Software Update Certification Authority
       SHA1 fingerprint: FA 02 79 0F CE 9D 93 00 89 C8 C2 51 0B BC 50 B4 85 8E 6F BF
       -----------------------------------------------------------------------------
    3. Apple Root CA
       SHA1 fingerprint: 61 1E 5B 66 2C 59 3A 08 FF 58 D1 4A E2 24 52 D1 98 DF 6C 60

Hinweise :

Wichtig : Ab macOS Sierra werden nur XIP-Archive erweitert, die von Apple signiert wurden. Entwickler, die XIP-Archive Verwendet haben, müssen signierte Installationspakete oder Plattenimages verwenden.

OS X Handbuchseite: xip

4
l'L'l

Sie können das Archiv-Dienstprogramm selbst öffnen, in Voreinstellungen gehen und einen bestimmten Zielordner festlegen und dann auf die Datei doppelklicken. Auf diese Weise haben Sie die Erweiterung auf ein bestimmtes Ziel erreicht. ;-)

3
Hug

Es scheint bisher kein einziges Werkzeug dafür zu geben. Man braucht ein Tool, das pbzx-Streams decodieren kann, und es scheint kein Tool für das auf macOS vorinstallierte zu geben.

In diesen Antworten werden verschiedene Lösungen gefunden:

0