diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
new file mode 100644
index 0000000..dac9ae1
--- /dev/null
+++ b/.github/workflows/ci.yaml
@@ -0,0 +1,64 @@
+name: Theos CI
+
+on:
+ release:
+ types:
+ - created
+
+jobs:
+ build:
+ runs-on: macos-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ submodules: recursive
+
+ - name: Theos Setup (Check Cache)
+ id: verify-cache
+ run: |
+ echo "::set-output name=heads::`git ls-remote https://github.com/roothide/theos | head -n 1 | cut -f 1`-`git ls-remote https://github.com/xybp888/iOS-SDKs | head -n 1 | cut -f 1`"
+
+ - name: Theos Setup (Use Cache)
+ id: cache
+ uses: actions/cache@v2
+ with:
+ path: ${{ github.workspace }}/theos
+ key: ${{ runner.os }}-${{ steps.verify-cache.outputs.heads }}
+
+ - name: Theos Setup (Setup)
+ uses: NyaMisty/theos-action@master
+ with:
+ theos-src: https://github.com/roothide/theos
+ theos-sdks: https://github.com/xybp888/iOS-SDKs
+
+ - name: Get tag
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
+ id: tag
+ uses: dawidd6/action-get-tag@v1
+
+ - name: Build Release package - Rootful
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
+ run: |
+ cd screendumpLowFrame
+ make clean
+ TAGNAME=${{ steps.tag.outputs.tag }}
+ make package FINALPACKAGE=1 PACKAGE_VERSION=${TAGNAME#v}-rootful
+ - name: Build Release package - Rootless
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
+ run: |
+ cd screendumpLowFrame
+ make clean
+ TAGNAME=${{ steps.tag.outputs.tag }}
+ make package THEOS_PACKAGE_SCHEME=rootless FINALPACKAGE=1 PACKAGE_VERSION=${TAGNAME#v}-rootless
+
+ - name: Release
+ uses: softprops/action-gh-release@v1
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
+ with:
+ files: |
+ ${{ github.workspace }}/screendumpLowFrame/packages/*.deb
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/screendumpLowFrame/Makefile b/screendumpLowFrame/Makefile
index fd54955..03a9096 100644
--- a/screendumpLowFrame/Makefile
+++ b/screendumpLowFrame/Makefile
@@ -2,7 +2,11 @@ TARGET = iphone:16.5:14.0
include $(THEOS)/makefiles/common.mk
-PACKAGE_BUILDNAME := rootless
+ifeq ($(THEOS_PACKAGE_SCHEME),rootless)
+ PACKAGE_BUILDNAME := rootless
+else
+ PACKAGE_BUILDNAME := rootful
+endif
TOOL_NAME = screendumpd
$(TOOL_NAME)_FILES = main.mm
@@ -24,3 +28,14 @@ include $(THEOS_MAKE_PATH)/tool.mk
SUBPROJECTS += hooks
include $(THEOS_MAKE_PATH)/aggregate.mk
+
+ifeq ($(THEOS_PACKAGE_SCHEME),rootless)
+after-screendumpd-stage::
+ $(ECHO_NOTHING) rm $(THEOS_STAGING_DIR)/Library/LaunchDaemons/com.julioverne.screendumpd.plist$(ECHO_END)
+ $(ECHO_NOTHING) mv $(THEOS_STAGING_DIR)/Library/LaunchDaemons/com.julioverne.screendumpd.rootless.plist $(THEOS_STAGING_DIR)/Library/LaunchDaemons/com.julioverne.screendumpd.plist$(ECHO_END)
+ $(ECHO_NOTHING)$(FAKEROOT) chown root:wheel $(THEOS_STAGING_DIR)/Library/LaunchDaemons/com.julioverne.screendumpd.plist$(ECHO_END)
+else
+after-screendumpd-stage::
+ $(ECHO_NOTHING) rm $(THEOS_STAGING_DIR)/Library/LaunchDaemons/com.julioverne.screendumpd.rootless.plist$(ECHO_END)
+ $(ECHO_NOTHING)$(FAKEROOT) chown root:wheel $(THEOS_STAGING_DIR)/Library/LaunchDaemons/com.julioverne.screendumpd.plist$(ECHO_END)
+endif
diff --git a/screendumpLowFrame/build_package_rootless.sh b/screendumpLowFrame/build_package_rootless.sh
deleted file mode 100755
index 7754e8e..0000000
--- a/screendumpLowFrame/build_package_rootless.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-echo "Building package for ROOTLESS Jailbreak"
-export THEOS_PACKAGE_SCHEME=rootless
-
-make clean
-make package FINALPACKAGE=1
-
-unset THEOS_PACKAGE_SCHEME
diff --git a/screendumpLowFrame/build_packages.sh b/screendumpLowFrame/build_packages.sh
new file mode 100755
index 0000000..4a99d82
--- /dev/null
+++ b/screendumpLowFrame/build_packages.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+echo "Building package for ROOTFUL Jailbreak"
+
+make clean
+make package FINALPACKAGE=1
+
+echo "Building package for ROOTLESS Jailbreak"
+
+make clean
+make package FINALPACKAGE=1 THEOS_PACKAGE_SCHEME=rootless
diff --git a/screendumpLowFrame/hooks/Makefile b/screendumpLowFrame/hooks/Makefile
index 2924364..9c6a8a6 100644
--- a/screendumpLowFrame/hooks/Makefile
+++ b/screendumpLowFrame/hooks/Makefile
@@ -2,6 +2,7 @@ TARGET = iphone:16.5:14.0
include $(THEOS)/makefiles/common.mk
+
TWEAK_NAME = screendumpbb
$(TWEAK_NAME)_FILES = Tweak.xm
$(TWEAK_NAME)_FRAMEWORKS := IOSurface IOKit
diff --git a/screendumpLowFrame/hooks/Tweak.xm b/screendumpLowFrame/hooks/Tweak.xm
index 2f1c774..7705452 100644
--- a/screendumpLowFrame/hooks/Tweak.xm
+++ b/screendumpLowFrame/hooks/Tweak.xm
@@ -7,8 +7,6 @@
#undef NSLog
-#define kSettingsPath @"/var/jb/var/mobile/Library/Preferences/com.cosmosgenius.screendump.plist"
-
extern "C" UIImage* _UICreateScreenUIImage();
static BOOL isEnabled;
diff --git a/screendumpLowFrame/layout/DEBIAN/postinst b/screendumpLowFrame/layout/DEBIAN/postinst
index 0d6bce7..4018832 100755
--- a/screendumpLowFrame/layout/DEBIAN/postinst
+++ b/screendumpLowFrame/layout/DEBIAN/postinst
@@ -1,6 +1,11 @@
#!/bin/bash
-launchctl unload /var/jb/Library/LaunchDaemons/com.julioverne.screendumpd.plist
-launchctl load /var/jb/Library/LaunchDaemons/com.julioverne.screendumpd.plist
+if [ -L "/var/jb" ]; then
+ launchctl unload /var/jb/Library/LaunchDaemons/com.julioverne.screendumpd.plist
+ launchctl load /var/jb/Library/LaunchDaemons/com.julioverne.screendumpd.plist
+else
+ launchctl unload /Library/LaunchDaemons/com.julioverne.screendumpd.plist
+ launchctl load /Library/LaunchDaemons/com.julioverne.screendumpd.plist
+fi
exit 0;
\ No newline at end of file
diff --git a/screendumpLowFrame/layout/DEBIAN/prerm b/screendumpLowFrame/layout/DEBIAN/prerm
index dcfcb1a..0866b01 100755
--- a/screendumpLowFrame/layout/DEBIAN/prerm
+++ b/screendumpLowFrame/layout/DEBIAN/prerm
@@ -1,5 +1,9 @@
#!/bin/bash
-launchctl unload /var/jb/Library/LaunchDaemons/com.julioverne.screendumpd.plist
+if [ -L "/var/jb" ]; then
+ launchctl unload /var/jb/Library/LaunchDaemons/com.julioverne.screendumpd.plist
+else
+ launchctl unload /Library/LaunchDaemons/com.julioverne.screendumpd.plist
+fi
exit 0;
\ No newline at end of file
diff --git a/screendumpLowFrame/layout/Library/LaunchDaemons/com.julioverne.screendumpd.plist b/screendumpLowFrame/layout/Library/LaunchDaemons/com.julioverne.screendumpd.plist
index 64803f4..911f22e 100644
--- a/screendumpLowFrame/layout/Library/LaunchDaemons/com.julioverne.screendumpd.plist
+++ b/screendumpLowFrame/layout/Library/LaunchDaemons/com.julioverne.screendumpd.plist
@@ -6,7 +6,7 @@
com.julioverne.screendumpd
ProgramArguments
- /var/jb/usr/libexec/screendumpd
+ /usr/libexec/screendumpd
RunAtLoad
diff --git a/screendumpLowFrame/layout/Library/LaunchDaemons/com.julioverne.screendumpd.rootless.plist b/screendumpLowFrame/layout/Library/LaunchDaemons/com.julioverne.screendumpd.rootless.plist
new file mode 100644
index 0000000..64803f4
--- /dev/null
+++ b/screendumpLowFrame/layout/Library/LaunchDaemons/com.julioverne.screendumpd.rootless.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ Label
+ com.julioverne.screendumpd
+ ProgramArguments
+
+ /var/jb/usr/libexec/screendumpd
+
+ RunAtLoad
+
+ KeepAlive
+
+
+
diff --git a/screendumpLowFrame/main.mm b/screendumpLowFrame/main.mm
index 9ac9d69..1252761 100644
--- a/screendumpLowFrame/main.mm
+++ b/screendumpLowFrame/main.mm
@@ -5,8 +5,6 @@
#import
#import
-#define kSettingsPath @"/var/jb/var/mobile/Library/Preferences/com.cosmosgenius.screendump.plist"
-
static bool CCSisEnabled = true;
static NSString *CCSPassword = nil;
static rfbScreenInfoPtr screen;