Commit graph

874 commits

Author SHA1 Message Date
Alex Barney
afeb3d391b Add SdCard, SdmmcControl, and SpeedEmulation shims 2022-05-07 14:59:45 -07:00
Alex Barney
2f0a2eabf5 Add MMC shim functions 2022-05-07 00:45:44 -07:00
Alex Barney
934e9af9a4 Implement most of the remaining game card FS shim 2022-05-05 00:33:18 -07:00
Alex Barney
81051907a4 Make GameCardHandle an alias for uint 2022-05-04 14:58:10 -07:00
Alex Barney
902e3e1424 Implement DeviceOperator 2022-05-04 13:09:06 -07:00
Alex Barney
612359f0a4 Implement more FS shim functions
- BaseFileSystem
- ErrorInfo
- FsStackUsage
- ImageDirectory
- Logo
- MemoryReportInfoShim
2022-05-02 18:08:14 -07:00
Alex Barney
e70e23492f Add DeviceSaveData mounting functions 2022-04-30 23:58:19 -07:00
Alex Barney
c2e4b80bac Ensure all FS shim classes are updated for 14.0.0 2022-04-30 13:28:53 -07:00
Alex Barney
366aa51912 Add or update some save data FS shim classes for 14.0.0
- SaveData
- SaveDataForDebug
- SaveDataManagement
2022-04-30 01:13:10 -07:00
Alex Barney
0875f5950c Update SaveDataFileSystemServiceImpl for 14.0.0 2022-04-28 19:16:24 -07:00
Alex Barney
7b44441ff2 Update SaveDataFileSystemService for 14.0.0
- Creating save data file systems now uses a new SaveDataCreationInfo2 struct.
- Ensure all implemented functions in the class are accurate to 14.0.0
2022-04-28 15:13:46 -07:00
Alex Barney
3725c21928 Add SaveDataCreationInfo2 2022-04-24 22:33:31 -07:00
Alex Barney
e24ee1b956 Update IResultConvertFile and use the new save cache manager 2022-04-24 18:37:34 -07:00
Alex Barney
7dfcebfc28 Update DirectorySaveDataFileSystem to implement ISaveDataFileSystem 2022-04-23 12:38:10 -07:00
Alex Barney
cac796ac19 Add the new save data cache classes from 14.0.0 2022-04-21 19:29:03 -07:00
Alex Barney
99ad308b84 Add SwitchStorage and RegionSwitchStorage 2022-04-19 22:31:34 -07:00
Alex Barney
f8b9c3557e Add IntegrityRomFsStorage 2022-04-19 12:42:51 -07:00
Alex Barney
b5ae21207b Mark some classes as being updated for 14.1.0 2022-04-18 19:41:10 -07:00
Alex Barney
28a4deb93c Add FatFileSystemCreator 2022-04-18 19:34:51 -07:00
Alex Barney
6c9e6e5203 Add HierarchicalIntegrityVerificationStorage 2022-04-18 18:01:38 -07:00
Alex Barney
b54f5d17fa Add IntegrityVerificationStorage 2022-04-17 21:25:26 -07:00
Alex Barney
2241a7ced3 Update AesCtrCounterExtendedStorage for 14.0.0 2022-04-16 23:37:10 -07:00
Alex Barney
398a142b27 Update some Nca classes for 14.0.0 2022-04-16 20:55:46 -07:00
Alex Barney
fc3fb188c7 Update IStorage range check functions for 14.0.0 2022-04-14 14:18:24 -07:00
Alex Barney
7dd137da6a Add os::Semaphore 2022-04-11 15:03:27 -07:00
Alex Barney
e46c1f0231 Add multiple wait APIs
This adds the base work that will be needed for waiting on multiple objects. Some tweaks will still probably be necessary to make it work nicely with the .NET APIs.
2022-04-11 14:22:00 -07:00
Alex Barney
4e5e9a4627 Add memory fence functions 2022-04-11 13:54:44 -07:00
Alex Barney
3a05e779f9 Add ReadOnlyBlockCacheStorage 2022-03-14 13:34:52 -07:00
Alex Barney
2c154ec3ba Implement AlignmentMatchingStorage classes 2022-03-12 15:02:54 -07:00
Alex Barney
eaff8059ba Skeleton BlockCacheBufferedStorage 2022-03-10 18:39:59 -07:00
Alex Barney
c765ab999e Rename StorageType to StorageLayoutType 2022-03-10 14:08:20 -07:00
Alex Barney
d28c38a9d0 Add MemoryResourceBufferHoldStorage 2022-03-08 17:20:41 -07:00
Alex Barney
3e64f9ef03 Skeleton NcaFileSystemDriver 2022-03-07 14:08:05 -07:00
Alex Barney
00819731ae Add AesCtrCounterExtendedStorage 2022-03-04 21:01:35 -07:00
Alex Barney
e8d54159e3 Add AesCtrStorage 2022-03-04 17:35:03 -07:00
Alex Barney
c9352fcb5a Make AES crypto return the number of bytes written 2022-03-03 16:16:08 -07:00
Alex Barney
b9e2e0863b Add NcaReader and some related NCA classes 2022-03-02 11:13:37 -07:00
Alex Barney
cd2b8edfa8 Skeleton AesXtsStorage 2022-03-02 11:09:17 -07:00
Alex Barney
800d14f40b Add more assertion options 2022-03-02 11:08:30 -07:00
Alex Barney
c62de98f63 hactoolnet: Tweak NCA processing
- Ignore the relevant --section#(dir) option if the equivalent --exefs(dir) or --romfs(dir) option is set
- Display a warning instead of completely erroring when trying to extract a section that doesn't exist
- Fix an off-by-one error that resulted in section 3 not being extracted. In practice this hasn't mattered much up to this point because no official NCAs contain a section 3.
2022-04-08 18:18:00 -07:00
Alex Barney
98b6d7a346 Fix Nca exception message when a section doesn't exist 2022-04-08 18:10:51 -07:00
Alex Barney
fe6f4422dd Support reading the initial data/key area of xci files 2022-04-05 18:23:46 -07:00
Alex Barney
1271a7e62d Add key sources for 14.0.0 2022-04-02 00:54:49 -07:00
Alex Barney
7a51c5f002 Update version to 0.16.1 2022-04-01 19:41:03 -07:00
Alex Barney
7d807c1cd0 Fix FileSystemAccessor log strings
The code used to generate the strings turned "\n" into a literal "\n" instead of a new line
2022-04-01 19:12:51 -07:00
Alex Barney
9cad4b287b PartitionFileSystemCore: Fix opening directories 2022-04-01 18:29:39 -07:00
Alex Barney
0a96e8d623 Fix EnsureApplicationSaveData failing if the temp save already exists 2022-04-01 17:32:38 -07:00
Alex Barney
4e23465982 Misc code accuracy fixes 2022-02-24 16:26:23 -07:00
Alex Barney
a2c64797a9 Add U8Span properties for all nacp string fields 2022-02-20 22:58:01 -07:00
Alex Barney
d6bfecb63f Add nacp U8Span properties for convenience
Adds U8Span properties for the fields in ApplicationControlProperty that contain strings. Makes it easier to know what these fields contain.
2022-02-19 19:48:03 -07:00
Alex Barney
19dc9ebe9f Fix checking the FS access control content owner info size 2022-02-09 14:09:06 -07:00
Alex Barney
266ece82f2 Update version to 0.16.0 2022-02-05 16:13:31 -07:00
Alex Barney
e140419323 Handle more possible dir save extra data states 2022-02-05 16:12:29 -07:00
Alex Barney
b27bc7e665 Support reading compressed NCAs 2022-02-03 18:40:47 -07:00
Alex Barney
1597f05b27 Actually assign _entryCount field in BucketTree 2022-02-03 18:38:27 -07:00
Alex Barney
49759d3d10 Add GameCardService 2022-02-01 00:11:02 -07:00
Alex Barney
2fb3d88261 Ensure SdCardService and MmcService are updated for 13.1.0 2022-01-29 19:41:19 -07:00
Alex Barney
91e1e65aff Add IHash256Generator interfaces
- FsSystem.IHash256Generator
- FsSystem.IHash256GeneratorFactory
- FsSystem.IHash256GeneratorFactorySelector
2022-01-27 15:06:03 -07:00
Alex Barney
e969554639 Ensure more FS classes are updated for 13.1.0
- FsSrv.Impl.IResultConvertDirectory
- FsSrv.Impl.IResultConvertFile
- FsSrv.Impl.IResultConvertFileSystem
- FsSrv.Impl.SaveDataExtraDataAccessorCacheManager
- FsSrv.Impl.SaveDataExtraDataResultConvertAccessor
- FsSrv.Impl.SaveDataResultConvert
- FsSrv.Impl.SaveDataResultConvertDirectory
- FsSrv.Impl.SaveDataResultConvertFile
- FsSrv.Impl.SaveDataResultConvertFileSystem
- FsSrv.Impl.StorageInterfaceAdapter
- FsSystem.ISaveDataCommitTimeStampGetter
- FsSystem.ISaveDataExtraDataAccessor
- FsSystem.ISaveDataFileSystemCacheManager
- FsSystem.SaveDataFileSystemCacheManager
- FsSystem.SaveDataFileSystemCacheRegisterBase
2022-01-27 15:05:58 -07:00
Alex Barney
32ffda1d3f Ensure more FS classes are updated for 13.1.0
- Add some PooledBuffer global functions

