uniquecamel
These warnings won't prevent normal usage of the image and there's lots of EXIF tags that're "required" by spec, which don't have any real effect whether the image can be read or not.
Toggling off the default setting, 'Remove EXIF data after capture' under 'More settings' in the Camera app and executing exiftool -validate -warning -error -a IMG-exif.jpg
will result in:
Validate : 13 Warnings (4 minor)
Warning : Non-standard format (int32u) for ExifIFD 0x9208 LightSource
Warning : Entries in IFD0 are out of order
Warning : Non-standard format (int32u) for IFD0 0x0112 Orientation
Warning : Tag ID 0x0112 Orientation out of sequence in IFD0
Warning : [minor] Unknown value for IFD0:Orientation
Warning : Missing required JPEG ExifIFD tag 0x9000 ExifVersion
Warning : Missing required JPEG ExifIFD tag 0x9101 ComponentsConfiguration
Warning : Missing required JPEG ExifIFD tag 0xa001 ColorSpace
Warning : Missing required JPEG ExifIFD tag 0xa002 ExifImageWidth
Warning : Missing required JPEG ExifIFD tag 0xa003 ExifImageHeight
Warning : [minor] IFD0 tag 0x0100 ImageWidth is not allowed in JPEG
Warning : [minor] IFD0 tag 0x0101 ImageHeight is not allowed in JPEG
Warning : [minor] Missing required JPEG IFD0 tag 0x0213 YCbCrPositioning
You can then do exiftool -ext jpg -all= --icc_profile:all -tagsfromfile @ -colorspacetags IMG-exif.jpg
, followed by
$ exiftool -validate -warning -error -a IMG-exif.jpg
> Validate : OK
Note: this will create a backup of the original file, IMG-exif.jpg_original
You can see the difference by running:
exiftool -ee3 -U -G3:1 -api requestall=3 -api largefilesupport -time:all -gps:all -thumbnail3 -json -struct -n -v2 IMG-exif.jpg_original
or for a less detailed break down of everything, run:
exiftool -ee3 -U -G3:1 -api requestall=3 -api largefilesupport IMG-exif.jpg_original
and compare it by running those two commands by replacing the IMG-exif.jpg_original
with IMG-exif.jpg
.
Or comparing via exiftool -u IMG-exif.jpg -diff IMG-exif.jpg_original
and this can be used below afterwards as well to compare, exiftool -u IMG-exif-removeall.jpg -diff IMG-exif.jpg_original
You can completely remove all the metadata with (backup the modified jpeg):
cp IMG-exif.jpg IMG-exif-removeall.jpg && exiftool -all= IMG-exif-removeall.jpg
which will show different results when running:
exiftool -ee3 -U -G3:1 -api requestall=3 -api largefilesupport -time:all -gps:all -thumbnail3 -json -struct -n -v2 IMG-exif-removeall.jpg
or:
exiftool -ee3 -U -G3:1 -api requestall=3 -api largefilesupport IMG-exif-removeall.jpg
The end result will be the same
$ exiftool -validate -warning -error -a IMG-exif-removeall.jpg
> Validate : OK
The point is none of that validating stuff matters when it comes to viewing the image for the general masses.
You can experiment by re-enabling the setting back to it's default placement in the Camera app and the only result that will be returned when validating it:
Validate : 1 Warning
Warning : Missing required JPEG IFD0 tag 0x0213 YCbCrPositioning
See https://grapheneos.org/usage#camera
By default, EXIF metadata is stripped for captured images and only includes the orientation. Stripping metadata for videos is planned but not supported yet. Orientation metadata isn't stripped since it's fully visible from how the image is displayed so it doesn't count as hidden metadata and is needed for proper display. You can toggle off stripping EXIF metadata in the More Settings menu opened from the settings dialog. Disabling metadata stripping will leave the timestamp, phone model, exposure configuration and other metadata. Location tagging is disabled by default and won't be stripped if you enable it.
EDIT: Additionally, I just came across this, https://exiftool.org/forum/index.php?topic=17124.msg91799#msg91799 and the Admin user of the exiftool forum answers your concerns as well.