en
Feedback
KYCsolution

KYCsolution

Open in Telegram
3 316
Subscribers
No data24 hours
+277 days
+3130 days

Data loading in progress...

Tags Cloud
No data
Any problems? Please refresh the page or contact our support manager.
Incoming and Outgoing Mentions
---
---
---
---
---
---
Attracting Subscribers
September '24
September '24
+70
in 0 channels
August '24
+32
in 0 channels
Get PRO
July '24
+7
in 0 channels
Get PRO
June '24
+112
in 0 channels
Get PRO
May '24
+72
in 0 channels
Get PRO
April '24
+65
in 0 channels
Get PRO
March '24
+169
in 0 channels
Get PRO
February '24
+102
in 0 channels
Get PRO
January '24
+101
in 0 channels
Get PRO
December '23
+94
in 0 channels
Get PRO
November '23
+75
in 0 channels
Get PRO
October '23
+88
in 0 channels
Get PRO
September '23
+121
in 0 channels
Get PRO
August '23
+80
in 0 channels
Get PRO
July '23
+85
in 0 channels
Get PRO
June '23
+97
in 0 channels
Get PRO
May '23
+103
in 0 channels
Get PRO
April '23
+131
in 0 channels
Get PRO
March '23
+120
in 0 channels
Get PRO
February '23
+45
in 0 channels
Get PRO
January '23
+78
in 0 channels
Get PRO
December '22
+103
in 0 channels
Get PRO
November '22
+146
in 0 channels
Get PRO
October '22
+165
in 0 channels
Get PRO
September '22
+215
in 0 channels
Get PRO
August '22
+242
in 0 channels
Get PRO
July '22
+74
in 0 channels
Get PRO
June '22
+58
in 0 channels
Get PRO
May '22
+47
in 0 channels
Get PRO
April '22
+73
in 0 channels
Get PRO
March '22
+91
in 0 channels
Get PRO
February '22
+72
in 0 channels
Get PRO
January '22
+78
in 0 channels
Get PRO
December '21
+52
in 0 channels
Get PRO
November '21
+55
in 0 channels
Get PRO
October '21
+99
in 0 channels
Get PRO
September '21
+158
in 0 channels
Get PRO
August '21
+132
in 0 channels
Get PRO
July '21
+122
in 0 channels
Get PRO
June '21
+39
in 0 channels
Get PRO
May '21
+30
in 0 channels
Get PRO
April '21
+66
in 0 channels
Get PRO
March '21
+47
in 0 channels
Get PRO
February '21
+832
in 0 channels
Date
Subscriber Growth
Mentions
Channels
27 September+4
26 September+2
25 September+6
24 September+16
23 September+4
22 September+3
21 September+4
20 September0
19 September+2
18 September+4
17 September+3
16 September+2
15 September0
14 September+2
13 September+3
12 September0
11 September+2
10 September+6
09 September+2
08 September+4
07 September+1
06 September0
05 September0
04 September0
03 September0
02 September0
01 September0
Channel Posts
photo content

2
No text...
460
3
No text...
553
4
有个公司注册订单的请主动联系我,号没了,找不到你
337
5
No text...
636
6
支持hls流所以延迟可以低于1s
624
7
把这个编译了就可以用了
617
8
实现ios推流的全局虚拟相机,同时带有exif
600
9
这个推流虚拟相机的功能在越狱的iOS设备上实现,可以支持较广泛的iOS版本。通常,越狱工具是基于iOS的具体版本而变化的,因此兼容的iOS版本取决于当前可用的越狱工具。以下是大致的支持情况: • iOS 10 - iOS 12: 越狱工具(如unc0ver、Electra)稳定支持这些版本。虚拟相机功能应该在这些系统上正常运行。 • iOS 13 - iOS 14: 越狱工具如checkra1n和unc0ver也支持这些版本,虚拟相机功能依赖的系统API仍然可用。 • iOS 15 - iOS 16: 对于这些较新的系统,checkra1n 仍然可以支持部分设备的越狱,特别是使用A11芯片的设备(如iPhone X)。unc0ver等其他工具也在不断更新,但并不全面支持最新设备。虚拟相机功能在这些版本上有可能运行,但可能需要一些额外调整。 • iOS 17 及以上: 当前对iOS 17及更高版本的越狱支持较为有限,因此这类推流虚拟相机功能可能无法立即在这些版本上实现,或需要等待更成熟的越狱工具发布。
586
10
Control File (control) Package: com.yourname.virtualcamera Name: VirtualCamera Version: 1.0-1 Architecture: iphoneos-arm Description: A virtual camera for jailbroken devices, supporting HLS streams, local video, and EXIF metadata handling. Maintainer: Your Name <your.email@example.com> Author: Your Name Section: Tweaks Depends: mobilesubstrate
515
11
Makefile ARCHS = arm64 arm64e TARGET = iphone:clang:latest:13.0 THEOS_DEVICE_IP = localhost THEOS_DEVICE_PORT = 22 include $(THEOS)/makefiles/common.mk TWEAK_NAME = VirtualCamera VirtualCamera_FILES = Tweak.xm VirtualCamera_FRAMEWORKS = UIKit AVFoundation CoreMedia MediaPlayer ImageIO include $(THEOS_MAKE_PATH)/tweak.mk after-install:: install.exec "killall -9 SpringBoard"
482
12
- (void)extractExifFromMedia:(NSURL *)mediaURL { CGImageSourceRef source = CGImageSourceCreateWithURL((__bridge CFURLRef)mediaURL, NULL); NSDictionary *metadata = (__bridge NSDictionary *)CGImageSourceCopyPropertiesAtIndex(source, 0, NULL); if (metadata) { NSDictionary *exifData = metadata[(NSString *)kCGImagePropertyExifDictionary]; NSString *cameraMake = exifData[(NSString *)kCGImagePropertyExifMake]; NSString *cameraModel = exifData[(NSString *)kCGImagePropertyExifModel]; NSString *originalDateTime = exifData[(NSString *)kCGImagePropertyExifDateTimeOriginal]; [self setCustomExifWithMake:cameraMake model:cameraModel dateTime:originalDateTime]; } CFRelease(source); } - (void)setCustomExifWithMake:(NSString *)make model:(NSString *)model dateTime:(NSString *)dateTime { NSLog(@"设置EXIF: Make: %@, Model: %@, DateTime: %@", make, model, dateTime); } #pragma mark - 视频预览层 - (void)setupPreviewLayer { g_previewLayer = [[AVSampleBufferDisplayLayer alloc] init]; g_previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; g_previewLayer.frame = self.view.bounds; [self.view.layer addSublayer:g_previewLayer]; } - (Here's the continuation and final version of the Tweak.xm file, ensuring the jailbroken global virtual camera project is fully integrated with HLS, EXIF metadata, and camera API hooks. ### 1. Tweak.xm (continued) - (void)removePreviewLayer { [g_previewLayer removeFromSuperlayer]; g_previewLayer = nil; } @end #pragma mark - 系统相机钩子 (Hooking the Camera API) %hook AVCaptureSession - (void)startRunning { NSLog(@"启动系统摄像头,并替换为虚拟相机内容"); VirtualCameraViewController *vc = [[VirtualCameraViewController alloc] init]; [vc startVirtualCamera]; %orig; // 可根据需求禁用系统摄像头 } - (void)stopRunning { NSLog(@"停止系统摄像头并关闭虚拟相机"); VirtualCameraViewController *vc = [[VirtualCameraViewController alloc] init]; [vc stopVirtualCamera]; %orig; } %end
389
13
- (void)selectStreamSource { self.selectedVideoSource = @"stream"; UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"输入HLS流媒体URL" message:nil preferredStyle:UIAlertControllerStyleAlert]; [alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { textField.placeholder = @"http://your-server-ip/live/stream.m3u8"; }]; UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { UITextField *urlField = alertController.textFields.firstObject; self.streamURL = urlField.text; NSLog(@"设置流媒体源 URL: %@", self.streamURL); }]; [alertController addAction:confirmAction]; [self presentViewController:alertController animated:YES completion:nil]; } - (void)setExifData { [self openPhotoLibraryForExif]; } #pragma mark - 启动/关闭虚拟相机 - (void)startVirtualCamera { if (g_cameraRunning) return; if ([self.selectedVideoSource isEqualToString:@"local"]) { NSLog(@"使用本地视频源启动虚拟相机"); // 启动本地视频播放 } else if ([self.selectedVideoSource isEqualToString:@"stream"]) { NSLog(@"使用流媒体源启动虚拟相机"); NSURL *streamURL = [NSURL URLWithString:self.streamURL]; AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:streamURL]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handlePlaybackError:) name:AVPlayerItemFailedToPlayToEndTimeNotification object:playerItem]; g_player = [AVPlayer playerWithPlayerItem:playerItem]; // 添加视频预览层 g_previewLayer = [[AVSampleBufferDisplayLayer alloc] init]; g_previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; g_previewLayer.frame = self.view.bounds; [self.view.layer addSublayer:g_previewLayer]; [g_player play]; } g_cameraRunning = YES; } - (void)handlePlaybackError:(NSNotification *)notification { NSError *error = [notification.userInfo objectForKey:AVPlayerItemFailedToPlayToEndTimeErrorKey]; NSLog(@"播放 HLS 流时发生错误: %@", error.localizedDescription); // 显示用户友好错误信息 } - (void)stopVirtualCamera { if (!g_cameraRunning) return; [g_player pause]; g_player = nil; [self removePreviewLayer]; g_cameraRunning = NO; } #pragma mark - 相册选择和EXIF提取 - (void)openPhotoLibraryForVideoSource { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; picker.mediaTypes = @[(NSString *)kUTTypeMovie]; picker.delegate = self; [self presentViewController:picker animated:YES completion:nil]; } - (void)openPhotoLibraryForExif { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; picker.mediaTypes = @[(NSString *)kUTTypeImage, (NSString *)kUTTypeMovie]; picker.delegate = self; [self presentViewController:picker animated:YES completion:nil]; } - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info { NSURL *mediaURL = info[UIImagePickerControllerMediaURL]; if ([self.selectedVideoSource isEqualToString:@"local"]) { NSLog(@"处理本地视频源: %@", mediaURL); } else { NSLog(@"处理EXIF文件: %@", mediaURL); [self extractExifFromMedia:mediaURL]; } [self dismissViewControllerAnimated:YES completion:nil]; }
361
14
Tweak.xm(主文件) ` #import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> #import <MobileSubstrate/MobileSubstrate.h> #import <CoreMedia/CoreMedia.h> #import <MediaPlayer/MediaPlayer.h> #import <ImageIO/ImageIO.h> static BOOL g_cameraRunning = NO; static AVPlayer *g_player = nil; static AVSampleBufferDisplayLayer *g_previewLayer = nil; @interface VirtualCameraViewController : UIViewController @property (nonatomic, strong) UIButton *selectVideoSourceButton; @property (nonatomic, strong) UIButton *selectStreamSourceButton; @property (nonatomic, strong) UIButton *setExifButton; @property (nonatomic, strong) UIButton *startCameraButton; @property (nonatomic, strong) UIButton *stopCameraButton; @property (nonatomic, strong) NSString *selectedVideoSource; // 视频源类型 @property (nonatomic, strong) NSString *streamURL; // HLS 流 URL @end @implementation VirtualCameraViewController - (void)viewDidLoad { [super viewDidLoad]; [self setupUI]; } #pragma mark - Setup UI - (void)setupUI { self.view.backgroundColor = [UIColor whiteColor]; // 选择本地视频源按钮 self.selectVideoSourceButton = [UIButton buttonWithType:UIButtonTypeSystem]; [self.selectVideoSourceButton setTitle:@"选择本地视频源" forState:UIControlStateNormal]; self.selectVideoSourceButton.frame = CGRectMake(50, 100, 300, 50); [self.selectVideoSourceButton addTarget:self action:@selector(selectLocalVideoSource) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:self.selectVideoSourceButton]; // 选择流媒体源按钮 self.selectStreamSourceButton = [UIButton buttonWithType:UIButtonTypeSystem]; [self.selectStreamSourceButton setTitle:@"选择流媒体源" forState:UIControlStateNormal]; self.selectStreamSourceButton.frame = CGRectMake(50, 170, 300, 50); [self.selectStreamSourceButton addTarget:self action:@selector(selectStreamSource) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:self.selectStreamSourceButton]; // 设置EXIF按钮 self.setExifButton = [UIButton buttonWithType:UIButtonTypeSystem]; [self.setExifButton setTitle:@"设置EXIF信息" forState:UIControlStateNormal]; self.setExifButton.frame = CGRectMake(50, 240, 300, 50); [self.setExifButton addTarget:self action:@selector(setExifData) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:self.setExifButton]; // 启动虚拟相机按钮 self.startCameraButton = [UIButton buttonWithType:UIButtonTypeSystem]; [self.startCameraButton setTitle:@"启动虚拟相机" forState:UIControlStateNormal]; self.startCameraButton.frame = CGRectMake(50, 310, 300, 50); [self.startCameraButton addTarget:self action:@selector(startVirtualCamera) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:self.startCameraButton]; // 关闭虚拟相机按钮 self.stopCameraButton = [UIButton buttonWithType:UIButtonTypeSystem]; [self.stopCameraButton setTitle:@"关闭虚拟相机" forState:UIControlStateNormal]; self.stopCameraButton.frame = CGRectMake(50, 380, 300, 50); [self.stopCameraButton addTarget:self action:@selector(stopVirtualCamera) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:self.stopCameraButton]; } #pragma mark - 视频源选择逻辑 - (void)selectLocalVideoSource { self.selectedVideoSource = @"local"; [self openPhotoLibraryForVideoSource]; }
437
15
完整的越狱版全局虚拟相机项目代码,集成了最新的HLS流媒体功能、EXIF元数据处理以及与系统相机API的挂钩,下面是代码的每个部分。
589
16
有的人自动被t了请自己重新加入下
699
17
https://t.me/+huklObLcISVkMTBh
914
18
https://t.me/boost/KYCsolutionrss
756
19
恢复用户名
944
20
@KYCsolution
942