UNM2000 Client da FiberHome rodando nativo no Linux — patches de compatibilidade Java 21

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!