fa
Feedback
KYCsolution

KYCsolution

رفتن به کانال در Telegram
3 316
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+277 روز
+3130 روز

در حال بارگیری داده...

ابر برچسب‌ها
هیچ داده‌ای
مشکلی وجود دارد؟ لطفاً صفحه را تازه کنید یا با مدیر پشتیبانی ما تماس بگیرید.
اشارات ورودی و خروجی
---
---
---
---
---
---
جذب مشترکین
سپتامبر '24
سپتامبر '24
+70
در 0 کانال‌ها
اوت '24
+32
در 0 کانال‌ها
Get PRO
ژوئیه '24
+7
در 0 کانال‌ها
Get PRO
ژوئن '24
+112
در 0 کانال‌ها
Get PRO
مه '24
+72
در 0 کانال‌ها
Get PRO
آوریل '24
+65
در 0 کانال‌ها
Get PRO
مارس '24
+169
در 0 کانال‌ها
Get PRO
فوریه '24
+102
در 0 کانال‌ها
Get PRO
ژانویه '24
+101
در 0 کانال‌ها
Get PRO
دسامبر '23
+94
در 0 کانال‌ها
Get PRO
نوامبر '23
+75
در 0 کانال‌ها
Get PRO
اکتبر '23
+88
در 0 کانال‌ها
Get PRO
سپتامبر '23
+121
در 0 کانال‌ها
Get PRO
اوت '23
+80
در 0 کانال‌ها
Get PRO
ژوئیه '23
+85
در 0 کانال‌ها
Get PRO
ژوئن '23
+97
در 0 کانال‌ها
Get PRO
مه '23
+103
در 0 کانال‌ها
Get PRO
آوریل '23
+131
در 0 کانال‌ها
Get PRO
مارس '23
+120
در 0 کانال‌ها
Get PRO
فوریه '23
+45
در 0 کانال‌ها
Get PRO
ژانویه '23
+78
در 0 کانال‌ها
Get PRO
دسامبر '22
+103
در 0 کانال‌ها
Get PRO
نوامبر '22
+146
در 0 کانال‌ها
Get PRO
اکتبر '22
+165
در 0 کانال‌ها
Get PRO
سپتامبر '22
+215
در 0 کانال‌ها
Get PRO
اوت '22
+242
در 0 کانال‌ها
Get PRO
ژوئیه '22
+74
در 0 کانال‌ها
Get PRO
ژوئن '22
+58
در 0 کانال‌ها
Get PRO
مه '22
+47
در 0 کانال‌ها
Get PRO
آوریل '22
+73
در 0 کانال‌ها
Get PRO
مارس '22
+91
در 0 کانال‌ها
Get PRO
فوریه '22
+72
در 0 کانال‌ها
Get PRO
ژانویه '22
+78
در 0 کانال‌ها
Get PRO
دسامبر '21
+52
در 0 کانال‌ها
Get PRO
نوامبر '21
+55
در 0 کانال‌ها
Get PRO
اکتبر '21
+99
در 0 کانال‌ها
Get PRO
سپتامبر '21
+158
در 0 کانال‌ها
Get PRO
اوت '21
+132
در 0 کانال‌ها
Get PRO
ژوئیه '21
+122
در 0 کانال‌ها
Get PRO
ژوئن '21
+39
در 0 کانال‌ها
Get PRO
مه '21
+30
در 0 کانال‌ها
Get PRO
آوریل '21
+66
در 0 کانال‌ها
Get PRO
مارس '21
+47
در 0 کانال‌ها
Get PRO
فوریه '21
+832
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
27 سپتامبر+4
26 سپتامبر+2
25 سپتامبر+6
24 سپتامبر+16
23 سپتامبر+4
22 سپتامبر+3
21 سپتامبر+4
20 سپتامبر0
19 سپتامبر+2
18 سپتامبر+4
17 سپتامبر+3
16 سپتامبر+2
15 سپتامبر0
14 سپتامبر+2
13 سپتامبر+3
12 سپتامبر0
11 سپتامبر+2
10 سپتامبر+6
09 سپتامبر+2
08 سپتامبر+4
07 سپتامبر+1
06 سپتامبر0
05 سپتامبر0
04 سپتامبر0
03 سپتامبر0
02 سپتامبر0
01 سپتامبر0
پست‌های کانال
photo content

2
بدون متن...
460
3
بدون متن...
553
4
有个公司注册订单的请主动联系我,号没了,找不到你
337
5
بدون متن...
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