opa334 / Dopamine

Dopamine is a semi-untethered jailbreak for iOS 15 and 16
MIT License
3.53k stars 2.92k forks source link

School Network no longer connecting after updating to Dopamine 2.2.1 #614

Closed JWIMaster closed 3 months ago

JWIMaster commented 3 months ago

I have tested this across my iPhone SE 1 on 15.8.2 and my iPad 7th Gen on 15.7.6. All other networks work, and no amount of downgrading to older Dopamine versions fixes it, although using Meowbrek as a jailbreak does.

U53R123 commented 3 months ago

same here, iphone 11 on 15.1 wifi stopped working for school wifi and xfinity wifi (both using 802.1X authentication and required a profile) on 2.2 for me, was fine on 2.1.7

while unjailbroken it works fine:

opa334 commented 3 months ago

This doesn't really make any sense, not much changed

opa334 commented 3 months ago

Well if no previous Dopamine version works either, then it does make sense, I do remember reading something about this previously a year ago or so....

U5KUN commented 3 months ago

I can’t connect to school wifi on dopamine 2.1 2.2 and 2.2.1. But on 2.1.7, I can connect to the wifi.

iPhoneSE2 iOS15.5

Tawnee323 commented 3 months ago

Did you typo 2.2 as 2.1?

I can’t connect to school wifi on dopamine 2.1 and 2.2.1. But on 2.1.7, I can connect to the wifi.

iPhoneSE2 iOS15.5

Did you typo 2.2 as 2.1?

JWIMaster commented 3 months ago

I have just tested 2.1.7 and can confirm that it does work on the school network, where 2.2.1 does not. Interestingly though, for a period of time I believe that 2.2 was working, although I may be wrong and whatever 2.2 changed didn't apply until I installed 2.2.1

U5KUN commented 3 months ago

Did you typo 2.2 as 2.1?

I can’t connect to school wifi on dopamine 2.1 and 2.2.1. But on 2.1.7, I can connect to the wifi. iPhoneSE2 iOS15.5

Did you typo 2.2 as 2.1?

Oh, thank you.

opa334 commented 3 months ago

After failing to connect to this kind of wifi, someone needs to produce a sysdiagnose (https://it-training.apple.com/tutorials/support/sup075/) and send it to me via email (opa334@protonmail.com) alongside the exact time at which the connection was attempted.

GoldenAppleGuy commented 3 months ago

I was experiencing the same issues on 2.2. It may have something to do with WPA2 Enterprise or those certificates as other WiFi networks work just fine.

opa334 commented 3 months ago

It would be nice if someone here could DM me on Discord (@opa334) and assist me in testing

opa334 commented 3 months ago

Should be fixed in this build https://we.tl/t-zvPcS7xAS7

Please test and report back!

paradiseduo commented 3 months ago

Has same problem

opa334 commented 3 months ago

Has same problem

Need a new sysdiagnose then...

opa334 commented 3 months ago

I have managed to isolate this issue and reproduce it now.

The root issue is that the sandbox of configd does allow the syscall execve but blocks the syscall posix_spawn. Dopamine has always hooked execve to call posix_spawn for unified behavior which is what caused this issue, since posix_spawn is blocked. I have now reworked things to call execve when coming from it.

As a test I made a dylib that calls execv on "/System/Library/SystemConfiguration/EAPOLController.bundle/eapolclient", which is one of the two possible binaries that can be execve'd from configd and started my own configd process with that dylib injected into it.

Dopamine 2.2.1 (fails):

iPhone-13-Pro-von-Lars:~ root# DYLD_INSERT_LIBRARIES=/var/jb/configd_test.dylib /usr/libexec/configd
about to exec...
execv => -1

Build shared here (works):

iPhone-13-Pro-von-Lars:~ root# DYLD_INSERT_LIBRARIES=/var/jb/configd_test.dylib /usr/libexec/configd
about to exec...
usage:
(null) -i <if_name> [ -u <uid> ] [ -g <gid> ]

In Dopamine 2.1.x and below, due to DYLD_INTERPOSE being shit, the execv call was not caught, since it's in the SystemConfiguration framework and interposes don't affect branches from inside the DSC. That explains why this never was an issue earlier.

So unfortunately @paradiseduo, you must be wrong. Make sure you actually rejailbroke with the new build?

opa334 commented 3 months ago

This will be pushed once someone can confirm that the issue is indeed fixed, so probably on monday.

iDavidef commented 3 months ago

Hi, I'm having the same issue. I tested this build https://we.tl/t-zvPcS7xAS7 and it's connecting without issues. Tested on iPhone 12 Pro Max iOS 15.1.1 with 802.1X authentication but no profile like others.

GoldenAppleGuy commented 3 months ago

I tested using the same build as @iDavidef and can confirm that the issue is resolved on 15.4.1, iPhone 12 Mini.

paradiseduo commented 3 months ago

I have managed to isolate this issue and reproduce it now.我已经设法隔离了这个问题,现在又重现了它。

The root issue is that the sandbox of configd does allow the syscall execve but blocks the syscall posix_spawn.根本问题是 configd 的沙箱确实允许 syscall execve,但阻止了 syscall posix_spawn。 Dopamine has always hooked execve to call posix_spawn for unified behavior which is what caused this issue, since posix_spawn is blocked. I have now reworked things to call execve when coming from it.多巴胺一直钩住 execve 调用 posix_spawn 以实现统一行为,这就是导致此问题的原因,因为 posix_spawn被阻止了。我现在已经重新设计了一些东西,在从它出来时称为 execve

As a test I made a dylib that calls execv on "/System/Library/SystemConfiguration/EAPOLController.bundle/eapolclient", which is one of the two possible binaries that can be execve'd from configd and started my own configd process with that dylib injected into it.作为测试,我制作了一个 dylib,它在“/System/Library/SystemConfiguration/EAPOLController.bundle/eapolclient”上调用 execv,这是可以从 configd 执行的两个可能的二进制文件之一,并使用注入该 dylib 开始我自己的 configd 进程。

Dopamine 2.2.1 (fails): 多巴胺 2.2.1(失败):

iPhone-13-Pro-von-Lars:~ root# DYLD_INSERT_LIBRARIES=/var/jb/configd_test.dylib /usr/libexec/configd
about to exec...
execv => -1

Build shared here (works):在此处共享的构建(工作):

iPhone-13-Pro-von-Lars:~ root# DYLD_INSERT_LIBRARIES=/var/jb/configd_test.dylib /usr/libexec/configd
about to exec...
usage:
(null) -i <if_name> [ -u <uid> ] [ -g <gid> ]

In Dopamine 2.1.x and below, due to DYLD_INTERPOSE being shit, the execv call was not caught, since it's in the SystemConfiguration framework and interposes don't affect branches from inside the DSC. That explains why this never was an issue earlier.在 Dopamine 2.1.x 及更低版本中,由于 DYLD_INTERPOSE 是狗屎,execv 调用没有被捕获,因为它位于 SystemConfiguration 框架中,并且插入不会影响 DSC 内部的分支。这就解释了为什么这在以前从未成为过问题。

So unfortunately @paradiseduo, you must be wrong. Make sure you actually rejailbroke with the new build?所以不幸的是@paradiseduo,你一定是错的。确保你真的用新版本重新越狱了吗?

2.2.2 works well, the issue is resolved