topjohnwu
4ee2235961
Update dependencies
2025-10-20 10:30:09 -07:00
topjohnwu
536e50c6e0
Support optional trailing positional arguments
2025-10-19 17:15:30 -07:00
topjohnwu
57d9fc6099
Support short only options and switches
2025-10-19 17:15:30 -07:00
topjohnwu
52d8910bdd
Cleanup code for EarlyExit during help triggers
2025-10-19 17:15:30 -07:00
topjohnwu
c94bd49a89
Update default help triggers
2025-10-19 17:15:30 -07:00
topjohnwu
b72ba6759e
Vendor argh sources
...
Further customization will come in future commits
2025-10-19 17:15:30 -07:00
topjohnwu
5bcb55b7fc
Format Rust imports with rustfmt
2025-10-19 17:15:30 -07:00
topjohnwu
0dc8231585
Make all dependencies workspace = true
2025-10-19 17:15:30 -07:00
Wang Han
470acc93c9
Remove clickable attribute from item_module_md2.xml
2025-10-19 14:02:02 -07:00
Wang Han
0edb80b10f
Set module card as non clickable
...
It's so easy to mis-click card.
2025-10-19 14:02:02 -07:00
topjohnwu
bcc6296d94
Build debug without debug-info
2025-10-03 00:16:17 -07:00
topjohnwu
c3db2e368d
Release Magisk v30.4
...
[skip ci]
2025-10-02 04:30:47 -07:00
topjohnwu
d37da5ca66
Cleanup code
2025-10-02 04:18:20 -07:00
topjohnwu
aac52176ed
Support API level as floating point
2025-10-02 04:10:22 -07:00
topjohnwu
78e2fc37e5
Add easy knobs to disable security checks
2025-10-02 04:09:46 -07:00
Wang Han
ca2e40593f
Make fetchUpdate safe
2025-10-02 04:03:44 -07:00
LoveSy
c07fdc87e3
Handle second splice() failure gracefully
2025-10-02 04:03:27 -07:00
topjohnwu
7270f5e413
Several minor fixes/improvements
2025-10-02 04:03:08 -07:00
topjohnwu
07cc85ccb1
Default initialize before swap in move constructor
...
Fix #9373 , fix #9384 , fix #9400 , fix #9404
2025-10-02 04:03:08 -07:00
topjohnwu
d6f17c42d5
Fix logging implementation error
2025-10-02 04:03:08 -07:00
Wang Han
d60806f429
Only reset NB prop when zygisk is enabled
2025-10-02 03:19:32 -07:00
Mohammad Hasan Keramat J
8836a09c8c
core: Update Persian translation
2025-09-30 00:21:44 -07:00
topjohnwu
f16e93c7db
Release Magisk v30.3
...
[skip ci]
2025-09-29 21:35:45 -07:00
Thonsi
1b0ddec66e
Remove unused code
2025-09-29 02:33:02 -07:00
topjohnwu
cd8820f563
Refactor code for more readability
2025-09-29 01:41:55 -07:00
topjohnwu
b70192ca3e
Sync libsepol with upstream AOSP
2025-09-29 01:18:52 -07:00
LoveSy
d42ec5da9a
Fix pattern matching for CANARY version
2025-09-29 01:18:52 -07:00
topjohnwu
742913ebcb
Support installing Magisk on vendor_boot
...
Close #9238 , fix #8835
2025-09-28 01:10:11 -07:00
topjohnwu
ed206c6480
Upgrade cargo dependencies
2025-09-26 23:37:45 -07:00
topjohnwu
f9a8052583
Improve build.py
...
Close #8988
2025-09-26 17:00:58 -07:00
topjohnwu
f4fdd516f9
Upgrade gradle dependencies
2025-09-24 03:18:35 -07:00
topjohnwu
5925a71f94
Upgrade cargo dependencies
2025-09-24 03:05:18 -07:00
topjohnwu
3cda9beb93
Cleanup unused bindings
2025-09-24 02:38:18 -07:00
topjohnwu
8b7d1ffcdd
Migrate magisk_main to Rust
2025-09-18 03:22:44 -07:00
topjohnwu
8d02d0632e
Fix comments
2025-09-18 03:22:44 -07:00
topjohnwu
dd743f6f7e
Improve Encodable/Decodable impls
2025-09-18 01:17:28 -07:00
topjohnwu
cf483ad4d2
Migrate connect_daemon to Rust
2025-09-15 14:25:18 -07:00
topjohnwu
4aed644e08
Directly accept RequestCode for connect_daemon
2025-09-15 14:25:18 -07:00
topjohnwu
0acc39cec0
Use bitflags to implement BootState
2025-09-15 14:25:18 -07:00
topjohnwu
8b3a44344f
Move bootstages into its own module
2025-09-15 14:25:18 -07:00
topjohnwu
8b49eda85a
Migrate daemon_entry to Rust
2025-09-15 14:25:18 -07:00
topjohnwu
7057d4c7f1
Migrate setup_magisk_env to Rust
2025-09-15 14:25:18 -07:00
Radoš Milićev
aab8344058
Update Serbian
2025-09-14 18:42:22 -07:00
topjohnwu
7cccf83b37
Remove unused poll_ctrl implementation
2025-09-14 01:59:04 -07:00
topjohnwu
f10ad93c4e
Move more code of daemon_entry into Rust
2025-09-13 01:21:33 -07:00
topjohnwu
f143b5df15
Do not mount directories as mirror
...
Mounting real directories into worker will cause init to start tracking
the mount point through dev.mnt. This causes issues, so we are forced
to recursively reconstruct the mirror directory structure from scratch.
Fix #9316
2025-09-12 22:01:08 -07:00
topjohnwu
71213cc6f4
Fix path tracking in module.rs
2025-09-12 22:01:08 -07:00
topjohnwu
e2a1774e5b
Make logging.rs use nix
2025-09-11 01:17:34 -07:00
topjohnwu
0222527a1e
Use bitflags macro
2025-09-11 01:17:34 -07:00
topjohnwu
312bfe1bab
Do not leak base::ffi to external crates
2025-09-11 01:17:34 -07:00
topjohnwu
48c62a1dae
Disable exit on error for cmdline_logging
2025-09-11 01:17:34 -07:00
rikka
cfc2bcb665
Fix zygisk native bridge library name concatenation order
2025-09-11 01:16:54 -07:00
topjohnwu
94b1ff674f
Allow calling remove_all on non-existence file
2025-09-10 03:44:39 -07:00
topjohnwu
111136733a
Migrate away from unsafe set_len of Utf8CStr
2025-09-09 22:19:05 -07:00
topjohnwu
c8caaa98f5
Enable mount for nix
2025-09-09 20:17:09 -07:00
topjohnwu
8d28f10a3f
Enable zerocopy for nix
2025-09-09 12:04:46 -07:00
topjohnwu
177a456d8b
Enable term for nix
2025-09-09 12:04:31 -07:00
topjohnwu
ef4e230258
Use nix for libc functions
2025-09-08 23:59:29 -07:00
topjohnwu
17082af438
Simplify OsError
2025-09-08 11:25:20 -07:00
topjohnwu
1df5b34175
Stop differentiate Error vs ErrorCxx
2025-09-08 11:25:18 -07:00
topjohnwu
ea5fe7525d
Simplify LibcReturn
2025-09-08 10:55:57 -07:00
topjohnwu
a75c335261
Update cargo dependencies
2025-09-08 02:24:01 -07:00
topjohnwu
3903f42cf6
Support specify ABI for clippy
2025-09-08 02:23:49 -07:00
topjohnwu
fb0c4ea838
Fallback to userspace copy if splice failed
...
Fix #9032
2025-09-03 16:10:18 -07:00
topjohnwu
bc89c60977
Run cargo fmt
2025-09-02 22:06:08 -07:00
topjohnwu
bd657c354c
Reduce FFI across C++/Rust
2025-09-02 22:06:08 -07:00
MONA
675b5f9565
feat(i18n): Add Hinglish translation
2025-09-02 01:27:58 -07:00
MONA
1b2c43268e
feat(i18n): Add Hinglish translation
2025-09-02 01:27:58 -07:00
topjohnwu
653730d75e
Make cxx binding generate less code
2025-08-29 01:44:06 -07:00
topjohnwu
d472e9c36e
Update cargo dependencies
2025-08-28 22:01:35 -07:00
topjohnwu
484d53ef7e
Update to ONDK r29.2
2025-08-28 16:15:59 -07:00
topjohnwu
c4e2985677
Migrate resetprop to Rust
2025-08-27 22:48:48 -07:00
topjohnwu
42d9f87bc9
Cleanup resetprop code
2025-08-27 22:48:48 -07:00
topjohnwu
2e4fa6864c
Make Utf8CStr a first class citizen in C++ codebase
...
Utf8CStr is in many cases a better string view class than
std::string_view, because it provides "view" access to a string buffer
that is guaranteed to be null terminated. It also has the additional
benefit of being UTF-8 verified and can seemlessly cross FFI boundaries.
We would want to start use more Utf8CStr in our existing C++ codebase.
2025-08-27 22:48:48 -07:00
topjohnwu
e2abb648ac
Update system_properties
2025-08-27 10:12:51 -07:00
topjohnwu
3599dcedfb
Make argh directly parse into Utf8CString
2025-08-27 01:26:41 -07:00
topjohnwu
ea72666df8
Only specify ADB port for tests
2025-08-25 15:34:04 -07:00
topjohnwu
bd2a47ba18
Merge libbase cpp files
2025-08-25 01:31:47 -07:00
topjohnwu
b861671391
Cleanup libbase
2025-08-25 01:31:47 -07:00
topjohnwu
e91fc75d86
Consolidate for_each implementation into Rust
2025-08-25 01:31:47 -07:00
LoveSy
78f5cd55c7
Use lzma-rust2 for xz and lzma compression and decompression
2025-08-24 00:23:55 -07:00
topjohnwu
9787a69528
Make all decoders Read instead of Write
...
Most libraries only implement Read for decoders
2025-08-24 00:23:55 -07:00
topjohnwu
87b8fe374d
Fix magiskboot cli parsing
2025-08-23 20:31:15 -07:00
topjohnwu
7b706bb0cb
Cleanup and fix compress/decompress command
2025-08-23 20:31:15 -07:00
topjohnwu
c1491b8d2b
Fix LoggedResult implementation error
2025-08-23 15:25:52 -07:00
LoveSy
5cbaf2ae11
Use super let to simplify code
2025-08-22 12:05:44 -07:00
topjohnwu
8ebc6207b4
Merge headers
2025-08-22 12:03:47 -07:00
topjohnwu
7848ee616b
Cleanup magiskboot main function
2025-08-22 12:03:47 -07:00
topjohnwu
fd193c3cae
Simplify ResultExt implementation
...
Also introduce OptionExt
2025-08-22 12:03:47 -07:00
topjohnwu
36d33c7a85
Make log_err directly return LoggedResult
2025-08-22 12:03:47 -07:00
topjohnwu
5caf28d27c
Hide harmless error reporting
2025-08-22 12:03:47 -07:00
topjohnwu
2c39d0234d
Fix compression format detection
2025-08-21 12:21:22 -07:00
topjohnwu
c313812129
Simplify magiskboot FFI
2025-08-21 12:21:22 -07:00
topjohnwu
af51880a81
Introduce CmdArgs for argument parsing in Rust
2025-08-21 12:21:22 -07:00
LoveSy
db8d832707
Move magiskboot cli to argh
2025-08-20 21:40:34 -07:00
Wang Han
8dc23d0ead
Avoid triggering magisk --zygote-restart twice
...
We have already used on restart keyword to inject zygote restart, so
triggering it here on prop is not needed.
2025-08-20 12:34:39 -07:00
topjohnwu
b4287700d5
Increase timeout to 15 minutes
2025-08-20 11:23:18 -07:00
topjohnwu
8d10ab89f2
Set zygisk properties in Rust
2025-08-20 11:23:18 -07:00
topjohnwu
49fdc1addb
Prevent setting zygisk prop twice
2025-08-20 11:23:18 -07:00
topjohnwu
1333d3b986
Fix canary emulator
2025-08-18 11:25:47 -07:00
残页
335146a6a2
Update supported API levels
2025-08-17 23:58:43 -07:00
topjohnwu
eaf9527971
Use AOSP ATD for API 36
...
[skip ci]
2025-08-15 17:25:41 -07:00
LoveSy
da937a88c8
if !restore { set_zygisk_prop(); }
2025-08-15 16:45:01 -07:00
topjohnwu
9476e7282d
More borrowing, less copying
2025-08-08 21:06:41 -07:00
topjohnwu
251c3c3e0e
Remove old ffi data structure
2025-08-08 21:06:41 -07:00
topjohnwu
cd0eca20b0
Migrate connect.cpp to Rust
2025-08-08 21:06:41 -07:00
topjohnwu
6839cb9ab2
Keep /system/xbin/su on emulators
2025-08-08 21:06:41 -07:00
topjohnwu
d11a3397d8
Reduce verbose logging in Zygisk
2025-08-08 21:06:41 -07:00
topjohnwu
975120d6a6
Release Magisk v30.2
...
[skip ci]
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]
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]
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
topjohnwu
12340c9bd5
Update gradle version
2025-06-16 02:17:29 -07:00
topjohnwu
c4590fe2ba
Reorganize buildSrc
2025-06-10 16:51:31 -07:00
topjohnwu
b36066bbcd
Run clippy fix
2025-06-10 16:34:38 -07:00
topjohnwu
65d1c5827c
Update dependencies
2025-06-10 16:33:06 -07:00
AshiVered
1d675c8b2e
Update strings.xml
...
Improve Hebrew translations
2025-06-06 17:08:51 -07:00
Wang Han
0b494ed7df
Avoid throwing error if chmod a symlink
...
It is possible that we want to clone attributes of a regular file to a
symlink. In this case, we don't need to error out if chmod fails. Just
skip it.
2025-06-06 17:08:34 -07:00
topjohnwu
48d9fc24eb
Update release.sh
2025-06-05 11:00:27 -07:00
topjohnwu
83426f7f36
Update check update logic
2025-06-04 12:50:19 -07:00
Wang Han
0e86d4dbcb
Fix file pointer leak on error path
2025-06-03 00:34:52 -07:00
Wang Han
5e050d7456
Check binary existence before injecting zygisk bins
2025-06-03 00:33:40 -07:00
topjohnwu
898580bf90
Update dependencies
2025-06-02 19:51:12 -07:00
topjohnwu
86621a4c46
Fix gradle cache
2025-05-30 11:11:53 -07:00
topjohnwu
a834e72b71
Use sccache for clippy
2025-05-30 11:11:45 -07:00
topjohnwu
d8cf42af16
Reduce unstable feature usage
2025-05-30 11:11:36 -07:00
topjohnwu
8c79d66b7b
Update ONDK r28.4
2025-05-30 01:53:26 -07:00
Wang Han
fada8b148a
Ensure manager can always bypass su access policy
...
This fixes https://github.com/topjohnwu/Magisk/issues/9050 .
2025-05-21 16:14:46 -07:00
topjohnwu
dc0acea47c
Remove C++ I/O streams
2025-05-20 03:26:00 -07:00
topjohnwu
78d1200608
Migrate all compression code to Rust
2025-05-20 03:26:00 -07:00
topjohnwu
527bbc0368
Migrate module mounting to Rust
2025-05-20 03:24:43 -07:00
topjohnwu
4c89c7e2b3
Directly use MagiskJson
2025-05-19 10:40:58 -07:00
topjohnwu
adbea7e313
Improve update check code
2025-05-19 10:23:15 -07:00
vvb2060
76962f965e
app: use github api to check updates
2025-05-19 10:23:15 -07:00
topjohnwu
a4b8c5e46b
Update app dependencies
2025-05-18 22:24:44 -07:00
The Ali Dev
83c707439c
Add Urdu Translation
2025-05-18 22:21:05 -07:00
Radoš Milićev
25dd6121f4
Add author for Serbian translations to .xml files
2025-05-18 21:54:24 -07:00
Radoš Milićev
67f35ad027
Add Serbian latin (values-b+sr+Latn)
2025-05-18 21:54:24 -07:00
topjohnwu
0c4b8afbc5
Simplify JNI hooking code
2025-05-17 02:05:21 -07:00
topjohnwu
34b30d7ce1
Promite Magisk v29.0 to stable
2025-05-16 12:17:53 -07:00
topjohnwu
2215088973
Remove unused files in native directory
2025-05-15 13:48:12 -07:00
topjohnwu
8b7fb6cdde
Improve scripts
2025-05-15 02:56:36 -07:00
topjohnwu
94c7dbedf2
Fix signing config
...
[skip ci]
2025-05-14 15:14:34 -07:00
topjohnwu
b1dc47a047
Release new canary build
...
[skip ci]
2025-05-14 01:41:38 -07:00
topjohnwu
62b1310d97
Release Magisk v29.0
...
[skip ci]
2025-05-14 01:26:05 -07:00
topjohnwu
0a86916d3a
Fix cleanup
2025-05-14 01:23:54 -07:00
topjohnwu
9907ce57aa
Add Magisk r29.0 release notes
2025-05-14 01:13:37 -07:00
topjohnwu
b92626cacc
Use sudo instead of su
2025-05-13 17:26:09 -07:00
topjohnwu
5a762f0a8e
Move all gradle files into folder app
...
Decouple java and native projects
2025-05-13 17:04:41 -07:00
topjohnwu
5dd7a7d804
Better ABI support for build.py
2025-05-13 14:35:57 -07:00
topjohnwu
7831f40691
Make tests more granular
2025-05-13 14:08:54 -07:00
topjohnwu
4f4b1ff885
Add sepolicy.rule patching tests
2025-05-13 14:08:54 -07:00
topjohnwu
97901979dd
Test replace functionality
2025-05-13 14:08:54 -07:00
topjohnwu
287316842c
Fix Android M sepolicy reading
2025-05-13 12:28:10 -07:00
topjohnwu
608786e8f3
Print verbose logs in avd_test.sh and cuttlefish.sh
2025-05-11 02:18:36 -07:00
topjohnwu
9684a35cab
Use rust::String::c_str to ensure nil termination
2025-05-09 16:02:46 -07:00
Radoš Milićev
e3e4202954
Update translation of core strings
2025-05-09 11:06:03 -07:00
Radoš Milićev
23c2054d46
Translate stub strings
2025-05-09 11:06:03 -07:00
Wang Han
a20a2a8fa0
Recognize Samsung custom policy version path
2025-05-09 11:03:58 -07:00
topjohnwu
a2896be4a6
Cargo fmt
...
[skip ci]
2025-05-08 23:29:27 -07:00
LoveSy
e9220a28d9
Use splice to pump tty to avoid userspace copying
2025-05-08 23:20:46 -07:00
vvb2060
cf12087e21
app: disable multiArch
2025-05-08 21:02:26 -07:00
topjohnwu
00c1b36837
Support generating files for C++ IDE
2025-05-07 22:18:44 -07:00
topjohnwu
03e034795d
Implement Ord and PartialOrd for Utf8CStr familiy
2025-05-05 11:33:33 -07:00
LoveSy
79c0fafe43
Fix cleanup pre-init mount
2025-05-05 11:00:39 -07:00
vvb2060
d499819ba0
app: ignore androidx meta prop file
2025-05-02 16:40:37 -07:00
vvb2060
86da917174
core: fix mkdirs
2025-05-02 16:39:46 -07:00
ZGX089
30bd7d6555
feat: Improve Arabic translation (stub)
...
Fixed typos, Grammatical errors and changed/fixed other strings.
2025-05-01 13:47:46 -07:00
ZGX089
e5a12f0f5f
feat: Improve Arabic translation
...
Fix Grammatical errors, typos, and changed/fixed other strings.
2025-05-01 13:47:46 -07:00
topjohnwu
c85a8434c6
Update dependencies
2025-04-29 16:22:45 -07:00
topjohnwu
427a1ca4e5
Release new canary build
...
[skip ci]
2025-04-29 11:54:17 -07:00
topjohnwu
22884e173a
Implement reboot in Rust
2025-04-28 17:22:14 -07:00
topjohnwu
d1829308e9
Move more daemon_start code into Rust
2025-04-28 17:22:14 -07:00
topjohnwu
73840f8721
Migrate selinux.cpp to selinux.rs
2025-04-28 17:22:14 -07:00
topjohnwu
c7d1af9805
Stop using PathBuf in package.rs
2025-04-28 17:22:14 -07:00
topjohnwu
4ad26d3dfb
Better path methods
2025-04-28 17:22:14 -07:00
topjohnwu
0c70b7670c
Cleanup dir implementations
2025-04-28 17:22:14 -07:00
topjohnwu
f44d044095
Remove Utf8CStrBuffer
2025-04-28 17:22:14 -07:00
topjohnwu
5c1cb13472
Remove AsUtf8CStr trait
2025-04-28 17:22:14 -07:00
topjohnwu
3327fc668e
Remove FsPath and FsPathMnt trait
...
Directly use Utf8CStr
2025-04-28 17:22:14 -07:00
topjohnwu
610945ac54
Remove open_fd macro
2025-04-28 17:22:14 -07:00
Howard Wu
ddf5474917
apt-get update before install to fix ci
2025-04-28 11:16:14 -07:00
Howard Wu
6ba1685ade
Fix some seopt log
2025-04-22 03:25:21 -07:00
topjohnwu
e02b5f7868
Rename cstr_buf to cstr::buf
2025-04-22 03:21:00 -07:00
topjohnwu
ab2e5d1e7e
Make FsPathBuf a trait and rename to FsPathBuilder
2025-04-22 03:21:00 -07:00
topjohnwu
f3fef7bfe4
Make FsPath a trait
2025-04-22 03:21:00 -07:00
topjohnwu
c34c7838bb
Cleanup cstr implementation
2025-04-22 03:21:00 -07:00
topjohnwu
c8a16b0e0c
Remove unused code
2025-04-16 17:13:03 -07:00
topjohnwu
14f9ed91a1
Remove unused methods
2025-04-15 11:35:31 -07:00
topjohnwu
7a207d4ccf
Only accept UTF-8 directory entries
2025-04-15 10:26:22 -07:00
topjohnwu
92a42d901f
Move most implementation into Directory
2025-04-15 10:26:22 -07:00
topjohnwu
084d89fcce
Create Utf8CStrBuffer type
2025-04-15 10:26:22 -07:00
topjohnwu
55b036c071
Introduce BorrowedDirectory
2025-04-15 10:26:22 -07:00
topjohnwu
30e79310ab
Make pointers NonNull after error check
2025-04-15 00:18:48 -07:00
topjohnwu
f063fa5054
Cleanup xwrap implementation
2025-04-15 00:18:48 -07:00
topjohnwu
7bd901273c
Provide richer error messages
...
Make sure most syscall/libc calls results are mapped to OsResult
that can produce more detailed error messages.
2025-04-15 00:18:48 -07:00
topjohnwu
c1e061603b
Specify ADB_SERIAL for emulator
2025-04-13 21:43:11 -07:00
topjohnwu
cb08504fe5
Update cargo dependencies
2025-04-11 14:48:16 -07:00
topjohnwu
c0a1fb77be
Code cleanup
2025-04-11 14:48:01 -07:00
LoveSy
4864c1112a
no pty for -c by default, and add -i to force pty
2025-04-11 13:21:10 -07:00
LoveSy
9ddeab034b
Fix wrong tty pump
...
See #1463
2025-04-11 13:21:10 -07:00
LoveSy
c4847ed288
Move pts to rust, and avoid using thread
2025-04-11 13:21:10 -07:00
topjohnwu
b8f1523fb2
Minor code reorg
...
[skip ci]
2025-04-08 17:20:22 -07:00
topjohnwu
fb7fa8a6b3
Update to ONDK r29.1
2025-04-08 12:11:59 -07:00
topjohnwu
9c7d359093
Optimize and format imports
...
[skip ci]
2025-04-08 09:57:09 -07:00
topjohnwu
eb54bc1fd7
Cleanup unused code
2025-04-08 02:33:52 -07:00
topjohnwu
d4a0286e13
Migrate magiskinit selinux.cpp to Rust
2025-04-08 02:33:52 -07:00
Steven Xu
83e66767ff
refactor: use empty navOptions
2025-04-02 09:13:32 -07:00
Steven Xu
7dc010749b
feat: remove animation settings button transition
2025-04-02 09:13:32 -07:00
Steven Xu
8e8d013b1b
feat: remove log overscroll
2025-04-02 09:13:32 -07:00
Steven Xu
bba0373808
feat: remove navigation transition when clicking buttons on the bottom bar
2025-04-02 09:13:32 -07:00
topjohnwu
1fa318dc8c
Use Rust elf-cleaner implementation
2025-04-01 18:32:54 -07:00
cheesetosti
6edc5e2037
Update install.md
...
fixed grammar n stuff
2025-04-01 12:13:29 -07:00
topjohnwu
1523ed9f78
Always go through rustup proxies
2025-04-01 10:01:35 -07:00
topjohnwu
8e604d2ab8
Update cuttlefish CI
2025-03-28 00:12:31 -07:00
topjohnwu
2aba7247a9
Skip stub APK install on emulator
...
Reduce test flakiness
2025-03-26 13:15:12 -07:00
topjohnwu
e66fe8533e
API 36 does not support wait_for_bootanim
2025-03-26 13:15:12 -07:00
vvb2060
b03fbb3917
avd_test: upgrade to android16 beta3
2025-03-26 13:15:12 -07:00
vvb2060
c2ece62e4c
native: delete global 16k option
...
NDK 28 enable 16 KiB page size compatibility option by default, delete the global option to restore 4k alignment for 32-bit arch.
2025-03-26 13:15:12 -07:00
vvb2060
8c972dcf34
app: target sdk 36
2025-03-26 13:15:12 -07:00
topjohnwu
50af14f2a3
Move all MagiskInit entrypoints into init.rs
2025-03-24 17:26:03 -07:00
topjohnwu
e0a356b319
Introduce mount helper methods
2025-03-24 17:26:03 -07:00
topjohnwu
c09a792958
Reorganize magiskinit code
2025-03-24 17:26:03 -07:00
topjohnwu
0bbfe7f44d
Fix 2SI on legacy SAR devices
2025-03-24 17:26:03 -07:00
topjohnwu
a396abf565
Minor changes
...
[skip ci]
2025-03-22 01:16:51 -07:00
topjohnwu
1e3edb8883
Release new canary build
...
[skip ci]
2025-03-21 10:37:49 -07:00
topjohnwu
3b8b61bf35
Remove ZipUtils.kt
2025-03-20 14:54:25 -07:00
topjohnwu
6f90456036
Properly buffer I/O
2025-03-20 13:16:39 -07:00
topjohnwu
f56fd4e215
Always close outputStream in processFile
...
Fix #8735
2025-03-19 17:57:31 -07:00
topjohnwu
aa35aac5d5
Update dependencies
2025-03-19 15:55:06 -07:00
topjohnwu
1f162b819d
Update ONDK r29.0
2025-03-19 10:55:08 -07:00
Wang Han
52ef1d1cb2
Simplify matching selinux context of child zygote ( #8845 )
2025-03-11 01:27:15 -07:00
John Wu
f14e3a89cc
Enable optimize_for_size for Rust std ( #8844 )
2025-03-10 15:50:43 -07:00
topjohnwu
95d3eac2e0
Cleanup xwrap functions
2025-03-09 01:10:41 -08:00
Wang Han
8e73536e02
Remove unused hasGMS variable
2025-03-09 00:16:25 -08:00
LoveSy
12a0870bc9
Replace bzip2 with bz2-rs
2025-03-08 14:37:17 -08:00
topjohnwu
6ff82c4e86
Introduce FsPathFollow
...
Make sure all operations of FsPath do not follow symlinks, and provide
a way to explicitly switch over to a set of operations that DO follow
symlinks by FsPath::follow_link.
2025-03-07 15:51:51 -08:00
LoveSy
c64de35375
Move magiskpolicy cli to argh
2025-03-07 14:29:30 -08:00
topjohnwu
ee5283f4e8
Update release script
2025-03-07 14:14:06 -08:00
LoveSy
bd0e954fea
Replace zlib with zlib-rs
2025-03-07 11:40:02 -08:00
topjohnwu
675471a49e
Upgrade argh to stable release
2025-03-07 02:38:36 -08:00
topjohnwu
c90e73ccec
Migration to Edition 2024
2025-03-07 02:35:25 -08:00
topjohnwu
a43c1267d8
Update Cargo.toml
2025-03-07 02:35:25 -08:00
vvb2060
e8958c6b5c
get_secontext: ignore ENODATA
2025-03-06 20:03:36 -08:00
LoveSy
e8a3bf82c6
set exit code of log ExitOnError to -1
2025-03-06 20:03:15 -08:00
topjohnwu
27fd79176a
Update ONDK to r28.3
2025-03-06 17:41:28 -08:00
topjohnwu
28d86a3454
Update rustup_wrapper
...
[skip ci]
2025-03-06 16:12:35 -08:00
topjohnwu
c6c1a17ae6
Address several clippy warnings
2025-03-03 02:15:14 -08:00
topjohnwu
2b47d47215
Also run clippy with release mode
...
[skip ci]
2025-03-02 23:14:46 -08:00
David K.
0e82df9e10
Support zImage compression types other than gzip.
...
Instead of just searching for the gzip magic, it now incrementally searches the kernel for the first thing that `check_fmt_lg` doesn't report as `UNKNOWN`.
2025-03-02 13:35:13 -08:00
topjohnwu
893821ad88
Skip all tests on master push
2025-03-02 02:30:11 -08:00
topjohnwu
6b80fbfa99
Fix cache save condition
2025-03-02 02:30:11 -08:00
topjohnwu
8c3c7d0194
Build on master push
2025-03-02 01:51:42 -08:00
topjohnwu
b94a3d9f2f
Do not store cache on pull request
2025-03-02 01:51:42 -08:00
Wang Han
442d0b5ddc
Delete bootctl binary if execution fails
...
New devices may use AIDL bootctrl HAL, so if bootctl hal-info fails,
simply remove the temp file and return.
2025-03-01 22:43:55 -08:00
topjohnwu
494615d9a0
Support ./build.py emulator with an APK argument
2025-02-28 17:17:24 -08:00
vvb2060
afbfb81837
docs: add avd_magisk.sh to faq
2025-02-28 17:17:24 -08:00
vvb2060
3ed4e258a3
avd_magisk: add general usage
2025-02-28 17:17:24 -08:00
vvb2060
dddd41c95b
avd_magisk: support rootfs without sbin
2025-02-28 17:17:24 -08:00
topjohnwu
5f2ca81e86
Update AGP
2025-02-28 13:19:16 -08:00
topjohnwu
c9eac0c438
Introduce new sepolicy strategy for legacy devices
...
The existing sepolicy patching strategy looks like this:
1. 2SI: use LD_PRELOAD to hijack `security_load_policy`
2. Split policy: devices using split policy implies it also needs to
do early mount, which means fstab is stored in device tree.
So we do the following:
- Hijack the fstab node in the device tree in sysfs
- Wait for init to mount selinuxfs for us
- Hijack selinuxfs to intercept sepolicy loading
3. Monolithic policy: directly patch `/sepolicy`
Method #1 and #2 both has the magiskinit pre-init daemon handling
the sepolicy patching and loading process, while method #3 gives us
zero control over sepolicy loading process. Downsides:
a. Pre-init daemon bypasses the need to guess which sepolicy init
will load, because the original init will literally send the stock
sepolicy file directly to us with this approach.
b. If we want to add more features/functionalities during the sepolicy
patching process, we will leave out devices using method #3
In order to solve these issues, we completely redesign the sepolicy
patching strategy for non-2SI devices. Instead of limiting usage of
pre-init daemon to early mount devices, we always intercept the
sepolicy loading process regardless of the Android version and device
setup. This will give us a unified implementation for sepolicy patching,
and will make it easier to develop further new features down the line.
2025-02-28 09:39:10 -08:00
topjohnwu
b6b34f7612
Fix overlay.d context preservation
2025-02-27 01:57:25 -08:00
LoveSy
e55c413261
Correctly handle truncated dtb
2025-02-23 20:31:55 -08:00
topjohnwu
0399cde50a
Cleanup logcat.log for each invocation
2025-02-18 01:04:19 -08:00
topjohnwu
019eb03823
Hide or remove mut constructors for Utf8CStr
2025-02-17 11:38:11 -08:00
topjohnwu
363410e1c0
Introduce cstr_buf helper functions
2025-02-17 11:32:21 -08:00
topjohnwu
fc2ef21660
Introduce path! macro for FsPath
2025-02-17 01:46:19 -08:00
topjohnwu
18cb659ff3
Run clippy through build.py
2025-02-17 01:31:59 -08:00
topjohnwu
63231d97ce
Properly handle db downgrades
2025-02-16 17:01:36 -08:00
topjohnwu
9ac81a8a25
Skip module tests on API < 26
2025-02-16 16:20:09 -08:00
topjohnwu
79af2787ae
Workaround potential OOM when signing APKs
2025-02-16 16:20:09 -08:00
topjohnwu
f5f9b285c0
Add module tests
2025-02-16 16:20:09 -08:00
topjohnwu
6c05f2ae85
Test processing Shamiko module zip
2025-02-16 16:20:09 -08:00
topjohnwu
29043e1684
Consolidate setup methods
2025-02-16 16:20:09 -08:00
topjohnwu
b73d4a7022
Fix log_ok()
2025-02-16 12:01:25 -08:00
topjohnwu
ad95e8951b
Skip download in lsposed setup test
...
Download the zip during build time
2025-02-16 01:26:40 -08:00
topjohnwu
bf591fca12
Fix Utf8CString constructor and add more comments
2025-02-16 01:17:48 -08:00
topjohnwu
dcf027884d
Update FsPathBuf
2025-02-15 18:27:45 -08:00
topjohnwu
584f3820fe
Make all Utf8CStrWrite Utf8CStrBuf
2025-02-15 18:27:45 -08:00
topjohnwu
3c7c46307a
Partially cleanup MagiskInit code
2025-02-15 18:27:45 -08:00
vvb2060
4d80361805
core: search for first available dir in PATH
2025-02-15 15:08:26 -08:00
LoveSy
9a74e19117
Add log_ok() for log().ok()
2025-02-14 14:24:13 -08:00
LoveSy
b1e17706a4
Format code
2025-02-14 14:24:13 -08:00
LoveSy
caad129d69
Move MagiskInit::patch_sepolicy to rust
2025-02-14 14:24:13 -08:00
LoveSy
da58571ce5
Remove redundant rust export
2025-02-14 14:24:13 -08:00
LoveSy
2aa7f1c094
Move MagiskInit::check_two_stage to rust
2025-02-14 14:24:13 -08:00
LoveSy
823e31a91b
Use linker to link vfprintf as tiny_vfprintf
2025-02-14 14:24:13 -08:00
LoveSy
fb926ae302
Move MagiskInit::redirect_second_stage to rust
2025-02-14 14:24:13 -08:00
LoveSy
e0489eeffd
Move MagiskInit::first_stage to rust
2025-02-14 14:24:13 -08:00
LoveSy
dc9d5a4cac
Move MagiskInit::second_stage to rust
2025-02-14 14:24:13 -08:00
LoveSy
143743d0b0
Refactor init.cpp to init.rs
2025-02-14 14:24:13 -08:00
LoveSy
563f0d5ad5
Move BootConfig::print to rust
2025-02-14 14:24:13 -08:00
LoveSy
c99f4a591b
Move MagiskInit::exec_init to rust
2025-02-14 14:24:13 -08:00
LoveSy
449204e380
Move MagiskInit::prepare_data to rust
2025-02-14 14:24:13 -08:00
LoveSy
a85c4c6528
Move MagiskInit::MagiskInit to rust
2025-02-14 14:24:13 -08:00
LoveSy
d203a6fff6
Move MagiskInit to rust
2025-02-14 14:24:13 -08:00
LoveSy
6c612d66d7
Move BootConfig to rust
2025-02-14 14:24:13 -08:00
topjohnwu
540253a55b
Remove unnecessary FFI
2025-02-14 11:24:46 -08:00
topjohnwu
15b7c4ccd1
Fix tmpfs mounts in avd_magisk.sh
2025-02-14 10:17:31 -08:00
topjohnwu
442d5335ea
Consolidate get_module_fds implementation
...
Close #8767
2025-02-12 02:55:27 +08:00
topjohnwu
8a80eea597
Directly deal with Rust &str in sepolicy.cpp
2025-02-12 01:26:06 +08:00
Wang Han
5e35703091
Ensure target path exists before mknod
...
Co-authored-by: LoveSy <shana@zju.edu.cn >
2025-02-12 01:13:56 +08:00
topjohnwu
b7ca73f431
Remove an additional unique_ptr indirection
2025-02-05 14:18:16 +08:00
Wang Han
a14fc90f07
Fix fetching notification settings from db ( #8761 )
...
Co-authored-by: LoveSy <shana@zju.edu.cn >
2025-02-04 17:42:21 +08:00
LoveSy
c913f7ec74
Make sepolicy a shared type between rust and cxx
2025-02-04 00:36:11 +08:00
topjohnwu
7f6c9e8411
Fix zygisk module load
2025-02-03 23:21:51 +08:00
topjohnwu
bb02ea3a20
Fix file descriptor IPC
2025-02-03 18:21:03 +08:00
LoveSy
3981c9665e
Replace rust inner functions to try blocks
2025-02-02 22:09:55 +08:00
topjohnwu
88628fdf3c
Make sure IPC is arch agnostic
2025-02-02 22:08:41 +08:00
topjohnwu
0469817781
Cleanup code and bindings
2025-02-02 22:08:41 +08:00
topjohnwu
a786801141
Implement su_daemon in Rust
2025-02-02 22:08:41 +08:00
topjohnwu
ab86732c89
Implement simple serialization over IPC
2025-02-02 22:08:41 +08:00
topjohnwu
59622d1688
Use static methods in cxx-rs
2025-02-02 02:46:33 +08:00
LoveSy
58a25a3e2b
Fix su with tty
2025-02-01 16:50:53 +08:00
topjohnwu
15dca29a87
Update cxx-rs
2025-02-01 02:02:29 +08:00
Wang Han
46980819c0
Expose safe mode option on 28+
2025-01-31 12:20:02 +08:00
topjohnwu
4fb6a7268c
Fix SDK 27 and 28 tests
2025-01-31 02:52:27 +08:00
topjohnwu
c05e963f37
Address clippy warnings
2025-01-31 02:52:27 +08:00
topjohnwu
7f7f625864
Code reorganization
2025-01-31 02:52:27 +08:00
topjohnwu
b25aa8295a
Move bootstage into Rust
2025-01-31 02:52:27 +08:00
topjohnwu
15a605765c
Fully implement daemon side of Zygisk in Rust
2025-01-31 02:52:27 +08:00
topjohnwu
b575c95710
Implement fd I/O on Rust side
2025-01-31 02:52:27 +08:00
topjohnwu
a48a9c858a
Migrate zygisk handler to Rust
2025-01-31 02:52:27 +08:00
topjohnwu
0d8d6290a3
Move module list into MagiskD
2025-01-31 02:52:27 +08:00
topjohnwu
4dcd733ddd
Minor code cleanup
2025-01-31 02:52:27 +08:00
topjohnwu
b62835cbeb
Release new canary build
2025-01-31 02:36:58 +08:00
Wang Han
6ea740b5ab
Skip clearing install dir if not needed
2025-01-27 12:14:55 +08:00
topjohnwu
7ab98dd5ac
Make ioctl not a special token
2025-01-27 03:01:00 +08:00
anonymix007
fc8b3400fc
Fix sterm parsing logic for ioctl
2025-01-27 03:01:00 +08:00
topjohnwu
54428ba415
Fix Android Studio C++ indexing
2025-01-26 02:24:35 +08:00
topjohnwu
95d1e69d8e
Update to ONDK r28.2
2025-01-21 18:50:12 +08:00
topjohnwu
a0f13ab49f
Move lambda to static function
2025-01-19 18:59:17 +08:00
topjohnwu
c3e8405020
Update libcxx
2025-01-19 18:51:17 +08:00
Pesh4waaa
a93593ea66
Kurdish Language For Magisk
2025-01-19 15:24:03 +08:00
Wang Han
23eff70883
Fix repeated binding of first argument
...
Co-authored-by: LoveSy <shana@zju.edu.cn >
2025-01-19 11:57:09 +08:00
vvb2060
110dd4a8b9
Update dependencies
2025-01-19 11:55:44 +08:00
Wang Han
d9c2bffc9f
Avoid hardcoding max fd size
...
Android changed max fd limit to 32768 since Android 9:
cb5fccc83c
Co-authored-by: LoveSy <shana@zju.edu.cn >
2025-01-19 11:54:26 +08:00
topjohnwu
049db49dc8
Use preprocessor for 64bit detection
2025-01-11 00:15:10 +08:00
Wang Han
7c1d2ec61e
zygisk: Let client send arch info
2025-01-11 00:15:10 +08:00
topjohnwu
a1b2830c06
Address clippy warnings
2025-01-11 00:11:48 +08:00
topjohnwu
82d1d19267
Migrate uid_granted_root to Rust
2025-01-11 00:11:48 +08:00
topjohnwu
4d4195c02d
Migrate prune_su_access to Rust
2025-01-11 00:11:48 +08:00
topjohnwu
5637a258fc
Migrate package detection to Rust
2025-01-11 00:11:48 +08:00
topjohnwu
ee6810f417
Rewrite magisk logging implementation
2025-01-11 00:11:48 +08:00
topjohnwu
7098248c64
Add more functionality into Rust
2025-01-11 00:11:48 +08:00
topjohnwu
0d31d356ef
Use SQLite's internal time function
2025-01-05 05:04:04 -08:00
topjohnwu
b782e7dcb7
Fetch policy table from Rust
2025-01-05 05:04:04 -08:00
Softastur
a4671b4698
Update Asturian translations
...
Fixing and updating
2025-01-05 03:15:31 -08:00
topjohnwu
7edd8be169
Minor changes
2025-01-04 02:24:08 -08:00
topjohnwu
24650eefe4
Bind SQLite to Rust
2025-01-04 02:24:08 -08:00
topjohnwu
8e1a44e7eb
Use argument binding for query
2025-01-04 02:24:08 -08:00
topjohnwu
2722875190
Use better C++ SQL APIs
2025-01-04 02:24:08 -08:00
topjohnwu
3ca6d06f69
Cleanup database code
2025-01-04 02:24:08 -08:00
topjohnwu
10e47248de
Use finer grain sqlite3 APIs
2025-01-04 02:24:08 -08:00
Pzqqt
e73ff679ac
scripts: flash_script.sh: Avoid overly dangerous code
2024-12-27 16:02:24 -08:00
Wang Han
53e401fa2d
Perform authentication if needed for AutomaticResponse setting
2024-12-27 16:00:02 -08:00
LoveSy
d2768357da
Support systemlessly deleting files or folders
...
After we refactor the magic mount and always mount folder as tmpfs,
we can easily support deleting files or folders now. We recognize
dummy devices with major number 0 and minor number 0 as an indicator
for removing files and folders. This indicator is borrowed from
overlayfs.
2024-12-27 15:57:54 -08:00
LoveSy
a6c2ba7c1e
Allow kernel to relabel
2024-12-27 12:35:29 -08:00
LoveSy
aae5b466fb
Use rust to implement collect/reset overlay context
2024-12-27 12:35:29 -08:00
5ec1cff
2b7be8b949
init: reset overlay.d files context after sepolicy loaded
2024-12-27 12:35:29 -08:00
5ec1cff
b6511a510d
Revert "Allow all domains to access tmpfs files"
...
This reverts commit da43ac89a0 .
2024-12-27 12:35:29 -08:00
Wang Han
704541aef2
Use /metadata/watchdog as preinit dir if exists
...
Since Android 15, all domains are allowed to search /metadata so preinit
dir will be exposed. Use /metadata/watchdog when /metadata is chosen as
preinit device, and the dir is available (since Android 11).
2024-12-27 10:35:05 -08:00
topjohnwu
005560a4c5
Always rescan manager APK when database is updated
2024-12-26 12:18:38 -08:00
topjohnwu
231a5d1853
Cleanup test code
2024-12-25 22:26:30 -08:00
topjohnwu
9e2b59060d
Drive app migration tests through instrumentation
...
Make tests less flaky
2024-12-25 22:26:30 -08:00
topjohnwu
08ea937f7c
Test su request via instrumentation
2024-12-25 22:26:30 -08:00
topjohnwu
2baedf74d1
Install and test LSPosed through test app
2024-12-25 22:26:30 -08:00
topjohnwu
32faa4ced6
Redesign test APK architecture
...
The test APK and the main APK share the same process and classloader,
and in the non-hidden case, the test APK's classes take precedence over
the ones in the main APK. This causes issues because the test APK and
main APK share some dependencies, but don't always use the same
version. This is especially problematic for the Kotlin stdlib and
AndroidX dependencies.
The solution here is to rely on R8's obfuscation feature and repackage
all potentially conflicting classes into a separate package in the test
APK. To ensure that the test classes are always using the same classes
as the main APK, we have to directly implement all tests inside the main
APK, making the test APK purely a "test runner with test dependencies".
As a result, the test APK can only be used when built in release mode,
because R8 no longer allow class obfuscation to be enabled when building
for debug versions.
2024-12-25 20:17:57 -08:00
topjohnwu
ccdb0b5d13
Add ability to skip certain test variants
2024-12-25 20:11:21 -08:00
topjohnwu
8506b672ad
Update CI operating system
2024-12-23 22:52:30 -08:00
topjohnwu
ce2e33bb20
Cleanup test scripts
2024-12-23 20:42:54 -08:00
topjohnwu
6707b72260
Fix AVD tests
2024-12-23 20:41:42 -08:00
topjohnwu
5885b8c20d
Add new tests for app hiding
2024-12-18 17:22:31 -08:00
topjohnwu
820710c086
Fix incorrect SQLite syntax
2024-12-18 17:22:31 -08:00
topjohnwu
51cf196bf7
Always use root to hide/restore app
2024-12-18 17:22:31 -08:00
Wang Han
dadba44cf9
Update module installer guide about META-INF
2024-12-17 16:36:40 -08:00
topjohnwu
2ce4a5543b
Make ndk-build happy when Rust libs are missing
2024-12-13 17:00:40 -08:00
topjohnwu
9112a3a4f5
Introduce instrumentation tests
2024-12-13 12:07:42 -08:00
topjohnwu
24615afda1
Remove usage of ProcessLifecycle
2024-12-13 12:07:42 -08:00
topjohnwu
c5778f398b
Cleanup imports
2024-12-13 12:07:42 -08:00
topjohnwu
4eb4097b9b
Split file processing into its own class
2024-12-13 12:07:42 -08:00
vvb2060
c512496847
install_module: simplify script
2024-12-12 10:08:09 -08:00
vvb2060
506961a10d
flash module: ignore META-INF
2024-12-12 10:07:47 -08:00
topjohnwu
3414415907
Support zip files with unsupported compresssion method
2024-12-12 02:50:19 -08:00
topjohnwu
dc2ae7cfd1
Disable CI on master push
...
Changes should be done through PRs for CI
2024-12-12 02:50:19 -08:00
topjohnwu
2e86d21c29
16k pages only work on Android B on x64
2024-12-09 20:13:27 -08:00
topjohnwu
2654382c43
Address clippy warnings
2024-12-09 18:26:39 -08:00
topjohnwu
9e26b73813
Update rust dependencies
2024-12-09 18:26:39 -08:00
topjohnwu
10cd13bf80
Update ONDK r28.1
2024-12-09 18:26:39 -08:00
topjohnwu
f10ee5f887
Test 16K pages with AVD instead of Cuttlefish
2024-12-09 14:16:08 -08:00
topjohnwu
47cc532d96
Release new canary build
2024-12-06 18:19:06 -08:00
topjohnwu
218327f92b
Release Magisk v28.1
2024-12-06 17:45:41 -08:00
topjohnwu
4eae66a1a7
Add v28.1 release notes
2024-12-06 17:38:43 -08:00
vvb2060
b09ceeb43c
scripts: sync avd_magisk.sh with mgiskinit
2024-12-06 02:21:17 -08:00
vvb2060
4fb539c110
core: use a new tmpfs as worker
2024-12-06 02:19:43 -08:00
vvb2060
849b284da5
core: insert symlink magisk_node
2024-12-06 02:19:32 -08:00
topjohnwu
895b5f6cbf
Release new canary build
2024-12-04 01:28:31 -08:00
SonyaMedved
cb3d4ea514
strings.xml
...
The strings have been translated into Ukrainian.
2024-12-04 01:26:39 -08:00
topjohnwu
0d89a2a97d
Update AGP
2024-12-04 01:25:44 -08:00
nedokaka
3ca5913055
Update Russian Translation
2024-12-03 19:52:53 -08:00
topjohnwu
df6b808f49
Cleanup DesugarClassVisitorFactory
2024-12-03 19:52:39 -08:00
topjohnwu
09c7ac754b
Simplify MagiskD Rust/C++ FFI
2024-12-03 15:51:17 -08:00
topjohnwu
805da67c23
Update cxx-rs
2024-12-03 14:16:14 -08:00
topjohnwu
3c6889505b
Stop using polymorphism in magiskinit
2024-12-03 02:18:22 -08:00
topjohnwu
c8e9ce7627
Cleanup mount code in magiskinit
2024-12-03 02:18:22 -08:00
topjohnwu
837c679a31
Update avd_test API versions
2024-12-03 02:18:22 -08:00
LoveSy
06616659b8
Only desugar ZipEntry's methods
2024-12-02 19:55:28 -08:00
topjohnwu
a34c04f999
Release new canary build
2024-12-01 14:59:57 -08:00
topjohnwu
da43ac89a0
Allow all domains to access tmpfs files
...
Fix #8457
2024-11-30 23:21:33 -08:00
vvb2060
830fc758b9
init: Use apex dir to determine whether 2SI
2024-11-30 23:03:29 -08:00
vvb2060
0f3cfef278
Revert "init: support 2SI devices with skip_initramfs"
...
This reverts commit b38fd1ca5f .
2024-11-30 23:03:29 -08:00
topjohnwu
b32d7bfafd
Update gradle version
2024-11-21 21:05:35 -08:00
topjohnwu
c0899f2939
Update dependencies
2024-11-19 20:29:15 -08:00
topjohnwu
082330808f
Fix building APK
2024-11-19 20:25:10 -08:00
topjohnwu
024da05888
Move several stuff into buildSrc
2024-11-09 20:08:12 -08:00
LoveSy
377b6d0cc2
avoid desugar the Desugar class
2024-11-09 19:41:06 -08:00
Georgi Boiko
c661009b31
docs(ci): update setup action to state correct jdk version
2024-11-04 11:12:01 -08:00
vvb2060
613f2d31c5
app: auto close action fragment only when focus lost
2024-11-04 11:11:41 -08:00
vvb2060
7dbb973db5
daemon: some samsung devices using incorrect mediatek-res path
2024-11-04 11:09:53 -08:00
topjohnwu
f4502f8be8
Add our own API desugaring
...
Fix #8452
2024-10-29 12:13:22 -07:00
topjohnwu
455b13b83c
Fix download URL in stub.apk
2024-10-17 19:42:10 -07:00
topjohnwu
8b98709743
Update dependencies
2024-10-17 13:17:46 -07:00
tzagim
1b12f45f39
Update Hebrew Translation
2024-10-15 15:23:21 -07:00
vvb2060
a5cad532ff
ui: fix lock screen orientation
2024-10-12 01:16:24 -07:00