This commit is contained in:
m1337 2024-08-29 23:12:03 +07:00 committed by Michael
parent 0ed9b9063c
commit 26f21ff693
16 changed files with 74 additions and 50 deletions

View File

@ -1,18 +1,22 @@
TARGET = iphone:14.4:10.0 DEBUG=0
FINALPACKAGE=1
THEOS_PACKAGE_SCHEME = rootless
TARGET = iphone:14.5:14.5
ARCHS = arm64
include $(THEOS)/makefiles/common.mk include $(THEOS)/makefiles/common.mk
TOOL_NAME = screendumpd TOOL_NAME = screendumpd
export ARCHS = arm64
$(TOOL_NAME)_ARCHS = arm64 $(TOOL_NAME)_ARCHS = arm64
$(TOOL_NAME)_FILES = main.mm $(TOOL_NAME)_FILES = main.mm
$(TOOL_NAME)_FRAMEWORKS := IOSurface IOKit $(TOOL_NAME)_FRAMEWORKS := IOSurface IOKit
$(TOOL_NAME)_PRIVATE_FRAMEWORKS := IOMobileFramebuffer IOSurface $(TOOL_NAME)_PRIVATE_FRAMEWORKS := IOMobileFramebuffer IOSurface
$(TOOL_NAME)_OBJCFLAGS += -Ivncbuild/include -Iinclude $(TOOL_NAME)_OBJCFLAGS += -I./vncbuild/include -Iinclude
$(TOOL_NAME)_LDFLAGS += -Wl,-segalign,4000 -Lvncbuild/lib -lvncserver -lpng -llzo2 -ljpeg -lssl -lcrypto -lz $(TOOL_NAME)_LDFLAGS += -Wl,-segalign,4000 -L./vncbuild/lib -lvncserver -lpng -llzo2 -ljpeg -lssl -lcrypto -lz
$(TOOL_NAME)_CFLAGS = -w $(TOOL_NAME)_CFLAGS = -w
$(TOOL_NAME)_CODESIGN_FLAGS = "-Sen.plist" $(TOOL_NAME)_CODESIGN_FLAGS = "-Sen.plist"
$(TOOL_NAME)_INSTALL_PATH = /usr/libexec $(TOOL_NAME)_INSTALL_PATH = /usr/libexec
include $(THEOS_MAKE_PATH)/tool.mk include $(THEOS_MAKE_PATH)/tool.mk

1
screendump/en.plist Normal file → Executable file
View File

@ -7,6 +7,7 @@
<string>IOSurfaceAcceleratorClient</string> <string>IOSurfaceAcceleratorClient</string>
<string>IOMobileFramebufferUserClient</string> <string>IOMobileFramebufferUserClient</string>
<string>IOSurfaceRootUserClient</string> <string>IOSurfaceRootUserClient</string>
<string>IOHIDLibUserClient</string>
</array> </array>
<key>platform-application</key> <key>platform-application</key>
<true/> <true/>

View File

@ -1,12 +1,11 @@
Package: com.julioverne.screendump13 Package: com.m1337.screendump15
Name: screendump (iOS 13) Name: screendump (iOS 15+)
Depends: mobilesubstrate, preferenceloader Depends: mobilesubstrate, preferenceloader
Conflicts: com.cosmosgenius.screendump Conflicts: com.cosmosgenius.screendump, com.cosmosgenius.screendump13, com.julioverne.screendump13
Architecture: iphoneos-arm Architecture: iphoneos-arm64
Description: VNC for ios Description: VNC for iOS15+ (rootless/Ellekit)
Maintainer: Julio Maintainer: m1337
Author: julioverne, Sharat M R Author: m1337
Section: Tweaks Version: 0.0.5
Version: 0.0.3e
Depiction: http://julioverne.github.io/description.html?id=com.julioverne.screendump13 Depiction: http://julioverne.github.io/description.html?id=com.julioverne.screendump13
Icon: file:///Library/PreferenceLoader/Preferences/screendump/ScreenDump@2x.png Icon: file:///Library/PreferenceLoader/Preferences/screendump/ScreenDump@2x.png

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
launchctl unload /Library/LaunchDaemons/com.julioverne.screendumpd.plist launchctl unload /var/jb/Library/LaunchDaemons/com.julioverne.screendumpd.plist
launchctl load /Library/LaunchDaemons/com.julioverne.screendumpd.plist launchctl load /var/jb/Library/LaunchDaemons/com.julioverne.screendumpd.plist
exit 0; exit 0;

