Releases: opa334/Dopamine
Releases · opa334/Dopamine
2.4.1
2.4
NOTE: Doing an OTA update to this version will reboot your device, requiring a rejailbreak afterwards, this is expected and unavoidable, because Dopamine <=2.3 has a bind mount that cannot possibly be unmounted without panicing the device.
- Add a workaround for spinlock panics on iOS 15 arm64e that fully prevents them in all cases (except one, see below*)
- Make "Hide Jailbreak" fully hide the jailbreak, to the point where it should be undetectable (see notes below)
- Apply sandbox patches before linking, fixes issues when a process directly links against a library inside /var/jb
- Improve and optimize library validation bypass
- Slightly improve forkfix
- Fix/reenable tweak injection into WebContent on iOS 16
- Fix a rare system deadlock during "Initializing Jailbreak"
CAVEATS WITH "HIDE JAILBREAK":
- Once you have hidden the jailbreak once since the last userspace reboot, spinlock panics can happen again* if your device is affected by them (iOS 15 arm64e), this is because the spinlock workaround relies on a dyld hook, which has to be disabled to properly hide the jailbreak, there is not much that can be done about this, the only idea I had did not work when I tested it
- When hiding the jailbreak, a few processes, such as apps where tweak injection has been disabled via Choicy, will crash, I was trying to fully fix this by deprecating the /usr/lib bind mount in favor of a namecache based solution, but that caused weird panics on iOS 16 (the code for this has been pushed to the
nofakelib
branch), so unless a fix for those can be found, there is nothing I can do about this
POTENTIAL CAVEATS WITH JAILBREAK DETECTION:
- Since Dopamine 2.4 has introduced a dyld hook and also redirects dyld to a different folder via symlink now, it might be slightly more detectable, even while tweak injection for an app is disabled, there is not much that can be done about this, but as explained in the change log, the "Hide Jailbreak" option now works better as a result of these changes
2.2.2
- Stop redirecting all
execve
calls toposix_spawn
, fixes issues with certain sandbox profiles (e.g.configd
) that blockposix_spawn
but allowexecve
, fixes WPA2/3 ENTERPRISE networks not working (these issues started in 2.2 but were not a regression, in earlier versions the exec call was not hooked properly which is why this wasn't noticed before)
2.2.1
2.2
- Remove
DYLD_INTERPOSE
in favor of other hooking techniques, sinceDYLD_INTERPOSE
was apparently causing memory usage to be much higher than what it should be - The jetsam multiplier can now be configured inside the Dopamine app, in previous Dopamine versions this was 3x everywhere with no option to configure it, due to the removal of the
DYLD_INTERPOSE
, the default setting has been able to be lowered to 2x NSTask
is now supported everywhere by default, unlike before where it was only supported inside tweak dylibs or when you calleddopamine_fix_NSTask
yourself- Due to the better hooking techniques, a lot of unnecessary code has been able to be removed
- Fix kcall on iOS 15 arm64 not working from libkrw and iDownload
- Fix
frida-ps -U
panicing the device (To be honest, I have no clue what change actually fixed this, the only thing I know is that it happens in older Dopamine versions and doesn't happen in 2.2 anymore) - Improve launchd crash reporter in various different ways
- Code cleanup
2.1.7
2.1.6
- Fix jailbreaking with developer mode disabled not working on iOS 16.0 - 16.3.1 arm64
- Fix weightBufs not working on some device / version combinations
- Fix libkrw physrw not working when kcall is not available
- Improve libkrw packaging and error handling
- Skip installing a bundled package if a newer version is installed already
- When an update is available while unjailbroken, it will now be opened directly in TrollStore if it's URL scheme is enabled
2.1.5
- Allow binaries to get custom pmap_cs trust level via the
jb.pmap_cs_custom_trust
entitlement, possible values: {"PMAP_CS_PROFILE_PREFLIGHT"
,"PMAP_CS_COMPILATION_SERVICE"
,"PMAP_CS_OOP_JIT"
(iOS 16 only),"PMAP_CS_LOCAL_SIGNING"
,"PMAP_CS_PROFILE_VALIDATED"
,"PMAP_CS_APP_STORE"
,"PMAP_CS_IN_LOADED_TRUST_CACHE"
,"PMAP_CS_IN_STATIC_TRUST_CACHE"
}, a lower trust level allows the process to be less restricted by PMAP_CS, this in practice fixes the EQE app and it's Lua recompiler not to work (but only if it has the entitlement, so make sure you use the newest EQE build) - Fix
posix_spawnattr_setarchpref_np
not being supported by the codesign bypass (#573)
2.1.4
- Only automatically fix up permissions of relevant directories inside
/var/jb/var/mobile
, rather than the entirety of it - Skip permission fix up if either
/var/jb/var
or/var/jb/var/mobile
is a symbolic link, previously there was a bootloop risk when either of them point to the real/var
or/var/mobile
2.1.3
- Fix system deadlocks on some devices resulting in watchdogd timeout [2.0 regression]
- Automatically recursively fix /var/jb/var/mobile permissions (Fixes file sharing with jb apps still not working for some people)
- Fix codesigning bypass not working on binaries that have an armv6 slice (There probably isn't a single binary with such a slice though) [2.1 regression]
- Fix multicast_bytecopy not working on iPad Mini 6 (Contributed by @m1zole)
Build has been pulled due to a rare bootloop risk, use a later version