Como conceder permissão a um aplicativo Mac para ler todo o sistema de arquivos

13

Comprei este aplicativo chamado Xee na Mac App Store. Ele pode abrir arquivos perfeitamente, mas quando tento navegar por uma pasta no aplicativo Xee, ele precisa solicitar permissão. (Veja a captura de tela abaixo.) Preciso fazer isso em todas as pastas na primeira vez em que a navego.

Presumo que essa seja uma limitação imposta pela loja de aplicativos. Existe alguma maneira de contornar isso e conceder a um aplicativo (instalado na minha máquina) permissão para exibir qualquer diretório ou mesmo fazer o que quiser?

Captura de tela

Brian Gordon
fonte
1
Isso é chamado de segurança. E você provavelmente não deseja que um aplicativo tenha acesso total a QUALQUER pasta no seu sistema.
Rob
Isso ocorre apenas para arquivos / pastas fora da pasta do usuário ou também para itens internos?
nohillside
@patrix Isso acontece dentro da minha pasta de usuário.
Brian Gordon

Respostas:

3

É um pouco complicado, mas você pode remover a caixa de areia alterando o <key>com.apple.security.app-sandbox</key>valor (definido como < true/>) com um editor hexadecimal.

No macOS Sierra 10.12, defina-o como < false/>
No macOS El Capitain 10.11 ou anterior, defina-o como < fals/>

Para o Xee, você precisa editar os seguintes binários:

  • /Applications/Xee³.app/Contents/MacOS/Xee³
  • /Applications/Xee³.app/Contents/Loader/Xee3.ImageLoader

Fonte: /programming/7018354/remove-sandboxing

Bob Fanger
fonte
Obrigado! Funciona. Não se esqueça chmod a+xdos arquivos se você usou seu editor hexadecimal para criar novos arquivos.
Brian Gordon
Além disso, hexed.it é fantástico.
Brian Gordon
1
Esta não é realmente uma solução daqui para frente. O aplicativo Sandboxing é cada vez mais necessário à medida que o tempo passa, portanto, trabalhar com ele é melhor do que trabalhar contra ele
Ben Leggiero
Considere fornecer um feedback à Apple sobre essa limitação e como ela limita seu fluxo de trabalho. O feedback dos clientes ajudará a moldar o que os aplicativos da Mac App Store podem ou não fazer no futuro. Por enquanto, os aplicativos comprados na Apple Mac App Store são limitados.
Bob Fanger
19

O aplicativo está na caixa de areia. Isso significa que o aplicativo foi assinado com um conjunto de direitos. Esses direitos estão sendo aplicados pelo Mac OS X. A documentação do desenvolvedor da Apple sobre sandboxing fornece mais detalhes.

Você pode visualizar os direitos da sandbox do Xee usando o seguinte comando Terminal.app:

codesign --display --entitlements - /Applications/Xee.app

O artigo de Ole Begemann, Verificando a assinatura do código e o status da área restrita no código , explica mais.

Renunciar ou remover direitos

Para remover os direitos, é necessário re -assinar o aplicativo sem direitos - usando codesign- ou retirar totalmente a assinatura do código do aplicativo.

Pergunte aos desenvolvedores de Xee

Modificar um aplicativo Mac não é recomendado. Peça aos desenvolvedores do Xee ajuda sobre como solucionar esse comportamento; somente eles têm o conhecimento apropriado para resolver esse problema.

Os desenvolvedores do Xee parecem estar cientes do problema:

(Observe que a versão da App Store está na caixa de areia, enquanto as versões de avaliação e versões não pertencentes à App Store não estão na caixa de areia. Se você preferir a segurança da caixa de areia do OS X, deverá obter a versão da App Store. No entanto, a versão da caixa de areia precisa peça permissão para determinadas operações e, se você achar isso irritante, deverá obter a versão que não é da App Store.)

Diga à Apple

Considere fornecer um feedback à Apple sobre essa limitação e como ela limita seu fluxo de trabalho. O feedback dos clientes ajudará a moldar o que os aplicativos da Mac App Store podem ou não fazer no futuro. Por enquanto, os aplicativos comprados na Apple Mac App Store são limitados.

Graham Miln
fonte
2
Resposta excelente ao sandbox - bem feito, cobrindo um tópico complicado de maneira legível.
bmike
-4

Tente copiar o conteúdo do aplicativo para o disco rígido e abra a partir daí. Talvez o aplicativo esteja protegendo seus arquivos dele mesmo.

naoxink
fonte