Sim, você pode alterar o binário ou até mesmo o Info.plist, mas, como alterar o binário feito, será necessário fazer isso novamente sempre que o aplicativo for atualizado. Não há como fazer isso sem alterar o aplicativo de uma maneira que não seja substituída quando for atualizada.
Você pode fazer suas alterações automaticamente com um Agente de Inicialização.
Salve o seguinte em ~/Library/LaunchAgents
como e com.yourname.youragent.plist
, em seguida, execute 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>
O script acima observará WatchPaths
todas as modificações (nesse caso, ele está assistindo o binário de um aplicativo) e será executado cp
para copiar seu binário no aplicativo em / Aplicativos.
/Applications
é alterado? E também proibir qualquer aplicativo de se modificar.