mirror of
https://github.com/StikDebug/StikDebug.git
synced 2026-10-16 04:20:30 +00:00
Merge branch '0-Blu:main' into fix-version-smh
This commit is contained in:
commit
87ec74437f
7 changed files with 53 additions and 29 deletions
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
<div align="center">
|
||||
<h1><b>StikJIT</b></h1>
|
||||
<p><i>~ A on-device JIT enabler for iOS versions 17.4+ (excluding iOS 18.4 beta 1), powered by <a href="https://github.com/jkcoxson/idevice">idevice</a> ~</i></p>
|
||||
<p><i> A on-device JIT enabler for iOS versions 17.4+ (excluding iOS 18.4 beta 1), powered by <a href="https://github.com/jkcoxson/idevice">idevice</a> </i></p>
|
||||
</div>
|
||||
<h6 align="center">
|
||||
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
</h6>
|
||||
|
||||
## Requirements
|
||||
[StossVPN](https://testflight.apple.com/join/hBUbg4ZJ) is required. This allows the device to connect to itself.
|
||||
[StosVPN](https://testflight.apple.com/join/hBUbg4ZJ) is required. This allows the device to connect to itself.
|
||||
|
||||
## Features
|
||||
- On-device Just-In-Time (JIT) compilation for supported apps via [`idevice`](https://github.com/jkcoxson/idevice).
|
||||
|
|
|
|||
|
|
@ -6,11 +6,6 @@
|
|||
objectVersion = 77;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
DC5716262D95648B0099302E /* em_proxy.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC5716242D9564760099302E /* em_proxy.xcframework */; };
|
||||
DC5716272D95648B0099302E /* em_proxy.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DC5716242D9564760099302E /* em_proxy.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
DC6F1D492D94EADF0071B2B6 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
|
|
@ -28,20 +23,6 @@
|
|||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
DC5716282D95648B0099302E /* Embed Frameworks */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
DC5716272D95648B0099302E /* em_proxy.xcframework in Embed Frameworks */,
|
||||
);
|
||||
name = "Embed Frameworks";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
DC5716242D9564760099302E /* em_proxy.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = em_proxy.xcframework; sourceTree = "<group>"; };
|
||||
DC6F1D372D94EADD0071B2B6 /* StikJIT.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = StikJIT.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
|
|
@ -85,7 +66,6 @@
|
|||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
DC5716262D95648B0099302E /* em_proxy.xcframework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -145,7 +125,6 @@
|
|||
DC6F1D332D94EADD0071B2B6 /* Sources */,
|
||||
DC6F1D342D94EADD0071B2B6 /* Frameworks */,
|
||||
DC6F1D352D94EADD0071B2B6 /* Resources */,
|
||||
DC5716282D95648B0099302E /* Embed Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
|
|
|
|||
|
|
@ -4,3 +4,5 @@
|
|||
|
||||
#include "idevice/JITEnableContext.h"
|
||||
#include "idevice/idevice.h"
|
||||
#include "idevice/em_proxy.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
|
||||
import SwiftUI
|
||||
import Network
|
||||
import em_proxy
|
||||
import UniformTypeIdentifiers
|
||||
|
||||
let fileManager = FileManager.default
|
||||
|
|
|
|||
|
|
@ -19,15 +19,19 @@ class AppStoreIconFetcher {
|
|||
return
|
||||
}
|
||||
|
||||
iconFetchDispatchQueue.sync {
|
||||
iconFetchDispatchQueue.async {
|
||||
do {
|
||||
let ans = try JITEnableContext.shared.getAppIcon(withBundleId: bundleID)
|
||||
iconCache[bundleID] = ans
|
||||
completion(ans)
|
||||
DispatchQueue.main.async {
|
||||
iconCache[bundleID] = ans
|
||||
completion(ans)
|
||||
}
|
||||
} catch {
|
||||
print("Failed to get icon: \(error)")
|
||||
completion(nil)
|
||||
DispatchQueue.main.async {
|
||||
completion(nil)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
40
StikJIT/idevice/em_proxy.h
Normal file
40
StikJIT/idevice/em_proxy.h
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
// Jackson Coxson
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
/**
|
||||
* Starts your emotional damage
|
||||
* # Arguments
|
||||
* * `bind_addr` - The UDP socket to listen to
|
||||
* # Returns
|
||||
* A handle to stop further emotional damage.
|
||||
* Null on failure
|
||||
* # Safety
|
||||
* Don't be stupid
|
||||
*/
|
||||
int start_emotional_damage(const char *bind_addr);
|
||||
|
||||
/**
|
||||
* Stops further emotional damage
|
||||
* # Arguments
|
||||
* * `handle` - The coping mechanism generated by start_emotional_damage
|
||||
* # Returns
|
||||
* The knowledge of knowing that you couldn't handle failure
|
||||
* # Safety
|
||||
* Don't be stupid
|
||||
*/
|
||||
void stop_emotional_damage(void);
|
||||
|
||||
/**
|
||||
* Blocks until Wireguard is ready
|
||||
* # Arguments
|
||||
* * `timeout` - The timeout in miliseconds to wait for Wireguard
|
||||
* # Returns
|
||||
* 0 on success, -1 on failure
|
||||
*/
|
||||
int test_emotional_damage(int timeout);
|
||||
BIN
StikJIT/idevice/libem_proxy.a
Normal file
BIN
StikJIT/idevice/libem_proxy.a
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue