Releases: Thealexbarney/LibHac
Releases · Thealexbarney/LibHac
v0.19.0
hactoolnet
- #273/#285 Add key sources for system version 16.0.0 and 17.0.0
- #287 Support opening the INI1 from kernels in system version 17.0.0
- #287 Don't output unknown key warnings by default.
LibHac
- #273/#285 Add key sources for system version 16.0.0 and 17.0.0
- #287 Support opening the INI1 from kernels in system version 17.0.0
- #281 Implement
nn::gcsrv
andnn::sdmmcsrv
. These namespaces act as abstractions over the gamecard and sdmmc functionality. - #282 Add
GetFileSystemAttribute
toIFileSystem
. - #286 Fix a bug in
ConvertToFsCommonPath
where it would not output the part of the path after the mount name.
v0.18.0
hactoolnet
- #268 Reads personalized tickets in NSPs if
eticket_rsa_keypair
is in the key file. - #271 Read TSEC secrets from the key file and use them to derive TSEC KEKs.
- #271 Validate the pk11 mac inside modern erista package1s if the proper key exists.
- #265 Properly separate prod and dev derived device keys in the KeySet class.
LibHac
- #268 Load
eticket_rsa_keypair
from the key file and use it to decrypt personalized tickets. - #270 Fix a bug in
EnsureApplicationSaveData
that wouldn't create a bcat save if any other bcat save already existed. - #271 Read TSEC secrets from the key file and use them to derive TSEC KEKs.
- #271 Validate the pk11 mac inside modern erista package1s if the proper key exists.
- #265 Properly separate prod and dev derived device keys in the KeySet class.
- #269 Update to .NET 7 and C# 11 and use some of the new features
- Use UTF-8 literals instead of manually defining byte spans.
- Remove all uses of InlineIL.Fody.
- Change the
Ref()
extension methods forUniqueRef
/SharedRef
to properties. - Use generic math throughout the project.
- Use
scoped
andUnscopedRef
so more lifetimes are tracked properly.
v0.17.0
hactoolnet
- #259 Add key sources for system version 15.0.0
- #260
- Automatically import title keys from tickets.
- Automatically apply updates when reading an XCI or NSP.
- Allow listing all contained NCAs, programs or applications.
- Allow specifying the title when an XCI or NSP contains more than one.
- Allow extracting ExeFS or RomFS directly from an NSP.
- #243
- 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 extracting section 3 from NCAs
- Ignore the relevant
LibHac
- #259 Add key sources for system version 15.0.0
- #258 Remove some leftover debug code for
CompressedStorage
- #248 Implement
DeviceOperator
and add the FS client shim functions that use it - #245 Implement the new save data file system cache from 14.0.0
- #247 Update FS shim classes for 14.0.0
- #246 Update save data handling functions for 14.0.0
- #263 Catch OutOfMemoryExceptions when calling RSA.VerifyData with an all-zero modulus on platforms that use OpenSSL 1.1
- #244 Implement a lot of the classes that are used for reading NCAs
v0.16.1
hactoolnet
- #242
- Support reading XCI files that contain the initial data/key area.
- Display more info when reading an XCI file.
LibHac
v0.16.0
hactoolnet
- #230 Support reading NCAs with compressed sections
LibHac
- #230 Support reading NCAs with compressed sections
- #227, #229, #234, #236 Update many FS classes to be accurate with system version 13.1.0
- #232 Fix checking the FS access control content owner info size
- #231 Be more resilient to invalid
DirectorySaveDataFileSystem
extra data states
There are miscellaneous small breaking changes in this version.
- Fixed-sized
ArrayN<T>
structs are used throughout the library instead of using other solutions such as structs with explicit layout. This may require some trivial changes in how these fields are accessed. Ns.ApplicationControlProperty
and its related structs and enums have been updated and tweaked. Its oldU8SpanMutable
properties are not defined by anArrayN<byte>
field and contain an additionalU8Span
<FieldName>String
property. If methods likeToString()
were called on the old properties, be sure to update them to use the newU8Span
properties instead of theArrayN<byte>
fields.- Some FS client function signatures were updated to match those of the original functions.
v0.15.0
hactoolnet
- Updated to use LibHac 0.15.0
LibHac
- #222 Reorganize the namespaces in the library
This version contains large breaking changes for the namespaces of many classes in the libraries.
To make updating from v0.14.3 easier, v0.15.0 only contains changes that involve reorganization of the library's namespace structure. APIs of individual classes and library functionality shouldn't be changed at all.
Due to how LibHac started off and then evolved, there was a lot of clutter with how the namespaces are organized. v0.15.0 cleans things up by partially reorganizing the library's namespaces based on a couple guidelines:
- The root
LibHac
namespace contains namespaces/code that follows the same structure as Nintendo's official code. e.g. "LibHac.FsSystem` - The
LibHac.Tools
namespace contains classes that do other things such as provide additional functionality (LikeLibHac.Tools.Fs.SwitchFs
), provide a more user-friendly API for working with things (LikeLibHac.Tools.FsSystem.NcaUtils
), etc.
v0.14.3
v0.14.2
v0.14.1
v0.14.0
hactoolnet
- #210 Add a
--disablekeywarns
option to suppress warnings when reading invalid external keys
LibHac
- #204 Update to the new path handling code used as of 12.0.0
Fs.Fsa
classes now use theFs.Path
struct for file paths- This is a breaking change for most operations on a raw
IFileSystem
- #207 Introduce
SharedRef<T>
andUniqueRef<T>
- These types are somewhat analogous to
std::shared_ptr
andstd::unique_ptr
in C++. They are used to help ensure objects are properly disposed once they are not being used anymore - Many functions that returned
IFileSystem
/IFile
/etc. objects now use these new types - This brings many breaking changes for code using most file system-related classes. In most cases updating is simple and mainly involves changing the returned type, and wrapping instances of the types in a
using
block - See #207 for rules on how to properly use these types
- These types are somewhat analogous to
- #206 Fix: Properly catch exceptions in LocalFileSystem.CleanDirectoryRecursively. Prevously exceptions wouldn't be caught and converted into
Result
codes - #208 Remove the deprecated
Kip
,Nacp
,Nso
,Package1
andPackage2
classes in favor of their new versions.