From b1f449b91d2fda8cf5e052cd81d7e30cf9abc358 Mon Sep 17 00:00:00 2001 From: Duy Tran Khanh Date: Mon, 15 Feb 2021 12:38:52 +0700 Subject: [PATCH] Prevent from running directly on command line --- .gitignore | 1 + .../src/main/java/net/kdt/pojavlaunch/PLaunchApp.java | 3 --- Natives/aminimake.sh | 7 +++++-- Natives/main.c | 10 ++++++++++ 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 4537ff1c..03800f00 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /packages /Natives/libpojavexec.dylib +/Natives/PojavLauncher diff --git a/JavaApp/src/main/java/net/kdt/pojavlaunch/PLaunchApp.java b/JavaApp/src/main/java/net/kdt/pojavlaunch/PLaunchApp.java index fd9bb1c9..a0563558 100644 --- a/JavaApp/src/main/java/net/kdt/pojavlaunch/PLaunchApp.java +++ b/JavaApp/src/main/java/net/kdt/pojavlaunch/PLaunchApp.java @@ -38,9 +38,6 @@ public class PLaunchApp { System.out.println("We are on java now! Starting UI..."); UIKit.launchUI(args); } else { - System.err.println("UIKit could not be connected when run on command line! Please run from home screen instead. " + - "If you didn't see PojavLauncher on home screen, run this command:"); - System.err.println("uicache -p /Applications/PojavLauncher.app"); return; } diff --git a/Natives/aminimake.sh b/Natives/aminimake.sh index 9d912af9..82790c31 100644 --- a/Natives/aminimake.sh +++ b/Natives/aminimake.sh @@ -3,12 +3,15 @@ #!/bin/bash set -e -CFLAGS="-fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -Wno-trigraphs -fpascal-strings -O3 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-float-conversion -Wno-non-literal-null-conversion -Wno-objc-literal-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof" +CFLAGS="-fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -Wno-trigraphs -fpascal-strings -O3 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-float-conversion -Wno-non-literal-null-conversion -Wno-objc-literal-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wl,-rpath,/Applications/PojavLauncher.app/Frameworks -fobjc-arc -x objective-c -Fresources/Frameworks -Iresources/Frameworks/MetalANGLE.framework/Headers -isysroot /var/mobile/theos/sdks/iPhoneOS13.4.sdk" -clang -Wl,-rpath,/Applications/PojavLauncher.app/Frameworks -fobjc-arc -x objective-c -Fresources/Frameworks -framework UIKit -framework MetalANGLE -framework CoreGraphics -framework SafariServices -Iresources/Frameworks/MetalANGLE.framework/Headers -dynamiclib -isysroot /var/mobile/theos/sdks/iPhoneOS13.4.sdk $CFLAGS -o libpojavexec.dylib log.m AppDelegate.m SceneDelegate.m UILauncher.m LauncherViewController.m LoginViewController.m SurfaceViewController.m egl_bridge_ios.m ios_uikit_bridge.m egl_bridge.c input_bridge_v3.c utils.c -DGLES_TESTZ -DUSE_EGLZ +clang -framework UIKit $CFLAGS -o PojavLauncher main.c log.m JavaLauncher.c +clang -framework UIKit -framework MetalANGLE -framework CoreGraphics -framework SafariServices -dynamiclib $CFLAGS -o libpojavexec.dylib log.m AppDelegate.m SceneDelegate.m UILauncher.m LauncherViewController.m LoginViewController.m SurfaceViewController.m egl_bridge_ios.m ios_uikit_bridge.m egl_bridge.c input_bridge_v3.c utils.c -DGLES_TESTZ -DUSE_EGLZ +ldid -S../entitlements.xml PojavLauncher ldid -S../entitlements.xml libpojavexec.dylib +cp PojavLauncher /Applications/PojavLauncher.app/PojavLauncher cp libpojavexec.dylib /Applications/PojavLauncher.app/Frameworks/libpojavexec.dylib echo "BUILD SUCCESSFUL" \ No newline at end of file diff --git a/Natives/main.c b/Natives/main.c index 53176195..9116e0f3 100644 --- a/Natives/main.c +++ b/Natives/main.c @@ -1,5 +1,15 @@ +#include +#include #include "JavaLauncher.h" int main(int argc, char * argv[]) { + if (getppid() != 1) { + // Not running from launchd, so UI won't work. + printf("ERROR: ppid was %d\n", getppid()); + printf("ERROR: UIKit could not be connected when run on command line! Please run from home screen instead. If you didn't see PojavLauncher on home screen, run this command:\n"); + printf("uicache -p /Applications/PojavLauncher.app\n"); + + return -1; + } launchJVM(argc, argv); }