Wine, camada de compatibilidade do Windows, chega à versão 5.0 no Android

Wine é uma camada de compatibilidade do Windows que permite aos usuários executar aplicativos do Windows em outros sistemas operacionais. O Wine para Android atingiu a versão 5.0 – confira!

O ecossistema de aplicativos Android evoluiu constantemente ao longo dos anos de existência do Android, impulsionado pela adoção constante do celular como a principal interação com o computador para a maioria das pessoas. Muitos usuários optaram por um estilo de vida exclusivamente móvel, e isso ocorre porque os aplicativos e o ecossistema de aplicativos móveis conseguiram atender às suas necessidades específicas. Mas se você precisasse de um aplicativo de desktop sem ter acesso a um desktop, o que faria? É aqui que entra o Wine, uma camada de compatibilidade do Windows que permite aos usuários executar aplicativos completos do Windows em diferentes sistemas operacionais. Wine para Android tem agora chegou à versão 5.0, reunindo os esforços de desenvolvimento de um ano da equipe.

Wine é uma camada de compatibilidade gratuita e de código aberto para Windows, com o objetivo de permitir que programas de computador desenvolvidos para Windows sejam executados em outros sistemas operacionais.

Wine para Android traz Wine para Android, obviamente. Wine não é um emulador (que na verdade é um acrônimo recursivo para o nome), então ele só pode rodar versões de aplicativos específicas da arquitetura - a versão ARM do Wine para Android executará apenas aplicativos ARM, e não x86.

Os destaques da versão estável do Wine 5.0 incluem suporte para vários monitores e suporte para Vulkan 1.1. O changelog completo da atualização é o seguinte:

