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
TOOL_NAME = screendumpd
export ARCHS = arm64
$(TOOL_NAME)_ARCHS = arm64
$(TOOL_NAME)_FILES = main.mm
$(TOOL_NAME)_FRAMEWORKS := IOSurface IOKit
$(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
$(TOOL_NAME)_OBJCFLAGS += -I./vncbuild/include -Iinclude
$(TOOL_NAME)_LDFLAGS += -Wl,-segalign,4000 -L./vncbuild/lib -lvncserver -lpng -llzo2 -ljpeg -lssl -lcrypto -lz
$(TOOL_NAME)_CFLAGS = -w
$(TOOL_NAME)_CODESIGN_FLAGS = "-Sen.plist"
$(TOOL_NAME)_INSTALL_PATH = /usr/libexec
include $(THEOS_MAKE_PATH)/tool.mk

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

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

View File

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

View File

@ -1,6 +1,6 @@
#!/bin/sh
launchctl unload /Library/LaunchDaemons/com.julioverne.screendumpd.plist
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
exit 0;

View File

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

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

@ -1,8 +1,10 @@
#include <errno.h>
#include <substrate.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 NSString *CCSPassword = nil;
@ -49,7 +51,7 @@ typedef mach_port_t io_service_t;
typedef kern_return_t IOReturn;
typedef IOReturn IOMobileFramebufferReturn;
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" int IOSurfaceLock(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" io_service_t IOServiceGetMatchingService(mach_port_t masterPort, CFDictionaryRef matching);
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 IOMobileFramebufferGetMainDisplay(IOMobileFramebufferRef *pointer);
extern "C" mach_port_t mach_task_self(void);
static IOSurfaceAcceleratorRef accelerator;
static IOSurfaceRef static_buffer;
@ -101,7 +105,10 @@ static void VNCSetup()
IOSurfaceAcceleratorCreate(kCFAllocatorDefault, 0, &accelerator);
IOMobileFramebufferGetMainDisplay(&framebufferConnection);
IOMobileFramebufferGetLayerDefaultSurface(framebufferConnection, 0, &screenSurface);
if(screenSurface == NULL)
IOMobileFramebufferCopyLayerDisplayedSurface(framebufferConnection, 0, &screenSurface);
//CGSize 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) {
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)_FRAMEWORKS := IOSurface IOKit
$(TOOL_NAME)_PRIVATE_FRAMEWORKS := IOMobileFramebuffer IOSurface
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)_CODESIGN_FLAGS = "-Sen.plist"
$(TOOL_NAME)_INSTALL_PATH = /usr/libexec
include $(THEOS_MAKE_PATH)/tool.mk
SUBPROJECTS += hooks
include $(THEOS_MAKE_PATH)/aggregate.mk

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
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)_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_CFLAGS = -w
export ARCHS = arm64
$(TWEAK_NAME)_ARCHS = arm64
export ARCHS = arm64 arm64e
$(TWEAK_NAME)_ARCHS = arm64 arm64e
include $(THEOS_MAKE_PATH)/tweak.mk

View File

@ -7,6 +7,8 @@
#undef NSLog
#define kSettingsPath @"/var/mobile/Library/Preferences/com.cosmosgenius.screendump.plist"
extern "C" UIImage* _UICreateScreenUIImage();
static BOOL isEnabled;

View File

@ -1,9 +1,9 @@
Package: com.cosmosgenius.screendump13
Package: com.m1337.screendump15
Name: screendump
Depends: preferenceloader
Depends: mobilesubstrate, preferenceloader
Architecture: iphoneos-arm
Description: VNC for ios
Maintainer: Sharat M R <cosmosgenius@gmail.com>
Author: Sharat M R <cosmosgenius@gmail.com>
Maintainer: m1337 <morpheus@1337.pro>
Author: m1337 <morpheus@1337.pro>
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
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 <substrate.h>
#include <rfb/rfb.h>
#import <Foundation/Foundation.h>
#import <IOSurface/IOSurfaceRef.h>
#import <rootless.h>
#import <xpc/xpc.h>
#define kSettingsPath @"/var/mobile/Library/Preferences/com.cosmosgenius.screendump.plist"
static bool CCSisEnabled = true;
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 SERVER_PORT_OFFSET 5900
#define DEFAULT_SSH_CMD "/usr/bin/ssh"
#define DEFAULT_SSH_CMD "/var/jb/usr/bin/ssh"
#define DEFAULT_TUNNEL_CMD \
(DEFAULT_SSH_CMD " -f -L %L:localhost:%R %H sleep 20")
#define DEFAULT_VIA_CMD \