Wat is het BUNDLE-bestandsformaat?
.bundle is een plug-in bundelformaat voor macOS, ontwikkeld door Apple. In plaats van een echt enkel bestand, is een .bundle een mappakket - een map die de Finder presenteert als één ondoorzichtig item, een concept dat is overgenomen van NeXTSTEP en geformaliseerd in Mac OS X 10.0.
Bestanden met de extensie .bundle bevatten uitvoerbare code en bronnen. .bundle-bestanden worden gebruikt als macOS-containers voor de distributie van:
- applicaties,
- frameworks (ontwikkelplatforms en bibliotheken),
- plug-ins.
.bundle-gegevens zijn verschillend georganiseerd, afhankelijk van het type inhoud dat erin is opgeslagen. Het type gegevens dat een .bundle-bestand bevat, bepaalt ook hoe de Finder het bestand weergeeft. Plug-ins en applicaties worden weergegeven als afzonderlijke bestanden die kunnen worden geïnspecteerd met de opdracht Toon pakketinhoud. Frameworks worden weergegeven als mappen. .bundle-bestanden mogen niet handmatig worden geopend, ongeacht hun inhoud.
Intern volgt een .bundle de CFBundle-indeling: een Contents/-map met een Info.plist-manifest (waarin CFBundlePackageType = BNDL wordt gedeclareerd), een MacOS/-submap met het Mach-O uitvoerbare bestand, en Resources/. Gerelateerde typen zijn onder meer .app, .framework, .kext en .plugin.
Beveiliging & veiligheid
RISICO: MEDIUMEen .bundle bevat uitvoerbare code die een host-app zal laden en uitvoeren, dus het brengt dezelfde vertrouwensaspecten met zich mee als het installeren van een plug-in: installeer alleen bundels van bronnen die je vertrouwt, en geef de voorkeur aan door code ondertekende/genotariseerde bundels zodat macOS Gatekeeper ze kan verifiëren. Het louter bladeren door de inhoud van een bundel in Finder is onschadelijk; het risico zit in het laden van een niet-vertrouwde plug-in in een app, die vervolgens zijn code uitvoert met de rechten van die app.
Formaatdetails
in een notendop- Ruby/Rails I18n locale of gem .bundle (gecompileerde extensie) - Op macOS is een gecompileerde Ruby C-extensie een Mach-O laadbare bundel genaamd *.bundle binnen een gem.
- Siemens NX / generieke applicatiedata 'bundle' - Een handvol apps schrijft een eigen .bundle-bestand van één bestand met gegroepeerde instellingen of assets.
Programma's die BUNDLE-bestanden openen
Technische details
diepe specificaties| Formaat-type | macOS mappakket - een map die de Finder presenteert als een enkel ondoorzichtig bestand |
| Ontwikkelaar | Apple |
| Interne structuur | `Contents/`-map met `Info.plist`, `MacOS/` (Mach-O uitvoerbaar bestand), `Resources/`, en optionele `Frameworks/` en `PlugIns/` submappen |
| Pakkettype-code | `BNDL` - ingesteld als `CFBundlePackageType` in `Info.plist` |
| Uitvoerbaar formaat | Mach-O binair; magic bytes `FE ED FA CE` (32-bit BE), `CF FA ED FE` (64-bit LE), of `CA FE BA BE` (universeel/fat binair) |
| Metadata-manifest | `Info.plist` - XML of binaire property list die de bundel-identificatie, versie, naam van het uitvoerbare bestand en pakkettype declareert |
| MIME-type | `application/octet-stream`; ook gerapporteerd als `inode/directory` op POSIX-systemen |
| Bestandssysteem-container | HFS+ of APFS map met de pakket-bit ingesteld; weergegeven als een uniform item in Finder |
| Code-ondertekening | Mach-O uitvoerbaar bestand in de bundel kan worden ondertekend met `codesign`; afgedwongen door Gatekeeper en notarisatie op macOS 10.15+ |
| Platformondersteuning | macOS (primair); iOS en iPadOS (laadbare bundels ingebed in `.app`-pakketten); oorspronkelijk NeXTSTEP |
| Typische bestandsgrootte | Tientallen KB tot tientallen MB, afhankelijk van de plug-in-code en gebundelde bronnen |
| Codering | Gemengd - binair Mach-O uitvoerbaar bestand plus XML of binair-formaat `Info.plist` en tekstuele bronbestanden |
| Windows-gedrag | Gekopieerde bundel verschijnt als een gewone map; macOS-pakketsemantiek is afwezig op Windows |
| Identificatiemethode | Geïdentificeerd door het `.bundle` achtervoegsel van de mapnaam en de aanwezigheid van `Contents/Info.plist`; er bestaan geen magic bytes op bestandsniveau |
| Bundel-identificatie | Elke `.bundle` bevat een reverse-DNS `CFBundleIdentifier`-tekenreeks (bijv. `com.example.plugin`) die wordt gebruikt voor uniciteit en code-ondertekening |
| Uitgebracht | 1990s (NeXTSTEP bundle concept); formalized in Mac OS X 10.0, 2001 |
| Laatste versie | Modern Core Foundation / Foundation bundle layout (current macOS) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | developer.apple.com |
BUNDLE conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over BUNDLE-bestanden.