1 2############################################################################### 3# 4# Android-specific MIME type <-> extension mappings 5# 6# Each line below defines a mapping from one MIME type to the first of the 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 49?application/lrc lrc 50?application/pkix-cert cer 51?application/rss+xml rss 52?application/sdp sdp 53?application/smil+xml smil 54?application/ttml+xml ttml dfxp 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-mobipocket-ebook prc mobi 67?application/x-mpegurl m3u m3u8 68?application/x-pem-file pem 69?application/x-pkcs12 p12 pfx 70?application/x-subrip srt 71?application/x-webarchive webarchive 72?application/x-webarchive-xml webarchivexml 73?application/x-x509-server-cert crt 74?application/x-x509-user-cert crt 75 76?audio/3gpp 3ga 3gpp 77?audio/aac-adts aac 78?audio/ac3 ac3 a52 79?audio/amr amr 80?audio/imelody imy 81?audio/midi rtttl xmf 82?audio/mobile-xmf mxmf 83?audio/mp4 m4a m4b m4p f4a f4b f4p 84?audio/mpegurl m3u 85?audio/sp-midi smf 86?audio/x-matroska mka 87?audio/x-pn-realaudio ra 88?audio/x-mpeg mp3 89?audio/mp3 mp3 90 91?image/bmp bmp 92?image/gif gif 93?image/heic heic 94?image/heic-sequence heics 95?image/heif heif hif 96?image/heif-sequence heifs 97?image/avif avif 98?image/ico cur 99?image/webp webp 100?image/x-adobe-dng dng 101?image/x-fuji-raf raf 102?image/x-icon ico 103?image/x-nikon-nrw nrw 104?image/x-panasonic-rw2 rw2 105?image/x-pentax-pef pef 106?image/x-samsung-srw srw 107?image/x-sony-arw arw 108 109?text/comma-separated-values csv 110?text/plain diff po 111?text/rtf rtf 112?text/text phps 113?text/xml xml 114?text/x-vcard vcf 115 116?video/3gpp2 3gpp2 3gp2 3g2 117?video/3gpp 3gpp 118?video/avi avi 119?video/m4v m4v 120?video/mp4 m4v f4v mp4v mpeg4 121?video/mp2p mpeg 122?video/mp2t m2ts mts 123?video/mp2ts ts 124?video/vnd.youtube.yt yt 125?video/x-webex wrf 126 127# Optional additions that should not override any previous mapping. 128 129?application/x-wifi-config ?xml 130 131# Special cases where Android has a strong opinion about mappings, so we 132# define them very last and make them override in both directions (no "?"). 133# 134# Lines here are of the form: 135# <mimeType> <extension1> <extension2> ... 136# 137# After processing each line, 138# <mimeType> is mapped to <extension1> 139# <extension1>, <extension2>, ... are all mapped to <mimeType> 140# This overrides any mappings for this <mimeType> / for these extensions 141# that may have been defined earlier. 142 143application/pgp-signature pgp 144application/x-x509-ca-cert crt der 145audio/aac aac adts adt 146audio/basic snd 147audio/flac flac 148audio/midi rtx 149audio/mpeg mp3 mp2 mp1 mpa m4a m4r 150audio/x-mpegurl m3u m3u8 151image/jpeg jpg 152image/x-ms-bmp bmp 153text/plain txt 154text/x-c++hdr hpp 155text/x-c++src cpp 156video/3gpp 3gpp 157video/mpeg mpeg mpeg2 mpv2 mp2v m2v m2t mpeg1 mpv1 mp1v m1v 158video/quicktime mov 159video/x-matroska mkv 160