7357 Commits

Author SHA1 Message Date
topjohnwu 975120d6a6 Release Magisk v30.2
[skip ci]
v30.2
2025-08-06 03:32:32 -07:00
topjohnwu e489b3b6dd Migrate load_modules to Rust 2025-08-05 11:24:55 -07:00
topjohnwu 589a270b8d Migrate disable/remove modules to Rust 2025-08-05 11:24:55 -07:00
topjohnwu 7961be5cfa Migrate prepare_modules to Rust 2025-08-05 11:24:55 -07:00
topjohnwu 959430e030 Fix systemless hosts installation 2025-08-05 09:44:51 -07:00
topjohnwu 2923c8ccd1 Add module upgrade test 2025-08-05 09:44:51 -07:00
topjohnwu 7df4a9d74f Add uninstaller.sh test 2025-08-05 09:44:51 -07:00
topjohnwu bf4ed295da Update cargo dependencies 2025-08-02 13:43:27 -07:00
topjohnwu a5fca960dc Update gradle and dependencies 2025-08-02 02:29:14 -07:00
topjohnwu f99912b9db Update libsystem_properties 2025-07-21 13:47:30 -07:00
5ec1cff a54bdb54e4 Skip avb 1,0 verify if tail contains avb 2.0 header
This way, magiskboot will not print "unexpected ASN.1 DER tag: expected SEQUENCE, got APPLICATION [1] (primitive)".
2025-07-21 00:51:14 -07:00
topjohnwu cd9851a1fe Add regression test for #9179 2025-07-18 17:58:29 -07:00
Wang Han 9ca469898c Use worker for replace feature
This fixes https://github.com/topjohnwu/Magisk/issues/9179.
2025-07-18 16:57:20 -07:00
𝗛𝗼𝗹𝗶 0665549473 Update Turkish
Missing parts were filled in and made better
2025-07-14 10:46:05 -07:00
topjohnwu 9d7a14b335 Remove unnecessary return 2025-07-14 10:03:22 -07:00
Wang Han 62e29fee74 Treat bind mount failure same as C++ implementation
This fixes #9139 and #9174.
2025-07-14 00:27:24 -07:00
igor e472db552b Update portuguese/english translations 2025-07-11 10:52:21 -07:00
topjohnwu 466e4bd4e1 Update cargo dependencies 2025-07-11 02:04:33 -07:00
topjohnwu 4cf525c588 Add Android canary builds into CI tests 2025-07-11 00:16:39 -07:00
topjohnwu c8aec2510d Restrict sccache cache size 2025-07-11 00:16:39 -07:00
topjohnwu ccbfe0e66e Update gradle dependencies 2025-07-10 15:55:14 -07:00
南宫雪珊 23ea28de6f scripts: fix modules_update dir context 2025-07-10 10:59:39 -07:00
topjohnwu 55c3ee3a6f Move Zygisk code out of module.cpp 2025-07-07 13:43:11 -07:00
vvb2060 2a42ca2b8f app: fix time i18n 2025-07-07 11:04:18 -07:00
topjohnwu a897e82fa4 Remove release notes
They are embedded into GitHub releases
2025-07-07 10:37:45 -07:00
topjohnwu ffa15831d3 Add release dates 2025-07-07 10:35:22 -07:00
topjohnwu a344ebf28c Add v30.1 changelog 2025-07-03 18:02:27 -07:00
topjohnwu 78f7fa348e Release Magisk v30.1
[skip ci]
v30.1
2025-07-03 03:10:10 -07:00
pndwal d8c448b99d Update faq.md
Add information on restoring Magisk App functionality when stub and full apps conflict.
2025-07-03 02:51:01 -07:00
topjohnwu d4b83b6a44 Fix app compilation 2025-07-03 02:42:08 -07:00
vvb2060 e5d36d1d24 app: support config restrict policy 2025-07-03 02:42:08 -07:00
vvb2060 ff18cb8e70 su: support drop capabilities 2025-07-03 02:42:08 -07:00
topjohnwu 37a9724a54 Apply clippy fix 2025-07-02 21:20:14 -07:00
topjohnwu d660401063 Treat magisk symlinks differently 2025-07-02 21:20:14 -07:00
topjohnwu 88541d6f49 Fix file attribute copy in module mounting logic
Due to various reasons, we cannot directly mount module files in /data
into the real paths. Instead we bind mount the module root directory and
remount this mirror with specific mount-point flags. Relevant to this
bug, the module mount is mounted as read-only, which means the file
attribute copy operation could fail in certain configurations.

The fix here is to always copy file attributes into writable locations,
so either in the tmpfs worker directory, or in the module directory
under /data.

A new test case is added to make sure this regression will no longer
happen again in the future.

Fix #9139
2025-07-02 19:23:46 -07:00
topjohnwu ecd6129fe5 Add systemless hosts test 2025-07-02 19:23:46 -07:00
topjohnwu 6dfe9df9e2 Run cargo fmt 2025-07-02 19:23:46 -07:00
topjohnwu e81de7ec36 Release Magisk v30.0
[skip ci]
v30.0
2025-07-01 10:14:43 -07:00
topjohnwu c78da1ce24 Update v30.0 changelog 2025-07-01 10:00:38 -07:00
Wang Han 7b2d40987c Refactor magisk bins injection logic
Magisk binary mounting logic is not very clear now. In this commit, it
is rewritten in a more robust way. Now it has following cases in mind:
1) Device has a su binary, magisk need to overlay it
2) Choose the PATH with least files to reduce bind mount
3) Filter path which is not suitable
2025-07-01 02:16:16 -07:00
Wang Han 3a37e8c9c5 Don't clone attributes for magisk symlinks
This avoids use existing attributes for su, which will obviously break
magisk functions.
2025-07-01 02:16:16 -07:00
igor 58b405bce1 Update portuguese/english translation 2025-07-01 01:32:36 -07:00
Wang Han 810174ef73 Ignore set_context() error if magisktmp is /sbin
recreate_sbin() will bind mount original files in /sbin to tmpfs /sbin,
so we have no choice but just log here to let the loop continue.
2025-06-30 17:39:54 -07:00
topjohnwu 690a5ac033 Update to ONDK r28.5 2025-06-30 12:15:43 -07:00
topjohnwu 89aad31f7e Update gradle dependencies 2025-06-26 09:35:18 -07:00
topjohnwu 7124db98e3 Stop involving JSON in release script 2025-06-20 00:59:38 -07:00
topjohnwu 0860e859f7 Stop updating README for each release 2025-06-20 00:32:11 -07:00
topjohnwu 04008949b8 Deprecate canary channel 2025-06-20 00:22:17 -07:00
Wang Han 39f2940bd1 Skip symlink in restore_tmpcon()
If magisktmp is /sbin, there may exist files which is symlink to files in
root dir. As root is RO, setcontext will fail and break iterating loop.
2025-06-16 11:09:33 -07:00
topjohnwu 1460317ebd Cleanup C++ headers 2025-06-16 02:25:38 -07:00