├── .theos ├── fakeroot ├── build_session ├── obj │ └── appletv │ │ ├── .stamp │ │ ├── ScreenRecordModule.bundle │ │ ├── Record.png │ │ ├── RecordNotif.png │ │ ├── ScreenRecordModule │ │ ├── recordingStarted.caf │ │ ├── recordingStopped.caf │ │ └── Info.plist │ │ └── arm64 │ │ ├── ScreenRecordModule.mm.ac14109f.o │ │ ├── ScreenRecordModule.bundle │ │ ├── ScreenRecordModule │ │ └── ScreenRecordModule.dSYM │ │ │ └── Contents │ │ │ ├── Resources │ │ │ └── DWARF │ │ │ │ └── ScreenRecordModule │ │ │ └── Info.plist │ │ └── ScreenRecordModule.mm.ac14109f.Td ├── last_package └── _ │ ├── Library │ └── TVSystemMenuModules │ │ └── ScreenRecordModule.bundle │ │ ├── Info.plist │ │ ├── Record.png │ │ ├── RecordNotif.png │ │ ├── ScreenRecordModule │ │ ├── recordingStarted.caf │ │ └── recordingStopped.caf │ └── DEBIAN │ └── control ├── .gitattributes ├── Resources ├── Record.png ├── RecordNotif.png ├── recordingStarted.caf ├── recordingStopped.caf └── Info.plist ├── remove_junk.sh ├── packages └── com.ikilledappl3.recordmodule_1.0.3-1_appletvos-arm64.deb ├── TVSystemMenuUI.framework ├── PrivateHeaders │ ├── TVSystemMenuUI-Structs.h │ ├── TVLockupViewComponent.h │ ├── TVSMModuleContentViewControllerDelegate.h │ ├── TVSMModuleContentViewController.h │ ├── TVSMModuleDelegate.h │ ├── TVSMModuleExpandedContentViewControllerDelegate.h │ ├── TVSystemMenuUI.h │ ├── TVSMLockupContainingCollectionViewCell.h │ ├── _TVSMHighContrastFocusView.h │ ├── TVSMModule.h │ ├── TVSMCollectionModule.h │ ├── TVSMButtonViewController.h │ ├── TVSMActionModule.h │ ├── TVSMModuleButtonView.h │ ├── _TVSMVibrantHeaderFooterView.h │ ├── TVSMMonogramView.h │ ├── _TVSMModuleButtonContentView.h │ ├── TVSMMonogramViewController.h │ ├── TVSMExpandingModule.h │ ├── _TVSMMonogramContentView.h │ └── _TVSMRectangleButtonContentView.h └── TVSystemMenuUI.tbd ├── control ├── Makefile ├── README.md ├── LICENSE.md ├── ScreenRecordModule.h ├── ScreenRecordModule.mm └── PineBoardServices.framework └── PineBoardServices.tbd /.theos/fakeroot: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.theos/build_session: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.theos/obj/appletv/.stamp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.theos/last_package: -------------------------------------------------------------------------------- 1 | ./packages/com.ikilledappl3.recordmodule_1.0.3-1_appletvos-arm64.deb 2 | -------------------------------------------------------------------------------- /Resources/Record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/Resources/Record.png -------------------------------------------------------------------------------- /Resources/RecordNotif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/Resources/RecordNotif.png -------------------------------------------------------------------------------- /Resources/recordingStarted.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/Resources/recordingStarted.caf -------------------------------------------------------------------------------- /Resources/recordingStopped.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/Resources/recordingStopped.caf -------------------------------------------------------------------------------- /.theos/obj/appletv/ScreenRecordModule.bundle/Record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/.theos/obj/appletv/ScreenRecordModule.bundle/Record.png -------------------------------------------------------------------------------- /.theos/obj/appletv/arm64/ScreenRecordModule.mm.ac14109f.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/.theos/obj/appletv/arm64/ScreenRecordModule.mm.ac14109f.o -------------------------------------------------------------------------------- /.theos/obj/appletv/ScreenRecordModule.bundle/RecordNotif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/.theos/obj/appletv/ScreenRecordModule.bundle/RecordNotif.png -------------------------------------------------------------------------------- /.theos/obj/appletv/ScreenRecordModule.bundle/ScreenRecordModule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/.theos/obj/appletv/ScreenRecordModule.bundle/ScreenRecordModule -------------------------------------------------------------------------------- /remove_junk.sh: -------------------------------------------------------------------------------- 1 | rm -rf .theos && rm -rf packages && find . -name '.DS_Store' -type f -delete && make package && scp -r ./packages/*.deb root@192.168.1.211:/var/root/ && ssh root@192.168.1.211 -------------------------------------------------------------------------------- /.theos/obj/appletv/ScreenRecordModule.bundle/recordingStarted.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/.theos/obj/appletv/ScreenRecordModule.bundle/recordingStarted.caf -------------------------------------------------------------------------------- /.theos/obj/appletv/ScreenRecordModule.bundle/recordingStopped.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/.theos/obj/appletv/ScreenRecordModule.bundle/recordingStopped.caf -------------------------------------------------------------------------------- /packages/com.ikilledappl3.recordmodule_1.0.3-1_appletvos-arm64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/packages/com.ikilledappl3.recordmodule_1.0.3-1_appletvos-arm64.deb -------------------------------------------------------------------------------- /.theos/obj/appletv/arm64/ScreenRecordModule.bundle/ScreenRecordModule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/.theos/obj/appletv/arm64/ScreenRecordModule.bundle/ScreenRecordModule -------------------------------------------------------------------------------- /.theos/_/Library/TVSystemMenuModules/ScreenRecordModule.bundle/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/.theos/_/Library/TVSystemMenuModules/ScreenRecordModule.bundle/Info.plist -------------------------------------------------------------------------------- /.theos/_/Library/TVSystemMenuModules/ScreenRecordModule.bundle/Record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/.theos/_/Library/TVSystemMenuModules/ScreenRecordModule.bundle/Record.png -------------------------------------------------------------------------------- /.theos/_/Library/TVSystemMenuModules/ScreenRecordModule.bundle/RecordNotif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/.theos/_/Library/TVSystemMenuModules/ScreenRecordModule.bundle/RecordNotif.png -------------------------------------------------------------------------------- /.theos/_/Library/TVSystemMenuModules/ScreenRecordModule.bundle/ScreenRecordModule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/.theos/_/Library/TVSystemMenuModules/ScreenRecordModule.bundle/ScreenRecordModule -------------------------------------------------------------------------------- /.theos/_/Library/TVSystemMenuModules/ScreenRecordModule.bundle/recordingStarted.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/.theos/_/Library/TVSystemMenuModules/ScreenRecordModule.bundle/recordingStarted.caf -------------------------------------------------------------------------------- /.theos/_/Library/TVSystemMenuModules/ScreenRecordModule.bundle/recordingStopped.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/.theos/_/Library/TVSystemMenuModules/ScreenRecordModule.bundle/recordingStopped.caf -------------------------------------------------------------------------------- /.theos/obj/appletv/arm64/ScreenRecordModule.bundle/ScreenRecordModule.dSYM/Contents/Resources/DWARF/ScreenRecordModule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iKilledAppl3/ScreenRecordModule/HEAD/.theos/obj/appletv/arm64/ScreenRecordModule.bundle/ScreenRecordModule.dSYM/Contents/Resources/DWARF/ScreenRecordModule -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVSystemMenuUI-Structs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | typedef struct CGSize { 10 | double width; 11 | double height; 12 | } CGSize; 13 | 14 | -------------------------------------------------------------------------------- /control: -------------------------------------------------------------------------------- 1 | Package: com.ikilledappl3.recordmodule 2 | Name: Screen Record Module 3 | Depends: mobilesubstrate, com.nito.tvcontrolcenter (>= 1.1), com.nito.breezy (>= 2.5.2-1), com.nito.bulletinh4x, firmware (>=14.0), com.nito.ethereal 4 | Version: 1.0.3-1 5 | Architecture: appletvos-arm64 6 | Description: Record your tvOS screen with ease. 7 | Depiction: https://toxicappl3inc.github.io/tvrepo/depictions/ScreenRecordModule/ScreenRecordModule.json 8 | Maintainer: iKilledAppl3 9 | Author: iKilledAppl3 10 | Section: Tweaks 11 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVLockupViewComponent.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @protocol TVLockupViewComponent 11 | @optional 12 | -(void)updateAppearanceForLockupViewState:(unsigned long long)arg1; 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /.theos/_/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: com.ikilledappl3.recordmodule 2 | Name: Screen Record Module 3 | Depends: mobilesubstrate, com.nito.tvcontrolcenter (>= 1.1), com.nito.breezy (>= 2.5.2-1), com.nito.bulletinh4x, firmware (>=14.0), com.nito.ethereal 4 | Architecture: appletvos-arm64 5 | Description: Record your tvOS screen with ease. 6 | Depiction: https://toxicappl3inc.github.io/tvrepo/depictions/ScreenRecordModule/ScreenRecordModule.json 7 | Maintainer: iKilledAppl3 8 | Author: iKilledAppl3 9 | Section: Tweaks 10 | Version: 1.0.3-1 11 | Installed-Size: 172 12 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVSMModuleContentViewControllerDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @protocol TVSMModuleContentViewControllerDelegate 11 | @required 12 | -(void)contentModuleViewControllerDidTriggerAction:(id)arg1; 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVSMModuleContentViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @protocol TVSMModuleContentViewController 11 | @property (assign,nonatomic) id delegate; 12 | @required 13 | -(id)delegate; 14 | -(void)setDelegate:(id)arg1; 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVSMModuleDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 1:58:35 PM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /Applications/TVSystemMenuService.app/TVSystemMenuService 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @protocol TVSMModuleDelegate 11 | @required 12 | -(void)moduleDidRequestSystemMenuDismissal:(id)arg1; 13 | -(void)moduleDidRequestExpansion:(id)arg1; 14 | -(void)moduleDidRequestDismissal:(id)arg1; 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVSMModuleExpandedContentViewControllerDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @protocol TVSMModuleExpandedContentViewControllerDelegate 11 | @required 12 | -(void)contentModuleViewControllerDidRequestDismissal:(id)arg1; 13 | -(void)contentModuleViewControllerDidRequestSystemDismissal:(id)arg1; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVSystemMenuUI.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | #import 5 | #import 6 | #import 7 | #import 8 | #import 9 | #import 10 | #import 11 | #import 12 | #import 13 | #import 14 | -------------------------------------------------------------------------------- /.theos/obj/appletv/arm64/ScreenRecordModule.bundle/ScreenRecordModule.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.com.ikilledappl3.recordmodule 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0.0 17 | CFBundleVersion 18 | 1.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | ARCHS = arm64 2 | TARGET = appletv:clang:12.4 3 | FINALPACKAGE = 1 4 | SYSROOT = $(THEOS)/sdks/AppleTVOS12.4.sdk 5 | INSTALL_TARGET_PROCESSES = TVSystemMenuService 6 | 7 | include $(THEOS)/makefiles/common.mk 8 | 9 | BUNDLE_NAME = ScreenRecordModule 10 | 11 | ScreenRecordModule_FILES = ScreenRecordModule.mm 12 | ScreenRecordModule_INSTALL_PATH = /Library/TVSystemMenuModules 13 | ScreenRecordModule_FRAMEWORKS = UIKit ReplayKit AudioToolbox AVFoundation 14 | ScreenRecordModule_PRIVATE_FRAMEWORKS = TVSystemMenuUI PineBoardServices 15 | ScreenRecordModule_CFLAGS = -fobjc-arc -F. -I. -Wno-error=deprecated-declarations 16 | ScreenRecordModule_LIBRARIES = substrate 17 | ScreenRecordModule_LDFLAGS += -F. -I. 18 | 19 | include $(THEOS_MAKE_PATH)/bundle.mk 20 | 21 | internal-stage:: 22 | $(ECHO_NOTHING)mkdir -p $(THEOS_STAGING_DIR)/Library/TVSystemMenuModules$(ECHO_END) 23 | 24 | include $(THEOS_MAKE_PATH)/aggregate.mk 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Screen Record Module (Project Addilynne Screen Recorder) 2 | A screen record module (widget) for tvOS. QuickTime who? 3 | A project that's been one year in the making! Feel free to take a look at the code. 4 | Originally Called "Addilynne Record Module" (named after my niece) 5 | 6 | 7 | # Supports tvOS 14+ 8 | 9 | # God is Good All The Time and All the time God is good. 10 | "Blessed are the peacemakers: for they shall be called the children of God." - Matthew 5:9 KJV 11 | 12 | 13 | # Get in On iKilledAppl3 LLC. 14 | 15 | [Screen Record Module](https://ikilledappl3.com/tvrepo/) - Download this free tweak! 16 | 17 | ## Built With 18 | 19 | * [Theos](https://github.com/theos/theos) - The actual compiler and manager of the tweak. 20 | 21 | ## License 22 | 23 | This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details 24 | 25 | ## Acknowledgments 26 | 27 | Thanks to God (you are the true king), nitoTV, JoshTV, all the checkra1n members. 28 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVSMLockupContainingCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | 11 | @class TVLockupView; 12 | 13 | @interface TVSMLockupContainingCollectionViewCell : UICollectionViewCell { 14 | 15 | TVLockupView* _lockupView; 16 | 17 | } 18 | 19 | @property (nonatomic,retain) TVLockupView * lockupView; //@synthesize lockupView=_lockupView - In the implementation block 20 | -(void)setSelected:(BOOL)arg1 ; 21 | -(void)setHighlighted:(BOOL)arg1 ; 22 | -(id)preferredLayoutAttributesFittingAttributes:(id)arg1 ; 23 | -(TVLockupView *)lockupView; 24 | -(void)setLockupView:(TVLockupView *)arg1 ; 25 | @end 26 | 27 | -------------------------------------------------------------------------------- /Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ScreenRecordModule 9 | CFBundleIdentifier 10 | com.ikilledappl3.recordmodule 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1.0 21 | NSPrincipalClass 22 | ScreenRecordModule 23 | TVSMModuleType 24 | 0 25 | CFBundleIcons 26 | 27 | CFBundlePrimaryIcon 28 | Record 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/_TVSMHighContrastFocusView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | @class UIView; 13 | 14 | @interface _TVSMHighContrastFocusView : UIView { 15 | 16 | UIView* _innerFocusRing; 17 | 18 | } 19 | 20 | @property (nonatomic,readonly) UIView * innerFocusRing; //@synthesize innerFocusRing=_innerFocusRing - In the implementation block 21 | -(id)initWithFrame:(CGRect)arg1 ; 22 | -(void)layoutSubviews; 23 | -(void)_setCornerRadius:(double)arg1 ; 24 | -(void)_setContinuousCornerRadius:(double)arg1 ; 25 | -(void)_updateForAccessibilityChange; 26 | -(UIView *)innerFocusRing; 27 | @end 28 | 29 | -------------------------------------------------------------------------------- /.theos/obj/appletv/ScreenRecordModule.bundle/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ScreenRecordModule 9 | CFBundleIdentifier 10 | com.ikilledappl3.recordmodule 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1.0 21 | NSPrincipalClass 22 | ScreenRecordModule 23 | TVSMModuleType 24 | 0 25 | CFBundleIcons 26 | 27 | CFBundlePrimaryIcon 28 | Record 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVSMModule.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | #import 11 | #import 12 | 13 | @class NSArray; 14 | 15 | @protocol TVSMModule 16 | @property (assign,nonatomic) id delegate; 17 | @property (nonatomic,readonly) long long type; 18 | @property (nonatomic,readonly) UIViewController* contentViewController; 19 | @property (nonatomic,readonly) UIViewController* expandedContentViewController; 20 | @property (nonatomic,readonly) NSArray * childModules; 21 | @optional 22 | -(NSArray *)childModules; 23 | 24 | @required 25 | +(long long)buttonStyle; 26 | 27 | @end 28 | 29 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 - 2021 J.K. Hayslip (@iKilledAppl3)/iKilledAppl3 LLC. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVSMCollectionModule.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | 11 | @protocol TVSMModuleDelegate; 12 | @class NSBundle, NSString, NSArray; 13 | 14 | @interface TVSMCollectionModule : NSObject { 15 | 16 | } 17 | 18 | @property (nonatomic,readonly) UIViewController* contentViewController; 19 | @property (nonatomic,readonly) UIViewController* expandedContentViewController; 20 | @property (nonatomic,readonly) NSArray * childModules; 21 | +(long long)buttonStyle; 22 | -(id)init; 23 | -(long long)type; 24 | -(id)delegate; 25 | -(void)setDelegate:(id)arg1 ; 26 | -(NSBundle *)bundle; 27 | -(BOOL)dismissAfterAction; 28 | -(NSArray *)childModules; 29 | -(void)contentModuleViewControllerDidTriggerAction:(id)arg1 ; 30 | -(void)handleActionForChildModuleAtIndex:(unsigned long long)arg1 ; 31 | @end 32 | 33 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVSMButtonViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | @protocol TVSMModuleContentViewControllerDelegate; 13 | @class UIImage, NSString, TVSMModuleButtonView; 14 | 15 | @interface TVSMButtonViewController : UIViewController { 16 | 17 | id _delegate; 18 | long long _style; 19 | UIImage* _image; 20 | NSString* _imageSymbolName; 21 | NSString* _titleText; 22 | NSString* _secondaryText; 23 | TVSMModuleButtonView* _buttonView; 24 | 25 | } 26 | 27 | @property (readonly) Class superclass; 28 | 29 | -(id)delegate; 30 | -(void)setDelegate:(id)arg1 ;//TVSMModuleContentViewControllerDelegate 31 | -(long long)style; 32 | -(void)setStyle:(long long)arg1 ; 33 | -(UIImage *)image; 34 | -(void)setImage:(UIImage *)arg1 ; 35 | -(NSString *)secondaryText; 36 | -(void)setSecondaryText:(NSString *)arg1 ; 37 | -(NSString *)titleText; 38 | -(void)setTitleText:(NSString *)arg1 ; 39 | -(void)loadView; 40 | -(id)buttonView; //TVSMModuleButtonView 41 | -(void)_buttonPressed:(id)arg1 ; 42 | -(void)setImageSymbolName:(NSString *)arg1 ; 43 | -(NSString *)imageSymbolName; 44 | @end 45 | 46 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVSMActionModule.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | //i just made this up, but it accurately tracks the style 13 | 14 | typedef NS_ENUM(NSInteger, TVSMActionButtonStyle) { 15 | TVSMActionButtonStyleSmall = 0, 16 | TVSMActionButtonStyleMedium, 17 | TVSMActionButtonStyleLarge 18 | }; 19 | 20 | @protocol TVSMModuleContentViewController, TVSMModuleDelegate; 21 | @class NSArray, TVSMButtonViewController, NSString, UIImage, NSBundle; 22 | 23 | @interface TVSMActionModule : NSObject { 24 | 25 | } 26 | 27 | @property (nonatomic,readonly) NSBundle * bundle; 28 | @property (nonatomic,copy,readonly) NSString * displayName; 29 | @property (nonatomic,readonly) UIImage * icon; 30 | @property (nonatomic,readonly) NSString * iconSymbolName; 31 | @property (readonly) unsigned long long hash; 32 | @property (readonly) Class superclass; 33 | @property (copy,readonly) NSString * description; 34 | @property (copy,readonly) NSString * debugDescription; 35 | @property (nonatomic,readonly) UIViewController* contentViewController; 36 | @property (nonatomic,readonly) UIViewController* expandedContentViewController; 37 | @property (nonatomic,readonly) NSArray * childModules; 38 | +(long long)buttonStyle; 39 | -(id)init; 40 | -(long long)type; 41 | -(id)delegate; 42 | -(void)setDelegate:(id)arg1 ; 43 | -(void)handleAction; 44 | -(BOOL)dismissAfterAction; 45 | -(void)contentModuleViewControllerDidTriggerAction:(id)arg1 ; 46 | @end 47 | 48 | -------------------------------------------------------------------------------- /.theos/obj/appletv/arm64/ScreenRecordModule.mm.ac14109f.Td: -------------------------------------------------------------------------------- 1 | /Users/ikilledappl3/tweaks/tvostweaks/screenrecordmodule/.theos/obj/appletv/arm64/ScreenRecordModule.mm.ac14109f.o: \ 2 | ScreenRecordModule.mm /Users/ikilledappl3/theos/Prefix.pch \ 3 | /Users/ikilledappl3/theos/vendor/include/_Prefix/BackwardsCompat.h \ 4 | /Users/ikilledappl3/theos/vendor/include/HBLog.h \ 5 | /Users/ikilledappl3/theos/vendor/include/CoreFoundation/CFLogUtilities.h \ 6 | ScreenRecordModule.h \ 7 | /Users/ikilledappl3/theos/vendor/include/TVSystemMenuUI/TVSMModuleContentViewControllerDelegate.h \ 8 | /Users/ikilledappl3/theos/vendor/include/TVSystemMenuUI/TVSMModuleContentViewController.h \ 9 | /Users/ikilledappl3/theos/vendor/include/TVSystemMenuUI/TVSMActionModule.h \ 10 | /Users/ikilledappl3/theos/vendor/include/TVSystemMenuUI/TVSMModule.h \ 11 | /Users/ikilledappl3/theos/vendor/include/TVSystemMenuUI/TVSMModuleDelegate.h \ 12 | /Users/ikilledappl3/theos/vendor/include/TVSystemMenuUI/TVSMModuleExpandedContentViewControllerDelegate.h \ 13 | /Users/ikilledappl3/theos/vendor/include/TVSystemMenuUI/TVSMButtonViewController.h 14 | 15 | /Users/ikilledappl3/theos/Prefix.pch: 16 | 17 | /Users/ikilledappl3/theos/vendor/include/_Prefix/BackwardsCompat.h: 18 | 19 | /Users/ikilledappl3/theos/vendor/include/HBLog.h: 20 | 21 | /Users/ikilledappl3/theos/vendor/include/CoreFoundation/CFLogUtilities.h: 22 | 23 | ScreenRecordModule.h: 24 | 25 | /Users/ikilledappl3/theos/vendor/include/TVSystemMenuUI/TVSMModuleContentViewControllerDelegate.h: 26 | 27 | /Users/ikilledappl3/theos/vendor/include/TVSystemMenuUI/TVSMModuleContentViewController.h: 28 | 29 | /Users/ikilledappl3/theos/vendor/include/TVSystemMenuUI/TVSMActionModule.h: 30 | 31 | /Users/ikilledappl3/theos/vendor/include/TVSystemMenuUI/TVSMModule.h: 32 | 33 | /Users/ikilledappl3/theos/vendor/include/TVSystemMenuUI/TVSMModuleDelegate.h: 34 | 35 | /Users/ikilledappl3/theos/vendor/include/TVSystemMenuUI/TVSMModuleExpandedContentViewControllerDelegate.h: 36 | 37 | /Users/ikilledappl3/theos/vendor/include/TVSystemMenuUI/TVSMButtonViewController.h: 38 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVSMModuleButtonView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | @class UIImage, NSString, UIView; 13 | 14 | @interface TVSMModuleButtonView : TVLockupView { 15 | 16 | long long _style; 17 | UIImage* _image; 18 | NSString* _imageSymbolName; 19 | NSString* _titleText; 20 | NSString* _secondaryText; 21 | UIView* _moduleContentView; 22 | 23 | } 24 | 25 | @property (nonatomic,readonly) UIView * moduleContentView; //@synthesize moduleContentView=_moduleContentView - In the implementation block 26 | @property (nonatomic,readonly) long long style; //@synthesize style=_style - In the implementation block 27 | @property (nonatomic,retain) UIImage * image; //@synthesize image=_image - In the implementation block 28 | @property (nonatomic,retain) NSString * imageSymbolName; //@synthesize imageSymbolName=_imageSymbolName - In the implementation block 29 | @property (nonatomic,retain) NSString * titleText; //@synthesize titleText=_titleText - In the implementation block 30 | @property (nonatomic,retain) NSString * secondaryText; //@synthesize secondaryText=_secondaryText - In the implementation block 31 | -(long long)style; 32 | -(UIImage *)image; 33 | -(void)setImage:(UIImage *)arg1 ; 34 | -(id)initWithFrame:(CGRect)arg1 ; 35 | -(NSString *)secondaryText; 36 | -(void)setSecondaryText:(NSString *)arg1 ; 37 | -(NSString *)titleText; 38 | -(void)setTitleText:(NSString *)arg1 ; 39 | -(id)initWithStyle:(long long)arg1 ; 40 | -(void)setImageSymbolName:(NSString *)arg1 ; 41 | -(NSString *)imageSymbolName; 42 | -(UIView *)moduleContentView; 43 | @end 44 | 45 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/_TVSMVibrantHeaderFooterView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | @class UILabel, UIImageView, NSString, NSLayoutConstraint; 13 | 14 | @interface _TVSMVibrantHeaderFooterView : TVLockupHeaderFooterView { 15 | 16 | BOOL _isFocused; 17 | BOOL _hasCheckmark; 18 | UILabel* _standardLabel; 19 | UIImageView* _standardCheckmark; 20 | NSString* _labelText; 21 | NSLayoutConstraint* _checkmarkConstraint; 22 | 23 | } 24 | 25 | @property (nonatomic,readonly) UILabel * standardLabel; //@synthesize standardLabel=_standardLabel - In the implementation block 26 | @property (nonatomic,readonly) UIImageView * standardCheckmark; //@synthesize standardCheckmark=_standardCheckmark - In the implementation block 27 | @property (nonatomic,copy) NSString * labelText; //@synthesize labelText=_labelText - In the implementation block 28 | @property (assign,nonatomic) BOOL hasCheckmark; //@synthesize hasCheckmark=_hasCheckmark - In the implementation block 29 | @property (nonatomic,readonly) NSLayoutConstraint * checkmarkConstraint; //@synthesize checkmarkConstraint=_checkmarkConstraint - In the implementation block 30 | -(id)initWithFrame:(CGRect)arg1 ; 31 | -(void)setLabelText:(NSString *)arg1 ; 32 | -(NSString *)labelText; 33 | -(void)traitCollectionDidChange:(id)arg1 ; 34 | -(void)setHasCheckmark:(BOOL)arg1 ; 35 | -(void)updateAppearanceForLockupViewState:(unsigned long long)arg1 ; 36 | -(BOOL)hasCheckmark; 37 | -(void)_updateCompositingEffects; 38 | -(UILabel *)standardLabel; 39 | -(UIImageView *)standardCheckmark; 40 | -(NSLayoutConstraint *)checkmarkConstraint; 41 | @end 42 | 43 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVSMMonogramView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | @class NSPersonNameComponents, UIImage, _TVSMMonogramContentView, _TVSMVibrantHeaderFooterView, NSString; 13 | 14 | @interface TVSMMonogramView : TVLockupView { 15 | 16 | BOOL _showSelection; 17 | NSPersonNameComponents* _personNameComponents; 18 | UIImage* _image; 19 | _TVSMMonogramContentView* _monogramContentView; 20 | _TVSMVibrantHeaderFooterView* _vibrantFooterView; 21 | 22 | } 23 | 24 | @property (nonatomic,readonly) _TVSMMonogramContentView * monogramContentView; //@synthesize monogramContentView=_monogramContentView - In the implementation block 25 | @property (nonatomic,readonly) _TVSMVibrantHeaderFooterView * vibrantFooterView; //@synthesize vibrantFooterView=_vibrantFooterView - In the implementation block 26 | @property (nonatomic,retain) NSPersonNameComponents * personNameComponents; //@synthesize personNameComponents=_personNameComponents - In the implementation block 27 | @property (nonatomic,retain) UIImage * image; //@synthesize image=_image - In the implementation block 28 | @property (nonatomic,copy) NSString * title; 29 | @property (assign,nonatomic) BOOL showSelection; //@synthesize showSelection=_showSelection - In the implementation block 30 | +(void)_configureFloatingContentViewAppearance; 31 | -(NSString *)title; 32 | -(void)setTitle:(NSString *)arg1 ; 33 | -(UIImage *)image; 34 | -(void)setImage:(UIImage *)arg1 ; 35 | -(id)initWithFrame:(CGRect)arg1 ; 36 | -(NSPersonNameComponents *)personNameComponents; 37 | -(void)setPersonNameComponents:(NSPersonNameComponents *)arg1 ; 38 | -(void)setShowSelection:(BOOL)arg1 ; 39 | -(BOOL)showSelection; 40 | -(_TVSMMonogramContentView *)monogramContentView; 41 | -(_TVSMVibrantHeaderFooterView *)vibrantFooterView; 42 | @end 43 | 44 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/_TVSMModuleButtonContentView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | #import 11 | #import 12 | 13 | @class UIImage, NSString, _UIFloatingContentView, UIVisualEffectView, UIImageView, UILabel; 14 | 15 | @interface _TVSMModuleButtonContentView : UIView { 16 | 17 | UIImage* _image; 18 | NSString* _titleText; 19 | _UIFloatingContentView* _floatingContentView; 20 | UIVisualEffectView* _floatingContentEffectView; 21 | UIImageView* _contentImageView; 22 | UILabel* _titleLabel; 23 | 24 | } 25 | 26 | @property (nonatomic,readonly) _UIFloatingContentView * floatingContentView; //@synthesize floatingContentView=_floatingContentView - In the implementation block 27 | @property (nonatomic,readonly) UIVisualEffectView * floatingContentEffectView; //@synthesize floatingContentEffectView=_floatingContentEffectView - In the implementation block 28 | @property (nonatomic,readonly) UIImageView * contentImageView; //@synthesize contentImageView=_contentImageView - In the implementation block 29 | @property (nonatomic,readonly) UILabel * titleLabel; //@synthesize titleLabel=_titleLabel - In the implementation block 30 | @property (nonatomic,retain) UIImage * image; //@synthesize image=_image - In the implementation block 31 | @property (nonatomic,copy) NSString * titleText; //@synthesize titleText=_titleText - In the implementation block 32 | @property (readonly) unsigned long long hash; 33 | @property (readonly) Class superclass; 34 | @property (copy,readonly) NSString * description; 35 | @property (copy,readonly) NSString * debugDescription; 36 | +(void)_configureFloatingContentViewAppearance; 37 | -(UIImage *)image; 38 | -(void)setImage:(UIImage *)arg1 ; 39 | -(id)initWithFrame:(CGRect)arg1 ; 40 | -(NSString *)titleText; 41 | -(void)setTitleText:(NSString *)arg1 ; 42 | -(UILabel *)titleLabel; 43 | -(_UIFloatingContentView *)floatingContentView; 44 | -(void)updateAppearanceForLockupViewState:(unsigned long long)arg1 ; 45 | -(UIImageView *)contentImageView; 46 | -(UIVisualEffectView *)floatingContentEffectView; 47 | @end 48 | 49 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVSMMonogramViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | @protocol TVSMModuleContentViewControllerDelegate; 13 | @class UIImage, NSString, NSPersonNameComponents, TVSMMonogramView; 14 | 15 | @interface TVSMMonogramViewController : UIViewController { 16 | 17 | BOOL _showSelection; 18 | id _delegate; 19 | UIImage* _image; 20 | NSString* _titleText; 21 | NSPersonNameComponents* _nameComponents; 22 | TVSMMonogramView* _monogramView; 23 | 24 | } 25 | 26 | @property (nonatomic,retain) UIImage * image; //@synthesize image=_image - In the implementation block 27 | @property (nonatomic,copy) NSString * titleText; //@synthesize titleText=_titleText - In the implementation block 28 | @property (nonatomic,copy) NSPersonNameComponents * nameComponents; //@synthesize nameComponents=_nameComponents - In the implementation block 29 | @property (assign,nonatomic) BOOL showSelection; //@synthesize showSelection=_showSelection - In the implementation block 30 | @property (nonatomic,readonly) TVSMMonogramView * monogramView; //@synthesize monogramView=_monogramView - In the implementation block 31 | @property (readonly) unsigned long long hash; 32 | @property (readonly) Class superclass; 33 | @property (copy,readonly) NSString * description; 34 | @property (copy,readonly) NSString * debugDescription; 35 | @property (assign,nonatomic,__weak) id delegate; //@synthesize delegate=_delegate - In the implementation block 36 | -(id)delegate; 37 | -(void)setDelegate:(id)arg1 ; 38 | -(UIImage *)image; 39 | -(void)setImage:(UIImage *)arg1 ; 40 | -(NSString *)titleText; 41 | -(void)setTitleText:(NSString *)arg1 ; 42 | -(NSPersonNameComponents *)nameComponents; 43 | -(void)setNameComponents:(NSPersonNameComponents *)arg1 ; 44 | -(void)loadView; 45 | -(void)_buttonPressed:(id)arg1 ; 46 | -(TVSMMonogramView *)monogramView; 47 | -(void)setShowSelection:(BOOL)arg1 ; 48 | -(BOOL)showSelection; 49 | @end 50 | 51 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/TVSMExpandingModule.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | #import 11 | 12 | @protocol TVSMModuleContentViewController, TVSMModuleDelegate; 13 | @class TVSMButtonViewController, NSString, UIImage, NSBundle, NSArray; 14 | 15 | @interface TVSMExpandingModule : NSObject { 16 | 17 | TVSMButtonViewController* _contentViewController; 18 | id _delegate; 19 | long long _type; 20 | NSString* _displayName; 21 | UIImage* _icon; 22 | NSString* _iconSymbolName; 23 | NSBundle* _bundle; 24 | 25 | } 26 | 27 | @property (nonatomic,readonly) NSBundle * bundle; //@synthesize bundle=_bundle - In the implementation block 28 | @property (nonatomic,copy,readonly) NSString * displayName; //@synthesize displayName=_displayName - In the implementation block 29 | @property (nonatomic,readonly) UIImage * icon; //@synthesize icon=_icon - In the implementation block 30 | @property (nonatomic,readonly) NSString * iconSymbolName; //@synthesize iconSymbolName=_iconSymbolName - In the implementation block 31 | @property (readonly) unsigned long long hash; 32 | @property (readonly) Class superclass; 33 | @property (copy,readonly) NSString * description; 34 | @property (copy,readonly) NSString * debugDescription; 35 | @property (assign,nonatomic,__weak) id delegate; //@synthesize delegate=_delegate - In the implementation block 36 | @property (nonatomic,readonly) long long type; //@synthesize type=_type - In the implementation block 37 | @property (nonatomic,readonly) UIViewController* contentViewController; 38 | @property (nonatomic,readonly) UIViewController* expandedContentViewController; 39 | @property (nonatomic,readonly) NSArray * childModules; 40 | +(long long)buttonStyle; 41 | -(id)init; 42 | -(long long)type; 43 | -(id)delegate; 44 | -(void)setDelegate:(id)arg1 ; 45 | -(NSBundle *)bundle; 46 | -(NSString *)displayName; 47 | -(UIImage *)icon; 48 | -(UIViewController*)contentViewController; 49 | -(UIViewController*)expandedContentViewController; 50 | -(void)contentModuleViewControllerDidTriggerAction:(id)arg1 ; 51 | -(NSString *)iconSymbolName; 52 | -(void)contentModuleViewControllerDidRequestDismissal:(id)arg1 ; 53 | -(void)contentModuleViewControllerDidRequestSystemDismissal:(id)arg1 ; 54 | @end 55 | 56 | -------------------------------------------------------------------------------- /ScreenRecordModule.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | #import 5 | #import 6 | #import 7 | 8 | @import ReplayKit; 9 | @import UIKit; 10 | @import AVFoundation; 11 | @import AudioToolbox; 12 | 13 | // Sound files :P 14 | NSString *recordingStarted = [[NSBundle bundleWithPath:@"/Library/TVSystemMenuModules/ScreenRecordModule.bundle/"] pathForResource:@"recordingStarted" ofType:@"caf"]; 15 | NSString *recordingStopped = [[NSBundle bundleWithPath:@"/Library/TVSystemMenuModules/ScreenRecordModule.bundle/"] pathForResource:@"recordingStopped" ofType:@"caf"]; 16 | 17 | 18 | // screen recording file path 19 | NSString *videoPath; 20 | 21 | // setting this up allows us to call the private methods if need be 22 | @interface RPScreenRecorder (Private) 23 | @property (nonatomic,retain) UIWindow * windowToRecord; 24 | @property (assign,nonatomic) BOOL systemRecording; 25 | -(void)setWindowToRecord:(UIWindow *)windowToRecord; 26 | -(void)startSystemRecordingWithMicrophoneEnabled:(BOOL)arg1 handler:(void(^)(NSError * error))handler; 27 | -(void)stopSystemRecording:(/*^block*/id)arg1; 28 | -(void)stopRecordingWithVideoURLHandler:(void(^)(id videoURL, NSError *error))arg1; 29 | -(void)stopRecordingWithOutputURL:(id)arg1 completionHandler:(void(^)(NSError * error))arg2; 30 | -(NSURL *)broadcastURL; 31 | -(void)stopSystemRecordingWithURLHandler:(void(^)(id videoURL, NSError *error))handler ; 32 | @end 33 | 34 | 35 | // show a bulletin when done! 36 | @interface NSDistributedNotificationCenter : NSNotificationCenter 37 | +(id)defaultCenter; 38 | -(void)addObserver:(id)arg1 selector:(SEL)arg2 name:(id)arg3 object:(id)arg4; 39 | -(void)postNotificationName:(id)arg1 object:(id)arg2 userInfo:(id)arg3; 40 | @end 41 | 42 | //14+ code (thanks nitoTV) 43 | @interface TVSMButtonViewController (science) 44 | @property (assign,nonatomic) BOOL toggledOn API_AVAILABLE(tvos(14.0)); 45 | @property (nonatomic,copy) UIColor *symbolTintColor API_AVAILABLE(tvos(14.0)); 46 | @end 47 | 48 | // Control Center manager 49 | @interface TVSMSystemMenuManager : NSObject 50 | -(void)dismissSystemMenu; 51 | @end 52 | 53 | // Our control center module! 54 | @interface ScreenRecordModule : TVSMActionModule { 55 | // ivars 56 | NSString *packageFile; 57 | TVSMButtonViewController *buttonController; 58 | UIImage *theImage; 59 | AVAudioPlayer *player; 60 | AVAudioPlayer *player2; 61 | NSMutableDictionary *dict; 62 | NSString *notificationImageFile; 63 | UIImage *notificationImage; 64 | NSData *imageData; 65 | RPScreenRecorder *_screenRecorder; 66 | UIViewController *_recordingContentViewController; 67 | UIColor *defaultColor; 68 | } 69 | @property (retain, nonatomic) RPScreenRecorder *screenRecorder; 70 | @property (retain, nonatomic) UIViewController *recordingContentViewController; 71 | @property (retain, nonatomic) UIAlertController *recordingDoneAlertController; 72 | +(long long)buttonStyle; 73 | -(id)contentViewController; 74 | -(void)handleAction; 75 | -(void)dismissControlCenterAfterRecording; 76 | -(BOOL)dismissAfterAction; 77 | -(BOOL)darkMode; 78 | -(void)setupImageBasedOnToggleStatus; 79 | -(void)playRecordingStarted; 80 | -(void)playRecordingStopped; 81 | -(void)showAlertToUser; 82 | -(void)startRecording; 83 | -(void)stopRecording; 84 | -(void)airdropVideo:(NSString *)path; 85 | @end 86 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/_TVSMMonogramContentView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | #import 11 | #import 12 | 13 | @class UIImage, NSPersonNameComponents, _UIFloatingContentView, UIImageView, TVSUIOuterShadowView, UILabel, _TVSMHighContrastFocusView, NSString; 14 | 15 | @interface _TVSMMonogramContentView : UIView { 16 | 17 | UIImage* _image; 18 | NSPersonNameComponents* _personNameComponents; 19 | _UIFloatingContentView* _floatingContentView; 20 | UIImageView* _contentImageView; 21 | TVSUIOuterShadowView* _focusedShadowView; 22 | TVSUIOuterShadowView* _unfocusedShadowView; 23 | UILabel* _initialsLabel; 24 | _TVSMHighContrastFocusView* _highContrastView; 25 | CGSize _imageSize; 26 | 27 | } 28 | 29 | @property (nonatomic,readonly) _UIFloatingContentView * floatingContentView; //@synthesize floatingContentView=_floatingContentView - In the implementation block 30 | @property (nonatomic,readonly) UIImageView * contentImageView; //@synthesize contentImageView=_contentImageView - In the implementation block 31 | @property (nonatomic,readonly) TVSUIOuterShadowView * focusedShadowView; //@synthesize focusedShadowView=_focusedShadowView - In the implementation block 32 | @property (nonatomic,readonly) TVSUIOuterShadowView * unfocusedShadowView; //@synthesize unfocusedShadowView=_unfocusedShadowView - In the implementation block 33 | @property (nonatomic,readonly) UILabel * initialsLabel; //@synthesize initialsLabel=_initialsLabel - In the implementation block 34 | @property (nonatomic,readonly) _TVSMHighContrastFocusView * highContrastView; //@synthesize highContrastView=_highContrastView - In the implementation block 35 | @property (nonatomic,readonly) CGSize imageSize; //@synthesize imageSize=_imageSize - In the implementation block 36 | @property (nonatomic,retain) UIImage * image; //@synthesize image=_image - In the implementation block 37 | @property (nonatomic,retain) NSPersonNameComponents * personNameComponents; //@synthesize personNameComponents=_personNameComponents - In the implementation block 38 | @property (readonly) unsigned long long hash; 39 | @property (readonly) Class superclass; 40 | @property (copy,readonly) NSString * description; 41 | @property (copy,readonly) NSString * debugDescription; 42 | +(void)_configureFloatingContentViewAppearance; 43 | +(id)_silhouetteImage; 44 | -(UIImage *)image; 45 | -(void)setImage:(UIImage *)arg1 ; 46 | -(CGSize)imageSize; 47 | -(id)initWithFrame:(CGRect)arg1 ; 48 | -(void)traitCollectionDidChange:(id)arg1 ; 49 | -(NSPersonNameComponents *)personNameComponents; 50 | -(void)setPersonNameComponents:(NSPersonNameComponents *)arg1 ; 51 | -(TVSUIOuterShadowView *)unfocusedShadowView; 52 | -(TVSUIOuterShadowView *)focusedShadowView; 53 | -(_UIFloatingContentView *)floatingContentView; 54 | -(void)updateAppearanceForLockupViewState:(unsigned long long)arg1 ; 55 | -(UIImageView *)contentImageView; 56 | -(void)_updateContentImage; 57 | -(UILabel *)initialsLabel; 58 | -(_TVSMHighContrastFocusView *)highContrastView; 59 | @end 60 | 61 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/PrivateHeaders/_TVSMRectangleButtonContentView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Tuesday, November 5, 2019 at 2:45:29 AM Mountain Standard Time 4 | * Operating System: Version 13.0 (Build 17J586) 5 | * Image Source: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | #import 11 | #import 12 | 13 | @class UIImage, NSString, _UIFloatingContentView, UIImageView, UILabel, _TVSMHighContrastFocusView; 14 | 15 | @interface _TVSMRectangleButtonContentView : UIView { 16 | 17 | long long _style; 18 | UIImage* _image; 19 | NSString* _imageSymbolName; 20 | NSString* _titleText; 21 | NSString* _secondaryText; 22 | _UIFloatingContentView* _floatingContentView; 23 | UIImageView* _contentImageView; 24 | UILabel* _titleLabel; 25 | UILabel* _secondaryLabel; 26 | _TVSMHighContrastFocusView* _highContrastFocusView; 27 | 28 | } 29 | 30 | @property (nonatomic,readonly) _UIFloatingContentView * floatingContentView; //@synthesize floatingContentView=_floatingContentView - In the implementation block 31 | @property (nonatomic,readonly) UIImageView * contentImageView; //@synthesize contentImageView=_contentImageView - In the implementation block 32 | @property (nonatomic,readonly) UILabel * titleLabel; //@synthesize titleLabel=_titleLabel - In the implementation block 33 | @property (nonatomic,readonly) UILabel * secondaryLabel; //@synthesize secondaryLabel=_secondaryLabel - In the implementation block 34 | @property (nonatomic,readonly) _TVSMHighContrastFocusView * highContrastFocusView; //@synthesize highContrastFocusView=_highContrastFocusView - In the implementation block 35 | @property (nonatomic,readonly) long long style; //@synthesize style=_style - In the implementation block 36 | @property (nonatomic,retain) UIImage * image; //@synthesize image=_image - In the implementation block 37 | @property (nonatomic,copy) NSString * imageSymbolName; //@synthesize imageSymbolName=_imageSymbolName - In the implementation block 38 | @property (nonatomic,copy) NSString * titleText; //@synthesize titleText=_titleText - In the implementation block 39 | @property (nonatomic,copy) NSString * secondaryText; //@synthesize secondaryText=_secondaryText - In the implementation block 40 | @property (readonly) unsigned long long hash; 41 | @property (readonly) Class superclass; 42 | @property (copy,readonly) NSString * description; 43 | @property (copy,readonly) NSString * debugDescription; 44 | +(void)_configureFloatingContentViewAppearance; 45 | +(long long)_contentModeForStyle:(long long)arg1 ; 46 | +(id)_imageForSymbolName:(id)arg1 style:(long long)arg2 ; 47 | -(long long)style; 48 | -(UIImage *)image; 49 | -(void)setImage:(UIImage *)arg1 ; 50 | -(id)initWithFrame:(CGRect)arg1 ; 51 | -(NSString *)secondaryText; 52 | -(void)setSecondaryText:(NSString *)arg1 ; 53 | -(NSString *)titleText; 54 | -(void)setTitleText:(NSString *)arg1 ; 55 | -(UILabel *)titleLabel; 56 | -(id)initWithFrame:(CGRect)arg1 style:(long long)arg2 ; 57 | -(UILabel *)secondaryLabel; 58 | -(_UIFloatingContentView *)floatingContentView; 59 | -(void)updateAppearanceForLockupViewState:(unsigned long long)arg1 ; 60 | -(UIImageView *)contentImageView; 61 | -(void)setImageSymbolName:(NSString *)arg1 ; 62 | -(NSString *)imageSymbolName; 63 | -(_TVSMHighContrastFocusView *)highContrastFocusView; 64 | @end 65 | 66 | -------------------------------------------------------------------------------- /TVSystemMenuUI.framework/TVSystemMenuUI.tbd: -------------------------------------------------------------------------------- 1 | --- 2 | archs: [ arm64 ] 3 | platform: tvos 4 | install-name: /System/Library/PrivateFrameworks/TVSystemMenuUI.framework/TVSystemMenuUI 5 | current-version: 1 6 | compatibility-version: 1 7 | exports: 8 | - archs: [ arm64 ] 9 | symbols: [ _TVSystemMenuUIVersionNumber, _TVSystemMenuUIVersionString, __TVSMModuleButtonViewFocusSize, 10 | __TVSMMonogramViewFocusSize, __TVSMRectangleButtonViewFocusSize ] 11 | objc-classes: [ _TVSMActionModule, _TVSMButtonViewController, _TVSMCollectionModule, _TVSMExpandingModule, 12 | _TVSMLockupContainingCollectionViewCell, _TVSMModuleButtonView, _TVSMMonogramView, 13 | _TVSMMonogramViewController, __TVSMHighContrastFocusView, __TVSMModuleButtonContentView, 14 | __TVSMMonogramContentView, __TVSMRectangleButtonContentView, __TVSMVibrantHeaderFooterView ] 15 | objc-ivars: [ _TVSMActionModule._bundle, _TVSMActionModule._contentViewController, _TVSMActionModule._delegate, 16 | _TVSMActionModule._displayName, _TVSMActionModule._icon, _TVSMActionModule._iconSymbolName, 17 | _TVSMActionModule._type, _TVSMButtonViewController._buttonView, _TVSMButtonViewController._delegate, 18 | _TVSMButtonViewController._image, _TVSMButtonViewController._imageSymbolName, 19 | _TVSMButtonViewController._secondaryText, _TVSMButtonViewController._style, 20 | _TVSMButtonViewController._titleText, _TVSMCollectionModule._bundle, _TVSMCollectionModule._delegate, 21 | _TVSMCollectionModule._type, _TVSMExpandingModule._bundle, _TVSMExpandingModule._contentViewController, 22 | _TVSMExpandingModule._delegate, _TVSMExpandingModule._displayName, _TVSMExpandingModule._icon, 23 | _TVSMExpandingModule._iconSymbolName, _TVSMExpandingModule._type, 24 | _TVSMLockupContainingCollectionViewCell._lockupView, _TVSMModuleButtonView._image, 25 | _TVSMModuleButtonView._imageSymbolName, _TVSMModuleButtonView._moduleContentView, 26 | _TVSMModuleButtonView._secondaryText, _TVSMModuleButtonView._style, _TVSMModuleButtonView._titleText, 27 | _TVSMMonogramView._image, _TVSMMonogramView._monogramContentView, _TVSMMonogramView._personNameComponents, 28 | _TVSMMonogramView._showSelection, _TVSMMonogramView._vibrantFooterView, 29 | _TVSMMonogramViewController._delegate, _TVSMMonogramViewController._image, 30 | _TVSMMonogramViewController._monogramView, _TVSMMonogramViewController._nameComponents, 31 | _TVSMMonogramViewController._showSelection, _TVSMMonogramViewController._titleText, 32 | __TVSMHighContrastFocusView._innerFocusRing, __TVSMModuleButtonContentView._contentImageView, 33 | __TVSMModuleButtonContentView._floatingContentEffectView, 34 | __TVSMModuleButtonContentView._floatingContentView, __TVSMModuleButtonContentView._image, 35 | __TVSMModuleButtonContentView._titleLabel, __TVSMModuleButtonContentView._titleText, 36 | __TVSMMonogramContentView._contentImageView, __TVSMMonogramContentView._floatingContentView, 37 | __TVSMMonogramContentView._focusedShadowView, __TVSMMonogramContentView._highContrastView, 38 | __TVSMMonogramContentView._image, __TVSMMonogramContentView._imageSize, 39 | __TVSMMonogramContentView._initialsLabel, __TVSMMonogramContentView._personNameComponents, 40 | __TVSMMonogramContentView._unfocusedShadowView, __TVSMRectangleButtonContentView._contentImageView, 41 | __TVSMRectangleButtonContentView._floatingContentView, 42 | __TVSMRectangleButtonContentView._highContrastFocusView, __TVSMRectangleButtonContentView._image, 43 | __TVSMRectangleButtonContentView._imageSymbolName, __TVSMRectangleButtonContentView._secondaryLabel, 44 | __TVSMRectangleButtonContentView._secondaryText, __TVSMRectangleButtonContentView._style, 45 | __TVSMRectangleButtonContentView._titleLabel, __TVSMRectangleButtonContentView._titleText, 46 | __TVSMVibrantHeaderFooterView._checkmarkConstraint, __TVSMVibrantHeaderFooterView._hasCheckmark, 47 | __TVSMVibrantHeaderFooterView._isFocused, __TVSMVibrantHeaderFooterView._labelText, 48 | __TVSMVibrantHeaderFooterView._standardCheckmark, __TVSMVibrantHeaderFooterView._standardLabel ] 49 | ... 50 | -------------------------------------------------------------------------------- /ScreenRecordModule.mm: -------------------------------------------------------------------------------- 1 | #import "ScreenRecordModule.h" 2 | // the actaul module part! 3 | @implementation ScreenRecordModule 4 | 5 | +(long long)buttonStyle { 6 | return 1; 7 | } 8 | 9 | -(id)contentViewController { 10 | 11 | buttonController = (TVSMButtonViewController*)[super contentViewController]; 12 | [buttonController setStyle:1]; 13 | [self setupImageBasedOnToggleStatus]; 14 | return buttonController; 15 | 16 | } 17 | 18 | -(void)handleAction { 19 | // setup the recorder using its sharedRecorder instance 20 | self.screenRecorder = [RPScreenRecorder sharedRecorder]; 21 | // check to see if it's recording or not! 22 | // if it isn't start recording! 23 | if (!self.screenRecorder.isRecording) { 24 | [self startRecording]; 25 | [self performSelector:@selector(playRecordingStarted) withObject:nil afterDelay:0.5]; 26 | if (@available(tvOS 14.0, *)) { 27 | [buttonController setSymbolTintColor:[UIColor redColor]]; 28 | [buttonController setToggledOn:true]; 29 | } 30 | } 31 | 32 | if (self.screenRecorder.isRecording) { 33 | // if the screen recorder is recording stop it and save it to the camera roll! by default Apple does this! 34 | [self playRecordingStopped]; 35 | [self stopRecording]; 36 | [self showAlertToUser]; 37 | 38 | } 39 | 40 | } 41 | 42 | 43 | -(void)setupImageBasedOnToggleStatus { 44 | 45 | packageFile = [[self bundle] pathForResource:@"Record" ofType:@"png"]; 46 | theImage = [[UIImage imageWithContentsOfFile:packageFile] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; 47 | [buttonController setImage:theImage]; 48 | if([[RPScreenRecorder sharedRecorder] isRecording]) { 49 | if (@available(tvOS 14.0, *)) { 50 | [buttonController setSymbolTintColor:[UIColor redColor]]; 51 | [buttonController setToggledOn:true]; 52 | } 53 | } else { 54 | if (@available(tvOS 14.0, *)) { 55 | [buttonController setSymbolTintColor:nil]; 56 | [buttonController setToggledOn:false]; 57 | } 58 | } 59 | } 60 | 61 | 62 | 63 | -(void)startRecording { 64 | // Starts recording with the microphone enabled (by default this must be enabled in order for us to get audio from the Apple TV.) 65 | [self.screenRecorder startSystemRecordingWithMicrophoneEnabled:YES handler:nil]; 66 | 67 | /*record the screen by setting the UIWindow to record the contentView of the TVSMModuleContentViewController. 68 | This is how Apple does it with their private one found in internal installs! */ 69 | [self.screenRecorder setWindowToRecord:self.recordingContentViewController.view.window]; 70 | 71 | // dismiss the cc after 3 seconds have past. 72 | [self performSelector:@selector(dismissControlCenterAfterRecording) withObject:nil afterDelay:3.0]; 73 | } 74 | 75 | -(void)stopRecording { 76 | [self.screenRecorder stopSystemRecordingWithURLHandler:^(id videoURL, NSError *error) { 77 | videoPath = [videoURL path]; 78 | dispatch_async(dispatch_get_main_queue(), ^{ 79 | // save the video then airdrop it! 80 | UISaveVideoAtPathToSavedPhotosAlbum(videoPath, nil, nil, nil); 81 | [self airdropVideo:[videoURL path]]; 82 | }); 83 | 84 | }]; 85 | // dismiss the cc after 1 second has past. 86 | [self dismissControlCenterAfterRecording]; 87 | [self playRecordingStopped]; 88 | 89 | if (@available(tvOS 14.0, *)) { 90 | [buttonController setSymbolTintColor:defaultColor]; 91 | [buttonController setToggledOn:false]; 92 | } 93 | 94 | } 95 | 96 | 97 | //easier to track light/dark mode (thanks nitoTV) 98 | -(BOOL)darkMode { 99 | return (buttonController.view.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark); 100 | } 101 | 102 | 103 | -(void)airdropVideo:(NSString *)path { 104 | // here we are initializing Breezy and getting ready to AirDrop the screen recording(s) 105 | NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"airdropper://%@", [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]]; 106 | UIApplication *application = [UIApplication sharedApplication]; 107 | [application openURL:url options:@{} completionHandler:nil]; 108 | } 109 | 110 | 111 | -(void)playRecordingStarted { 112 | if (!player) { 113 | player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:recordingStarted] error:nil]; 114 | player.volume = 1.0; 115 | [player prepareToPlay]; 116 | [player play]; 117 | [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil]; 118 | } 119 | 120 | } 121 | 122 | 123 | -(void)playRecordingStopped { 124 | if (!player2) { 125 | player2 = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:recordingStopped] error:nil]; 126 | player2.volume = 1.0; 127 | [player2 prepareToPlay]; 128 | [player2 play]; 129 | [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil]; 130 | } 131 | } 132 | 133 | 134 | -(void)showAlertToUser { 135 | // thanks nitoTV! 136 | // let user know recording has finished! 137 | dict = [NSMutableDictionary new]; 138 | dict[@"message"] = @"AirDrop Package Inbound"; 139 | dict[@"title"] = @"Screen Recording Done!"; 140 | dict[@"timeout"] = @3; 141 | notificationImageFile =[[self bundle] pathForResource:@"RecordNotif" ofType:@"png"]; 142 | notificationImage = [UIImage imageWithContentsOfFile:notificationImageFile]; 143 | imageData = UIImagePNGRepresentation(notificationImage); 144 | if (imageData) { 145 | dict[@"imageData"] = imageData; 146 | } 147 | 148 | 149 | [[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"com.nito.bulletinh4x/displayBulletin" object:nil userInfo:dict]; 150 | 151 | } 152 | 153 | // dismisses the control center when we want it to 154 | -(void)dismissControlCenterAfterRecording { 155 | id controlCenter = [NSClassFromString(@"TVSMSystemMenuManager") sharedInstance]; 156 | [controlCenter dismissSystemMenu]; 157 | 158 | } 159 | 160 | // I'm returning no on this because i want the control center open for at least 3 seconds before it closes. 161 | -(BOOL)dismissAfterAction { 162 | return NO; 163 | } 164 | 165 | @end 166 | -------------------------------------------------------------------------------- /PineBoardServices.framework/PineBoardServices.tbd: -------------------------------------------------------------------------------- 1 | --- 2 | archs: [ arm64 ] 3 | platform: tvos 4 | install-name: /System/Library/PrivateFrameworks/PineBoardServices.framework/PineBoardServices 5 | current-version: 1 6 | compatibility-version: 1 7 | exports: 8 | - archs: [ arm64 ] 9 | symbols: [ _ConferenceRoomDisplayBackgroundPhotoNameContext, _ConferenceRoomDisplayMessageContext, 10 | _ConferenceRoomDisplayModeContext, _PBAppLaunchOptionDeactivation, _PBAppLaunchOptionLaunchOverSiri, 11 | _PBAppLaunchOptionLaunchedForPlayback, _PBAppProviderServicesAppIdentifierKey, 12 | _PBAppProviderServicesAppTitleKey, _PBLogComponentUserActivityMonitoring, _PBSActivateScreenItemActionName, 13 | _PBSAirPlayServiceInfoSessionIDKey, _PBSAirPlayUIActiveChangedNotification, _PBSAllModesAllowedKey, 14 | _PBSAppDepotProxyChangedAppIdentifier, _PBSAppDepotProxyChangedKey, _PBSAppDepotProxyDidChangeNotification, 15 | _PBSAspectRatioDescription, _PBSAuthorizeRestrictionsWithResult, _PBSCableCheckRequestFromSource, 16 | _PBSCableMinimumCheckInterval, _PBSCalculateAspectRatio, _PBSCanAttemptUpgradeWithDisplayAssistant, 17 | _PBSConnectedToHDMI2, _PBSCoreControlErrorDomain, _PBSCoreControlPolicyFromString, 18 | _PBSDisplayConnectionForDisplayState, _PBSDisplayManagerErrorDomain, 19 | _PBSDisplayManagerUpdateRegionChangeKey, _PBSDisplayManagerUpdateRequestCanHandleHighBandwidthModesKey, 20 | _PBSDisplayManagerUpdateRequestDisplayMode, _PBSDisplayManagerUpdateRequestPassthroughKey, 21 | _PBSDisplayManagerUpdateRequestTreatAsFallbackMode, 22 | _PBSDisplayManagerUpdateRequestUpgradeModeToNonVirtual, _PBSDisplayManagerUpdateRequestUseForNextWake, 23 | _PBSDisplayManagerUpdateRequestWriteModeToDisk, _PBSDisplayRefreshRateEqualToRefreshRate, 24 | _PBSDisplayResolutionEqualToResolution, _PBSDisplayResolutionIs1080p, _PBSDisplayResolutionIs480p, 25 | _PBSDisplayResolutionIs4K, _PBSDisplayResolutionIs576p, _PBSDisplayResolutionIs720p, 26 | _PBSDisplayResolutionIsFullHD, _PBSDisplayResolutionIsHD, _PBSDisplayResolutionMake, 27 | _PBSDolbyVisionUpgradeDisplayMode, _PBSDynamicRangeIsDolbyVision, _PBSDynamicRangeIsHDR, 28 | _PBSExternalControlBasicIRLearningConfiguration, _PBSExternalControlCustomVolumeDownNotification, 29 | _PBSExternalControlCustomVolumeUpNotification, _PBSExternalControlIRLearningManagerErrorDomain, 30 | _PBSExternalControlPlaybackIRLearningConfiguration, _PBSExternalControlSystemConfigurationChanged, 31 | _PBSExternalControlSystemErrorDomain, _PBSExternalControlVolumeIRLearningConfiguration, 32 | _PBSFilteredModesForDisplayState, _PBSFindFirstModeForDisplayState, 33 | _PBSFindMatchingLocaleModeForDisplayState, _PBSHDRAttemptDisplayMode, _PBSHDRDisplayModeMatchingOnlyVirtual, 34 | _PBSHDRUpgradeDisplayMode, _PBSHiddenAppTag, _PBSInternalAppTag, _PBSKioskAppPurgeTopShelfContentNotification, 35 | _PBSKioskAppTransitionAnimationFenceKey, _PBSKioskAppTransitionDelayKey, _PBSKioskAppTransitionDurationKey, 36 | _PBSKioskAppTransitionTypeKey, _PBSLocalizedStringFromCoreControlAction, 37 | _PBSMediaRemoteServiceDialogOptionMessageKey, _PBSMediaRemoteServiceDialogOptionPINKey, 38 | _PBSMediaRemoteServiceDialogOptionTimeoutKey, _PBSMediaRemoteServiceDialogOptionTitleKey, 39 | _PBSMediaRemoteServiceDialogOptionTokenKey, _PBSMediaRemoteServiceNotificationVolumeControlAvailable, 40 | _PBSMediaRemoteSiriContextSourceNameAppleRemote, _PBSMediaRemoteSiriContextSourceNameMediaRemoteService, 41 | _PBSMediaRemoteSiriContextSourceNameSystemService, _PBSNeedsHDRBuddyForDisplayMode, 42 | _PBSNonDefaultSystemAppTag, _PBSNowPlayingUIOptionBundleIdentifier, 43 | _PBSNowPlayingUIOptionShowActiveEndpoint, _PBSOSUpdatePreferenceDomain, _PBSOSUpdateServiceErrorDomain, 44 | _PBSOSUpdateServiceKeyAvailableUpdate, _PBSOSUpdateServiceKeyCurrentDownload, 45 | _PBSOSUpdateServiceKeyDidConfirmApply, _PBSOSUpdateServiceKeyDidFailErrorCode, 46 | _PBSOSUpdateServiceKeyDidFailErrorDomain, _PBSOSUpdateServiceKeyDidFailErrorString, 47 | _PBSOSUpdateServiceKeyDidSucceed, _PBSOSUpdateServiceKeyIsAlreadyDownloaded, 48 | _PBSOSUpdateServiceKeyIsAutoCheck, _PBSOSUpdateServiceKeyIsAvailable, _PBSOSUpdateServiceKeyIsLargeUpdate, 49 | _PBSOSUpdateServiceKeyIsManagedAction, _PBSOSUpdateServiceKeyIsRedownload, _PBSOSUpdateServiceKeyIsRestore, 50 | _PBSOSUpdateServiceKeyProgressAmount, _PBSOSUpdateServiceKeyProgressIsQueued, 51 | _PBSOSUpdateServiceKeyProgressTime, _PBSPoorCableWarningRequest, 52 | _PBSPowerManagerDeviceSleepStateWillChangeNotification, 53 | _PBSPowerManagerDeviceWillSleepIdleDistributedNotification, 54 | _PBSPowerManagerDeviceWillSleepManualDistributedNotification, _PBSPowerManagerDeviceWillSleepNotification, 55 | _PBSPowerManagerDeviceWillWakeNotification, _PBSPowerManagerSleepOptionReasonKey, 56 | _PBSPowerManagerThermalNotification, _PBSPowerManagerThermalNotificationIsIncreasingKey, 57 | _PBSPowerManagerThermalNotificationLevelKey, _PBSPowerManagerThermalNotificationTooHotKey, 58 | _PBSPowerManagerWakeOptionReasonKey, _PBSPreferredRefreshRateForCountryCode, 59 | _PBSPresenceDetectionDidBeginNotification, _PBSPresenceDetectionDidEndNotification, _PBSPresentBulletin, 60 | _PBSRecoveryModeActionResetAllSettings, _PBSRecoveryModeActionRestart, _PBSRecoveryModeActionTriggered, 61 | _PBSRestrictionsSettingsDidChangeNotification, _PBSRoutingUIOptionBundleIdentifier, 62 | _PBSRoutingUIOptionInitiatedByPicker, _PBSRoutingUIOptionSupportsSharedQueue, _PBSSleepDevice, 63 | _PBSSleepReasonCEC, _PBSSleepReasonExternalDevice, _PBSSleepReasonIdle, _PBSSleepReasonSiri, 64 | _PBSSleepReasonUserSettingsMenu, _PBSSleepReasonUserSystemMenu, _PBSSpgradeAttemptRequestFromSource, 65 | _PBSStringFromCoreControlEventType, _PBSStringFromCoreControlPolicy, _PBSStringFromCoreControlPolicyState, 66 | _PBSSystemAppearanceDidChangeNotification, _PBSSystemBulletinActivationActionKey, 67 | _PBSSystemBulletinImageDataKey, _PBSSystemBulletinImageIDAlert, _PBSSystemBulletinImageIDAudio, 68 | _PBSSystemBulletinImageIDB39, _PBSSystemBulletinImageIDBluetooth, _PBSSystemBulletinImageIDController, 69 | _PBSSystemBulletinImageIDKey, _PBSSystemBulletinImageIDKeyboard, _PBSSystemBulletinImageIDMusic, 70 | _PBSSystemBulletinImageIDPairing, _PBSSystemBulletinImageIDPodcast, _PBSSystemBulletinImageIDRemote, 71 | _PBSSystemBulletinImageIDRemoteBatteryWarning, _PBSSystemBulletinImageIDRemoteCharging, 72 | _PBSSystemBulletinImageIDScreenSharing, _PBSSystemBulletinImageIDTV, _PBSSystemBulletinImageIDVolume, 73 | _PBSSystemBulletinImageURLKey, _PBSSystemBulletinImageURLPlaceholderKey, _PBSSystemBulletinMessageKey, 74 | _PBSSystemBulletinNumValueLevelsKey, _PBSSystemBulletinServiceName, _PBSSystemBulletinStyleKey, 75 | _PBSSystemBulletinTimeoutKey, _PBSSystemBulletinTitleKey, _PBSSystemBulletinValueLevelKey, 76 | _PBSSystemBulletinViewControllerClassName, _PBSSystemIdleStateDidChangeNotification, 77 | _PBSSystemServiceSpecialLaunchScheme, _PBSTopShelfAppIdentifiersKey, 78 | _PBSUPRDialogCustomViewControllerClassNameKey, _PBSUPRDialogCustomViewServiceNameKey, 79 | _PBSUPRDialogTypeCustom, _PBSUPRDialogTypeKey, _PBSUserPresentationServiceLogSubsystem, 80 | _PBSViewServiceOptionsAnimateKey, _PBSViewServiceOptionsUserInitiatedKey, _PBSWakeDevice, 81 | _PBSWakeReasonAirPlay, _PBSWakeReasonCEC, _PBSWakeReasonExternalDevice, _PBSWakeReasonForcePair, 82 | _PBSWakeReasonSiri, _PBSWakeReasonUserActivity, _PineBoardServicesErrorDomain, _airPlayLog, _appDelegateLog, 83 | _appDepotLog, _appLaunchLog, _appLifecycleLog, _appSwitcherLog, _appTestingLog, _bulletinLog, _crdLog, 84 | _diagnosticServiceLog, _displayManagerLog, _eventLog, _externalControlActionLog, _externalControlEventLog, 85 | _externalControlIRLearningLog, _externalControlLog, _externalControlVolumeLog, 86 | _kPBSOSUpdateDownloadPhaseBrainExtracting, _kPBSOSUpdateDownloadPhaseBrainFetching, 87 | _kPBSOSUpdateDownloadPhaseBrainFetchingQueuedLocal, _kPBSOSUpdateDownloadPhaseBrainFetchingQueuedRemote, 88 | _kPBSOSUpdateDownloadPhaseBrainFetchingStalled, _kPBSOSUpdateDownloadPhaseBrainVerifying, 89 | _kPBSOSUpdateDownloadPhasePreparingForInstallation, _kPBSOSUpdateDownloadPhaseStarting, 90 | _kPBSOSUpdateDownloadPhaseUpdateFetching, _kPBSOSUpdateDownloadPhaseUpdateFetchingStalled, _mediaRemoteLog, 91 | _mediaRemoteObserverLog, _mediaRemoteServiceLog, _migrationLog, _modeSwitchingManagerLog, _nowPlayingLog, 92 | _osUpdateLog, _osUpdateProgressLog, _powerManagerLog, _processManagerLog, _restrictionServiceLog, _screenSaverLog, 93 | _screenSharingLog, _singleAppLog, _snapshotServiceLog, _systemAppearanceLog, _systemServiceLog, _systemStatusLog, 94 | _userNotificationLog, _userPresentationServiceLog, _verificationOperationLog, 95 | _videoSubscriberAccountServiceLog, _windowLog, _windowManagerLog ] 96 | objc-classes: [ _PBSAccessibilitySettings, _PBSAirPlayService, _PBSAirPlaySettings, _PBSAppDepotProxy, _PBSAppState, 97 | _PBSAppleConnectSettings, _PBSAssertion, _PBSAssetDownloadPriorityAssertion, _PBSBadgeValue, _PBSBulletin, 98 | _PBSConferenceRoomDisplaySettings, _PBSDiagnosticLogsService, _PBSDisplayAssistantPresentationRequest, 99 | _PBSDisplayManager, _PBSDisplayManagerServiceProxy, _PBSDisplayManagerUpdateRequest, _PBSDisplayMode, 100 | _PBSExternalControlFeature, _PBSExternalControlIRLearningConfiguration, 101 | _PBSExternalControlIRLearningManager, _PBSExternalControlSettings, _PBSExternalControlSystem, 102 | _PBSIRVolumeButtonConfiguration, _PBSMediaRemoteServiceProxy, _PBSMediaRemoteSiriContext, _PBSMigration, 103 | _PBSMigrationContext, _PBSMigrator, _PBSMutableAppState, _PBSOSUpdateDescriptor, _PBSOSUpdateDownload, 104 | _PBSOSUpdateManagerClient, _PBSOSUpdateOperationProgress, _PBSOSUpdateScanOptions, _PBSOSUpdateService, 105 | _PBSOSUpdateSettings, _PBSPlayPauseButtonEventAssertion, _PBSPowerManager, _PBSRecoveryModeReporter, 106 | _PBSRestrictionService, _PBSRestrictionsSettings, _PBSSiriSettings, _PBSStoreSettings, _PBSSystemService, 107 | _PBSSystemServiceConnection, _PBSSystemServiceProxy, _PBSSystemStatus, _PBSUserActivityTrigger, 108 | _PBSUserPresentationRequest, _PBSUserPresentationServiceProxy, _PBSVPNSettings, 109 | _PBSVideoSubscriberAccountServiceProxy, _PBSVolumeButtonEventAssertion, _PBUIPluginController, 110 | __PBSAssertionManager ] 111 | objc-ivars: [ _PBSAccessibilitySettings._accessibilityMenuOptions, _PBSAccessibilitySettings._boldTextEnabled, 112 | _PBSAccessibilitySettings._displayFilterColorAdjustmentsEnabled, 113 | _PBSAccessibilitySettings._displayFilterInvertColorsEnabled, 114 | _PBSAccessibilitySettings._displayFilterLightSensitivityEnabled, 115 | _PBSAccessibilitySettings._displayFilterReduceWhitePointEnabled, 116 | _PBSAccessibilitySettings._domainObserver, _PBSAccessibilitySettings._highContrastFocusIndicatorsEnabled, 117 | _PBSAccessibilitySettings._reduceMotionEnabled, _PBSAccessibilitySettings._reduceTransparencyEnabled, 118 | _PBSAccessibilitySettings._switchControlEnabled, _PBSAccessibilitySettings._voiceOverEnabled, 119 | _PBSAccessibilitySettings._zoomEnabled, _PBSAirPlaySettings._accessType, 120 | _PBSAirPlaySettings._airPlayAllowed, _PBSAirPlaySettings._airPlayObserverToken, 121 | _PBSAirPlaySettings._airPlayPreferences, _PBSAirPlaySettings._availableSecurityModesByAccessType, 122 | _PBSAirPlaySettings._availableSecurityTypes, _PBSAirPlaySettings._enabled, 123 | _PBSAirPlaySettings._mcObserverToken, _PBSAirPlaySettings._nearbyAirPlayEnabled, 124 | _PBSAirPlaySettings._overscanAdjustment, _PBSAirPlaySettings._password, 125 | _PBSAirPlaySettings._preferCloudPlayback, _PBSAirPlaySettings._securityType, 126 | _PBSAirPlaySettings._settingsModificationAllowed, _PBSAppDepotProxy._appState, 127 | _PBSAppDepotProxy._appStateMonitorQueue, _PBSAppDepotProxy._monitor, 128 | _PBSAppDepotProxy._provisionedAppIdentifiers, _PBSAppState._applicationIdentifier, 129 | _PBSAppState._badgeEnabled, _PBSAppState._badgeValue, _PBSAppState._cacheDeleting, 130 | _PBSAppState._disabledReasons, _PBSAppState._enabled, _PBSAppState._iconName, _PBSAppState._recentlyUpdated, 131 | _PBSAppState._store, _PBSAppleConnectSettings._accountID, _PBSAppleConnectSettings._enabled, 132 | _PBSAppleConnectSettings._password, _PBSAssertion._identifier, _PBSAssertion._uniqueIdentifier, 133 | _PBSBadgeValue._badgeNumber, _PBSBadgeValue._badgeString, _PBSBulletin._message, 134 | _PBSBulletin._serviceIdentifier, _PBSBulletin._viewControllerClassName, 135 | _PBSConferenceRoomDisplaySettings._conferenceRoomDisplayBackgroundPhoto, 136 | _PBSConferenceRoomDisplaySettings._conferenceRoomDisplayBackgroundPhotoName, 137 | _PBSConferenceRoomDisplaySettings._conferenceRoomDisplayMessage, 138 | _PBSConferenceRoomDisplaySettings._defaults, _PBSConferenceRoomDisplaySettings._domain, 139 | _PBSConferenceRoomDisplaySettings._mode, _PBSConferenceRoomDisplaySettings._restrictionsObserver, 140 | _PBSDisplayAssistantPresentationRequest._destinationDisplayMode, 141 | _PBSDisplayAssistantPresentationRequest._kind, _PBSDisplayAssistantPresentationRequest._source, 142 | _PBSDisplayAssistantPresentationRequest._sourceDisplayMode, 143 | _PBSDisplayManager._canHandleHighBandwidthModes, _PBSDisplayManager._currentDisplayID, 144 | _PBSDisplayManager._currentDisplayMode, _PBSDisplayManager._deemed4KCapable, 145 | _PBSDisplayManager._detectedPoorCableConnection, _PBSDisplayManager._displayConnection, 146 | _PBSDisplayManager._fallbackDisplayMode, _PBSDisplayManager._lastCablePollStatus, 147 | _PBSDisplayManager._localeRefreshRate, _PBSDisplayManager._promotedVirtualDisplayModes, 148 | _PBSDisplayManager._seenDisplayIDs, _PBSDisplayManager._serviceProxy, 149 | _PBSDisplayManager._shouldModeSwitchForDynamicRange, _PBSDisplayManager._shouldModeSwitchForFrameRate, 150 | _PBSDisplayManager._sortedDisplayModes, _PBSDisplayManager._stateObservers, 151 | _PBSDisplayManager._userSelectedDisplayMode, _PBSDisplayManagerServiceProxy._pendingMessageReplies, 152 | _PBSDisplayManagerServiceProxy._remoteProxy, _PBSDisplayManagerUpdateRequest._displayMode, 153 | _PBSDisplayManagerUpdateRequest._treatDisplayModeAsFallback, 154 | _PBSDisplayManagerUpdateRequest._upgradeDisplayModeToNonVirtual, 155 | _PBSDisplayManagerUpdateRequest._useDisplayModeAsDefaultForNextWake, 156 | _PBSDisplayManagerUpdateRequest._userInfo, _PBSDisplayManagerUpdateRequest._writeDisplayModeToDisk, 157 | _PBSDisplayMode._HDR10ChromaSubsampling, _PBSDisplayMode._SDRChromaSubsampling, 158 | _PBSDisplayMode._SDRColorMapping, _PBSDisplayMode._caModeIsVirtual, 159 | _PBSDisplayMode._canBeUsedToEstablishDisplayOnNextWake, _PBSDisplayMode._colorGamut, 160 | _PBSDisplayMode._dynamicRange, _PBSDisplayMode._promotedToReal, _PBSDisplayMode._refreshRate, 161 | _PBSDisplayMode._resolution, _PBSDisplayMode._scale, _PBSExternalControlFeature._featureType, 162 | _PBSExternalControlFeature._isAutomaticallyConfigured, _PBSExternalControlFeature._isConfiguredForUse, 163 | _PBSExternalControlFeature._isEnabled, _PBSExternalControlFeature._isReadyForUse, 164 | _PBSExternalControlFeature._transport, _PBSExternalControlFeature._updatePending, 165 | _PBSExternalControlIRLearningConfiguration._actions, 166 | _PBSExternalControlIRLearningConfiguration._allowsNavigation, 167 | _PBSExternalControlIRLearningConfiguration._deviceType, 168 | _PBSExternalControlIRLearningConfiguration._deviceUUID, _PBSExternalControlIRLearningConfiguration._name, 169 | _PBSExternalControlIRLearningConfiguration._requiredActions, 170 | _PBSExternalControlIRLearningManager._configuration, _PBSExternalControlIRLearningManager._currentAction, 171 | _PBSExternalControlIRLearningManager._delegate, 172 | _PBSExternalControlIRLearningManager._externalControlSystem, _PBSExternalControlIRLearningManager._flags, 173 | _PBSExternalControlIRLearningManager._learnedActions, 174 | _PBSExternalControlIRLearningManager._learningInProgress, _PBSExternalControlIRLearningManager._waitTimer, 175 | _PBSExternalControlSettings._cachedAdjustDisplayStateOnSleep, 176 | _PBSExternalControlSettings._cachedAdjustDisplayStateOnWake, 177 | _PBSExternalControlSettings._cachedAssertActiveSourceOnAirPlay, 178 | _PBSExternalControlSettings._cachedAssertActiveSourceOnAppRestart, 179 | _PBSExternalControlSettings._cachedAssertActiveSourceOnBoot, 180 | _PBSExternalControlSettings._cachedAssertActiveSourceOnRemoteAppEvent, 181 | _PBSExternalControlSettings._cachedAssertActiveSourceOnWake, 182 | _PBSExternalControlSettings._cachedAssertPowerOnAirPlay, 183 | _PBSExternalControlSettings._cachedAssertPowerOnBoot, 184 | _PBSExternalControlSettings._cachedAssertPowerOnWake, 185 | _PBSExternalControlSettings._cachedAssertStandbyOnSleep, 186 | _PBSExternalControlSettings._cachedCreateCoreControl, _PBSExternalControlSettings._cachedHibernate, 187 | _PBSExternalControlSettings._cachedMuteOnPressHold, 188 | _PBSExternalControlSettings._cachedResignActiveSourceOnSleep, 189 | _PBSExternalControlSettings._cachedRetryCoreControlActions, 190 | _PBSExternalControlSettings._cachedWakeOnDisplayChange, _PBSExternalControlSettings._domainObserver, 191 | _PBSExternalControlSystem._actionBeingLearned, _PBSExternalControlSystem._coreControl, 192 | _PBSExternalControlSystem._coreControlPrefsObserver, _PBSExternalControlSystem._coreControlQueue, 193 | _PBSExternalControlSystem._delegate, _PBSExternalControlSystem._delegateVolumeRepeatTimer, 194 | _PBSExternalControlSystem._deviceTypeBeingLearned, _PBSExternalControlSystem._domainObserver, 195 | _PBSExternalControlSystem._effectiveVolumeButtonConfiguration, 196 | _PBSExternalControlSystem._internalVolumeButtonBehavior, _PBSExternalControlSystem._isActiveSource, 197 | _PBSExternalControlSystem._isAppleIRRemotePaired, 198 | _PBSExternalControlSystem._lastProgrammedMuteConfiguration, 199 | _PBSExternalControlSystem._lastProgrammedMutePolicy, _PBSExternalControlSystem._lastProgrammedRemoteIDStr, 200 | _PBSExternalControlSystem._lastProgrammedVolumeConfiguration, 201 | _PBSExternalControlSystem._lastProgrammedVolumePolicy, 202 | _PBSExternalControlSystem._lastVolumeButtonsEnabledState, 203 | _PBSExternalControlSystem._learnedIRConfigurations, _PBSExternalControlSystem._needToUpdateCachedState, 204 | _PBSExternalControlSystem._noIdleAssertionID, _PBSExternalControlSystem._noIdleAssertionRefCount, 205 | _PBSExternalControlSystem._pendingVolumeDownReleaseEvents, 206 | _PBSExternalControlSystem._pendingVolumeUpReleaseEvents, _PBSExternalControlSystem._queuedActions, 207 | _PBSExternalControlSystem._rapidCECVolumeButtonReleaseTimer, 208 | _PBSExternalControlSystem._rapidDelegateVolumeButtonReleaseTimer, 209 | _PBSExternalControlSystem._selectedVolumeButtonConfiguration, 210 | _PBSExternalControlSystem._serialActionQueue, _PBSExternalControlSystem._shortVolumeDownHeldChord, 211 | _PBSExternalControlSystem._shortVolumeUpHeldChord, _PBSExternalControlSystem._volumeDeviceName, 212 | _PBSIRVolumeButtonConfiguration._configurationName, _PBSIRVolumeButtonConfiguration._configurationUUID, 213 | _PBSIRVolumeButtonConfiguration._isBuiltIn, _PBSMediaRemoteServiceProxy._pendingCompletionHandlers, 214 | _PBSMediaRemoteServiceProxy._remoteProxy, _PBSMediaRemoteServiceProxy._volumeControlAvailable, 215 | _PBSMediaRemoteServiceProxy._volumeControlNotifyToken, _PBSMediaRemoteSiriContext._deviceID, 216 | _PBSMediaRemoteSiriContext._requestorBundleID, _PBSMediaRemoteSiriContext._sourceName, 217 | _PBSMediaRemoteSiriContext._testingContext, _PBSMigration._error, _PBSMigration._handler, 218 | _PBSMigration._handlingClass, _PBSMigration._name, _PBSMigration._state, _PBSMigrationContext._fromBuild, 219 | _PBSMigrationContext._fromVersion, _PBSMigrationContext._toBuild, _PBSMigrationContext._toVersion, 220 | _PBSMigrator._allMigrations, _PBSOSUpdateDescriptor._action, _PBSOSUpdateDescriptor._downloadSize, 221 | _PBSOSUpdateDescriptor._installationSize, _PBSOSUpdateDescriptor._minimumSystemPartitionSize, 222 | _PBSOSUpdateDescriptor._msuPrepareSize, _PBSOSUpdateDescriptor._productBuildVersion, 223 | _PBSOSUpdateDescriptor._productSystemName, _PBSOSUpdateDescriptor._productVersion, 224 | _PBSOSUpdateDescriptor._publisher, _PBSOSUpdateDescriptor._rampEnabled, _PBSOSUpdateDescriptor._releaseDate, 225 | _PBSOSUpdateDescriptor._releaseType, _PBSOSUpdateDescriptor._systemPartitionPadding, 226 | _PBSOSUpdateDescriptor._unarchivedSize, _PBSOSUpdateDescriptor._updateType, 227 | _PBSOSUpdateDownload._descriptor, _PBSOSUpdateDownload._progress, _PBSOSUpdateManagerClient._delegate, 228 | _PBSOSUpdateOperationProgress._isDone, _PBSOSUpdateOperationProgress._normalizedPercentComplete, 229 | _PBSOSUpdateOperationProgress._percentComplete, _PBSOSUpdateOperationProgress._phase, 230 | _PBSOSUpdateOperationProgress._timeRemaining, _PBSOSUpdateSettings._assetServerURLString, 231 | _PBSOSUpdateSettings._brainServerURLString, _PBSOSUpdateSettings._buildNumber, 232 | _PBSOSUpdateSettings._buildTrain, _PBSOSUpdateSettings._defaultAssetServerURLString, 233 | _PBSOSUpdateSettings._defaultBrainServerURLString, _PBSOSUpdateSettings._domainObserver, 234 | _PBSOSUpdateSettings._enableMobileAssetLogging, _PBSOSUpdateSettings._lastAttemptedTargetOSBuild, 235 | _PBSOSUpdateSettings._lastAttemptedUUID, _PBSOSUpdateSettings._lastCheckDate, 236 | _PBSOSUpdateSettings._lastUpdatedFromOSBuildVersion, _PBSOSUpdateSettings._lastUpdatedFromOSVersion, 237 | _PBSOSUpdateSettings._periodicCheckInterval, _PBSOSUpdateSettings._personalizationServerURLString, 238 | _PBSOSUpdateSettings._postponedRecheckDelay, _PBSOSUpdateSettings._preferences, 239 | _PBSOSUpdateSettings._shouldAutomaticallyApplyUpdates, _PBSOSUpdateSettings._shouldForceAllowAutoApply, 240 | _PBSOSUpdateSettings._shouldForceRedownloadOnce, _PBSOSUpdateSettings._shouldIgnoreEngineeringFiles, 241 | _PBSOSUpdateSettings._shouldSkipUpdate, _PBSOSUpdateSettings._sleepCheckDelay, 242 | _PBSOSUpdateSettings._slowUpdateRebootCount, _PBSOSUpdateSettings._slowUpdateTimeoutInSeconds, 243 | _PBSOSUpdateSettings._vpnProfileServerURLString, _PBSPowerManager._currentIdleTimeInterval, 244 | _PBSPowerManager._delegate, _PBSPowerManager._deviceAsleep, _PBSPowerManager._deviceSleptManually, 245 | _PBSPowerManager._ignoreEvents, _PBSPowerManager._ioConnection, _PBSPowerManager._ioNotifier, 246 | _PBSPowerManager._mutableUserActivityTriggers, _PBSPowerManager._needsDisplayWakeOnPowerOn, 247 | _PBSPowerManager._pmNoIdleSleepAssertionID, _PBSPowerManager._pmSystemActivityAssertionID, 248 | _PBSPowerManager._powerAssertionTimer, _PBSPowerManager._sleepStateNotificationToken, 249 | _PBSRecoveryModeReporter._actions, _PBSRestrictionsSettings._gameCenterEnabled, 250 | _PBSSiriSettings._connection, _PBSSiriSettings._dictationEnabled, _PBSSiriSettings._language, 251 | _PBSSiriSettings._offeredEnableAssistant, _PBSSiriSettings._offeredEnableDictation, 252 | _PBSSiriSettings._siriEnabled, _PBSStoreSettings._cachedShowSampleFlowcases, 253 | _PBSStoreSettings._cachedShowSampleUberRow, _PBSStoreSettings._domainObserver, 254 | _PBSSystemServiceConnection._airplayServiceProxy, _PBSSystemServiceConnection._bulletinServiceProxy, 255 | _PBSSystemServiceConnection._connection, _PBSSystemServiceConnection._diagnosticLogsServiceProxy, 256 | _PBSSystemServiceConnection._displayManagerServiceProxy, 257 | _PBSSystemServiceConnection._mediaRemoteServiceProxy, _PBSSystemServiceConnection._osUpdateServiceProxy, 258 | _PBSSystemServiceConnection._proxyAccessGroupsByName, 259 | _PBSSystemServiceConnection._restrictionServiceProxy, _PBSSystemServiceConnection._systemServiceProxy, 260 | _PBSSystemServiceConnection._userPresentationServiceProxy, _PBSSystemServiceConnection._valid, 261 | _PBSSystemServiceConnection._videoSubscriberAccountServiceProxy, _PBSSystemServiceProxy._hiliteModeActive, 262 | _PBSSystemServiceProxy._hiliteModeNotifyToken, _PBSSystemServiceProxy._presenceDetectionNotifyToken, 263 | _PBSSystemServiceProxy._screenSaverActive, _PBSSystemServiceProxy._screenSaverNotifyToken, 264 | _PBSSystemServiceProxy._systemServiceConnection, _PBSUserActivityTrigger._action, 265 | _PBSUserActivityTrigger._idle, _PBSUserActivityTrigger._name, _PBSUserActivityTrigger._target, 266 | _PBSUserActivityTrigger._timeoutInSeconds, _PBSUserPresentationRequest._options, 267 | _PBSUserPresentationRequest._type, _PBSUserPresentationServiceProxy._pendingCompletionHandlers, 268 | _PBSUserPresentationServiceProxy._pendingMessageReplies, _PBSUserPresentationServiceProxy._remoteProxy, 269 | _PBSVideoSubscriberAccountServiceProxy._proxy, _PBUIPluginController._listening, 270 | _PBUIPluginController._mode, _PBUIPluginController._pluginHost, 271 | __PBSAssertionManager._activeAssertionIdentifiers, __PBSAssertionManager._assertionClass, 272 | __PBSAssertionManager._workQueue ] 273 | ... 274 | --------------------------------------------------------------------------------