- FsSrv.SaveDataInfoFilter
- FsSrv.SaveDataInfoFilterReader
- FsSrv.StatusReportService
- FsSrv.StatusReportServiceImpl
- FsSrv.TimeService
- FsSrv.TimeServiceImpl
- FsSystem.DefaultAsynchronousAccessSplitter
- FsSystem.IAsynchronousAccessSplitter
- FsSystem.StorageFile
2022-01-26 20:06:59 -07:00
Alex Barney
2c2fed445f Ensure more FS classes are updated for 13.1.0
- FsSystem.ForwardingDirectory
- FsSystem.ForwardingFile
- FsSystem.ForwardingFileSystem
- FsSystem.StorageLayoutTypeSetDirectory
- FsSystem.StorageLayoutTypeSetFile
- FsSystem.StorageLayoutTypeSetFileSystem
- FsSystem.StorageLayoutTypeSetStorage
- Fs.MemoryStorage
- Fs.ReadOnlyFile
- Fs.ReadOnlyFileSystem
2022-01-25 17:02:44 -07:00
Alex Barney
a7ffae3a14 Add UnionStorage 2022-01-24 15:34:14 -07:00
Alex Barney
0ba0a9ad9c Fixup ApplicationSaveDataManagement and update to 13.1.0 2022-01-24 15:02:32 -07:00
Alex Barney
dea3b3a8b0 Add some save data transfer client classes
- Fs.ISaveDataChunkIterator
- Fs.ISaveDataChunkExporter
- Fs.ISaveDataChunkImporter
- Fs.ISaveDataDivisionExporter
- Fs.ISaveDataDivisionImporter
- Fs.SaveDataTransferManagerVersion2
- Fs.SaveDataTransferProhibiterForCloudBackUp
- Fs.Impl.SaveDataChunkIterator
- Fs.Impl.SaveDataChunkExporter
- Fs.Impl.SaveDataChunkImporter
- Fs.Impl.SaveDataExporterVersion2
- Fs.Impl.SaveDataImporterVersion2
- Fs.Shim.SaveDataTransferVersion2Shim
2022-01-24 13:39:39 -07:00
Alex Barney
ebc6e1b23d Update FileSystemProxyImpl to 13.1.0 2022-01-19 15:28:14 -07:00
Alex Barney
ed6a34d857 Add DebugConfigurationService 2022-01-19 13:17:10 -07:00
Alex Barney
37b8249a8b Ensure more FS classes are updated for 13.1.0
- DeviceEventSimulationStorage
- MultiCommitManager
- DirectorySaveDataFileSystem
- SubdirectoryFileSystem
- FsSystem.Utility
2022-01-19 12:24:28 -07:00
Alex Barney
795bcf0960 Add/skeleton SignedSystemPartition/SdmmcControl 2022-01-19 01:36:23 -07:00
Alex Barney
c389f471d4 Ensure all complete shim classes are updated for 13.1.0
- ProgramIndexMapInfo
- ProgramRegistry
- SystemSaveData
2022-01-18 21:38:06 -07:00
Alex Barney
74ed435dee Ensure all of Shim.SaveDataManagement is updated for 13.1.0 2022-01-18 20:45:48 -07:00
Alex Barney
dc2a1cfaef Ensure more shim classes are updated for 13.1.0
- PosixTime
- RightsId
- SaveData
2022-01-18 18:04:06 -07:00
Alex Barney
0b9af17dfd Ensure shim classes are updated to 13.1.0
- Fs.Impl.DirectoryServiceObjectAdapter
- Fs.Impl.FileServiceObjectAdapter
- Fs.Impl.FileSystemServiceObjectAdapter
- Fs.Impl.StorageServiceObjectAdapter

