├── .github └── workflows │ └── main.yml ├── .gitignore ├── .gitmodules ├── Application ├── .gitignore ├── Dopamine.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── Dopamine │ ├── App Delegates │ │ ├── DOAppDelegate.h │ │ ├── DOAppDelegate.m │ │ ├── DOSceneDelegate.h │ │ └── DOSceneDelegate.m │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-38@2x.png │ │ │ ├── Icon-38@3x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-64@2x.png │ │ │ ├── Icon-64@3x.png │ │ │ ├── Icon-68@2x.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-83.5@2x.png │ │ │ ├── Icon-Notification@2x.png │ │ │ ├── Icon-Notification@3x.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small-40@3x 1.png │ │ │ ├── Icon-Small-40@3x.png │ │ │ ├── Icon-Small@2x.png │ │ │ └── Icon-Small@3x.png │ │ ├── AppIcon_Blue.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-38@2x.png │ │ │ ├── Icon-38@3x.png │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-64@2x.png │ │ │ ├── Icon-64@3x.png │ │ │ ├── Icon-68@2x.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-83.5@2x.png │ │ │ ├── Icon-Notification@2x.png │ │ │ ├── Icon-Notification@3x.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small-40@3x.png │ │ │ ├── Icon-Small@2x.png │ │ │ └── Icon-Small@3x.png │ │ ├── AppIcon_ElleKit.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-38@2x.png │ │ │ ├── Icon-38@3x.png │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-64@2x.png │ │ │ ├── Icon-64@3x.png │ │ │ ├── Icon-68@2x.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-83.5@2x.png │ │ │ ├── Icon-Notification@2x.png │ │ │ ├── Icon-Notification@3x.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small-40@3x.png │ │ │ ├── Icon-Small@2x.png │ │ │ └── Icon-Small@3x.png │ │ ├── AppIcon_Purple.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-38@2x.png │ │ │ ├── Icon-38@3x.png │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-64@2x.png │ │ │ ├── Icon-64@3x.png │ │ │ ├── Icon-68@2x.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-83.5@2x.png │ │ │ ├── Icon-Notification@2x.png │ │ │ ├── Icon-Notification@3x.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small-40@3x.png │ │ │ ├── Icon-Small@2x.png │ │ │ └── Icon-Small@3x.png │ │ ├── AppIcon_Red.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-38@2x.png │ │ │ ├── Icon-38@3x.png │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-64@2x.png │ │ │ ├── Icon-64@3x.png │ │ │ ├── Icon-68@2x.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-83.5@2x.png │ │ │ ├── Icon-Notification@2x.png │ │ │ ├── Icon-Notification@3x.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small-40@3x.png │ │ │ ├── Icon-Small@2x.png │ │ │ └── Icon-Small@3x.png │ │ ├── Background │ │ │ ├── Background_Blue.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── blue.jpg │ │ │ ├── Background_ElleKit.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── ellekit.jpg │ │ │ ├── Background_Green.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── green.jpg │ │ │ ├── Background_Purple.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── purple.jpg │ │ │ ├── Background_Red.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── red.jpg │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── Dopamine.imageset │ │ │ ├── Contents.json │ │ │ ├── Dopamine.png │ │ │ ├── Dopamine@2x.png │ │ │ └── Dopamine@3x.png │ │ ├── Loading.imageset │ │ │ ├── Contents.json │ │ │ └── Oval.png │ │ ├── Package Managers │ │ │ ├── Contents.json │ │ │ ├── Sileo.imageset │ │ │ │ ├── AppIcon83.5x83.5@2x.png │ │ │ │ └── Contents.json │ │ │ └── Zebra.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icon_83.5@2x.png │ │ └── alpha-gradient.imageset │ │ │ ├── Contents.json │ │ │ └── Rectangle.png │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ ├── Dependencies │ │ ├── libgrabkernel2.a │ │ └── libpartial.a │ ├── Dopamine.entitlements │ ├── Exploits │ │ ├── badRecovery │ │ │ ├── Info.plist │ │ │ ├── badRecovery.h │ │ │ ├── badRecovery.m │ │ │ └── badRecovery.s │ │ ├── dmaFail │ │ │ ├── Info.plist │ │ │ ├── dmaFail.c │ │ │ └── dmaFail.h │ │ ├── kfd │ │ │ ├── Exploit │ │ │ │ ├── libkfd.h │ │ │ │ └── libkfd │ │ │ │ │ ├── common.h │ │ │ │ │ ├── info.h │ │ │ │ │ ├── info │ │ │ │ │ ├── dynamic_info.h │ │ │ │ │ └── static_info.h │ │ │ │ │ ├── krkw.h │ │ │ │ │ ├── krkw │ │ │ │ │ ├── IOSurface_shared.h │ │ │ │ │ ├── kread │ │ │ │ │ │ ├── kread_IOSurface.h │ │ │ │ │ │ ├── kread_kqueue_workloop_ctl.h │ │ │ │ │ │ └── kread_sem_open.h │ │ │ │ │ └── kwrite │ │ │ │ │ │ ├── kwrite_IOSurface.h │ │ │ │ │ │ ├── kwrite_dup.h │ │ │ │ │ │ └── kwrite_sem_open.h │ │ │ │ │ ├── perf.h │ │ │ │ │ ├── puaf.h │ │ │ │ │ └── puaf │ │ │ │ │ ├── landa.h │ │ │ │ │ ├── physpuppet.h │ │ │ │ │ └── smith.h │ │ │ ├── Info.plist │ │ │ ├── kfd.h │ │ │ └── kfd.m │ │ ├── multicast_bytecopy │ │ │ ├── Info.plist │ │ │ ├── exploit │ │ │ │ ├── IOGPU.c │ │ │ │ ├── IOGPU.h │ │ │ │ ├── IOSurfaceRoot.c │ │ │ │ ├── IOSurfaceRoot.h │ │ │ │ ├── exploit.c │ │ │ │ ├── exploit.h │ │ │ │ ├── iokit.h │ │ │ │ ├── kernel_base.c │ │ │ │ ├── kernel_base.h │ │ │ │ ├── kernel_rw.c │ │ │ │ ├── kernel_rw.h │ │ │ │ ├── mcast.c │ │ │ │ ├── mcast.h │ │ │ │ ├── necp.c │ │ │ │ ├── necp.h │ │ │ │ ├── port_utils.c │ │ │ │ ├── port_utils.h │ │ │ │ ├── spray.c │ │ │ │ ├── spray.h │ │ │ │ └── xpaci.h │ │ │ ├── multicast_bytecopy.h │ │ │ └── multicast_bytecopy.m │ │ └── weightBufs │ │ │ ├── Info.plist │ │ │ ├── exploit │ │ │ ├── ANEDirectIn.c │ │ │ ├── ANEDirectIn.h │ │ │ ├── AppleNeuralEngine │ │ │ │ ├── AppleNeuralEngine-Structs.h │ │ │ │ ├── AppleNeuralEngine.h │ │ │ │ ├── NSCopying.h │ │ │ │ ├── NSSecureCoding.h │ │ │ │ ├── _ANEClient.h │ │ │ │ ├── _ANECloneHelper.h │ │ │ │ ├── _ANEDaemonConnection.h │ │ │ │ ├── _ANEDaemonProtocol.h │ │ │ │ ├── _ANEDataReporter.h │ │ │ │ ├── _ANEDeviceController.h │ │ │ │ ├── _ANEDeviceInfo.h │ │ │ │ ├── _ANEErrors.h │ │ │ │ ├── _ANEHashEncoding.h │ │ │ │ ├── _ANEIOSurfaceObject.h │ │ │ │ ├── _ANELog.h │ │ │ │ ├── _ANEModel.h │ │ │ │ ├── _ANEPerformanceStats.h │ │ │ │ ├── _ANEProgramForEvaluation.h │ │ │ │ ├── _ANEQoSMapper.h │ │ │ │ ├── _ANERequest.h │ │ │ │ └── _ANEStrings.h │ │ │ ├── IOGPU.c │ │ │ ├── IOGPU.h │ │ │ ├── IOSurface.c │ │ │ ├── IOSurface.h │ │ │ ├── aneProgram.h │ │ │ ├── exploit.h │ │ │ ├── exploit.m │ │ │ ├── iokit.h │ │ │ ├── model_tmp.hwx │ │ │ └── utils.c │ │ │ ├── weightBufs.h │ │ │ └── weightBufs.m │ ├── Extensions │ │ ├── NSData+Hex.h │ │ ├── NSData+Hex.m │ │ ├── NSString+Version.h │ │ ├── NSString+Version.m │ │ ├── UIImage+Blur.h │ │ └── UIImage+Blur.m │ ├── Headers │ │ ├── zdict.h │ │ ├── zstd.h │ │ └── zstd_errors.h │ ├── Info.plist │ ├── Jailbreak │ │ ├── DOBootstrapper.h │ │ ├── DOBootstrapper.m │ │ ├── DOEnvironmentManager.h │ │ ├── DOEnvironmentManager.m │ │ ├── DOExploit.h │ │ ├── DOExploit.m │ │ ├── DOExploitManager.h │ │ ├── DOExploitManager.m │ │ ├── DOJailbreaker.h │ │ ├── DOJailbreaker.m │ │ ├── DOPreferenceManager.h │ │ └── DOPreferenceManager.m │ ├── Resources │ │ ├── .gitignore │ │ ├── LICENSE.md │ │ ├── LICENSE_ChOma.md │ │ ├── LICENSE_ElleKit.md │ │ ├── LICENSE_Fugu15.md │ │ ├── LICENSE_Fugu15_Rootful.md │ │ ├── LICENSE_Procursus.md │ │ ├── LICENSE_Sileo.md │ │ ├── LICENSE_XPF.md │ │ ├── LICENSE_Zebra.md │ │ ├── LICENSE_dimentio.md │ │ ├── LICENSE_kfd.md │ │ ├── LICENSE_libc.md │ │ ├── LICENSE_libgrabkernel2.md │ │ ├── LICENSE_opainject.md │ │ ├── LICENSE_plooshinit.md │ │ ├── LICENSE_weightBufs.md │ │ ├── download_bootstraps.sh │ │ ├── sileo.deb │ │ └── zebra.deb │ ├── UI │ │ ├── ActionMenu │ │ │ ├── DOActionMenuButton.h │ │ │ ├── DOActionMenuButton.m │ │ │ ├── DOActionMenuDelegate.h │ │ │ ├── DOActionMenuView.h │ │ │ └── DOActionMenuView.m │ │ ├── DOGlobalAppearance.h │ │ ├── DOGlobalAppearance.m │ │ ├── DOHeaderView.h │ │ ├── DOHeaderView.m │ │ ├── DOJailbreakButton.h │ │ ├── DOJailbreakButton.m │ │ ├── DOMainViewController.h │ │ ├── DOMainViewController.m │ │ ├── DONavigationController.h │ │ ├── DONavigationController.m │ │ ├── DOUIManager.h │ │ ├── DOUIManager.m │ │ ├── Log │ │ │ ├── DODebugLogView.h │ │ │ ├── DODebugLogView.m │ │ │ ├── DOLogCrashViewController.h │ │ │ ├── DOLogCrashViewController.m │ │ │ ├── DOLogViewProtocol.h │ │ │ ├── DOLyricsLogItemView.h │ │ │ ├── DOLyricsLogItemView.m │ │ │ ├── DOLyricsLogView.h │ │ │ ├── DOLyricsLogView.m │ │ │ ├── DOProgressiveBlurView.h │ │ │ ├── DOProgressiveBlurView.m │ │ │ └── Indicator │ │ │ │ ├── DODoubleHelixIndicator.h │ │ │ │ ├── DODoubleHelixIndicator.m │ │ │ │ ├── DOLoadingIndicator.h │ │ │ │ └── DOLoadingIndicator.m │ │ ├── PkgManagers │ │ │ ├── DOAppSwitch.h │ │ │ ├── DOAppSwitch.m │ │ │ ├── DOPkgManagerPickerView.h │ │ │ ├── DOPkgManagerPickerView.m │ │ │ ├── DOPkgManagerPickerViewController.h │ │ │ ├── DOPkgManagerPickerViewController.m │ │ │ └── PkgManagers.plist │ │ ├── Settings │ │ │ ├── Credits.plist │ │ │ ├── DOCreditsViewController.h │ │ │ ├── DOCreditsViewController.m │ │ │ ├── DOLicenseViewController.h │ │ │ ├── DOLicenseViewController.m │ │ │ ├── DOSettingsController.h │ │ │ ├── DOSettingsController.m │ │ │ ├── PSLists │ │ │ │ ├── DOPSExploitListItemsController.h │ │ │ │ ├── DOPSExploitListItemsController.m │ │ │ │ ├── DOPSJetsamListItemsController.h │ │ │ │ ├── DOPSJetsamListItemsController.m │ │ │ │ ├── DOPSListController.h │ │ │ │ ├── DOPSListController.m │ │ │ │ ├── DOPSListItemsController.h │ │ │ │ └── DOPSListItemsController.m │ │ │ └── Specifiers │ │ │ │ ├── DOButtonCell.h │ │ │ │ ├── DOButtonCell.m │ │ │ │ ├── DOCreditsCell.h │ │ │ │ ├── DOCreditsCell.m │ │ │ │ ├── DOHeaderCell.h │ │ │ │ └── DOHeaderCell.m │ │ ├── Themes │ │ │ ├── DOTheme.h │ │ │ ├── DOTheme.m │ │ │ ├── DOThemeManager.h │ │ │ ├── DOThemeManager.m │ │ │ └── Themes.plist │ │ ├── Transition │ │ │ ├── DOModalBackAction.h │ │ │ ├── DOModalBackAction.m │ │ │ ├── DOModalTransitionPush.h │ │ │ ├── DOModalTransitionPush.m │ │ │ ├── DOModalTransitionScale.h │ │ │ └── DOModalTransitionScale.m │ │ └── Update │ │ │ ├── DODownloadViewController.h │ │ │ ├── DODownloadViewController.m │ │ │ ├── DOUpdateCircleView.h │ │ │ ├── DOUpdateCircleView.m │ │ │ ├── DOUpdateViewController.h │ │ │ └── DOUpdateViewController.m │ ├── ar.lproj │ │ └── Localizable.strings │ ├── da.lproj │ │ └── Localizable.strings │ ├── de.lproj │ │ └── Localizable.strings │ ├── el.lproj │ │ └── Localizable.strings │ ├── en.lproj │ │ └── Localizable.strings │ ├── es.lproj │ │ └── Localizable.strings │ ├── fil.lproj │ │ └── Localizable.strings │ ├── fr.lproj │ │ └── Localizable.strings │ ├── it.lproj │ │ └── Localizable.strings │ ├── ja.lproj │ │ └── Localizable.strings │ ├── kk.lproj │ │ └── Localizable.strings │ ├── ko.lproj │ │ └── Localizable.strings │ ├── main.m │ ├── nl.lproj │ │ └── Localizable.strings │ ├── pl.lproj │ │ └── Localizable.strings │ ├── pt-BR.lproj │ │ └── Localizable.strings │ ├── ru.lproj │ │ └── Localizable.strings │ ├── sv.lproj │ │ └── Localizable.strings │ ├── th.lproj │ │ └── Localizable.strings │ ├── tr.lproj │ │ └── Localizable.strings │ ├── uk.lproj │ │ └── Localizable.strings │ ├── ur.lproj │ │ └── Localizable.strings │ ├── vi.lproj │ │ └── Localizable.strings │ ├── zh-CN.lproj │ │ └── Localizable.strings │ ├── zh-HK.lproj │ │ └── Localizable.strings │ ├── zh-Hans.lproj │ │ └── Localizable.strings │ └── zh-TW.lproj │ │ └── Localizable.strings ├── Frameworks │ └── Preferences.framework │ │ ├── Headers │ │ ├── PSControlTableCell.h │ │ ├── PSListController.h │ │ ├── PSSegmentTableCell.h │ │ ├── PSSpecifier.h │ │ ├── PSSwitchTableCell.h │ │ ├── PSTableCell.h │ │ └── PSViewController.h │ │ └── Preferences.tbd └── Makefile ├── BaseBin ├── .gitignore ├── MachOMerger │ ├── .gitignore │ ├── MachOMerger.entitlements │ ├── Makefile │ ├── Package.resolved │ ├── Package.swift │ ├── README.md │ ├── Sources │ │ └── MachOMerger │ │ │ ├── ChainedFixups.swift │ │ │ ├── MagicSymbols.swift │ │ │ ├── MiscCmds.swift │ │ │ ├── RelocInfo.swift │ │ │ ├── SegmentLoadCommand.swift │ │ │ ├── SegmentSplitInfo.swift │ │ │ ├── Symbols.swift │ │ │ ├── ULEB128Reader.swift │ │ │ ├── UnixThread.swift │ │ │ └── main.swift │ └── upload.sh ├── Makefile ├── _external │ ├── basebin │ │ ├── .version │ │ ├── LaunchDaemons │ │ │ ├── com.opa334.Dopamine.idownloadd.plist │ │ │ └── com.opa334.Dopamine.startup.plist │ │ └── fallback │ │ │ └── CydiaSubstrate.framework │ │ │ ├── .this_is_ellekit_not_substrate │ │ │ └── CydiaSubstrate │ ├── include │ │ ├── CoreServices │ │ │ ├── LSApplicationProxy.h │ │ │ └── LSBundleProxy.h │ │ ├── CoreSymbolication.h │ │ ├── bsm │ │ │ ├── audit.h │ │ │ ├── audit_filter.h │ │ │ ├── audit_session.h │ │ │ ├── audit_uevents.h │ │ │ └── libbsm.h │ │ ├── dyld_cache_format.h │ │ ├── fixup-chains.h │ │ ├── kern_memorystatus.h │ │ ├── launch.h │ │ ├── libarchive │ │ │ ├── archive.h │ │ │ └── archive_entry.h │ │ ├── libgrabkernel2 │ │ │ └── libgrabkernel2.h │ │ ├── libkrw │ │ │ └── libkrw_plugin.h │ │ ├── libproc.h │ │ ├── sandbox.h │ │ ├── substrate.h │ │ ├── sys │ │ │ ├── kern_control.h │ │ │ └── proc_info.h │ │ ├── xpc │ │ │ ├── XPC.apinotes │ │ │ ├── activity.h │ │ │ ├── availability.h │ │ │ ├── base.h │ │ │ ├── connection.h │ │ │ ├── debug.h │ │ │ ├── endpoint.h │ │ │ ├── module.modulemap │ │ │ ├── rich_error.h │ │ │ ├── session.h │ │ │ └── xpc.h │ │ └── xpc_private.h │ └── lib │ │ └── libellekit.tbd ├── boomerang │ ├── Makefile │ ├── entitlements.plist │ └── src │ │ └── main.c ├── dyldhook │ ├── Makefile │ └── src │ │ ├── dyld.h │ │ ├── dyld_jbinfo.h │ │ ├── fakelib_redirect.c │ │ ├── generated │ │ ├── ios15 │ │ │ └── task.c │ │ └── ios16 │ │ │ └── task.c │ │ ├── lv_bypass.c │ │ ├── machomerger_hook.h │ │ ├── main.S │ │ ├── main.c │ │ ├── reimpl.c │ │ └── spinlock_fix.c ├── forkfix │ ├── Makefile │ └── src │ │ ├── main.c │ │ ├── reimpl.c.disabled │ │ ├── reimpl.h.disabled │ │ ├── syscall.S │ │ └── syscall.h ├── idownloadd │ ├── Makefile │ ├── entitlements.plist │ └── src │ │ ├── idownloadd.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── swiftpm │ │ │ └── Package.resolved │ │ └── idownloadd │ │ ├── iDownloadCmds.swift │ │ ├── iDownloadKRW.swift │ │ ├── idownloadd-Bridging-Header.h │ │ ├── main.swift │ │ └── shim.c ├── jbctl │ ├── Makefile │ ├── entitlements.plist │ └── src │ │ ├── internal.h │ │ ├── internal.m │ │ └── main.m ├── launchdhook │ ├── Makefile │ └── src │ │ ├── boomerang.c │ │ ├── boomerang.h │ │ ├── crashreporter.h │ │ ├── crashreporter.m │ │ ├── daemon_hook.h │ │ ├── daemon_hook.m │ │ ├── ipc_hook.c │ │ ├── ipc_hook.h │ │ ├── jbserver │ │ ├── jbdomain_platform.c │ │ ├── jbdomain_root.c │ │ ├── jbdomain_systemwide.c │ │ ├── jbdomain_watchdog.c │ │ ├── jbserver_global.c │ │ ├── jbserver_global.h │ │ ├── jbserver_local.c │ │ ├── jbserver_local.h │ │ ├── jbserver_mach.c │ │ ├── jbsettings.c │ │ └── jbsettings.h │ │ ├── jetsam_hook.c │ │ ├── jetsam_hook.h │ │ ├── main.m │ │ ├── spawn_hook.c │ │ ├── spawn_hook.h │ │ ├── update.h │ │ ├── update.m │ │ ├── xpc_hook.c │ │ └── xpc_hook.h ├── libintl.8.dylib ├── libjailbreak │ ├── Makefile │ └── src │ │ ├── basebin_gen.h │ │ ├── basebin_gen.m │ │ ├── carboncopy.h │ │ ├── carboncopy.m │ │ ├── codesign.h │ │ ├── codesign.m │ │ ├── info.c │ │ ├── info.h │ │ ├── jbclient_mach.c │ │ ├── jbclient_mach.h │ │ ├── jbclient_xpc.c │ │ ├── jbclient_xpc.h │ │ ├── jbroot.c │ │ ├── jbroot.h │ │ ├── jbserver.c │ │ ├── jbserver.h │ │ ├── jbserver_boomerang.c │ │ ├── jbserver_boomerang.h │ │ ├── jbserver_domains.h │ │ ├── kalloc_pt.h │ │ ├── kalloc_pt.m │ │ ├── kcall_Fugu14.S │ │ ├── kcall_Fugu14.c │ │ ├── kcall_Fugu14.h │ │ ├── kcall_arm64.c │ │ ├── kcall_arm64.h │ │ ├── kernel.c │ │ ├── kernel.h │ │ ├── libjailbreak.h │ │ ├── machine_info.h │ │ ├── main.c │ │ ├── physrw.c │ │ ├── physrw.h │ │ ├── physrw_pte.c │ │ ├── physrw_pte.h │ │ ├── primitives.c │ │ ├── primitives.h │ │ ├── primitives_IOSurface.h │ │ ├── primitives_IOSurface.m │ │ ├── primitives_external.h │ │ ├── pte.h │ │ ├── pvh.h │ │ ├── signatures.c │ │ ├── signatures.h │ │ ├── translation.c │ │ ├── translation.h │ │ ├── trustcache.c │ │ ├── trustcache.h │ │ ├── trustcache_structs.h │ │ ├── util.c │ │ ├── util.h │ │ └── util.m ├── rootlesshooks │ ├── .gitignore │ ├── Makefile │ ├── SpringBoard.x │ ├── cfprefsd.x │ ├── installd.x │ ├── lsd.x │ └── main.x ├── systemhook │ ├── Makefile │ ├── src │ │ ├── common.c │ │ ├── common.h │ │ ├── envbuf.c │ │ ├── envbuf.h │ │ ├── launchd.h │ │ ├── main.c │ │ └── private.h │ └── upload.sh ├── tar └── watchdoghook │ ├── Makefile │ └── src │ └── main.m ├── LICENSE.md ├── Makefile ├── Packages ├── .gitignore ├── Makefile ├── basebin-link │ ├── Makefile │ └── control ├── libkrw-provider │ ├── Makefile │ ├── control │ └── src │ │ └── main.c └── libroot │ ├── Makefile │ ├── control │ └── src │ ├── paths.c │ └── paths.h ├── README.md └── sort_localizations.sh /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /*.xcodeproj 4 | xcuserdata/ 5 | xcshareddata/ 6 | DerivedData/ 7 | .swiftpm/xcode/ 8 | /Package.resolved 9 | Dopamine/Dopamine/bootstrap/tmp/ 10 | Application/Payload 11 | .idea 12 | Tools/fastPathSign/.build_* 13 | Exploits/kfd/kfd.framework/kfd -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "BaseBin/ChOma"] 2 | path = BaseBin/ChOma 3 | url = https://github.com/opa334/ChOma 4 | [submodule "BaseBin/XPF"] 5 | path = BaseBin/XPF 6 | url = https://github.com/opa334/XPF 7 | [submodule "Exploits/kfd/src/kfd"] 8 | path = Application/Dopamine/Dopamine/Exploits/kfd/kfd 9 | url = https://github.com/opa334/kfd 10 | [submodule "BaseBin/opainject"] 11 | path = BaseBin/opainject 12 | url = https://github.com/opa334/opainject 13 | [submodule "BaseBin/_external/modules/litehook"] 14 | path = BaseBin/_external/modules/litehook 15 | url = https://github.com/opa334/litehook 16 | -------------------------------------------------------------------------------- /Application/.gitignore: -------------------------------------------------------------------------------- 1 | Dopamine.ipa 2 | Dopamine.tipa 3 | /build -------------------------------------------------------------------------------- /Application/Dopamine.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Application/Dopamine.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Application/Dopamine/App Delegates/DOAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 23.09.23. 6 | // 7 | 8 | #import 9 | 10 | @interface DOAppDelegate : UIResponder 11 | 12 | 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /Application/Dopamine/App Delegates/DOSceneDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.h 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 23.09.23. 6 | // 7 | 8 | #import 9 | 10 | @interface DOSceneDelegate : UIResponder 11 | 12 | @property (strong, nonatomic) UIWindow * window; 13 | 14 | + (void)relaunch; 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-38@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-38@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-38@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-38@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-64@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-64@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-64@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-64@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-68@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-68@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-Notification@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-Notification@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-Notification@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-Notification@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@3x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@3x 1.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-38@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-38@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-38@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-38@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-60@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-60@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-64@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-64@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-64@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-64@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-68@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-68@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-76@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-83.5@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-Notification@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-Notification@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-Notification@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-Notification@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-Small-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-Small-40@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-Small-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-Small-40@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-Small@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Blue.appiconset/Icon-Small@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-38@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-38@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-38@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-38@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-60@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-60@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-64@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-64@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-64@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-64@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-68@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-68@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-76@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-83.5@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-Notification@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-Notification@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-Notification@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-Notification@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-Small-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-Small-40@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-Small-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-Small-40@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-Small@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_ElleKit.appiconset/Icon-Small@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-38@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-38@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-38@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-38@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-60@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-60@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-64@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-64@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-64@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-64@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-68@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-68@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-76@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-83.5@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-Notification@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-Notification@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-Notification@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-Notification@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-Small-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-Small-40@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-Small-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-Small-40@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-Small@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Purple.appiconset/Icon-Small@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-38@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-38@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-38@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-38@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-60@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-60@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-64@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-64@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-64@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-64@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-68@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-68@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-76@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-83.5@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-Notification@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-Notification@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-Notification@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-Notification@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-Small-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-Small-40@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-Small-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-Small-40@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-Small@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/AppIcon_Red.appiconset/Icon-Small@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Background/Background_Blue.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "blue.jpg", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Background/Background_Blue.imageset/blue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/Background/Background_Blue.imageset/blue.jpg -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Background/Background_ElleKit.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "ellekit.jpg", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Background/Background_ElleKit.imageset/ellekit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/Background/Background_ElleKit.imageset/ellekit.jpg -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Background/Background_Green.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "green.jpg", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Background/Background_Green.imageset/green.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/Background/Background_Green.imageset/green.jpg -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Background/Background_Purple.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "purple.jpg", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Background/Background_Purple.imageset/purple.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/Background/Background_Purple.imageset/purple.jpg -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Background/Background_Red.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "filename" : "red.jpg", 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Background/Background_Red.imageset/red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/Background/Background_Red.imageset/red.jpg -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Background/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Dopamine.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Dopamine.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Dopamine@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "Dopamine@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Dopamine.imageset/Dopamine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/Dopamine.imageset/Dopamine.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Dopamine.imageset/Dopamine@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/Dopamine.imageset/Dopamine@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Dopamine.imageset/Dopamine@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/Dopamine.imageset/Dopamine@3x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Loading.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Oval.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Loading.imageset/Oval.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/Loading.imageset/Oval.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Package Managers/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Package Managers/Sileo.imageset/AppIcon83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/Package Managers/Sileo.imageset/AppIcon83.5x83.5@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Package Managers/Sileo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "AppIcon83.5x83.5@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Package Managers/Zebra.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "icon_83.5@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/Package Managers/Zebra.imageset/icon_83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/Package Managers/Zebra.imageset/icon_83.5@2x.png -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/alpha-gradient.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Rectangle.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Application/Dopamine/Assets.xcassets/alpha-gradient.imageset/Rectangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Assets.xcassets/alpha-gradient.imageset/Rectangle.png -------------------------------------------------------------------------------- /Application/Dopamine/Dependencies/libgrabkernel2.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Dependencies/libgrabkernel2.a -------------------------------------------------------------------------------- /Application/Dopamine/Dependencies/libpartial.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Dependencies/libpartial.a -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/badRecovery/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | DPExploitFlavors 6 | 7 | default 8 | 9 | DPFlavorPriority 10 | 1000 11 | DPSupportedRanges 12 | 13 | 14 | Start 15 | 15.0 16 | End 17 | 15.4.1 18 | 19 | 20 | DPSupportInclude 21 | 22 | 23 | Builds 24 | 25 | 19F5047e 26 | 19F5057e 27 | 19F5062g 28 | 29 | 30 | 31 | 32 | 33 | DPExploitType 34 | PAC 35 | CFBundleDisplayName 36 | badRecovery 37 | 38 | 39 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/badRecovery/badRecovery.h: -------------------------------------------------------------------------------- 1 | // 2 | // badRecovery.h 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 25.01.24. 6 | // 7 | 8 | #ifndef badRecovery_h 9 | #define badRecovery_h 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | typedef struct { 17 | bool inited; 18 | thread_t gExploitThread; 19 | uint64_t gScratchMemKern; 20 | volatile uint64_t *gScratchMemMapped; 21 | volatile uint64_t *gReturnValMemMapped; 22 | arm_thread_state64_t gExploitThreadState; 23 | uint64_t gSpecialMemRegion; 24 | uint64_t gIntStack; 25 | uint64_t gOrigIntStack; 26 | uint64_t gReturnContext; 27 | uint64_t gACTPtr; 28 | uint64_t gACTVal; 29 | uint64_t gCPUData; 30 | } exploitThreadInfo; 31 | 32 | bool breakCFI(void); 33 | void deinitFugu15PACBypass(void); 34 | 35 | void fugu15_kexec_on_thread(exploitThreadInfo *info, kRegisterState *state); 36 | 37 | bool kexec_on_new_thread(kRegisterState *kState, thread_t *thread); 38 | 39 | uint64_t fugu15_kcall(uint64_t func, int argc, const uint64_t *argv); 40 | void fugu15_kexec(kRegisterState state); 41 | 42 | #endif /* badRecovery_h */ 43 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/dmaFail/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | DPExploitFlavors 6 | 7 | default 8 | 9 | DPFlavorPriority 10 | 1000 11 | DPSupportedRanges 12 | 13 | 14 | Start 15 | 15.0 16 | End 17 | 16.5.1 18 | 19 | 20 | DPSupportExclude 21 | 22 | 23 | Devices 24 | 25 | A15 26 | A16 27 | 28 | Builds 29 | 30 | 20F75 31 | 32 | 33 | 34 | DPSupportInclude 35 | 36 | 37 | Builds 38 | 39 | 20G5026e 40 | 20G5037d 41 | 20G5047d 42 | 20G5058d 43 | 44 | 45 | 46 | 47 | 48 | DPExploitType 49 | PPL 50 | CFBundleDisplayName 51 | dmaFail 52 | 53 | 54 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/dmaFail/dmaFail.h: -------------------------------------------------------------------------------- 1 | // 2 | // dmaFail.h 3 | // dmaFail 4 | // 5 | // Created by Lars Fröder on 13.01.24. 6 | // 7 | 8 | #import 9 | 10 | //! Project version number for dmaFail. 11 | FOUNDATION_EXPORT double dmaFailVersionNumber; 12 | 13 | //! Project version string for dmaFail. 14 | FOUNDATION_EXPORT const unsigned char dmaFailVersionString[]; 15 | 16 | // In this header, you should import all the public headers of your framework using statements like #import 17 | 18 | 19 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/kfd/kfd.h: -------------------------------------------------------------------------------- 1 | // 2 | // kfd.h 3 | // kfd 4 | // 5 | // Created by Lars Fröder on 11.01.24. 6 | // 7 | 8 | #import 9 | 10 | //! Project version number for kfd. 11 | FOUNDATION_EXPORT double kfdVersionNumber; 12 | 13 | //! Project version string for kfd. 14 | FOUNDATION_EXPORT const unsigned char kfdVersionString[]; 15 | 16 | // In this header, you should import all the public headers of your framework using statements like #import 17 | 18 | 19 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/multicast_bytecopy/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | DPExploitFlavors 6 | 7 | default 8 | 9 | DPFlavorPriority 10 | 950 11 | DPSupportExclude 12 | 13 | 14 | Devices 15 | 16 | A8 17 | A9 18 | iPad13,6 19 | iPad13,7 20 | iPad13,10 21 | iPad13,11 22 | 23 | 24 | 25 | DPSupportInclude 26 | 27 | 28 | Builds 29 | 30 | 19C5026i 31 | 32 | 33 | 34 | DPSupportedRanges 35 | 36 | 37 | End 38 | 15.1.1 39 | Start 40 | 15.0 41 | 42 | 43 | 44 | 45 | DPExploitType 46 | Kernel 47 | 48 | 49 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/multicast_bytecopy/exploit/IOGPU.h: -------------------------------------------------------------------------------- 1 | #ifndef __IOGPU_H__ 2 | #define __IOGPU_H__ 3 | 4 | #include "iokit.h" 5 | 6 | #include 7 | #include 8 | 9 | io_connect_t IOGPU_init(void); 10 | void IOGPU_exit(io_connect_t uc); 11 | 12 | uint32_t IOGPU_create_command_queue(io_connect_t uc, uint64_t member); 13 | 14 | int IOGPU_get_command_queue_extra_refills_needed(void); 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/multicast_bytecopy/exploit/IOSurfaceRoot.h: -------------------------------------------------------------------------------- 1 | #ifndef __IOSURFACEROOT_H__ 2 | #define __IOSURFACEROOT_H__ 3 | 4 | #include "iokit.h" 5 | 6 | #include 7 | #include 8 | 9 | io_connect_t IOSurfaceRoot_init(void); 10 | void IOSurfaceRoot_exit(io_connect_t uc); 11 | 12 | uint32_t IOSurfaceRoot_create_surface_fast(io_connect_t uc); 13 | 14 | kern_return_t IOSurfaceRoot_lookup_surface(io_connect_t uc, uint32_t surf_id); 15 | 16 | int IOSurfaceRoot_release_surface(io_connect_t uc, uint32_t surf_id); 17 | void IOSurfaceRoot_release_all(io_connect_t uc); 18 | 19 | uint32_t IOSurfaceRoot_get_surface_use_count(io_connect_t uc, uint32_t surf_id); 20 | 21 | void IOSurfaceRoot_set_compressed_tile_data_region_memory_used_of_plane(io_connect_t uc, uint32_t surf_id, uint64_t tile); 22 | 23 | uint32_t IOSurfaceRoot_cause_array_size_to_be_0x4000(void); 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/multicast_bytecopy/exploit/exploit.h: -------------------------------------------------------------------------------- 1 | #ifndef __EXPLOIT_H__ 2 | #define __EXPLOIT_H__ 3 | 4 | #include 5 | 6 | void exploitation_cleanup(void); 7 | int exploit_get_krw_and_kernel_base(uint64_t *kernel_base); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/multicast_bytecopy/exploit/kernel_base.h: -------------------------------------------------------------------------------- 1 | #ifndef __KERNEL_BASE_H__ 2 | #define __KERNEL_BASE_H__ 3 | 4 | #include 5 | #include 6 | 7 | uint64_t kernel_base_from_holder(mach_port_t holder, uint64_t holder_addr); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/multicast_bytecopy/exploit/kernel_rw.h: -------------------------------------------------------------------------------- 1 | #ifndef __KERNEL_RW_H__ 2 | #define __KERNEL_RW_H__ 3 | 4 | #define KERNEL_RW_SIZE_FAKE_ARRAY 0x4000 5 | 6 | #include "iokit.h" 7 | 8 | void kernel_rw_preinit(uint64_t kaddr, uint8_t *buf, size_t n); 9 | int kernel_rw_init(io_connect_t uc, uint32_t surf_id, int read_pipe, int write_pipe); 10 | 11 | uint32_t kread32(uint64_t kaddr); 12 | uint64_t kread64(uint64_t kaddr); 13 | 14 | void kwrite32(uint64_t kaddr, uint32_t val); 15 | void kwrite64(uint64_t kaddr, uint64_t val); 16 | 17 | #endif 18 | 19 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/multicast_bytecopy/exploit/mcast.h: -------------------------------------------------------------------------------- 1 | #ifndef __MCAST_H__ 2 | #define __MCAST_H__ 3 | 4 | extern int mcast_race_sock; 5 | 6 | void mcast_increase_race_reliability(void); 7 | int mcast_join_group(int ip); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/multicast_bytecopy/exploit/necp.c: -------------------------------------------------------------------------------- 1 | #include "necp.h" 2 | 3 | #include 4 | #include 5 | 6 | #pragma clang diagnostic ignored "-Wdeprecated-declarations" 7 | 8 | int necp_open(int flags) 9 | { 10 | return syscall(SYS_necp_open, flags); 11 | } 12 | 13 | int necp_client_action(int necp_fd, uint32_t action, uint8_t *client_id, size_t client_id_len, uint8_t *buffer, size_t buffer_size) 14 | { 15 | return syscall(SYS_necp_client_action, necp_fd, action, client_id, client_id_len, buffer, buffer_size); 16 | } 17 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/multicast_bytecopy/exploit/necp.h: -------------------------------------------------------------------------------- 1 | #ifndef __NECP_H__ 2 | #define __NECP_H__ 3 | 4 | #include 5 | #include 6 | 7 | int necp_open(int flags); 8 | int necp_client_action(int necp_fd, uint32_t action, uint8_t *client_id, size_t client_id_len, uint8_t *buffer, size_t buffer_size); 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/multicast_bytecopy/exploit/port_utils.h: -------------------------------------------------------------------------------- 1 | #ifndef __PORT_UTILS_H__ 2 | #define __PORT_UTILS_H__ 3 | 4 | #include 5 | 6 | mach_port_t port_new(void); 7 | 8 | void port_destroy(mach_port_t p); 9 | void port_deallocate(mach_port_t p); 10 | 11 | void port_destroy_n(mach_port_t *p, unsigned int count); 12 | void port_deallocate_n(mach_port_t *p, unsigned int count); 13 | 14 | int port_has_msg(mach_port_t p); 15 | int port_peek_trailer_size(mach_port_t p); 16 | 17 | void port_receive_msg(mach_port_t p, uint8_t *buf, unsigned int size); 18 | void port_receive_msg_n(mach_port_t *p, unsigned int count); 19 | 20 | void port_receive_msg_and_deallocate_n(mach_port_t *p, unsigned int count); 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/multicast_bytecopy/exploit/spray.h: -------------------------------------------------------------------------------- 1 | #ifndef __SPRAY_H__ 2 | #define __SPRAY_H__ 3 | 4 | #include 5 | #include 6 | 7 | mach_port_t spray_data_kalloc_kmsg_single(uint8_t *data, unsigned int size); 8 | mach_port_t *spray_data_kalloc_kmsg(uint8_t *data, unsigned int size, unsigned int count); 9 | void spray_data_kalloc_kmsg_on_ports(uint8_t *data, unsigned int size, unsigned int count, mach_port_t *ports); 10 | mach_port_t *spray_default_kalloc_ool_ports(unsigned int size, unsigned int count, mach_port_t *ool_ports); 11 | mach_port_t *spray_default_kalloc_ool_ports_with_data_kalloc_size(unsigned int size, unsigned int count, mach_port_t *ool_ports, unsigned int data_kalloc_size); 12 | 13 | void spray_default_kalloc_ool_ports_on_port(unsigned int size, unsigned int count, mach_port_t *ool_ports, mach_port_t p); 14 | void spray_default_kalloc_ool_ports_with_data_kalloc_size_on_port(unsigned int size, mach_port_t *ool_ports, unsigned int data_kalloc_size, mach_port_t p); 15 | int spray_default_kalloc_necp(int necp_fd, uint8_t *b, uint32_t sz); 16 | 17 | kern_return_t spray_kmsg_on_port(mach_port_t port, void *data, size_t size); 18 | 19 | mach_port_t *spray_ports(unsigned int count); 20 | mach_port_t *spray_ports_with_context(unsigned int count, uint64_t context); 21 | 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/multicast_bytecopy/exploit/xpaci.h: -------------------------------------------------------------------------------- 1 | // ptrauth.h replacement 2 | 3 | static uint64_t __attribute((naked)) __xpaci(uint64_t a) 4 | { 5 | asm(".long 0xDAC143E0"); // XPACI X0 6 | asm("ret"); 7 | } 8 | 9 | static uint64_t xpaci(uint64_t a) 10 | { 11 | // If a looks like a non-pac'd pointer just return it 12 | if ((a & 0xFFFFFF0000000000) == 0xFFFFFF0000000000) 13 | { 14 | return a; 15 | } 16 | 17 | return __xpaci(a); 18 | } 19 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/multicast_bytecopy/multicast_bytecopy.h: -------------------------------------------------------------------------------- 1 | // 2 | // multicast_bytecopy.h 3 | // multicast_bytecopy 4 | // 5 | // Created by Lars Fröder on 27.04.24. 6 | // 7 | 8 | #import 9 | 10 | //! Project version number for multicast_bytecopy. 11 | FOUNDATION_EXPORT double multicast_bytecopyVersionNumber; 12 | 13 | //! Project version string for multicast_bytecopy. 14 | FOUNDATION_EXPORT const unsigned char multicast_bytecopyVersionString[]; 15 | 16 | // In this header, you should import all the public headers of your framework using statements like #import 17 | 18 | 19 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | DPExploitFlavors 6 | 7 | default 8 | 9 | DPFlavorPriority 10 | 800 11 | DPSupportExclude 12 | 13 | 14 | Devices 15 | 16 | arm64 17 | 18 | 19 | 20 | DPSupportedRanges 21 | 22 | 23 | End 24 | 15.5 25 | Start 26 | 15.2 27 | 28 | 29 | 30 | 31 | DPExploitType 32 | Kernel 33 | 34 | 35 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/ANEDirectIn.h: -------------------------------------------------------------------------------- 1 | #ifndef _H_ANEDIRECTIN_H 2 | #define _H_ANEDIRECTIN_H 3 | 4 | #include "iokit.h" 5 | 6 | struct H11ANEDeviceInfoStruct { 7 | uint64_t fields[0x58/8]; 8 | }; 9 | 10 | typedef struct 11 | { 12 | uint64_t programHandle; 13 | uint64_t field_8; 14 | unsigned int procedureId; 15 | uint32_t field_14; 16 | uint64_t field_18; 17 | uint64_t field_20; 18 | unsigned int total_InputBuffers; 19 | char inputBufferSymbolIndex[256]; 20 | uint32_t inputBufferSurfaceId[255]; 21 | unsigned int total_OutputBuffers; 22 | char OutputBuffers[256]; 23 | uint32_t outputBufferSurfaceId[255]; 24 | unsigned int total_IntermediateBuffers; 25 | uint IntermediateBufferSurfaceId[3]; 26 | uint64_t callBack; 27 | uint64_t refCon; 28 | char field_A48; 29 | char field_A49; 30 | char field_A4A; 31 | char field_A4B; 32 | uint32_t weightsBufferSurfaceId; 33 | uint64_t EventsAddr; 34 | uint64_t field_A58; 35 | } H11ANEProgramRequestArgsStruct; 36 | 37 | kern_return_t do__ANEDriect_DeviceOpen(io_connect_t client,void *in); 38 | kern_return_t do__ANEDirect_ProgramSendRequest(io_connect_t client,mach_port_t port, void *address); 39 | 40 | #endif /* _H_ANEDIRECTIN_H */ 41 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/AppleNeuralEngine/AppleNeuralEngine-Structs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Thursday, September 24, 2020 at 12:37:44 AM British Summer Time 4 | * Operating System: Version 14.0 (Build 18A373) 5 | * Image Source: /System/Library/PrivateFrameworks/AppleNeuralEngine.framework/AppleNeuralEngine 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | typedef struct _NSZone* NSZoneRef; 10 | 11 | typedef struct os_unfair_lock_s { 12 | unsigned _os_unfair_lock_opaque; 13 | } os_unfair_lock_s; 14 | 15 | typedef struct __IOSurface* IOSurfaceRef; 16 | 17 | typedef struct { 18 | 19 | } SCD_Struct_AN3; 20 | 21 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/AppleNeuralEngine/AppleNeuralEngine.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 | #import 15 | #import 16 | #import 17 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/AppleNeuralEngine/NSCopying.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Thursday, September 24, 2020 at 12:37:44 AM British Summer Time 4 | * Operating System: Version 14.0 (Build 18A373) 5 | * Image Source: /System/Library/PrivateFrameworks/AppleNeuralEngine.framework/AppleNeuralEngine 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @protocol NSCopying 11 | @required 12 | -(id)copyWithZone:(NSZone*)arg1; 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/AppleNeuralEngine/NSSecureCoding.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Thursday, September 24, 2020 at 12:37:44 AM British Summer Time 4 | * Operating System: Version 14.0 (Build 18A373) 5 | * Image Source: /System/Library/PrivateFrameworks/AppleNeuralEngine.framework/AppleNeuralEngine 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @protocol NSSecureCoding 11 | @required 12 | +(BOOL)supportsSecureCoding; 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/AppleNeuralEngine/_ANECloneHelper.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Thursday, September 24, 2020 at 12:37:44 AM British Summer Time 4 | * Operating System: Version 14.0 (Build 18A373) 5 | * Image Source: /System/Library/PrivateFrameworks/AppleNeuralEngine.framework/AppleNeuralEngine 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @interface _ANECloneHelper : NSObject 11 | +(BOOL)shouldSkipCloneFor:(id)arg1 isEncryptedModel:(BOOL)arg2 ; 12 | +(id)cloneIfWritable:(id)arg1 isEncryptedModel:(BOOL)arg2 cloneDirectory:(id)arg3 ; 13 | @end 14 | 15 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/AppleNeuralEngine/_ANEDaemonProtocol.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Thursday, September 24, 2020 at 12:37:44 AM British Summer Time 4 | * Operating System: Version 14.0 (Build 18A373) 5 | * Image Source: /System/Library/PrivateFrameworks/AppleNeuralEngine.framework/AppleNeuralEngine 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @protocol _ANEDaemonProtocol 11 | @required 12 | -(void)compileModel:(id)arg1 sandboxExtension:(id)arg2 options:(id)arg3 qos:(unsigned)arg4 withReply:(/*^block*/id)arg5; 13 | -(void)loadModel:(id)arg1 sandboxExtension:(id)arg2 options:(id)arg3 qos:(unsigned)arg4 withReply:(/*^block*/id)arg5; 14 | -(void)unloadModel:(id)arg1 options:(id)arg2 qos:(unsigned)arg3 withReply:(/*^block*/id)arg4; 15 | -(void)compiledModelExistsFor:(id)arg1 withReply:(/*^block*/id)arg2; 16 | -(void)purgeCompiledModel:(id)arg1 withReply:(/*^block*/id)arg2; 17 | 18 | @end 19 | 20 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/AppleNeuralEngine/_ANEDataReporter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Thursday, September 24, 2020 at 12:37:44 AM British Summer Time 4 | * Operating System: Version 14.0 (Build 18A373) 5 | * Image Source: /System/Library/PrivateFrameworks/AppleNeuralEngine.framework/AppleNeuralEngine 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @interface _ANEDataReporter : NSObject 11 | +(void)addValue:(long long)arg1 forScalarKey:(id)arg2 ; 12 | +(void)setValue:(long long)arg1 forScalarKey:(id)arg2 ; 13 | +(void)clearScalarKey:(id)arg1 ; 14 | +(id)aggdKey:(id)arg1 ; 15 | +(id)reportClient:(id)arg1 modelName:(id)arg2 ; 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/AppleNeuralEngine/_ANEDeviceInfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Thursday, September 24, 2020 at 12:37:44 AM British Summer Time 4 | * Operating System: Version 14.0 (Build 18A373) 5 | * Image Source: /System/Library/PrivateFrameworks/AppleNeuralEngine.framework/AppleNeuralEngine 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @interface _ANEDeviceInfo : NSObject 11 | +(BOOL)isInternalBuild; 12 | +(BOOL)hasANE; 13 | +(id)bootArgs; 14 | +(id)buildVersion; 15 | +(id)aneSubType; 16 | +(BOOL)precompiledModelChecksDisabled; 17 | @end 18 | 19 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/AppleNeuralEngine/_ANEErrors.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Thursday, September 24, 2020 at 12:37:44 AM British Summer Time 4 | * Operating System: Version 14.0 (Build 18A373) 5 | * Image Source: /System/Library/PrivateFrameworks/AppleNeuralEngine.framework/AppleNeuralEngine 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @interface _ANEErrors : NSObject 11 | +(id)createErrorWithCode:(long long)arg1 description:(id)arg2 ; 12 | +(id)programInferenceOverflowErrorForMethod:(id)arg1 ; 13 | +(id)programInferenceOtherErrorForMethod:(id)arg1 ; 14 | +(id)entitlementErrorForMethod:(id)arg1 ; 15 | +(id)priorityErrorForMethod:(id)arg1 ; 16 | +(id)timeoutErrorForMethod:(id)arg1 ; 17 | +(id)programCreationErrorForMethod:(id)arg1 ; 18 | +(id)programLoadErrorForMethod:(id)arg1 ; 19 | +(id)missingCodeSigningErrorForMethod:(id)arg1 ; 20 | @end 21 | 22 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/AppleNeuralEngine/_ANEHashEncoding.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Thursday, September 24, 2020 at 12:37:44 AM British Summer Time 4 | * Operating System: Version 14.0 (Build 18A373) 5 | * Image Source: /System/Library/PrivateFrameworks/AppleNeuralEngine.framework/AppleNeuralEngine 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @interface _ANEHashEncoding : NSObject 11 | +(id)hexStringFor:(id)arg1 ; 12 | +(void)copySHA256For:(id)arg1 toBuffer:(char*)arg2 ; 13 | +(unsigned)hashFor:(id)arg1 seed:(unsigned)arg2 ; 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/AppleNeuralEngine/_ANEIOSurfaceObject.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Thursday, September 24, 2020 at 12:37:44 AM British Summer Time 4 | * Operating System: Version 14.0 (Build 18A373) 5 | * Image Source: /System/Library/PrivateFrameworks/AppleNeuralEngine.framework/AppleNeuralEngine 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | #import 11 | @interface _ANEIOSurfaceObject : NSObject { 12 | 13 | IOSurfaceRef _ioSurface; 14 | 15 | } 16 | 17 | @property (nonatomic,readonly) IOSurfaceRef ioSurface; //@synthesize ioSurface=_ioSurface - In the implementation block 18 | +(id)new; 19 | +(id)objectWithIOSurface:(IOSurfaceRef)arg1 ; 20 | +(IOSurfaceRef)createIOSurfaceWithWidth:(int)arg1 pixel_size:(int)arg2 height:(int)arg3 ; 21 | -(id)initWithIOSurface:(IOSurfaceRef)arg1 ; 22 | -(IOSurfaceRef)ioSurface; 23 | -(void)dealloc; 24 | -(id)init; 25 | -(id)description; 26 | @end 27 | 28 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/AppleNeuralEngine/_ANELog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Thursday, September 24, 2020 at 12:37:44 AM British Summer Time 4 | * Operating System: Version 14.0 (Build 18A373) 5 | * Image Source: /System/Library/PrivateFrameworks/AppleNeuralEngine.framework/AppleNeuralEngine 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @interface _ANELog : NSObject 11 | +(id)tool; 12 | +(id)daemon; 13 | +(id)common; 14 | +(id)service; 15 | +(id)framework; 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/AppleNeuralEngine/_ANEPerformanceStats.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Thursday, September 24, 2020 at 12:37:44 AM British Summer Time 4 | * Operating System: Version 14.0 (Build 18A373) 5 | * Image Source: /System/Library/PrivateFrameworks/AppleNeuralEngine.framework/AppleNeuralEngine 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @class NSData; 11 | 12 | @interface _ANEPerformanceStats : NSObject { 13 | 14 | unsigned long long _hwExecutionTime; 15 | NSData* _perfCounterData; 16 | 17 | } 18 | 19 | @property (nonatomic,readonly) NSData * perfCounterData; //@synthesize perfCounterData=_perfCounterData - In the implementation block 20 | @property (nonatomic,readonly) unsigned long long hwExecutionTime; //@synthesize hwExecutionTime=_hwExecutionTime - In the implementation block 21 | +(id)new; 22 | +(unsigned)driverMaskForANEFMask:(unsigned)arg1 ; 23 | +(id)statsWithRequestPerformanceBuffer:(void*)arg1 statsBufferSize:(unsigned*)arg2 ; 24 | +(id)statsWithHardwareExecutionNS:(unsigned long long)arg1 ; 25 | -(id)init; 26 | -(id)description; 27 | -(unsigned long long)hwExecutionTime; 28 | -(void)emitPerfcounterSignpostsWithModelStringID:(unsigned long long)arg1 ; 29 | -(id)performanceCounters; 30 | -(id)initWithHardwareExecution:(unsigned long long)arg1 perfCounterData:(id)arg2 ; 31 | -(id)initWithRequestPerformanceBuffer:(void*)arg1 statsBufferSize:(unsigned*)arg2 ; 32 | -(NSData *)perfCounterData; 33 | -(id)stringForPerfCounter:(int)arg1 ; 34 | @end 35 | 36 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/AppleNeuralEngine/_ANEQoSMapper.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Thursday, September 24, 2020 at 12:37:44 AM British Summer Time 4 | * Operating System: Version 14.0 (Build 18A373) 5 | * Image Source: /System/Library/PrivateFrameworks/AppleNeuralEngine.framework/AppleNeuralEngine 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @interface _ANEQoSMapper : NSObject 11 | +(unsigned)aneUserInteractiveTaskQoS; 12 | +(unsigned)aneRealTimeTaskQoS; 13 | +(unsigned)aneUserInitiatedTaskQoS; 14 | +(unsigned)aneDefaultTaskQoS; 15 | +(unsigned)aneUtilityTaskQoS; 16 | +(unsigned)aneBackgroundTaskQoS; 17 | +(unsigned long long)queueIndexForQoS:(unsigned)arg1 ; 18 | +(unsigned long long)realTimeQueueIndex; 19 | +(int)programPriorityForQoS:(unsigned)arg1 ; 20 | +(int)realTimeProgramPriority; 21 | @end 22 | 23 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/AppleNeuralEngine/_ANEStrings.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 1.0 3 | * on Thursday, September 24, 2020 at 12:37:44 AM British Summer Time 4 | * Operating System: Version 14.0 (Build 18A373) 5 | * Image Source: /System/Library/PrivateFrameworks/AppleNeuralEngine.framework/AppleNeuralEngine 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos. 7 | */ 8 | 9 | 10 | @interface _ANEStrings : NSObject 11 | +(id)cacheDirectory; 12 | +(id)machServiceName; 13 | +(id)errorDomainGeneric; 14 | +(id)testing_cacheDirectory; 15 | +(id)testing_inputDirectory; 16 | +(id)testing_modelDirectory; 17 | +(id)cacheDeleteServiceName; 18 | +(id)machServiceNamePrivate; 19 | +(id)modelCacheDirectoryWithBuildVersion:(id)arg1 ; 20 | +(id)tempDirectory; 21 | +(id)cloneDirectory; 22 | +(id)errorDomainCompiler; 23 | +(id)errorDomainEspresso; 24 | +(id)restrictedAccessEntitlement; 25 | +(id)compilerServiceAccessEntitlement; 26 | +(id)modelBinaryName; 27 | +(id)defaultCompilerOptionsFilename; 28 | +(id)dataVaultStorageClass; 29 | +(id)testing_cacheDirectoryWithSuffix:(id)arg1 ; 30 | +(id)testing_cacheDirectoryWithSuffix:(id)arg1 buildVersion:(id)arg2 ; 31 | +(id)testing_tempDirectory:(id)arg1 ; 32 | +(id)testing_cloneDirectory:(id)arg1 ; 33 | +(id)testing_modelDirectory:(id)arg1 ; 34 | +(id)testing_modelNames; 35 | +(id)testing_encryptedModelNames; 36 | +(id)testing_dataVaultStorageClass; 37 | @end 38 | 39 | -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/exploit/model_tmp.hwx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Exploits/weightBufs/exploit/model_tmp.hwx -------------------------------------------------------------------------------- /Application/Dopamine/Exploits/weightBufs/weightBufs.h: -------------------------------------------------------------------------------- 1 | // 2 | // weightBufs.h 3 | // weightBufs 4 | // 5 | // Created by Lars Fröder on 27.04.24. 6 | // 7 | 8 | #import 9 | 10 | //! Project version number for weightBufs. 11 | FOUNDATION_EXPORT double weightBufsVersionNumber; 12 | 13 | //! Project version string for weightBufs. 14 | FOUNDATION_EXPORT const unsigned char weightBufsVersionString[]; 15 | 16 | // In this header, you should import all the public headers of your framework using statements like #import 17 | 18 | 19 | -------------------------------------------------------------------------------- /Application/Dopamine/Extensions/NSData+Hex.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+UIImage_Blur.h 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 01.10.23. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface NSData (Hex) 13 | 14 | - (NSString *)hexString; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Application/Dopamine/Extensions/NSData+Hex.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+Blur.m 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 01.10.23. 6 | // 7 | 8 | #import 9 | #import "NSData+Hex.h" 10 | 11 | @implementation NSData (Hex) 12 | 13 | - (NSString *)hexString { 14 | const unsigned char *dataBuffer = (const unsigned char *)[self bytes]; 15 | if (!dataBuffer) return [NSString string]; 16 | 17 | NSUInteger dataLength = [self length]; 18 | NSMutableString *hexString = [NSMutableString stringWithCapacity:(dataLength * 2)]; 19 | 20 | for (int i = 0; i < dataLength; ++i) { 21 | [hexString appendFormat:@"%02lX", (unsigned long)dataBuffer[i]]; 22 | } 23 | 24 | return hexString; 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Application/Dopamine/Extensions/NSString+Version.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+Version.h 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 12.06.24. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface NSString (Version) 13 | 14 | - (NSInteger)numericalVersionRepresentation; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Application/Dopamine/Extensions/NSString+Version.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+Version.h 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 12.06.24. 6 | // 7 | 8 | #import 9 | 10 | @implementation NSString (Version) 11 | 12 | - (NSInteger)numericalVersionRepresentation 13 | { 14 | NSInteger numericalRepresentation = 0; 15 | 16 | NSArray *components = [self componentsSeparatedByCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]]; 17 | while (components.count < 3) 18 | components = [components arrayByAddingObject:@"0"]; 19 | 20 | numericalRepresentation |= [components[0] integerValue] << 16; 21 | numericalRepresentation |= [components[1] integerValue] << 8; 22 | numericalRepresentation |= [components[2] integerValue]; 23 | return numericalRepresentation; 24 | } 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Application/Dopamine/Extensions/UIImage+Blur.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+UIImage_Blur.h 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 01.10.23. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface UIImage (Blur) 13 | 14 | - (instancetype)imageWithBlur:(float)radius; 15 | - (instancetype)imageWithHue:(float)hue; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Application/Dopamine/Extensions/UIImage+Blur.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+Blur.m 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 01.10.23. 6 | // 7 | 8 | #import 9 | #import "UIImage+Blur.h" 10 | #import 11 | 12 | @implementation UIImage (Blur) 13 | 14 | - (instancetype)imageWithBlur:(float)radius 15 | { 16 | CIImage *ciImage = [CIImage imageWithCGImage:self.CGImage]; 17 | CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"]; 18 | [filter setDefaults]; 19 | [filter setValue:ciImage forKey:kCIInputImageKey]; 20 | [filter setValue:@(radius) forKey:kCIInputRadiusKey]; 21 | 22 | CIImage *outputImage = [filter outputImage]; 23 | CIContext *context = [CIContext contextWithOptions:nil]; 24 | CGImageRef cgImg = [context createCGImage:outputImage fromRect:[ciImage extent]]; 25 | 26 | return [UIImage imageWithCGImage:cgImg]; 27 | 28 | } 29 | 30 | - (instancetype)imageWithHue:(float)hue 31 | { 32 | CIImage *ciImage = [CIImage imageWithCGImage:self.CGImage]; 33 | CIFilter *filter = [CIFilter filterWithName:@"CIHueAdjust"]; 34 | [filter setDefaults]; 35 | [filter setValue:ciImage forKey:kCIInputImageKey]; 36 | [filter setValue:@(hue) forKey:kCIInputAngleKey]; 37 | 38 | CIImage *outputImage = [filter outputImage]; 39 | CIContext *context = [CIContext contextWithOptions:nil]; 40 | CGImageRef cgImg = [context createCGImage:outputImage fromRect:[ciImage extent]]; 41 | 42 | return [UIImage imageWithCGImage:cgImg]; 43 | } 44 | 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Application/Dopamine/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UIApplicationSceneManifest 6 | 7 | UIApplicationSupportsMultipleScenes 8 | 9 | UISceneConfigurations 10 | 11 | UIWindowSceneSessionRoleApplication 12 | 13 | 14 | UISceneConfigurationName 15 | Default Configuration 16 | UISceneDelegateClassName 17 | DOSceneDelegate 18 | 19 | 20 | 21 | 22 | UIViewControllerBasedStatusBarAppearance 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Application/Dopamine/Jailbreak/DOBootstrapper.h: -------------------------------------------------------------------------------- 1 | // 2 | // Bootstrapper.h 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 09.01.24. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOBootstrapper : NSObject 13 | { 14 | NSURLSession *_urlSession; 15 | NSURLSessionDownloadTask *_bootstrapDownloadTask; 16 | void (^_downloadCompletionBlock)(NSURL * _Nullable location, NSError * _Nullable error); 17 | } 18 | 19 | - (void)prepareBootstrapWithCompletion:(void (^)(NSError *))completion; 20 | - (NSError *)ensurePrivatePrebootIsWritable; 21 | - (NSError *)installPackageManagers; 22 | - (NSError *)finalizeBootstrap; 23 | - (NSError *)deleteBootstrap; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /Application/Dopamine/Jailbreak/DOExploit.h: -------------------------------------------------------------------------------- 1 | // 2 | // Exploit.h 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 10.01.24. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | typedef enum { 13 | EXPLOIT_TYPE_KERNEL = 0, 14 | EXPLOIT_TYPE_PAC, 15 | EXPLOIT_TYPE_PPL, 16 | EXPLOIT_TYPE_COUNT, 17 | } ExploitType; 18 | 19 | @interface DOExploit : NSObject 20 | { 21 | void *_handle; 22 | NSDictionary *_flavorInfo; 23 | BOOL _supportLoaded; 24 | BOOL _supported; 25 | } 26 | 27 | @property (nonatomic) NSString *name; 28 | @property (nonatomic) NSString *identifier; 29 | @property (nonatomic) NSString *flavorName; 30 | @property (nonatomic) NSString *executablePath; 31 | @property (nonatomic) uint64_t priority; 32 | @property (nonatomic) ExploitType type; 33 | 34 | @property (nonatomic, readonly) NSString *displayName; 35 | 36 | - (instancetype)initWithPath:(NSString *)exploitPath info:(NSDictionary *)exploitInfo flavorName:(NSString *)flavorName flavorDictionary:(NSDictionary *)flavorInfo; 37 | 38 | - (BOOL)isSupported; 39 | 40 | - (int)load; 41 | - (int)run; 42 | - (int)cleanup; 43 | 44 | @end 45 | 46 | NS_ASSUME_NONNULL_END 47 | -------------------------------------------------------------------------------- /Application/Dopamine/Jailbreak/DOExploitManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // ExploitManager.h 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 09.01.24. 6 | // 7 | 8 | #import 9 | #import "DOExploit.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface DOExploitManager : NSObject 14 | { 15 | DOExploit *_preferredExploitForType[EXPLOIT_TYPE_COUNT]; 16 | } 17 | 18 | @property (nonatomic) NSSet *allExploits; 19 | @property (nonatomic) NSMutableArray *activeExploits; 20 | 21 | @property (nonatomic, readonly) DOExploit *preferredKernelExploit; 22 | @property (nonatomic, readonly) DOExploit *preferredPACBypass; 23 | @property (nonatomic, readonly) DOExploit *preferredPPLBypass; 24 | 25 | @property (nonatomic, readonly) DOExploit *selectedKernelExploit; 26 | @property (nonatomic, readonly) DOExploit *selectedPACBypass; 27 | @property (nonatomic, readonly) DOExploit *selectedPPLBypass; 28 | 29 | 30 | + (instancetype)sharedManager; 31 | 32 | - (NSSet *)availableExploitsForType:(ExploitType)type; 33 | - (int)cleanUpExploits; 34 | 35 | @end 36 | 37 | NS_ASSUME_NONNULL_END 38 | -------------------------------------------------------------------------------- /Application/Dopamine/Jailbreak/DOJailbreaker.h: -------------------------------------------------------------------------------- 1 | // 2 | // Jailbreaker.h 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 10.01.24. 6 | // 7 | 8 | #import 9 | 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface DOJailbreaker : NSObject 15 | { 16 | xpc_object_t _systemInfoXdict; 17 | } 18 | 19 | - (void)runWithError:(NSError **)errOut didRemoveJailbreak:(BOOL*)didRemove showLogs:(BOOL *)showLogs; 20 | - (void)finalize; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Application/Dopamine/Jailbreak/DOPreferenceManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // PreferenceManager.h 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 13.01.24. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOPreferenceManager : NSObject 13 | { 14 | NSString *_preferencesPath; 15 | NSMutableDictionary *_preferences; 16 | } 17 | 18 | + (instancetype)sharedManager; 19 | 20 | - (id)preferenceValueForKey:(NSString *)key; 21 | - (BOOL)boolPreferenceValueForKey:(NSString *)key fallback:(BOOL)fallback; 22 | 23 | - (void)setPreferenceValue:(NSObject *)obj forKey:(NSString *)key; 24 | - (void)removePreferenceValueForKey:(NSString *)key; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /Application/Dopamine/Resources/.gitignore: -------------------------------------------------------------------------------- 1 | bootstrap_*.tar.zst 2 | -------------------------------------------------------------------------------- /Application/Dopamine/Resources/LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023-2024 Lars Fröder (opa334) 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 | -------------------------------------------------------------------------------- /Application/Dopamine/Resources/LICENSE_ChOma.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Lars Fröder 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 | -------------------------------------------------------------------------------- /Application/Dopamine/Resources/LICENSE_ElleKit.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2022 Évelyne Bélanger All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above 10 | copyright notice, this list of conditions and the following disclaimer 11 | in the documentation and/or other materials provided with the 12 | distribution. 13 | * Neither ElleKit nor the names of its 14 | contributors may be used to endorse or promote products derived from 15 | this software without specific prior written permission. 16 | 17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /Application/Dopamine/Resources/LICENSE_Fugu15.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Pinauten GmbH 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 | -------------------------------------------------------------------------------- /Application/Dopamine/Resources/LICENSE_Fugu15_Rootful.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022/2023 Pinauten GmbH 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 | -------------------------------------------------------------------------------- /Application/Dopamine/Resources/LICENSE_Procursus.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2020-2023 Procursus Team 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any 4 | purpose with or without fee is hereby granted. 5 | 6 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 7 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 8 | AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 9 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 10 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 11 | OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 12 | PERFORMANCE OF THIS SOFTWARE. 13 | -------------------------------------------------------------------------------- /Application/Dopamine/Resources/LICENSE_XPF.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Lars Fröder 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 | -------------------------------------------------------------------------------- /Application/Dopamine/Resources/LICENSE_kfd.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Félix Poulin-Bélanger 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 | -------------------------------------------------------------------------------- /Application/Dopamine/Resources/LICENSE_libgrabkernel2.md: -------------------------------------------------------------------------------- 1 | Copyright 2024 Alfie CG 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /Application/Dopamine/Resources/LICENSE_opainject.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Lars Fröder 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 | -------------------------------------------------------------------------------- /Application/Dopamine/Resources/LICENSE_weightBufs.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Mohamed Ghannam 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. -------------------------------------------------------------------------------- /Application/Dopamine/Resources/download_bootstraps.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | 3 | curl -L https://apt.procurs.us/bootstraps/1800/bootstrap-iphoneos-arm64.tar.zst --output bootstrap_1800.tar.zst 4 | curl -L https://apt.procurs.us/bootstraps/1900/bootstrap-iphoneos-arm64.tar.zst --output bootstrap_1900.tar.zst 5 | -------------------------------------------------------------------------------- /Application/Dopamine/Resources/sileo.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Resources/sileo.deb -------------------------------------------------------------------------------- /Application/Dopamine/Resources/zebra.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/Application/Dopamine/Resources/zebra.deb -------------------------------------------------------------------------------- /Application/Dopamine/UI/ActionMenu/DOActionMenuButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOActionButton.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 07/01/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOActionMenuButton : UIButton 13 | 14 | @property (nonatomic) BOOL bottomSeparator; 15 | 16 | +(DOActionMenuButton*)buttonWithAction:(UIAction *)action chevron:(BOOL)chevron; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/ActionMenu/DOActionMenuDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOActionMenuDelegate.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 13/01/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @protocol DOActionMenuDelegate 13 | 14 | - (BOOL)actionMenuShowsChevronForAction:(UIAction *)action; 15 | - (BOOL)actionMenuActionIsEnabled:(UIAction *)action; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/ActionMenu/DOActionMenuView.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOActionMenuView.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 04/01/2024. 6 | // 7 | 8 | #import 9 | #import "DOActionMenuDelegate.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface DOActionMenuView : UIView 14 | 15 | @property (atomic) UIStackView *buttonsView; 16 | @property (atomic) id delegate; 17 | @property (nonatomic) NSArray *actions; 18 | 19 | - (instancetype)initWithActions:(NSArray *)actions delegate:(id)delegate; 20 | - (void)hide; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/DOGlobalAppearance.h: -------------------------------------------------------------------------------- 1 | // 2 | // GlobalAppearance.h 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 10.10.23. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | #define UI_IPAD_MAX_WIDTH 600 14 | #define UI_MODAL_PADDING 30 15 | #define UI_PADDING 30 16 | //Action Menu 17 | #define UI_INNER_PADDING 20 18 | #define UI_INNER_PADDING_TINY 10 19 | #define UI_INNER_TOP_PADDING 5 20 | #define UI_ACTION_HEIGHT 73 21 | #define UI_ACTION_HEIGHT_HOME_BTN 65 22 | #define UI_ACTION_HEIGHT_TINY 52 23 | 24 | #define SE_PHONE_SIZE_CONST 568 25 | 26 | @interface DOGlobalAppearance : NSObject 27 | 28 | + (UIImageSymbolConfiguration *)smallIconImageConfiguration; 29 | + (UIButtonConfiguration *)defaultButtonConfiguration; 30 | + (UIButtonConfiguration *)defaultButtonConfigurationWithImagePadding:(CGFloat)imagePadding; 31 | + (NSAttributedString*)mainSubtitleString:(NSString*)string; 32 | + (NSAttributedString*)secondarySubtitleString:(NSString*)string; 33 | + (BOOL)isHomeButtonDevice; 34 | + (UIColor*)windowColorWithAlpha:(float)alpha; 35 | + (BOOL)isRTL; 36 | + (BOOL)isSmallDevice; 37 | 38 | @end 39 | 40 | NS_ASSUME_NONNULL_END 41 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/DOHeaderView.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOHeaderView.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 04/01/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOHeaderView : UIView 13 | 14 | -(id)initWithImage:(UIImage *)image subtitles:(NSArray *)subtitles; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/DOJailbreakButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOJailbreakButton.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 13/01/2024. 6 | // 7 | 8 | #import 9 | #import "DOActionMenuButton.h" 10 | #import "DOLyricsLogView.h" 11 | #import "DODebugLogView.h" 12 | #import "DOPkgManagerPickerView.h" 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface DOJailbreakButton : UIView 18 | 19 | @property DOActionMenuButton *button; 20 | @property UIView *logView; 21 | @property DOPkgManagerPickerView *pkgManagerPickerView; 22 | 23 | @property (nonatomic, getter=isEnabled) BOOL enabled; 24 | @property (nonatomic) BOOL didExpand; 25 | @property (nonatomic, assign) pthread_mutex_t canStartJailbreak; 26 | 27 | - (instancetype)initWithAction:(UIAction *)actions; 28 | - (void)expandButton:(NSArray *)constraints; 29 | 30 | - (void)lockMutex; 31 | - (void)unlockMutex; 32 | 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/DOMainViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOMainViewController.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 08/01/2024. 6 | // 7 | 8 | #import 9 | #import "DOActionMenuDelegate.h" 10 | #import "DOHeaderView.h" 11 | #import "DOGlobalAppearance.h" 12 | #import "DOActionMenuView.h" 13 | #import "DOCreditsViewController.h" 14 | #import "DOSettingsController.h" 15 | #import "DOJailbreakButton.h" 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | @interface DOMainViewController : UIViewController 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/DONavigationController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DONavigationController.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 04/01/2024. 6 | // 7 | 8 | #import 9 | #import "UIImage+Blur.h" 10 | #import "DOMainViewController.h" 11 | #import "Transition/DOModalTransitionScale.h" 12 | #import "Transition/DOModalTransitionPush.h" 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @interface DONavigationController : UINavigationController 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Log/DODebugLogView.h: -------------------------------------------------------------------------------- 1 | // 2 | // DODebugLogView.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 23/01/2024. 6 | // 7 | 8 | #import 9 | #import "DOLogViewProtocol.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface DODebugLogView : UIView 14 | 15 | @property (nonatomic, strong) UITextView *textView; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Log/DOLogCrashViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOLogCrashViewController.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 14/02/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOLogCrashViewController : UIViewController 13 | { 14 | UITextView *_logView; 15 | } 16 | 17 | - (id)initWithTitle:(NSString*)title; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Log/DOLogViewProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOLogViewProtocol.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 13/01/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @protocol DOLogViewProtocol 13 | 14 | -(void)showLog:(NSString *)log; 15 | -(void)didComplete; 16 | 17 | @optional 18 | - (void)updateLog:(NSString *)log; 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Log/DOLyricsLogItemView.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOLyricsLogItemView.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 18/01/2024. 6 | // 7 | 8 | #import 9 | #import "DOLoadingIndicator.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface DOLyricsLogItemView : UIView 14 | 15 | @property (nonatomic) UILabel *label; 16 | @property (nonatomic) DOLoadingIndicator *loadingIndicator; 17 | @property (nonatomic) BOOL completed; 18 | @property (nonatomic) UIImpactFeedbackGenerator *feedbackGenerator; 19 | 20 | @property (nonatomic) UIImage *completedImage; 21 | @property (nonatomic) UIImage *failedImage; 22 | @property (nonatomic) UIImage *successImage; 23 | 24 | - (id)initWithString:(NSString *)string completedImage:(UIImage *)completedImage failedImage:(UIImage *)failedImage successImage:(UIImage *)successImage; 25 | - (void)setCompleted; 26 | - (void)setFailed; 27 | - (void)setSuccess; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Log/DOLyricsLogView.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOLyricsLogView.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 13/01/2024. 6 | // 7 | 8 | #import 9 | #import "DOLogViewProtocol.h" 10 | #import "DOLoadingIndicator.h" 11 | #import "DOLyricsLogItemView.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | /// They're just called lyrics log view because they remind me of apple music lyrics 🤫 16 | @interface DOLyricsLogView : UIView 17 | { 18 | UIImage *_checkmarkImage; 19 | UIImage *_exclamationMarkImage; 20 | UIImage *_unlockedImage; 21 | } 22 | 23 | @property (nonatomic, strong) UIStackView *stackView; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Log/DOProgressiveBlurView.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOProgressiveBlurView.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 18/01/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOProgressiveBlurView : UIVisualEffectView 13 | 14 | - (instancetype)initWithGradientMask:(UIImage *)gradientMask maxBlurRadius:(CGFloat)maxBlurRadius; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Log/Indicator/DODoubleHelixIndicator.h: -------------------------------------------------------------------------------- 1 | // 2 | // DODoubleHelixIndicator.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 18/01/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DODoubleHelixIndicator : UIView 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Log/Indicator/DOLoadingIndicator.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOLoadingIndicator.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 18/01/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOLoadingIndicator : UIView 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Log/Indicator/DOLoadingIndicator.m: -------------------------------------------------------------------------------- 1 | // 2 | // DOLoadingIndicator.m 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 18/01/2024. 6 | // 7 | 8 | #import "DOLoadingIndicator.h" 9 | 10 | @implementation DOLoadingIndicator 11 | 12 | -(id)init { 13 | if (self = [super init]) { 14 | UIImage *image = [UIImage imageNamed:@"Loading"]; 15 | UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 16 | imageView.translatesAutoresizingMaskIntoConstraints = NO; 17 | [self addSubview:imageView]; 18 | [NSLayoutConstraint activateConstraints:@[ 19 | [imageView.leadingAnchor constraintEqualToAnchor:self.leadingAnchor], 20 | [imageView.trailingAnchor constraintEqualToAnchor:self.trailingAnchor], 21 | [imageView.topAnchor constraintEqualToAnchor:self.topAnchor], 22 | [imageView.bottomAnchor constraintEqualToAnchor:self.bottomAnchor], 23 | ]]; 24 | 25 | CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; 26 | animation.fromValue = @0.0; 27 | animation.toValue = @(2 * M_PI); 28 | animation.duration = 1.0; 29 | animation.repeatCount = INFINITY; 30 | [imageView.layer addAnimation:animation forKey:@"rotationAnimation"]; 31 | } 32 | return self; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/PkgManagers/DOAppSwitch.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOAppSwitch.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 08/02/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOAppSwitch : UIView 13 | 14 | @property (nonatomic, assign) BOOL selected; 15 | @property (nonatomic) void (^onSwitch)(BOOL); 16 | 17 | -(id)initWithIcon:(UIImage *)icon title:(NSString *)title; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/PkgManagers/DOPkgManagerPickerView.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOPkgManagerPickerView.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 08/02/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOPkgManagerPickerView : UIView 13 | 14 | -(id)initWithCallback:(void (^)(BOOL))callback; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/PkgManagers/DOPkgManagerPickerViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOPkgManagerPickerViewController.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 11/02/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOPkgManagerPickerViewController : UIViewController 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/PkgManagers/DOPkgManagerPickerViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // DOPkgManagerPickerViewController.m 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 11/02/2024. 6 | // 7 | 8 | #import "DOPkgManagerPickerViewController.h" 9 | #import "DOPkgManagerPickerView.h" 10 | #import "DOEnvironmentManager.h" 11 | 12 | 13 | @interface DOPkgManagerPickerViewController () 14 | 15 | @end 16 | 17 | @implementation DOPkgManagerPickerViewController 18 | 19 | - (void)viewDidLoad { 20 | [super viewDidLoad]; 21 | DOPkgManagerPickerView *picker = [[DOPkgManagerPickerView alloc] initWithCallback:^(BOOL success) { 22 | dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 23 | [[DOEnvironmentManager sharedManager] reinstallPackageManagers]; 24 | dispatch_async(dispatch_get_main_queue(), ^{ 25 | [self.navigationController popViewControllerAnimated:YES]; 26 | }); 27 | }); 28 | }]; 29 | picker.translatesAutoresizingMaskIntoConstraints = NO; 30 | [self.view addSubview:picker]; 31 | [NSLayoutConstraint activateConstraints:@[ 32 | [picker.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor], 33 | [picker.trailingAnchor constraintEqualToAnchor:self.view.trailingAnchor], 34 | [picker.topAnchor constraintEqualToAnchor:self.view.topAnchor], 35 | [picker.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor] 36 | ]]; 37 | } 38 | 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/PkgManagers/PkgManagers.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Display Name 7 | Sileo 8 | Key 9 | org.coolstar.SileoStore 10 | Icon 11 | Sileo 12 | Package 13 | sileo.deb 14 | 15 | 16 | Display Name 17 | Zebra 18 | Key 19 | xyz.willy.Zebra 20 | Icon 21 | Zebra 22 | Package 23 | zebra.deb 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Settings/DOCreditsViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOCreditsViewController.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 08/01/2024. 6 | // 7 | 8 | #import 9 | #import 10 | #import 11 | #import "DOPSListController.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface DOCreditsViewController : DOPSListController 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Settings/DOCreditsViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // DOCreditsViewController.m 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 08/01/2024. 6 | // 7 | 8 | #import "DOCreditsViewController.h" 9 | #import "DOLicenseViewController.h" 10 | #import "DOUIManager.h" 11 | #import "DOEnvironmentManager.h" 12 | #import 13 | 14 | @interface DOCreditsViewController () 15 | 16 | @end 17 | 18 | @implementation DOCreditsViewController 19 | 20 | - (void)viewDidLoad 21 | { 22 | [super viewDidLoad]; 23 | } 24 | 25 | - (id)specifiers 26 | { 27 | if(_specifiers == nil) { 28 | _specifiers = [self loadSpecifiersFromPlistName:@"Credits" target:self]; 29 | 30 | PSSpecifier *headerSpecifier = _specifiers[0]; 31 | [headerSpecifier setProperty:[NSString stringWithFormat:@"Dopamine %@ - %@", [DOEnvironmentManager sharedManager].appVersionDisplayString, DOLocalizedString(@"Menu_Credits_Title")] forKey:@"title"]; 32 | } 33 | return _specifiers; 34 | } 35 | 36 | - (void)openSourceCode 37 | { 38 | [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://github.com/opa334/Dopamine"] options:@{} completionHandler:nil]; 39 | } 40 | 41 | - (void)openDiscord 42 | { 43 | [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://discord.gg/jb"] options:@{} completionHandler:nil]; 44 | } 45 | 46 | - (void)openLicense 47 | { 48 | [self.navigationController pushViewController:[[DOLicenseViewController alloc] init] animated:YES]; 49 | } 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Settings/DOLicenseViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOLicenseViewController.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 13/02/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOLicenseViewController : UIViewController 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Settings/DOSettingsController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOSettingsController.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 08/01/2024. 6 | // 7 | 8 | #import 9 | #import 10 | #import 11 | #import 12 | #import "DOPSListController.h" 13 | #import "DOExploit.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface DOSettingsController : DOPSListController 18 | { 19 | NSArray *_availableKernelExploits; 20 | NSArray *_availablePACBypasses; 21 | NSArray *_availablePPLBypasses; 22 | NSString *_lastKnownTheme; 23 | } 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Settings/PSLists/DOPSExploitListItemsController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOPSExploitListItemsControllerViewController.h 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 29.04.24. 6 | // 7 | 8 | #import "DOPSListItemsController.h" 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOPSExploitListItemsController : DOPSListItemsController 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Settings/PSLists/DOPSExploitListItemsController.m: -------------------------------------------------------------------------------- 1 | // 2 | // DOPSExploitListItemsControllerViewController.m 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 29.04.24. 6 | // 7 | 8 | #import "DOPSExploitListItemsController.h" 9 | #import "DOUIManager.h" 10 | 11 | @interface DOPSExploitListItemsController () 12 | 13 | @end 14 | 15 | @implementation DOPSExploitListItemsController 16 | 17 | - (NSArray *)specifiers 18 | { 19 | if (!_specifiers) { 20 | _specifiers = [super specifiers]; 21 | NSString *recommendedIdentifier = [[self specifier] propertyForKey:@"recommendedExploitIdentifier"]; 22 | for (PSSpecifier *specifier in _specifiers) { 23 | if ([specifier.identifier isEqualToString:recommendedIdentifier]) { 24 | specifier.name = [NSString stringWithFormat:@"%@ (%@)", specifier.name, DOLocalizedString(@"Recommended")]; 25 | } 26 | } 27 | } 28 | return _specifiers; 29 | } 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Settings/PSLists/DOPSJetsamListItemsController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOPSExploitListItemsControllerViewController.h 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 29.04.24. 6 | // 7 | 8 | #import "DOPSListItemsController.h" 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOPSJetsamListItemsController : DOPSListItemsController 13 | 14 | @end 15 | 16 | NS_ASSUME_NONNULL_END 17 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Settings/PSLists/DOPSJetsamListItemsController.m: -------------------------------------------------------------------------------- 1 | // 2 | // DOPSExploitListItemsControllerViewController.m 3 | // Dopamine 4 | // 5 | // Created by Lars Fröder on 29.04.24. 6 | // 7 | 8 | #import "DOPSJetsamListItemsController.h" 9 | #import "DOUIManager.h" 10 | 11 | @interface DOPSJetsamListItemsController () 12 | 13 | @end 14 | 15 | @implementation DOPSJetsamListItemsController 16 | 17 | - (NSArray *)specifiers 18 | { 19 | if (!_specifiers) { 20 | _specifiers = [super specifiers]; 21 | PSSpecifier *jetsamDescriptionSpecifier = [PSSpecifier emptyGroupSpecifier]; 22 | [jetsamDescriptionSpecifier setProperty:DOLocalizedString(@"Jetsam_Description") forKey:@"footerText"]; 23 | [(NSMutableArray *)_specifiers addObject:jetsamDescriptionSpecifier]; 24 | } 25 | return _specifiers; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Settings/PSLists/DOPSListController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOPSListController.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 26/01/2024. 6 | // 7 | 8 | #import 9 | #import 10 | #import 11 | 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface DOPSListController : PSListController 16 | 17 | + (void)setupViewControllerStyle:(UIViewController*)vc; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Settings/PSLists/DOPSListItemsController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOPSListItemsController.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 26/01/2024. 6 | // 7 | 8 | #import 9 | #import 10 | #import 11 | 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface PSListItemsController : PSListController 16 | - (id)itemsFromDataSource; 17 | @end 18 | 19 | @interface DOPSListItemsController : PSListItemsController 20 | 21 | + (UIView *)makeHeader:(NSString *)title withTarget:(id)target; 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Settings/Specifiers/DOButtonCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOButtonCell.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 26/01/2024. 6 | // 7 | 8 | #import 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface DOButtonCell : UITableViewCell 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Settings/Specifiers/DOCreditsCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOCreditsCell.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 26/01/2024. 6 | // 7 | 8 | #import 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface DOCreditsCell : UITableViewCell 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Settings/Specifiers/DOHeaderCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOHeaderCell.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 26/01/2024. 6 | // 7 | 8 | #import 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface DOHeaderCell : UITableViewCell 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Themes/DOTheme.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOTheme.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 14/02/2024. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface DOTheme : NSObject 14 | 15 | @property (nonatomic, retain) NSString *name; 16 | @property (nonatomic, retain) NSString *icon; 17 | @property (nonatomic, retain) NSString *key; 18 | @property (nonatomic, retain) UIColor *actionMenuColor; 19 | @property (nonatomic, retain) UIColor *windowColor; 20 | @property (nonatomic, retain) UIImage *image; 21 | @property (nonatomic, assign) float blur; 22 | @property (nonatomic, assign) BOOL titleShadow; 23 | 24 | - (id)initWithDictionary: (NSDictionary *)dictionary; 25 | 26 | @end 27 | 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Themes/DOThemeManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOThemeManager.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 14/02/2024. 6 | // 7 | 8 | #import 9 | #import "DOTheme.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface DOThemeManager : NSObject 14 | 15 | @property (nonatomic, retain) NSArray *themes; 16 | 17 | + (id)sharedInstance; 18 | 19 | + (UIColor*)menuColorWithAlpha:(float)alpha; 20 | - (NSArray*)getAvailableThemeKeys; 21 | - (NSArray*)getAvailableThemeNames; 22 | - (DOTheme*)getThemeForKey:(NSString*)key; 23 | - (DOTheme*)enabledTheme; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Transition/DOModalBackAction.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOModalBackAction.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 24/01/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOModalBackAction : UIView 13 | 14 | @property (nonatomic) void (^action)(void); 15 | @property (nonatomic) CGRect ignoreFrame; 16 | 17 | -(id)initWithAction:(void (^)(void))action; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Transition/DOModalBackAction.m: -------------------------------------------------------------------------------- 1 | // 2 | // DOModalBackAction.m 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 24/01/2024. 6 | // 7 | 8 | #import "DOModalBackAction.h" 9 | 10 | @implementation DOModalBackAction 11 | 12 | -(id)initWithAction:(void (^)(void))action 13 | { 14 | if (self = [super init]) 15 | { 16 | self.action = action; 17 | } 18 | return self; 19 | } 20 | 21 | - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { 22 | if (CGRectContainsPoint(self.ignoreFrame, point)) 23 | return NO; 24 | return [super pointInside:point withEvent:event]; 25 | } 26 | 27 | - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 28 | if (self.action) 29 | self.action(); 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Transition/DOModalTransitionPush.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOModalTransitionPush.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 08/01/2024. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface DOModalTransitionPush : NSObject 14 | 15 | - (id)initForwards:(BOOL)forwards; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Transition/DOModalTransitionScale.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOModalTransitionScale.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 08/01/2024. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface DOModalTransitionScale : NSObject 14 | 15 | - (id)initForwards:(BOOL)forwards; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Update/DODownloadViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DODownloadViewController.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 07/02/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DODownloadViewController : UIViewController 13 | 14 | - (id)initWithUrl:(NSString *)urlString callback:(void (^)(NSURL *file))callback; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Update/DOUpdateCircleView.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOUpdateCircleView.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 06/02/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOUpdateCircleView : UIView 13 | 14 | @property (nonatomic, assign) float progress; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Application/Dopamine/UI/Update/DOUpdateViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DOUpdateViewController.h 3 | // Dopamine 4 | // 5 | // Created by tomt000 on 06/02/2024. 6 | // 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | @interface DOUpdateViewController : UIViewController 13 | 14 | - (id)initFromTag:(NSString *)fromTag toTag:(NSString *)toTag; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Application/Frameworks/Preferences.framework/Headers/PSControlTableCell.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 0.7 3 | * on Friday, November 7, 2014 at 1:48:08 AM Eastern European Standard Time 4 | * Operating System: Version 8.1 (Build 12B411) 5 | * Image Source: /System/Library/PrivateFrameworks/Preferences.framework/Preferences 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | 11 | @class UIControl; 12 | 13 | @interface PSControlTableCell : PSTableCell { 14 | 15 | UIControl* _control; 16 | 17 | } 18 | 19 | @property (nonatomic,retain) UIControl * control; 20 | -(void)dealloc; 21 | -(BOOL)canReload; 22 | -(id)initWithStyle:(long long)arg1 reuseIdentifier:(id)arg2 specifier:(id)arg3 ; 23 | -(void)refreshCellContentsWithSpecifier:(id)arg1 ; 24 | -(id)newControl; 25 | -(void)controlChanged:(id)arg1 ; 26 | -(id)controlValue; 27 | -(id)valueLabel; 28 | -(void)setControl:(UIControl *)arg1 ; 29 | -(UIControl *)control; 30 | @end 31 | -------------------------------------------------------------------------------- /Application/Frameworks/Preferences.framework/Headers/PSSegmentTableCell.h: -------------------------------------------------------------------------------- 1 | /* Generated by RuntimeBrowser 2 | Image: /System/Library/PrivateFrameworks/Preferences.framework/Preferences 3 | */ 4 | 5 | @interface PSSegmentTableCell : PSControlTableCell { 6 | NSDictionary *_titleDict; 7 | NSArray *_values; 8 | } 9 | 10 | - (BOOL)canReload; 11 | - (id)controlValue; 12 | - (void)dealloc; 13 | - (id)initWithStyle:(int)arg1 reuseIdentifier:(id)arg2 specifier:(id)arg3; 14 | - (void)layoutSubviews; 15 | - (id)newControl; 16 | - (void)prepareForReuse; 17 | - (void)refreshCellContentsWithSpecifier:(id)arg1; 18 | - (void)setBackgroundView:(id)arg1; 19 | - (void)setValue:(id)arg1; 20 | - (void)setValues:(id)arg1 titleDictionary:(id)arg2; 21 | - (id)titleLabel; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /Application/Frameworks/Preferences.framework/Headers/PSSwitchTableCell.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This header is generated by classdump-dyld 0.7 3 | * on Friday, November 7, 2014 at 1:48:08 AM Eastern European Standard Time 4 | * Operating System: Version 8.1 (Build 12B411) 5 | * Image Source: /System/Library/PrivateFrameworks/Preferences.framework/Preferences 6 | * classdump-dyld is licensed under GPLv3, Copyright © 2013 by Elias Limneos. 7 | */ 8 | 9 | #import 10 | 11 | @class UIActivityIndicatorView; 12 | 13 | @interface PSSwitchTableCell : PSControlTableCell { 14 | 15 | // UIActivityIndicatorView* _activityIndicator; 16 | 17 | } 18 | 19 | //@property (assign,nonatomic) BOOL loading; 20 | -(void)dealloc; 21 | -(void)layoutSubviews; 22 | -(void)setValue:(id)arg1 ; 23 | -(void)prepareForReuse; 24 | -(BOOL)canReload; 25 | -(void)reloadWithSpecifier:(id)arg1 animated:(BOOL)arg2 ; 26 | -(id)initWithStyle:(int)style reuseIdentifier:(NSString *)identifier specifier:(PSSpecifier *)spec; 27 | -(void)refreshCellContentsWithSpecifier:(id)arg1 ; 28 | -(void)setCellEnabled:(BOOL)arg1 ; 29 | -(id)newControl; 30 | -(id)controlValue; 31 | -(void)setLoading:(BOOL)arg1 ; 32 | -(BOOL)loading; 33 | @end 34 | -------------------------------------------------------------------------------- /Application/Frameworks/Preferences.framework/Headers/PSViewController.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | #import 4 | 5 | //@class PSRootController, PSSpecifier, UIViewController; 6 | 7 | @interface PSViewController : UIViewController /**/ { 8 | /*UIViewController *_parentController; 9 | PSRootController *_rootController; 10 | PSSpecifier *_specifier;*/ 11 | } 12 | 13 | - (BOOL)canBeShownFromSuspendedState; 14 | - (void)dealloc; 15 | - (void)didLock; 16 | - (void)didUnlock; 17 | - (void)didWake; 18 | - (void)formSheetViewDidDisappear; 19 | - (void)formSheetViewWillDisappear; 20 | - (void)handleURL:(id)arg1; 21 | - (id)parentController; 22 | - (void)popupViewDidDisappear; 23 | - (void)popupViewWillDisappear; 24 | - (void)pushController:(id)arg1; 25 | - (id)readPreferenceValue:(id)arg1; 26 | - (id)rootController; 27 | - (void)setParentController:(id)arg1; 28 | - (void)setPreferenceValue:(id)arg1 specifier:(id)arg2; 29 | - (void)setRootController:(id)arg1; 30 | - (void)setSpecifier:(id)arg1; 31 | - (id)specifier; 32 | - (void)statusBarWillAnimateByHeight:(float)arg1; 33 | - (void)suspend; 34 | - (void)willBecomeActive; 35 | - (void)willResignActive; 36 | - (void)willUnlock; 37 | 38 | @end -------------------------------------------------------------------------------- /Application/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all clean build_clean 2 | 3 | all: Dopamine.ipa 4 | 5 | Dopamine.ipa: build/Build/Products/Debug-iphoneos/Dopamine.app 6 | @echo Ad-Hoc signing Dopamine 7 | xattr -rc build/Build/Products/Debug-iphoneos/Dopamine.app 8 | ldid -SDopamine/Dopamine.entitlements build/Build/Products/Debug-iphoneos/Dopamine.app/Dopamine 9 | ldid -s build/Build/Products/Debug-iphoneos/Dopamine.app 10 | rm -rf Payload Dopamine.ipa 11 | mkdir Payload 12 | cp -r build/Build/Products/Debug-iphoneos/Dopamine.app Payload/Dopamine.app 13 | zip -Ar Dopamine.ipa Payload 14 | rm -rf Payload 15 | rm -rf Dopamine.tipa 16 | cp Dopamine.ipa Dopamine.tipa 17 | 18 | ifeq ($(NIGHTLY), 1) 19 | build/Build/Products/Debug-iphoneos/Dopamine.app: FORCE 20 | xcodebuild -scheme Dopamine -derivedDataPath build -destination 'generic/platform=iOS' CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO GCC_PREPROCESSOR_DEFINITIONS='NIGHTLY=1 COMMIT_HASH=\"$(COMMIT_HASH)\"' 21 | else 22 | build/Build/Products/Debug-iphoneos/Dopamine.app: FORCE 23 | xcodebuild -scheme Dopamine -derivedDataPath build -destination 'generic/platform=iOS' CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO 24 | endif 25 | 26 | clean: 27 | rm -rf build Payload Dopamine.ipa Dopamine.tipa 28 | 29 | build_clean: 30 | rm -rf Payload build 31 | 32 | FORCE: ; -------------------------------------------------------------------------------- /BaseBin/.gitignore: -------------------------------------------------------------------------------- 1 | .build 2 | .include 3 | basebin.tar 4 | basebin.tc 5 | 6 | libjailbreak/libjailbreak.dylib 7 | libjailbreak/libjailbreak.dylib.dSYM 8 | launchdhook/launchdhook.dylib 9 | dyldhook/dyldhook_merge.*.dylib 10 | systemhook/systemhook.dylib 11 | watchdoghook/watchdoghook.dylib 12 | forkfix/forkfix.dylib 13 | 14 | boomerang/boomerang 15 | jbctl/jbctl 16 | idownloadd/idownloadd 17 | -------------------------------------------------------------------------------- /BaseBin/MachOMerger/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | /*.xcodeproj 5 | xcuserdata/ 6 | DerivedData/ 7 | .swiftpm/config/registries.json 8 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 9 | .netrc 10 | /MachOMerger 11 | /.swiftpm 12 | -------------------------------------------------------------------------------- /BaseBin/MachOMerger/Makefile: -------------------------------------------------------------------------------- 1 | MACOS ?= 0 2 | 3 | ifeq ($(MACOS), 1) 4 | ENTITLEMENTS_ARG= 5 | SDK=macosx 6 | TARGET=arm64-apple-macos11.0 7 | else 8 | ENTITLEMENTS_ARG=--entitlements MachOMerger.entitlements 9 | SDK=iphoneos 10 | TARGET=arm64-apple-ios14.0 11 | endif 12 | 13 | SDK_PATH=$(shell xcrun --sdk $(SDK) --show-sdk-path) 14 | 15 | CONFIG=debug 16 | 17 | SWIFTC_ARGS=-sdk "$(SDK_PATH)" -target $(TARGET) -O -framework IOKit -framework CoreServices -D__DARWIN_OPAQUE_ARM_THREAD_STATE64 18 | SWIFT_BUILD_ARGS=--triple $(TARGET) --sdk "$(SDK_PATH)" -c $(CONFIG) -Xcc "-DIOS_BUILD" -Xcc -Wno-incompatible-sysroot $(addprefix -Xswiftc ,$(SWIFTC_ARGS)) 19 | 20 | all: MachOMerger 21 | 22 | .PHONY: all build_clean clean 23 | 24 | MachOMerger: .build/$(CONFIG)/MachOMerger FORCE 25 | @cp .build/$(CONFIG)/MachOMerger MachOMerger 26 | codesign -s - -f $(ENTITLEMENTS_ARG) MachOMerger 27 | 28 | .build/$(CONFIG)/%: Sources/% FORCE 29 | @echo Building MachOMerger 30 | swift build $(SWIFT_BUILD_ARGS) 31 | 32 | build_clean: 33 | rm -rf .build 34 | 35 | clean: build_clean 36 | rm -f MachOMerger 37 | 38 | FORCE: ; 39 | -------------------------------------------------------------------------------- /BaseBin/MachOMerger/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "patchfinderutils", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/pinauten/PatchfinderUtils", 7 | "state" : { 8 | "branch" : "master", 9 | "revision" : "83647509e12001e8f42b2a5dc46b40977e12098b" 10 | } 11 | }, 12 | { 13 | "identity" : "swiftmacho", 14 | "kind" : "remoteSourceControl", 15 | "location" : "https://github.com/pinauten/SwiftMachO", 16 | "state" : { 17 | "branch" : "master", 18 | "revision" : "cbfb1886c14bfb28c54034b43e49807ab7c17f11" 19 | } 20 | }, 21 | { 22 | "identity" : "swiftutils", 23 | "kind" : "remoteSourceControl", 24 | "location" : "https://github.com/pinauten/SwiftUtils", 25 | "state" : { 26 | "branch" : "master", 27 | "revision" : "1d37faabb4c58b3152394c9b6e1c1a68507646b9" 28 | } 29 | } 30 | ], 31 | "version" : 2 32 | } 33 | -------------------------------------------------------------------------------- /BaseBin/MachOMerger/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.7 2 | // The swift-tools-version declares the minimum version of Swift required to build this package. 3 | 4 | import PackageDescription 5 | 6 | let package = Package( 7 | name: "MachOMerger", 8 | platforms: [ 9 | .iOS(.v14), 10 | .macOS(.v11) 11 | ], 12 | products: [ 13 | // Products define the executables and libraries a package produces, and make them visible to other packages. 14 | .executable( 15 | name: "MachOMerger", 16 | targets: ["MachOMerger"]), 17 | ], 18 | dependencies: [ 19 | // Dependencies declare other packages that this package depends on. 20 | .package(url: "https://github.com/pinauten/SwiftUtils", branch: "master"), 21 | .package(url: "https://github.com/pinauten/SwiftMachO", branch: "master"), 22 | .package(url: "https://github.com/pinauten/PatchfinderUtils", branch: "master") 23 | ], 24 | targets: [ 25 | // Targets are the basic building blocks of a package. A target can define a module or a test suite. 26 | // Targets can depend on other targets in this package, and on products in packages this package depends on. 27 | .executableTarget( 28 | name: "MachOMerger", 29 | dependencies: ["SwiftUtils", "SwiftMachO", "PatchfinderUtils"]), 30 | ] 31 | ) 32 | -------------------------------------------------------------------------------- /BaseBin/MachOMerger/README.md: -------------------------------------------------------------------------------- 1 | # MachOMerger 2 | 3 | Merge two MachO binaries into one. The only supported use case at this moment is merging a dylib into dyld. 4 | 5 | # Requirements 6 | - The dylib to be injected *must* be compiled with `-Xlinker -add_split_seg_info -Xlinker -no_auth_data` 7 | -------------------------------------------------------------------------------- /BaseBin/MachOMerger/Sources/MachOMerger/MagicSymbols.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MagicSymbols.swift 3 | // MachOMerger 4 | // 5 | // Created by Linus Henze on 2023-03-16. 6 | // 7 | 8 | import Foundation 9 | 10 | func getMagicSymbolVal(_ sym: String) -> (UInt64, Bool)? { 11 | switch sym { 12 | case "_MACHOMERGER_REAL_START": 13 | guard let ths = dataA.unixthread else { 14 | print("Cannot get real start: A has no unixthread") 15 | exit(-1) 16 | } 17 | 18 | guard ths.count == 1 else { 19 | print("More than one UnixThread?!") 20 | exit(-1) 21 | } 22 | 23 | let th = ths[0] 24 | guard th.flavor == ARM_THREAD_STATE64 && th.state.count == MemoryLayout.size else { 25 | print("Can only support ARM64 threads!") 26 | exit(-1) 27 | } 28 | 29 | let thA64 = th.state.getGeneric(type: arm_thread_state64_t.self) 30 | return (thA64.__pc, false) 31 | 32 | default: 33 | return nil 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /BaseBin/MachOMerger/Sources/MachOMerger/MiscCmds.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MiscCmds.swift 3 | // MachOMerger 4 | // 5 | // Created by Linus Henze on 2023-03-16. 6 | // 7 | 8 | import Foundation 9 | import MachO 10 | 11 | func emitUUIDCmd() -> (Int, Data) { 12 | let cmd = uuid_command(cmd: UInt32(LC_UUID), cmdsize: UInt32(MemoryLayout.size), uuid: UUID().uuid) 13 | 14 | return (1, Data(fromObject: cmd)) 15 | } 16 | -------------------------------------------------------------------------------- /BaseBin/MachOMerger/Sources/MachOMerger/ULEB128Reader.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ULEB128Reader.swift 3 | // MachOMerger 4 | // 5 | // Created by Linus Henze on 2023-03-15. 6 | // 7 | 8 | import Foundation 9 | 10 | class ULEB128Reader { 11 | private let data: Data 12 | private var pos: Int = 0 13 | 14 | init(data: Data) { 15 | self.data = data 16 | } 17 | 18 | func read() -> UInt64 { 19 | var result: UInt64 = 0 20 | var shift = 0 21 | while true { 22 | let dec = data[pos] 23 | pos += 1 24 | 25 | let tmp = UInt64(dec & 0x7F) 26 | let val = tmp << shift 27 | if (val >> shift) != tmp { 28 | // Overflow 29 | print("ULEB128Reader: Overflow") 30 | exit(-1) 31 | } 32 | 33 | shift += 7 34 | 35 | result |= val 36 | 37 | if (dec >> 7) == 0 { 38 | return result 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /BaseBin/MachOMerger/Sources/MachOMerger/UnixThread.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UnixThread.swift 3 | // MachOMerger 4 | // 5 | // Created by Linus Henze on 2023-03-16. 6 | // 7 | 8 | import Foundation 9 | import MachO 10 | 11 | func emitUnixthread(info: MachOMergeData, relocInfo: RelocInfo, isB: Bool) -> (Int, Data) { 12 | let ths = info.unixthread! 13 | guard ths.count == 1 else { 14 | print("More than one UnixThread?!") 15 | exit(-1) 16 | } 17 | 18 | let th = ths[0] 19 | guard th.flavor == ARM_THREAD_STATE64 && th.state.count == MemoryLayout.size else { 20 | print("Can only support ARM64 threads!") 21 | exit(-1) 22 | } 23 | 24 | var thA64 = th.state.getGeneric(type: arm_thread_state64_t.self) 25 | 26 | thA64.__pc = relocInfo.translate(address: thA64.__pc, isB: isB) 27 | if let st = try? b.getSymbolTable() { 28 | if let newStart = st.symbol(forName: "_MACHOMERGER_START_HOOK") { 29 | thA64.__pc = relocInfo.translate(address: newStart.value, isB: true) 30 | } 31 | } 32 | 33 | var result = Data() 34 | result.appendGeneric(value: UInt32(LC_UNIXTHREAD)) 35 | result.appendGeneric(value: UInt32(16 + MemoryLayout.size)) 36 | result.appendGeneric(value: UInt32(ARM_THREAD_STATE64)) 37 | result.appendGeneric(value: UInt32(MemoryLayout.size / 4)) 38 | result.appendGeneric(value: thA64) 39 | 40 | return (1, result) 41 | } 42 | -------------------------------------------------------------------------------- /BaseBin/MachOMerger/upload.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | 3 | PROJECT_NAME=MachOMerger 4 | DEVICE=iPhoneXs.iOS15 5 | 6 | make 7 | ssh $DEVICE "rm -rf /var/jb/$PROJECT_NAME" 8 | scp ./$PROJECT_NAME $DEVICE:/var/jb/$PROJECT_NAME -------------------------------------------------------------------------------- /BaseBin/_external/basebin/.version: -------------------------------------------------------------------------------- 1 | 2.4.5 -------------------------------------------------------------------------------- /BaseBin/_external/basebin/LaunchDaemons/com.opa334.Dopamine.idownloadd.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Label 6 | com.opa334.Dopamine.idownloadd 7 | ProgramArguments 8 | 9 | @JBROOT@/basebin/idownloadd 10 | 11 | UserName 12 | root 13 | RunAtLoad 14 | 15 | KeepAlive 16 | 17 | Disabled 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /BaseBin/_external/basebin/LaunchDaemons/com.opa334.Dopamine.startup.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Label 6 | com.opa334.Dopamine.startup 7 | ProgramArguments 8 | 9 | @JBROOT@/basebin/jbctl 10 | internal 11 | startup 12 | 13 | UserName 14 | root 15 | RunAtLoad 16 | 17 | KeepAlive 18 | 19 | ProcessType 20 | Interactive 21 | 22 | 23 | -------------------------------------------------------------------------------- /BaseBin/_external/basebin/fallback/CydiaSubstrate.framework/.this_is_ellekit_not_substrate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/BaseBin/_external/basebin/fallback/CydiaSubstrate.framework/.this_is_ellekit_not_substrate -------------------------------------------------------------------------------- /BaseBin/_external/basebin/fallback/CydiaSubstrate.framework/CydiaSubstrate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/BaseBin/_external/basebin/fallback/CydiaSubstrate.framework/CydiaSubstrate -------------------------------------------------------------------------------- /BaseBin/_external/include/CoreServices/LSApplicationProxy.h: -------------------------------------------------------------------------------- 1 | #import "LSBundleProxy.h" 2 | @interface LSApplicationProxy : LSBundleProxy 3 | @property (getter=isInstalled,nonatomic,readonly) BOOL installed; 4 | + (instancetype)applicationProxyForIdentifier:(NSString *)identifier; 5 | @property (nonatomic,readonly) NSSet * claimedURLSchemes; 6 | @end -------------------------------------------------------------------------------- /BaseBin/_external/include/CoreServices/LSBundleProxy.h: -------------------------------------------------------------------------------- 1 | @interface LSBundleProxy : NSObject 2 | @property (nonatomic) NSURL *bundleURL; 3 | @property (nonatomic,readonly) NSString *bundleExecutable; 4 | @end -------------------------------------------------------------------------------- /BaseBin/_external/include/libgrabkernel2/libgrabkernel2.h: -------------------------------------------------------------------------------- 1 | // 2 | // grabkernel.h 3 | // libgrabkernel2 4 | // 5 | // Created by Alfie on 14/02/2024. 6 | // 7 | 8 | #ifndef grabkernel_h 9 | #define grabkernel_h 10 | 11 | #include 12 | 13 | bool download_kernelcache(NSString *zipURL, bool isOTA, NSString *outPath); 14 | bool grab_kernelcache(NSString *outPath); 15 | 16 | // libgrabkernel compatibility shim 17 | // Note that research kernel grabbing is not currently supported 18 | int grabkernel(char *downloadPath, int isResearchKernel); 19 | 20 | #endif /* grabkernel_h */ 21 | -------------------------------------------------------------------------------- /BaseBin/_external/include/xpc/XPC.apinotes: -------------------------------------------------------------------------------- 1 | Name: XPC 2 | Functions: 3 | # xpc_object 4 | - Name: xpc_retain 5 | Availability: nonswift 6 | - Name: xpc_release 7 | Availability: nonswift 8 | -------------------------------------------------------------------------------- /BaseBin/_external/include/xpc/debug.h: -------------------------------------------------------------------------------- 1 | #ifndef __XPC_DEBUG_H__ 2 | #define __XPC_DEBUG_H__ 3 | 4 | /*! 5 | * @function xpc_debugger_api_misuse_info 6 | * Returns a pointer to a string describing the reason XPC aborted the calling 7 | * process. On OS X, this will be the same string present in the "Application 8 | * Specific Information" section of the crash report. 9 | * 10 | * @result 11 | * A pointer to the human-readable string describing the reason the caller was 12 | * aborted. If XPC was not responsible for the program's termination, NULL will 13 | * be returned. 14 | * 15 | * @discussion 16 | * This function is only callable from within a debugger. It is not meant to be 17 | * called by the program directly. 18 | */ 19 | XPC_DEBUGGER_EXCL 20 | const char * 21 | xpc_debugger_api_misuse_info(void); 22 | 23 | #endif // __XPC_DEBUG_H__ 24 | -------------------------------------------------------------------------------- /BaseBin/_external/include/xpc/endpoint.h: -------------------------------------------------------------------------------- 1 | #ifndef __XPC_ENDPOINT_H__ 2 | #define __XPC_ENDPOINT_H__ 3 | 4 | /*! 5 | * @function xpc_endpoint_create 6 | * Creates a new endpoint from a connection that is suitable for embedding into 7 | * messages. 8 | * 9 | * @param connection 10 | * Only connections obtained through calls to xpc_connection_create*() may be 11 | * given to this API. Passing any other type of connection is not supported and 12 | * will result in undefined behavior. 13 | * 14 | * @result 15 | * A new endpoint object. 16 | */ 17 | __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0) 18 | XPC_EXPORT XPC_MALLOC XPC_RETURNS_RETAINED XPC_WARN_RESULT XPC_NONNULL1 19 | xpc_endpoint_t _Nonnull 20 | xpc_endpoint_create(xpc_connection_t _Nonnull connection); 21 | 22 | #endif // __XPC_ENDPOINT_H__ 23 | -------------------------------------------------------------------------------- /BaseBin/_external/include/xpc/module.modulemap: -------------------------------------------------------------------------------- 1 | module XPC [system] [extern_c] { 2 | header "xpc.h" 3 | header "availability.h" 4 | header "base.h" 5 | header "activity.h" 6 | header "connection.h" 7 | header "debug.h" 8 | header "endpoint.h" 9 | export * 10 | } 11 | -------------------------------------------------------------------------------- /BaseBin/_external/include/xpc/rich_error.h: -------------------------------------------------------------------------------- 1 | #ifndef __XPC_RICH_ERROR_H__ 2 | #define __XPC_RICH_ERROR_H__ 3 | 4 | #ifndef __XPC_INDIRECT__ 5 | #error "Please #include instead of this file directly." 6 | // For HeaderDoc. 7 | #include 8 | #endif // __XPC_INDIRECT__ 9 | 10 | #ifndef __BLOCKS__ 11 | #error "XPC Rich Errors require Blocks support." 12 | #endif // __BLOCKS__ 13 | 14 | XPC_ASSUME_NONNULL_BEGIN 15 | __BEGIN_DECLS 16 | 17 | #pragma mark Properties 18 | /*! 19 | * @function xpc_rich_error_copy_description 20 | * Copy the string description of an error. 21 | * 22 | * @param error 23 | * The error to be examined. 24 | * 25 | * @result 26 | * The underlying C string for the provided error. This string should be 27 | * disposed of with free(3) when done. 28 | * 29 | * This will return NULL if a string description could not be generated. 30 | */ 31 | XPC_EXPORT XPC_WARN_RESULT 32 | char * _Nullable 33 | xpc_rich_error_copy_description(xpc_rich_error_t error); 34 | 35 | /*! 36 | * @function xpc_rich_error_can_retry 37 | * Whether the operation the error originated from can be retried. 38 | * 39 | * @param error 40 | * The error to be inspected. 41 | * 42 | * @result 43 | * Whether the operation the error originated from can be retried. 44 | */ 45 | XPC_EXPORT XPC_WARN_RESULT 46 | bool 47 | xpc_rich_error_can_retry(xpc_rich_error_t error); 48 | 49 | __END_DECLS 50 | XPC_ASSUME_NONNULL_END 51 | 52 | #endif // __XPC_RICH_ERROR_H__ 53 | -------------------------------------------------------------------------------- /BaseBin/_external/include/xpc_private.h: -------------------------------------------------------------------------------- 1 | #ifndef __XPC_PRIVATE_H__ 2 | #define __XPC_PRIVATE_H__ 3 | 4 | void xpc_dictionary_get_audit_token(xpc_object_t xdict, audit_token_t *token); 5 | char *xpc_strerror (int); 6 | 7 | extern XPC_RETURNS_RETAINED xpc_object_t xpc_pipe_create_from_port(mach_port_t port, uint32_t flags); 8 | extern int xpc_pipe_simpleroutine(xpc_object_t pipe, xpc_object_t message); 9 | extern int xpc_pipe_routine(xpc_object_t pipe, xpc_object_t message, XPC_GIVES_REFERENCE xpc_object_t *reply); 10 | extern int xpc_pipe_routine_with_flags(xpc_object_t xpc_pipe, xpc_object_t inDict, XPC_GIVES_REFERENCE xpc_object_t *reply, uint32_t flags); 11 | extern int xpc_pipe_routine_reply(xpc_object_t reply); 12 | extern int xpc_pipe_receive(mach_port_t port, XPC_GIVES_REFERENCE xpc_object_t *message); 13 | 14 | extern XPC_RETURNS_RETAINED xpc_object_t xpc_copy_entitlement_for_token(const char *, audit_token_t *); 15 | 16 | #endif -------------------------------------------------------------------------------- /BaseBin/boomerang/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = boomerang 2 | 3 | CC = clang 4 | 5 | CFLAGS = -framework Foundation -framework CoreServices -framework Security -I../.include -I./src -isysroot $(shell xcrun --sdk iphoneos --show-sdk-path) -arch arm64 -arch arm64e -miphoneos-version-min=15.0 -fobjc-arc -Wno-nullability-completeness-on-arrays -O2 6 | LDFLAGS = -L../.build -ljailbreak 7 | 8 | sign: $(TARGET) 9 | @ldid -Sentitlements.plist $< 10 | 11 | $(TARGET): $(wildcard src/*.c) 12 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ 13 | 14 | clean: 15 | @rm -f $(TARGET) 16 | -------------------------------------------------------------------------------- /BaseBin/boomerang/entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | platform-application 6 | 7 | com.apple.private.security.no-container 8 | 9 | task_for_pid-allow 10 | 11 | com.apple.system-task-ports 12 | 13 | com.apple.security.exception.iokit-user-client-class 14 | 15 | IOSurfaceRootUserClient 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /BaseBin/dyldhook/Makefile: -------------------------------------------------------------------------------- 1 | CC = clang 2 | 3 | CFLAGS = -I../.include -isysroot $(shell xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=15.0 -Wno-deprecated-declarations -fno-stack-check -D_FORTIFY_SOURCE=0 -O2 4 | LDFLAGS = -shared -Xlinker -add_split_seg_info 5 | FILES = $(wildcard src/*.c src/*.S ../libjailbreak/src/jbclient_mach.c) 6 | FILES_IOS15 = $(wildcard src/generated/ios15/*.c) 7 | FILES_IOS16 = $(wildcard src/generated/ios16/*.c) 8 | 9 | all: dyldhook_merge.arm64e.dylib dyldhook_merge.arm64e.iOS15.dylib dyldhook_merge.arm64.dylib dyldhook_merge.arm64.iOS15.dylib 10 | 11 | dyldhook_merge.arm64e.dylib: $(FILES) $(FILES_IOS16) 12 | $(CC) -arch arm64e $(CFLAGS) -DIOS=16 $(LDFLAGS) -o $@ $^ 13 | @ldid -S $@ 14 | 15 | dyldhook_merge.arm64e.iOS15.dylib: $(FILES) $(FILES_IOS15) 16 | $(CC) -arch arm64e $(CFLAGS) -DIOS=15 $(LDFLAGS) -o $@ $^ 17 | @ldid -S $@ 18 | 19 | dyldhook_merge.arm64.dylib: $(FILES) $(FILES_IOS16) 20 | $(CC) -arch arm64 $(CFLAGS) -DIOS=16 $(LDFLAGS) -o $@ $^ 21 | @ldid -S $@ 22 | 23 | dyldhook_merge.arm64.iOS15.dylib: $(FILES) $(FILES_IOS15) 24 | $(CC) -arch arm64 $(CFLAGS) -DIOS=15 $(LDFLAGS) -o $@ $^ 25 | @ldid -S $@ 26 | 27 | clean: 28 | @rm -f dyldhook_merge.arm64e.dylib 29 | @rm -f dyldhook_merge.arm64e.iOS15.dylib 30 | @rm -f dyldhook_merge.arm64.dylib 31 | @rm -f dyldhook_merge.arm64.iOS15.dylib 32 | -------------------------------------------------------------------------------- /BaseBin/dyldhook/src/dyld.h: -------------------------------------------------------------------------------- 1 | const char *_simple_getenv(char **envp, char *key); 2 | uint64_t msyscall_errno(uint64_t syscall, ...); -------------------------------------------------------------------------------- /BaseBin/dyldhook/src/dyld_jbinfo.h: -------------------------------------------------------------------------------- 1 | #define DYLD_JBINFO_MAXSIZE 0x4000 2 | 3 | #define DYLD_STATE_CHECKED_IN 1 4 | 5 | // A struct that allows dyldhook to stash information that systemhook can later access 6 | struct dyld_jbinfo { 7 | uint64_t state; 8 | char *jbRootPath; 9 | char *bootUUID; 10 | char *sandboxExtensions; 11 | bool fullyDebugged; 12 | 13 | char data[]; 14 | }; 15 | 16 | extern bool jbinfo_is_checked_in(void); 17 | extern char *jbinfo_get_jbroot(void); -------------------------------------------------------------------------------- /BaseBin/dyldhook/src/lv_bypass.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | #include "machomerger_hook.h" 13 | #include "dyld_jbinfo.h" 14 | #include "dyld.h" 15 | 16 | #include 17 | 18 | // Library validation bypass 19 | // Dyld will call fcntl to attach a code signature to a dylib before mapping it in 20 | // So we hook fcntl to ensure the code signature to be attached is added to trustcache 21 | 22 | int HOOK(__fcntl)(int fd, int cmd, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6, void *arg7, void *arg8) 23 | { 24 | switch (cmd) { 25 | case F_ADDSIGS: 26 | case F_ADDFILESIGS: 27 | case F_ADDFILESIGS_RETURN: { 28 | struct siginfo siginfo; 29 | siginfo.source = (cmd == F_ADDSIGS) ? SIGNATURE_SOURCE_PROC : SIGNATURE_SOURCE_FILE; 30 | if (arg1) memcpy(&siginfo.signature, (fsignatures_t *)arg1, sizeof (fsignatures_t)); 31 | jbclient_mach_trust_file(fd, arg1 ? &siginfo : NULL); 32 | break; 33 | } 34 | } 35 | return (int)msyscall_errno(0x5C, fd, cmd, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); 36 | } -------------------------------------------------------------------------------- /BaseBin/dyldhook/src/machomerger_hook.h: -------------------------------------------------------------------------------- 1 | #ifndef __MACHOMERGER_HOOK_H 2 | #define __MACHOMERGER_HOOK_H 3 | 4 | #define HOOK(name) MACHOMERGER_HOOK_##name 5 | #define ORIG(name) MACHOMERGER_ORIG_##name 6 | 7 | #endif -------------------------------------------------------------------------------- /BaseBin/forkfix/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = forkfix.dylib 2 | CC = clang 3 | 4 | CFLAGS = -I../.include -I./src -I../_external/modules/litehook/src -isysroot $(shell xcrun --sdk iphoneos --show-sdk-path) -arch arm64e -Wno-deprecated-declarations -miphoneos-version-min=15.0 -O2 5 | LDFLAGS = ../systemhook/systemhook.dylib -dynamiclib 6 | 7 | sign: $(TARGET) 8 | @ldid -S $^ 9 | 10 | $(TARGET): $(wildcard src/*.c src/*.S ../libjailbreak/src/jbclient_*.c) 11 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ 12 | 13 | clean: 14 | @rm -f $(TARGET) 15 | -------------------------------------------------------------------------------- /BaseBin/forkfix/src/reimpl.h.disabled: -------------------------------------------------------------------------------- 1 | int fork_reimpl(void); 2 | int vfork_reimpl(void); 3 | int daemon_reimpl(int nochdir, int noclose); 4 | int forkpty_reimpl(int *aprimary, char *name, struct termios *termp, struct winsize *winp); 5 | 6 | bool fork_reimpl_init(void *fork_ptr); -------------------------------------------------------------------------------- /BaseBin/forkfix/src/syscall.S: -------------------------------------------------------------------------------- 1 | .text 2 | 3 | .align 4 4 | 5 | .global _ffsys_fork 6 | _ffsys_fork: 7 | #ifdef __arm64e__ 8 | pacibsp 9 | #endif 10 | stp x29, x30, [SP, #-0x10]! 11 | mov x29, sp 12 | mov x16, #2 13 | svc 0x80 14 | b.cs _ffsys_fork_err 15 | cbz x1, _ffsys_fork_end 16 | mov w0, #0 17 | adrp x9, __current_pid@GOTPAGE 18 | ldr x9, [x9, __current_pid@GOTPAGEOFF] 19 | str w0, [x9] 20 | b _ffsys_fork_end 21 | 22 | _ffsys_fork_err: 23 | bl _cerror 24 | mov w0, #-1 25 | 26 | _ffsys_fork_end: 27 | mov sp, x29 28 | ldp x29, x30, [SP],#0x10 29 | #ifdef __arm64e__ 30 | retab 31 | #else 32 | ret 33 | #endif 34 | 35 | .global _ffsys_vm_protect 36 | _ffsys_vm_protect: 37 | mov x16, #-14 38 | svc 0x80 39 | ret 40 | 41 | .global _ffsys_getpid 42 | _ffsys_getpid: 43 | mov x16, #20 44 | svc 0x80 45 | ret 46 | 47 | .global _ffsys_pid_suspend 48 | _ffsys_pid_suspend: 49 | mov x16, #433 50 | svc 0x80 51 | ret 52 | 53 | .global _ffsys_read 54 | _ffsys_read: 55 | mov x16, #3 56 | svc 0x80 57 | ret 58 | 59 | .global _ffsys_write 60 | _ffsys_write: 61 | mov x16, #4 62 | svc 0x80 63 | ret 64 | 65 | .global _ffsys_close 66 | _ffsys_close: 67 | mov x16, #6 68 | svc 0x80 69 | ret 70 | -------------------------------------------------------------------------------- /BaseBin/forkfix/src/syscall.h: -------------------------------------------------------------------------------- 1 | kern_return_t ffsys_vm_protect(vm_map_t target_task, vm_address_t address, vm_size_t size, boolean_t set_maximum, vm_prot_t new_protection); 2 | pid_t ffsys_fork(void); 3 | pid_t ffsys_getpid(void); 4 | int ffsys_pid_suspend(pid_t pid); 5 | 6 | ssize_t ffsys_read(int fildes, void *buf, size_t nbyte); 7 | ssize_t ffsys_write(int fildes, const void *buf, size_t nbyte); 8 | int ffsys_close(int fildes); 9 | -------------------------------------------------------------------------------- /BaseBin/idownloadd/Makefile: -------------------------------------------------------------------------------- 1 | XCODE_PROJECT = src/idownloadd.xcodeproj 2 | XCODE_SCHEME = idownloadd 3 | CS_FLAGS = CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO 4 | CONFIGURATION = Release 5 | 6 | OUTPUT_NAME = idownloadd 7 | 8 | build: 9 | xcodebuild -archivePath ./.build -project $(XCODE_PROJECT) -scheme $(XCODE_SCHEME) -configuration $(CONFIGURATION) -destination generic/platform=iOS archive $(CS_FLAGS) 10 | @cp -f ./.build.xcarchive/Products/usr/local/bin/$(OUTPUT_NAME) . 11 | @rm -rf ./.build.xcarchive 12 | @ldid -Sentitlements.plist $(OUTPUT_NAME) 13 | 14 | clean: 15 | xcodebuild -project $(XCODE_PROJECT) -scheme $(XCODE_SCHEME) -configuration $(CONFIGURATION) -destination generic/platform=iOS clean 16 | @rm -rf $(OUTPUT_NAME) 17 | 18 | default: build -------------------------------------------------------------------------------- /BaseBin/idownloadd/entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | platform-application 6 | 7 | com.apple.private.security.no-container 8 | 9 | com.apple.private.security.storage.AppBundles 10 | 11 | com.apple.private.security.storage.AppDataContainers 12 | 13 | com.apple.security.exception.iokit-user-client-class 14 | 15 | IOSurfaceRootUserClient 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /BaseBin/idownloadd/src/idownloadd.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /BaseBin/idownloadd/src/idownloadd.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /BaseBin/idownloadd/src/idownloadd.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "idownload", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/pinauten/iDownload", 7 | "state" : { 8 | "branch" : "master", 9 | "revision" : "62920e864f06af4b0a50a0aa9b6e0a7c7bd83a6f" 10 | } 11 | }, 12 | { 13 | "identity" : "swiftutils", 14 | "kind" : "remoteSourceControl", 15 | "location" : "https://github.com/pinauten/SwiftUtils", 16 | "state" : { 17 | "branch" : "master", 18 | "revision" : "1d37faabb4c58b3152394c9b6e1c1a68507646b9" 19 | } 20 | } 21 | ], 22 | "version" : 2 23 | } 24 | -------------------------------------------------------------------------------- /BaseBin/idownloadd/src/idownloadd/iDownloadCmds.swift: -------------------------------------------------------------------------------- 1 | // 2 | // iDownloadCMDs.swift 3 | // idownloadd 4 | // 5 | // Created by Lars Fröder on 08.06.23. 6 | // 7 | 8 | import Foundation 9 | import iDownload 10 | 11 | let iDownloadCmds = [ 12 | "help": iDownload_help 13 | ] as [String: iDownloadCmd] 14 | 15 | func iDownload_help(_ hndlr: iDownloadHandler, _ cmd: String, _ args: [String]) throws { 16 | try hndlr.sendline("") 17 | } 18 | -------------------------------------------------------------------------------- /BaseBin/idownloadd/src/idownloadd/idownloadd-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // idownloadd-Bridging-Header.h 3 | // idownloadd 4 | // 5 | // Created by Lars Fröder on 08.06.23. 6 | // 7 | 8 | #ifndef idownloadd_Bridging_Header_h 9 | #define idownloadd_Bridging_Header_h 10 | 11 | #import 12 | #import 13 | #import 14 | 15 | uint64_t c_getkslide(void); 16 | uint64_t c_getkbase(void); 17 | bool c_kcall_supported(void); 18 | int c_kcall(uint64_t *result, uint64_t func, int argc, const uint64_t *argv); 19 | uint64_t c_kalloc(uint64_t *addr, uint64_t size); 20 | 21 | #endif /* idownloadd_Bridging_Header_h */ 22 | -------------------------------------------------------------------------------- /BaseBin/idownloadd/src/idownloadd/main.swift: -------------------------------------------------------------------------------- 1 | // 2 | // main.swift 3 | // idownloadd 4 | // 5 | // Created by Lars Fröder on 08.06.23. 6 | // 7 | 8 | import Foundation 9 | import iDownload 10 | 11 | jbclient_initialize_primitives() 12 | 13 | do { 14 | try iDownload.launch_iDownload(krw: iDownloadKRW(), otherCmds: iDownloadCmds) 15 | } catch let e { 16 | NSLog("Failed to launch iDownload: \(e)") 17 | exit(1) 18 | } 19 | 20 | RunLoop.main.run() 21 | -------------------------------------------------------------------------------- /BaseBin/idownloadd/src/idownloadd/shim.c: -------------------------------------------------------------------------------- 1 | // 2 | // shim.c 3 | // idownloadd 4 | // 5 | // Created by Lars Fröder on 25.01.24. 6 | // 7 | 8 | #include 9 | #include "idownloadd-Bridging-Header.h" 10 | 11 | uint64_t c_getkslide(void) 12 | { 13 | return kconstant(slide); 14 | } 15 | 16 | uint64_t c_getkbase(void) 17 | { 18 | return kconstant(base); 19 | } 20 | 21 | bool c_kcall_supported(void) 22 | { 23 | return is_kcall_available(); 24 | } 25 | 26 | int c_kcall(uint64_t *result, uint64_t func, int argc, const uint64_t *argv) 27 | { 28 | return kcall(result, func, argc, argv); 29 | } 30 | 31 | uint64_t c_kalloc(uint64_t *addr, uint64_t size) 32 | { 33 | return kalloc(addr, size); 34 | } 35 | -------------------------------------------------------------------------------- /BaseBin/jbctl/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = jbctl 2 | 3 | CC = clang 4 | 5 | CFLAGS = -framework Foundation -framework CoreServices -framework Security -I../.include -I./src -isysroot $(shell xcrun --sdk iphoneos --show-sdk-path) -arch arm64 -arch arm64e -Wno-availability -miphoneos-version-min=15.0 -fobjc-arc 6 | LDFLAGS = -L../.build -ljailbreak -lchoma 7 | 8 | sign: $(TARGET) 9 | @ldid -Sentitlements.plist $< 10 | 11 | $(TARGET): $(wildcard src/*.m) 12 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ 13 | 14 | clean: 15 | @rm -f $(TARGET) -------------------------------------------------------------------------------- /BaseBin/jbctl/entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | platform-application 6 | 7 | task_for_pid-allow 8 | 9 | com.apple.system-task-ports 10 | 11 | com.apple.private.security.no-container 12 | 13 | com.apple.security.exception.mach-lookup.global-name 14 | 15 | com.opa334.jailbreakd 16 | 17 | com.apple.private.xpc.launchd.userspace-reboot 18 | 19 | com.apple.private.bindfs-allow 20 | 21 | com.apple.private.iowatchdog.user-access 22 | 23 | com.apple.springboard.CFUserNotification 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /BaseBin/jbctl/src/internal.h: -------------------------------------------------------------------------------- 1 | int jbctl_handle_internal(const char *command, int argc, char* argv[]); -------------------------------------------------------------------------------- /BaseBin/launchdhook/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = launchdhook.dylib 2 | CC = clang 3 | 4 | CFLAGS = -framework Foundation -framework CoreServices -framework Security -I../.include -Isrc -isysroot $(shell xcrun --sdk iphoneos --show-sdk-path) -arch arm64 -arch arm64e -miphoneos-version-min=15.0 -Wno-deprecated-declarations -fobjc-arc -O2 5 | LDFLAGS = -dynamiclib -rpath @loader_path/fallback -L../.build -L../_external/lib -ljailbreak -lellekit -lbsm 6 | 7 | sign: $(TARGET) 8 | @ldid -S $^ 9 | 10 | $(TARGET): $(wildcard src/*.m src/*.c src/jbserver/*.c ../systemhook/src/common.c ../systemhook/src/envbuf.c) 11 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ 12 | 13 | clean: 14 | @rm -f $(TARGET) 15 | -------------------------------------------------------------------------------- /BaseBin/launchdhook/src/boomerang.h: -------------------------------------------------------------------------------- 1 | int boomerang_recoverPrimitives(bool firstRetrieval, bool shouldEndBoomerang); 2 | void boomerang_stashPrimitives(void); -------------------------------------------------------------------------------- /BaseBin/launchdhook/src/crashreporter.h: -------------------------------------------------------------------------------- 1 | #import 2 | #include 3 | 4 | typedef int exception_type_t; 5 | typedef integer_t exception_data_type_t; 6 | 7 | typedef struct { 8 | mach_msg_header_t header; 9 | mach_msg_body_t msgh_body; 10 | mach_msg_port_descriptor_t thread; 11 | mach_msg_port_descriptor_t task; 12 | int unused1; 13 | exception_type_t exception; 14 | exception_data_type_t code; 15 | int unused2; 16 | int subcode; 17 | NDR_record_t ndr; 18 | } exception_raise_request; // the bits we need at least 19 | 20 | typedef struct { 21 | mach_msg_header_t header; 22 | NDR_record_t ndr; 23 | kern_return_t retcode; 24 | } exception_raise_reply; 25 | 26 | typedef struct { 27 | mach_msg_header_t header; 28 | NDR_record_t ndr; 29 | kern_return_t retcode; 30 | int flavor; 31 | mach_msg_type_number_t new_stateCnt; 32 | natural_t new_state[614]; 33 | } exception_raise_state_reply; 34 | 35 | typedef enum { 36 | kCrashReporterStateNotActive = 0, 37 | kCrashReporterStateActive = 1, 38 | kCrashReporterStatePaused = 2 39 | } crash_reporter_state; 40 | 41 | void crashreporter_start(void); 42 | void crashreporter_pause(void); 43 | void crashreporter_resume(void); 44 | 45 | FILE *crashreporter_open_outfile(const char *source, char **nameOut); 46 | void crashreporter_save_outfile(FILE *f); -------------------------------------------------------------------------------- /BaseBin/launchdhook/src/daemon_hook.h: -------------------------------------------------------------------------------- 1 | void initDaemonHooks(void); -------------------------------------------------------------------------------- /BaseBin/launchdhook/src/ipc_hook.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int (*sandbox_check_by_audit_token_orig)(audit_token_t au, const char *operation, int sandbox_filter_type, ...); 5 | int sandbox_check_by_audit_token_hook(audit_token_t au, const char *operation, int sandbox_filter_type, ...) 6 | { 7 | va_list a; 8 | va_start(a, sandbox_filter_type); 9 | const char *name = va_arg(a, const char *); 10 | const void *arg2 = va_arg(a, void *); 11 | const void *arg3 = va_arg(a, void *); 12 | const void *arg4 = va_arg(a, void *); 13 | const void *arg5 = va_arg(a, void *); 14 | const void *arg6 = va_arg(a, void *); 15 | const void *arg7 = va_arg(a, void *); 16 | const void *arg8 = va_arg(a, void *); 17 | const void *arg9 = va_arg(a, void *); 18 | const void *arg10 = va_arg(a, void *); 19 | va_end(a); 20 | if (name && operation) { 21 | if (strcmp(operation, "mach-lookup") == 0) { 22 | if (strncmp((char *)name, "cy:", 3) == 0 || strncmp((char *)name, "lh:", 3) == 0) { 23 | /* always allow */ 24 | return 0; 25 | } 26 | } 27 | } 28 | return sandbox_check_by_audit_token_orig(au, operation, sandbox_filter_type, name, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); 29 | } 30 | 31 | void initIPCHooks(void) 32 | { 33 | MSHookFunction(&sandbox_check_by_audit_token, (void *)sandbox_check_by_audit_token_hook, (void **)&sandbox_check_by_audit_token_orig); 34 | } -------------------------------------------------------------------------------- /BaseBin/launchdhook/src/ipc_hook.h: -------------------------------------------------------------------------------- 1 | void initIPCHooks(void); -------------------------------------------------------------------------------- /BaseBin/launchdhook/src/jbserver/jbserver_global.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | extern struct jbserver_domain gSystemwideDomain; 4 | extern struct jbserver_domain gPlatformDomain; 5 | extern struct jbserver_domain gWatchdogDomain; 6 | extern struct jbserver_domain gRootDomain; 7 | 8 | struct jbserver_impl gGlobalServer = { 9 | .maxDomain = 1, 10 | .domains = (struct jbserver_domain*[]){ 11 | &gSystemwideDomain, 12 | &gPlatformDomain, 13 | &gWatchdogDomain, 14 | &gRootDomain, 15 | NULL, 16 | } 17 | }; -------------------------------------------------------------------------------- /BaseBin/launchdhook/src/jbserver/jbserver_global.h: -------------------------------------------------------------------------------- 1 | #ifndef JBSERVER_XPC_H 2 | #define JBSERVER_XPC_H 3 | 4 | #include 5 | #include 6 | 7 | int jbserver_received_xpc_message(struct jbserver_impl *server, xpc_object_t xmsg); 8 | #endif 9 | -------------------------------------------------------------------------------- /BaseBin/launchdhook/src/jbserver/jbserver_local.h: -------------------------------------------------------------------------------- 1 | #ifndef __JBSERVER_LOCAL 2 | #define __JBSERVER_LOCAL 3 | 4 | mach_port_t jbserver_local_start(void); 5 | void jbserver_local_stop(void); 6 | 7 | #endif -------------------------------------------------------------------------------- /BaseBin/launchdhook/src/jbserver/jbsettings.c: -------------------------------------------------------------------------------- 1 | #include "jbsettings.h" 2 | #include 3 | 4 | int jbsettings_get(const char *key, xpc_object_t *valueOut) 5 | { 6 | if (!strcmp(key, "markAppsAsDebugged")) { 7 | *valueOut = xpc_bool_create(jbsetting(markAppsAsDebugged)); 8 | return 0; 9 | } 10 | else if (!strcmp(key, "jetsamMultiplier")) { 11 | *valueOut = xpc_double_create(jbsetting(jetsamMultiplier)); 12 | return 0; 13 | } 14 | return -1; 15 | } 16 | 17 | int jbsettings_set(const char *key, xpc_object_t value) 18 | { 19 | if (!strcmp(key, "markAppsAsDebugged") && xpc_get_type(value) == XPC_TYPE_BOOL) { 20 | gSystemInfo.jailbreakSettings.markAppsAsDebugged = xpc_bool_get_value(value); 21 | return 0; 22 | } 23 | else if (!strcmp(key, "jetsamMultiplier") && xpc_get_type(value) == XPC_TYPE_DOUBLE) { 24 | gSystemInfo.jailbreakSettings.jetsamMultiplier = xpc_double_get_value(value); 25 | return 0; 26 | } 27 | return -1; 28 | } -------------------------------------------------------------------------------- /BaseBin/launchdhook/src/jbserver/jbsettings.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int jbsettings_get(const char *key, xpc_object_t *valueOut); 4 | int jbsettings_set(const char *key, xpc_object_t value); 5 | -------------------------------------------------------------------------------- /BaseBin/launchdhook/src/jetsam_hook.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | // Allocated page tables (done by physrw handoff) count towards the physical memory footprint of the process that created them 8 | // Unfortunately that means jetsam kills us if we do it too often 9 | // For launchd, we therefore prevent it from enabling jetsam using this hook 10 | 11 | int (*memorystatus_control_orig)(uint32_t command, int32_t pid, uint32_t flags, void *buffer, size_t buffersize); 12 | int memorystatus_control_hook(uint32_t command, int32_t pid, uint32_t flags, void *buffer, size_t buffersize) 13 | { 14 | if (command == MEMORYSTATUS_CMD_SET_JETSAM_TASK_LIMIT) { 15 | return 0; 16 | } 17 | return memorystatus_control_orig(command, pid, flags, buffer, buffersize); 18 | } 19 | 20 | void initJetsamHook(void) 21 | { 22 | MSHookFunction((void *)memorystatus_control, (void *)memorystatus_control_hook, (void **)&memorystatus_control_orig); 23 | } -------------------------------------------------------------------------------- /BaseBin/launchdhook/src/jetsam_hook.h: -------------------------------------------------------------------------------- 1 | void initJetsamHook(void); -------------------------------------------------------------------------------- /BaseBin/launchdhook/src/spawn_hook.h: -------------------------------------------------------------------------------- 1 | void initSpawnHooks(void); -------------------------------------------------------------------------------- /BaseBin/launchdhook/src/update.h: -------------------------------------------------------------------------------- 1 | #ifndef UPDATE_H 2 | #define UPDATE_H 3 | 4 | int jbupdate_basebin(const char *basebinTarPath); 5 | void jbupdate_finalize_stage1(const char *prevVersion, const char *newVersion); 6 | void jbupdate_finalize_stage2(const char *prevVersion, const char *newVersion); 7 | 8 | #endif -------------------------------------------------------------------------------- /BaseBin/launchdhook/src/xpc_hook.h: -------------------------------------------------------------------------------- 1 | void initXPCHooks(void); -------------------------------------------------------------------------------- /BaseBin/libintl.8.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/BaseBin/libintl.8.dylib -------------------------------------------------------------------------------- /BaseBin/libjailbreak/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = libjailbreak.dylib 2 | 3 | CC = clang 4 | 5 | CFLAGS = -framework Foundation -framework CoreServices -framework Security -framework IOKit -framework IOSurface -I../.include -I../_external/modules/litehook/src -isysroot $(shell xcrun --sdk iphoneos --show-sdk-path) -arch arm64 -arch arm64e -miphoneos-version-min=15.0 -fobjc-arc -dynamiclib -install_name @loader_path/$(TARGET) -I$(shell brew --prefix)/opt/libarchive/include -g 6 | LDFLAGS = -larchive -lbsm -L../.build -lchoma 7 | 8 | sign: $(TARGET) 9 | @ldid -S $< 10 | 11 | $(TARGET): $(wildcard src/*.c src/*.m src/*.S ../_external/modules/litehook/src/*.c) 12 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ 13 | 14 | clean: 15 | @rm -f $(TARGET) 16 | -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/basebin_gen.h: -------------------------------------------------------------------------------- 1 | #ifndef __BASEBIN_GEN_H 2 | #define __BASEBIN_GEN_H 3 | 4 | #include 5 | 6 | int basebin_generate(bool comingFromJBUpdate); 7 | 8 | #endif -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/carboncopy.h: -------------------------------------------------------------------------------- 1 | #ifndef __CARBONCOPY_H 2 | #define __CARBONCOPY_H 3 | 4 | #import 5 | 6 | int carbonCopy(NSString *sourcePath, NSString *targetPath); 7 | 8 | #endif -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/jbclient_mach.h: -------------------------------------------------------------------------------- 1 | #ifndef __JBCLIENT_MACH 2 | #define __JBCLIENT_MACH 3 | 4 | #include 5 | #include 6 | #include "jbserver.h" 7 | 8 | mach_port_t jbclient_mach_get_launchd_port(void); 9 | int jbclient_mach_send_msg(mach_msg_header_t *hdr, struct jbserver_mach_msg_reply *reply); 10 | int jbclient_mach_process_checkin(char *jbRootPathOut, char *bootUUIDOut, char *sandboxExtensionsOut, bool *fullyDebuggedOut); 11 | int jbclient_mach_fork_fix(pid_t childPid); 12 | int jbclient_mach_trust_file(int fd, struct siginfo *siginfo); 13 | 14 | #endif -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/jbroot.c: -------------------------------------------------------------------------------- 1 | #include "info.h" 2 | 3 | char *get_jbroot(void) 4 | { 5 | return jbinfo(rootPath); 6 | } -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/jbroot.h: -------------------------------------------------------------------------------- 1 | #ifndef JBROOT_H 2 | #define JBROOT_H 3 | 4 | extern char *_Nullable get_jbroot(void); 5 | 6 | // Partially adapted from libroot for consistency 7 | // This can be included even when libjailbreak is not linked, as long as the includer implements the get_jbroot symbol 8 | 9 | __attribute__((__overloadable__)) 10 | static inline const char *_Nullable __jbroot_convert_path(const char *_Nullable path, char *_Nonnull buf) { 11 | if (!buf || !path) return NULL; 12 | const char *jbroot = get_jbroot(); 13 | if (!jbroot) return NULL; 14 | strlcpy(buf, jbroot, PATH_MAX); 15 | strlcat(buf, path, PATH_MAX); 16 | return buf; 17 | } 18 | 19 | #ifdef __OBJC__ 20 | #import 21 | 22 | __attribute__((__overloadable__)) 23 | static inline NSString *_Nullable __jbroot_convert_path(NSString *_Nullable path, void *_Nullable const __unused buf) { 24 | char tmpBuf[PATH_MAX]; 25 | const char *convertedPath = __jbroot_convert_path(path.fileSystemRepresentation, tmpBuf); 26 | return convertedPath ? [NSString stringWithUTF8String:convertedPath] : nil; 27 | } 28 | 29 | #endif 30 | 31 | #define __BUFFER_FOR_CHAR_P(x) \ 32 | __builtin_choose_expr( \ 33 | __builtin_types_compatible_p(__typeof__(*(x)), char), \ 34 | alloca(PATH_MAX), \ 35 | NULL \ 36 | ) 37 | 38 | #define JBROOT_PATH(path) __jbroot_convert_path((path), __BUFFER_FOR_CHAR_P(path)) 39 | #define ROOTFS_PATH(path) __jbroot_convert_path((path), __BUFFER_FOR_CHAR_P(path)) 40 | 41 | #endif -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/jbserver_boomerang.h: -------------------------------------------------------------------------------- 1 | #ifndef JBSERVER_BOOMERANG_H 2 | #define JBSERVER_BOOMERANG_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #include 10 | #include 11 | 12 | #include "jbserver.h" 13 | 14 | int boomerang_get_physrw(audit_token_t *clientToken, bool singlePTE, uint64_t *singlePTEAsidPtr); 15 | int boomerang_sign_thread(audit_token_t *clientToken, mach_port_t threadPort); 16 | int boomerang_get_sysinfo(xpc_object_t *sysInfoOut); 17 | 18 | extern struct jbserver_impl gBoomerangServer; 19 | int jbserver_received_boomerang_xpc_message(struct jbserver_impl *server, xpc_object_t xmsg); 20 | 21 | #endif -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/jbserver_domains.h: -------------------------------------------------------------------------------- 1 | #ifndef JBSERVER_DOMAINS 2 | #define JBSERVER_DOMAINS 3 | 4 | // Domain: System-Wide 5 | // Reachable from all processes 6 | #define JBS_DOMAIN_SYSTEMWIDE 1 7 | enum { 8 | JBS_SYSTEMWIDE_GET_JBROOT = 1, 9 | JBS_SYSTEMWIDE_GET_BOOT_UUID, 10 | JBS_SYSTEMWIDE_TRUST_FILE, 11 | JBS_SYSTEMWIDE_PROCESS_CHECKIN, 12 | JBS_SYSTEMWIDE_FORK_FIX, 13 | JBS_SYSTEMWIDE_CS_REVALIDATE, 14 | JBS_SYSTEMWIDE_JBSETTINGS_GET, 15 | }; 16 | 17 | // Domain: Platform 18 | // Reachable from all processes that have CS_PLATFORMIZED or are entitled with platform-application or are the Dopamine app itself 19 | #define JBS_DOMAIN_PLATFORM 2 20 | enum { 21 | JBS_PLATFORM_SET_PROCESS_DEBUGGED = 1, 22 | JBS_PLATFORM_STAGE_JAILBREAK_UPDATE, 23 | JBS_PLATFORM_JBSETTINGS_SET, 24 | JBS_PLATFORM_SET_SYSTEMWIDE_DOMAIN_ENABLED, 25 | }; 26 | 27 | 28 | // Domain: Watchdog 29 | // Only reachable from watchdogd 30 | #define JBS_DOMAIN_WATCHDOG 3 31 | enum { 32 | JBS_WATCHDOG_INTERCEPT_USERSPACE_PANIC = 1, 33 | JBS_WATCHDOG_GET_LAST_USERSPACE_PANIC 34 | }; 35 | 36 | // Domain: Root 37 | // Only reachable from root processes 38 | #define JBS_DOMAIN_ROOT 4 39 | enum { 40 | JBS_ROOT_GET_PHYSRW = 1, 41 | JBS_ROOT_SIGN_THREAD, 42 | JBS_ROOT_GET_SYSINFO, 43 | JBS_ROOT_STEAL_UCRED, 44 | JBS_ROOT_SET_MAC_LABEL, 45 | JBS_ROOT_TRUSTCACHE_INFO, 46 | JBS_ROOT_TRUSTCACHE_ADD_CDHASH, 47 | JBS_ROOT_TRUSTCACHE_CLEAR, 48 | }; 49 | 50 | #define JBS_BOOMERANG_DONE 42 51 | 52 | #endif -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/kalloc_pt.h: -------------------------------------------------------------------------------- 1 | #ifndef KALLOC_PT_H 2 | #define KALLOC_PT_H 3 | 4 | void libjailbreak_kalloc_pt_init(void); 5 | 6 | #endif -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/kcall_Fugu14.S: -------------------------------------------------------------------------------- 1 | .global _pac_loop 2 | _pac_loop: 3 | mov x0, #1 4 | adrp x1, _gUserReturnDidHappen@PAGE 5 | str x0, [x1, _gUserReturnDidHappen@PAGEOFF] 6 | b _pac_loop -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/kcall_Fugu14.h: -------------------------------------------------------------------------------- 1 | #ifndef KCALL_FUGU14_H 2 | #define KCALL_FUGU14_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include "kernel.h" 9 | #include "primitives.h" 10 | 11 | typedef struct { 12 | bool inited; 13 | pthread_mutex_t lock; 14 | thread_t thread; 15 | uint64_t actContext; 16 | kRegisterState signedState; 17 | uint64_t kernelStack; 18 | kRegisterState *mappedState; 19 | uint64_t scratchMemory; 20 | uint64_t *scratchMemoryMapped; 21 | } Fugu14KcallThread; 22 | 23 | int fugu14_kcall_init(int (^threadSigner)(mach_port_t threadPort)); 24 | int jbclient_get_fugu14_kcall(void); 25 | 26 | 27 | #endif -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/kcall_arm64.h: -------------------------------------------------------------------------------- 1 | #ifndef KCALL_ARM64_H 2 | #define KCALL_ARM64_H 3 | 4 | #ifndef __arm64e__ 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include "kernel.h" 11 | #include "primitives.h" 12 | 13 | typedef struct { 14 | bool inited; 15 | pthread_mutex_t lock; 16 | dispatch_semaphore_t semaphore; 17 | thread_t thread; 18 | uint64_t actContext; 19 | uint64_t kernelStack; 20 | kRegisterState *alignedState; 21 | } arm64KcallThread; 22 | 23 | void arm64_kcall_return(void); 24 | 25 | int arm64_kcall_init(void); 26 | 27 | #endif 28 | 29 | #endif -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/libjailbreak.h: -------------------------------------------------------------------------------- 1 | #include "primitives.h" 2 | #include "info.h" 3 | #include "kernel.h" 4 | #include "util.h" 5 | #include "translation.h" 6 | #include "trustcache.h" 7 | #include "jbclient_xpc.h" 8 | 9 | int jbclient_initialize_primitives_internal(bool physrwPTE); 10 | int jbclient_initialize_primitives(void); -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/machine_info.h: -------------------------------------------------------------------------------- 1 | #ifndef MACHINE_INFO_H 2 | #define MACHINE_INFO_H 3 | 4 | #include 5 | 6 | /* A8 */ 7 | #ifndef CPUFAMILY_ARM_TYPHOON 8 | #define CPUFAMILY_ARM_TYPHOON 0x2c91a47e 9 | #endif 10 | 11 | /* A9 */ 12 | #ifndef CPUFAMILY_ARM_TWISTER 13 | #define CPUFAMILY_ARM_TWISTER 0x92fb37c8 14 | #endif 15 | 16 | /* A10 */ 17 | #ifndef CPUFAMILY_ARM_HURRICANE 18 | #define CPUFAMILY_ARM_HURRICANE 0x67ceee93 19 | #endif 20 | 21 | /* A11 */ 22 | #ifndef CPUFAMILY_ARM_MONSOON_MISTRAL 23 | #define CPUFAMILY_ARM_MONSOON_MISTRAL 0xe81e7ef6 24 | #endif 25 | 26 | /* A12 */ 27 | #ifndef CPUFAMILY_ARM_VORTEX_TEMPEST 28 | #define CPUFAMILY_ARM_VORTEX_TEMPEST 0x07d34b9f 29 | #endif 30 | 31 | /* A13 */ 32 | #ifndef CPUFAMILY_ARM_LIGHTNING_THUNDER 33 | #define CPUFAMILY_ARM_LIGHTNING_THUNDER 0x462504d2 34 | #endif 35 | 36 | /* A14 */ 37 | #ifndef CPUFAMILY_ARM_FIRESTORM_ICESTORM 38 | #define CPUFAMILY_ARM_FIRESTORM_ICESTORM 0x1b588bb3 39 | #endif 40 | 41 | /* A15 */ 42 | #ifndef CPUFAMILY_ARM_BLIZZARD_AVALANCHE 43 | #define CPUFAMILY_ARM_BLIZZARD_AVALANCHE 0xda33d83d 44 | #endif 45 | 46 | /* A16 */ 47 | #ifndef CPUFAMILY_ARM_EVEREST_SAWTOOTH 48 | #define CPUFAMILY_ARM_EVEREST_SAWTOOTH 0x8765edea 49 | #endif 50 | 51 | /* A17 */ 52 | #ifndef CPUFAMILY_ARM_COLL 53 | #define CPUFAMILY_ARM_COLL 0x2876f5b5 54 | #endif 55 | 56 | #endif /* MACHINE_INFO_H */ 57 | -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/main.c: -------------------------------------------------------------------------------- 1 | #include "jbclient_xpc.h" 2 | #include 3 | #include "physrw.h" 4 | #include "physrw_pte.h" 5 | #include "kalloc_pt.h" 6 | #include "primitives_IOSurface.h" 7 | #include "info.h" 8 | #include "translation.h" 9 | #include "kcall_Fugu14.h" 10 | #include "kcall_arm64.h" 11 | #include 12 | 13 | int jbclient_initialize_primitives_internal(bool physrwPTE) 14 | { 15 | if (getuid() != 0) return -1; 16 | 17 | xpc_object_t xSystemInfo = NULL; 18 | if (jbclient_root_get_sysinfo(&xSystemInfo) == 0) { 19 | SYSTEM_INFO_DESERIALIZE(xSystemInfo); 20 | xpc_release(xSystemInfo); 21 | uint64_t asidPtr = 0; 22 | if (jbclient_root_get_physrw(physrwPTE, &asidPtr) == 0) { 23 | if (physrwPTE) { 24 | libjailbreak_physrw_pte_init(true, asidPtr); 25 | } 26 | else { 27 | libjailbreak_physrw_init(true); 28 | } 29 | libjailbreak_translation_init(); 30 | libjailbreak_IOSurface_primitives_init(); 31 | if (__builtin_available(iOS 16.0, *)) { 32 | libjailbreak_kalloc_pt_init(); 33 | } 34 | if (gPrimitives.kalloc_local) { 35 | #ifdef __arm64e__ 36 | if (jbinfo(usesPACBypass)) { 37 | jbclient_get_fugu14_kcall(); 38 | } 39 | #else 40 | arm64_kcall_init(); 41 | #endif 42 | } 43 | 44 | return 0; 45 | } 46 | } 47 | 48 | return -1; 49 | } 50 | 51 | int jbclient_initialize_primitives(void) 52 | { 53 | return jbclient_initialize_primitives_internal(false); 54 | } 55 | 56 | // Used for supporting third party legacy software that still calls this function 57 | int jbdInitPPLRW(void) 58 | { 59 | return jbclient_initialize_primitives(); 60 | } 61 | -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/physrw.h: -------------------------------------------------------------------------------- 1 | #ifndef PHYSRW_H 2 | #define PHYSRW_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include "info.h" 8 | 9 | #define PPLRW_USER_MAPPING_OFFSET (L1_BLOCK_SIZE * L1_BLOCK_COUNT) - 0x1000000000 10 | #define PPLRW_USER_MAPPING_TTEP_IDX (PPLRW_USER_MAPPING_OFFSET / L1_BLOCK_SIZE) 11 | 12 | int physrw_handoff(pid_t pid); 13 | int libjailbreak_physrw_init(bool receivedHandoff); 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/physrw_pte.h: -------------------------------------------------------------------------------- 1 | #ifndef PHYSRW_PTE_H 2 | #define PHYSRW_PTE_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | int physrw_pte_handoff(pid_t pid, uint64_t *swAsidPtr); 9 | int libjailbreak_physrw_pte_init(bool receivedHandoff, uint64_t asidPtr); 10 | bool device_supports_physrw_pte(void); 11 | 12 | #endif -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/primitives_IOSurface.h: -------------------------------------------------------------------------------- 1 | #ifndef PRIMITIVES_IOSURFACE_H 2 | #define PRIMITIVES_IOSURFACE_H 3 | 4 | void *IOSurface_map(uint64_t phys, uint64_t size); 5 | uint64_t IOSurface_kalloc(uint64_t size, bool leak); 6 | int IOSurface_kalloc_global(uint64_t *addr, uint64_t size); 7 | int IOSurface_kalloc_local(uint64_t *addr, uint64_t size); 8 | void libjailbreak_IOSurface_primitives_init(void); 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/primitives_external.h: -------------------------------------------------------------------------------- 1 | #ifndef PRIMITIVES_EXTERNAL_H 2 | #define PRIMITIVES_EXTERNAL_H 3 | 4 | typedef struct { 5 | uint64_t unk; 6 | uint64_t x[29]; 7 | uint64_t fp; 8 | uint64_t lr; 9 | uint64_t sp; 10 | uint64_t pc; 11 | uint32_t cpsr; 12 | // Other stuff 13 | uint64_t other[70]; 14 | } kRegisterState; 15 | 16 | struct kernel_primitives { 17 | int (*kreadbuf)(uint64_t kaddr, void* output, size_t size); 18 | int (*kwritebuf)(uint64_t kaddr, const void* input, size_t size); 19 | int (*physreadbuf)(uint64_t physaddr, void* output, size_t size); 20 | int (*physwritebuf)(uint64_t physaddr, const void* input, size_t size); 21 | uint64_t (*kcall)(uint64_t func, int argc, const uint64_t *argv); 22 | void (*kexec)(kRegisterState *state); 23 | int (*kalloc_global)(uint64_t *addr, uint64_t size); 24 | int (*kalloc_local)(uint64_t *addr, uint64_t size); 25 | int (*kfree_global)(uint64_t addr, uint64_t size); 26 | int (*kmap)(uint64_t pa, uint64_t size, void **uaddr); 27 | uint64_t (*vtophys)(uint64_t ttep, uint64_t va); 28 | uint64_t (*phystokv)(uint64_t pa); 29 | }; 30 | 31 | extern struct kernel_primitives gPrimitives; 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/pvh.h: -------------------------------------------------------------------------------- 1 | #ifndef PVH_H 2 | #define PVH_H 3 | 4 | #define PVH_TYPE_MASK (0x3UL) 5 | #define PVH_LIST_MASK (~PVH_TYPE_MASK) 6 | #define PVH_FLAG_CPU (1ULL << 62) 7 | #define PVH_LOCK_BIT 61 8 | #define PVH_FLAG_LOCK (1ULL << PVH_LOCK_BIT) 9 | #define PVH_FLAG_EXEC (1ULL << 60) 10 | #define PVH_FLAG_LOCKDOWN_KC (1ULL << 59) 11 | #define PVH_FLAG_HASHED (1ULL << 58) 12 | #define PVH_FLAG_LOCKDOWN_CS (1ULL << 57) 13 | #define PVH_FLAG_LOCKDOWN_RO (1ULL << 56) 14 | #define PVH_FLAG_FLUSH_NEEDED (1ULL << 54) 15 | #define PVH_FLAG_LOCKDOWN_MASK (PVH_FLAG_LOCKDOWN_KC | PVH_FLAG_LOCKDOWN_CS | PVH_FLAG_LOCKDOWN_RO) 16 | #define PVH_HIGH_FLAGS (PVH_FLAG_CPU | PVH_FLAG_LOCK | PVH_FLAG_EXEC | PVH_FLAG_LOCKDOWN_MASK | \ 17 | PVH_FLAG_HASHED | PVH_FLAG_FLUSH_NEEDED) 18 | 19 | #define PVH_TYPE_NULL 0x0UL 20 | #define PVH_TYPE_PVEP 0x1UL 21 | #define PVH_TYPE_PTEP 0x2UL 22 | #define PVH_TYPE_PTDP 0x3UL 23 | 24 | #endif -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/signatures.h: -------------------------------------------------------------------------------- 1 | #ifndef SIGNATURES_H 2 | #define SIGNATURES_H 3 | 4 | #include 5 | 6 | typedef enum { 7 | SIGNATURE_SOURCE_FILE, 8 | SIGNATURE_SOURCE_PROC, 9 | } signature_source_t; 10 | 11 | struct siginfo { 12 | signature_source_t source; 13 | fsignatures_t signature; 14 | }; 15 | 16 | typedef uint8_t cdhash_t[CS_CDHASH_LEN]; 17 | 18 | bool code_signature_calculate_adhoc_cdhash(CS_SuperBlob *superblob, cdhash_t cdhashOut); 19 | void file_collect_untrusted_cdhashes(int fd, cdhash_t **cdhashesOut, uint32_t *cdhashCountOut); 20 | void file_collect_untrusted_cdhashes_by_path(const char *path, cdhash_t **cdhashesOut, uint32_t *cdhashCountOut); 21 | #endif -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/translation.h: -------------------------------------------------------------------------------- 1 | #ifndef TRANSLATION_H 2 | #define TRANSLATION_H 3 | 4 | #include 5 | #include "pte.h" 6 | 7 | uint64_t phystokv(uint64_t pa); 8 | uint64_t vtophys_lvl(uint64_t tte_ttep, uint64_t va, uint64_t *leaf_level, uint64_t *leaf_tte_ttep); 9 | uint64_t vtophys(uint64_t tte_ttep, uint64_t va); 10 | uint64_t kvtophys(uint64_t va); 11 | void libjailbreak_translation_init(void); 12 | 13 | #endif -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/trustcache.h: -------------------------------------------------------------------------------- 1 | #ifndef TRUSTCACHE_H 2 | #define TRUSTCACHE_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include "trustcache_structs.h" 9 | #include 10 | 11 | #define BASEBIN_TRUSTCACHE_UUID (uuid_t){'B','A','S','E','B','I','N','\0','\0','\0','\0','\0','\0','\0','\0','\0'} 12 | #define DYLD_TRUSTCACHE_UUID (uuid_t){'D','Y','L','D','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0','\0'} 13 | 14 | int trustcache_list_insert(uint64_t tcKaddr); 15 | 16 | int jb_trustcache_add_entries(struct trustcache_entry_v1 *entries, uint32_t entryCount); 17 | int jb_trustcache_add_entry(trustcache_entry_v1 entry); 18 | int jb_trustcache_add_cdhashes(cdhash_t *hashes, uint32_t hashCount); 19 | xpc_object_t jb_trustcache_info(void); 20 | void jb_trustcache_clear(void); 21 | 22 | //int jb_trustcache_add_file(const char *filePath); 23 | //int jb_trustcache_add_directory(const char *directoryPath); 24 | //void jb_trustcache_rebuild(void); 25 | 26 | void jb_trustcache_debug_print(FILE *f); 27 | 28 | int trustcache_file_upload(trustcache_file_v1 *tc); 29 | int trustcache_file_upload_with_uuid(trustcache_file_v1 *tc, uuid_t uuid); 30 | int trustcache_file_build_from_cdhashes(cdhash_t *CDHashes, uint32_t CDHashCount, trustcache_file_v1 **tcOut); 31 | int trustcache_file_build_from_path(const char *filePath, trustcache_file_v1 **tcOut); 32 | 33 | bool is_cdhash_in_trustcache(uint64_t tcKaddr, cdhash_t CDHash); 34 | bool is_cdhash_trustcached(cdhash_t CDHash); 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /BaseBin/libjailbreak/src/trustcache_structs.h: -------------------------------------------------------------------------------- 1 | #ifndef TRUSTCACHE_STRUCTS_H 2 | #define TRUSTCACHE_STRUCTS_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | // TODO: Move to ChOma? 9 | #define CS_CDHASH_LEN 20 10 | 11 | typedef uint8_t cdhash_t[CS_CDHASH_LEN]; 12 | 13 | typedef struct trustcache_entry_v1 14 | { 15 | cdhash_t hash; 16 | uint8_t hash_type; 17 | uint8_t flags; 18 | } __attribute__((__packed__)) trustcache_entry_v1; 19 | 20 | typedef struct s_trustcache_file_v1 21 | { 22 | uint32_t version; 23 | uuid_t uuid; 24 | uint32_t length; 25 | trustcache_entry_v1 entries[]; 26 | } __attribute__((__packed__)) trustcache_file_v1; 27 | 28 | #define JB_MAGIC 0x424a424a424a424a // "JBJBJBJB" 29 | typedef struct jb_trustcache 30 | { 31 | // On iOS 15, the trustcache struct has a size of 0x10 32 | // On iOS 16, it has one of 0x28, we just have to make sure our field is bigger 33 | uint8_t trustcache[0x40]; 34 | uint64_t magic; 35 | trustcache_file_v1 file; 36 | } __attribute__((__packed__)) jb_trustcache; 37 | 38 | #define JB_TRUSTCACHE_SIZE 0x4000 39 | #define JB_TRUSTCACHE_ENTRY_COUNT ((JB_TRUSTCACHE_SIZE - sizeof(jb_trustcache)) / sizeof(trustcache_entry_v1)) 40 | 41 | #endif -------------------------------------------------------------------------------- /BaseBin/rootlesshooks/.gitignore: -------------------------------------------------------------------------------- 1 | .theos -------------------------------------------------------------------------------- /BaseBin/rootlesshooks/Makefile: -------------------------------------------------------------------------------- 1 | TARGET := iphone:clang:latest:15.0 2 | INSTALL_TARGET_PROCESSES = lsd cfprefsd 3 | FINALPACKAGE = 1 4 | THEOS_PACKAGE_SCHEME = rootless 5 | ARCHS = arm64 arm64e 6 | 7 | include $(THEOS)/makefiles/common.mk 8 | 9 | TWEAK_NAME = rootlesshooks 10 | 11 | rootlesshooks_FILES = $(wildcard *.x) 12 | rootlesshooks_CFLAGS = -fobjc-arc -I../.include 13 | rootlesshooks_LDFLAGS = -rpath @loader_path/fallback -L../libjailbreak -ljailbreak 14 | 15 | include $(THEOS_MAKE_PATH)/tweak.mk 16 | -------------------------------------------------------------------------------- /BaseBin/rootlesshooks/installd.x: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | // BOOTLOOP RISK, DO NOT TOUCH 4 | /*%hook MIGlobalConfiguration 5 | 6 | - (NSMutableDictionary *)_bundleIDMapForBundlesInDirectory:(NSURL *)directoryURL 7 | withExtension:(NSString *)extension 8 | loadingAdditionalKeys:(NSSet *)additionalKeys 9 | { 10 | NSLog(@"_bundleIDMapForBundlesInDirectory(%@, %@, %@)", directoryURL, extension, additionalKeys); 11 | 12 | if ([directoryURL.path isEqualToString:@"/Applications"] && [extension isEqualToString:@"app"]) { 13 | NSMutableDictionary *origMap = %orig; 14 | 15 | NSURL *rootlessAppDir = [NSURL fileURLWithPath:@"/var/jb/Applications" isDirectory:YES]; 16 | NSMutableDictionary *rootlessAppsMap = %orig(rootlessAppDir, extension, additionalKeys); 17 | [origMap addEntriesFromDictionary:rootlessAppsMap]; 18 | return origMap; 19 | } 20 | 21 | return %orig; 22 | } 23 | 24 | %end*/ 25 | 26 | void installdInit(void) 27 | { 28 | %init(); 29 | } 30 | -------------------------------------------------------------------------------- /BaseBin/rootlesshooks/lsd.x: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | 5 | %hookf(NSURL *, _LSGetInboxURLForBundleIdentifier, NSString *bundleIdentifier) 6 | { 7 | NSURL *origURL = %orig; 8 | if (![bundleIdentifier hasPrefix:@"com.apple"] && [origURL.path hasPrefix:@"/var/mobile/Library/Application Support/Containers/"]) { 9 | return [NSURL fileURLWithPath:JBROOT_PATH_NSSTRING(origURL.path)]; 10 | } 11 | return origURL; 12 | } 13 | 14 | %hookf(int, _LSServer_RebuildApplicationDatabases) 15 | { 16 | int r = %orig; 17 | 18 | dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 19 | // Ensure jailbreak apps are readded to icon cache after the system reloads it 20 | // A bit hacky, but works 21 | const char *uicachePath = JBROOT_PATH_CSTRING("/usr/bin/uicache"); 22 | if (!access(uicachePath, F_OK)) { 23 | exec_cmd(uicachePath, "-a", NULL); 24 | } 25 | }); 26 | 27 | return r; 28 | } 29 | 30 | void lsdInit(void) 31 | { 32 | MSImageRef coreServicesImage = MSGetImageByName("/System/Library/Frameworks/CoreServices.framework/CoreServices"); 33 | if (coreServicesImage) { 34 | %init(_LSGetInboxURLForBundleIdentifier = MSFindSymbol(coreServicesImage, "__LSGetInboxURLForBundleIdentifier"), 35 | _LSServer_RebuildApplicationDatabases = MSFindSymbol(coreServicesImage, "__LSServer_RebuildApplicationDatabases")); 36 | } 37 | } -------------------------------------------------------------------------------- /BaseBin/rootlesshooks/main.x: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | NSString* safe_getExecutablePath() 5 | { 6 | char executablePathC[PATH_MAX]; 7 | uint32_t executablePathCSize = sizeof(executablePathC); 8 | _NSGetExecutablePath(&executablePathC[0], &executablePathCSize); 9 | return [NSString stringWithUTF8String:executablePathC]; 10 | } 11 | 12 | NSString* getProcessName() 13 | { 14 | return safe_getExecutablePath().lastPathComponent; 15 | } 16 | 17 | %ctor 18 | { 19 | NSString *processName = getProcessName(); 20 | /*if ([processName isEqualToString:@"installd"]) { 21 | extern void installdInit(void); 22 | installdInit(); 23 | } 24 | else*/ if ([processName isEqualToString:@"cfprefsd"]) { 25 | extern void cfprefsdInit(void); 26 | cfprefsdInit(); 27 | } 28 | else if ([processName isEqualToString:@"SpringBoard"]) { 29 | extern void springboardInit(void); 30 | springboardInit(); 31 | } 32 | else if ([processName isEqualToString:@"lsd"]) { 33 | extern void lsdInit(void); 34 | lsdInit(); 35 | } 36 | } -------------------------------------------------------------------------------- /BaseBin/systemhook/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = systemhook.dylib 2 | CC = clang 3 | 4 | CFLAGS = -I../.include -I./src -I../_external/modules/litehook/src -isysroot $(shell xcrun --sdk iphoneos --show-sdk-path) -arch arm64 -arch arm64e -miphoneos-version-min=15.0 -install_name @loader_path/$(TARGET) -Wno-deprecated-declarations -Os -moutline 5 | LDFLAGS = -dynamiclib 6 | 7 | sign: $(TARGET) 8 | @ldid -S $^ 9 | 10 | $(TARGET): $(wildcard src/*.c src/*.m ../libjailbreak/src/jbclient_*.c ../_external/modules/litehook/src/*.c) 11 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ 12 | 13 | clean: 14 | @rm -f $(TARGET) 15 | -------------------------------------------------------------------------------- /BaseBin/systemhook/src/common.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include "private.h" 5 | 6 | #define HOOK_DYLIB_PATH "/usr/lib/systemhook.dylib" 7 | 8 | typedef enum 9 | { 10 | kSpawnConfigInject = 1 << 0, 11 | kSpawnConfigTrust = 1 << 1, 12 | } kSpawnConfig; 13 | 14 | int __posix_spawn(pid_t *restrict pid, const char *restrict path, struct _posix_spawn_args_desc *desc, char *const argv[restrict], char *const envp[restrict]); 15 | int __execve(const char *path, char *const argv[], char *const envp[]); 16 | 17 | bool string_has_prefix(const char *str, const char* prefix); 18 | bool string_has_suffix(const char* str, const char* suffix); 19 | 20 | int __posix_spawn_orig(pid_t *restrict pid, const char *restrict path, struct _posix_spawn_args_desc *desc, char *const argv[restrict], char * const envp[restrict]); 21 | int __execve_orig(const char *path, char *const argv[], char *const envp[]); 22 | 23 | int resolvePath(const char *file, const char *searchPath, int (^attemptHandler)(char *path)); 24 | int posix_spawn_hook_shared(pid_t *restrict pid, const char *restrict path, struct _posix_spawn_args_desc *desc, char *const argv[restrict], char *const envp[restrict], void *orig, int (*trust_binary)(const char *path), int (*set_process_debugged)(uint64_t pid, bool fullyDebugged), double jetsamMultiplier); 25 | int execve_hook_shared(const char *path, char *const argv[], char *const envp[], void *orig, int (*trust_binary)(const char *path)); -------------------------------------------------------------------------------- /BaseBin/systemhook/src/envbuf.h: -------------------------------------------------------------------------------- 1 | int envbuf_len(const char *envp[]); 2 | char **envbuf_mutcopy(const char *envp[]); 3 | void envbuf_free(char *envp[]); 4 | int envbuf_find(const char *envp[], const char *name); 5 | const char *envbuf_getenv(const char *envp[], const char *name); 6 | void envbuf_setenv(char **envpp[], const char *name, const char *value); 7 | void envbuf_unsetenv(char **envpp[], const char *name); -------------------------------------------------------------------------------- /BaseBin/systemhook/src/launchd.h: -------------------------------------------------------------------------------- 1 | #define OS_ALLOC_ONCE_KEY_MAX 100 2 | 3 | struct _os_alloc_once_s { 4 | long once; 5 | void *ptr; 6 | }; 7 | 8 | struct xpc_global_data { 9 | uint64_t a; 10 | uint64_t xpc_flags; 11 | mach_port_t task_bootstrap_port; /* 0x10 */ 12 | #ifndef _64 13 | uint32_t padding; 14 | #endif 15 | xpc_object_t xpc_bootstrap_pipe; /* 0x18 */ 16 | // and there's more, but you'll have to wait for MOXiI 2 for those... 17 | // ... 18 | }; 19 | 20 | extern struct _os_alloc_once_s _os_alloc_once_table[]; 21 | extern void* _os_alloc_once(struct _os_alloc_once_s *slot, size_t sz, os_function_t init); 22 | -------------------------------------------------------------------------------- /BaseBin/systemhook/upload.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | 3 | PROJECT_NAME=systemhook.dylib 4 | DEVICE=root@localhost 5 | PORT=2223 6 | 7 | make 8 | ssh $DEVICE -p $PORT "rm -rf /var/jb/$PROJECT_NAME" 9 | scp -P$PORT ./$PROJECT_NAME $DEVICE:/var/jb/$PROJECT_NAME 10 | ssh $DEVICE -p $PORT "/var/jb/basebin/jbctl rebuild_trustcache" -------------------------------------------------------------------------------- /BaseBin/tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wwg135/Dopamine/0d4f900bc37618c06889b8c1c69df51b9ce9b9d0/BaseBin/tar -------------------------------------------------------------------------------- /BaseBin/watchdoghook/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = watchdoghook.dylib 2 | CC = clang 3 | 4 | CFLAGS = -framework Foundation -framework CoreServices -framework Security -I../.include -I./src -isysroot $(shell xcrun --sdk iphoneos --show-sdk-path) -arch arm64 -arch arm64e -miphoneos-version-min=15.0 -fobjc-arc -O2 5 | LDFLAGS = -dynamiclib -rpath /var/jb/Library/Frameworks -rpath @loader_path/fallback -L../_external/lib -lellekit -framework IOKit 6 | 7 | sign: $(TARGET) 8 | @ldid -S $^ 9 | 10 | $(TARGET): $(wildcard src/*.m src/*.c ../libjailbreak/src/jbclient_*.c) 11 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ 12 | 13 | clean: 14 | @rm -f $(TARGET) 15 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023-2024 Lars Fröder (opa334) 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 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | export NIGHTLY ?= 0 2 | 3 | ifeq ($(NIGHTLY), 1) 4 | export COMMIT_HASH = $(shell git rev-parse HEAD) 5 | endif 6 | 7 | all: 8 | @$(MAKE) -C BaseBin 9 | @$(MAKE) -C Packages 10 | @$(MAKE) -C Application 11 | 12 | clean: 13 | @$(MAKE) -C BaseBin clean 14 | @$(MAKE) -C Packages clean 15 | @$(MAKE) -C Application clean 16 | 17 | update: all 18 | ssh $(DEVICE) "rm -rf /var/mobile/Documents/Dopamine.tipa" 19 | scp -C ./Application/Dopamine.tipa "$(DEVICE):/var/mobile/Documents/Dopamine.tipa" 20 | ssh $(DEVICE) "/var/jb/basebin/jbctl update tipa /var/mobile/Documents/Dopamine.tipa" 21 | 22 | update-basebin: all 23 | ssh $(DEVICE) "rm -rf /var/mobile/Documents/basebin.tar" 24 | scp -C ./BaseBin/basebin.tar "$(DEVICE):/var/mobile/Documents/basebin.tar" 25 | ssh $(DEVICE) "/var/jb/basebin/jbctl update basebin /var/mobile/Documents/basebin.tar" 26 | 27 | .PHONY: update clean -------------------------------------------------------------------------------- /Packages/.gitignore: -------------------------------------------------------------------------------- 1 | libkrw-provider/libkrw-dopamine.* 2 | libroot/libroot.* 3 | basebin-link/basebin-link.* -------------------------------------------------------------------------------- /Packages/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | @$(MAKE) -C libkrw-provider package 3 | @$(MAKE) -C libroot package 4 | @$(MAKE) -C basebin-link package 5 | 6 | clean: 7 | @$(MAKE) -C libkrw-provider clean 8 | @$(MAKE) -C libroot clean 9 | @$(MAKE) -C basebin-link clean 10 | 11 | .PHONY: clean -------------------------------------------------------------------------------- /Packages/basebin-link/Makefile: -------------------------------------------------------------------------------- 1 | package: $(TARGET) 2 | @mkdir -p .package/DEBIAN 3 | @mkdir -p .package/var/jb/usr/bin 4 | @mkdir -p .package/var/jb/usr/lib 5 | @cp control .package/DEBIAN/control 6 | @ln -s ../../basebin/jbctl .package/var/jb/usr/bin/jbctl 7 | @ln -s ../../basebin/opainject .package/var/jb/usr/bin/opainject 8 | @ln -s ../../basebin/libjailbreak.dylib .package/var/jb/usr/lib/libjailbreak.dylib 9 | @dpkg-deb --root-owner-group -Zzstd -b .package ./basebin-link.deb 10 | @rm -rf .package 11 | 12 | clean: 13 | @rm -rf basebin-link.deb -------------------------------------------------------------------------------- /Packages/basebin-link/control: -------------------------------------------------------------------------------- 1 | Package: dopamine-basebin-link 2 | Name: Dopamine BaseBin Link 3 | Author: opa334 4 | Maintainer: opa334 5 | Architecture: iphoneos-arm64 6 | Version: 1.0.0 7 | Provides: opainject 8 | Section: Libraries 9 | Priority: standard 10 | Homepage: https://github.com/opa334/Dopamine/tree/main/BaseBin 11 | Description: Symlinks to Dopamine Base Binaries 12 | -------------------------------------------------------------------------------- /Packages/libkrw-provider/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = libkrw-dopamine.dylib 2 | CC = clang 3 | 4 | CFLAGS = -I../../BaseBin/.include -Isrc -isysroot $(shell xcrun --sdk iphoneos --show-sdk-path) -arch arm64 -arch arm64e -miphoneos-version-min=15.0 -fobjc-arc -O2 5 | LDFLAGS = -dynamiclib -rpath /var/jb/usr/lib -L../../BaseBin/.build -ljailbreak 6 | 7 | all: $(TARGET) sign 8 | 9 | sign: $(TARGET) 10 | @ldid -S $^ 11 | 12 | $(TARGET): $(wildcard src/*.c) 13 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ 14 | install_name_tool -change "@loader_path/libjailbreak.dylib" "@rpath/libjailbreak.dylib" $@ 15 | 16 | clean: 17 | @rm -f $(TARGET) 18 | @rm -f libkrw-dopamine.deb 19 | 20 | package: all 21 | @mkdir -p .package/DEBIAN 22 | @mkdir -p .package/var/jb/usr/lib/libkrw 23 | @cp control .package/DEBIAN/control 24 | @cp libkrw-dopamine.dylib .package/var/jb/usr/lib/libkrw/libkrw-dopamine.dylib 25 | @dpkg-deb --root-owner-group -Zzstd -b .package ./libkrw-dopamine.deb 26 | @rm -rf .package 27 | -------------------------------------------------------------------------------- /Packages/libkrw-provider/control: -------------------------------------------------------------------------------- 1 | Package: libkrw0-dopamine 2 | Name: libkrw Plug-in (Dopamine) 3 | Author: opa334 4 | Maintainer: opa334 5 | Architecture: iphoneos-arm64 6 | Version: 2.0.4 7 | Provides: libkrw0-plugin 8 | Depends: libiosexec1 (>= 1.3.1) 9 | Section: Libraries 10 | Priority: standard 11 | Homepage: https://github.com/opa334/Dopamine/tree/main/Packages/libkrw-provider 12 | Description: libkrw Plug-in for Dopamine (Shared Library) 13 | -------------------------------------------------------------------------------- /Packages/libroot/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = libroot.dylib 2 | CC = clang 3 | 4 | CFLAGS = -I../../BaseBin/.include -Isrc -isysroot $(shell xcrun --sdk iphoneos --show-sdk-path) -arch arm64 -arch arm64e -miphoneos-version-min=15.0 -fobjc-arc -O2 5 | LDFLAGS = -dynamiclib -rpath /var/jb 6 | 7 | all: $(TARGET) sign 8 | 9 | sign: $(TARGET) 10 | @ldid -S $^ 11 | 12 | $(TARGET): $(wildcard src/*.c ../../BaseBin/libjailbreak/src/jbclient_*.c) 13 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ 14 | 15 | clean: 16 | @rm -f $(TARGET) 17 | @rm -f libroot.deb 18 | 19 | package: all 20 | @mkdir -p .package/DEBIAN 21 | @mkdir -p .package/var/jb/usr/lib 22 | @cp control .package/DEBIAN/control 23 | @cp libroot.dylib .package/var/jb/usr/lib/libroot.dylib 24 | @dpkg-deb --root-owner-group -Zzstd -b .package ./libroot.deb 25 | @rm -rf .package -------------------------------------------------------------------------------- /Packages/libroot/control: -------------------------------------------------------------------------------- 1 | Package: libroot-dopamine 2 | Name: libroot (Dopamine) 3 | Author: opa334 4 | Maintainer: opa334 5 | Architecture: iphoneos-arm64 6 | Version: 1.0.1 7 | Priority: optional 8 | Section: Development 9 | Description: libroot for Dopamine 10 | -------------------------------------------------------------------------------- /Packages/libroot/src/paths.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | const char *libroot_get_root_prefix(void) 4 | { 5 | return ""; 6 | } 7 | 8 | const char *libroot_get_jbroot_prefix(void) 9 | { 10 | return jbclient_get_jbroot(); 11 | } 12 | 13 | const char *libroot_get_boot_uuid(void) 14 | { 15 | return jbclient_get_boot_uuid(); 16 | } 17 | -------------------------------------------------------------------------------- /Packages/libroot/src/paths.h: -------------------------------------------------------------------------------- 1 | #ifndef LIBROOT_PATHS_H 2 | #define LIBROOT_PATHS_H 3 | 4 | const char *libroot_get_root_prefix(void); 5 | const char *libroot_get_jbroot_prefix(void); 6 | const char *libroot_get_boot_uuid(void); 7 | 8 | #endif -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Dopamine 4 | 5 | A rootless semi-untethered jailbreak for iOS 15.0 - 16.5.1 (arm64e) and iOS 15.0 - 16.6.1 (arm64). More details will follow here soon. 6 | 7 | Please note that all issues related to version support will be deleted without response. 8 | 9 | Official website / download: https://ellekit.space/dopamine/ 10 | --------------------------------------------------------------------------------