From 3ca9abcccde17d83bef7e4c6692f2fa8f4edf798 Mon Sep 17 00:00:00 2001 From: James Magahern Date: Wed, 3 Aug 2022 17:27:15 -0700 Subject: [PATCH] Adds "version" operation --- MessagesBridge.xcodeproj/project.pbxproj | 33 ++++++++++++++--- .../Bridge/Operations/MBIMVersionOperation.h | 17 +++++++++ .../Bridge/Operations/MBIMVersionOperation.m | 35 +++++++++++++++++++ 3 files changed, 81 insertions(+), 4 deletions(-) create mode 100644 kordophone/Bridge/Operations/MBIMVersionOperation.h create mode 100644 kordophone/Bridge/Operations/MBIMVersionOperation.m diff --git a/MessagesBridge.xcodeproj/project.pbxproj b/MessagesBridge.xcodeproj/project.pbxproj index 1bea44c..36f1b0b 100644 --- a/MessagesBridge.xcodeproj/project.pbxproj +++ b/MessagesBridge.xcodeproj/project.pbxproj @@ -82,6 +82,7 @@ CD83E156219BE10A00F4CCEA /* hooking.m in Sources */ = {isa = PBXBuildFile; fileRef = CD83E155219BE10A00F4CCEA /* hooking.m */; }; CD83E166219BE91600F4CCEA /* agentHook.m in Sources */ = {isa = PBXBuildFile; fileRef = CD83E165219BE91600F4CCEA /* agentHook.m */; }; CD936A32289B353F0093A1AC /* MBIMErrorResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = CD936A31289B353F0093A1AC /* MBIMErrorResponse.m */; }; + CD936A35289B47D60093A1AC /* MBIMVersionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = CD936A34289B47D50093A1AC /* MBIMVersionOperation.m */; }; CDDCF78D283F398C0087ABDF /* MBIMDeleteConversationOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = CDDCF78C283F398C0087ABDF /* MBIMDeleteConversationOperation.m */; }; CDE4556421A3578A0041F5DD /* IMChat+Encoded.m in Sources */ = {isa = PBXBuildFile; fileRef = CDE4556321A3578A0041F5DD /* IMChat+Encoded.m */; }; CDE455A121A365AD0041F5DD /* MBIMMarkOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = CDE455A021A365AD0041F5DD /* MBIMMarkOperation.m */; }; @@ -241,6 +242,8 @@ CD936A2F289B31740093A1AC /* kordophoned-RestrictedEntitlements.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "kordophoned-RestrictedEntitlements.plist"; sourceTree = ""; }; CD936A30289B353F0093A1AC /* MBIMErrorResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBIMErrorResponse.h; sourceTree = ""; }; CD936A31289B353F0093A1AC /* MBIMErrorResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MBIMErrorResponse.m; sourceTree = ""; }; + CD936A33289B47D50093A1AC /* MBIMVersionOperation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBIMVersionOperation.h; sourceTree = ""; }; + CD936A34289B47D50093A1AC /* MBIMVersionOperation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MBIMVersionOperation.m; sourceTree = ""; }; CDDCF78B283F398C0087ABDF /* MBIMDeleteConversationOperation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MBIMDeleteConversationOperation.h; sourceTree = ""; }; CDDCF78C283F398C0087ABDF /* MBIMDeleteConversationOperation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MBIMDeleteConversationOperation.m; sourceTree = ""; }; CDE4556221A3578A0041F5DD /* IMChat+Encoded.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "IMChat+Encoded.h"; sourceTree = ""; }; @@ -529,10 +532,10 @@ isa = PBXGroup; children = ( 1AA43E90219EBB3400EDF1A7 /* Utilities */, + CD2ECEC0269539100055E302 /* MBIMAuthenticateOperation.h */, + CD2ECEC1269539100055E302 /* MBIMAuthenticateOperation.m */, CD602054219B5DFD0024D9C5 /* MBIMBridgeOperation.h */, CD602055219B5DFD0024D9C5 /* MBIMBridgeOperation.m */, - CD60205A219B623F0024D9C5 /* MBIMMessagesListOperation.h */, - CD60205B219B623F0024D9C5 /* MBIMMessagesListOperation.m */, CD60205D219B674B0024D9C5 /* MBIMConversationListOperation.h */, CD60205E219B674B0024D9C5 /* MBIMConversationListOperation.m */, CDDCF78B283F398C0087ABDF /* MBIMDeleteConversationOperation.h */, @@ -541,14 +544,16 @@ CDE455A321A5308D0041F5DD /* MBIMFetchAttachmentOperation.m */, CDE4559F21A365AD0041F5DD /* MBIMMarkOperation.h */, CDE455A021A365AD0041F5DD /* MBIMMarkOperation.m */, + CD60205A219B623F0024D9C5 /* MBIMMessagesListOperation.h */, + CD60205B219B623F0024D9C5 /* MBIMMessagesListOperation.m */, CD602060219B68950024D9C5 /* MBIMSendMessageOperation.h */, CD602061219B68950024D9C5 /* MBIMSendMessageOperation.m */, CD14F19F219FE7D600E7DD22 /* MBIMUpdatePollOperation.h */, CD14F1A0219FE7D600E7DD22 /* MBIMUpdatePollOperation.m */, 1AD8936C21EFD986009B599A /* MBIMUploadAttachmentOperation.h */, 1AD8936D21EFD986009B599A /* MBIMUploadAttachmentOperation.m */, - CD2ECEC0269539100055E302 /* MBIMAuthenticateOperation.h */, - CD2ECEC1269539100055E302 /* MBIMAuthenticateOperation.m */, + CD936A33289B47D50093A1AC /* MBIMVersionOperation.h */, + CD936A34289B47D50093A1AC /* MBIMVersionOperation.m */, ); path = Operations; sourceTree = ""; @@ -689,6 +694,7 @@ isa = PBXNativeTarget; buildConfigurationList = CDF62336219A895D00690038 /* Build configuration list for PBXNativeTarget "kordophoned" */; buildPhases = ( + CD936A36289B48930093A1AC /* Compile Version String */, CDF6232E219A895D00690038 /* Sources */, CDF6232F219A895D00690038 /* Frameworks */, CDF62330219A895D00690038 /* CopyFiles */, @@ -785,6 +791,24 @@ shellPath = /bin/sh; shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n\nRESULT=$(install_name_tool -delete_rpath $BUILT_PRODUCTS_DIR $BUILT_PRODUCTS_DIR/$EXECUTABLE_NAME 2> /dev/null)\n\ninstall_name_tool -add_rpath $BUILT_PRODUCTS_DIR $BUILT_PRODUCTS_DIR/$EXECUTABLE_NAME\n"; }; + CD936A36289B48930093A1AC /* Compile Version String */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Compile Version String"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# Type a script or drag a script file from your workspace to insert its path.\nOUTPUT_FILE=\"$DERIVED_FILE_DIR/MBIMVersion.c\"\nVERSION_STR=`git describe`\n\necho \"const char* MBIMVersion() { return \\\"$VERSION_STR\\\"; }\" > $OUTPUT_FILE\n"; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -859,6 +883,7 @@ CD14F1A1219FE7D600E7DD22 /* MBIMUpdatePollOperation.m in Sources */, CDE455A121A365AD0041F5DD /* MBIMMarkOperation.m in Sources */, CDE455A721A531ED0041F5DD /* MBIMDataResponse.m in Sources */, + CD936A35289B47D60093A1AC /* MBIMVersionOperation.m in Sources */, CD602056219B5DFD0024D9C5 /* MBIMBridgeOperation.m in Sources */, CD60205F219B674B0024D9C5 /* MBIMConversationListOperation.m in Sources */, CDE4556421A3578A0041F5DD /* IMChat+Encoded.m in Sources */, diff --git a/kordophone/Bridge/Operations/MBIMVersionOperation.h b/kordophone/Bridge/Operations/MBIMVersionOperation.h new file mode 100644 index 0000000..ec57bf8 --- /dev/null +++ b/kordophone/Bridge/Operations/MBIMVersionOperation.h @@ -0,0 +1,17 @@ +// +// MBIMVersionOperation.h +// kordophoned +// +// Created by James Magahern on 8/3/22. +// Copyright © 2022 James Magahern. All rights reserved. +// + +#import "MBIMBridgeOperation.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MBIMVersionOperation : MBIMBridgeOperation + +@end + +NS_ASSUME_NONNULL_END diff --git a/kordophone/Bridge/Operations/MBIMVersionOperation.m b/kordophone/Bridge/Operations/MBIMVersionOperation.m new file mode 100644 index 0000000..d7d0a73 --- /dev/null +++ b/kordophone/Bridge/Operations/MBIMVersionOperation.m @@ -0,0 +1,35 @@ +// +// MBIMVersionOperation.m +// kordophoned +// +// Created by James Magahern on 8/3/22. +// Copyright © 2022 James Magahern. All rights reserved. +// + +#import "MBIMVersionOperation.h" +#import "MBIMErrorResponse.h" + +#ifdef __clang_analyzer__ +const char* MBIMVersion() { + return "UNKNOWN"; +} +#else +#import "MBIMVersion.c" +#endif + +@implementation MBIMVersionOperation + ++ (void)load { [super load]; } + ++ (NSString *)endpointName +{ + return @"version"; +} + +- (void)main +{ + NSString *versionString = [NSString stringWithUTF8String:MBIMVersion()]; + self.serverCompletionBlock([[MBIMDataResponse alloc] initWithData:[versionString dataUsingEncoding:NSUTF8StringEncoding]]); +} + +@end