Commit graph

660 commits

Author SHA1 Message Date
Alex Barney
33b414a15c Remove old BucketTree 2020-06-25 20:50:54 -07:00
Alex Barney
d3abdeacc4 Use the new BucketTree in Aes128CtrExStorage 2020-06-25 19:03:51 -07:00
Alex Barney
33af34cefc Rewrite IndirectStorage 2020-06-25 15:26:55 -07:00
Alex Barney
c2247e583f Address compiler warnings 2020-06-19 22:01:22 -07:00
Alex Barney
4b4b354a7e Use IStorage for the bucket tree builder instead of Spans 2020-06-19 22:01:22 -07:00
Alex Barney
9589f681a6 Add a bucket tree builder 2020-06-19 22:01:22 -07:00
Alex Barney
0c06d9e0b3 Implement most of Nintendo's bucket tree code 2020-06-19 22:01:22 -07:00
Alex Barney
9ec00eed3b
Merge pull request #146 from Thealexbarney/fs-classes
Change the file system accessor interfaces to abstract classes
2020-06-14 20:19:56 -07:00
Alex Barney
395fabd171 Make IStorage an abstract class 2020-06-13 00:37:21 -07:00
Alex Barney
49d42c5d1f Fix some checks being ignored in savedata classes
- Return an error when an allocation table seek fails
- Fix a copy/paste bug to properly error when resizing an AllocationTableStorage with not enough free space
2020-06-10 16:27:43 -07:00
Alex Barney
106c36492b Move IFileSystem etc. into fsa namespace 2020-06-09 22:55:59 -07:00
Alex Barney
ef1481b04c Replace old fsa classes with new ones 2020-06-07 15:23:51 -07:00
Alex Barney
ba1bf2f1c8 Add XML docs 2020-06-07 00:05:33 -07:00
Alex Barney
7c9584a6af Add new IFileSystem and IDirectory 2020-06-06 22:48:20 -07:00
Alex Barney
dd54249125 Rename FileBase "Impl" methods 2020-06-06 15:20:02 -07:00
Alex Barney
e1ff89060c Add new IFile 2020-06-06 15:18:50 -07:00
Alex Barney
064da36453 Rename old IFile option enums 2020-06-06 14:18:03 -07:00
Alex Barney
8c61820e46 Increment version to 0.11.3 and apply "var" code style 2020-06-05 22:59:00 -07:00
Alex Barney
5dd1ed2687 hactoolnet: Allow listing an XCI's program RomFS files 2020-06-05 22:32:16 -07:00
Alex Barney
13648b4cec
Merge pull request #140 from Thealexbarney/build-ver-fix
Fix a logic error in the build script loader and update MyGet publishing
2020-06-04 11:27:26 -07:00
Alex Barney
3de2a4b90b Update MyGet package publishing 2020-06-04 11:17:30 -07:00
Alex Barney
dfb2560707 Fix ini1 reading and fix a blz decompression bug 2020-06-04 01:09:27 -07:00
Alex Barney
a59dc611c2 Don't timeout when ensuring a local FS entry is deleted 2020-06-02 23:32:50 -07:00
Xpl0itR
2171f2ae21 Update Calibration 2020-06-02 21:15:45 -07:00
Alex Barney
99f6a0054b Version 0.11.2 2020-05-12 19:23:05 -07:00
Alex Barney
8d5e24d061 Ensure csv column counts are consistent 2020-05-12 19:02:48 -07:00
Alex Barney
cb8b088487
Misc additions and warning fixes (#134)
* Run codegen and fix DeliveryCacheFileMetaEntry layout

* Use KipReader instead of Kip

* Ensure feature parity between U8String structs

* Don't use the obsolete Nacp class

* Add some null checks

* Address ReSharper warnings

* The Result structs should be readonly
2020-05-12 17:06:55 -07:00
Alex Barney
44e4c7a311
Add some fssystem utility functions and use them in DirectorySaveDataFileSystem (#133)
* Accurately implement DirectorySaveDataFileSystem

* DirectorySaveDataFileSystem updates from FS 10.0
2020-05-12 13:17:06 -07:00
Alex Barney
0188c4579c Update version to 0.11.1 2020-04-30 14:21:34 -07:00
Alex Barney
32405fee5f Add EnumerateDeliveryCacheDirectory 2020-04-30 14:08:31 -07:00
Alex Barney
1974adb33e Don't use in-place decompression for NSOs
Move back to using in-place decompression in the future when the decompress function has been fixed
2020-04-28 23:03:33 -07:00
Alex Barney
fdf11b2621
Merge pull request #129 from Thealexbarney/bcat-storage
Implement BCAT delivery cache access

- Add BCAT delivery cache reading services
- Add methods to `U8StringBuilder` for writing formatted values
- Add a `HorizonClient` class which mimics nnsdk from Horizon
- Add a simple service manager that tracks registered objects
2020-04-28 22:54:58 -07:00
Alex Barney
be29ad714f Add the option to initialize Horizon with a FileSystemServer 2020-04-24 11:35:04 -07:00
Alex Barney
e80be498e5 Add a simple service manager and HorizonClient class
Modifies bdat to use the HorizonClient and adds an ArpClient. The arp server still needs to be provided.
2020-04-23 17:49:15 -07:00
Alex Barney
9b1ced7d3b Small tweaks to U8StringBuilder 2020-04-22 13:47:01 -07:00
Alex Barney
f3452bb314 BCAT fixes. Tweak how U8StringBuilder is used 2020-04-11 22:18:43 -07:00
Alex Barney
6e4372ce58 Implement DeliveryCacheDirectoryService 2020-04-10 11:31:46 -07:00
Alex Barney
ef36568a8d Implement DeliveryCacheFileService and supporting code 2020-04-10 10:54:37 -07:00
Alex Barney
939c495db6 Add U8StringBuilder format options 2020-04-10 10:49:44 -07:00
makigumo
6473a0cc0d NsoHeader.cs: fix _reserved6C field offset 2020-04-09 21:52:44 -07:00
Alex Barney
da78e7e8ce Add BCAT storage skeleton 2020-04-07 00:22:12 -07:00
Alex Barney
5018bbad6a hactoolnet: Use FileSystemClient instead of Horizon 2020-04-06 22:17:04 -07:00
Alex Barney
12775895eb Add non-system BCAT mount shim 2020-04-04 14:19:36 -07:00
Alex Barney
7bcb09b714 Add BIS shim functions with tests 2020-04-04 14:16:17 -07:00
Alex Barney
405bbeff9e Add some FspPathPrintf functionality and change a constant name 2020-04-02 21:54:26 -07:00
Alex Barney
e5c851e7a3 Add KipReader class and add kip decompression to hactoolnet 2020-03-29 22:12:00 -07:00
Alex Barney
f59c7c6a84 Add NsoReader 2020-03-26 22:52:49 -07:00
Alex Barney
9cc60e22ec Add loader and libhac results 2020-03-26 22:45:59 -07:00
Alex Barney
b8b2c26457 Tweak duplicate result detection 2020-03-23 16:04:49 -07:00
Alex Barney
0bb3446a8b Make path parser check for a null terminator 2020-03-23 15:54:11 -07:00
Alex Barney
ef72729391 Mark Nacp as deprecated 2020-03-23 10:32:22 -07:00
Alex Barney
d68ca84f07 Update versions to 0.10 2020-03-23 09:40:41 -07:00
Alex Barney
f44b09ec1f Add some Results 2020-03-23 09:10:55 -07:00
Alex Barney
95ef1c9529 Don't write to a read-only file 2020-03-22 17:52:27 -07:00
Alex Barney
8ead72ed84 Add OpenMultiCommitManager to IFileSystemProxy 2020-03-22 00:12:25 -07:00
Alex Barney
0ab96f67bf Add new functions to existing classes deriving from IFileSystem 2020-03-21 23:37:32 -07:00
Alex Barney
ce54ae111c Add MultiCommitManager
- Recovering from an interrupted commit isn't implemented yet
2020-03-21 22:44:38 -07:00
Alex Barney
d1110392b4 Add a function to specify that a returned Result is unused 2020-03-21 22:39:07 -07:00
Alex Barney
0e26c31a2f Enable OpenHostFileSystem in FileSystemProxy and add XML docs 2020-03-16 15:07:09 -07:00
Alex Barney
f7957b4cc8 Remove some old code 2020-03-14 23:27:49 -07:00
Alex Barney
0c6447daac Use U8StringBuilder instead of PathBuilder 2020-03-14 23:22:34 -07:00
Alex Barney
7b4df4671c Add fs_Host shims 2020-03-14 00:18:42 -07:00
Alex Barney
a006816a2e Allow opening directories with OpenFileSystem 2020-03-13 00:09:44 -07:00
Alex Barney
036e048208 Finish OpenFileSystemWithId enough to work with most content 2020-03-10 15:07:06 -07:00
Alex Barney
281fc8aac3 Add TryOpenNsp 2020-03-09 23:44:28 -07:00
Alex Barney
c79053eac3 Add more to OpenFileSystem 2020-03-09 23:44:28 -07:00
Alex Barney
a1eca88378 Add some of OpenFileSystemWithId 2020-03-09 23:44:28 -07:00
Alex Barney
328968c630 Use U8Span more in FilleSystemClient 2020-03-09 00:06:39 -07:00
Alex Barney
c141b72912 Use U8Span in IFileSystem instead of string 2020-03-08 01:00:02 -07:00
Alex Barney
d6fede0893 Don't return duplicate entries in LayeredFS. Add tests 2020-03-03 18:19:11 -07:00
Alex Barney
1f6046ba63 Remove DirectoryEntryType.NotFound 2020-03-03 18:16:29 -07:00
Alex Barney
7ce9ea09e6 Misc build updates 2020-02-29 01:36:23 -07:00
Alex Barney
4d8ace968f Bump version to 0.9.0 2020-02-28 23:58:29 -07:00
Alex Barney
24f293c27a Add names to Results missing them 2020-02-27 23:31:38 -07:00
Alex Barney
14dd2190a5 Add a default, reflection-less Result name resolver 2020-02-27 11:33:39 -07:00
Alex Barney
53c8dceb87 Add XML docs and a header to the Result files 2020-02-26 14:45:58 -07:00
Alex Barney
27618bbc45 Indent results based on hierarchy 2020-02-26 00:55:53 -07:00
Alex Barney
07d8b7c21e Add results found in a Unity game 2020-02-25 17:32:30 -07:00
Alex Barney
5345d2747e Generate Results from a .csv file 2020-02-24 14:45:51 -07:00
Alex Barney
7bef4c6cd9 Combine common code in EnsureApplicationSaveData 2020-02-22 03:05:04 -07:00
Alex Barney
cfb79f5780 Add EnsureApplicationCacheStorage 2020-02-18 23:12:23 -07:00
Alex Barney
44ff25ee9b Add cache storage and an emulated SD card 2020-02-13 17:21:24 -07:00
Alex Barney
4ff12ec21b Fix AesXtsFileSystem 2020-02-12 03:04:04 -07:00
Alex Barney
ea8cc33003 Always allow opening directory savedata 2020-02-12 03:04:04 -07:00
Alex Barney
ecf7bcd8ad Rewrite SubdirectoryFileSystem 2020-02-12 03:04:04 -07:00
Alex Barney
1c28c08c94 Add PathNormalizer 2020-02-12 03:04:04 -07:00
Alex Barney
cb6827e6c2 Add PathTool.IsSubpath 2020-02-12 03:04:04 -07:00
Alex Barney
bc11d7ceaf Implement Nintendo's path normalization functions 2020-02-12 03:04:04 -07:00
Alex Barney
3139f6900e Add common IFileSystem tests
Change GetFileAttributes method signature
2020-01-29 17:33:42 -07:00
Alex Barney
de13c71a0d Add some Result XML docs 2020-01-26 15:34:26 -07:00
Alex Barney
0040db1153 Add IResultLogger and IResultNameResolver 2020-01-26 15:34:26 -07:00
Alex Barney
5910b9f9c2 Add some results from Atmosphere 2020-01-26 15:34:26 -07:00
Alex Barney
9034c54318 Refactor the Result struct 2020-01-26 15:34:26 -07:00
Alex Barney
35b82f5d6e
Misc tweaks (#111)
- Use System.HashCode in GetHashCode methods
- Update master key revisions.
- Remove some unneeded utility functions
- Suppress a spurious ReSharper warning
2020-01-19 23:31:23 -07:00
Alex Barney
1ae973a346 Add InMemoryFileSystem 2020-01-19 14:55:34 -07:00
Alex Barney
da467a10b0 Add ToU8String method to U8Span. Add PathTools.GetFileName 2020-01-19 14:55:34 -07:00
Alex Barney
b742a37012 Rewrite MemoryStorage 2020-01-19 14:55:34 -07:00
Alex Barney
857bde67ee Simplify CoreRT build 2020-01-17 00:20:24 -07:00
Alex Barney
3c7f1692b7 Create temporary savedata in EnsureApplicationSaveData 2020-01-13 21:31:18 -07:00
Alex Barney
5b0c81fcf9 Clean temp storage on FileSystemServer init 2020-01-13 21:31:18 -07:00
Alex Barney
5c1a7920d2 Open temp directory savedata properly 2020-01-13 21:31:18 -07:00
Alex Barney
9c402df18a Add SaveDataIndexerLite 2020-01-13 21:31:18 -07:00
Alex Barney
6abe565de1 Add more savedata shim functions 2020-01-13 21:31:18 -07:00
Alex Barney
b868c8f51a Cast enums to int before formatting in string 2020-01-03 22:06:18 -07:00
Alex Barney
76598cfac9 Filter savedata info rank correctly 2020-01-03 22:06:18 -07:00
Alex Barney
e8bef8af6a
Update SourceLink package/info and target .NET Core 3.1 with hactoolnet (#106)
Make hactoolnet target the LTS .NET Core version.
LibHac still targets .NET Core 3.0.
2019-12-30 23:05:29 -07:00
Alex Barney
5e4ea459cb Update var usage based on ReSharper "when apparent" rules 2019-12-28 15:16:21 -07:00
Alex Barney
496250f094 hactoolnet: add nax0 support 2019-12-27 19:18:29 -07:00
Alex Barney
d68062c8b4 Fix keyblob key derivation regression 2019-12-26 23:16:46 -07:00
Alex Barney
70a879917a hactoolnet: Print the key used to sign/verify savedata 2019-12-26 23:16:46 -07:00
Alex Barney
dd74f44297 hactoolnet: Improve save processing error messages
Return a message indicating keys may be missing when a commit fails after replacing files in a save.
2019-12-18 11:59:23 -06:00
Alex Barney
2b828bb50f Use runtime instead of compile-time conditionals for result logging 2019-12-18 11:59:23 -06:00
Alex Barney
47f2f4954a Ensure returned result codes are logged 2019-12-18 11:59:23 -06:00
Alex Barney
5d6dce7e1f Properly pass the missing rights ID to MissingKeyException 2019-12-18 11:59:23 -06:00
Alex Barney
d08e6b060c Add PartitionFileSystemCore 2019-12-07 16:12:49 -06:00
Alex Barney
0c4aad32a0 Ignore key name case when parsing a key file 2019-12-07 16:12:49 -06:00
Alex Barney
ba2a923296 Update FS enum and structure names
The new names should be all or mostly all official
2019-12-07 16:12:49 -06:00
Alex Barney
89d70757a3 Add MountApplicationPackage 2019-12-07 16:12:49 -06:00
Alex Barney
31563ad108 Add FileStorageBasedFileSystem 2019-12-07 16:12:49 -06:00
Alex Barney
3d7ff652e0 Add CommonMountNames 2019-12-07 16:12:49 -06:00
Alex Barney
ac70990fa0 Add Slice functions to U8Strings 2019-12-07 16:12:49 -06:00
Alex Barney
a6161e693c Add MountContent shims 2019-12-07 16:12:49 -06:00
Alex Barney
c6a261eeee Rename LocalAccessLogMode to AccessLogTarget 2019-12-07 16:12:49 -06:00
Alex Barney
57586d75fd
Target netstandard2.1 and netcoreapp3.0 (#99)
.NET Core 2.1 introduced some runtime changes to support Span<T> and ByReference. Along with this comes the ability to do things like reinterpret memory as a different type. In .NET Framework the garbage collector couldn't track these references. These features proved useful enough that support for .NET Framework was dropped.

* Target netstandard2.1 and netcoreapp3.0
* Build: Zip native builds. Put version in zip filename
* Always build native exe on AppVeyor
2019-11-29 13:11:04 -06:00
Alex Barney
fdc3a11692 Bump version to 0.7.0 2019-11-26 20:49:55 -06:00
Alex Barney
e18481b3b7 Use Sha256Generator throughout the library 2019-11-26 18:13:30 -06:00
Alex Barney
1efcf3327c Add SHA-256 benchmark with the option to display cycles per byte 2019-11-26 18:13:30 -06:00
Alex Barney
1aa5c9438e Add Sha256Generator 2019-11-26 18:13:30 -06:00
Alex Barney
f9232b9f12 Add ICipherWithIv interface 2019-11-25 11:39:57 -06:00
Alex Barney
99522b748e Add optimized functions for decrypting a single AES block 2019-11-25 11:39:57 -06:00
Alex Barney
abce62dd4f Avoid running into problems from a GC hole in runtimes that don't support fast span.
Support for .NET Framework probably needs to be removed soon. Having runtime support for CreateSpan has turned out to be rather useful.
2019-11-23 21:05:37 -06:00
Alex Barney
2f6b75a8eb Remove use of Enum.TryParse 2019-11-23 20:06:19 -06:00
Alex Barney
3395ebff44 Improve AES key expansion performance 2019-11-23 20:05:05 -06:00
Alex Barney
e02e719ea5 Add crypto benchmarks 2019-11-23 18:56:31 -06:00
Alex Barney
ff23a9179c Add some NACP enums 2019-11-22 19:53:55 -06:00
Alex Barney
a7c733f96c Slightly change some BlitSpan methods 2019-11-22 19:53:55 -06:00
Alex Barney
be2c4d3959 Add SourceLink package 2019-11-22 19:53:55 -06:00
Alex Barney
5d2de68976 Slight renamings 2019-11-22 19:53:55 -06:00
Alex Barney
5b6ca9c160 Add BlitStruct<T> and BlitSpan<T> 2019-11-22 19:53:55 -06:00
Alex Barney
bfaf95026a Add EnsureApplicationSaveData and dependencies
- CreateBcatSaveData
- CreateDeviceSaveData
- CreateTemporaryStorage
- ApplicationControlProperty struct
2019-11-22 19:53:55 -06:00
Alex Barney
df8dab542a Allow setting system save owner to 0 for now 2019-11-22 19:53:55 -06:00
Alex Barney
db6269df5c Interleave AES instructions to improve performance 2019-11-22 13:59:47 -05:00
Alex Barney
191b3d41f6 Ensure crypto works when the input and output buffers are the same 2019-11-22 13:59:47 -05:00
Alex Barney
d0caf6ca4f Use new crypto in Keyset class 2019-11-22 13:59:47 -05:00
Alex Barney
2f4453404f Rename Crypto namespace 2019-11-22 13:59:47 -05:00
Alex Barney
488bd8e682 Rename Aes class 2019-11-22 13:59:47 -05:00
Alex Barney
4b2c4d9553 Refactor non-NI AES code 2019-11-22 13:59:47 -05:00
Alex Barney
2752a7c3db Avoid allocations when doing encryption with AES-NI 2019-11-22 13:59:47 -05:00
Alex Barney
df646fb503 Add functions to encrypt/decrypt entire buffers 2019-11-22 13:59:47 -05:00
Alex Barney
8b47be19c2 Add XTS mode and remove duplicate code 2019-11-22 13:59:47 -05:00
Alex Barney
df27d2a83b Use AES-NI instructions 2019-11-22 13:59:47 -05:00
Alex Barney
f99bc3e0fe Give a better error in LocalFileSystem when trying to initialize it with a file 2019-11-11 12:03:22 -06:00
Alex Barney
fcf46b1822 Reduce memory used by parsing CLI arguments and keys
These actions are usually only performed once per program run, but the objects they used were stored as static properties where they couldn't be cleared from memory. Free up a small bit of memory by only storing them locally.

Reduces memory used by ~150 KB and reduces object count by over 1500
2019-11-03 12:25:09 -07:00
Alex Barney
cccb811293
Add Result methods for debugging (#90)
- Allow setting a callback function for when Result.Log is called.
- Allow setting a function that returns a name for a Result value.
- Print Result name in error messages
2019-10-25 22:13:09 -05:00
Alex Barney
172817a7d5 Make EmulatedSdFileSystemCreator config easier
Also make unintentionally internal classes public and enforce var style
2019-10-24 15:28:36 -05:00
Alex Barney
f3b5cad94b
Merge pull request #89 from Thealexbarney/saveIndex
Add a save indexer with related functions

Adds IFileSystemProxy commands:

- DeleteSaveDataFileSystem
- DeleteSaveDataFileSystemBySaveDataSpaceId
- DeleteSaveDataFileSystemBySaveDataAttribute
- CreateSaveDataFileSystem
- CreateSaveDataFileSystemWithHashSalt
- CreateSaveDataFileSystemBySystemSaveDataId
- OpenSaveDataFileSystem
- OpenReadOnlySaveDataFileSystem
- OpenSaveDataInfoReader
- OpenSaveDataInfoReaderBySaveDataSpaceId
- OpenSaveDataInfoReaderWithFilter
- FindSaveDataWithFilter
2019-10-24 10:37:56 -05:00
Alex Barney
901b72a186 Make internally-used FileSystemProxy methods private 2019-10-23 17:45:28 -05:00
Alex Barney
436de21c86 Add ISaveDataIndexer.GetCount 2019-10-23 17:30:08 -05:00
Alex Barney
bf8b975fa6 Implement more OpenSaveDataInfoReader commands 2019-10-23 17:12:24 -05:00
Alex Barney
04b123f16e Adjust opened SaveDataInfoReaders if the collection is modified 2019-10-23 15:44:00 -05:00
Alex Barney
f0aac13fab Add some SaveDataInfoReader functions 2019-10-22 17:52:55 -05:00
Alex Barney
3af543e4e1 Do error handling in CreateSaveDataFileSystemImpl 2019-10-21 20:38:59 -05:00
Alex Barney
e74bda1a68 Implement DeleteSaveDataFileSystem 2019-10-21 00:29:54 -05:00
roblabla
d2cf1ecb1f hactoolnet: Add Title Name to NCA output
When displaying an NCA containing an NPDM in the code partition, display the
title name.
2019-10-19 10:41:28 -05:00
Alex Barney
92049bf9b7 Add main parts of CreateSaveDataFileSystem 2019-10-18 18:57:45 -05:00
Alex Barney
fef6d19900 Rearrange some FS client functions 2019-10-17 15:52:29 -05:00
Alex Barney
ee9bee3efb Make IFileSystem implement IDisposable 2019-10-17 14:52:44 -05:00
Alex Barney
d330d11de2 Add SaveDataIndexer 2019-10-17 10:52:35 -05:00
Alex Barney
c7f2f28a81 Fix CleanDirectoryRecursivelyGeneric 2019-10-16 20:28:46 -05:00
Alex Barney
dee7c93285 Use plain structs for kvdb 2019-10-15 12:33:15 -05:00
Alex Barney
be907ce4bb
Target .NET Core 3.0 (#85)
* Target .NET Core 3.0

* Update build and test project packages

* Update AppVeyor build image
2019-10-14 21:10:53 -05:00
Alex Barney
9b9e83f1dc Increment GitVersion. Renaming 2019-10-14 17:26:47 -05:00
Alex Barney
102adb4a11 Update version to 0.6.0 2019-10-14 12:28:23 -05:00
Alex Barney
49ec3d6427 Add a path normalizer that behaves like the one in FS 2019-10-14 12:10:56 -05:00
Alex Barney
e05a37bb38 Ensure failed directory savedata commits can be recovered 2019-10-14 12:10:56 -05:00
Alex Barney
576049ce88 Add OperateRange to IFile and IStorage. Reorder methods 2019-10-11 21:20:20 -05:00
Alex Barney
8390e10ae0 Make FileBase abstract methods protected 2019-10-11 20:32:47 -05:00
Alex Barney
8f4c310b7e Add FileSystemBase 2019-10-11 19:11:36 -05:00
Alex Barney
162fb4e389 Move IStorage classes to the new StorageBase 2019-10-11 14:48:31 -05:00
Alex Barney
bfc343e801 Add some validation to StorageBase 2019-10-11 12:53:29 -05:00
Alex Barney
54950c9b68 Handle more errors in LocalFileSystem 2019-10-10 19:01:46 -05:00
Alex Barney
089b5b4f63 Add EmulatedGameCardFsCreator 2019-10-08 20:39:07 -05:00
Alex Barney
f4aaa3b453 Merge from master 2019-10-08 16:29:05 -05:00
Alex Barney
6ed1f1297d Make GameCardHandle.Value public 2019-10-08 11:29:33 -05:00
Alex Barney
b517085e92 Add DefaultFsServerObjects for creating a default server instance 2019-10-07 19:01:53 -05:00
Alex Barney
51a13068df Add an emulated gamecard and storage creator 2019-10-07 18:39:06 -05:00
Alex Barney
9934f477d5 Add remaining GetRightsId methods and U8StringBuilder 2019-10-04 17:17:25 -05:00
Alex Barney
fdd7eebb4b Add external key methods to FS client/server 2019-10-02 17:57:10 -05:00
roblabla
a68d8c16d8 Add developer fixed key modulus 2019-10-02 13:53:40 -05:00
Alex Barney
d291500b28 Add ExternalKeySet. Use C# 8.0 2019-10-02 13:45:58 -05:00
Alex Barney
d7f3e94577 Add a basic SaveDataFileSystemCreator 2019-10-01 16:32:20 -05:00
Alex Barney
5011a57d3e Add an option to control which types of access events are logged 2019-09-30 16:15:31 -05:00
Alex Barney
22bbf07c2b Add a function for handling possible access log output 2019-09-29 11:54:34 -05:00
Alex Barney
838bb18a09 Add some savedata client functions 2019-09-27 23:36:43 -05:00
Alex Barney
00eb988793 Move FileSystemManager into FileSystemClient 2019-09-25 17:50:07 -05:00
Alex Barney
955fff8efc Add FileHandleStorage and a new SubStorage class 2019-09-25 17:16:59 -05:00
Alex Barney
c89bc1c706 Make FileSystemProxy implement IFileSystemProxy 2019-09-23 18:37:23 -05:00
Alex Barney
fd40b2fd77 Remove the old FileBase class 2019-09-23 00:36:47 -05:00
Alex Barney
6a449b7da1 Remove IFile.Mode and create a new FileBase class 2019-09-21 23:38:47 -05:00
Alex Barney
22940f20e5 Move custom storage client code together 2019-09-21 13:59:35 -05:00
Alex Barney
0fe3031701 Move common items to the Fs class 2019-09-21 13:05:45 -05:00
Alex Barney
0e01aa3984 Rename FS namespaces 2019-09-21 12:29:10 -05:00
Alex Barney
a7befc5612 Add AccessPermissions enum 2019-09-20 22:51:42 -05:00
Alex Barney
115d798905 Add more methods to IFileSystemProxy 2019-09-20 00:40:14 -05:00
Alex Barney
5ca698eda1 More IFileSystemProxy functions 2019-09-18 18:07:08 -05:00
Alex Barney
7e2dd22079 Add more methods to IFileSystemProxy 2019-09-18 16:29:27 -05:00
Alex Barney
7222c7d469 Add a few more method definitions to IFileSystemProxy 2019-09-16 22:05:22 -05:00
Alex Barney
4bbfa057d2 Add U8String class and some FileSystemClient functions 2019-09-16 16:42:32 -05:00
Alex Barney
2f49021405 Begin filling out FileSystemClient functions 2019-09-15 08:11:54 -05:00
Alex Barney
734d86d336 Change IDirectory to match the interface in FS 2019-09-14 18:35:25 -05:00
Alex Barney
104312bf06 Log result codes in access log 2019-09-08 15:16:37 -05:00
Alex Barney
9e9fd19f63 Return Result from IFileSystem methods 2019-09-08 14:28:42 -05:00
Alex Barney
69e7735666 Change IFile and IStorage classes to return Result 2019-09-03 12:35:34 -05:00
Alex Barney
d073bdfa54 Change IFile and IStorage interfaces 2019-09-01 18:35:59 -05:00
Alex Barney
6823aa7cb8 Add placeholder FileSystemClient functions 2019-09-01 18:17:35 -05:00
Alex Barney
f0ce5a9946 Change names of some enum members 2019-08-31 19:17:28 -05:00
Alex Barney
dfff3b1ccf Create FileSystemClient 2019-08-31 10:15:49 -05:00
Alex Barney
d6165d1097 Add OpenSaveDataFileSystemBySystemSaveDataId 2019-08-29 18:54:51 -05:00
Alex Barney
d610d2262b Add a Result.Log() method to aid in debugging 2019-08-27 12:27:07 -05:00
Alex Barney
cb705c5f0f Add some file system creators 2019-08-25 21:41:48 -05:00
Alex Barney
82c5c5d9a0 Create FileSystemProxy class 2019-08-22 14:56:03 -05:00
Alex Barney
a052ebb8a1 Add fscreator interfaces 2019-08-19 21:24:30 -05:00
Alex Barney
c3dfaf14e8 Add content storage and content meta DB interfaces 2019-08-11 19:22:39 -05:00
Alex Barney
d69c1a4725 Bump version to 0.5.1 2019-08-11 16:42:17 -05:00
Alex Barney
2f4df2eef3 Derive additional SD card keys 2019-08-11 16:36:21 -05:00
Alex Barney
614adb2a31 Don't add unnecessary ".cnmt" to SwitchFs nca names 2019-08-09 20:47:21 -05:00
Alex Barney
9d813ade18
Use .NET Framework reference assemblies from NuGet (#77)
* Use .NET Framework reference assemblies from NuGet

* Update build packages. Specify --no-build when publishing

* Don't sign on Linux
2019-08-09 20:29:06 -05:00
Alex Barney
4ef297be7f Fix getting structure size in RomFsDictionary 2019-08-08 18:12:07 -05:00
Alex Barney
7099b3cdf2
Make the value stored by HierarchicalRomFileTable generic (#76)
* Make the value stored by HierarchicalRomFileTable generic

* Don't use new language features yet
2019-08-08 17:46:49 -05:00
Alex Barney
ea2572c479 Ensure EnsureDirectoryExists works properly 2019-08-08 17:28:34 -05:00
Alex Barney
b03973dc48 hactoolnet: Savefile fixes
Only open as writable if needed
Only commit if needed
2019-07-19 19:50:42 -05:00
Alex Barney
7b8c3f0b4f
Add .NET Standard 2.0 target (#73)
* Add .NET Standard 2.0 target

* Update dependencies
2019-07-15 14:10:48 -05:00
Alex Barney
76550b0bd9
Remove LibHac.Nand and related projects (#72) 2019-07-14 19:56:02 -05:00
Alex Barney
ab8283183b hactoolnet: Don't fix archive flag on non-Windows platforms 2019-07-09 21:27:11 -05:00
Alex Barney
90c048c389 Add basic docs for ConcatenationFileSystem 2019-07-08 13:27:23 -05:00
Alex Barney
74a3929eb9 Workaround the inability to access FAT attributes in Linux 2019-07-08 13:27:23 -05:00
Alex Barney
6f1596ae5f More closely match original FS behavior in IFileSystem 2019-07-07 16:30:18 -05:00
Alex Barney
6adcc8cce0 Rethrow exceptions with external result code 2019-07-07 16:30:18 -05:00
Alex Barney
69658ae08e Add result ranges and convert savedata results to external results 2019-07-07 16:30:18 -05:00
Alex Barney
bbf92766c0 Change behavior of IFileSystem.GetEntryType
GetEntryType now returns NotFound if the entry doesn't exist.
The FileExists and DirectoryExists functions were removed from IFileSystem and readded as extension methods
2019-06-28 23:08:27 -05:00
Alex Barney
8f37b2b1c4 Use more result codes in FS code 2019-06-28 23:08:27 -05:00
Alex Barney
46d4274686 Support xts nca. Handle more errors in switchfs 2019-06-26 13:26:37 -05:00
Alex Barney
abad1ee666 Fix NCA2 decryption bug 2019-06-26 13:26:37 -05:00
Alex Barney
89525c5eaa hactoolnet: Use FileSystemManager in ProcessSave 2019-06-26 13:26:37 -05:00
Alex Barney
a43da54f95 Fix path normalizer bug 2019-06-26 13:26:37 -05:00
Alex Barney
a14b513b59 hactoolnet: Add an access log option and enable it for NCAs
Progress bars for NCA extraction now show the overall progress instead of per-file progress
2019-06-26 13:26:37 -05:00
Alex Barney
b51d4397e9 Add close and unmount methods. Add helpers for common fs tasks 2019-06-26 13:26:37 -05:00
Alex Barney
1859b4ce26 Add FS access log 2019-06-26 13:26:37 -05:00
Alex Barney
5d32150ad8 Update PathTools.IsNormalized to handle mount names 2019-06-26 13:26:37 -05:00
Alex Barney
b821ba9519 Add additional FileSystemManager methods 2019-06-26 13:26:37 -05:00
Alex Barney
9964483e83 Add basic FileSystemManager methods 2019-06-26 13:26:37 -05:00
Alex Barney
a44bdf780e Make path normalizer work with mount names 2019-06-26 13:26:37 -05:00
Alex Barney
5a8744c6b5 Add basic filesystem accessors 2019-06-26 13:26:37 -05:00
Alex Barney
f45d4166eb Add HorizonResultException 2019-06-26 13:26:37 -05:00
Somebody Whoisbored
fc149bf4c4 Add support to writing to the Nand class (#64) 2019-06-17 00:16:04 -05:00
Ac_K
0f110cf7e8 Update Nacp.cs
Fix wrong field who is UserAccountSwitchLock @0x3026 according to https://switchbrew.org/wiki/NACP_Format
2019-06-13 23:39:12 -05:00
Alex Barney
e8847243d9 Version 0.4.1 2019-06-05 00:29:29 -05:00
Alex Barney
775478fa16 Add read and write options to IFile interface 2019-06-04 23:40:48 -05:00
Alex Barney
fbeaff8d88 Make Nca.SectionExists return false for invalid type 2019-06-04 22:26:37 -05:00
Alex Barney
dc8aad1e71
Add IMKV database reader and writer (#61)
* Add Result struct

* Add IMKV database reading

* Add imkvdb writing

* Add get and set to kvdb

* Add Freeze method to IExportable

* Add generic kvdb value

* Add ContentMetaKey for use with kvdb
2019-06-03 20:24:38 -05:00
Alex Barney
61c66bc979 Update version to 0.4.0 2019-05-30 18:37:07 -05:00
Alex Barney
7cacc19b77 Remove DiscUtils csproj files 2019-05-30 18:24:22 -05:00
Alex Barney
9d03729e8a Misc fixes 2019-05-24 15:24:10 -05:00
Alex Barney
1876e3b671 Add ReadOnlyFileSystem 2019-05-24 15:03:07 -05:00
Alex Barney
279e180466 Fix bug when opening patched nca filesystem with no base 2019-05-24 12:44:35 -05:00
Alex Barney
0fa9fccc5f Add DirectorySaveDataFileSystem 2019-05-22 17:08:22 -05:00
Alex Barney
5b764e487e Remove old SaveFsEntry file 2019-05-20 15:04:11 -05:00
Alex Barney
f7b983ccb2 Add PathTools.Combine 2019-05-20 15:01:14 -05:00
Alex Barney
353c538c6b Properly handle opening patch NCAs with an empty base section 2019-05-14 17:03:53 -05:00
Alex Barney
d189826203
Rename IO namespace to Fs (#58) 2019-05-14 16:39:20 -05:00
Alex Barney
e3e6411aa6 Add rename functions to SaveDataFileSystemCore 2019-05-13 21:30:09 -05:00
Alex Barney
25a66cf4df Fix issues with empty files in SaveDataFileSystemCore 2019-05-13 21:30:09 -05:00
Alex Barney
6f7de478eb Implement CreateDirectory in SaveDataFileSystemCore 2019-05-13 21:30:09 -05:00
Alex Barney
b9236b973a Fix bug in CachedStorage that would drop writes
If block 0 of the storage was written to before the cache was filled and then another block was accessed, any writes to block 0 would be lost.
2019-05-13 21:30:09 -05:00
Alex Barney
b83fb6c7fc Add SaveFsList expansion 2019-05-13 21:30:09 -05:00
Alex Barney
823800945a Add comments for the new functions 2019-05-13 21:30:09 -05:00
Alex Barney
c766a413e2 hactoolnet: Add option to replace a savedata's entire contents 2019-05-13 21:30:09 -05:00
Alex Barney
26ac0ed975 Fix bugs when running out of save data space 2019-05-13 21:30:09 -05:00
Alex Barney
47ba61db45 Add DeleteDirectory to savedata 2019-05-13 21:30:09 -05:00
Alex Barney
3c45e7e71b Add DeleteDirectoryRecursively and CleanDirectoryRecursively 2019-05-13 21:30:09 -05:00
Alex Barney
6590cad251 Fix QueryEntry signature 2019-05-13 21:30:09 -05:00
Alex Barney
f1e839a64a Add GetFreeSpaceSize and GetTotalSpaceSize 2019-05-13 21:30:09 -05:00
Alex Barney
bc22d6dd99 Add GetFileTimeStampRaw 2019-05-13 21:30:09 -05:00
Alex Barney
6aa15c0691 Match FS behavior when checking if an NCA section exists 2019-05-06 21:42:53 -05:00
Alex Barney
3888a03a92 Suppress ReSharper warnings 2019-05-06 19:51:41 -05:00
Alex Barney
da5a3449dd hactoolnet: Set archive bit when missing from concat files 2019-05-06 19:04:17 -05:00
Alex Barney
67bf8b19ce Add QueryEntry to IFileSystem 2019-05-06 19:04:05 -05:00
Alex Barney
87e9829892 switchfs: Allow missing save directory in all cases 2019-05-06 19:03:53 -05:00
Alex Barney
72915c0425
Refactor NCA-related classes (#56)
* Begin refactoring NCA classes

* Section opening

* Add NcaNewExtensions

* hactoolnet: Move most nca code to the new api

* Verify nca signatures

* hactoolnet: process patched ncas

* Add NCA encryption counter generation method

From what I can tell, this is the current method used to generate the counter. It's possible that may change in the future.

* Verify NCAs

* Use NcaNew in SwitchFs

* Remove old NCA code

* Rename new NCA classes

* Move struct constants around

* hactoolnet: verify patched nca sections

* Misc
2019-05-06 13:41:51 -05:00
Alex Barney
7804a919d1 SwitchFs: Don't try to open directories as NCA files 2019-04-30 15:40:31 -05:00
Alex Barney
cc9ca448f0
Add fstrim capability to savedata (#54)
* Properly commit version 4 savedata. Remove null span checks

* Add FsTrim to IntegrityVerificationStorage

* Remove dotsettings file

* Add trimming to all savedata layers
2019-04-26 09:48:57 -05:00
shchmue
fbdf6b3be9 Add support for 8.0.0 Kernel-embedded Ini1 (#51) 2019-04-23 18:13:46 -05:00
Alex Barney
6764dc7800
Merge pull request #52 from Thealexbarney/save-edit
Add more support for savedata FS editing
2019-04-23 15:14:10 -05:00
Alex Barney
0441d6e825 Small code cleanup 2019-04-23 15:08:27 -05:00
Alex Barney
c383b94632 Allow resizing when replacing file in savedata 2019-04-22 21:37:01 -05:00
Alex Barney
fdefd5cf36 Create a separate method for savedata debug export 2019-04-22 21:34:32 -05:00
Alex Barney
300a4335ea Flush IVFC storage on savedata commit 2019-04-22 21:32:57 -05:00
Alex Barney
5bb46b2b36 Forward Savedata FS functions to core FS 2019-04-20 14:21:09 -04:00
Alex Barney
8914d89b32 Add SaveDataFile resizing 2019-04-20 14:15:00 -04:00
jonnysp
42ce382bf5 Add an NRO reader (#44) 2019-04-20 06:46:13 -05:00