- 07 Mar, 2019 3 commits
- 06 Mar, 2019 8 commits
-
-
topjohnwu authored
-
topjohnwu authored
-
topjohnwu authored
-
topjohnwu authored
Different packages could potentially use the same process name, and they shouldn't conflict with each other.
-
topjohnwu authored
-
topjohnwu authored
No matter if we use the old, buggy, error prone am_proc_start monitoring, or the new APK inotify method, both methods rely on MagiskHide 'reacting' fast enough to hijack the process before any detection has been done. However, this is not reliable and practical. There are apps that utilize native libraries to start detects and register SIGCONT signal handlers to mitigate all existing MagiskHide process monitoring mechanism. So our only solution is to hijack an app BEFORE it is started. All Android apps' process is forked from zygote, so it is easily the target to be monitored. All forks will be notified, and subsequent thread spawning (Android apps are heaviliy multithreaded) from children are also closely monitored to find the earliest possible point to identify what the process will eventually be (before am_proc_bound). ptrace is extremely complicated and very difficult to get right. The current code is heaviliy tested on a stock Android 9.0 Pixel system, so in theory it should work fine on most devices, but more tests and potentially fixes are expected to follow this commit.
-
topjohnwu authored
-
- 05 Mar, 2019 1 commit
-
-
topjohnwu authored
-
- 03 Mar, 2019 2 commits
- 02 Mar, 2019 4 commits
-
-
linar10 authored
-
topjohnwu authored
Close #1150
-
topjohnwu authored
Shut down any UID matching process and resume if it turns out not to be our target. Since we will record every single process we have ever paused, this means that the same process will not be paused erroneously for another time. This is an optimization to hijack the app as soon as possible.
-
topjohnwu authored
-
- 01 Mar, 2019 4 commits
-
-
topjohnwu authored
We are only interested in Zygote forked processed
-
topjohnwu authored
Before switching to the new MagiskHide implementation (APK inotify), logcat parsing provides us lots of information to target a process. We were targeting components so that apps with multi-processes can still be hidden properly. After switching to the new implementation, our granularity is limited to the UID of the process. This is especially dangerous since Android allow apps signed with the same signature to share UIDs, and many system apps utilize this for elevated permissions for some services. This commit introduces process name matching. We could not blanketly target an UID, so the workaround is to verify its process name before unmounting. The tricky thing is that any app developer is allowed to name the process of its component to whatever they want; there is no 'one rule to catch them all' to target a specific package. As a result, Magisk Manager is updated to scan through all components of all apps, and show different processes of the same app, each as a separate hide target in the list. The hide target database also has to be updated accordingly. Each hide target is now a <package name, process name> pair. The magiskhide CLI and Magisk Manager is updated to support this new target format.
-
topjohnwu authored
-
topjohnwu authored
Close #922
-
- 28 Feb, 2019 2 commits
-
-
SakuraSa233 authored
-
topjohnwu authored
Most Chinese devices (and supposedly Galaxy S10) running Android Pie is using system-as-root without A/B partition. https://source.android.com/devices/bootloader/system-as-root#about-system-as-root According to the docs above, these devices will have a ramdisk block with size 0 in their boot images. Since magiskinit can run independently on system-as-root devices, we simply just create an empty ramdisk with magiskinit added as init. Huge thanks to @vvb2060 for the heads up and original PR. Close #980, close #1102
-
- 27 Feb, 2019 5 commits
-
-
Cristian Silaghi authored
-
linar10 authored
-
John Wu authored
-
John Wu authored
-
vvb2060 authored
-
- 26 Feb, 2019 8 commits
-
-
topjohnwu authored
- Enable LTO - Add -fomit-frame-pointer for even smaller binary size This commit is inspired by #1075. Close #1075.
-
topjohnwu authored
-
Hugwalk authored
Fixed wordings to fit Taiwanese accent. e.g. 日誌 (log) to 記錄檔 Kept proper nouns in English e.g. Superuser instead of 超級使用者 Removed westernised Chinese as much as possible.
-
Gozzwip authored
-
linar10 authored
-
vvb2060 authored
-
Oliver Cervera authored
Minor changes
-
Cristian Silaghi authored
-
- 25 Feb, 2019 3 commits
-
-
topjohnwu authored
Since we switched to imageless Magisk, module files are directly stored in /data. However, /data is mounted with nosuid, which also prevents SELinux typetransition to work (auto transition from one domain to another when executing files with specific context). This could cause serious issues when we are replacing system critical components (e.g. app_process for Xposed), because most of them are daemons that run in special process domains. This commit introduced /data mirror. Using similar mirroring technique we used for system and vendor, we mount another mirror that mounts /data without nosuid flag. All module files are then mounted from this mirror mountpoint instead of directly from /data. Close #1080
-
topjohnwu authored
This makes sure no weird permission/SELinux issues shall happen
-
topjohnwu authored
-