############################################################################### # # Android-specific MIME type <-> extension mappings # # Each line below defines a mapping from one MIME type to the first of the # listed extensions, and from listed extension back to the MIME type. # A mapping overrides any previous mapping _from_ that same MIME type or # extension (put() semantics), unless that MIME type / extension is prefixed with '?' # (putIfAbsent() semantics). # # ############################################################################### # # EXAMPLES # # A line of the form: # # ?mime ext1 ?ext2 ext3 # # affects the current mappings along the lines of the following pseudo code: # # mimeToExt.putIfAbsent("mime", "ext1"); # extToMime.put("ext1", "mime"); # extToMime.putIfAbsent("ext2", "mime"); # extToMime.put("ext3", "mime"); # # The line: # # ?text/plain txt # # leaves any earlier mapping for "text/plain" untouched, or maps that MIME type # to the file extension ".txt" if there is no earlier mapping. The line also # sets the mapping from file extension ".txt" to be the MIME type "text/plain", # regardless of whether a previous mapping existed. # ############################################################################### # File extensions that Android wants to override to point to the given MIME type. # # After processing a line of the form: # ? # If was not already mapped to an extension then it will be # mapped to . # and are mapped (or remapped) to . ?application/epub+zip epub ?application/lrc lrc ?application/pkix-cert cer ?application/rss+xml rss ?application/sdp sdp ?application/smil+xml smil ?application/ttml+xml ttml dfxp ?application/vnd.android.haptics.vibration+xml ahv ?application/vnd.android.ota ota ?application/vnd.apple.mpegurl m3u8 ?application/vnd.apple.pkpass pkpass ?application/vnd.apple.pkpasses pkpasses ?application/vnd.ms-pki.stl stl ?application/vnd.ms-powerpoint pot ?application/vnd.ms-wpl wpl ?application/vnd.stardivision.impress sdp ?application/vnd.stardivision.writer vor ?application/vnd.youtube.yt yt ?application/x-android-drm-fl fl ?application/x-flac flac ?application/x-font pcf ?application/x-mobipocket-ebook prc mobi ?application/x-mpegurl m3u m3u8 ?application/x-pem-file pem ?application/x-pkcs12 p12 pfx ?application/x-subrip srt ?application/x-webarchive webarchive ?application/x-webarchive-xml webarchivexml ?application/x-x509-server-cert crt ?application/x-x509-user-cert crt ?audio/3gpp 3ga 3gpp ?audio/aac-adts aac ?audio/ac3 ac3 a52 ?audio/amr amr ?audio/x-gsm gsm ?audio/imelody imy ?audio/midi rtttl xmf ?audio/mobile-xmf mxmf ?audio/mp4 m4a m4b m4p f4a f4b f4p ?audio/mpegurl m3u ?audio/sp-midi smf ?audio/x-matroska mka ?audio/x-pn-realaudio ra ?audio/x-mpeg mp3 ?audio/mp3 mp3 ?image/bmp bmp ?image/gif gif ?image/heic heic ?image/heic-sequence heics ?image/heif heif hif ?image/heif-sequence heifs ?image/avif avif ?image/ico cur ?image/webp webp ?image/x-adobe-dng dng ?image/x-fuji-raf raf ?image/x-icon ico ?image/x-jg art ?image/x-nikon-nrw nrw ?image/x-panasonic-rw2 rw2 ?image/x-pentax-pef pef ?image/x-samsung-srw srw ?image/x-sony-arw arw ?text/comma-separated-values csv ?text/plain diff po ?text/rtf rtf ?text/text phps ?text/xml xml ?text/x-vcard vcf ?video/3gpp2 3gpp2 3gp2 3g2 ?video/3gpp 3gpp 3gp ?video/avi avi ?video/m4v m4v ?video/mp4 m4v f4v mp4v mpeg4 ?video/mp2p mpeg ?video/mp2t m2ts mts ?video/mp2ts ts ?video/vnd.youtube.yt yt ?video/x-webex wrf # Optional additions that should not override any previous mapping. ?application/x-wifi-config ?xml # Special cases where Android has a strong opinion about mappings, so we # define them very last and make them override in both directions (no "?"). # # Lines here are of the form: # ... # # After processing each line, # is mapped to # , , ... are all mapped to # This overrides any mappings for this / for these extensions # that may have been defined earlier. application/pgp-signature pgp application/x-x509-ca-cert crt der audio/aac aac adts adt audio/basic snd audio/flac flac audio/midi rtx audio/mpeg mp3 mp2 mp1 mpa m4a m4r audio/x-mpegurl m3u m3u8 image/jpeg jpg image/x-ms-bmp bmp image/x-photoshop psd text/plain txt text/x-c++hdr hpp text/x-c++src cpp video/3gpp 3gpp video/mpeg mpeg mpeg2 mpv2 mp2v m2v m2t mpeg1 mpv1 mp1v m1v video/quicktime mov video/x-matroska mkv