Olá pessoal,
Trabalho com ISP e uso o UNM2000, o cliente NMS da FiberHome para gerenciar OLTs
das linhas AN5116 e AN5516. O problema: o software é distribuído apenas para
Windows, com JRE 8 bundled e várias dependências de APIs exclusivas do Windows.
Depois de bastante engenharia reversa de bytecode Java, consegui fazer o cliente
rodar nativamente no Linux com Java 21, sem Wine. O resultado virou um script de
instalação com patches de compatibilidade.
Como funciona
O UNM2000 é uma aplicação NetBeans Platform. Os problemas com Linux/Java 21 eram:
- System.setSecurityManager() removido no Java 21 → crash aos ~11s após login
- Chamadas Runtime.halt() no middleware ICE (ZeroC) matando a JVM em timeouts de
rede - Componentes Swing usando WindowsComboBoxUI — classe que não existe no OpenJDK
Linux - Callbacks de heartbeat que chamavam exit() ao expirar a sessão
Os 8 patches corrigem esses problemas diretamente no bytecode dos JARs, usando
bsdiff — ou seja, os patches só funcionam aplicados sobre o instalador original da
FiberHome, nada proprietário é redistribuído.
Requisitos
- Instalador original unm2000_Client_en.exe (obtido junto à FiberHome)
- Java 21 JRE (openjdk-21-jre ou Temurin 21)
- unrar e bsdiff
Instalação
sudo bash install.sh /caminho/para/unm2000_Client_en.exe
Na primeira execução o NetBeans reconstrói o cache (~2-5 min). As seguintes são
rápidas.
OLTs testadas: AN5116-06B e AN5516-04
Funcionalidades: login, janela principal, NE Manager, OptModule
Limitação conhecida: as telas de analytics do menu Performance/Advance (GIS Map,
relatórios ópticos, etc.) não funcionam — dependem de um componente JxBrowser com
binário Linux que a FiberHome nunca distribuiu.
Repositório: github.com/Reinoldo-Ozy/unm2000-linux-port
A análise de bytecode e desenvolvimento do instalador foram feitos com auxílio do
https://claude.ai/code (Anthropic).
Se alguém usar UNM2000 no ambiente, testa aí e me diz!