Visualizador de plist (binário e XML)
As listas de propriedades são como o macOS e o iOS guardam quase tudo: preferências de aplicações, Info.plist, perfis de configuração, manifestos de cópias de segurança. Metade são XML que se lê num editor, e a outra metade é o formato binário da Apple, que abre como uma parede de bytes começada pelas letras bplist. Esta ferramenta lê os dois. O binário é descodificado a sério em vez de vasculhado à procura de cadeias: o rodapé de 32 bytes no fim do ficheiro diz que largura têm os inteiros de deslocamento e de referência e onde fica a tabela de objetos, e todos os valores são alcançados através dessa tabela, por isso nada se lê avançando a partir do cabeçalho. Inteiros de um, dois, quatro e oito bytes, reais, datas na época própria da Apple, dados em bruto, UID, arrays, conjuntos e dicionários voltam com o tipo intacto. O resultado é mostrado como árvore e oferecido como JSON e como plist XML, de modo que um ficheiro binário que não podia editar passa a poder ser editado. Quando se revela um arquivo NSKeyedArchiver — uma tabela plana de objetos ligados por referências UID, que é o que o iOS escreve para qualquer coisa não trivial — a ferramenta avisa, porque isso explica que o conteúdo não se pareça nada com a estrutura que a aplicação aparenta guardar. Nada é enviado.
Como usar
- Largue um ficheiro .plist ou .mobileconfig, ou cole texto de plist XML.
- O formato é detetado; os binários indicam quantos objetos contêm.
- Leia a árvore: cada linha mostra a chave, o tipo e o valor.
- Copie o JSON para processar, ou o plist XML para editar.
- Dados e datas são identificados em vez de achatados em cadeias.
Perguntas frequentes
- Qual é a diferença entre um plist binário e um XML?
- Apenas a codificação. Contêm os mesmos valores e o macOS trata-os como equivalentes. O binário é menor e mais rápido de carregar, por isso quase todos os ficheiros num dispositivo são binários mesmo quando os mesmos dados aparecem documentados como XML.
- Porque é que o meu ficheiro são números sem sentido e chaves começadas por $?
- Provavelmente é um arquivo NSKeyedArchiver. Guardam uma lista plana de objetos em $objects e ligam-nos por referências UID em vez de os aninhar, por isso a forma que vê é a do arquivo e não a da aplicação. O visualizador assinala isso quando encontra a chave $archiver.
- Porque é que noutros sítios as datas ficam 31 anos desfasadas?
- A Apple conta segundos a partir de 2001-01-01 e não de 1970-01-01, uma diferença de 978307200 segundos. Ler uma data de plist como carimbo Unix atira-a para os anos setenta; aqui o desfasamento é aplicado e as datas saem certas.
- O que acontece aos dados binários?
- Mantêm-se como dados e o comprimento é indicado. No JSON aparecem em base64 sob a chave __data_base64, já que o JSON não tem cadeias de bytes, e na saída XML voltam a ser um elemento <data>.
- Consegue editar ou escrever um plist binário?
- Converte um plist binário para XML, que pode editar e reconverter com o plutil ou qualquer biblioteca de plist. Escrever o formato binário não é função desta ferramenta.
- O meu ficheiro é enviado?
- Não. É analisado no seu navegador e nada é enviado para um servidor — o que conta nos ficheiros de preferências, que costumam conter nomes de conta e caminhos.
Ferramentas relacionadas
Excel (XLSX) para CSV, JSON e Markdown
Abra uma pasta .xlsx no navegador e exporte qualquer planilha como CSV, JSON ou tabela Markdown — o arquivo não sai do seu aparelho.
Descodificador de MessagePack
Cole bytes MessagePack em base64 ou hex e leia os valores — tipos, mapas aninhados, binários e datas — no seu navegador.
Visualizador de ICS e regras de repetição
Abra um convite .ics ou uma exportação de calendário e veja o que lá está mesmo, com as datas reais que uma regra de repetição produz.
Construtor de Manifest PWA
Construa um `manifest.json` válido para Progressive Web App — name, icons, theme color, display mode, scope, orientation — com o HTML `<link>` e meta tags Apple correspondentes.
Conversor XML ↔ JSON
Converta XML para JSON e vice-versa, com suporte completo a atributos, prefixo de atributo e chave de texto configuráveis. DOMParser nativo do navegador lida com namespaces, CDATA, comentários.
Visualizador de EPUB, metadados e texto
Abra um .epub no navegador: metadados, lista de capítulos com contagem de palavras, o texto simples e as verificações que explicam por que um leitor rejeita o livro.