Como para ofuscar um pacote OSGi com ProGuard?
-
20-08-2019 - |
Pergunta
Atualmente, estou tentando ofuscar minha aplicação Eclipse RCP com ProGuard. O problema é que ele ofusca os nomes dos pacotes (as voltas classe My.Package.Class em algo como a.b.c), mas mantém os nomes dos pacotes na seção Export-Package da MANIFEST.MF.
Isso leva ao fato de que meu aplicativo (que é um conjunto de OSGi pacotes, na verdade) não pode ser executado, como os nomes dos pacotes especificados na seção Export-Package da MANIFEST.MFs não pode ser resolvido.
Alguém teve algum sucesso com ProGuard ofuscar uma aplicação RCP com base em OSGi? Basicamente, eu vejo duas opções: ou desligar completamente nomes de pacotes ofuscação, ou seção Export-Package do MANIFEST.MF obfucate, mas não consigo encontrar o caminho para implementar qualquer uma delas. Proguard parece ofuscar único nome classe Bundle-Activator no MANIFEST.MF, ignorando todas as outras seções. Agradecemos antecipadamente!
Solução
Desligue nome do pacote ofuscamento; Quero dizer que valores importantes de negócios que você está expondo dizendo ao mundo os nomes dos pacotes?
Se isso realmente é um problema, mover todo o código em uma biblioteca totalmente ofuscado e usar a biblioteca em um plugin não-ofuscado.
Dito isto, considere não desperdiçar seu tempo com ofuscação em tudo. Vai custar-lhe tempo e dinheiro e é questionável se existe algum benefício. No momento em que seus concorrentes já começaram a desmontar o seu valioso trabalho, você estará escrevendo a próxima versão. Então, por que se preocupar?
Outras dicas
pacote OSGi ofuscamento não é suportado built-in por ProGuard. Verifique o pedido de recurso Proguard # 135 para mais informações.