Simulador de Atualização do Sistema
Simule telas de atualização do Windows, macOS, Linux e Android. Tela cheia, clique para sair.
Selecionar tipo de sistema
Clique em qualquer lugar na tela para sair
O que é um Simulador de Atualização do Sistema?
O Simulador de Atualização do Sistema é uma ferramenta divertida que simula as telas de atualização de vários sistemas operacionais. Suporta Windows Update, atualização do macOS, apt upgrade do Linux e atualização do Android.
A ferramenta funciona completamente no navegador e não realiza atualizações reais. A exibição em tela cheia é realista, clique em qualquer lugar para sair com segurança. Perfeito para pregar amigos ou testar telas.
Um simulador de upgrade modela como níveis, custos, probabilidades ou recursos podem mudar em tentativas repetidas. Ele é útil para jogos, mecânicas de produto, balanceamento, aulas de probabilidade e estimativa de custo ou risco esperado. Simulações mostram tendências, mas não garantem o resultado de uma tentativa individual; o acaso pode desviar bastante no curto prazo. Para sistemas justos, taxas, regras de pity, limites, tratamento de falha e premissas devem ser documentados com clareza.Como Usar
Como usar
- Selecione o tipo de sistema a simular (Windows, macOS, Linux ou Android)
- Clique no botão 'Iniciar Simulação de Atualização' para começar
- A tela de atualização em tela cheia surge com barra de progresso e texto de status
- Clique em qualquer lugar para sair da simulação com segurança
Uso do Modo Tela Cheia
- Use o modo de tela cheia apenas em contextos seguros; a página é uma simulação visual e não altera o sistema operacional.
- Saia antes de deixar o dispositivo desacompanhado, caso outras pessoas possam confundir com uma atualização real.
Casos de uso
Princípio técnico
O simulador de atualização é uma sobreposição em tela cheia no navegador que reproduz a aparência visual das telas de atualização de SO usando três APIs principais do navegador: a Fullscreen API, transições CSS para animação de progresso e temporizadores JavaScript para agendamento de fases. Quando o usuário clica em 'Iniciar Simulação', document.documentElement.requestFullscreen() é chamado — essa API requer um gesto do usuário (clique ou tecla) como medida de segurança, não pode ser chamada automaticamente ao carregar a página e dispara uma notificação do navegador informando como sair da tela cheia. A animação de progresso usa uma curva de suavização não linear em vez de um incremento linear. O valor de progresso P(t) no tempo t (onde t vai de 0 a 1 ao longo da duração total de 30 segundos) segue uma ease-in-out quadrática: P(t) = 2t² para t < 0,5 e P(t) = 1 − 2(1−t)² para t ≥ 0,5. Isso cria um início rápido (fase de download), um meio lento (fase de instalação) e um fim rápido (fase de configuração), que imita o comportamento de atualizadores reais de SO. A largura da barra de progresso é controlada por uma transição CSS na propriedade width com duração compatível com a taxa de ticks do setInterval (100 ms), e o valor suavizado é mapeado para uma porcentagem exibida na interface. O agendamento de fases usa uma máquina de estados finita com callbacks encadeados por setTimeout. Para a simulação Windows, as fases fazem transição em 0%, 30%, 60% e 90% da duração total, cada uma disparando uma atualização de texto e, no caso do Windows, uma mensagem de reinicialização em 100%. As simulações macOS e Android usam um modelo mais simples de duas fases (preparando/instalando). A simulação Linux gera saída de terminal progressiva adicionando linhas condicionalmente com base no valor atual de progresso — cada nova linha de log do apt aparece em limiares específicos de progresso, criando a ilusão de um gerenciador de pacotes em tempo real. Duas saídas de segurança garantem que o usuário sempre possa sair: um listener de clique na sobreposição chama document.exitFullscreen() e limpa todos os temporizadores; um listener de fullscreenchange detecta quando o usuário pressiona ESC (que sai da tela cheia sem envolvimento da página) e redefine todo o estado interno. O evento fullscreenchange é disparado no elemento que possui o estado de tela cheia, então escutar em document.documentElement captura tanto saídas programáticas quanto iniciadas pelo usuário. Toda a renderização é feita com HTML/CSS/JS — a página não faz chamadas de sistema, não grava arquivos e fechar a aba restaura completamente o estado anterior da viewport.
- Segurança da Fullscreen API: requestFullscreen() requer um gesto do usuário (clique/tecla) conforme o WHATWG Fullscreen Standard §1.2 — o navegador exibe uma sobreposição 'Pressione ESC para sair' que a página não pode suprimir, garantindo que o usuário sempre saiba que está em modo de tela cheia.
- Suavização de progresso: A curva de ease-in-out quadrática P(t) = 2t² (t < 0,5) / 1−2(1−t)² (t ≥ 0,5) produz um ritmo rápido-lento-rápido que imita atualizadores reais de SO — a suavização é calculada em JavaScript e aplicada como porcentagem de largura CSS, desacoplando a lógica de animação da renderização.
- Máquina de estados de fases: Uma cadeia de setTimeout avança por limiares de fases predefinidos (Windows: 0% → 30% → 60% → 90% → 100%) com cada fase atualizando a mensagem exibida — a cadeia é limpa na saída para evitar callbacks obsoletos após a sobreposição ser dispensada.
- Simulação de terminal Linux: A saída progressiva do apt é gerada renderizando linhas condicionalmente em limiares específicos de progresso (10%, 25%, 40%, 55%, 70%, 85%, 100%) — cada limiar adiciona nomes de pacotes e contagens de bytes realistas, e a linha 'Fetched X MB in Ys' aparece apenas quando o total é alcançado.
- Saída de segurança: Um listener de clique na sobreposição chama exitFullscreen() e limpa todos os temporizadores; um listener de fullscreenchange em document.documentElement detecta saídas iniciadas por ESC e redefine o estado — ambos os caminhos garantem limpeza de forma independente.
- Renderização específica por plataforma: Cada variante de SO usa CSS distinto: Windows (azul #0078D4, fonte Segoe UI, spinner circular), macOS (fundo preto, fonte San Francisco, SVG do logotipo Apple, temporizador regressivo), Linux (terminal escuro com fonte monoespaçada e controles de janela vermelho/amarelo/verde), Android (verde Material Design #4CAF50, ícone SVG do robô).
- Limpeza de temporizadores: Todos os handles de setInterval e setTimeout são armazenados em refs e limpos tanto na função de stop quanto no callback de cleanup do useEffect — isso previne vazamentos de memória e atualizações de estado obsoletas se o componente for desmontado durante uma simulação ativa.
Exemplos
Tela de Atualização do Windows
Atualizando o Windows
Seu PC está instalando atualizações. Isso pode demorar um pouco.
Não desligue o PC.
Fases: Baixando atualizações -> Instalando atualizações -> Configurando ajustes -> Finalizando atualizações
Paleta: azul clássico do Windows (#0078D4)
Elementos: anel circular de progresso giratório + porcentagem + texto de statusTela de Atualização do macOS
Preparando para instalar...
Cerca de 25 minutos restantes
Fundo: preto puro + ícone da marca Apple
Fonte: San Francisco
Fases: Preparando para instalar -> Instalando macOS
Barra de progresso: barra fina centralizada (#BBBBBB)Terminal apt upgrade do Linux
$ sudo apt upgrade
Reading package lists... Done
Analyzing dependency tree of packages... Done
Get:1 archive.ubuntu.com noble-updates/main amd64 linux-image 6.8.0-45 [13.2 MB]
Fetched 168 MB in 14s (12.0 MB/s)
Preparing to unpack .../linux-image-6.8.0-45.deb ...
Unpacking linux-image (6.8.0-45) ...
System upgrade complete, restart required.Perguntas frequentes
Isso realmente atualiza meu sistema?
Não. Apenas mostra uma tela falsa de atualização no navegador. Nada no seu sistema operacional muda. Clique em qualquer lugar ou pressione Esc para sair.
Quais telas de atualização de SO são suportadas?
Opções típicas incluem o Windows Update (a tela com círculos giratórios 'Trabalhando em atualizações / Não desligue o computador'), atualização de sistema do macOS, progresso do 'apt upgrade' do Linux e atualização do sistema Android. Cada uma imita de perto a interface real.
Como saio da tela?
Clique em qualquer lugar da página ou pressione Esc. O simulador não trava seu computador — feche a aba ou troque de janela quando quiser.
Por que eu usaria uma tela falsa de atualização?
Usos comuns incluem pegadinhas (deixar rodando no notebook logado de um colega enquanto você vai pegar um café), material de preenchimento para um tutorial ou esquete de tecnologia e conteúdo decorativo para uma live ou um totem. Também é útil para tirar print de uma tela de atualização reconhecível em documentações sobre atualizações reais.
A porcentagem realmente progride?
Sim. A tela anima uma porcentagem que sobe lentamente, no mesmo ritmo de uma atualização real do SO para que a pegadinha continue convincente por alguns minutos. O ritmo exato depende do tema de SO escolhido.
Posso rodar em tela cheia?
Sim. Clique no botão de tela cheia ou pressione F11. Em alguns navegadores você pode precisar permitir a permissão de tela cheia para a página uma vez. A tela cheia é o que torna a pegadinha realmente convincente.
É seguro deixar rodando?
Tecnicamente é seguro — nada está sendo alterado. Tenha cuidado socialmente: alguém pode forçar um reboot, perder trabalho não salvo ou abrir um chamado para o TI se a brincadeira passar do ponto. Use apenas no seu próprio dispositivo ou com permissão clara do dono.