Come applicare le regole sandbox per la particolare app?

8

Ho scritto un file di specifiche sandbox (ispirato a file di /usr/share/sandbox e manuali come questo ) e ora posso avviare alcune app in sandbox con sandbox-exec $path_to_rules /Applications/$appname.app/Content/... . Bene.

C'è un modo per far rispettare le regole quando l'app viene avviata in modo regolare (Finder "Apri con ...", ecc.)?

Ho pensato di sostituire il binario all'interno di .app con lo script wrapper, ma sarà sovrascritto dopo l'aggiornamento dell'app e dovrò ripristinarlo ogni volta.

    
posta Equidamoid 25.07.2014 - 12:30
fonte

1 risposta

4

Sì, è possibile modificare il file binario o persino modificare Info.plist, ma, come modificare il file binario che si esegue, è necessario farlo di nuovo ogni volta che l'app viene aggiornata. Non c'è modo di farlo senza cambiare l'app in un modo che non verrà sovrascritto quando viene aggiornato.

È possibile apportare automaticamente le modifiche con un Launch Agent.
Salva quanto segue in ~/Library/LaunchAgents come com.yourname.youragent.plist , quindi esegui launchctl load ~/Library/LaunchAgents/com.yourname.youragent.plist .

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.yourname.youragent</string>
        <key>OnDemand</key>
        <true/>
        <key>Program</key>
        <string>cp</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/grgarside/test/MyApp</string>
            <string>/Applications/MyApp.app/Contents/MacOS/</string>
        </array>
        <key>WatchPaths</key>
        <array>
            <string>/Applications/MyApp.app/Contents/MacOS/MyApp</string>
        </array>
    </dict>
</plist>

Lo script sopra vedrà WatchPaths per qualsiasi modifica (in questo caso, sta guardando il binario per un'app) e verrà eseguito cp per copiare il tuo binario nell'app in / Applicazioni.

    
risposta data 25.07.2014 - 15:21
fonte

Leggi altre domande sui tag