Commit Graph

108 Commits

Author SHA1 Message Date
topjohnwu 0f55fcafe8 Migrate EXT4 images instead of removing them 2019-02-12 16:13:31 -05:00
topjohnwu ed027ec3ee Refactor build flags 2019-02-12 05:17:02 -05:00
topjohnwu b3fd79cbb9 Add more cmdline options and specify as internal API 2019-02-12 04:05:51 -05:00
topjohnwu ed4df87b57 Remove imgtool 2019-02-12 02:44:46 -05:00
topjohnwu 1321f097b8 Remove usage of magisk.img
Mounting ext4 images causes tons of issues, such as unmountable with broken F2FS drivers.
Resizing is also very complicated and does not work properly on all devices.
Each step in either measuring free space, resizing, and shrinking the image is a
point of failure, and either step's failure could cause the module system completely broken.

The new method is to directly store modules into /data/adb/modules, and for module installation
on boot /data/adb/modules_update. Several compatibility layers has been done: the new path is
bind mounted to the old path (/sbin/.magisk/img), and the helper functions in util_functions.sh
will now transparently make existing modules install to the new location without any changes.

MagiskHide is also updated to unmount module files stored in this new location.
2019-02-12 02:14:57 -05:00
topjohnwu ab47b717b1 Reorganize scripts 2019-02-11 17:14:07 -05:00
topjohnwu 992a9ea2f9 Fix EMUI 9 detection 2019-02-11 02:26:15 -05:00
topjohnwu 228351fc13 Prevent bootloop on non system-as-root devices
Close #1058
2019-02-10 13:51:41 -05:00
topjohnwu 8a5b6f2b86 Block all signals in daemon 2019-02-10 04:18:50 -05:00
topjohnwu 71ecbb3af3 Clean/refactor includes 2019-02-10 03:57:51 -05:00
topjohnwu 5746614ccf Keep track of timestamps and skip old logs 2019-02-10 03:16:52 -05:00
topjohnwu 3a422c3f15 Remove magisklogd, use threads and BlockingQueue 2019-02-10 01:05:19 -05:00
topjohnwu b3242322fd Harden socket verification
- Do not allow connections to magiskd from binaries other than the one started the server
- Do not allow connections to magisklogd without root access
2019-02-09 15:02:46 -05:00
topjohnwu 1f5267204b Better cmdline parsing 2019-02-09 05:23:56 -05:00
topjohnwu ed25e1bbd6 Directly inject services into init.rc 2019-02-09 02:48:05 -05:00
topjohnwu c8491d008f Move sbin overlay creation to magiskinit 2019-02-09 01:51:46 -05:00
Erfan Abdi 6698c189fc Support non-ext4 filesystem for vendor and system
Signed-off-by: Erfan Abdi <erfangplus@gmail.com>
2019-02-07 00:45:30 -05:00
topjohnwu 093f971896 Fix small log error 2019-02-03 03:57:49 -05:00
topjohnwu 4df1047b07 Native project restructuring 2019-01-30 03:35:07 -05:00
topjohnwu cce636224c Reorganization 2018-09-27 18:26:41 -04:00
topjohnwu 60b3b8ddce Better incremental builds 2018-09-27 03:56:56 -04:00
topjohnwu df8b047bca Generalize logging interface 2018-09-27 03:11:10 -04:00
topjohnwu 1d53335ae5 Dynamic load libselinux 2018-09-27 00:09:59 -04:00
topjohnwu 906b4aad9e New method of communication
Introduce a new communication method between Magisk and Magisk Manager.

Magisk used to hardcode classnames and send broadcast/start activities to
specific components. This new method makes no assumption of any class names,
so Magisk Manager can easily be fully obfuscated.

In addition, the new method connects Magisk and Magisk Manager with random
abstract Linux sockets instead of socket files in filesystems, bypassing
file system complexities (selinux, permissions and such)
2018-09-16 04:16:18 -04:00
topjohnwu 2fba3f213b Use proper socket address length 2018-09-15 02:49:19 -04:00
topjohnwu 6f41d9855b Randomize service names
Fix Aniplex Game detections.
Close #502, close #513
2018-09-08 23:17:00 -04:00
topjohnwu 0543239cca Do not merge binaries if fake symlink 2018-09-01 11:15:05 -04:00
topjohnwu a8478ace18 Use macros 2018-08-31 03:51:30 -04:00
topjohnwu 72cf5f3f9f Temporary disable module bootloop prevention
Some devices don't like it, need further tests before pushing to production
2018-08-31 03:23:59 -04:00
topjohnwu d8405f0d05 Make recovery installed on on system_root devices normal 2018-08-12 00:16:59 +08:00
topjohnwu afcb3d8f34 Fix XZ decompression in magiskinit 2018-08-10 15:04:32 +08:00
topjohnwu d4568aa0a7 Compress binaries and use xz-embedded in magiskinit 2018-08-10 05:57:12 +08:00
topjohnwu 5bac442b18 Reorganize sources 2018-08-10 03:49:25 +08:00
topjohnwu 6add682705 Remove high compression mode 2018-08-10 03:49:25 +08:00
topjohnwu 8b50d84a05 Hide unnecessary error log 2018-08-09 15:10:00 +08:00
topjohnwu d3858b81e2 Add new boot service: boot-complete 2018-08-09 14:52:44 +08:00
topjohnwu bdff9769be Move remount,ro back to post-fs-data mode 2018-08-09 03:57:29 +08:00
topjohnwu ada0f93686 Apply all sepolicy patches pre-init
Boot services tend to fail in the middle when the kernel loads a sepolicy live.
It seems that moving full patch (allow magisk * * *) to late_start is still not enough to fix service startup failures.
So screw it, apply all patched in magiskinit, which makes sure that all rules are only loaded in a single step.
The only down side is that some OEM with a HUGE set of secontexts (e.g. Samsung) might suffer a slightly longer boot time, which IS the reason why the rules are split to 2 parts in the first place.
2018-08-09 03:20:28 +08:00
topjohnwu c38533e0f8 Prevent problematic modules causing device stuck in bootloop
If boot failed after 2 times, it will enable core only mode (which disables all modules)
2018-08-07 04:41:48 +08:00
topjohnwu 9159f86a9e Improvements to system_root devices booting as recovery 2018-08-07 02:20:40 +08:00
topjohnwu 46aad00f16 Use buffer on stack 2018-08-03 21:30:44 +08:00
topjohnwu 252afe8932 Use mirror in post-fs-data scripts 2018-08-03 17:09:24 +08:00
topjohnwu 82e8375957 Respect filesystem type when mounting mirrors
Close #405
2018-08-03 04:45:07 +08:00
topjohnwu 169c0fe4af Stop use clashing names 2018-08-03 03:43:02 +08:00
topjohnwu cd6918e6eb Stop altering PATH to mirror 2018-08-03 03:38:36 +08:00
topjohnwu 5be035fd44 Try logging a little harder 2018-08-03 01:58:56 +08:00
topjohnwu d9564bd04c Delay full sepolicy patch loading time 2018-08-02 05:35:01 +08:00
topjohnwu 91818cfa1a Support compiling split cils via magiskpolicy CLI 2018-07-21 05:12:22 +08:00
topjohnwu 3ae959af95 Do not early mount on symlinks on half Treble devices
Fix #399
2018-07-19 17:43:37 +08:00
topjohnwu e11e88a9c5 Huawei hardcodes the slot suffix, don't append the suffix twice 2018-07-19 03:12:28 +08:00