- Fs.Shim.Application
- Fs.Shim.BcatSaveData
- Fs.Shim.Bis
- Fs.Shim.Code
- Fs.Shim.Content
- Fs.Shim.ContentStorage
- Fs.Shim.CustomStorage
- Fs.Shim.LoaderApi
2022-01-16 18:43:12 -07:00
Alex Barney
330bc2b483 Ensure Host shim is updated for 13.1.0 2022-01-16 01:04:24 -07:00
Alex Barney
f315cee9af Remove a workaround for CS8350 by using fixed arrays 2022-01-15 13:50:15 -07:00
Alex Barney
7f1035374d Ensure SaveDataSharedFileStorage classes are updated for 13.1.0
- SaveDataOpenTypeSetFileStorage
- SaveDataSharedFileStorage
- SaveDataFileStorageHolder
2022-01-15 13:28:24 -07:00
Alex Barney
d116903892 Add some "unchecked" blocks
Try to identify places where integer overflow is expected and mark them as "unchecked"
2022-01-15 12:39:06 -07:00
Alex Barney
085511660d Fixup save data indexer classes and update them for 13.1.0
- SaveDataIndexer
- SaveDataIndexerLite
- SaveDataIndexerLiteInfoReader
- SaveDataIndexerManager
- SaveDataIndexerAccessor
2022-01-15 03:02:21 -07:00
Alex Barney
ecb85269eb Fixup program-registry-related classes
- IProgramRegistry
- ProgramRegistryImpl
- ProgramIndexRegistryService
- ProgramRegistryServiceImpl
2022-01-13 18:44:58 -07:00
Alex Barney
814ae34642 Fixup ProgramIndexMapInfoManager 2022-01-12 16:29:42 -07:00
Alex Barney
9803634284 Fixup AccessControl and update for 13.1.0 2022-01-12 15:42:42 -07:00
Alex Barney
8ba258034b Fixup ProgramRegistryManager and ProgramInfo 2022-01-12 01:36:54 -07:00
Alex Barney
04a2e51cfa Ensure LocationResolverSet is updated for 13.1.0 2022-01-12 01:32:47 -07:00
Alex Barney
6cae86eb9c Disable another warning on fixed array structs 2022-01-06 11:12:07 -07:00
Alex Barney
d412c15387 Add Utf8StringUtil and update MountUtility for 13.1.0 2022-01-05 14:05:10 -07:00
Alex Barney
123fc0655d Update Fs.Path for 13.1.0 2022-01-05 12:04:09 -07:00
Alex Barney
1f8277202f Update DirectoryPathParser, PathUtility and WindowsPath for 13.1.0 2022-01-05 00:21:45 -07:00
Alex Barney
61b29e57a3 Update PathFormatter and PathNormalizer for 13.1.0 2022-01-04 22:17:35 -07:00
Alex Barney
e1fd31c1ff Update layout of Loader and Kvdb structs 2022-01-02 22:58:11 -07:00
Alex Barney
b0e679d000 Update struct layout of Ns structs 2022-01-02 16:52:57 -07:00
Alex Barney
b7e8ea8249 Update struct layout of most remaining Fs structs 2022-01-02 14:14:37 -07:00
Alex Barney
9a358a4e30 Remove unnecessary DebuggerDisplayAttributes 2021-12-30 20:49:36 -07:00
Alex Barney
ec38f80066 Update layout of Boot and some Fs structs
Boot:
- EncryptedKeyBlob
- KeyBlob
- Package1MarikoOemHeader
- Package1MetaData
- Package1Stage1Footer
- Package1Pk11Header
- Package2Header
- Package2Meta

