├── .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 |
--------------------------------------------------------------------------------