Merge pull request #1 from s1dds/rootless

Rootless + Rootful builds
This commit is contained in:
Siddharth Saxena 2023-12-17 02:15:31 +05:30 committed by GitHub
commit de1f2f0f08
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 134 additions and 16 deletions

64
.github/workflows/ci.yaml vendored Normal file
View File

@ -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 }}

3
.gitignore vendored
View File

@ -1 +1,2 @@
.theos .theos
packages

View File

@ -1,7 +1,12 @@
TARGET = iphone:14.4:10.0 TARGET = iphone:16.5:14.0
include $(THEOS)/makefiles/common.mk include $(THEOS)/makefiles/common.mk
ifeq ($(THEOS_PACKAGE_SCHEME),rootless)
PACKAGE_BUILDNAME := rootless
else
PACKAGE_BUILDNAME := rootful
endif
TOOL_NAME = screendumpd TOOL_NAME = screendumpd
$(TOOL_NAME)_FILES = main.mm $(TOOL_NAME)_FILES = main.mm
@ -23,3 +28,14 @@ include $(THEOS_MAKE_PATH)/tool.mk
SUBPROJECTS += hooks SUBPROJECTS += hooks
include $(THEOS_MAKE_PATH)/aggregate.mk 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

View File

@ -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

View File

@ -1,7 +1,8 @@
TARGET = iphone:14.4:10.0 TARGET = iphone:16.5:14.0
include $(THEOS)/makefiles/common.mk include $(THEOS)/makefiles/common.mk
TWEAK_NAME = screendumpbb TWEAK_NAME = screendumpbb
$(TWEAK_NAME)_FILES = Tweak.xm $(TWEAK_NAME)_FILES = Tweak.xm
$(TWEAK_NAME)_FRAMEWORKS := IOSurface IOKit $(TWEAK_NAME)_FRAMEWORKS := IOSurface IOKit

View File

@ -2,11 +2,11 @@
#include <substrate.h> #include <substrate.h>
#include <rfb/rfb.h> #include <rfb/rfb.h>
#import <notify.h> #import <notify.h>
#import <UIKit/UIKit.h>
#import <rootless.h>
#undef NSLog #undef NSLog
#define kSettingsPath @"//var/mobile/Library/Preferences/com.cosmosgenius.screendump.plist"
extern "C" UIImage* _UICreateScreenUIImage(); extern "C" UIImage* _UICreateScreenUIImage();
static BOOL isEnabled; static BOOL isEnabled;

View File

@ -1,6 +1,6 @@
Package: com.cosmosgenius.screendump13 Package: com.cosmosgenius.screendump13
Name: screendump Name: screendump
Depends: mobilesubstrate, preferenceloader Depends: preferenceloader
Architecture: iphoneos-arm Architecture: iphoneos-arm
Description: VNC for ios Description: VNC for ios
Maintainer: Sharat M R <cosmosgenius@gmail.com> Maintainer: Sharat M R <cosmosgenius@gmail.com>

View File

@ -1,6 +1,11 @@
#!/bin/bash #!/bin/bash
launchctl unload //Library/LaunchDaemons/com.julioverne.screendumpd.plist if [ -L "/var/jb" ]; then
launchctl load //Library/LaunchDaemons/com.julioverne.screendumpd.plist 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; exit 0;

View File

@ -1,5 +0,0 @@
#!/bin/bash
launchctl unload //Library/LaunchDaemons/com.julioverne.screendumpd.plist
exit 0;

View File

@ -0,0 +1,9 @@
#!/bin/bash
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;

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.julioverne.screendumpd</string>
<key>ProgramArguments</key>
<array>
<string>/var/jb/usr/libexec/screendumpd</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>

View File

@ -1,9 +1,9 @@
#include <errno.h> #include <errno.h>
#include <substrate.h> #include <substrate.h>
#include <rfb/rfb.h> #include <rfb/rfb.h>
#import <xpc/xpc.h> #import <Foundation/Foundation.h>
#import <IOSurface/IOSurfaceRef.h>
#define kSettingsPath @"//var/mobile/Library/Preferences/com.cosmosgenius.screendump.plist" #import <rootless.h>
static bool CCSisEnabled = true; static bool CCSisEnabled = true;
static NSString *CCSPassword = nil; static NSString *CCSPassword = nil;