* Feat: external runtime manager Currently missing: mmap hook * we're past this ui todo * feat: Bypass Library Validation (untested) This bypass works because of JIT enabled, so the process can patch anything loaded in the memory. Unsigned dylib works with JIT too. * Fix `could not get real path` on iOS 14.x iOS 15+ is untested, it may need patching in dyld instead of libSystem * Make redirectFunction syscall-friendly Replaced builtin_mprotect and vm_protect with a simple syscall to _kernelrpc_mach_vm_protect_trap * Add dyld hook back for iOS 15+, auto symlink xawt lib * Cleanup Tools.java:showError+comments Use System.exit(1) to drop to Game Exited screen instead of presenting alert dialog on exception handled. * Patch both to bypass codesigning at best * Proper way of ignoring SIGBUS during patch Turns out other background thread might also be calling inside dirty page, so let's SIG_IGN them all until page permission is back to RX. * Feat(install jar): auto detect java version Rename Default version to Preferred version to match the behavior or Install .jar detection: only override if selected version > required version. Add UnzipKit just to check jar file Refactor(showDialog): remove viewController parameter, now use its own ViewController to present. * Feat: update LWJGL to 3.3.1 (tinygl4angle) add alias for GL_KHR_debug functions Include nanovg for OneConfig mod Move all LWJGLX classes to lwjgl3 repo Set org.lwjgl.util.NoChecks=true to improve performance * Fix: Forge 1.20 crashes (wrong artifact path) Now use json-provided artifact path instead of generating one Make lwjgl fat jar again * Fix: handle null library artifact * Fix: fatal glfw callback cleanup * Build: fix copying LWJGL libraries * Perf: set default settings * Fix: incorrect SolClient useStackQueue check * Feat: builtin runtime installer Refactor parts of LauncherNavigationController.m Workaround(LogView): disable animation on update to mitigate overload * Fix: random game directory failures This is caused by having current working directory unchanged after re-making symlink. * Fixes: TL-style artifact, update arc_dns_injector Change pojavInit names * Fix: 1.13+ isUseStackQueueCall check * Build: update liblwjgl.dylib in attempt to fix ffi_closure_alloc * Fix and improvements to the logger - Dynamically get stdout/stderr fileno instead of fixed value - Improve file migration logging - Improve dyld bypass logging * Fix(pickers): file permission issue --------- Co-authored-by: Duy Tran Khanh <[email protected]>
91 lines
1.6 KiB
Objective-C
91 lines
1.6 KiB
Objective-C
//
|
|
// UZKFileInfo.h
|
|
// UnzipKit
|
|
//
|
|
//
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
|
|
|
|
@class UZKArchive;
|
|
|
|
/**
|
|
* Defines the various compression levels that can be applied to a file
|
|
*/
|
|
typedef NS_ENUM(NSInteger, UZKCompressionMethod) {
|
|
/**
|
|
* Default level
|
|
*/
|
|
UZKCompressionMethodDefault= -1,
|
|
|
|
/**
|
|
* No compression
|
|
*/
|
|
UZKCompressionMethodNone= 0,
|
|
|
|
/**
|
|
* Fastest compression
|
|
*/
|
|
UZKCompressionMethodFastest= 1,
|
|
|
|
/**
|
|
* Best (slowest) compression
|
|
*/
|
|
UZKCompressionMethodBest= 9
|
|
};
|
|
|
|
|
|
@interface UZKFileInfo : NSObject
|
|
|
|
/**
|
|
* The name of the file
|
|
*/
|
|
@property (readonly, strong) NSString *filename;
|
|
|
|
/**
|
|
* The timestamp of the file
|
|
*/
|
|
@property (readonly, nonatomic) NSDate *timestamp;
|
|
|
|
/**
|
|
* The CRC checksum of the file
|
|
*/
|
|
@property (readonly) NSUInteger CRC;
|
|
|
|
/**
|
|
* Size of the uncompressed file
|
|
*/
|
|
@property (readonly) unsigned long long int uncompressedSize;
|
|
|
|
/**
|
|
* Size of the compressed file
|
|
*/
|
|
@property (readonly) unsigned long long int compressedSize;
|
|
|
|
/**
|
|
* YES if the file will be continued of the next volume
|
|
*/
|
|
@property (readonly) BOOL isEncryptedWithPassword;
|
|
|
|
/**
|
|
* YES if the file is a directory
|
|
*/
|
|
@property (readonly) BOOL isDirectory;
|
|
|
|
/**
|
|
* The type of compression
|
|
*/
|
|
@property (readonly) UZKCompressionMethod compressionMethod;
|
|
|
|
/**
|
|
* The POSIX permissions of the file, like you would get by retrieving the `NSFilePosixPermissions`
|
|
* key from the attributes NSFileManager returns. Assign in octal form, like 0777 in Objective-C or
|
|
* 0o777 in Swift
|
|
*/
|
|
@property (nonatomic, readonly) short posixPermissions;
|
|
|
|
|
|
|
|
@end
|