View File

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

25
screendump/main.mm Normal file → Executable file
View File

@ -1,8 +1,10 @@
#include <errno.h> #include <errno.h>
#include <substrate.h> #include <substrate.h>
#include <rfb/rfb.h> #include <rfb/rfb.h>
#include <UIKit/UIKit.h>
#include <Foundation/Foundation.h>
#define kSettingsPath @"//var/mobile/Library/Preferences/com.cosmosgenius.screendump.plist" #define kSettingsPath @"/var/mobile/Library/Preferences/com.cosmosgenius.screendump.plist"
static bool CCSisEnabled = true; static bool CCSisEnabled = true;
static NSString *CCSPassword = nil; static NSString *CCSPassword = nil;
@ -49,7 +51,7 @@ typedef mach_port_t io_service_t;
typedef kern_return_t IOReturn; typedef kern_return_t IOReturn;
typedef IOReturn IOMobileFramebufferReturn; typedef IOReturn IOMobileFramebufferReturn;
typedef io_service_t IOMobileFramebufferService; typedef io_service_t IOMobileFramebufferService;
extern "C" mach_port_t mach_task_self(void); // extern "C" mach_port_t mach_task_self(void);
extern "C" void IOSurfaceFlushProcessorCaches(IOSurfaceRef buffer); extern "C" void IOSurfaceFlushProcessorCaches(IOSurfaceRef buffer);
extern "C" int IOSurfaceLock(IOSurfaceRef surface, uint32_t options, uint32_t *seed); extern "C" int IOSurfaceLock(IOSurfaceRef surface, uint32_t options, uint32_t *seed);
extern "C" int IOSurfaceUnlock(IOSurfaceRef surface, uint32_t options, uint32_t *seed); extern "C" int IOSurfaceUnlock(IOSurfaceRef surface, uint32_t options, uint32_t *seed);
@ -58,8 +60,10 @@ extern "C" CFMutableDictionaryRef IOServiceMatching(const char *name);
extern "C" const mach_port_t kIOMasterPortDefault; extern "C" const mach_port_t kIOMasterPortDefault;
extern "C" io_service_t IOServiceGetMatchingService(mach_port_t masterPort, CFDictionaryRef matching); extern "C" io_service_t IOServiceGetMatchingService(mach_port_t masterPort, CFDictionaryRef matching);
extern "C" IOMobileFramebufferReturn IOMobileFramebufferGetLayerDefaultSurface(IOMobileFramebufferRef pointer, int surface, IOSurfaceRef *buffer); extern "C" IOMobileFramebufferReturn IOMobileFramebufferGetLayerDefaultSurface(IOMobileFramebufferRef pointer, int surface, IOSurfaceRef *buffer);
extern "C" IOMobileFramebufferReturn IOMobileFramebufferCopyLayerDisplayedSurface(IOMobileFramebufferRef pointer, int surface, IOSurfaceRef *buffer);
extern "C" IOMobileFramebufferReturn IOMobileFramebufferOpen(IOMobileFramebufferService service, mach_port_t owningTask, unsigned int type, IOMobileFramebufferRef *pointer); extern "C" IOMobileFramebufferReturn IOMobileFramebufferOpen(IOMobileFramebufferService service, mach_port_t owningTask, unsigned int type, IOMobileFramebufferRef *pointer);
extern "C" IOMobileFramebufferReturn IOMobileFramebufferGetMainDisplay(IOMobileFramebufferRef *pointer); extern "C" IOMobileFramebufferReturn IOMobileFramebufferGetMainDisplay(IOMobileFramebufferRef *pointer);
extern "C" mach_port_t mach_task_self(void);
static IOSurfaceAcceleratorRef accelerator; static IOSurfaceAcceleratorRef accelerator;
static IOSurfaceRef static_buffer; static IOSurfaceRef static_buffer;
@ -101,7 +105,10 @@ static void VNCSetup()
IOSurfaceAcceleratorCreate(kCFAllocatorDefault, 0, &accelerator); IOSurfaceAcceleratorCreate(kCFAllocatorDefault, 0, &accelerator);
IOMobileFramebufferGetMainDisplay(&framebufferConnection); IOMobileFramebufferGetMainDisplay(&framebufferConnection);
IOMobileFramebufferGetLayerDefaultSurface(framebufferConnection, 0, &screenSurface); IOMobileFramebufferGetLayerDefaultSurface(framebufferConnection, 0, &screenSurface);
if(screenSurface == NULL)
IOMobileFramebufferCopyLayerDisplayedSurface(framebufferConnection, 0, &screenSurface);
//CGSize size; //CGSize size;
//IOMobileFramebufferGetDisplaySize(framebufferConnection, &size); //IOMobileFramebufferGetDisplaySize(framebufferConnection, &size);
@ -528,3 +535,17 @@ static void handleVNCKeyboard(rfbBool down, rfbKeySym key, rfbClientPtr client)
static void handleVNCPointer(int buttons, int x, int y, rfbClientPtr client) { static void handleVNCPointer(int buttons, int x, int y, rfbClientPtr client) {
VNCPointer(buttons, x, y, client); VNCPointer(buttons, x, y, client);
} }
// 기본 22:11:52.331940+0900 kernel Corpse released, count at 0
// 기본 22:11:52.414493+0900 kernel IOMFB: default_fb_surface: No Default FB Surface found. Return error
// 기본 22:11:52.414536+0900 kernel screendumpd[43722] Corpse allowed 1 of 5
// 기본 22:11:52.606790+0900 kernel Corpse released, count at 0
// 기본 22:11:52.682856+0900 kernel IOMFB: default_fb_surface: No Default FB Surface found. Return error
// 기본 22:11:52.682905+0900 kernel screendumpd[43723] Corpse allowed 1 of 5
// 기본 22:11:52.876255+0900 kernel Corpse released, count at 0
// 기본 22:11:52.915524+0900 kernel IOMFB: default_fb_surface: No Default FB Surface found. Return error
// 기본 22:11:52.915570+0900 kernel screendumpd[43724] Corpse allowed 1 of 5
// 기본 22:11:53.105917+0900 kernel Corpse released, count at 0
// 기본 22:11:53.277579+0900 kernel IOMFB: default_fb_surface: No Default FB Surface found. Return error
// 기본 22:11:53.277657+0900 kernel screendumpd[43725] Corpse allowed 1 of 5
// 기본 22:11:53.407555+0900 kernel IOMFB: default_fb_surface: No Default FB Surface found. Return error

BIN
screendumpLowFrame/.DS_Store vendored Normal file

Binary file not shown.

View File

@ -16,15 +16,24 @@ ARCHS = arm64
$(TOOL_NAME)_VALID_ARCHS = arm64 $(TOOL_NAME)_VALID_ARCHS = arm64
$(TOOL_NAME)_FRAMEWORKS := IOSurface IOKit $(TOOL_NAME)_FRAMEWORKS := IOSurface IOKit
$(TOOL_NAME)_PRIVATE_FRAMEWORKS := IOMobileFramebuffer IOSurface $(TOOL_NAME)_PRIVATE_FRAMEWORKS := IOMobileFramebuffer IOSurface
$(TOOL_NAME)_OBJCFLAGS += -Ivncbuild/include -Iinclude
$(TOOL_NAME)_LDFLAGS += -Wl,-segalign,4000 -Lvncbuild/lib -lvncserver -lpng -llzo2 -ljpeg -lssl -lcrypto -lz ifeq ($(THEOS_PACKAGE_SCHEME),rootless)
# Rootless
$(TOOL_NAME)_OBJCFLAGS += -I/mnt/d/codes/screendumpLowFrame/vncbuild/include -Iinclude
$(TOOL_NAME)_LDFLAGS += -Wl,-segalign,4000 -L/mnt/d/codes/screendumpLowFrame/vncbuild/lib -lvncserver -lpng -llzo2 -ljpeg -lssl -lcrypto -lz
$(TOOL_NAME)_INSTALL_PATH = /usr/libexec
else
# Rootful settings
$(TOOL_NAME)_OBJCFLAGS += -Ivncbuild/include -Iinclude
$(TOOL_NAME)_LDFLAGS += -Wl,-segalign,4000 -Lvncbuild/lib -lvncserver -lpng -llzo2 -ljpeg -lssl -lcrypto -lz
$(TOOL_NAME)_INSTALL_PATH = /usr/libexec
endif
$(TOOL_NAME)_CFLAGS = -w $(TOOL_NAME)_CFLAGS = -w
$(TOOL_NAME)_CODESIGN_FLAGS = "-Sen.plist" $(TOOL_NAME)_CODESIGN_FLAGS = "-Sen.plist"
$(TOOL_NAME)_INSTALL_PATH = /usr/libexec
include $(THEOS_MAKE_PATH)/tool.mk include $(THEOS_MAKE_PATH)/tool.mk
SUBPROJECTS += hooks SUBPROJECTS += hooks
include $(THEOS_MAKE_PATH)/aggregate.mk include $(THEOS_MAKE_PATH)/aggregate.mk
@ -38,4 +47,4 @@ else
after-screendumpd-stage:: after-screendumpd-stage::
$(ECHO_NOTHING) rm $(THEOS_STAGING_DIR)/Library/LaunchDaemons/com.julioverne.screendumpd.rootless.plist$(ECHO_END) $(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) $(ECHO_NOTHING)$(FAKEROOT) chown root:wheel $(THEOS_STAGING_DIR)/Library/LaunchDaemons/com.julioverne.screendumpd.plist$(ECHO_END)
endif endif

