Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Canon IXUS/ELPH/IXY - Firmware version advice #37

Open
ImpulseAdventure opened this issue May 1, 2017 · 1 comment
Open

Canon IXUS/ELPH/IXY - Firmware version advice #37

ImpulseAdventure opened this issue May 1, 2017 · 1 comment

Comments

@ImpulseAdventure
Copy link
Owner

ImpulseAdventure commented May 1, 2017

I would have thought that fingerprinting may benefit from considering the firmware version of the camera.
For my Canon IXUS 220HS** this information is not presented

**aka "ELPH 3000" [usa] ... aka "IXY DIGITAL 410F" [japan]

EXIFTool by Phil Harvey : http://owl.phy.queensu.ca/~phil/exiftool/
...can be run as: exiftool IMG_1234.jpg -MakerNotes:FirmwareRevision
...which will return something like: Firmware Revision: 1.01 rev 4.00
...which means Canon Firmware v1.01d {rev1.00->a, rev2.00->b, ...}
As EXIFTool is written in PERL, this should be easy to implement
...or alternatively, do what the CHDK (Canon Hacker's Dev Kit) did with : http://chdk.wikia.com/wiki/CameraVersion
...and simply shell out to exifinfo

I have submitted a 'signature' for a single "fine" (resolution) image ...I can provide more data if requested

[2012/01/13] First created at https://sourceforge.net/p/jpegsnoop/feature-requests/44/ by Blue Chip

@ImpulseAdventure
Copy link
Owner Author

[2012/01/13] From Blue Chip:
First off I correct myself with "firmware REVISION" not "version" as I erroneously typed previously.

MakerNotes for (all?) Canon Cameras: http://owl.phy.queensu.ca/~phil/exiftool/makernote_types.html
-> http://owl.phy.queensu.ca/~phil/exiftool/TagNames/Canon.html
..suggests it is Note 0x1E
A quick check on a random photo shows that note 1E does contain the the firmware revision, but the value is not a simple uint32 (little-endian)
...Instead what I see is: [1E], [00, 04, 00, 01, 00, 00, 00], [00, 04, 01, 01]
...what the 7 bytes are after the 1E is anybodies guess :/
...Maybe it's : [1E, 00], [04, 00], [01, 00, 00, 00], [00, 04, 01, 01]
...tag 001E; 0004 bytes; ; 4-byte revision number (1.01 rev 4.00)

Anyway I hope this helps you in some way :/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant