Hi,
I have made some changes to 7-zip in order to support UDF 2.50.
The most interesting part is the support for a metadata partition, which resides inside another partition. A metadata partition is indicated by a partition map of type 2. Whenever we encounter such mapping, we dynamically add another partition to the partitions array in order to represent that metadata partition correctly. Then, the partition reference to it works as it should (rather than incorrectly reference the containing partition as before).
I generated some simple test images using CDBurnerXP and successfully handled them using my modified version of 7-zip.
I was even able to open the UDF 2.60 test image, but as far as I know, it doesn't exhibit any unique UDF 2.60 features.
I attach my patches, together with my test files.
I'm absolutely not UDF nor 7-zip expert, but I hope this is indeed useful.
Thank you for this wonderful project, keep up the good work!
Regards,
Rom
What specifcation document describes these things?
Thanks for taking the time in going over this!
See here: http://www.osta.org/specs/pdf/udf260.pdf
Section 2.2.10, Metadata Partition Map.
Offset 40 is Metadata File Location.
Section 2.2.13, Metadata Partition.
Everything being accessed in the metadata partition should be treated as an offset into the metadata file and its ADs.
Again, I'm not an expert. I embarked on this endeavor as an attempt to be able to handle some sample files I encountered. I may be inaccurate or even wrong. In fact, when reading the docs now, I see that Partition Map of type 2 actually divides into 3 types - Virtual Partition Map, Sparable Partition Map and Metadata Partition Map. They can be differentiated by the Partition Type Identifier field (offset 4). It probably would have been wise to verify that we are indeed dealing with a metadata partition by checking this field, even without supporting the other types.
Regards,
Rom
Hi again @ipavlov, I have updated the patches so I upload here the new ones. Here are the main changes compared to the previous patches:
I moved a little bit of code around so the total diff size has unfortunately increased. However, I think that the final result is preferable. Let me know if you have any questions.
Regards,
Rom
I've changed my code to support such files.
But that new code is not directly from your patches, but it's similar.
So please wait next version of 7-Zip for additional checks and tests.
Thanks!