1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
TODO
* rename volume name to volume label ?
* handle transaction identifier mismatch
* fill attribute value_data_file_extents
* complete snapshot support
* extended attribute extent support
* extent support, add to Python binding
* move libfsapfs_internal_extended_attribute_get_data_stream to libfsapfs_attributes.[ch]
* for extended attributes by name look up use native B-tree structures
* handle non-inline attribute symbolic link
* improve format support
** check for more compression methods
** Add resource fork support
** read zlib compressed resource fork data footer
** Check deflate compressed files edge case where first byte is 0x#f
** add support for solaris and bsdos device numbers
* add snapshot support
** add API function to retrieve creation time
** add API function to retrieve change time
** get volume from snapshot?
* B-tree
** Validate (expected) btree level to detect loops - added maximum recursion depth for now
* Validate checksum
** B-tree node
** Container key bag
** Volume key bag
** Reaper
** Object map
** Space manager
* Container superblock read file IO handle add block size support
* use container data block vector in read file IO handle
** Volume superblock
** Container map
** Container key bag?
* Handle file size of 0, mapped file size does not support 0 ?
* Container data handle add decryption support and use it to read container key bag?
library:
* check if data block vector allocated size matches size of file extents
* get_extent function, check inode flags and set extent is sparse flag
* change container read bootstap as advised in documentation
** read backup container superblocks
* API
** Add function to provide volume size
** Add function to provide volume date and time values
* optimization
** read inode and extended attributes at once
** cache uncompressed blocks
* clean up / restructure
** refactor libfsapfs_encryption_aes_key_unwrap to use encryption context?
Python bindings:
* add extents object?
Tools:
* fsapfsinfo tool
** add volume selection via GUID in path
** prompt user for password or recovery password when needed
** print extended attribute values
** handle \r in filename
** print hardlinks for -E option?
** "-E all" instead of using next_object_identifier walk leaf nodes
* fsapfsmount tool
** prompt user for password or recovery password when needed
** make symbolic links an absolute path which accounts for mount point
** add owner and group identifier support?
** add support for all volumes
** add volume selection support
** does fuse override file types such as socket?
** dokan add symbolic link support
Tests:
* add tests for container_key_bag
* add tests for volume_key_bag
* add tests for key_encrypted_key
20180907
* see `git log' for more recent change log
* Initial version based on libfsrefs and libfsntfs
|