Hva er XPI-filformatet?
Fil med filendelsen .xpi inneholder et dataarkiv for installasjon av tilleggsprogramvare fra Mozilla. Installasjonspakken er et ZIP-arkiv komprimert med deflate-metoden - den deler de samme PK magic bytes (50 4B 03 04) som en standard ZIP-fil. Navnet på .xpi-endelsen er en forkortelse for Cross-Platform Install - XPInstall, som var navnet på teknologien som ble brukt i den opprinnelige installasjonsprosessen.
.xpi-pakker brukes til å installere og utvide funksjonaliteten til applikasjoner som:
- Firefox,
- SeaMonkey,
- Thunderbird.
.xpi-pakkefiler kan inneholde utvidelser, temaer eller ordbøker. Filen lagrer også metadata for installasjonen. I det eldre XPInstall-formatet betydde dette en skriptfil install.js og en manifestfil install.rdf; moderne WebExtension-pakker (introdusert med Firefox 57 i 2017) bruker manifest.json sammen med JavaScript, HTML, CSS og ikonressurser. Formatet er nært beslektet med JAR-arkiver - begge er ZIP-containere med et spesifikt internt oppsett.
Signerte .xpi-filer distribuert via addons.mozilla.org inneholder en META-INF/-mappe med en kryptografisk signatur fra Mozilla. Standard Firefox-installasjoner godtar kun .xpi-filer som er digitalt signert av Mozilla. For å installere tredjepartspakker som ikke er sertifisert av Mozilla, må brukere bruke en Developer Edition av Firefox og sette alternativet xpinstall.signatures.required til false på siden about:config. Pakken kan installeres ved å dra og slippe .xpi-filen over i nettleservinduet. Innholdet i en .xpi-pakke kan vises ved å endre filendelsen til .zip og pakke den ut med et hvilket som helst arkivverktøy.
Sikkerhet og trygghet
RISIKO: MEDIUMEn XPI installerer kode som kjører inne i nettleseren din med de tillatelsene den ber om - en ondsinnet utvidelse kan lese sider, fange opp formulardata eller kapre nettlesingen. Det er nettopp derfor Mozilla krever signering: den vanlige versjonen av Firefox installerer kun tillegg som Mozilla har vurdert/signert, noe som blokkerer det meste av vanlig skadevare. Risikoen øker når du omgår signering (Developer/Nightly-utgaver, about:debugging) eller installerer en .xpi fra utsiden av AMO - gjør dette kun for tillegg du stoler på, og les de forespurte tillatelsene ved installasjon. Fordi det er en ZIP-fil, kan du inspisere manifest.json (og dens «permissions»-liste) med 7-Zip før du installerer. Uventede .xpi-filer i Nedlastinger er trygge å slette; de er kun installasjonsfiler.
Formatdetaljer
i et nøtteskallProgrammer som åpner XPI-filer
Tekniske detaljer
dyp spesifikasjon| MIME-type | application/x-xpinstall |
| Container-format | ZIP-arkiv; magic bytes 50 4B 03 04 («PK») ved offset 0, identisk med en standard lokal filheader for ZIP |
| Moderne internt manifest | manifest.json som følger WebExtension API, introdusert med Firefox 57 (Quantum) i 2017 |
| Eldre internt manifest | install.rdf (RDF-metadata) og install.js (installasjonsskript), brukt av det tidligere XPInstall-systemet |
| Kryptografisk signatur | META-INF/-mappe som inneholder signaturfiler utstedt av Mozilla; påkrevd for alle pakker distribuert via addons.mozilla.org |
| Signeringskrav | Release-versjonen av Firefox avviser usignerte .xpi-filer; for å tillate usignerte installasjoner, bruk Developer Edition og sett xpinstall.signatures.required=false i about:config |
| Støttede innholdstyper | Nettleserutvidelser, temaer, ordbøker, språkpakker og søkeutvidelser |
| Komprimering | deflate (standard ZIP-komprimering); enkelte elementer kan også lagres ukomprimert i arkivet |
| Kompatibilitet på tvers av nettlesere | WebExtension API deles med Chrome .crx og Edge-utvidelser; en manifest.json-utvidelse er i stor grad portabel mellom nettlesere |
| Relatert format | .crx (Chromium/Chrome-utvidelse) bruker et lignende ZIP-basert oppsett, men legger til en proprietær CRX-header før ZIP-dataene |
| Inspeksjonsmetode | Endre navn til .zip og åpne med en hvilken som helst arkivbehandler (7-Zip, WinRAR, etc.) for å bla i interne filer uten spesialverktøy |
| Vertsapplikasjoner | Mozilla Firefox (primær), Mozilla Thunderbird (e-posttillegg), SeaMonkey |
| Distribusjonskanal | addons.mozilla.org (AMO) - håndterer hosting, vurdering og kodesignering av alle offentlig distribuerte pakker |
| Bygge- og pakkeverktøy | web-ext CLI - Mozillas offisielle kommandolinjeverktøy for bygging, linting, kjøring og signering av .xpi-filer |
| Plattformstøtte | Plattformuavhengig: Windows, macOS, Linux; også Android via Firefox for Android (Fenix) |
| Utgitt | 1990s (Mozilla/Netscape XPInstall); modern WebExtension XPIs since Firefox 57 (2017) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | extensionworkshop.com |