Alex Barney
d1a49b989a
Add SaveDataSharedFileStorage
2021-06-01 10:38:17 -07:00
Alex Barney
9f3e6db545
Auto-format SaveDataManagement
2021-06-01 10:38:17 -07:00
Alex Barney
5c6f78e751
Implement all defined methods in SaveDataManagement
2021-06-01 10:38:17 -07:00
Alex Barney
7122052565
Add more methods to SaveDataManagement
...
Skeleton most of the remaining methods in SaveDataManagement.
Implement the methods directly reading and writing save data extra data.
Add PosixTime.cs
FS shim macros now call nn::fs::detail::LogResultErrorMessage before aborting instead of nn::fs::detail::LogErrorMessage
2021-06-01 10:38:17 -07:00
Alex Barney
86be94e9b5
Fill out cache storage functions in SaveDataFileSystemService
2021-06-01 10:38:17 -07:00
Alex Barney
f67d51cb37
Add save data extra data functions to SaveDataFileSystemServiceImpl
...
Adds ReadSaveDataFileSystemExtraData and WriteSaveDataFileSystemExtraData
Auto-format SaveDataFileSystemServiceImpl
Use SdkRecursiveMutexType instead of SdkRecursiveMutex in SaveDataExtraDataAccessorCacheManager
2021-06-01 10:38:17 -07:00
Alex Barney
7aae39c358
Use save data caches in SaveDataFileSystemServiceImpl
2021-06-01 10:38:17 -07:00
Alex Barney
ed8ef13bfd
Add SaveDataResultConvertFileSystem
2021-06-01 10:38:17 -07:00
Alex Barney
6f6201cb6d
Add SaveDataFileSystemCacheRegisterBase
2021-06-01 10:38:17 -07:00
Alex Barney
f1caabf82b
Add SaveDataFileSystemCacheManager
2021-06-01 10:38:17 -07:00
Alex Barney
d06731f464
Add SaveDataExtraDataAccessorCacheManager
2021-06-01 10:38:17 -07:00
Alex Barney
44229f5986
Rename some save data results
2021-06-01 10:38:17 -07:00
Alex Barney
25b94292b3
Modify ISaveDataFileSystemCreator
2021-06-01 10:38:17 -07:00
Alex Barney
649c72e5e6
Add extra data handling to DirectorySaveDataFileSystem
2021-06-01 10:38:17 -07:00
Alex Barney
3bf8826a5b
Fill out SaveDataFileSystemServiceImpl.Configuration
2021-06-01 10:38:17 -07:00
Alex Barney
433e7bb98e
Fix access control debug mask
2021-04-25 15:42:48 -07:00
Alex Barney
b03e7aa7e9
Fix MetaLoader KernelCapabilityOffset bug
2021-04-25 15:42:48 -07:00
Alex Barney
52c0903f61
Add Ncm.ProgramLocation
2021-04-25 15:42:48 -07:00
Alex Barney
1744e0a562
Actually implement IDisposable on DirectoryHandle
2021-04-19 12:27:07 -07:00
Alex Barney
17b8bc5b62
Make fssrv interface adapters public
2021-04-19 12:01:16 -07:00
Alex Barney
4d3a1418f6
Use more accurate Sf IFile and IStorage function signatures
2021-04-19 11:16:38 -07:00
Alex Barney
880916e117
Make FileHandle and DirectoryHandle implement IDisposable
2021-04-19 11:16:38 -07:00
Alex Barney
646055de5a
Update version to 0.13.0
2021-04-18 19:34:37 -07:00
Alex Barney
a730c17bc5
Add Loader.MetaLoader
2021-04-16 14:55:30 -07:00
Alex Barney
bb2c870f27
Update DirectorySaveDataFileSystem to 11.0.0
2021-04-15 16:30:12 -07:00
Alex Barney
4ea2896b72
Improve LocalFileSystem
...
- Add case-sensitive mode.
- Avoid TargetLocked results by waiting and retrying a few times.
- Allow getting either windows or unix timestamps.
- Try a finite number of times if an entry has been deleted before returning TargetLocked.
2021-04-01 01:26:23 -07:00
Alex Barney
8848959831
Add most FS results
2021-03-28 23:13:06 -07:00
Alex Barney
0c255e0f49
Update common path handling code
...
- Updates path handling code to system version 11.0.0.
- Changes InMemoryFileSystem to normalize all incoming paths.
2021-03-28 16:03:05 -07:00
Alex Barney
7269c0a215
Add new assert system
...
Mostly imitates nnsdk's assert system. The assert handler object is global because passing around a HorizonClient object just to do asserts would be annoying
2021-03-27 21:28:13 -07:00
Alex Barney
12fe47c91c
Rename "Detail" namespaces to "Impl"
2021-03-19 16:57:11 -07:00
Alex Barney
0ab26fdd69
Rename FsSrv.Creators to FsSrv.FsCreator
2021-03-19 16:57:11 -07:00
Alex Barney
d8b8e3088e
Use SkipParamInit for handling unwritten out values
...
Use this function in all places out values that set in the original code because of errors. Unmanaged values will stay uninitialized while managed values will be zeroed.
2021-03-19 16:57:11 -07:00
Alex Barney
d2c327377d
Remove "--removefeature:EventSource" compile option
2021-03-12 01:34:14 -07:00
Alex Barney
e2f1d74ae5
Remove some old logging classes
2021-03-12 01:34:14 -07:00
Alex Barney
6e55d8c362
Fill out FS access log code
2021-03-12 01:34:14 -07:00
Alex Barney
39977d8e90
Add the logger from nn::diag
2021-03-12 01:34:14 -07:00
Alex Barney
7950a91dd0
Add ReaderWriterLock
2021-03-12 01:34:14 -07:00
Alex Barney
6360a18fbf
Add padding options to U8StringBuilder
2021-03-12 01:34:14 -07:00
Alex Barney
6641109d94
Update FS shims for new Horizon and access log code
...
Makes all current FS shims more accurate, including using rewritten access log and system tick handling code.
2021-03-12 01:34:14 -07:00
Alex Barney
684fcd460f
Swap in the new fsa code except for some access log calls
2021-03-12 01:34:14 -07:00
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
61654298d2
Implement or skeleton some mounting code
2021-03-12 01:34:14 -07:00
Alex Barney
596a8bef7c
Rewrite file system accessors
2021-03-12 01:34:14 -07:00
Alex Barney
270e61a501
Add properties to FileSystemServerImpl and StorageService
2021-02-07 00:53:40 -07:00
Alex Barney
e50078d939
Move initialization code out of FileSystemServer
2021-02-07 00:26:20 -07:00
Alex Barney
a94bb81c54
Add FsSrv.Impl.FileSystemProxyServiceObject
2021-02-06 22:04:00 -07:00
Alex Barney
e3c14dfa4f
Add FileSystemProxyServiceObject for the FileSystemClient
...
Moves all the Get*ServiceObject functions to their own file.
Adds InitializeDfcFileSystemProxyServiceObject.
2021-02-06 00:29:47 -07:00
Alex Barney
58e94e99a9
Pass in a FileSystemServer to more classes
2021-02-05 15:18:08 -07:00
Alex Barney
dadc019439
Use globals in more places
...
Adds globals for FileSystemProxyImpl, ProgramRegistryImpl, AccessControl and StorageDeviceManagerFactory
2021-02-02 21:11:51 -07:00
Alex Barney
e9918fa5aa
Add AccessFailureManagementService
2021-01-31 01:23:38 -07:00
Alex Barney
e9f518ddc1
Convert tabs to spaces because spaces are better. Fight me.
...
No idea how this one file got formatted with tabs.
2021-01-30 02:31:17 -07:00
Alex Barney
3463c977dd
Implement the rest of TimeServiceImpl
2021-01-30 02:14:12 -07:00
Alex Barney
d0e608775e
Flesh out FileSystemProxy functions a bit more including 11.0.0 ones
2021-01-30 01:54:43 -07:00
Alex Barney
2f9fbdb818
Add StatusReportService
2021-01-29 17:41:12 -07:00
Alex Barney
e5291eb06a
Fix IFatFileSystemCreator
2021-01-29 01:03:23 -07:00
Alex Barney
119809a965
Add Mmc and SD card portions of Fssrv.Storage
2021-01-29 01:03:06 -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
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
7b38708c11
Add missing IFileSystemProxy methods
2021-01-19 21:30:02 -07:00
Alex Barney
e9ffc5a5e6
Move IFileSystemProxy to the Sf namespace
2021-01-19 21:30:02 -07:00
Alex Barney
5367d7c5cd
Add save data transfer sf interfaces
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
2c7291b9ae
Update CoreRT/Native AOT version
2021-01-19 21:30:02 -07:00
Alex Barney
4bf7060ec7
Update ReSharper var style and warnings ( #172 )
...
ReSharper 2020.Something modified the var style again so that arrays of built-in types also count as built-in types, meaning the type should always be explicit.
2021-01-19 19:49:58 -07:00
Alex Barney
4efd95f94c
Add BufferedStorage with some supporting classes
2021-01-18 23:48:37 -07:00
Alex Barney
32a3750a92
Add FileSystemBufferManager
2021-01-18 23:48:37 -07:00
Alex Barney
8e1eb0d057
Add FileSystemBuddyHeap
2021-01-18 23:48:37 -07:00
Alex Barney
454f38f1bb
Rename Assert.AssertTrue to Assert.True
2021-01-18 23:48:37 -07:00
Alex Barney
acce155341
Move some functions from Utilities to LibHac.Util.*
2021-01-18 23:48:37 -07:00
Alex Barney
7fcb0054e4
Support NCA0 sections using IVFC hashes
2020-11-25 23:40:43 -06:00
Alex Barney
369784ff12
Use SkipInit for initializing path string types
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
57c0a5065c
Rename FsSrv.Sf file system and storage interfaces
2020-11-10 22:03:54 -07:00
Alex Barney
0efaafd101
Add more NcaFileSystemService functions
2020-11-10 15:07:28 -07:00
Alex Barney
6b6a31dcea
Add BaseStorageService
2020-11-05 01:15:21 -07:00
Alex Barney
c29fed67c1
Add TimeService
2020-11-05 01:14:53 -07:00
Alex Barney
9826178fb6
Add AccessLogService
2020-11-04 00:46:39 -07:00
Alex Barney
a3220cc8df
Fix method signatures in IFileSystemProxy
2020-11-02 17:05:13 -07: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
4113bc2d36
Rename FileSystemProxy to FileSystemProxyImpl
2020-10-14 14:57:19 -07:00
Alex Barney
2bd7bb7892
Use BaseFileSystemService in FileSystemProxy
2020-10-14 14:50:51 -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
9bb2c3a843
Support more key parser situations
...
Support comments, ignoring lines that are too long, properly reading the last line in a file. Probably some bug fixes too.
2020-10-13 20:55:48 -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
c39895080b
hactoolnet: Always read both prod and dev key sets
2020-10-11 22:25:02 -07:00
Alex Barney
8f011387a0
Improve key parser performance a bit
2020-10-11 01:26:43 -07:00
Alex Barney
b5dabe78f5
Replace hex string converter and move StringUtils
2020-10-10 20:17:07 -07:00
Alex Barney
a9632c8d00
Rewrite the key file parser
2020-10-10 17:19:40 -07:00
Alex Barney
fa79db2285
Split ExternalKeyReader
2020-10-07 17:54:29 -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
770406e9c2
Remove the old Keyset class
2020-10-05 12:25:39 -07:00
Alex Barney
e3bb1f1fac
Allow reading dev keys from key files
2020-10-05 01:26:54 -07:00
Alex Barney
7a7cded4f2
Add RSA keys
2020-10-04 20:18:30 -07:00
Alex Barney
333ef8729f
Fix RSA regression from 5f755bc7
and add a test
2020-10-02 01:33:44 -07:00
Alex Barney
f7030aef4f
Add a new KeySet class
2020-10-01 18:06:32 -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
49711b12db
Tweaks and cleanup for PR #164
...
- Fully span-ify CalculateCmac and update callers.
- Modify CalculateCmac signature to match Nintendo's.
- Avoid doing stackalloc based on an input length parameter.
- Use ReadOnlySpan instead of Span where appropriate.
- Standardize XML comments to use triple slashes.
- Make use of the entire rented buffer when copying.
Unrelated to the PR
- Slip in a missed enum to string conversion in hactoolnet for CoreRT reflection-free mode.
2020-09-05 21:10:39 -07:00
Xpl0itR
265147b678
Changes to CryptoOld
...
- Remove AES functions and replace references with functions from the Crypto.Aes class
- Edit and move the AES-CMAC function into the Crypto.Aes class
- Move BigInteger functions to the Utilities class
- Reduce duplication between the RSA functions
- Edit and move the Rsa parameter recovery function into the Crypto.Rsa class
2020-09-02 19:09:27 +01:00
Xpl0itR
49a8ffd3e2
Expose bufferSize as a variable in CopyTo and CopyToStream
2020-08-30 10:32:52 +01:00
Xpl0itR
771663786d
Use LibHac's RentedArray<T> struct
2020-08-30 10:32:52 +01:00
Alex Barney
d138a52d06
Add some docs for EmulatedBisFileSystemCreator
2020-08-29 21:53:45 -07:00
Alex Barney
30f306f637
Add additional documentation to the access control classes
2020-08-26 17:10:12 -07:00
Alex Barney
4552a2d94f
Add permission checks to DeleteSaveDataFileSystem
2020-08-26 17:10:12 -07:00
Alex Barney
1f25b87d20
Add RegisterProgramIndexMapInfo shim and tests
2020-08-26 17:10:12 -07:00
Alex Barney
6496a2c1bc
Honor permissions in OpenFileSystemWithId. Add basic AC test
2020-08-26 17:10:12 -07:00
Alex Barney
3184e6ca7e
Add IFileSystemProxyForLoader and IProgramRegistry interfaces
2020-08-26 17:10:12 -07:00
Alex Barney
071b608f5f
Tweak how the Horizon class and service manager work
...
- Store IServiceObjects in the service manager that return the usable objects instead of storing the objects directly
- Register FS services in the service manager instead of giving them special treatment
- Give each created HorizonClient its own "process ID"
2020-08-26 17:10:12 -07:00
Alex Barney
deaf111ac3
Add functions to ProgramRegistryService
...
Adds RegisterProgramIndexMapInfo and GetProgramIndexForAccessLog to both FileSystemProxy and ProgramRegistryService
2020-08-26 17:10:12 -07:00
Alex Barney
0b050d2189
Add ProgramIndexMapInfoManager
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
76d21263da
Add AccessControl
2020-08-26 17:10:12 -07:00
Alex Barney
3a3c4822be
hactoolnet: Remove use of enum reflection
2020-08-19 11:07:28 -07:00
Alex Barney
2242fc6371
Miscellaneous code style cleanup
2020-08-18 21:47:46 -07:00
Alex Barney
71824f06dc
Fixes in Nca and U8Span
2020-08-17 19:23:30 -07:00
Alex Barney
f2f2111729
hactoolnet: Add functions to convert some enums to strings
2020-08-17 19:23:30 -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
30273bf3ef
Avoid false positives in detection of unencrypted NCAs
2020-08-15 17:13:28 -07:00
Alex Barney
a07e17c369
Make file option struct constructors public.
2020-08-14 23:40:03 -07:00
Alex Barney
f20337d774
Add support for NCA0 files.
...
Any operation that is supported with other NCAs is supported NCA0s. This includes reading both encrypted and decrypted NCA0s, and encrypting and decrypting NCA0s.
2020-08-14 22:09:11 -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
24ba7c6b5b
Set the next version to 0.12.0
2020-08-07 10:22:14 -07:00
Alex Barney
9e57cc174e
Add documentation for SaveDataIndexer and related classes
2020-08-07 10:02:50 -07:00
Alex Barney
c1b9eb8903
Change ref
to in
where possible in SaveDataIndexer and kvdb
2020-08-07 10:02:50 -07:00
Alex Barney
d575415b0e
Remove the old KeyValueDatabase
2020-08-07 10:02:50 -07:00
Alex Barney
a551360da0
Use FlatMapKeyValueStore in SaveDataIndexer
...
FS 10.0 tweaks how the SaveDataIndexerManager is accessed. SaveDataFileSystemServiceImpl's configuration now includes an ISaveDataIndexerManager instead of using global state.
FS 10.0 uses the new nn::fssrv::storage namespace for abstracting the interface to nn::gc and nn::sdmmc. A tiny bit of the namespace has been added so we can create mock SD card handles for SaveDataIndexerManager.
ReferenceCountedDisposable<T> is now being used for returning ISaveDataInfoReader objects from IFileSystemProxy. I've tried coming up with a pattern to cleanly return a ReferenceCountedDisposable<T>, but the lack of features like RAII or move semantics makes this difficult without either lots of allocations or lots of boilerplate code.
2020-08-07 10:02:50 -07:00
Alex Barney
37251968c0
Add FlatMapKeyValueStore with tests
2020-08-07 10:02:50 -07:00
Alex Barney
672a0016b3
Use "in" instead of "ref" for read-only SpanHelper methods
2020-08-07 10:02:50 -07:00
Alex Barney
717e54fe4e
Rename TitleId to ProgramId and add other NCM ID types
2020-08-07 10:02:50 -07:00
Alex Barney
3819cfdca7
Flesh out NCA encryption
...
Allows opening decrypted NCAs.
Allows opening encrypted and decrypted storages of any NCA, whether encrypted or decrypted.
hactoolnet: Allow saving an encrypted version of any NCA.
2020-07-24 22:41:45 -07:00
Xpl0itR
e0ddf17945
Implement function in NCA class to re-encrypt decrypted NCAs
2020-07-24 22:41:45 -07:00
leo60228
c56c8ba8ed
Include title ID in --listapps when possible
2020-07-24 15:35:20 -07:00
Alex Barney
7dd21ae05b
SubStorage in AesXtsFile should be resizable
2020-07-06 11:43:48 -07:00
Alex Barney
d04e713356
Add some docs to SubStorage
2020-07-06 11:43:48 -07:00
Alex Barney
d7ae809cf3
Add TruncatedSubStorage
2020-07-06 11:43:48 -07:00
Alex Barney
e9c38dc7ba
Remove old SubStorage
2020-07-06 11:43:48 -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
b6eac5ddb5
Rename Util class to Utilities
...
Preparation to split it up into the Util namespace and to add nn::util code
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
83dc874df1
Rent arrays in BucketTree.Visitor
2020-06-26 09:11:06 -07:00
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