J'essaie de modifier /System/Library/ScriptingDefinitions/CocoaStandard.sdef
. Je veux faire cela parce que beaucoup d'applications font référence à ce fichier dans leurs propres définitions de scripts, et je veux expérimenter l'ajout de nouveaux éléments qui prendront effet dans chaque application. Puisque les entrées des définitions de scripts correspondent directement aux objets Cocoa et à leurs méthodes, je me suis dit que ce serait un moyen efficace de manipuler les objets des autres applications.
J'ai redémarré en mode Recovery OS et j'ai exécuté les commandes suivantes dans un terminal :
csrutil disable
umount "/Volumes/Macintosh HD"
mkdir /Volumes/mhd
mount /dev/disk3s1 /Volumes/mhd
cd /Volumes/mhd/System/Library/ScriptingDefinitions
mv CocoaStandard.sdef CocoaStandard.sdef.original
ln -s /Library/ScriptingDefinitions/CocoaStandard.sdef .
reboot
Notez que j'ai déjà placé une copie de CocoaStandard.sdef
sur /Library/ScriptingDefinitions
.
Le problème que je rencontre est que, malgré la désactivation de la protection de l'intégrité du système, une fois que j'ai redémarré sous MacOS, les changements que j'ai effectués dans le système de gestion de l'intégrité du système (SIPS) ne sont pas pris en compte. /System/Library/ScriptingDefinitions
ont en quelque sorte été inversées. Il n'y a pas CocoaStandard.sdef.original
et CocoaStandard.sdef
est à nouveau un fichier ordinaire plutôt qu'un lien symbolique.
Comment puis-je empêcher l'annulation de ces modifications ? Sinon, s'il existe un meilleur moyen d'ajouter des définitions de script personnalisées à des applications existantes, cela fonctionnerait également. (J'ai essayé d'ajouter directement des entrées au .sdef à l'intérieur d'une copie de l'application, mais ensuite, chaque fois que j'essaie de contrôler cette copie de l'application en utilisant AppleScript, j'obtiens l'erreur -1728).
0 votes
Quel est votre système d'exploitation ? Notez que MacOS 11 (Big Sur) et les versions ultérieures utilisent une protection cryptographique avec un volume système signé - le volume système en lecture seule est désormais scellé et n'acceptera aucune modification sans une signature valide d'Apple.
0 votes
Je pense que vous devriez plutôt ajouter des modifications à /Library/Scripting Additions.
0 votes
@benwiggy : Est-ce que cela me permettra de contrôler les objets internes d'autres applications, comme si j'ajoutais des choses au fichier .sdef intégré d'une application ?
0 votes
Je ne sais pas, mais le paradigme habituel est d'augmenter le système dans /Library, pas de modifier le système.