mirror of
https://github.com/StikDebug/StikDebug.git
synced 2026-10-15 20:10:30 +00:00
Heartbeat
This commit is contained in:
parent
e19fa94cba
commit
98c8eda180
12 changed files with 3054 additions and 98 deletions
|
|
@ -442,6 +442,10 @@
|
|||
IPHONEOS_DEPLOYMENT_TARGET = 18.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
|
||||
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/StikJIT/idevice",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 15.1;
|
||||
MARKETING_VERSION = 1.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.stik.StikJIT;
|
||||
|
|
@ -484,6 +488,10 @@
|
|||
IPHONEOS_DEPLOYMENT_TARGET = 18.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
|
||||
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/StikJIT/idevice",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 15.1;
|
||||
MARKETING_VERSION = 1.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.stik.StikJIT;
|
||||
|
|
|
|||
|
|
@ -5,40 +5,3 @@
|
|||
// Created by Stephen on 3/27/25.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
import em_proxy
|
||||
|
||||
// Debug View Model that calls the Swift bindings on startup.
|
||||
class DebugViewModel: ObservableObject {
|
||||
@Published var status: String = "Initializing..."
|
||||
@Published var logs: [String] = []
|
||||
|
||||
init() {
|
||||
startProxy()
|
||||
}
|
||||
|
||||
func startProxy() {
|
||||
let port = 62078
|
||||
let bindAddr = "127.0.0.1:\(port)"
|
||||
|
||||
DispatchQueue.global(qos: .background).async {
|
||||
DispatchQueue.main.async {
|
||||
self.status = "Starting em_proxy..."
|
||||
self.logs.append("Starting em_proxy on port \(port)...")
|
||||
}
|
||||
|
||||
// Call the Swift binding that wraps the heartbeat functionality.
|
||||
let result = start_emotional_damage(bindAddr)
|
||||
|
||||
DispatchQueue.main.async {
|
||||
if result == 0 {
|
||||
self.status = "em_proxy started successfully on port \(port)"
|
||||
self.logs.append("em_proxy started successfully on port \(port).")
|
||||
} else {
|
||||
self.status = "Failed to start em_proxy"
|
||||
self.logs.append("Failed to start em_proxy.")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
//
|
||||
// Use this file to import your target's public headers that you would like to expose to Swift.
|
||||
//
|
||||
|
||||
#include "idevice.h"
|
||||
#include "heartbeat.h"
|
||||
|
|
|
|||
|
|
@ -6,12 +6,41 @@
|
|||
//
|
||||
|
||||
import SwiftUI
|
||||
import em_proxy
|
||||
|
||||
@main
|
||||
struct StikJITApp: App {
|
||||
struct HeartbeatApp: App {
|
||||
var body: some Scene {
|
||||
WindowGroup {
|
||||
MainTabView()
|
||||
HomeView()
|
||||
.onAppear {
|
||||
startProxy()
|
||||
startHeartbeatInBackground()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func startHeartbeatInBackground() {
|
||||
DispatchQueue.global(qos: .background).async {
|
||||
startHeartbeat()
|
||||
}
|
||||
}
|
||||
func startProxy() {
|
||||
let port = 51820
|
||||
let bindAddr = "127.0.0.1:\(port)"
|
||||
|
||||
DispatchQueue.global(qos: .background).async {
|
||||
let result = start_emotional_damage(bindAddr)
|
||||
|
||||
DispatchQueue.main.async {
|
||||
if result == 0 {
|
||||
print("DEBUG: em_proxy started successfully on port \(port)")
|
||||
print("DEBUG: em_proxy started successfully on port \(port).")
|
||||
} else {
|
||||
print("DEBUG: Failed to start em_proxy")
|
||||
print("DEBUG: Failed to start em_proxy.")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,70 +7,26 @@
|
|||
|
||||
import SwiftUI
|
||||
|
||||
// Debug View displaying status and logs.
|
||||
struct DebugView: View {
|
||||
@StateObject private var viewModel = DebugViewModel()
|
||||
|
||||
var body: some View {
|
||||
VStack(spacing: 15) {
|
||||
Text("StikJIT Debug Panel")
|
||||
.font(.title)
|
||||
VStack {
|
||||
Spacer()
|
||||
Text("Welcome to StikJIT")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.foregroundColor(.primary)
|
||||
.padding(.top)
|
||||
|
||||
HStack {
|
||||
Circle()
|
||||
.fill(viewModel.status.contains("successfully") ? Color.green : viewModel.status.contains("Failed") ? Color.red : Color.yellow)
|
||||
.frame(width: 14, height: 14)
|
||||
|
||||
Text(viewModel.status)
|
||||
.font(.headline)
|
||||
.foregroundColor(.primary)
|
||||
}
|
||||
.padding(.bottom, 5)
|
||||
|
||||
Divider()
|
||||
.background(Color.secondary.opacity(0.3))
|
||||
|
||||
ScrollView {
|
||||
VStack(alignment: .leading, spacing: 5) {
|
||||
ForEach(viewModel.logs, id: \.self) { log in
|
||||
Text(log)
|
||||
.font(.system(.body, design: .monospaced))
|
||||
.foregroundColor(.secondary)
|
||||
.padding(.horizontal)
|
||||
}
|
||||
}
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
}
|
||||
.frame(maxHeight: 300)
|
||||
.background(RoundedRectangle(cornerRadius: 10).fill(Color(.systemGray6).opacity(0.5)))
|
||||
.padding()
|
||||
|
||||
Button(action: {
|
||||
viewModel.startProxy()
|
||||
}) {
|
||||
Label("Restart Proxy", systemImage: "arrow.clockwise")
|
||||
.font(.headline)
|
||||
.foregroundColor(.white)
|
||||
.padding()
|
||||
.frame(maxWidth: .infinity)
|
||||
.background(Color.blue)
|
||||
.cornerRadius(10)
|
||||
}
|
||||
.buttonStyle(PlainButtonStyle())
|
||||
.padding(.horizontal)
|
||||
.padding()
|
||||
|
||||
Text("Use the Debug tab to monitor the logs.")
|
||||
.font(.body)
|
||||
.foregroundColor(.secondary)
|
||||
.padding()
|
||||
Spacer()
|
||||
}
|
||||
.padding()
|
||||
.frame(width: 420, height: 500)
|
||||
.background(
|
||||
FancyBlurView()
|
||||
.cornerRadius(15)
|
||||
.shadow(radius: 10)
|
||||
)
|
||||
.padding()
|
||||
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
||||
.background(Color(.systemBackground))
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
DebugView()
|
||||
}
|
||||
|
|
|
|||
99
StikJIT/idevice/heartbeat.c
Normal file
99
StikJIT/idevice/heartbeat.c
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
// Jackson Coxson
|
||||
// heartbeat.c
|
||||
|
||||
#include "idevice.h"
|
||||
#include <arpa/inet.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/_types/_u_int64_t.h>
|
||||
#include <CoreFoundation/CoreFoundation.h>
|
||||
#include <limits.h>
|
||||
|
||||
void startHeartbeat() {
|
||||
printf("DEBUG: Initializing logger...\n");
|
||||
idevice_init_logger(Debug, Disabled, NULL);
|
||||
|
||||
struct sockaddr_in addr;
|
||||
memset(&addr, 0, sizeof(addr));
|
||||
addr.sin_family = AF_INET;
|
||||
addr.sin_port = htons(LOCKDOWN_PORT);
|
||||
if (inet_pton(AF_INET, "10.7.0.2", &addr.sin_addr) <= 0) {
|
||||
fprintf(stderr, "DEBUG: Error converting IP address.\n");
|
||||
return;
|
||||
}
|
||||
printf("DEBUG: Socket address created for IP 10.7.0.2 on port %d.\n", LOCKDOWN_PORT);
|
||||
|
||||
printf("DEBUG: Searching the app bundle for pairing_file.plist...\n");
|
||||
CFURLRef pairingFileURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(),
|
||||
CFSTR("pairing_file"),
|
||||
CFSTR("plist"),
|
||||
NULL);
|
||||
if (pairingFileURL == NULL) {
|
||||
fprintf(stderr, "DEBUG: Pairing file not found in the app bundle.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
char pairingFilePath[PATH_MAX];
|
||||
if (!CFURLGetFileSystemRepresentation(pairingFileURL, TRUE, (UInt8 *)pairingFilePath, PATH_MAX)) {
|
||||
fprintf(stderr, "DEBUG: Error converting pairing file URL to file system representation.\n");
|
||||
CFRelease(pairingFileURL);
|
||||
return;
|
||||
}
|
||||
CFRelease(pairingFileURL);
|
||||
printf("DEBUG: Pairing file found at path: %s\n", pairingFilePath);
|
||||
|
||||
printf("DEBUG: Reading pairing file...\n");
|
||||
IdevicePairingFile *pairing_file = NULL;
|
||||
IdeviceErrorCode err = idevice_pairing_file_read(pairingFilePath, &pairing_file);
|
||||
if (err != IdeviceSuccess) {
|
||||
fprintf(stderr, "DEBUG: Failed to read pairing file: %d\n", err);
|
||||
return;
|
||||
}
|
||||
printf("DEBUG: Pairing file read successfully.\n");
|
||||
|
||||
printf("DEBUG: Creating TCP provider...\n");
|
||||
TcpProviderHandle *provider = NULL;
|
||||
err = idevice_tcp_provider_new((struct sockaddr *)&addr, pairing_file,
|
||||
"ExampleProvider", &provider);
|
||||
if (err != IdeviceSuccess) {
|
||||
fprintf(stderr, "DEBUG: Failed to create TCP provider: %d\n", err);
|
||||
idevice_pairing_file_free(pairing_file);
|
||||
return;
|
||||
}
|
||||
printf("DEBUG: TCP provider created successfully.\n");
|
||||
|
||||
printf("DEBUG: Connecting to installation proxy...\n");
|
||||
HeartbeatClientHandle *client = NULL;
|
||||
err = heartbeat_connect_tcp(provider, &client);
|
||||
if (err != IdeviceSuccess) {
|
||||
fprintf(stderr, "DEBUG: Failed to connect to installation proxy: %d\n", err);
|
||||
tcp_provider_free(provider);
|
||||
return;
|
||||
}
|
||||
tcp_provider_free(provider);
|
||||
printf("DEBUG: Connected to installation proxy successfully.\n");
|
||||
|
||||
u_int64_t current_interval = 15;
|
||||
while (1) {
|
||||
u_int64_t new_interval = 0;
|
||||
printf("DEBUG: Sending heartbeat with current interval: %llu seconds...\n", current_interval);
|
||||
err = heartbeat_get_marco(client, current_interval, &new_interval);
|
||||
if (err != IdeviceSuccess) {
|
||||
fprintf(stderr, "DEBUG: Failed to get marco: %d\n", err);
|
||||
heartbeat_client_free(client);
|
||||
return;
|
||||
}
|
||||
printf("DEBUG: Received new interval: %llu seconds.\n", new_interval);
|
||||
current_interval = new_interval + 5;
|
||||
|
||||
printf("DEBUG: Sending polo reply...\n");
|
||||
err = heartbeat_send_polo(client);
|
||||
if (err != IdeviceSuccess) {
|
||||
fprintf(stderr, "DEBUG: Failed to send polo: %d\n", err);
|
||||
heartbeat_client_free(client);
|
||||
return;
|
||||
}
|
||||
printf("DEBUG: Polo reply sent successfully.\n");
|
||||
}
|
||||
}
|
||||
14
StikJIT/idevice/heartbeat.h
Normal file
14
StikJIT/idevice/heartbeat.h
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
//
|
||||
// heartbeat.h
|
||||
// StikJIT
|
||||
//
|
||||
// Created by Stephen on 3/27/25.
|
||||
//
|
||||
|
||||
// heartbeat.h
|
||||
#ifndef HEARTBEAT_H
|
||||
#define HEARTBEAT_H
|
||||
|
||||
void startHeartbeat();
|
||||
|
||||
#endif /* HEARTBEAT_H */
|
||||
1631
StikJIT/idevice/idevice.h
Normal file
1631
StikJIT/idevice/idevice.h
Normal file
File diff suppressed because it is too large
Load diff
BIN
StikJIT/idevice/libidevice_ffi.a
Normal file
BIN
StikJIT/idevice/libidevice_ffi.a
Normal file
Binary file not shown.
BIN
StikJIT/idevice/libplist-2.0.a
Normal file
BIN
StikJIT/idevice/libplist-2.0.a
Normal file
Binary file not shown.
159
StikJIT/idevice/pairing_file.plist
Normal file
159
StikJIT/idevice/pairing_file.plist
Normal file
|
|
@ -0,0 +1,159 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>DeviceCertificate</key>
|
||||
<data>
|
||||
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN1akNDQWFLZ0F3SUJBZ0lCQURB
|
||||
TkJna3Foa2lHOXcwQkFRVUZBREFBTUI0WERUSTFNRE15TnpBM01UQXoKTWxvWERUTTFN
|
||||
RE15TlRBM01UQXpNbG93QURDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBREND
|
||||
QVFvQwpnZ0VCQUxpZjNCS2VWUHlZSC85LzNKL2ZJeUdNSUdWbHNvWGJtWmJLYml1OGJo
|
||||
TFpnRkRjbEhtME1LODRNRk9iCkJFUW9NRkNlRFUwQWV1VHZzNlkrMERqQWlEbzJTTXZw
|
||||
TnpkbVlGZWtRL1JzWUtSN3VJSGJRc1h0bWJSU0FLRlgKdUpsZUNyMjdKeFpUSXNGT3FE
|
||||
bzRZNmdXWWptSVVXSm1qbXRtVXFoMTVYSFVTWFVOYnUwMVhRS0lqRFBScXRVaQpIakMr
|
||||
N0J4ZXVvNzBySlgwTldTcXdnSjQxNWEyRnNITUQyRW9FM2NIalNXU0dSWFFUazVKZkFH
|
||||
NHlJV1VLeVJOClZGNTVybDU5bjR3Q083SlR5U0sveHVCR09RWFNzVnFkUUY4NVE2ZFpi
|
||||
aDZNNHpTaDB4T3BYanNKVURFZUlLaUMKNC9IUmIxOEE1ZXBrVnlibURPcmhJa09TWGJr
|
||||
Q0F3RUFBYU0vTUQwd0RBWURWUjBUQVFIL0JBSXdBREFkQmdOVgpIUTRFRmdRVWFJNU9t
|
||||
aHBaL2JpeVA1N3d0KzBhVE1rODhUWXdEZ1lEVlIwUEFRSC9CQVFEQWdXZ01BMEdDU3FH
|
||||
ClNJYjNEUUVCQlFVQUE0SUJBUUEzV3NyTU93QWhDUDZkSVRGMG5YR09adUJnSnVrRkFs
|
||||
TWR1Zm8wL2ZIT2tVdE0KY2xJYU1WK05naFVUMGZVQWY2YlpnQUFyNW1xU0dkVDlxUFlw
|
||||
dFh3eU9FVFI5d2NMWTlZQWFCamtnbkJUWllTSwo2eGRZa3hZRHJOQ3lnZCtvR05CUXBT
|
||||
ME1BQ0lpWm9sNUNZZmgzK2d6UFJjUUZKeXVkaTNTVlJUaWRUSDNGV2lxCmpYT25kekpM
|
||||
RVBnZTZaUDJjZWZjMXI0anFaM3JHd1FabjlWWWxxTnFwUGk5aTNWSjNacTMrcnlsYWNT
|
||||
LzRMdHIKUGxtZnljQ0xWakF2djZxU3NPc1l3dGp3YllVRG52UDM0V0xnK2tMbFBOemlU
|
||||
cEV3NmxGdXdXRndXUVNSSUNHOApPV0QzeEliczB2RmtramdjaDhVTUVuUlZMRmNpWUV5
|
||||
bzJoN1F4MXpzCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
||||
</data>
|
||||
<key>HostPrivateKey</key>
|
||||
<data>
|
||||
LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcw
|
||||
QkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRQys5dENJa3pDLzZ6VXgKZ29YUGxCb3NH
|
||||
a1kzUThxbkVwSU1LczRIRU9aanM5RXAra1BoT3BxbWEzWGtmc2lvM1VFY2RVOUoybDM1
|
||||
YXB4RApseC83MGRSN2lNMFFmSU5aSXFiSHBHT3JaeGxuVjBxcysvNkNGbTM5ME9keUpW
|
||||
K2ptSnBZbFU3aXh0N3A0bWRyCjZLdGVLTGpDMW56VzFOVFdDL0dWNitZTk5PUDV5MThp
|
||||
dE9sOGt0YnBacTFtSjNCQURyaWdqOW1hQVpmbXFreWUKcmR6RDl1REFqUVdad2ZoZVIx
|
||||
U2piS0QwdGs5ZWpxZCtxdkdsMEd6OE56YUJDYXI0Qk9FTXcvSFl2eVhhS1Nwagp4L3Zo
|
||||
T2pkM0Y4S2xIcXZodWFOcVhCc3UrSlkzdVRzVzdIV3RwRGo4QlFCT2dpTks3UytlMnJ5
|
||||
ZytmR0FpZXV6ClVSbHJZSzhEQWdNQkFBRUNnZ0VBUSttczBkVmUwZklKRWRsMFV4VTls
|
||||
WSttaHdMeDhDYlhqOEl0VVMvK2IxakUKdXlRSXZmSEVqQWpOZlh4bFNrQ2Raa3lGN1NM
|
||||
ZXB0UDJUTWRURlpCUys3ZjBEYmZxVW1uVFhFNm5MNDdUNXYrUgpUQ0cyS25kbG1JMlJz
|
||||
Zk4rcHNTZnAzODU5Y1o2QWoyRlFFZ1hvYjNqcjA3dVNNeWFBS0Z3d2p1SnJncXdST1lr
|
||||
Ckw5ZTkxdnl2Rm9VWVlPWHpnRTE0dWxnK2NTSEdRTFh6bStDeEVEWWxUaEJ1Mi9HQUJ5
|
||||
RWZwUEtXN0pWS1ZUQ1YKdm0xSnI1Z0s5eVhYL1hEKzN5ZlBnd0RvZ3VNV3NNRFRURSti
|
||||
Q3BERVB2b3BxRVUxMEgrNldtRW1hbkZlVElLSwpIeElpaEoyOFhmWDBUNVd4QldTWFlK
|
||||
NGRETTVpdWMwYkZ6dzVvQVFsS1FLQmdRRG9zamxBSUNmWmZOVU43OGg1CjJheFFyZlhw
|
||||
MmpzL0xEc1pGUzlib0V0VjVjOW1yb0FWR1BpaXJIZ2VNUUMxWkNMaDRLek9ObC9wYXlq
|
||||
TVhkUnAKS0p6OGhtNTNtc1JkbVZ3OFo4WUozckFUanh6blRKMWN5c01QRGN3UC9zK3NG
|
||||
cFkybXk0b2hENFFvQ2FsMzc1QwpGelp5VHR5aUU3NjhwbG9wWHJQZmJpNE8xd0tCZ1FE
|
||||
U0ZxNGFUNGMwNFJKL1NuUTVDVGhMTWF1MTcrZE9DU0dZCjJvLzl5T3RmN1dlMHhjeHdK
|
||||
SEV2MXFqOHlDcWM4eFd1Yzcram84cVkzTGNKYVN6WEM3WGtlTXdXRDVhZFNVQ2MKVnhO
|
||||
WEFScFR0ZWxBOXB1VTBYWnNBWDJCV0hrTFhpb3BPb0h6SnVuMnR4NWYvdHluRFg2UFRJ
|
||||
YjgzOUJabDFSeQpQbVB5aVdBM3RRS0JnRHpNQy85QUo0bEFmMTREejBwZTRCRzRVZThH
|
||||
c01JaHFWTTFZTWs4eVZJcEdCWkk4M2dQCnJTNjdoeXJFUE40bnlxRmZsV2JQZUNIQmVN
|
||||
aGtuNUhXSmFZbzdZWGNidi9SaVBMVFhqL0g2aE5DS2hnWXdXaTAKSldDeWh5V0t1dkhJ
|
||||
ZVBqTmRMTHJVbGYvci9sWXl4bnpmS3REQll4blFrZUI0ejY1MnA4KzUxUERBb0dCQUtH
|
||||
UwpNNytrWGhWNjYyRGQvOWhGa1BlemNaMXdyWEZFY0lRL3d2R283ZXhPaHExdVdiWDlN
|
||||
TmRidlliNjRscm1VRXhrClZJUWpXWktLWEhKdVlyL1lEOEZ3YlhTaDlIRnVmclE5KzIr
|
||||
ME4yMGR3QS9vR09zdzFHUm9HUCs2N1F5akZNVzAKYTNCM0F3UnMvSDFUWXB0UE00QTlt
|
||||
S3N0N2V5WkI2YjgrSnowcmZ6cEFvR0FkaGYyOFNuZVFzOEkzM0ZHRXdFcwpJellJWStI
|
||||
Q2ZjU2UrU2k0UWZuSmtqWW96NS95ZlJpK3MrUE9tdWxXMXVxM0pMdGlSNGsydlpUWXl5
|
||||
OUt5L1lXCjJwUHhJOURuY0VhUlBTYW5tb0FBck1uYlVER1hsT2JOakJEWldOSTVhenUr
|
||||
ZzZ6bE91UkYzRE5wUC9CTm54WWgKdUpXenI1Y1VqMlI3bURMTFRCMFFCcjg9Ci0tLS0t
|
||||
RU5EIFBSSVZBVEUgS0VZLS0tLS0K
|
||||
</data>
|
||||
<key>HostCertificate</key>
|
||||
<data>
|
||||
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNtekNDQVlPZ0F3SUJBZ0lCQURB
|
||||
TkJna3Foa2lHOXcwQkFRVUZBREFBTUI0WERUSTFNRE15TnpBM01UQXoKTWxvWERUTTFN
|
||||
RE15TlRBM01UQXpNbG93QURDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBREND
|
||||
QVFvQwpnZ0VCQUw3MjBJaVRNTC9yTlRHQ2hjK1VHaXdhUmpkRHlxY1NrZ3dxemdjUTVt
|
||||
T3owU242UStFNm1xWnJkZVIrCnlLamRRUngxVDBuYVhmbHFuRU9YSC92UjFIdUl6UkI4
|
||||
ZzFraXBzZWtZNnRuR1dkWFNxejcvb0lXYmYzUTUzSWwKWDZPWW1saVZUdUxHM3VuaVoy
|
||||
dm9xMTRvdU1MV2ZOYlUxTllMOFpYcjVnMDA0L25MWHlLMDZYeVMxdWxtcldZbgpjRUFP
|
||||
dUtDUDJab0JsK2FxVEo2dDNNUDI0TUNOQlpuQitGNUhWS05zb1BTMlQxNk9wMzZxOGFY
|
||||
UWJQdzNOb0VKCnF2Z0U0UXpEOGRpL0pkb3BLbVBIKytFNk4zY1h3cVVlcStHNW8ycGNH
|
||||
eTc0bGplNU94YnNkYTJrT1B3RkFFNkMKSTBydEw1N2F2S0Q1OFlDSjY3TlJHV3RncndN
|
||||
Q0F3RUFBYU1nTUI0d0RBWURWUjBUQVFIL0JBSXdBREFPQmdOVgpIUThCQWY4RUJBTUNC
|
||||
YUF3RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUZBbkEyUjFObGF2bVZGQm51ZnAyb0lM
|
||||
CitOYXcrYXZpcmJBYVBnRHR4MXNTNzRsNFQ2eTdOWDFsdlFxY1Nqa01Salp6TmEvQUdX
|
||||
VkNiaVovNUZCZjF4eWIKbmcrSjliL3VKWVpBRVBXaUEyanlVZlZ2UnI1aVVDdHdGZFBY
|
||||
VmZuU2hOcXpxSjZuUEw5V1FoWm40dy9LdXJFRQovNU1kTnkxWnh1YytmczZHUzd1K3Ey
|
||||
ZHpnQUJiYjN1NFIwRU1rL1pWV2pwKzRsaVZYd29UbVhyY2Z5OThqZWNsClY5RHF4V0ZJ
|
||||
Q1BvTkdZbHcrT0R2TDdieFNERzhKaHBZOHJOVFNYYU1rUmJPNS91M0RnY0hWY2haNjVD
|
||||
czlIRVEKem1IQXV5TGttdUE1Mzd1dVFvTHlYVUkrZmtHZGNmRjNwZ1VveUhzaFQ3ZlJx
|
||||
QzhuTW9aWlNjdDVtc244a0RBPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
|
||||
</data>
|
||||
<key>RootPrivateKey</key>
|
||||
<data>
|
||||
LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcw
|
||||
QkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRRE1kQmJTTkZtbURKUXMKb1U1ZVFQRFEy
|
||||
NVhBN3RkUVdnaG9obUN0NU54UUUvR21rUjhNODNWUHg0WmMvSlZyUFJ0QUE5Rms0TzBE
|
||||
VnFnYgpkNTJHZmVaa0xjWFlVVi9aWU9MQW5JbTM1bGJCNjVlRGIvb21sT2txOE95c21I
|
||||
SS9SbmczWDZBQVVYWENsK3NQCkxjT3BYaFdHRzhBRzNONDk2cHN6c2hIN2R4dG1wTU9B
|
||||
bHBVZHdaeVhXaVVDMFdsd3p0RXB5YXFvWWxOdS9GUVIKRkNEZ0l3Rlc4Ny8xSVZWYlEx
|
||||
dVlOL1l1MXVENytrT2ZPRHNlUnkrc1JwQ2NGVWI2U1R5aFdmQnhic1ZUQ3puVwpwZ21Q
|
||||
M284SFFaM2RGMzlHa1BIZTJJQnBXc1l2bEdoUFNqaVVibm03a1FXeGhrZ3ZNSE1yUmt5
|
||||
a2U1TTY1U3EwCjJNWW5IdUFiQWdNQkFBRUNnZ0VCQUtTeGZ4Q2xDdkl2Zjh6VHc0VTVX
|
||||
c05qbnlaalB4NkM1L01MRENZSURWQ1UKUUR5aytoWThwMnMwbG8raEI5dnl4Vml6dXFG
|
||||
QWJxd1p5aUVXSWRhTTVHSWVYUmo3cy9JdmtYa0dvQWw3aXJkNwpSL21nNGlqaUcxRno4
|
||||
YksydXBFdCt2amdGc3NxMDJtRlp0dzdTVG5OaUJrWGtYLzF1ekMxSTRCcEdRTXYxdXEr
|
||||
CnErZnRRTktsQVd1TUJxclJCajNDd01nME5udzJtdnU4aUhhQXVCRU1mL1pKd1JyVVdV
|
||||
UEhxMzFBQml1U0c3NXUKOWZ0SkIwaVZ3RVY0S21vQ0h3MVhGbTFUZjlPZ3h3Nnl5SUFN
|
||||
YXNsdkdtN0NPM1lpYWdZUzFmYnJqWDVwUWJ4aQpjTWNnNHhKdUhicTQ5MWxTZCtNOVFt
|
||||
dVRDdEtETkZyWVRGMHhMVVMwV0VFQ2dZRUEvcld5SkhXVWMwNDZGUFNJCktQSU1LRTFR
|
||||
ZlV6SFlQeWRSV1BQUmxFeVg1MW9SbURGZnpsaDBUVSs5QlRJOFNKNmVGbFBMMktZTS9C
|
||||
cjI0VTQKZUIwbHNHbS9EeWt6anBIZG1TVHZYbmN3Q1ZCTEQ4N1JUampiK015ZVV2TEln
|
||||
QlVzYUJhODZJS2VpdXgxQUhWTgpFM0E0VEZmRzJ2dXFsYk85Mno3ajFnK3NyejhDZ1lF
|
||||
QXpYMDR2RHBJdzBGZy9pT0NBSWUzaUdwUllaSjVSeWsxCmFVakprdm10b1VqWE5BbjBl
|
||||
RlFUV3ZUdndqclZkTjdxemZwT1hOZlN5U3VBS2M4bVVTeTJ3SE4wVlRPK3lnNmEKQlhk
|
||||
MTFJbmZiQ2owa003dkxTdjdOWGJ0c1pYT2NUYm1QOSsweTAwZlErc2Y5NlYyVE9NRng1
|
||||
VmN6eFl2ZjFkZwpPWVFERmV6L2RDVUNnWUJzSVZxRkc5MXZyZS8rWVdsRWFLMDhsc1hx
|
||||
eTZPQXl2MUJMZ1FhaC9Ib29YeFpGRkFECm1LcXNFL3lyeGY4Z1QxREtzcTlwSUdRWStL
|
||||
SHhTWGNWbHRvZk1HVkozR1hreW92V3JkVm90eFNQZjZTK0MwRFUKQWxOd0pmMjRuUlQ5
|
||||
T3YvbEdISU9DeFdmU0k3TEtRRVZsWGh4QUhxTkVIWDBvNStmNmV6elBTaEVKUUtCZ1FD
|
||||
MgovR09oZW1XQk9wOGNzSkg3MXQ5ZzR3eEZUeUlnZEZuVHY3V0E1RVh4OGVOeHU4dXZ1
|
||||
MjdnK0d6cEVXc3ovNjRvCmJsV0o1OGNVelYvNzJ6UEw1WDE0TTFmTTU1OW1YMHBZdytC
|
||||
eHU3VHhwQ2JsTE9GZjRHSjdZY1NZOTBZM0d5USsKalA5NmF0c0VxRVIzU3lqbG51UnVy
|
||||
bHRQTGZwdDgya0V6c0hRckpOdTRRS0JnSDIwNXMwaEpaMkk0YS9JWE5aawo3N1d5YXlu
|
||||
R2Y0YTFMUkw1bmJHOWl1TkJlT3FGVGJRQ3hIbVFmQ0daZ01vajZta2RMeTRNZHhXN05C
|
||||
U0JrRzdZCmQ3SVNPbUx4QzRsSU85Rnp6eEpheDZKR3FIcWFkSDBTVzcydjlQTUJOTXFi
|
||||
UXdYeWc3RUNMVTlPaThWNVZQR20KcHh4cG8vMytWMVgrY003dDdHRVBSNDM3Ci0tLS0t
|
||||
RU5EIFBSSVZBVEUgS0VZLS0tLS0K
|
||||
</data>
|
||||
<key>RootCertificate</key>
|
||||
<data>
|
||||
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNqakNDQVhhZ0F3SUJBZ0lCQURB
|
||||
TkJna3Foa2lHOXcwQkFRVUZBREFBTUI0WERUSTFNRE15TnpBM01UQXoKTWxvWERUTTFN
|
||||
RE15TlRBM01UQXpNbG93QURDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBREND
|
||||
QVFvQwpnZ0VCQU14MEZ0STBXYVlNbEN5aFRsNUE4TkRibGNEdTExQmFDR2lHWUszazNG
|
||||
QVQ4YWFSSHd6emRVL0hobHo4CmxXczlHMEFEMFdUZzdRTldxQnQzbllaOTVtUXR4ZGhS
|
||||
WDlsZzRzQ2NpYmZtVnNIcmw0TnYraWFVNlNydzdLeVkKY2o5R2VEZGZvQUJSZGNLWDZ3
|
||||
OHR3NmxlRllZYndBYmMzajNxbXpPeUVmdDNHMmFrdzRDV2xSM0JuSmRhSlFMUgphWERP
|
||||
MFNuSnFxaGlVMjc4VkJFVUlPQWpBVmJ6di9VaFZWdERXNWczOWk3VzRQdjZRNTg0T3g1
|
||||
SEw2eEdrSndWClJ2cEpQS0ZaOEhGdXhWTUxPZGFtQ1kvZWp3ZEJuZDBYZjBhUThkN1ln
|
||||
R2xheGkrVWFFOUtPSlJ1ZWJ1UkJiR0cKU0M4d2N5dEdUS1I3a3pybEtyVFl4aWNlNEJz
|
||||
Q0F3RUFBYU1UTUJFd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBTgpCZ2txaGtpRzl3MEJB
|
||||
UVVGQUFPQ0FRRUFDdTRUQi9vWnJHQStUS0M4a0YvWU9QcjVyTEpnQkRaaVVVNnNqQ0d6
|
||||
Ckk5QzV5dXZnSHc0bXlISnNoVjFaNDQxeDl6RDN2OGZvVTRuRldtbkhGa3h4TG9zaDNi
|
||||
Zk5mM09ObVB5dkV0amgKMEhWQU5ydUozVXg4YzZtNmdRQjlpMGk4UkVJcUs2RWFwOXJz
|
||||
bDkwN3ZSTityTFZmWGFuSU9BQzU5RUV4WnpiMwplYWF4S0YwM1czcUJFZUlyUEUxT3hQ
|
||||
eUFpSi9Ic29nRU1JYVo4SlJjaCtmSGJWeGFXcmxwSnlGNExGdWROYituCnEzdGx3QUVO
|
||||
NkV3Wk02VFkwSUlXdzg4aElYdEtZdXlCWldLcHloWjkxcUJoUDZWKzhaMHFMallGbWtV
|
||||
U29PQ2UKajBVeTBGNVMwMWQzbVJGR1YvZzBpakR2dmoyMm9acXM0dzQvei9vREN0YWtx
|
||||
Zz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
||||
</data>
|
||||
<key>SystemBUID</key>
|
||||
<string>A805572C-254B-4E89-8834-69AC330F8C0F</string>
|
||||
<key>HostID</key>
|
||||
<string>B8908445-96B8-A598-2E42-37EE5108C1FC</string>
|
||||
<key>EscrowBag</key>
|
||||
<data>
|
||||
dBHuB7agDgAU1p2P7o2d/XQw2stjvTNo4Q2oXTHRVp8=
|
||||
</data>
|
||||
<key>WiFiMACAddress</key>
|
||||
<string>c4:c1:7d:ab:e1:9b</string>
|
||||
<key>UDID</key>
|
||||
<string>00008130-0011356808A1401C</string>
|
||||
</dict>
|
||||
</plist>
|
||||
1094
StikJIT/idevice/plist.h
Normal file
1094
StikJIT/idevice/plist.h
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue