blob: c1f8b3f0e195ef0d20ca56de671a0caa0e81f4bc [file] [log] [blame]
Tobias Thierer878c77b2019-08-18 15:19:45 +01001
2###############################################################################
3#
4# Android-specific MIME type <-> extension mappings
5#
Tobias Thierere25c54f2019-09-30 14:16:19 +01006# Each line below defines a mapping from one MIME type to the first of the
Tobias Thierer878c77b2019-08-18 15:19:45 +01007# listed extensions, and from listed extension back to the MIME type.
8# A mapping overrides any previous mapping _from_ that same MIME type or
9# extension (put() semantics), unless that MIME type / extension is prefixed with '?'
10# (putIfAbsent() semantics).
11#
12#
13###############################################################################
14#
15# EXAMPLES
16#
17# A line of the form:
18#
19# ?mime ext1 ?ext2 ext3
20#
21# affects the current mappings along the lines of the following pseudo code:
22#
23# mimeToExt.putIfAbsent("mime", "ext1");
24# extToMime.put("ext1", "mime");
25# extToMime.putIfAbsent("ext2", "mime");
26# extToMime.put("ext3", "mime");
27#
28# The line:
29#
30# ?text/plain txt
31#
32# leaves any earlier mapping for "text/plain" untouched, or maps that MIME type
33# to the file extension ".txt" if there is no earlier mapping. The line also
34# sets the mapping from file extension ".txt" to be the MIME type "text/plain",
35# regardless of whether a previous mapping existed.
36#
37###############################################################################
38
39
40# File extensions that Android wants to override to point to the given MIME type.
41#
42# After processing a line of the form:
43# ?<mimeType> <extension1> <extension2>
44# If <mimeType> was not already mapped to an extension then it will be
45# mapped to <extension1>.
46# <extension1> and <extension2> are mapped (or remapped) to <mimeType>.
47
48?application/epub+zip epub
Jeff Sharkey01c5b102020-01-10 16:44:23 -070049?application/lrc lrc
Tobias Thierer878c77b2019-08-18 15:19:45 +010050?application/pkix-cert cer
51?application/rss+xml rss
Jeff Sharkey3d44b102019-10-30 16:42:13 -060052?application/sdp sdp
53?application/smil+xml smil
54?application/ttml+xml ttml dfxp
Tobias Thierer878c77b2019-08-18 15:19:45 +010055?application/vnd.android.ota ota
56?application/vnd.apple.mpegurl m3u8
57?application/vnd.ms-pki.stl stl
58?application/vnd.ms-powerpoint pot
59?application/vnd.ms-wpl wpl
60?application/vnd.stardivision.impress sdp
61?application/vnd.stardivision.writer vor
62?application/vnd.youtube.yt yt
63?application/x-android-drm-fl fl
64?application/x-flac flac
65?application/x-font pcf
66?application/x-mpegurl m3u m3u8
67?application/x-pem-file pem
68?application/x-pkcs12 p12 pfx
Jeff Sharkey01c5b102020-01-10 16:44:23 -070069?application/x-subrip srt
Tobias Thierer878c77b2019-08-18 15:19:45 +010070?application/x-webarchive webarchive
71?application/x-webarchive-xml webarchivexml
72?application/x-x509-server-cert crt
73?application/x-x509-user-cert crt
74
Jeff Sharkey3d44b102019-10-30 16:42:13 -060075?audio/3gpp 3gpp 3ga
Tobias Thierer878c77b2019-08-18 15:19:45 +010076?audio/aac-adts aac
Jeff Sharkey3d44b102019-10-30 16:42:13 -060077?audio/ac3 ac3 a52
Jeff Sharkey8a137002019-11-13 10:01:13 -070078?audio/amr amr
Tobias Thierer878c77b2019-08-18 15:19:45 +010079?audio/imelody imy
80?audio/midi rtttl xmf
81?audio/mobile-xmf mxmf
Jeff Sharkey3d44b102019-10-30 16:42:13 -060082?audio/mp4 m4a m4b m4p f4a f4b f4p
Tobias Thierer878c77b2019-08-18 15:19:45 +010083?audio/mpegurl m3u
84?audio/sp-midi smf
85?audio/x-matroska mka
86?audio/x-pn-realaudio ra
87
88?image/bmp bmp
89?image/heic heic
90?image/heic-sequence heics
91?image/heif heif hif
92?image/heif-sequence heifs
93?image/ico cur
94?image/webp webp
95?image/x-adobe-dng dng
96?image/x-fuji-raf raf
97?image/x-icon ico
98?image/x-nikon-nrw nrw
99?image/x-panasonic-rw2 rw2
100?image/x-pentax-pef pef
101?image/x-samsung-srw srw
102?image/x-sony-arw arw
103
104?text/comma-separated-values csv
105?text/plain diff po
106?text/rtf rtf
107?text/text phps
108?text/xml xml
109?text/x-vcard vcf
110
Jeff Sharkey3d44b102019-10-30 16:42:13 -0600111?video/3gpp2 3gpp2 3gp2 3g2
Tobias Thierer878c77b2019-08-18 15:19:45 +0100112?video/3gpp 3gpp
113?video/avi avi
114?video/m4v m4v
Jeff Sharkey3d44b102019-10-30 16:42:13 -0600115?video/mp4 m4v f4v mp4v mpeg4
Tobias Thierer878c77b2019-08-18 15:19:45 +0100116?video/mp2p mpeg
117?video/mp2t m2ts mts
118?video/mp2ts ts
119?video/vnd.youtube.yt yt
120?video/x-webex wrf
121
122# Optional additions that should not override any previous mapping.
123
124?application/x-wifi-config ?xml
125
126# Special cases where Android has a strong opinion about mappings, so we
127# define them very last and make them override in both directions (no "?").
128#
129# Lines here are of the form:
130# <mimeType> <extension1> <extension2> ...
131#
132# After processing each line,
133# <mimeType> is mapped to <extension1>
134# <extension1>, <extension2>, ... are all mapped to <mimeType>
135# This overrides any mappings for this <mimeType> / for these extensions
136# that may have been defined earlier.
137
138application/pgp-signature pgp
139application/x-x509-ca-cert crt
Jeff Sharkey3d44b102019-10-30 16:42:13 -0600140audio/aac aac adts adt
Tobias Thierer878c77b2019-08-18 15:19:45 +0100141audio/basic snd
142audio/flac flac
143audio/midi rtx
Jeff Sharkey3d44b102019-10-30 16:42:13 -0600144audio/mpeg mp3 mp2 mp1 mpa m4a m4r
Tobias Thierer878c77b2019-08-18 15:19:45 +0100145audio/x-mpegurl m3u m3u8
146image/jpeg jpg
147image/x-ms-bmp bmp
148text/plain txt
149text/x-c++hdr hpp
150text/x-c++src cpp
151video/3gpp 3gpp
Jeff Sharkey3d44b102019-10-30 16:42:13 -0600152video/mpeg mpeg mpeg2 mpv2 mp2v m2v m2t mpeg1 mpv1 mp1v m1v
Tobias Thierer878c77b2019-08-18 15:19:45 +0100153video/quicktime mov
154video/x-matroska mkv