Updated Photos version 5 database (markdown)

Rhet Turnbull
2021-04-24 12:24:48 -07:00
parent 1f9678be3d
commit 00becff6d3

@@ -118,7 +118,7 @@ Photos modifies `ZMODIFICATIONDATE` even for photos that have not been edited.
On export, Photos does not set the EXIF modify date.
### import method
### Import method
In Photos 5, referenced photos appear to be identified by `ZGENERICASSET.ZSAVEDASSETTYPE`:
- 3: imported by copying to Photos library
@@ -127,6 +127,34 @@ In Photos 5, referenced photos appear to be identified by `ZGENERICASSET.ZSAVEDA
- 10: referenced file (not copied to Photos library)
### Burst Photos
Burst photos are identified by a burstUUID and a burstPickType. (In Photos 5+ these are called "avalanche" instead of burst.
The "pick type" seems to be a bit flag indicating status of images in the burst set:
In Photos <=4, these values are in `RKVersion.burstUuid` and `RKVersion.burstPickType`
In Photos >= 5, these values are in `ZGENERICASSET.ZAVALANCHEUUID` and `ZGENERICASSET.ZAVALANCHEPICKTYPE` (ZASSET table in Photos 6)
The values appear to be:
BURST_NOT_SELECTED = 0b10 # 2: burst image is not selected
BURST_SELECTED = 0b1000 # 8: burst image is selected
BURST_KEY = 0b10000 # 16: burst image is the key photo (top of burst stack)
BURST_DEFAULT_PICK = 0b100 # 4: burst image is the one Photos picked to be key image before any selections made
BURST_UNKNOWN = 0b100000 # 32: this is almost always set with BURST_DEFAULT_PICK and never if BURST_DEFAULT_PICK is not set. I think this has something to do with what algorithm Photos used to pick the default image
Thus, an unselected burst image has a value of 2.
A selected image could be
8: BURST_SELECTED
12: BURST_SELECTED & BURST_DEFAULT_PICK
44: BURST_SELECTED & BURST_DEFAULT_PICK & BURST_UNKNOWN
A key image could be:
16: BURST_KEY
20: BURST_KEY & BURST_DEFAULT_PICK
52: BURST_KEY & BURST_DEFAULT_PICK & BURST_UNKNOWN
**TODO** Document the following
* [ ] Joining assets