mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Corrected MMC/SD fields.
This commit is contained in:
@@ -82,8 +82,6 @@ namespace DiscImageChef.Core.Devices.Dumping
|
|||||||
BlockMedia = new BlockMediaType[] { new BlockMediaType() }
|
BlockMedia = new BlockMediaType[] { new BlockMediaType() }
|
||||||
};
|
};
|
||||||
|
|
||||||
sidecar.BlockMedia[0].SecureDigital = new SecureDigitalType();
|
|
||||||
|
|
||||||
uint blocksToRead = 128;
|
uint blocksToRead = 128;
|
||||||
uint blockSize = 512;
|
uint blockSize = 512;
|
||||||
ulong blocks = 0;
|
ulong blocks = 0;
|
||||||
@@ -134,6 +132,8 @@ namespace DiscImageChef.Core.Devices.Dumping
|
|||||||
sense = dev.ReadOCR(out ocr, out response, timeout, out duration);
|
sense = dev.ReadOCR(out ocr, out response, timeout, out duration);
|
||||||
if(sense)
|
if(sense)
|
||||||
ocr = null;
|
ocr = null;
|
||||||
|
|
||||||
|
sidecar.BlockMedia[0].MultiMediaCard = new MultiMediaCardType();
|
||||||
}
|
}
|
||||||
else if(dev.Type == DeviceType.SecureDigital)
|
else if(dev.Type == DeviceType.SecureDigital)
|
||||||
{
|
{
|
||||||
@@ -158,68 +158,82 @@ namespace DiscImageChef.Core.Devices.Dumping
|
|||||||
sense = dev.ReadSCR(out scr, out response, timeout, out duration);
|
sense = dev.ReadSCR(out scr, out response, timeout, out duration);
|
||||||
if(sense)
|
if(sense)
|
||||||
scr = null;
|
scr = null;
|
||||||
|
|
||||||
|
sidecar.BlockMedia[0].SecureDigital = new SecureDigitalType();
|
||||||
}
|
}
|
||||||
|
|
||||||
sense = dev.ReadCID(out cid, out response, timeout, out duration);
|
sense = dev.ReadCID(out cid, out response, timeout, out duration);
|
||||||
if(sense)
|
if(sense)
|
||||||
cid = null;
|
cid = null;
|
||||||
|
|
||||||
// TODO: MultiMediaCard should be different
|
DumpType cidDump = null;
|
||||||
|
DumpType csdDump = null;
|
||||||
|
DumpType ocrDump = null;
|
||||||
|
|
||||||
if(cid != null)
|
if(cid != null)
|
||||||
{
|
{
|
||||||
sidecar.BlockMedia[0].SecureDigital.CID = new DumpType
|
cidDump = new DumpType
|
||||||
{
|
{
|
||||||
Image = outputPrefix + ".cid.bin",
|
Image = outputPrefix + ".cid.bin",
|
||||||
Size = cid.Length,
|
Size = cid.Length,
|
||||||
Checksums = Checksum.GetChecksums(cid).ToArray()
|
Checksums = Checksum.GetChecksums(cid).ToArray()
|
||||||
};
|
};
|
||||||
DataFile.WriteTo("MMC/SecureDigital Dump", sidecar.BlockMedia[0].SecureDigital.CID.Image, cid);
|
DataFile.WriteTo("MMC/SecureDigital Dump", cidDump.Image, cid);
|
||||||
};
|
};
|
||||||
if(csd != null)
|
if(csd != null)
|
||||||
{
|
{
|
||||||
sidecar.BlockMedia[0].SecureDigital.CSD = new DumpType
|
csdDump = new DumpType
|
||||||
{
|
{
|
||||||
Image = outputPrefix + ".csd.bin",
|
Image = outputPrefix + ".csd.bin",
|
||||||
Size = csd.Length,
|
Size = csd.Length,
|
||||||
Checksums = Checksum.GetChecksums(csd).ToArray()
|
Checksums = Checksum.GetChecksums(csd).ToArray()
|
||||||
};
|
};
|
||||||
DataFile.WriteTo("MMC/SecureDigital Dump", sidecar.BlockMedia[0].SecureDigital.CSD.Image, csd);
|
DataFile.WriteTo("MMC/SecureDigital Dump", csdDump.Image, csd);
|
||||||
};
|
};
|
||||||
if(ecsd != null)
|
if(ecsd != null)
|
||||||
{
|
{
|
||||||
sidecar.BlockMedia[0].SecureDigital.ExtendedCSD = new DumpType
|
sidecar.BlockMedia[0].MultiMediaCard.ExtendedCSD = new DumpType
|
||||||
{
|
{
|
||||||
Image = outputPrefix + ".ecsd.bin",
|
Image = outputPrefix + ".ecsd.bin",
|
||||||
Size = ecsd.Length,
|
Size = ecsd.Length,
|
||||||
Checksums = Checksum.GetChecksums(ecsd).ToArray()
|
Checksums = Checksum.GetChecksums(ecsd).ToArray()
|
||||||
};
|
};
|
||||||
DataFile.WriteTo("MMC/SecureDigital Dump", sidecar.BlockMedia[0].SecureDigital.ExtendedCSD.Image, ecsd);
|
DataFile.WriteTo("MMC/SecureDigital Dump", sidecar.BlockMedia[0].MultiMediaCard.ExtendedCSD.Image, ecsd);
|
||||||
};
|
};
|
||||||
if(ocr != null)
|
if(ocr != null)
|
||||||
{
|
{
|
||||||
// TODO: Add to metadata.xml
|
ocrDump = new DumpType
|
||||||
/*sidecar.BlockMedia[0].SecureDigital.OCR = new DumpType
|
|
||||||
{
|
{
|
||||||
Image = outputPrefix + ".ocr.bin",
|
Image = outputPrefix + ".ocr.bin",
|
||||||
Size = ocr.Length,
|
Size = ocr.Length,
|
||||||
Checksums = Checksum.GetChecksums(ocr).ToArray()
|
Checksums = Checksum.GetChecksums(ocr).ToArray()
|
||||||
};
|
};
|
||||||
DataFile.WriteTo("MMC/SecureDigital Dump", sidecar.BlockMedia[0].SecureDigital.OCR.Image, ocr);*/
|
DataFile.WriteTo("MMC/SecureDigital Dump", ocrDump.Image, ocr);
|
||||||
DataFile.WriteTo("MMC/SecureDigital Dump", outputPrefix + ".ocr.bin", ocr);
|
|
||||||
};
|
};
|
||||||
if(scr != null)
|
if(scr != null)
|
||||||
{
|
{
|
||||||
// TODO: Add to metadata.xml
|
sidecar.BlockMedia[0].SecureDigital.SCR = new DumpType
|
||||||
/*sidecar.BlockMedia[0].SecureDigital.SCR = new DumpType
|
|
||||||
{
|
{
|
||||||
Image = outputPrefix + ".scr.bin",
|
Image = outputPrefix + ".scr.bin",
|
||||||
Size = scr.Length,
|
Size = scr.Length,
|
||||||
Checksums = Checksum.GetChecksums(scr).ToArray()
|
Checksums = Checksum.GetChecksums(scr).ToArray()
|
||||||
};
|
};
|
||||||
DataFile.WriteTo("MMC/SecureDigital Dump", sidecar.BlockMedia[0].SecureDigital.SCR.Image, scr);*/
|
DataFile.WriteTo("MMC/SecureDigital Dump", sidecar.BlockMedia[0].SecureDigital.SCR.Image, scr);
|
||||||
DataFile.WriteTo("MMC/SecureDigital Dump", outputPrefix + ".scr.bin", scr);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if(dev.Type == DeviceType.MMC)
|
||||||
|
{
|
||||||
|
sidecar.BlockMedia[0].MultiMediaCard.CID = cidDump;
|
||||||
|
sidecar.BlockMedia[0].MultiMediaCard.CSD = csdDump;
|
||||||
|
sidecar.BlockMedia[0].MultiMediaCard.OCR = ocrDump;
|
||||||
|
}
|
||||||
|
else if(dev.Type == DeviceType.SecureDigital)
|
||||||
|
{
|
||||||
|
sidecar.BlockMedia[0].SecureDigital.CID = cidDump;
|
||||||
|
sidecar.BlockMedia[0].SecureDigital.CSD = csdDump;
|
||||||
|
sidecar.BlockMedia[0].SecureDigital.OCR = ocrDump;
|
||||||
|
}
|
||||||
|
|
||||||
DateTime start;
|
DateTime start;
|
||||||
DateTime end;
|
DateTime end;
|
||||||
double totalDuration = 0;
|
double totalDuration = 0;
|
||||||
|
|||||||
@@ -175,13 +175,58 @@ namespace DiscImageChef.Core
|
|||||||
Size = image.ReadDiskTag(MediaTagType.SD_CSD).Length
|
Size = image.ReadDiskTag(MediaTagType.SD_CSD).Length
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
case MediaTagType.SD_ExtendedCSD:
|
case MediaTagType.SD_SCR:
|
||||||
if(sidecar.BlockMedia[0].SecureDigital == null)
|
if(sidecar.BlockMedia[0].SecureDigital == null)
|
||||||
sidecar.BlockMedia[0].SecureDigital = new SecureDigitalType();
|
sidecar.BlockMedia[0].SecureDigital = new SecureDigitalType();
|
||||||
sidecar.BlockMedia[0].SecureDigital.ExtendedCSD = new DumpType
|
sidecar.BlockMedia[0].SecureDigital.SCR = new DumpType
|
||||||
{
|
{
|
||||||
Checksums = Checksum.GetChecksums(image.ReadDiskTag(MediaTagType.SD_ExtendedCSD)).ToArray(),
|
Checksums = Checksum.GetChecksums(image.ReadDiskTag(MediaTagType.SD_SCR)).ToArray(),
|
||||||
Size = image.ReadDiskTag(MediaTagType.SD_ExtendedCSD).Length
|
Size = image.ReadDiskTag(MediaTagType.SD_SCR).Length
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
case MediaTagType.SD_OCR:
|
||||||
|
if(sidecar.BlockMedia[0].SecureDigital == null)
|
||||||
|
sidecar.BlockMedia[0].SecureDigital = new SecureDigitalType();
|
||||||
|
sidecar.BlockMedia[0].SecureDigital.OCR = new DumpType
|
||||||
|
{
|
||||||
|
Checksums = Checksum.GetChecksums(image.ReadDiskTag(MediaTagType.SD_OCR)).ToArray(),
|
||||||
|
Size = image.ReadDiskTag(MediaTagType.SD_OCR).Length
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
case MediaTagType.MMC_CID:
|
||||||
|
if(sidecar.BlockMedia[0].MultiMediaCard == null)
|
||||||
|
sidecar.BlockMedia[0].MultiMediaCard = new MultiMediaCardType();
|
||||||
|
sidecar.BlockMedia[0].MultiMediaCard.CID = new DumpType
|
||||||
|
{
|
||||||
|
Checksums = Checksum.GetChecksums(image.ReadDiskTag(MediaTagType.SD_CID)).ToArray(),
|
||||||
|
Size = image.ReadDiskTag(MediaTagType.SD_CID).Length
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
case MediaTagType.MMC_CSD:
|
||||||
|
if(sidecar.BlockMedia[0].MultiMediaCard == null)
|
||||||
|
sidecar.BlockMedia[0].MultiMediaCard = new MultiMediaCardType();
|
||||||
|
sidecar.BlockMedia[0].MultiMediaCard.CSD = new DumpType
|
||||||
|
{
|
||||||
|
Checksums = Checksum.GetChecksums(image.ReadDiskTag(MediaTagType.SD_CSD)).ToArray(),
|
||||||
|
Size = image.ReadDiskTag(MediaTagType.SD_CSD).Length
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
case MediaTagType.MMC_OCR:
|
||||||
|
if(sidecar.BlockMedia[0].MultiMediaCard == null)
|
||||||
|
sidecar.BlockMedia[0].MultiMediaCard = new MultiMediaCardType();
|
||||||
|
sidecar.BlockMedia[0].MultiMediaCard.OCR = new DumpType
|
||||||
|
{
|
||||||
|
Checksums = Checksum.GetChecksums(image.ReadDiskTag(MediaTagType.SD_OCR)).ToArray(),
|
||||||
|
Size = image.ReadDiskTag(MediaTagType.SD_OCR).Length
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
case MediaTagType.MMC_ExtendedCSD:
|
||||||
|
if(sidecar.BlockMedia[0].MultiMediaCard == null)
|
||||||
|
sidecar.BlockMedia[0].MultiMediaCard = new MultiMediaCardType();
|
||||||
|
sidecar.BlockMedia[0].MultiMediaCard.ExtendedCSD = new DumpType
|
||||||
|
{
|
||||||
|
Checksums = Checksum.GetChecksums(image.ReadDiskTag(MediaTagType.MMC_ExtendedCSD)).ToArray(),
|
||||||
|
Size = image.ReadDiskTag(MediaTagType.MMC_ExtendedCSD).Length
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -676,12 +676,22 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
ATAPI_IDENTIFY,
|
ATAPI_IDENTIFY,
|
||||||
/// <summary>PCMCIA/CardBus Card Information Structure</summary>
|
/// <summary>PCMCIA/CardBus Card Information Structure</summary>
|
||||||
PCMCIA_CIS,
|
PCMCIA_CIS,
|
||||||
/// <summary>SecureDigital / MMC CID</summary>
|
/// <summary>SecureDigital CID</summary>
|
||||||
SD_CID,
|
SD_CID,
|
||||||
/// <summary>SecureDigital / MMC CSD</summary>
|
/// <summary>SecureDigital CSD</summary>
|
||||||
SD_CSD,
|
SD_CSD,
|
||||||
/// <summary>SecureDigital Extended CSD</summary>
|
/// <summary>SecureDigital SCR</summary>
|
||||||
SD_ExtendedCSD,
|
SD_SCR,
|
||||||
|
/// <summary>SecureDigital OCR</summary>
|
||||||
|
SD_OCR,
|
||||||
|
/// <summary>MultiMediaCard CID</summary>
|
||||||
|
MMC_CID,
|
||||||
|
/// <summary>MultiMediaCard CSD</summary>
|
||||||
|
MMC_CSD,
|
||||||
|
/// <summary>MultiMediaCard OCR</summary>
|
||||||
|
MMC_OCR,
|
||||||
|
/// <summary>MultiMediaCard Extended CSD</summary>
|
||||||
|
MMC_ExtendedCSD,
|
||||||
/// <summary>Xbox Security Sector</summary>
|
/// <summary>Xbox Security Sector</summary>
|
||||||
Xbox_SecuritySector
|
Xbox_SecuritySector
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user