Vous pouvez copier un attribut com.apple.quarantine existant d'un fichier arbitraire dans un fichier proxy, puis l'appliquer à d'autres fichiers arbitraires. Si vous ouvrez certains types de fichiers (par exemple des fichiers .txt), l'attribut de quarantaine sera ignoré.
Exemple:
xattr -p com.apple.quarantine /Users/user/dnscrypt-osxclient-1.0.12.dmg > quarantine.attr
xattr -w com.apple.quarantine "` cat quarantine.attr` "test.command
Cela appliquera les données collectées à partir du .dmg au fichier .command - y compris la date de téléchargement et l'application de téléchargement du fichier dmg d'origine. Cependant, la date / application de téléchargement d'origine de la .command ne sera pas restaurée.
Source: Utilisation de xattr pour définir la propriété de quarantaine Mac OSX
Format de l'attribut de quarantaine:
drapeau; date; app_name; UUID;
- au moins 0001-0003 augmente la boîte de dialogue "Voulez-vous vraiment ouvrir ce fichier ...", mais pas 0062.
- date (dans l'horodatage hexadécimal Unix, au moins 00000000-1c000000 sont des dates inconnues, une date antérieure qui fonctionne est 1d000000: 02 juin 1985 05:47:44 GMT)
- application (tout nom d'application autorisé)
- Un UUID lié à un téléchargement de fichier qui peut être trouvé dans /Users/user/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2 (évidemment facultatif)
Donc, utiliser 0001; 55555555; Klanomathiner;
dans le fichier proxy mentionné ci-dessus et l'appliquer à un fichier (dans l'exemple test.command) augmentera:
ou 0001; 66666666; Un cyborg du futur;
Après avoir ouvert le fichier, le premier "drapeau" sera défini sur 0041 et sa réouverture ne déclenchera rien.
Avec un peu de magie bash / SQL, vous pouvez même récupérer l'UUID d'origine et la date de téléchargement / l'application en recherchant le nom de fichier dans la base de données sqlite - que le fichier com.apple.LaunchServices.QuarantineEventsV2 représente - et restaurer l'original attribut de quarantaine. Mais je suis trop paresseux pour rédiger ceci maintenant. Quelqu'un d'autre a déjà fait un travail similaire / similaire:
Lisez com.apple.quarantine
/ usr / bin / xattr -p com.apple.quarantine "$ {fichier}"
Définissez com.apple.quarantine
application = "cURL"
date = $ (printf% x $ (date +% s))
uuid = $ (/ usr / bin / uuidgen)
/ usr / bin / xattr -w com.apple.quarantine "0002; $ {date}; $ {application}; $ {uuid}" "$ {fichier}"
Insérez l'UUID dans la base de données
download_url = "http://example.com/file.zip"
date = $ (($ (date +% s) - 978307200))
/ usr / bin / sqlite3 ~ / Library / Preferences / com.apple.LaunchServices.QuarantineEventsV2 "INSERT INTO \" LSQuarantineEvent \ "VALUES ('$ {uuid}', $ {date}, NULL, '$ {application}', '$ {download_url}', NULL, NULL, 0, NULL, '$ {url}', NULL); "
Vérifiez si l'UUID existe dans la base de données
/ usr / bin / sqlite3 ~ / Library / Preferences / com.apple.LaunchServices.QuarantineEventsV2 "SELECT * FROM LSQuarantineEvent WHERE LSQuarantineEventIdentifier == '$ {uuid}'"