Vad är filformatet XPI?
Filer med filtillägget .xpi innehåller ett dataarkiv för installation av ytterligare Mozilla-programvara. Installationspaketet är ett ZIP-arkiv komprimerat med deflate-metoden - det delar samma PK magic bytes (50 4B 03 04) som en standard ZIP-fil. Namnet på filtillägget .xpi är en förkortning av Cross-Platform Install - XPInstall, vilket var namnet på den teknik som användes i den ursprungliga installationsprocessen.
.xpi-paket används för att installera och utöka funktionaliteten i applikationer som:
- Firefox,
- SeaMonkey,
- Thunderbird.
.xpi-paketfiler kan innehålla insticksmoduler, tillägg, teman eller ordböcker. Filen lagrar även metadata för installationen. I det äldre XPInstall-formatet innebar detta en skriptfil install.js och en manifestfil install.rdf; moderna WebExtension-paket (introducerade med Firefox 57 år 2017) använder manifest.json tillsammans med JavaScript, HTML, CSS och ikonfiler. Formatet är nära besläktat med JAR-arkiv - båda är ZIP-behållare med en specifik intern struktur.
Signerade .xpi-filer som distribueras via addons.mozilla.org innehåller en META-INF/-katalog med en kryptografisk signatur från Mozilla. Standardinstallationer av Firefox accepterar endast .xpi-filer som är digitalt signerade av Mozilla. För att installera tredjepartspaket som inte är certifierade av Mozilla måste användare använda en Developer Edition av Firefox och ställa in alternativet xpinstall.signatures.required till false på sidan about:config. Paketet kan installeras genom att dra och släppa .xpi-filen i webbläsarfönstret. Innehållet i ett .xpi-paket kan granskas genom att ändra filens filtillägg till .zip och packa upp det med valfritt arkivverktyg.
Säkerhet & trygghet
RISK: MEDIUMEn XPI installerar kod som körs inuti din webbläsare med de behörigheter den begär - ett skadligt tillägg kan läsa sidor, fånga formulärdata eller kapa surfandet. Det är precis därför Mozilla kräver signering: release-versionen av Firefox installerar endast tillägg som Mozilla har granskat/signerat, vilket blockerar de flesta typer av skadlig kod. Risken ökar när du kringgår signering (Developer/Nightly-utgåvor, about:debugging) eller installerar en .xpi från källor utanför AMO - gör endast det för tillägg du litar på, och läs de begärda behörigheterna vid installation. Eftersom det är en ZIP kan du inspektera manifest.json (och dess lista över „permissions”) med 7-Zip innan du installerar. Oväntade .xpi-filer i Nedladdningar är säkra att radera; de är engångsinstallationsfiler.
Formatdetaljer
i ett nötskalProgram som öppnar XPI-filer
Tekniska detaljer
djup specifikation| MIME-typ | application/x-xpinstall |
| Behållarformat | ZIP-arkiv; magic bytes 50 4B 03 04 („PK”) vid offset 0, identiskt med ett standard ZIP-lokalt filhuvud |
| Modernt internt manifest | manifest.json som följer WebExtension API, introducerat med Firefox 57 (Quantum) år 2017 |
| Äldre internt manifest | install.rdf (RDF-metadata) och install.js (installationsskript), användes av det tidigare XPInstall-systemet |
| Kryptografisk signatur | META-INF/-katalog som innehåller Mozilla-utfärdade signaturfiler; krävs för alla paket som distribueras via addons.mozilla.org |
| Signeringskrav | Release-kanalen av Firefox avvisar osignerade .xpi-filer; för att tillåta osignerade installationer, använd Developer Edition och ställ in xpinstall.signatures.required=false i about:config |
| Innehållstyper som stöds | Webbläsartillägg, teman, ordböcker, språkpaket och sökinsticksprogram |
| Komprimering | deflate (standard ZIP-komprimering); enskilda poster kan även lagras okomprimerade i arkivet |
| Kompatibilitet mellan webbläsare | WebExtension API delas med Chrome .crx och Edge-tillägg; ett manifest.json-tillägg är i hög grad portabelt mellan webbläsare |
| Relaterat format | .crx (Chromium/Chrome-tillägg) använder en liknande ZIP-baserad struktur men lägger till ett proprietärt CRX-huvud före ZIP-datan |
| Inspektionsmetod | Byt namn till .zip och öppna med valfri arkivhanterare (7-Zip, WinRAR, etc.) för att bläddra i interna filer utan specialverktyg |
| Värdapplikationer | Mozilla Firefox (primär), Mozilla Thunderbird (e-posttillägg), SeaMonkey |
| Distributionskanal | addons.mozilla.org (AMO) - hanterar värdskap, granskning och kodsignering av alla offentligt distribuerade paket |
| Bygg- och paketeringsverktyg | web-ext CLI - Mozillas officiella kommandoradsverktyg för att bygga, linta, köra och signera .xpi-filer |
| Plattformssupport | Plattformsoberoende: Windows, macOS, Linux; även Android via Firefox for Android (Fenix) |
| Släppt | 1990s (Mozilla/Netscape XPInstall); modern WebExtension XPIs since Firefox 57 (2017) |
| Öppen standard | Ja · royaltyfri |
| Specifikation | extensionworkshop.com |