Skip to content

Commit

Permalink
Version 0.1.2; updated changelog
Browse files Browse the repository at this point in the history
  • Loading branch information
jivanpal committed Feb 5, 2021
1 parent e7a6172 commit 6893f1f
Show file tree
Hide file tree
Showing 3 changed files with 225 additions and 158 deletions.
224 changes: 224 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,229 @@
# Drat changelog

## v0.1.2 (2021-02-05)

- Renamed `src/apfs/struct/const.h` to `src/apfs/struct/jconst.h`

- Updated symbol/struct definitions in `src/apfs/struct` to align with the
latest APFS spec revision (2020-06-22). This included adding a new file
`sealed.h` with the definitions contained in the new chapter of the spec,
§16 Sealed Volumes. A detailed list of changes follows:

- §3 Objects — `object.h`

- §3.1 Object Types

- `OBJECT_TYPE_ER_RECOVERY_BLOCK`
- `OBJECT_TYPE_SNAP_META_EXT`
- `OBJECT_TYPE_INTEGRITY_META`
- `OBJECT_TYPE_FEXT_TREE`
- `OBJECT_TYPE_RESERVED_20`
- `OBJECT_TYPE_MEDIA_KEYBAG`

- §5 Container — `nx.h`

- §5.2 `nx_superblock_t`

- `nx_newest_mounted_version`
- `nx_mkb_locker`

- §6 Object Maps — `omap.h`

- §6.7 Object Map Flags

- `OMAP_VALID_FLAGS`

- §7 Volumes — `fs.h`

- §7.1 `apfs_superblock_t`

- `apfs_cloneinfo_id_epoch`
- `apfs_cloneinfo_xid`
- `apfs_snap_meta_ext_oid`
- `apfs_volume_group_id`
- `apfs_integrity_meta_oid`
- `apfs_fext_tree_oid`
- `apfs_fext_tree_type`
- `reserved_type`
- `reserved_oid`

- §7.3 Volume Flags

- `APFS_FS_RESERVED_80`
- `APFS_FS_RESERVED_100`
- `APFS_FS_FLAGS_VALID_MASK` (name corrected from erroneous `APFS_FS_FALGS_VALID_MASK`)

- §7.4 Volume Roles

- `APFS_VOL_ROLE_UPDATE`
- `APFS_VOL_ROLE_XART`
- `APFS_VOL_ROLE_HARDWARE`
- `APFS_VOL_ROLE_BACKUP`
- `APFS_VOL_ROLE_RESERVED_7`
- `APFS_VOL_ROLE_RESERVED_8` (name changed from `APFS_VOL_ROLE_RESERVED_200`)
- `APFS_VOL_ROLE_ENTERPRISE`
- `APFS_VOL_ROLE_RESERVED_10`
- `APFS_VOL_ROLE_PRELOGIN`

- §7.5 Optional Volume Feature Flags

- `APFS_FEATURE_STRICTATIME`
- `APFS_FEATURE_VOLGRP_SYSTEM_INO_SPACE`

- §7.7 Incompatible Volume Feature Flags

- `APFS_INCOMPAT_INCOMPLETE_RESTORE`
- `APFS_INCOMPAT_SEALED_VOLUME`

- §8 File-System Objects — `j.h`

- §8.1 `j_key_t`

- `SYSTEM_OBJ_ID_MARK`

- §8.3 `j_inode_val_t`

- `uncompressed_size`

- §9 File-System Constants — `jconst.h`

- §9.1 `j_obj_types`

- `APFS_TYPE_FILE_INFO`

- §9.3 `j_inode_flags`

- `INODE_FAST_PROMOTE`
- `INODE_HAS_UNCOMPRESSED_SIZE`
- `INODE_IS_PURGEABLE`
- `INODE_WANTS_TO_BE_PURGEABLE`
- `INODE_IS_SYNC_ROOT`
- `INODE_SNAPSHOT_COW_EXEMPTION`

- §9.6 Inode Numbers

- `PURGEABLE_DIR_INO_NUM`
- `UNIFIED_ID_SPACE_MARK`

