What Is Exif MakerNote Metadata and How Do You Read or Edit It?
Updated
MakerNote is a block of vendor-specific metadata that camera manufacturers embed inside the standard Exif structure. It is not part of the official Exif specification, so its layout, tag numbers, and meanings differ between brands (and often between camera models). You can read it with metadata tools such as Exiv2, which exposes MakerNote tags for many camera families, but editing it is only reliable where a tool has a documented mapping for that specific make and model — otherwise you risk corrupting the block or having it silently dropped.
Where MakerNote sits in the metadata stack
Standard Exif defines a fixed set of tags that any compliant reader understands: exposure time, ISO, aperture, focal length, orientation, timestamps, and so on. Camera vendors wanted to record far more than the standard allowed — lens IDs, autofocus points, face-detection data, picture styles, sensor temperature, shutter count, and proprietary shooting modes. Rather than extend the standard, they added a single private tag (Exif tag 0x927C, MakerNote) whose value is an opaque binary blob.
That design has two consequences:
- The blob is self-contained. A reader that doesn't understand a given vendor's format can still skip over it safely, because the outer Exif structure tells it how long the block is.
- The contents are not portable. Two cameras from different brands both have a MakerNote, but the bytes inside are unrelated. Even within one brand, the tag set can change between models or firmware versions.
This is why MakerNote is sometimes described as "Exif's escape hatch": it is standard Exif on the outside and proprietary data on the inside.
Why MakerNotes are hard to read and edit
The Exif specification does not require vendors to document their MakerNote layout. In practice, support comes from reverse engineering: comparing known camera outputs, correlating MakerNote bytes with settings changed on the camera, and cross-checking against vendor software.
The practical limits that follow:
| Aspect | What it means for you |
|---|---|
| Undocumented layout | A tag number that means "lens type" on one model may mean something else, or nothing, on another. |
| Per-model variation | Support is usually described per camera family, not per brand. A tool may decode Canon MakerNotes well and another brand only partially. |
| Byte-order and offset quirks | Some vendors store internal offsets relative to the MakerNote start, others to the file start; getting this wrong produces garbage values. |
| Write safety | Reading an unknown MakerNote is usually harmless. Writing to one without a known mapping can produce a block the camera or other software rejects. |
Because of this, "read support" and "write support" are separate questions. A library may display hundreds of MakerNote tags for a camera yet only safely rewrite a subset.
Reading MakerNote with Exiv2
Exiv2 is a cross-platform C++ library and command-line utility that provides read and write access to Exif, IPTC, and XMP metadata and the ICC profile in images. Its command-line tool exiv2 is the quickest way to inspect MakerNote contents.
A typical inspection flow:
- List all metadata, including MakerNote. Run
exiv2 -pa image.jpg(print all) to see every tag the tool can decode, including MakerNote entries. Tags are shown with their family, tag name, and value. - Filter to MakerNote only. Use
exiv2 -g MakerNote -pa image.jpgto narrow output to MakerNote-related tags, which is useful when a file has hundreds of entries. - Check what the tool actually recognizes. If a camera model is supported, you will see named tags with readable values. If it is not, you may see the raw
Exif.MakerNotetag as an undecoded byte block, or only a partial set of tags. - Compare across files. Run the same command on a photo from a different camera to see how tag names and coverage change — this makes the per-model nature of MakerNote support concrete.
The expected result of step 1 is a long list; the expected result of step 2 is a short, camera-specific list. If step 2 returns almost nothing while step 1 shows a large MakerNote blob, that camera's format is not decoded by your build.
Preserving MakerNote when editing or converting
The most common real-world problem is not reading MakerNote — it is losing it. MakerNotes break or disappear when:
- An image is re-saved by software that only understands standard Exif and drops unknown tags.
- A conversion pipeline rebuilds the Exif block from scratch instead of copying it.
- Metadata is stripped for privacy or size, taking the MakerNote with it.
- The file is edited in a way that changes internal offsets the MakerNote depends on.
To keep MakerNote intact:
- Copy rather than rebuild. Prefer tools that preserve the original Exif block and modify only the tags you target, instead of exporting to a new file and re-importing metadata.
- Verify after every operation. Re-run
exiv2 -g MakerNote -paon the output and compare the tag count and values against the input. A drop in tag count is the signal that something was lost. - Test on a copy first. Because write support varies by camera, confirm that a round-trip (read, modify, write, re-read) leaves the MakerNote readable before applying it to originals.
- Decide deliberately whether you need it. If you are publishing a photo and don't need lens IDs, AF points, or shutter count, stripping MakerNote is a legitimate choice — just make it a choice, not an accident.
Choosing an approach
- If you only need to view camera-specific settings: a metadata tool with broad MakerNote decoding (Exiv2 among them) is enough; no writing required.
- If you need to edit standard fields (date, copyright, keywords) while keeping MakerNote: use a tool that edits in place and preserves unknown tags, then verify.
- If you need to edit MakerNote values themselves: only do so for camera models your tool documents as writable, and always keep an untouched original.
- If you need guaranteed cross-tool behavior: treat MakerNote as read-only and rely on standard Exif, IPTC, and XMP for anything you must control.