project: enable bridged networking

We make QEMULauncher an app bundle in order to use a provisioning profile.

Resolves #358
This commit is contained in:
osy 2021-07-11 20:39:40 -07:00
parent 90e5e03007
commit 17e262ffc9
6 changed files with 127 additions and 102 deletions

View File

@ -36,3 +36,11 @@ PROVISIONING_PROFILE_SPECIFIER_MAC = 00000000-1111-2222-3333-444444444444
// from the following file
// - QEMUHelper/QEMUHelper.entitlements
PROVISIONING_PROFILE_SPECIFIER_HELPER = 00000000-1111-2222-3333-555555555555
// Create a Mac provisioning profile for com.myuniquename.QEMULauncher with the
// Hypervisor entitlements and get its UUID. If you do not have access to these
// entitlements, comment out the line and delete the following entitlements
// - com.apple.vm.networking
// from the following file
// - QEMULauncher/QEMULauncher.entitlements
PROVISIONING_PROFILE_SPECIFIER_LAUNCHER = 00000000-1111-2222-3333-555555555555

View File

@ -26,14 +26,7 @@ struct VMConfigNetworkView: View {
Form {
Section(header: Text("Hardware"), footer: EmptyView().padding(.bottom)) {
#if os(macOS)
// FIXME: when vmnet entitlement bug is fixed update with proper macOS version
if #available(macOS 99.0, *) {
NetworkModeSection(config: config)
} else {
Toggle(isOn: $config.networkEnabled.animation(), label: {
Text("Enabled")
})
}
NetworkModeSection(config: config)
#else
Toggle(isOn: $config.networkEnabled.animation(), label: {
Text("Enabled")

View File

@ -113,7 +113,7 @@
NSMutableArray<NSString *> *newArgv = [argv mutableCopy];
NSString *path = [libraryPath URLByAppendingPathComponent:binName].path;
[newArgv insertObject:path atIndex:0];
task.executableURL = [[NSBundle mainBundle] URLForAuxiliaryExecutable:@"QEMULauncher"];
task.executableURL = [[[NSBundle mainBundle] URLForAuxiliaryExecutable:@"QEMULauncher.app"] URLByAppendingPathComponent:@"Contents/MacOS/QEMULauncher"];
task.arguments = newArgv;
task.standardOutput = standardOutput;
task.standardError = standardError;

View File

@ -10,5 +10,7 @@
<true/>
<key>com.apple.security.hypervisor</key>
<true/>
<key>com.apple.vm.networking</key>
<true/>
</dict>
</plist>

View File

@ -29,6 +29,9 @@
2CE8EB0A2572E173000E2EBB /* qapi-visit-block-export.c in Sources */ = {isa = PBXBuildFile; fileRef = 2CE8EB082572E173000E2EBB /* qapi-visit-block-export.c */; };
2CE8EB41257811E8000E2EBB /* UTMConfiguration+Defaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CE8EB40257811E8000E2EBB /* UTMConfiguration+Defaults.m */; };
2CE8EB42257811E8000E2EBB /* UTMConfiguration+Defaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CE8EB40257811E8000E2EBB /* UTMConfiguration+Defaults.m */; };
8401FD71269BEB2B00265F0D /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = CE6B240A25F1F3CE0020D43E /* main.c */; };
8401FD72269BEB3000265F0D /* Bootstrap.c in Sources */ = {isa = PBXBuildFile; fileRef = CE0DF17125A80B6300A51894 /* Bootstrap.c */; };
8401FD7A269BECE200265F0D /* QEMULauncher.app in Embed Launcher */ = {isa = PBXBuildFile; fileRef = 8401FD62269BE9C500265F0D /* QEMULauncher.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
CE020BA324AEDC7C00B44AB6 /* UTMData.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE020BA224AEDC7C00B44AB6 /* UTMData.swift */; };
CE020BA424AEDC7C00B44AB6 /* UTMData.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE020BA224AEDC7C00B44AB6 /* UTMData.swift */; };
CE020BA724AEDEF000B44AB6 /* Logging in Frameworks */ = {isa = PBXBuildFile; productRef = CE020BA624AEDEF000B44AB6 /* Logging */; };
@ -643,9 +646,6 @@
CE4EF2722506DD7900E9D33B /* VMRemovableDrivesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE4EF2712506DD7900E9D33B /* VMRemovableDrivesView.xib */; };
CE5076DB250AB55D00C26C19 /* VMDisplayMetalViewController+Pencil.m in Sources */ = {isa = PBXBuildFile; fileRef = CE5076DA250AB55D00C26C19 /* VMDisplayMetalViewController+Pencil.m */; };
CE612AC624D3B50700FA6300 /* VMDisplayWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE612AC524D3B50700FA6300 /* VMDisplayWindowController.swift */; };
CE6B240B25F1F3CE0020D43E /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = CE6B240A25F1F3CE0020D43E /* main.c */; };
CE6B241125F1F53E0020D43E /* Bootstrap.c in Sources */ = {isa = PBXBuildFile; fileRef = CE0DF17125A80B6300A51894 /* Bootstrap.c */; };
CE6B241525F1F5780020D43E /* QEMULauncher in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE6B240825F1F3CE0020D43E /* QEMULauncher */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
CE6D21DC2553A6ED001D29C5 /* VMConfirmActionModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE6D21DB2553A6ED001D29C5 /* VMConfirmActionModifier.swift */; };
CE6D21DD2553A6ED001D29C5 /* VMConfirmActionModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE6D21DB2553A6ED001D29C5 /* VMConfirmActionModifier.swift */; };
CE772AAC25C8B0F600E4E379 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE772AAB25C8B0F600E4E379 /* ContentView.swift */; };
@ -1138,11 +1138,11 @@
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
CE6B241225F1F55C0020D43E /* PBXContainerItemProxy */ = {
8401FD7B269BECF200265F0D /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = CE550BC1225947990063E575 /* Project object */;
proxyType = 1;
remoteGlobalIDString = CE6B240725F1F3CE0020D43E;
remoteGlobalIDString = 8401FD61269BE9C500265F0D;
remoteInfo = QEMULauncher;
};
CE9A353226533A52005077CF /* PBXContainerItemProxy */ = {
@ -1319,14 +1319,15 @@
name = "Embed Libraries";
runOnlyForDeploymentPostprocessing = 0;
};
CE6B241425F1F5630020D43E /* CopyFiles */ = {
CE6B241425F1F5630020D43E /* Embed Launcher */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 6;
files = (
CE6B241525F1F5780020D43E /* QEMULauncher in CopyFiles */,
8401FD7A269BECE200265F0D /* QEMULauncher.app in Embed Launcher */,
);
name = "Embed Launcher";
runOnlyForDeploymentPostprocessing = 0;
};
CEA45F71263519B5002FA97D /* Embed Libraries */ = {
@ -1430,6 +1431,7 @@
52873FDA247F5B1B0063E4C8 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
83FBDD53242FA71900D2C5D7 /* VMDisplayMetalViewController+Pointer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "VMDisplayMetalViewController+Pointer.h"; sourceTree = "<group>"; };
83FBDD55242FA7BC00D2C5D7 /* VMDisplayMetalViewController+Pointer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "VMDisplayMetalViewController+Pointer.m"; sourceTree = "<group>"; };
8401FD62269BE9C500265F0D /* QEMULauncher.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = QEMULauncher.app; sourceTree = BUILT_PRODUCTS_DIR; };
C8958B6C243634DA002D86B4 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Main.strings; sourceTree = "<group>"; };
C8958B6D243634DA002D86B4 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = "<group>"; };
CE020BA224AEDC7C00B44AB6 /* UTMData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UTMData.swift; sourceTree = "<group>"; };
@ -1863,7 +1865,6 @@
CE66450E2269355F00B0849A /* CocoaSpice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CocoaSpice.h; sourceTree = "<group>"; };
CE66450F226935F000B0849A /* CSInput.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSInput.h; sourceTree = "<group>"; };
CE664510226935F000B0849A /* CSInput.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CSInput.m; sourceTree = "<group>"; };
CE6B240825F1F3CE0020D43E /* QEMULauncher */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = QEMULauncher; sourceTree = BUILT_PRODUCTS_DIR; };
CE6B240A25F1F3CE0020D43E /* main.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = "<group>"; };
CE6B240F25F1F43A0020D43E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
CE6B241025F1F4B30020D43E /* QEMULauncher.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = QEMULauncher.entitlements; sourceTree = "<group>"; };
@ -2037,6 +2038,13 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
8401FD5F269BE9C500265F0D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
CE2D932B24AD46670059923A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@ -2775,9 +2783,9 @@
CE2D93BE24AD46670059923A /* UTM.app */,
CE2D951C24AD48BE0059923A /* UTM.app */,
CEBDA1DA24D8BDDA0010B5EC /* QEMUHelper.xpc */,
CE6B240825F1F3CE0020D43E /* QEMULauncher */,
CEA45FB9263519B5002FA97D /* UTM SE.app */,
CE9A352D26533A51005077CF /* JailbreakInterposer.framework */,
8401FD62269BE9C500265F0D /* QEMULauncher.app */,
);
name = Products;
sourceTree = "<group>";
@ -3081,6 +3089,23 @@
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8401FD61269BE9C500265F0D /* QEMULauncher */ = {
isa = PBXNativeTarget;
buildConfigurationList = 8401FD6E269BE9C600265F0D /* Build configuration list for PBXNativeTarget "QEMULauncher" */;
buildPhases = (
8401FD5E269BE9C500265F0D /* Sources */,
8401FD5F269BE9C500265F0D /* Frameworks */,
8401FD60269BE9C500265F0D /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = QEMULauncher;
productName = QEMULauncher;
productReference = 8401FD62269BE9C500265F0D /* QEMULauncher.app */;
productType = "com.apple.product-type.application";
};
CE2D926824AD46670059923A /* iOS */ = {
isa = PBXNativeTarget;
buildConfigurationList = CE2D93BB24AD46670059923A /* Build configuration list for PBXNativeTarget "iOS" */;
@ -3129,21 +3154,6 @@
productReference = CE2D951C24AD48BE0059923A /* UTM.app */;
productType = "com.apple.product-type.application";
};
CE6B240725F1F3CE0020D43E /* QEMULauncher */ = {
isa = PBXNativeTarget;
buildConfigurationList = CE6B240E25F1F3CE0020D43E /* Build configuration list for PBXNativeTarget "QEMULauncher" */;
buildPhases = (
CE6B240425F1F3CE0020D43E /* Sources */,
);
buildRules = (
);
dependencies = (
);
name = QEMULauncher;
productName = QEMULauncher;
productReference = CE6B240825F1F3CE0020D43E /* QEMULauncher */;
productType = "com.apple.product-type.tool";
};
CE9A352C26533A51005077CF /* JailbreakInterposer */ = {
isa = PBXNativeTarget;
buildConfigurationList = CE9A353826533A52005077CF /* Build configuration list for PBXNativeTarget "JailbreakInterposer" */;
@ -3192,12 +3202,12 @@
CEBDA1D624D8BDDA0010B5EC /* Sources */,
CEBDA1D724D8BDDA0010B5EC /* Frameworks */,
CEBDA1D824D8BDDA0010B5EC /* Resources */,
CE6B241425F1F5630020D43E /* CopyFiles */,
CE6B241425F1F5630020D43E /* Embed Launcher */,
);
buildRules = (
);
dependencies = (
CE6B241325F1F55C0020D43E /* PBXTargetDependency */,
8401FD7C269BECF200265F0D /* PBXTargetDependency */,
);
name = QEMUHelper;
productName = QEMUHelper;
@ -3214,6 +3224,9 @@
LastUpgradeCheck = 1020;
ORGANIZATIONNAME = osy;
TargetAttributes = {
8401FD61269BE9C500265F0D = {
CreatedOnToolsVersion = 12.4;
};
CE2D926824AD46670059923A = {
LastSwiftMigration = 1200;
};
@ -3221,9 +3234,6 @@
CreatedOnToolsVersion = 12.0;
LastSwiftMigration = 1200;
};
CE6B240725F1F3CE0020D43E = {
CreatedOnToolsVersion = 12.5;
};
CE9A352C26533A51005077CF = {
CreatedOnToolsVersion = 12.4;
};
@ -3256,13 +3266,20 @@
CEA45E1F263519B5002FA97D /* iOS-TCI */,
CE2D951B24AD48BE0059923A /* macOS */,
CEBDA1D924D8BDDA0010B5EC /* QEMUHelper */,
CE6B240725F1F3CE0020D43E /* QEMULauncher */,
8401FD61269BE9C500265F0D /* QEMULauncher */,
CE9A352C26533A51005077CF /* JailbreakInterposer */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8401FD60269BE9C500265F0D /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
CE2D936924AD46670059923A /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@ -3399,6 +3416,15 @@
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8401FD5E269BE9C500265F0D /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8401FD72269BEB3000265F0D /* Bootstrap.c in Sources */,
8401FD71269BEB2B00265F0D /* main.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
CE2D926924AD46670059923A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@ -3883,15 +3909,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
CE6B240425F1F3CE0020D43E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
CE6B241125F1F53E0020D43E /* Bootstrap.c in Sources */,
CE6B240B25F1F3CE0020D43E /* main.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
CE9A352926533A51005077CF /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@ -4170,10 +4187,10 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
CE6B241325F1F55C0020D43E /* PBXTargetDependency */ = {
8401FD7C269BECF200265F0D /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = CE6B240725F1F3CE0020D43E /* QEMULauncher */;
targetProxy = CE6B241225F1F55C0020D43E /* PBXContainerItemProxy */;
target = 8401FD61269BE9C500265F0D /* QEMULauncher */;
targetProxy = 8401FD7B269BECF200265F0D /* PBXContainerItemProxy */;
};
CE9A353326533A52005077CF /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
@ -4264,6 +4281,52 @@
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
8401FD6F269BE9C600265F0D /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = QEMULauncher/QEMULauncher.entitlements;
CODE_SIGN_IDENTITY = "$(CODE_SIGN_IDENTITY_MAC:default=-)";
CODE_SIGN_INJECT_BASE_ENTITLEMENTS = NO;
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES;
ENABLE_HARDENED_RUNTIME = YES;
GENERATE_INFOPLIST_FILE = YES;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../../../../../../../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_PREFIX:default=com.utmapp).QEMULauncher";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "$(PROVISIONING_PROFILE_SPECIFIER_LAUNCHER:default=)";
SDKROOT = macosx;
SWIFT_EMIT_LOC_STRINGS = YES;
};
name = Debug;
};
8401FD70269BE9C600265F0D /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = QEMULauncher/QEMULauncher.entitlements;
CODE_SIGN_IDENTITY = "$(CODE_SIGN_IDENTITY_MAC:default=-)";
CODE_SIGN_INJECT_BASE_ENTITLEMENTS = NO;
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES;
ENABLE_HARDENED_RUNTIME = YES;
GENERATE_INFOPLIST_FILE = YES;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../../../../../../../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_PREFIX:default=com.utmapp).QEMULauncher";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "$(PROVISIONING_PROFILE_SPECIFIER_LAUNCHER:default=)";
SDKROOT = macosx;
SWIFT_EMIT_LOC_STRINGS = YES;
};
name = Release;
};
CE2D93BC24AD46670059923A /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@ -4521,48 +4584,6 @@
};
name = Release;
};
CE6B240C25F1F3CE0020D43E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CODE_SIGN_ENTITLEMENTS = QEMULauncher/QEMULauncher.entitlements;
CODE_SIGN_IDENTITY = "$(CODE_SIGN_IDENTITY_MAC:default=-)";
CODE_SIGN_INJECT_BASE_ENTITLEMENTS = NO;
CODE_SIGN_STYLE = Automatic;
CREATE_INFOPLIST_SECTION_IN_BINARY = YES;
ENABLE_HARDENED_RUNTIME = YES;
INFOPLIST_FILE = QEMULauncher/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../../../../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 11.0;
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_PREFIX:default=com.utmapp).QEMULauncher";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SKIP_INSTALL = YES;
};
name = Debug;
};
CE6B240D25F1F3CE0020D43E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CODE_SIGN_ENTITLEMENTS = QEMULauncher/QEMULauncher.entitlements;
CODE_SIGN_IDENTITY = "$(CODE_SIGN_IDENTITY_MAC:default=-)";
CODE_SIGN_INJECT_BASE_ENTITLEMENTS = NO;
CODE_SIGN_STYLE = Automatic;
CREATE_INFOPLIST_SECTION_IN_BINARY = YES;
ENABLE_HARDENED_RUNTIME = YES;
INFOPLIST_FILE = QEMULauncher/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../../../../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 11.0;
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_PREFIX:default=com.utmapp).QEMULauncher";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SKIP_INSTALL = YES;
};
name = Release;
};
CE9A353626533A52005077CF /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@ -4717,6 +4738,15 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
8401FD6E269BE9C600265F0D /* Build configuration list for PBXNativeTarget "QEMULauncher" */ = {
isa = XCConfigurationList;
buildConfigurations = (
8401FD6F269BE9C600265F0D /* Debug */,
8401FD70269BE9C600265F0D /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
CE2D93BB24AD46670059923A /* Build configuration list for PBXNativeTarget "iOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
@ -4744,15 +4774,6 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
CE6B240E25F1F3CE0020D43E /* Build configuration list for PBXNativeTarget "QEMULauncher" */ = {
isa = XCConfigurationList;
buildConfigurations = (
CE6B240C25F1F3CE0020D43E /* Debug */,
CE6B240D25F1F3CE0020D43E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
CE9A353826533A52005077CF /* Build configuration list for PBXNativeTarget "JailbreakInterposer" */ = {
isa = XCConfigurationList;
buildConfigurations = (

View File

@ -69,6 +69,7 @@ cp "$BASEDIR/../QEMUHelper/QEMUHelper.entitlements" "$HELPER_ENTITLEMENTS"
if [ "$MODE" == "unsigned" ]; then
/usr/libexec/PlistBuddy -c "Delete :com.apple.vm.device-access" "$UTM_ENTITLEMENTS"
/usr/libexec/PlistBuddy -c "Delete :com.apple.vm.networking" "$HELPER_ENTITLEMENTS"
/usr/libexec/PlistBuddy -c "Delete :com.apple.vm.networking" "$LAUNCHER_ENTITLEMENTS"
/usr/libexec/PlistBuddy -c "Add :com.apple.security.cs.disable-library-validation bool true" "$UTM_ENTITLEMENTS"
/usr/libexec/PlistBuddy -c "Add :com.apple.security.cs.disable-library-validation bool true" "$LAUNCHER_ENTITLEMENTS"
/usr/libexec/PlistBuddy -c "Add :com.apple.security.cs.disable-library-validation bool true" "$HELPER_ENTITLEMENTS"