Às vezes nós deparamos com sistema com uma arquitetura fechada onde não temos uma comunidade para sanar as dúvidas, embora devamos apostar forçadamente em outros meios de informação com uma segurança muito baixa.
Deparei-me com esse cenário varias vezes quando precisei de algo voltado ao sistema da Apple, o famoso Machintosh, mais chamado MacOS para evitar escrever de forma errada.
E para poder escrever esse artigo, me deparei novamente com esse ponto, onde precisei fazer uma POC de um antivírus chamado Bit Defender e no momento dos testes de instalação automatizada, a consultoria que estava fornecendo a solução e assistência, chegou a consultar a equipe técnica da Bit Defender no exterior, mas retornaram que não existe uma forma que faça a instalação sem a necessidade da interação do usuário.
Incomodado com isso, liguei um meu modo arquiteto de sistema/soluções, juntei tudo que sabia do sistema atual e fiz um script que faz essa função por linha de comando.
O script funciona seguindo a lógica de baixar o arquivo DMG direto do link fornecido de dentro do Painel do Gravity Zone para a pasta “temp” do MacOS, ele de maneia transparente abre o DMG, que equivale ao um arquivo ISO para outros sistemas e cópia o “PKG” e o XML de configuração para o direito “/Applications/”, após isso ele consegue registrar a “TEAM ID” da Bit Defender, para que o MacOS aceite as extensões de ‘kernel’ sem que haja a necessidade de o usuário ter que ir em System Preference>Privacy & Security> Aba Geral, que por costume tem que desbloquear o cadeado para habilitar o botão “Allow” para ser clicado pelo usuário, e como ultimo passo ele chama o “SetupBitDefender.app” para iniciar, onde ao ver o XML no mesmo diretório e já inicia a instalação amarrando a conta da empresa.
(como bônus também tem algumas linhas que apagam os arquivos após instalação).
IMPORTANTE:
— Para executar esses comandos você precisa rodar com a permissão ao nível ROOT
— Em estudo desse caso, eu usei uma solução de gerenciamento de usuário e maquinas chamado Jump Cloud.
Vamos lá conteúdo simples que quero te dar como uma forma de orientação para você conseguir resolver os seus problemas semelhantes no futuro.
#!/bin/sh
#Link para download do DMG
urlDownload=”[Coloque seu link de download aqui]”
#Criando uma pasta temporária customizada
DATE=$(date ‘+%Y-%m-%d-%H-%M-%S’)
tempFolder=”Download-$DATE”
mkdir /tmp/$tempFolder
cd /tmp/$tempFolder
#Iniciando o download do arquivo
curl -s -O “$urlDownload”
#Aqui ele vai informar se seu download está finalizado.
DMGFile=$(ls)
echo “Download Concluído do arquivo $DMGFile para a pasta /tmp/$tempFolder”
#Montando o DMG sem icone na máquina
sudo hdiutil attach /tmp/$tempFolder/$DMGFile -nobrowser
DMGMountPoint=”$(hdiutil info | grep “$DMGFile” | awk ‘{ print $1}’ )”
cd $DMGMountPoint
#Copiando o arquivo pkg de dentro do DMG.
DMGAppPath=$(find “DMGMountPoint” -name “*.app” -depth 1)
DMGXmlPath=$(find “DMGMountPoint” -name “*.xml” -depth 1)
cp -pPR “$DMGAppPath” /Applications/
cp -pPR “$DMGXmlPath” /Applications/
hdiutil detach $DMGMountPoint
echo “Copied $DMGAppPath and $DMGXmlPath to /Applications”
rm -r /tmp/$TempFolder
#Essa linha vai deixar os aplicativos da Bit Defender com autorização para instalar as extensões de Kernel
sudo /usr/sbin/spctl kext-consent add GUNFMW623Y
#O comando OPEN chama a execução do (APP) para ser executado.
sudo open /Applications/SetupDownloader.app
# Após termino, ele remove os arquivos usados da pasta Application
sudo rm -rf /Applications/SetupDownloader.app
sudo rm -rf /Applications/installer.xml
Espero que tenha gostado, o script em sua fase final, vai esta disponível em meu Github com todos os outros 2 para instalação nas 3 plataformas de sistemas (Windows, Linux na versão Ubuntu e MacOS).