diff --git a/Dockerfile b/Dockerfile index d498da11..c451ce80 100644 --- a/Dockerfile +++ b/Dockerfile @@ -66,23 +66,9 @@ RUN cd libimobiledevice \ && make install DESTDIR=/prefix -FROM build-base AS build-xadi - -RUN mkdir -p /prefix/usr/lib - -RUN curl -fsS https://dlang.org/install.sh | bash -s ldc - -ADD https://github.com/xtool-org/xadi.git#main /xadi - -RUN cd xadi \ - && /bin/bash -c 'source $(/root/dlang/install.sh ldc -a) && dub build --build=release' \ - && cp -r bin/libxadi.so /prefix/usr/lib/libxadi.so - - FROM build-base AS build-xtool-base COPY --from=build-limd /prefix/usr /usr -COPY --from=build-xadi /prefix/usr /usr WORKDIR /xtool diff --git a/Package.resolved b/Package.resolved index 0bcfc149..f6984ae5 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "80db0cddb0e78cf6a4c79f94537cdfebd8004679161532fbae8a57ee9d1d8cd1", + "originHash" : "90ad8f84cef9a5c63d7cc80c20c4a7e332fd63bead7d72ee1d94da8b1a0a2186", "pins" : [ { "identity" : "aexml", @@ -424,6 +424,15 @@ "version" : "2.16.2" } }, + { + "identity" : "xadi", + "kind" : "remoteSourceControl", + "location" : "https://github.com/xtool-org/xadi", + "state" : { + "revision" : "831f8ddfc72f7a48d0c2c03ac9c864eee1f8f6b3", + "version" : "0.4.0" + } + }, { "identity" : "xcodegen", "kind" : "remoteSourceControl", diff --git a/Package.swift b/Package.swift index dab231df..3c0d7019 100644 --- a/Package.swift +++ b/Package.swift @@ -51,6 +51,7 @@ let package = Package( .package(url: "https://github.com/xtool-org/xtool-core", .upToNextMinor(from: "1.4.0")), .package(url: "https://github.com/xtool-org/SwiftyMobileDevice", .upToNextMinor(from: "1.5.0")), .package(url: "https://github.com/xtool-org/zsign", .upToNextMinor(from: "1.7.0")), + .package(url: "https://github.com/xtool-org/xadi", .upToNextMinor(from: "0.4.0")), .package(url: "https://github.com/apple/swift-system", from: "1.4.0"), .package(url: "https://github.com/apple/swift-http-types", from: "1.3.1"), @@ -81,7 +82,6 @@ let package = Package( .package(url: "https://github.com/yonaskolb/XcodeGen", from: "2.45.4"), ], targets: [ - .systemLibrary(name: "XADI"), .target( name: "CXKit", dependencies: [ @@ -120,7 +120,7 @@ let package = Package( "DeveloperAPI", "CXKit", "XUtils", - .byName(name: "XADI", condition: .when(platforms: [.linux])), + .product(name: "XADI", package: "xadi", condition: .when(platforms: [.linux, .macOS])), .product(name: "ConcurrencyExtras", package: "swift-concurrency-extras"), .product(name: "Dependencies", package: "swift-dependencies"), .product(name: "SwiftyMobileDevice", package: "SwiftyMobileDevice"), diff --git a/Sources/XADI/module.modulemap b/Sources/XADI/module.modulemap deleted file mode 100644 index 02ca156f..00000000 --- a/Sources/XADI/module.modulemap +++ /dev/null @@ -1,4 +0,0 @@ -module XADI [extern_c] { - header "xadi.h" - link "xadi" -} diff --git a/Sources/XADI/xadi.h b/Sources/XADI/xadi.h deleted file mode 100644 index 20c80cc8..00000000 --- a/Sources/XADI/xadi.h +++ /dev/null @@ -1,13 +0,0 @@ -#include - -void xadi_Load(const char *path); -int32_t xadi_SetAndroidID(const char *identifier, uint32_t length); -int32_t xadi_SetProvisioningPath(const char *path); -int32_t xadi_ProvisioningErase(uint64_t dsId); -int32_t xadi_Synchronize(uint64_t dsId, const void *serverIntermediateMetadata, uint32_t serverIntermediateMetadataLength, void **machineIdentifier, uint32_t *machineIdentifierLength, void **synchronizationResumeMetadata, uint32_t *synchronizationResumeMetadataLength); -int32_t xadi_ProvisioningDestroy(uint32_t session); -int32_t xadi_ProvisioningEnd(uint32_t session, const void *persistentTokenMetadata, uint32_t persistentTokenMetadataLength, const void *trustKey, uint32_t trustKeyLength); -int32_t xadi_ProvisioningStart(uint64_t dsId, const void *serverProvisioningIntermediateMetadata, uint32_t serverProvisioningIntermediateMetadataLength, void **clientProvisioningIntermediateMetadata, uint32_t *clientProvisioningIntermediateMetadataLength, uint32_t *session); -int32_t xadi_GetLoginCode(uint64_t dsId); -int32_t xadi_Dispose(void *ptr); -int32_t xadi_OTPRequest(uint64_t dsId, void **machineIdentifier, uint32_t *machineIdentifierLength, void **oneTimePassword, uint32_t *oneTimePasswordLength); diff --git a/Sources/XKit/GrandSlam/Anisette/ADIDataProvider.swift b/Sources/XKit/GrandSlam/Anisette/ADIDataProvider.swift index 4cee00a9..085730c4 100644 --- a/Sources/XKit/GrandSlam/Anisette/ADIDataProvider.swift +++ b/Sources/XKit/GrandSlam/Anisette/ADIDataProvider.swift @@ -49,7 +49,7 @@ private struct UnimplementedRawADIProvider: RawADIProvider { private enum RawADIProviderDependencyKey: DependencyKey { static let testValue: RawADIProvider = UnimplementedRawADIProvider() static let liveValue: RawADIProvider = { - #if os(Linux) + #if canImport(XADI) return XADIProvider() #else return OmnisetteADIProvider() diff --git a/Sources/XKit/GrandSlam/Anisette/XADIProvider.swift b/Sources/XKit/GrandSlam/Anisette/XADIProvider.swift index 3183101c..b1bd2420 100644 --- a/Sources/XKit/GrandSlam/Anisette/XADIProvider.swift +++ b/Sources/XKit/GrandSlam/Anisette/XADIProvider.swift @@ -1,4 +1,4 @@ -#if os(Linux) +#if canImport(XADI) import Foundation import XADI diff --git a/macOS/Support/XToolMac.entitlements b/macOS/Support/XToolMac.entitlements index 55d91602..5e84acac 100644 --- a/macOS/Support/XToolMac.entitlements +++ b/macOS/Support/XToolMac.entitlements @@ -2,6 +2,8 @@ + com.apple.security.cs.allow-unsigned-executable-memory + keychain-access-groups $(AppIdentifierPrefix)sh.xtool.keychain