Browse Source

added more of the setup portion to the new script

Kevin Bradley 11 months ago
parent
commit
19afc7419f
2 changed files with 47 additions and 1 deletions
  1. 0 1
      the_memo.sh
  2. 47 0
      the_memo2.sh

+ 0 - 1
the_memo.sh

@@ -13,7 +13,6 @@ ARCH="arm64"
 PLATFORM="AppleTVOS"
 PLATFORM_LOWER="appletvos"
 MIN_VERSION="-mappletvos-version-min=9.0"
-
 CODESIGN_TOOL="ldid"
 
 CLANG_PATH="`xcrun -f clang`"

+ 47 - 0
the_memo2.sh

@@ -5,6 +5,7 @@ ROOT_LOG_FOLDER="$BUILD_ROOT/Logs"
 VERIFY="true"
 PLATFORM="AppleTVOS"
 PLATFORM_LOWER="appletvos"
+SDK_VERSION="$(xcrun --show-sdk-version --sdk $PLATFORM_LOWER)"
 ROOT_PREFIX="fs/jb/usr"
 SKEL_PREFIX="$BUILD_ROOT/skel"
 ALREADY_BUILT="$BUILD_ROOT/tracked"
@@ -1135,7 +1136,53 @@ buildAPTAndDependencies() {
 	#buildAPT
 }
 
+prepSDK() {
+	if [[ ! -e "$SDK_PATH/usr/include/sys/ttydev.h" ]]; then
+		echo "Missing <sys/ttydev.h>. Moving it in from MacOSX SDK (with sudo)"
+		sudo cp "$(xcrun --sdk macosx --show-sdk-path)/usr/include/sys/ttydev.h" "$SDK_PATH/usr/include/sys/ttydev.h"
+	fi
+	if [[ ! -e "$SDK_PATH/usr/include/lockdown.h" ]]; then
+		echo "Missing lockdown.h! Generating the bare essentials for apt to build..."
+		echo "#ifndef LOCKDOWN_LOCKDOWN_H" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "#define LOCKDOWN_LOCKDOWN_H" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "#include <CoreFoundation/CFString.h>" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "#ifdef __cplusplus" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "extern \"C\" {" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "#endif" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "extern CFStringRef kLockdownUniqueDeviceIDKey;" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "extern void *lockdown_connect(void);" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "extern CFStringRef lockdown_copy_value(void *lockdown, void *null, CFStringRef key);" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "extern void lockdown_disconnect(void *lockdown);" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "#ifdef __cplusplus" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "}" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "#endif" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "" >> "$SDK_PATH/usr/include/lockdown.h"
+		echo "#endif/*LOCKDOWN_LOCKDOWN_H*/" >> "$SDK_PATH/usr/include/lockdown.h"
+
+	fi
+	IOKIT_MATCH="`find ~/Library/Developer/Xcode/tvOS\ DeviceSupport/ -name IOKit.framework | grep "$SDK_VERSION" -m 1`"
+	echo "IOKit match: $IOKIT_MATCH"
+	echo "IOKit: $SDK_PATH/System/Library/Frameworks/IOKit.framework"
+	if [[ ! -d "$SDK_PATH/System/Library/Frameworks/IOKit.framework" ]]; then
+		if [[ ! -z "$IOKIT_MATCH" ]]; then
+			echo "we do indeed have an IOKit match and IOKIt is missing!!"
+			echo "cp -r $IOKIT_MATCH $SDK_PATH/System/Library/Frameworks/"
+			cp -r "$IOKIT_MATCH" "$SDK_PATH/System/Library/Frameworks/"
+		fi
+	fi
+}
+
+
 mkdirIfNecessary $ROOT_LOG_FOLDER
+
+# Ensure our SDK has all the required "extras" installed/setup
+prepSDK
+
 #buildBashAndFriends
 buildBasicUtils
 buildDPKGAndDependencies