-
Notifications
You must be signed in to change notification settings - Fork 440
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Magisk UDS(Unix Domain Socket) detection added #88
Conversation
Detects roots by searching for any 32-digit Unix Domain Socket name used by the Magisk daemon.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this new check looks very exciting. Could you expand a bit more about UDS, is that Unified Diagnostic Services? I'm interested to how the check works.
Couple of minor PR comments. But still need to test on Magisk device before can 👍 .
uds stands for unix domain socket, which is used by the Magisk daemon. The broken font is Korean and is an output string for debugging. I will soon clean up the code and commit again. Thanks for your quick feedback. |
Add a description of the Magisk detection function Changed debugging string in Korean to English
Changed buildToolsVersion to buildToolsVer. However, we recommend that you change this value in the latest Android studio.
This method can detect the latest Magisk. As a result of my checking, this method is detectable even when Magisk Hide is fully applied. |
Add Magisk UDS detection to main UI
Upload main UI screenshots
Update README.md
Are there any updates on this pull request as Magisk is gaining popularity? |
It seems that Magisk is still being tested on the device. Of course there is a possibility of false positives, but I would like to emphasize that Magisk and Magisk Hide are detectable. This PR has not yet been applied to RootBeer, but you can download a version of RootBeer with Magisk detection from my Github. |
Hi, @KimChangYoun Your detection method is based on USD length equal 32. And i'm just wondering why? And I briefly read magisk source code & realized that magisk uses 2 (or more) UDS and it uses below initial value. #define MAIN_SOCKET "d30138f2310a9fb9c54a3e0c21f58591" After initialization phase they change their UDS name randomly (but still same length 32). Q.1) Did I understand your method correctly?
|
Dear @comomind Thank you for your interest in my ideas. This is where you will find more information about Magisk Hide's source code. (there is a function with a name beginning with "patch") Now, the answer to Q1. Answer to Q2. |
We now take advantage of the stat command for Magisk detection.
@comomind Here is the breakthrough Magisk 18 and Magisk Hide detection. |
Thanks for your new code :) I briefly review your code. And I found that your suggestion is a combination of "checking UDS length" & "checking file existence". I tested your code in my nexus 6 with magisk hide & magisk manager hide enabled. Q1. My test is failed, is there something wrong?
Q3. checkFileStat() should be outside of loop, is there some reason?
|
@comomind |
I think it is right to develop it as a separate app, and I will close the PR. |
Detects roots by searching for any 32-digit Unix Domain Socket name used by the Magisk daemon.
I would appreciate your review.
Thank you.