What is the QMG file format?
A .qmg file is a Qmage raster image developed by Quramsoft and integrated into Samsung Android devices beginning around late 2014 (Android 4.4.4 KitKat). The format supports both still images and multi-frame animation, making it suitable for Samsung One UI theme assets such as wallpapers, icons, and UI elements including startup, shutdown, and charging sequences.
The Qmage codec is compiled into Samsung's customized fork of the Android Skia graphics library. This deep OS integration means any Samsung app that processes images - including the MMS message handler - can trigger .qmg decoding without user interaction. In May 2020, Google Project Zero disclosed CVE-2020-8899, a critical zero-click remote code execution vulnerability triggered by sending a malicious .qmg file via MMS. Samsung issued a patch in the May 2020 Android security update.
The format originated on Samsung's bada OS in 2010. Four sub-versions exist: QMv1, QG1.0, QG1.1, and QG2.0 (present in Android 10 Skia builds). All share a 12-byte header beginning with the magic bytes 51 47 01 ("QG" followed by a version byte). Color support includes 24-bit RGB and 32-bit RGBA. Outside Samsung devices, no mainstream image viewer supports .qmg natively; files can sometimes be manually converted to .PNG or .JPG using specialized tools, but broad third-party support is absent.
Security & safety
RISK: MEDIUMCVE-2020-8899: critical zero-click RCE (CVSS 9.8) in Samsung Qmage codec via MMS, disclosed May 2020, patched in Samsung May 2020 security update. Risk is now patched on updated devices. QMG files from untrusted sources should not be placed on unpatched/older Samsung devices. The vulnerability allowed code execution before the user viewed the malicious MMS.
Format details
in a nutshellPrograms that open QMG files
Technical details
deep spec| Magic bytes | 51 47 01 (ASCII: "QG" + version byte) at offset 0 |
| Header size | 12 bytes (magic + version + width + height + flags) |
| Color depth | 24-bit RGB and 32-bit RGBA (alpha channel supported) |
| Compression | Proprietary lossy (JPEG-like) and lossless (PNG-like) modes |
| Animation support | Yes - multiple frames for startup, shutdown, and charging sequences |
| Format sub-versions | QMv1, QG1.0, QG1.1, QG2.0 |
| Byte order | Little-endian |
| Typical file size | 2 KB - 500 KB (still image); up to ~2 MB (animation) |
| Typical dimensions | 64×64 px to 1080×1920 px (theme UI assets) |
| Container | Proprietary Quramsoft container; no standard wrapper |
| Platform | Samsung Android (One UI / TouchWiz); legacy Samsung bada OS |
| Security note | CVE-2020-8899 - zero-click RCE via MMS, patched in May 2020 Android security update |
| MIME type | image/qmg |
| Released | 2010 (bada OS); integrated into all Samsung Android phones from ~late 2014 (Android 4.4.4) |
| Latest version | QG2.0 (codec present in Android 10 Skia builds); QMv1, QG1.0, QG1.1 also documented |
| Specification | googleprojectzero.blogspot.com |
QMG conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about QMG files.