Estoy tratando de modificar /System/Library/ScriptingDefinitions/CocoaStandard.sdef
. Quiero hacer esto porque muchas aplicaciones hacen referencia a este archivo en sus propias definiciones de scripts, y quiero experimentar con la adición de nuevas cosas que tendrán efecto en cada aplicación. Dado que las entradas de las definiciones de scripting se asignan directamente a los objetos de Cocoa y sus métodos, me imagino que esto sería una manera eficaz de meterse con los objetos de otras aplicaciones.
He reiniciado el sistema operativo de recuperación y he ejecutado los siguientes comandos en 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
Tenga en cuenta que ya he colocado una copia de CocoaStandard.sdef
en /Library/ScriptingDefinitions
.
El problema con el que me encuentro es que, a pesar de desactivar la Protección de Integridad del Sistema, una vez que reinicio en MacOS, los cambios que hice en /System/Library/ScriptingDefinitions
se han revertido de alguna manera. No hay CocoaStandard.sdef.original
y CocoaStandard.sdef
es, una vez más, un archivo normal y no un enlace simbólico.
¿Cómo puedo evitar que se reviertan estos cambios? Alternativamente, si hay una mejor manera de agregar definiciones de scripting personalizadas a las aplicaciones existentes, eso también funcionaría. (Intenté añadir directamente entradas al .sdef dentro de una copia de la aplicación, pero luego, cada vez que intento controlar esa copia de la aplicación usando AppleScript, obtengo el error -1728).