Fs:
- ApplicationInfo
- CodeVerificationData
- DirectoryEntry
- EncryptionSeed
- FileSystemProxyErrorInfo
- StorageErrorInfo
- FileTimeStamp
- FileTimeStampRaw
- ProgramIndexMapInfo
- QueryRangeInfo
- RightsId
2021-12-30 17:12:29 -07:00
Alex Barney
57750b896d Update layout of Arp, Bcat, and some Fs structs
Stop using LayoutKind.Explicit and the Size parameter of StructLayout
2021-12-29 15:47:20 -07:00
Alex Barney
5380902376 Rename some save enum/struct fields 2021-12-29 10:13:42 -07:00
Alex Barney
5013e7d2ec Use fixed array structs instead of Data* structs 2021-12-29 10:06:02 -07:00
Alex Barney
53e5029ef4 Remove StructLayout and fix naming in KeySet 2021-12-28 22:53:09 -07:00
Alex Barney
7c3b8df564 Remove unnecessary StructLayoutAttributes in FixedArrays 2021-12-28 22:47:37 -07:00
Alex Barney
f0df8c2d9b Remove Do* methods from IStorage 2021-12-28 17:00:37 -07:00
Alex Barney
f1d704b8f8 Mark the versions of IFileSystem interfaces 2021-12-27 18:12:43 -07:00
Alex Barney
3940ca9d76 Ensure UserFileSystemForDebug/Private are updated to 13.1.0 2021-12-25 01:26:52 -07:00
Alex Barney
ac378020dc Ensure UserDirectory and UserFileSystem are updated to 13.1.0 2021-12-24 16:43:34 -07:00
Alex Barney
5670f2fd48 Add summary docs to ReadOnlySpan<byte> strings 2021-12-24 16:25:06 -07:00
Alex Barney
52d502a793 Update UserFile functions for 13.1.0 2021-12-24 13:29:35 -07:00
Alex Barney
221e2fa608 Add Fs.Range 2021-12-23 15:56:50 -07:00
Alex Barney
03ba6b01aa Update Registrar from 12.1.0 to 13.1.0 2021-12-22 18:59:01 -07:00
Alex Barney
cf7062788f Fixup some mounted-FS-related classes and update them to 13.1.0
- FileSystemAccessor
- FileAccessor
- DirectoryAccessor
- MountTable
- UserMountTable
- FileDataCacheAccessor
- IFileDataCache
- GlobalFileDataCacheAccessorReadableScopedPointer
- FileDataCache shim functions
- PathBasedFileDataCache shim functions
2021-12-22 16:43:04 -07:00
Alex Barney
375b5b9220 Update ConcatenationFileSystem from 12.1.0 to 13.1.0 2021-12-21 19:47:42 -07:00
Alex Barney
feef0ff63f Fixup ConcatenationFileSystem
- Experiment with using Catch/Handle/Rethrow for logging Results
- Try adding a new Ret function for logging results
- Misc tweaks
2021-12-21 17:45:27 -07:00
Alex Barney
c9a2056844 Update BufferedStorage for 13.1.0 2021-12-21 12:34:42 -07:00
Alex Barney
d2d73827ba Fixup BufferedStorage 2021-12-21 12:26:42 -07:00
Alex Barney
f1105da2cc Update FileSystemBufferManager for 13.1.0 2021-12-21 12:45:09 -07:00
Alex Barney
a17605b292 Fixup FileSystemBufferManager 2021-12-20 15:12:34 -07:00
Alex Barney
2a658e2733 Update FileSystemInterfaceAdapter for 13.1.0 2021-12-19 14:36:32 -07:00
Alex Barney
c4783f4589 Update FileStorage for 13.1.0 2021-12-19 14:07:20 -07:00
Alex Barney
634ab59742 Add BlockCacheManager and skeleton CompressedStorage 2021-12-15 01:17:56 -07:00
Alex Barney
527d81a3b2 Add default constructors to some mutex types 2021-12-14 23:03:11 -07:00
Alex Barney
e0b482f44b Add a description of the LibHac.Tools namespace 2022-01-07 00:33:47 -07:00
Alex Barney
14fcdc9d67 Move Npdm, LayeredFileSystem 2022-01-07 00:33:47 -07:00
Alex Barney
a289059ecf Move InMemoryFileSystem, PathParser, PathTools 2022-01-07 00:33:47 -07:00
Alex Barney
d0a1d98885 Move PartitionFileSystemBuilder, ConcatenationStorage 2022-01-07 00:33:47 -07:00
Alex Barney
c5f904710a Move IntegrityVerificationStorage 2022-01-07 00:33:47 -07:00
Alex Barney
27bf4a1003 Move DirectoryEntryEx 2022-01-07 00:33:47 -07:00
Alex Barney
00a5b07da0 Remove use of PathTools constants 2022-01-07 00:33:47 -07:00
Alex Barney
865f271fe7 Move StreamFile, StreamStorage, StorageExtensions, FileReader 2022-01-07 00:33:47 -07:00
Alex Barney
c6a09d1dfa Move StorageStream, NullFile, NullStorage 2022-01-07 00:33:47 -07:00
Alex Barney
de2d6746fe Move FileSystemExtensions, Messages 2022-01-07 00:33:47 -07:00
Alex Barney
5acff2acab Move CachedStorage, SectorStorage and derivatives 2022-01-07 00:33:47 -07:00
Alex Barney
ae35a1b916 Fix or suppress some ReSharper warnings 2022-01-07 00:33:47 -07:00
Alex Barney
0846b86249 Move AesXtsFileSystem 2022-01-07 00:33:47 -07:00
Alex Barney
f73d206901 Move ResultNameResolver 2022-01-07 00:33:47 -07:00
Alex Barney
8e5f400048 Move CryptoOld 2022-01-07 00:33:47 -07:00
Alex Barney
2bd1c05ed5 Move some files to LibHac.Common 2022-01-07 00:33:47 -07:00
Alex Barney
50dab0c7c9 Move InternalsVisibleToAttribute to the .csproj 2022-01-07 00:33:47 -07:00
Alex Barney
bba1030143 Move Lz4 2022-01-07 00:33:47 -07:00
Alex Barney
56b0695d0a Move Calibration 2022-01-07 00:33:47 -07:00
Alex Barney
34faf2b468 Move RomFs 2022-01-07 00:33:47 -07:00
Alex Barney
aa153980be Move NcaUtils 2022-01-07 00:33:47 -07:00
Alex Barney
7681429c97 Move NxFileStream, Delta 2022-01-07 00:33:47 -07:00
Alex Barney
3c6d082ad4 Make sure modifiers are all in a consistent order 2022-01-07 00:33:47 -07:00
Alex Barney
e3d55f6793 Move Keys 2022-01-07 00:33:47 -07:00
Alex Barney
2d86d63fc6 Move FsSystem/Save 2022-01-07 00:33:47 -07:00
Alex Barney
fef8e16a85 Move FileSystemClientUtils 2022-01-07 00:33:47 -07:00
Alex Barney
a88b3058e9 Move Ticket, SwitchFs, Cnmt, Nro, Xci again 2022-01-07 00:33:47 -07:00
Alex Barney
da930dfa81 Move Xci 2022-01-07 00:33:47 -07:00
Alex Barney
3e17692a25 Update version to v0.15.0 and .NET 6.0 2021-12-18 17:53:51 -07:00
Alex Barney
592343212f Add new key sources for key generation 13 2021-12-18 13:49:43 -07:00
Alex Barney
2f8e68e35f Fix LocalFileSystem on Linux 2021-12-18 13:24:10 -07:00
Alex Barney
8ccd4e11c0 Include the pdb file in the .nupkg
Works around jbevain/cecil#610

Using InlineIL.Fody messes up the pdb checksum which makes nuget.org consider the .snupkg to be invalid. Workaround this by including the pdb in the main .nupkg
2021-12-16 18:28:43 -07:00
Alex Barney
9451553fde AesXtsFile: Don't take the input file until the end of the constructor
An exception in the constructor would make it so the file wasn't disposed correctly
2021-12-14 01:43:29 -07:00
Alex Barney
2540f071ea LocalFileSystem: Allow deleting read-only files and directories 2021-12-14 01:43:29 -07:00