Registro de alterações do Wine 5.0:

  • Módulos PE:
    • A maioria dos módulos são construídos no formato PE (Portable Executable, o formato binário do Windows) em vez de ELF quando o compilador MinGW está disponível. Isso ajuda vários esquemas de proteção contra cópia que verificam se o conteúdo do disco e da memória dos módulos do sistema são idênticos.
    • Os binários PE reais são copiados para o prefixo Wine em vez dos arquivos DLL falsos. Isso faz com que o prefixo pareça mais uma instalação real do Windows, ao custo de algum espaço extra em disco.
    • Os módulos que foram convertidos para PE podem usar funções C padrão de caracteres largos, bem como constantes de caracteres largos como L"abc". Isso torna o código mais fácil de ler.
    • Nem todos os módulos foram convertidos para PE ainda; este é um processo contínuo que continuará durante a série de desenvolvimento do Wine 5.x.
    • O tempo de execução do Wine C foi atualizado para oferecer suporte à vinculação a binários compilados pelo MinGW; ele é usado por padrão em vez do tempo de execução MinGW ao construir DLLs.
  • Gráficos:
    • Vários adaptadores de vídeo e monitores são suportados adequadamente, incluindo alterações dinâmicas de configuração.
    • O driver Vulkan suporta até a versão 1.1.126 da especificação Vulkan.
    • A biblioteca WindowsCodecs é capaz de converter mais formatos de bitmap, incluindo formatos indexados por paleta.
  • Direto3D:
    • Aplicativos Direct3D em tela cheia inibem o protetor de tela.
    • Os presentes DXGI swapchain informam ao aplicativo quando a janela correspondente é minimizada. Isso normalmente permite que os aplicativos reduzam o uso da CPU enquanto estão minimizados e, em alguns casos, é necessário para permitir que a janela do aplicativo seja restaurada novamente.
    • A alternância entre os modos de tela cheia e janela usando a combinação padrão Alt+Enter é implementada para aplicativos DXGI.
    • Os seguintes recursos são implementados para aplicativos Direct3D 12:
      • Alternando entre tela cheia e janela.
      • Alterando os modos de exibição.
      • Presentes em escala.
      • Trocar intervalos. Esses recursos já foram implementados para versões anteriores da API Direct3D.
    • O tratamento de vários casos extremos foi aprimorado. Entre outros:
      • Valores de referência fora do intervalo para os testes alfa e estêncil.
      • Amostragem de recursos 2D com amostradores 3D e vice-versa.
      • Desenho com texturas e buffers mapeados.
      • Uso de objetos de corte do DirectDraw inválidos.
      • Criação de dispositivos Direct3D em Windows inválidos, como a janela da área de trabalho.
      • Viewports com Z mínimo maior ou igual ao Z máximo.
      • Recursos vinculados por meio de visualizações de recursos de sombreador e visualizações de destino de renderização ou estêncil de profundidade ao mesmo tempo.
      • Blits entre formatos com e sem componentes alfa. Como os aplicativos bem comportados não dependem desses casos extremos, eles normalmente afetam apenas um ou dois aplicativos cada. No entanto, existem vários deles.
    • Regiões de textura suja são rastreadas com mais precisão para uploads de textura Direct3D 8 e 9.
    • Carregamentos de texturas 3D compactadas por S3TC requerem menos espaço de endereço. Como as texturas 3D podem ser potencialmente grandes e o esgotamento do espaço de endereço é uma preocupação para aplicativos de 32 bits, as texturas 3D compactadas com S3TC são carregadas por fatia, em vez de em um único upload.
    • A interface ID3D11Multithread é implementada.
    • Várias correções e melhorias no cálculo de iluminação para aplicativos DirectDraw mais antigos foram feitas.
    • Foi implementado suporte limitado para blits em swapchains.
    • Mais APIs de reflexão de shader são implementadas.
    • O blitter CPU wined3d pode lidar com recursos de origem compactados. O suporte para recursos de destino compactados já foi implementado em uma versão anterior.
    • O banco de dados da placa gráfica Direct3D reconhece mais placas gráficas.
    • Novas chaves de registro HKEY_CURRENT_USER\Software\Wine\Direct3D:
      • "shader_backend" (REG_SZ)O backend do shader a ser usado. Os valores possíveis são "glsl" (padrão) para GLSL, "arb" para programas de vértices/fragmentos ARB e "none" para desabilitar o suporte a shaders.
      • "strict_shader_math" (REG_DWORD)Ativa (0x1) ou desativa (0x0, padrão) uma tradução mais rigorosa de sombreadores Direct3D, potencialmente com um custo de desempenho. Atualmente, isso só faz diferença com o back-end do shader GLSL padrão em combinação com os drivers proprietários da NVIDIA.
    • Chave de registro HKEY_CURRENT_USER\Software\Wine\Direct3D obsoleta:
      • "UseGLSL"Isso foi substituído pela configuração "shader_backend" acima.
  • D3DX:
    • Foi implementado suporte para compactação de texturas usando compactação S3TC.
    • Várias operações, como por ex. preenchimentos de textura em superfícies não mapeáveis ​​são implementados de forma mais correta. Anteriormente, sua implementação dependia da implementação subjacente do Direct3D, que não impunha restrições de mapeamento.
    • Várias melhorias e correções foram feitas na estrutura de efeitos.
  • Núcleo:
    • A maioria das funções que estavam no Kernel32 foram movidas para o KernelBase, para seguir a arquitetura das versões recentes do Windows.
    • Bibliotecas com 32/64 bits incorretos são ignoradas quando encontradas no caminho de pesquisa, para permitir o carregamento da correta se for encontrada mais adiante no caminho.
    • Os objetos do kernel são melhor emulados para drivers de dispositivos que esperam manipular objetos do lado do kernel.
    • Os objetos de sincronização em nível de kernel, como spin locks, mutexes rápidos, remoção de bloqueios e variáveis ​​de recurso, são implementados.
    • O estado da bateria do sistema é informado adequadamente aos aplicativos.
  • Interface de usuário:
    • As janelas minimizadas são exibidas usando sua barra de título em vez dos antigos ícones do estilo Windows 3.1.
    • Os novos estilos de botão Split Buttons e Command Links são implementados.
    • O controle Editar define as margens corretamente também para fontes CJK.
  • Integração de área de trabalho:
    • Links simbólicos para os diretórios Unix correspondentes são criados para as pastas ‘Downloads’ e ‘Templates’.
  • Dispositivos de entrada:
    • Drivers de dispositivos Plug & Play podem ser instalados e carregados na inicialização.
    • Os controladores de jogo são melhor suportados, incluindo suporte adequado para controles de interruptor de chapéu, roda, acelerador e freio.
    • A antiga API de joystick de versões do Linux anteriores à 2.2 não é mais suportada.
  • .LÍQUIDO:
    • O mecanismo Mono foi atualizado para a versão 4.9.4, incluindo partes da estrutura Windows Presentation Foundation (WPF).
    • Os complementos Gecko e Mono suportam instalação compartilhada, onde os arquivos são usados ​​diretamente de um local global em /usr/share/wine em vez de serem copiados para cada novo prefixo.
  • Internet e redes:
    • O mecanismo Gecko foi atualizado para suportar conjuntos de ferramentas recentes.
    • Uma série de novas APIs HTML são implementadas.
    • MSHTML oferece suporte a alguns elementos SVG.
    • Objeto de erro e propagação de exceção são suportados em VBScript.
    • Várias funções internas do VBScript são implementadas.
    • O modo compatível com JScript EcmaScript foi estendido para oferecer suporte a mais recursos.
    • Os objetos de script JScript e VBScript expõem interfaces de informações de tipo.
    • A configuração do proxy HTTP pode ser recuperada através do DHCP.
    • Redirecionamentos HTTP de passaporte são suportados.
    • O serviço HTTP e a biblioteca correspondente do lado do cliente (HTTPAPI) estão parcialmente implementados.
  • Criptografia:
    • Chaves ECC (curva elíptica) são suportadas ao usar GnuTLS.
    • A importação de chaves e certificados de blobs PFX está implementada.
    • O algoritmo de derivação de chave PBKDF2 é suportado.
  • Texto e fontes:
    • Os recursos de posicionamento OpenType são suportados no DirectWrite e habilitados para script latino por padrão, incluindo kerning.
    • O acesso aos dados das fontes fica mais seguro ao validar as diversas tabelas de dados antes de usá-las.
    • As interfaces DirectWrite são atualizadas para um SDK recente, implementando algumas das adições de API mais recentes.
  • Áudio vídeo:
    • As bibliotecas XAudio2 são reimplementadas para utilizar a biblioteca FAudio externa, para melhor compatibilidade.
    • As bibliotecas da Media Foundation são desenvolvidas, incluindo:
      • Suporte para filas de trabalho assíncronas integradas e de usuário.
      • Capacidade de enviar retornos de chamada periódicos, itens de trabalho em espera, agendados e regulares, com suporte para prioridade de item.
      • Suporte para filas de eventos de mídia.
      • Várias APIs principais para lidar com objetos de tipo de mídia, descritores de fluxo e apresentação, atributos de objetos, objetos de fluxo de bytes, amostras e buffers.
      • Implementação inicial do Source Resolver.
      • Implementação inicial da API Source Reader.
      • Implementação do objeto Sample Grabber.
      • Suporte principal para construção de objetos de topologia.
      • Implementação de relógio de apresentação integrado, começou a implementar a funcionalidade de Sessão de Mídia.
    • O filtro de captura de vídeo foi portado para usar v4l2 em vez da API obsoleta v4l1, permitindo o uso de algumas câmeras que não suportam v4l1.
    • O suporte para tradução e leitura de YUV para RGB de dispositivos v4l2 usando mmap() foi removido; agora dependemos da libv4l2 para ambas as coisas.
    • Os decodificadores AVI, MPEG-I e WAVE integrados foram removidos; agora dependemos do GStreamer ou do Mac QuickTime Toolkit para decodificar esses arquivos de mídia.
    • Mais algumas APIs de configuração VMR7 são implementadas.
    • Os drivers de som suportam ajustes de volume por canal.
  • Internacionalização:
    • As tabelas de caracteres Unicode são baseadas na versão 12.1.0 do padrão Unicode.
    • A normalização Unicode é implementada.
    • O ID da região geográfica é definido automaticamente no registro com base na localidade atual. Ele pode ser modificado se necessário em HKEY_CURRENT_USER\Control Panel\International\Geo.
    • As localidades cingalesas e asturianas são suportadas.
    • A página de códigos 28601 (latim/tailandês) é suportada.
  • RPC/COM:
    • O empacotador typelib oferece suporte a estruturas e matrizes complexas.
    • Há uma implementação inicial da biblioteca de tempo de execução do Windows Script.
    • Há uma implementação inicial da biblioteca Microsoft ActiveX Data Objects (ADO).
  • Instaladores:
    • Arquivos de patch do Microsoft Installer (MSI) são suportados.
    • A ferramenta WUSA (Windows Update Standalone Installer) oferece suporte à instalação de arquivos de atualização .MSU.
  • Plataformas ARM:
    • O desenrolamento de exceção é implementado para ARM64, usando a biblioteca libunwind.
    • Os proxies sem stub OLE são suportados no ARM64.
  • Ferramentas de desenvolvimento/Winelib:
    • O depurador remoto do Visual Studio pode ser usado para depurar aplicativos em execução no Wine.
    • A biblioteca Debug Engine (DBGENG) está parcialmente implementada.
    • Os binários criados para um destino Windows não dependem mais da biblioteca libwine, para permitir que sejam executados no Windows sem quaisquer dependências extras. A biblioteca libwine não foi mais desenvolvida para Windows.
    • O Resource Compiler e o IDL Compiler suportam uma opção '--sysroot' para permitir a localização de arquivos de cabeçalho em ambientes de compilação cruzada.
    • Winegcc suporta as opções '--target', '--wine-objdir', '--winebuild' e '-fuse-ld' que facilitam o uso como um compilador cruzado ou com conjuntos de ferramentas personalizados.
    • O cabeçalho wine/unicode.h não está mais disponível para aplicativos, uma vez que as funções serão finalmente removidas e substituídas pelas funções de caracteres padrão do tempo de execução C padrão.
  • Construir infraestrutura:
    • Os binários de teste são construídos no formato PE se o MinGW estiver disponível, portanto, o mesmo binário de teste pode ser executado no Wine e no Windows. O alvo make 'crosstest' não é mais necessário ou suportado.
    • A convenção de chamada 'fastcall' é suportada em arquivos de especificações. Ele usa o nome correto para compilações do Windows.
    • Um sinalizador de ponto de entrada '-import' é suportado em arquivos de especificação, para marcar funções que precisam de um prefixo de código de hotpatch a ser gerado para suas conversões de importação.
    • Winebuild suporta uma opção '--builtin' para adicionar uma assinatura especial aos binários PE para marcá-los como integrados do Wine.
  • Aplicativos integrados:
    • A ferramenta CHCP é implementada. Permite definir a página de códigos do console.
    • A ferramenta MSIDB é implementada. Permite manipular bancos de dados MSI.
  • Melhorias de desempenho:
    • As diversas funções de tempo usam relógios de sistema de maior desempenho, se disponíveis, para reduzir a sobrecarga no loop de renderização de muitos jogos.
    • As pesquisas de arquivos aproveitam o suporte à dobragem de maiúsculas e minúsculas do sistema de arquivos ext4 se estiver ativado no diretório que está sendo pesquisado.
    • As caixas de listagem de estilo sem dados (LBS_NODATA) têm melhor desempenho para um grande número de itens.
    • Bloqueios Slim Reader/Writer, eventos com chave e variáveis ​​de condição usam futexes no Linux para evitar viagens de ida e volta do wineserver.
  • Novas dependências externas:
    • O compilador cruzado MinGW-w64 é usado para construir módulos no formato PE.
    • A biblioteca FAudio é usada para implementar o XAudio2.
    • A biblioteca Inotify é usada para notificações de alteração de arquivos em plataformas BSD.
    • A biblioteca Unwind é usada para tratamento de exceções no ARM64.
    • A biblioteca Video4Linux versão 2 é usada em vez da versão 1.

consulte Mais informação


Fonte: Sede do vinho

História via: Polícia Android