Sobre el proyecto
macOSdb es una herramienta para desarrolladores que rastrea y cataloga las versiones de componentes de código abierto incluidos en cada versión de macOS y Xcode para Apple silicon. Proporciona tanto una interfaz de línea de comandos como un navegador web en macosdb.com.
El escáner funciona descargando las imágenes de firmware IPSW de Apple y los archivos .xip de Xcode, y luego extrayendo información de versión a través de un proceso de múltiples fases: descomprimir el archivo, analizar kernelcaches para versiones de Darwin/XNU y asignaciones de familias de chips, descifrar Archivos Encriptados de Apple (macOS 15+), montar el DMG del sistema para escanear binarios en busca de cadenas de versión incrustadas, y analizar la caché compartida de dyld para extraer datos de dylibs individuales. Los resultados se ensamblan en archivos JSON estructurados de lanzamiento.
Los componentes rastreados abarcan binarios del sistema (curl, httpd, LibreSSL, OpenSSH, Ruby, sudo, SQLite, vim, zsh), bibliotecas de la caché compartida de dyld (libbz2, libcurl, libexpat, libncurses, libpcap, libsqlite3, libssl, libxml2), herramientas del toolchain de Xcode (Apple Clang, cctools, Git, ld, lldb, Python, Swift) y bibliotecas del SDK (bzip2, expat, libcurl, libexslt, libffi, libxml2, libxslt, ncurses, sqlite3, zlib).
La CLI admite listar lanzamientos, mostrar componentes para un lanzamiento específico, comparar versiones de componentes entre lanzamientos, escanear nuevos archivos IPSW o Xcode, validar la integridad de archivos con sumas SHA-256 y limpiar DMGs montados sobrantes. Todos los comandos de lectura admiten uso sin conexión mediante un directorio de datos local o una URL base de API alternativa. Hay completaciones de shell disponibles para zsh, bash y fish.
Los datos de lanzamiento se almacenan como archivos JSON en un directorio data/ organizado por tipo de producto, y también se sirven como API REST. Los datos están licenciados bajo CC-BY-4.0, mientras que el software en sí está bajo AGPL-3.0-only. El proyecto está construido con Swift 6.2 y usa Astro para el sitio web estático, con flujos de CI para compilación, linting, pruebas, análisis CodeQL, despliegue del sitio y pipelines de lanzamiento.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.