Commit graph

85 commits

Author SHA1 Message Date
Alex Barney
0dc433d8a2 Implement UserFileSystem and mount registration 2021-03-12 01:34:14 -07:00
Alex Barney
a11e84cc81 Implement or skeleton fsa file system code 2021-03-12 01:34:14 -07:00
Alex Barney
a94bb81c54 Add FsSrv.Impl.FileSystemProxyServiceObject 2021-02-06 22:04:00 -07:00
Alex Barney
b315e14da0 Add IDeviceEventSimulator and implement some of the Os namespace 2021-01-28 23:24:24 -07:00
Alex Barney
981b902606 Move Results to their correct namespaces 2021-01-19 21:30:02 -07:00
Alex Barney
b992cdf8c4 Allow setting namespaces on individual Results
Groups files of results by namespace rather than by module
2021-01-19 21:30:02 -07:00
Alex Barney
65f8ab671f Mark abstract results as such 2021-01-19 21:30:02 -07:00
Alex Barney
9eeed9c225 Allow defining abstract Results 2021-01-19 21:30:02 -07:00
Alex Barney
f2f68958a8 Pull in some results from Atmosphere 2021-01-19 21:30:02 -07:00
Alex Barney
6b8b1515c2 Compress result name data 2021-01-19 21:30:02 -07:00
Alex Barney
4efd95f94c Add BufferedStorage with some supporting classes 2021-01-18 23:48:37 -07:00
Alex Barney
8e1eb0d057 Add FileSystemBuddyHeap 2021-01-18 23:48:37 -07:00
Alex Barney
a0487980d4 Add mariko master kek source 5
This key was missed when adding the others because it was used in package1ldr instead of secmon
2020-11-25 22:26:19 -06:00
Alex Barney
e82d3e039b Update build and test packages 2020-11-17 22:41:54 -06:00
Alex Barney
25f8115600 Move to .NET 5.0 2020-11-17 22:41:54 -06:00
Alex Barney
882e6bc937 Separate fssrv save code to SaveDataFileSystemService 2020-11-01 23:54:00 -07:00
Alex Barney
3837ed7eea Add more FS IPC interfaces with adapters 2020-10-14 15:19:15 -07:00
Alex Barney
5dc7c57851 Fully implement LR client and LocationResolverSet 2020-10-14 15:11:35 -07:00
Alex Barney
be55aa7e9c Add BaseFileSystemService 2020-10-14 14:48:34 -07:00
Alex Barney
9f81b933e8 KeySet.DeriveKeys now derives both sets automatically 2020-10-13 21:34:08 -07:00
Alex Barney
b6499a6c12 Rename IsEmpty to IsZeros
Renames the IsEmpty() functions that check if an array is all zeros. This helps avoid confusion because Span has an IsEmpty property that returns true if the span's length is 0.

The change actually revealed a tiny bug in KeyDerivation where the property was accidentally used instead of the function.
2020-10-11 23:47:26 -07:00
Alex Barney
a9632c8d00 Rewrite the key file parser 2020-10-10 17:19:40 -07:00
Alex Barney
bac541947f Embed key sources in the library
Embedded keys are generated at build-time from the IncludedKeys.txt file under the build directory.

A separate codegen build project was created because generating the embedded keys requires the same LibHac that is being built.

_buildCodeGen.csproj is located under CodeGen because NUKE doesn't like having two build projects in the same directory.
2020-10-06 22:18:34 -07:00
Alex Barney
61ce892697 Rewrite the Package1 class, updating it to handle newer package1s 2020-09-28 01:18:15 -07:00
Alex Barney
6496a2c1bc Honor permissions in OpenFileSystemWithId. Add basic AC test 2020-08-26 17:10:12 -07:00
Alex Barney
004e46cacc Add the program registry 2020-08-26 17:10:12 -07:00
Alex Barney
2242fc6371 Miscellaneous code style cleanup 2020-08-18 21:47:46 -07:00
Alex Barney
a005b40022 Build updates
Use the version in the .csproj if there is no local git repository.
Always use Windows line endings in codegen output.
Update build dependency versions. We're still using GitVersion 5.1.3 because of https://github.com/nuke-build/nuke/issues/509.
2020-08-15 23:34:48 -07:00
Alex Barney
6bab1d9273 Support extracting INI binaries embedded in the kernel 2020-08-12 14:27:58 -07:00
Alex Barney
8491ec2117 Add Package2StorageReader and InitialProcessBinaryReader 2020-08-12 14:27:58 -07:00
Alex Barney
81340027fc Rename FsService to FsSrv 2020-08-07 18:32:01 -07:00
Alex Barney
37251968c0 Add FlatMapKeyValueStore with tests 2020-08-07 10:02:50 -07:00
Alex Barney
f02c84e8dd Add ReferenceCountedDisposable<T>
This class is meant to be used in the same types of places std::shared_ptr is used but with manual instead of automatic ref counting.

SubStorage now uses the class to optionally dispose its base storage object.
2020-07-06 11:43:48 -07:00
Alex Barney
88983d39e5 Remove use of code that involves reflection
This allows over 40% of the CoreRT native binary size to be removed by removing reflection capabilities.

The "--noreflection" option for the build script can be used to build hactoolnet with no reflection.

The Linux build won't always work because creating a new thread for the progress bar runs into some issue with EventSource being removed.
2020-06-27 16:28:32 -07:00
Alex Barney
33af34cefc Rewrite IndirectStorage 2020-06-25 15:26:55 -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
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
ef1481b04c Replace old fsa classes with new ones 2020-06-07 15:23:51 -07:00
Alex Barney
7c9584a6af Add new IFileSystem and IDirectory 2020-06-06 22:48:20 -07:00
Alex Barney
3de2a4b90b Update MyGet package publishing 2020-06-04 11:17:30 -07:00
Alex Barney
8d5e24d061 Ensure csv column counts are consistent 2020-05-12 19:02:48 -07:00
VolcaEM
7f0afbe9db Add some results codes
The result codes were taken from Switchbrew (switchbrew.org/wiki/Error_codes)
The names are consistent with those of https://github.com/Ryujinx/Ryujinx/pull/1202
2020-05-02 18:33:03 -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
ef36568a8d Implement DeliveryCacheFileService and supporting code 2020-04-10 10:54:37 -07:00
Alex Barney
da78e7e8ce Add BCAT storage skeleton 2020-04-07 00:22:12 -07:00
Alex Barney
e5c851e7a3 Add KipReader class and add kip decompression to hactoolnet 2020-03-29 22:12:00 -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