- §9.7 Extended Attributes Constants

- `FIRMLINK_EA_NAME`
- `APFS_COW_EXEMPT_COUNT_NAME`

- §11 Extended Fields — `xf.h`

- §11.3 Extended-Field Types

- `INO_EXT_TYPE_PURGEABLE_FLAGS`
- `INO_EXT_TYPE_ORIG_SYNC_ROOT_ID`

- §13 Snapshot Metadata — `snap.h`

- *New datatype*: §13.6 `snap_meta_ext_obj_phys_t`
- *New datatype*: §13.7 `snap_meta_ext_t`

- §14 B-Trees — `btree.h`

- *New datatype*: §14.4 `btn_index_node_val_t`

- §14.8 B-Tree Flags

- `BTREE_HASHED`
- `BTREE_NOHEADER`

- §14.10 B-Tree Node Flags

- `BTNODE_HASHED`
- `BTNODE_NOHEADER`

- §15 Encryption — `crypto.h`

- §15.7 Protection Classes

- `PROTECTION_CLASS_M`

- §15.8 Encryption Identifiers

- `APFS_UNASSIGNED_CRYPTO_ID`

- §15.12 Keybag Tags

- `KB_TAG_WRAPPING_M_KEY`
- `KB_TAG_VOLUME_M_KEY`

- *New chapter*: §16 Sealed Volumes — `sealed.h`

- *New datatype*: §16.1 `integrity_meta_phys_t`

- §16.2 Integrity Metadata Version Constants

- `INTEGRITY_META_VERSION_INVALID`
- `INTEGRITY_META_VERSION_1`
- `INTEGRITY_META_VERSION_2`
- `INTEGRITY_META_VERSION_HIGHEST`

- §16.3 Integrity Metadata Flags

- `APFS_SEAL_BROKEN`

- §16.4 `apfs_hash_type_t`

- `APFS_HASH_INVALID`
- `APFS_HASH_SHA256`
- `APFS_HASH_SHA512_256`
- `APFS_HASH_SHA384`
- `APFS_HASH_SHA512`
- `APFS_HASH_MIN`
- `APFS_HASH_MAX`
- `APFS_HASH_DEFAULT`

- *New datatype*: §16.5 `fext_tree_key_t`

- *New datatype*: §16.6 `fext_tree_val_t`

- *New datatype*: §16.7 `j_file_info_key_t`

- `J_FILE_INFO_LBA_MASK`
- `J_FILE_INFO_TYPE_MASK`
- `J_FILE_INFO_TYPE_SHIFT`

- *New datatype*: §16.8 `j_file_info_val_t`

- §16.9 `j_obj_file_info_type`

- `APFS_FILE_INFO_DATA_HASH`

- *New datatype*: §16.10 `j_file_data_hash_val_t`

- §17 Space Manager — `spaceman.h`

- *New datatype*: §17.4 `spaceman_free_queue_entry_t`

- Updated existing functions in `src/apfs/string` to handle new symbols:

- In `btree.c`:
- `get_btn_flags_string()`
- `get_bt_info_flags_string()`

- In `fs.c`:
- `get_apfs_features_string()`
- `get_apfs_incompatible_features_string()`
- `get_apfs_fs_flags_string()`
- `get_apfs_role_string()`
- `print_apfs_superblock()`

- In `j.c`
- `get_j_inode_internal_flags()`
- `print_j_inode_val()`

- In `nx.c`:
- `get_nx_flags_string()`
- `print_nx_superblock()`

- In `object.c`:
- `get_o_type_string()`
- `get_o_subtype_string()`

## v0.1.1 (2021-02-02)

- Fixed bug in `get_o_type_string()` where the "Unknown type" output did not
Expand Down
157 changes: 0 additions & 157 deletions notes.md

This file was deleted.

2 changes: 1 addition & 1 deletion src/commands/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ int cmd_version(int argc, char** argv) {
return 1;
}

printf("Drat version 0.1.1\n");
printf("Drat version 0.1.2\n");

return 0;
}

0 comments on commit 6893f1f

Please sign in to comment.