View File

@ -1,11 +0,0 @@
#!/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

0
screendumpLowFrame/en.plist Normal file → Executable file
View File

View File

@ -2,17 +2,16 @@ 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 = /mnt/d/codes/screendumpLowFrame/hooks/Tweak.xm
$(TWEAK_NAME)_FRAMEWORKS := IOSurface IOKit $(TWEAK_NAME)_FRAMEWORKS := IOSurface IOKit
$(TWEAK_NAME)_PRIVATE_FRAMEWORKS := IOMobileFramebuffer IOSurface $(TWEAK_NAME)_PRIVATE_FRAMEWORKS := IOMobileFramebuffer IOSurface
ADDITIONAL_OBJCFLAGS += -I../vncbuild/include -Iinclude ADDITIONAL_OBJCFLAGS += -I/mnt/d/codes/screendumpLowFrame/vncbuild/include -Iinclude
ADDITIONAL_LDFLAGS += -Wl,-segalign,4000 ADDITIONAL_LDFLAGS += -Wl,-segalign,4000
ADDITIONAL_CFLAGS = -w ADDITIONAL_CFLAGS = -w
export ARCHS = arm64 export ARCHS = arm64 arm64e
$(TWEAK_NAME)_ARCHS = arm64 $(TWEAK_NAME)_ARCHS = arm64 arm64e
include $(THEOS_MAKE_PATH)/tweak.mk include $(THEOS_MAKE_PATH)/tweak.mk

View File

@ -7,6 +7,8 @@
#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,9 +1,9 @@
Package: com.cosmosgenius.screendump13 Package: com.m1337.screendump15
Name: screendump Name: screendump
Depends: preferenceloader Depends: mobilesubstrate, preferenceloader
Architecture: iphoneos-arm Architecture: iphoneos-arm
Description: VNC for ios Description: VNC for ios
Maintainer: Sharat M R <cosmosgenius@gmail.com> Maintainer: m1337 <morpheus@1337.pro>
Author: Sharat M R <cosmosgenius@gmail.com> Author: m1337 <morpheus@1337.pro>
Section: Tweaks Section: Tweaks
Version: 0.0.4 Version: 0.0.5

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
if [ -L "/var/jb" ]; then if [ -L "/var/jb" ]; then
launchctl unload /var/jb/Library/LaunchDaemons/com.julioverne.screendumpd.plist launchctl unload /var/jb/Library/LaunchDaemons/com.julioverne.screendumpd.plist

6
screendumpLowFrame/main.mm Normal file → Executable file
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 <Foundation/Foundation.h> #import <xpc/xpc.h>
#import <IOSurface/IOSurfaceRef.h>
#import <rootless.h> #define kSettingsPath @"/var/mobile/Library/Preferences/com.cosmosgenius.screendump.plist"
static bool CCSisEnabled = true; static bool CCSisEnabled = true;
static NSString *CCSPassword = nil; static NSString *CCSPassword = nil;

2
screendumpLowFrame/vncbuild/include/rfb/rfbclient.h Normal file → Executable file
View File

@ -81,7 +81,7 @@
#define TUNNEL_PORT_OFFSET 5500 #define TUNNEL_PORT_OFFSET 5500
#define SERVER_PORT_OFFSET 5900 #define SERVER_PORT_OFFSET 5900
#define DEFAULT_SSH_CMD "/usr/bin/ssh" #define DEFAULT_SSH_CMD "/var/jb/usr/bin/ssh"
#define DEFAULT_TUNNEL_CMD \ #define DEFAULT_TUNNEL_CMD \
(DEFAULT_SSH_CMD " -f -L %L:localhost:%R %H sleep 20") (DEFAULT_SSH_CMD " -f -L %L:localhost:%R %H sleep 20")
#define DEFAULT_VIA_CMD \ #define DEFAULT_VIA_CMD \