From 220f4d4137e015a1fd530141c672f0fd591b004b Mon Sep 17 00:00:00 2001 From: Alex James Date: Wed, 27 Nov 2019 11:17:20 -0600 Subject: [PATCH] Fix compilation with Lilu 1.4.0 Closes #4. --- NoTouchID.xcodeproj/project.pbxproj | 6 +++--- NoTouchID/kern_start.cpp | 19 ++++++++----------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/NoTouchID.xcodeproj/project.pbxproj b/NoTouchID.xcodeproj/project.pbxproj index 4a98846..72a51ca 100755 --- a/NoTouchID.xcodeproj/project.pbxproj +++ b/NoTouchID.xcodeproj/project.pbxproj @@ -216,7 +216,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/bash; - shellScript = "cd \"${TARGET_BUILD_DIR}\"\n\ndist=(\"$FULL_PRODUCT_NAME\")\nif [ -d \"$DWARF_DSYM_FILE_NAME\" ]; then dist+=(\"$DWARF_DSYM_FILE_NAME\"); fi\n\narchive=\"${MODULE_VERSION} ($(echo $CONFIGURATION | tr /a-z/ /A-Z/)).zip\"\nrm -rf *.zip\nif [ \"$CONFIGURATION\" == \"Release\" ]; then\n strip -x -T \"${EXECUTABLE_PATH}\" &>/dev/null || strip -x \"${EXECUTABLE_PATH}\"\nfi\nzip -qry \"${archive}\" \"${dist[@]}\""; + shellScript = "cd \"${TARGET_BUILD_DIR}\"\n\ndist=(\"$FULL_PRODUCT_NAME\")\nif [ -d \"$DWARF_DSYM_FILE_NAME\" ]; then dist+=(\"$DWARF_DSYM_FILE_NAME\"); fi\n\narchive=\"${PRODUCT_NAME}-${MODULE_VERSION}-$(echo $CONFIGURATION | tr /a-z/ /A-Z/).zip\"\nrm -rf *.zip\nif [ \"$CONFIGURATION\" == \"Release\" ]; then\n strip -x -T \"${EXECUTABLE_PATH}\" &>/dev/null || strip -x \"${EXECUTABLE_PATH}\"\nfi\nzip -qry -FS \"${archive}\" \"${dist[@]}\"\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -350,7 +350,7 @@ MODULE_NAME = xyz.racermaster.NoTouchID; MODULE_START = "$(PRODUCT_NAME)_kern_start"; MODULE_STOP = "$(PRODUCT_NAME)_kern_stop"; - MODULE_VERSION = 1.0.2; + MODULE_VERSION = 1.0.3; OTHER_CFLAGS = ( "-mmmx", "-msse", @@ -397,7 +397,7 @@ MODULE_NAME = xyz.racermaster.NoTouchID; MODULE_START = "$(PRODUCT_NAME)_kern_start"; MODULE_STOP = "$(PRODUCT_NAME)_kern_stop"; - MODULE_VERSION = 1.0.2; + MODULE_VERSION = 1.0.3; OTHER_CFLAGS = ( "-mmmx", "-msse", diff --git a/NoTouchID/kern_start.cpp b/NoTouchID/kern_start.cpp index 7e92fdf..b99f48f 100644 --- a/NoTouchID/kern_start.cpp +++ b/NoTouchID/kern_start.cpp @@ -10,21 +10,22 @@ #include // Target framework -static const char *binPath = "/System/Library/PrivateFrameworks/BiometricKit.framework/Versions/A/BiometricKit"; +static const char binPath[] = "/System/Library/PrivateFrameworks/BiometricKit.framework/Versions/A/BiometricKit"; // Accompanied processes -static const char *procList[] { - "/System/Library/Frameworks/LocalAuthentication.framework/Support/DaemonUtils.framework/Versions/A/DaemonUtils" -}; +static const char procPath[] = "/System/Library/Frameworks/LocalAuthentication.framework/Support/DaemonUtils.framework/Versions/A/DaemonUtils"; static const uint8_t find[] = "board-id"; static const uint8_t repl[] = "board-ix"; +static_assert(sizeof(find) == sizeof(repl), "Invalid patch size"); + static UserPatcher::BinaryModPatch patch { CPU_TYPE_X86_64, + 0, find, repl, - strlen(reinterpret_cast(find)), + sizeof(find) - 1, 0, 1, UserPatcher::FileSegment::SegmentTextCstring, @@ -38,15 +39,11 @@ UserPatcher::BinaryModInfo ADDPR(binaryMod)[] { const size_t ADDPR(binaryModSize) = 1; static UserPatcher::ProcInfo ADDPR(procInfo)[] { - { procList[0], static_cast(strlen(procList[0])), 1 } + { procPath, sizeof(procPath) - 1, 1 } }; const size_t ADDPR(procInfoSize) = 1; -static void noBioStart() { - lilu.onProcLoad(ADDPR(procInfo), ADDPR(procInfoSize), nullptr, nullptr, ADDPR(binaryMod), ADDPR(binaryModSize)); -} - static const char *bootargOff[] { "-nobiooff" }; @@ -68,6 +65,6 @@ PluginConfiguration ADDPR(config) { KernelVersion::HighSierra, KernelVersion::Catalina, []() { - noBioStart(); + lilu.onProcLoad(ADDPR(procInfo), ADDPR(procInfoSize), nullptr, nullptr, ADDPR(binaryMod), ADDPR(binaryModSize)); } };