Tobias Thierer | 878c77b | 2019-08-18 15:19:45 +0100 | [diff] [blame] | 1 | |
| 2 | ############################################################################### |
| 3 | # |
| 4 | # Android-specific MIME type <-> extension mappings |
| 5 | # |
Tobias Thierer | e25c54f | 2019-09-30 14:16:19 +0100 | [diff] [blame] | 6 | # Each line below defines a mapping from one MIME type to the first of the |
Tobias Thierer | 878c77b | 2019-08-18 15:19:45 +0100 | [diff] [blame] | 7 | # 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 Sharkey | 01c5b10 | 2020-01-10 16:44:23 -0700 | [diff] [blame] | 49 | ?application/lrc lrc |
Tobias Thierer | 878c77b | 2019-08-18 15:19:45 +0100 | [diff] [blame] | 50 | ?application/pkix-cert cer |
| 51 | ?application/rss+xml rss |
Jeff Sharkey | 3d44b10 | 2019-10-30 16:42:13 -0600 | [diff] [blame] | 52 | ?application/sdp sdp |
| 53 | ?application/smil+xml smil |
| 54 | ?application/ttml+xml ttml dfxp |
Tobias Thierer | 878c77b | 2019-08-18 15:19:45 +0100 | [diff] [blame] | 55 | ?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 Sharkey | 01c5b10 | 2020-01-10 16:44:23 -0700 | [diff] [blame] | 69 | ?application/x-subrip srt |
Tobias Thierer | 878c77b | 2019-08-18 15:19:45 +0100 | [diff] [blame] | 70 | ?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 Sharkey | 3d44b10 | 2019-10-30 16:42:13 -0600 | [diff] [blame] | 75 | ?audio/3gpp 3gpp 3ga |
Tobias Thierer | 878c77b | 2019-08-18 15:19:45 +0100 | [diff] [blame] | 76 | ?audio/aac-adts aac |
Jeff Sharkey | 3d44b10 | 2019-10-30 16:42:13 -0600 | [diff] [blame] | 77 | ?audio/ac3 ac3 a52 |
Jeff Sharkey | 8a13700 | 2019-11-13 10:01:13 -0700 | [diff] [blame] | 78 | ?audio/amr amr |
Tobias Thierer | 878c77b | 2019-08-18 15:19:45 +0100 | [diff] [blame] | 79 | ?audio/imelody imy |
| 80 | ?audio/midi rtttl xmf |
| 81 | ?audio/mobile-xmf mxmf |
Jeff Sharkey | 3d44b10 | 2019-10-30 16:42:13 -0600 | [diff] [blame] | 82 | ?audio/mp4 m4a m4b m4p f4a f4b f4p |
Tobias Thierer | 878c77b | 2019-08-18 15:19:45 +0100 | [diff] [blame] | 83 | ?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 Sharkey | 3d44b10 | 2019-10-30 16:42:13 -0600 | [diff] [blame] | 111 | ?video/3gpp2 3gpp2 3gp2 3g2 |
Tobias Thierer | 878c77b | 2019-08-18 15:19:45 +0100 | [diff] [blame] | 112 | ?video/3gpp 3gpp |
| 113 | ?video/avi avi |
| 114 | ?video/m4v m4v |
Jeff Sharkey | 3d44b10 | 2019-10-30 16:42:13 -0600 | [diff] [blame] | 115 | ?video/mp4 m4v f4v mp4v mpeg4 |
Tobias Thierer | 878c77b | 2019-08-18 15:19:45 +0100 | [diff] [blame] | 116 | ?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 | |
| 138 | application/pgp-signature pgp |
| 139 | application/x-x509-ca-cert crt |
Jeff Sharkey | 3d44b10 | 2019-10-30 16:42:13 -0600 | [diff] [blame] | 140 | audio/aac aac adts adt |
Tobias Thierer | 878c77b | 2019-08-18 15:19:45 +0100 | [diff] [blame] | 141 | audio/basic snd |
| 142 | audio/flac flac |
| 143 | audio/midi rtx |
Jeff Sharkey | 3d44b10 | 2019-10-30 16:42:13 -0600 | [diff] [blame] | 144 | audio/mpeg mp3 mp2 mp1 mpa m4a m4r |
Tobias Thierer | 878c77b | 2019-08-18 15:19:45 +0100 | [diff] [blame] | 145 | audio/x-mpegurl m3u m3u8 |
| 146 | image/jpeg jpg |
| 147 | image/x-ms-bmp bmp |
| 148 | text/plain txt |
| 149 | text/x-c++hdr hpp |
| 150 | text/x-c++src cpp |
| 151 | video/3gpp 3gpp |
Jeff Sharkey | 3d44b10 | 2019-10-30 16:42:13 -0600 | [diff] [blame] | 152 | video/mpeg mpeg mpeg2 mpv2 mp2v m2v m2t mpeg1 mpv1 mp1v m1v |
Tobias Thierer | 878c77b | 2019-08-18 15:19:45 +0100 | [diff] [blame] | 153 | video/quicktime mov |
| 154 | video/x-matroska mkv |