topjohnwu
ee943afbc9
Cleanup SHA hash implementation
2023-06-30 15:50:52 -07:00
LoveSy
1f7c3e9f14
Use rust to calculate sha
2023-06-30 14:06:02 -07:00
LoveSy
a470ee6f93
Fix mmap block device
2023-06-30 01:06:51 -07:00
topjohnwu
4ee4cbada6
Standardize logging and error handling
...
- Introduce new types: LoggedResult and LoggedError
- Introduce new extension methods to log and add additional msgs
- Never exit when logging error messages in Rust (all errors should be
handled by using Result and Rust's error propagation)
- Remove all usages of anyhow as it doesn't fit Magisk's use cases
2023-06-29 17:14:53 -07:00
topjohnwu
a8c4a33e91
Avoid using trait object
2023-06-23 02:32:29 -07:00
topjohnwu
279f955a84
Minor changes
2023-06-23 01:50:33 -07:00
topjohnwu
dc26ad7125
Address clippy warnings
2023-06-22 02:36:31 -07:00
LoveSy
24b1c607f3
Replace clap with argh
2023-06-22 02:36:31 -07:00
topjohnwu
732a161b67
Minor cleanup
2023-06-22 02:23:27 -07:00
topjohnwu
9c7cf340a1
Move pattern matching to Rust
2023-06-21 16:47:20 -07:00
topjohnwu
399b9e5eba
Move hexpatch to Rust
2023-06-20 18:17:26 -07:00
topjohnwu
a6b1149b9f
Minor cleanup
2023-06-20 14:36:07 -07:00
LoveSy
51e985ae7f
Use quick-protobuf
2023-06-20 14:36:07 -07:00
vvb2060
9929b25339
Move su request path to magisk tmp
2023-06-20 03:29:06 -07:00
topjohnwu
2359cfc480
Small refactor
2023-06-20 00:21:51 -07:00
topjohnwu
81493475f9
Directly use rust::Vec
2023-06-20 00:21:51 -07:00
topjohnwu
8abcccc262
Fix typo
2023-06-16 01:49:44 -07:00
LoveSy
a9c89cbbbb
Read certificate in Rust
...
Co-authored-by: topjohnwu <topjohnwu@gmail.com>
2023-06-16 01:49:44 -07:00
LoveSy
53257b6ea1
Fix find_apk_path
2023-06-15 04:09:45 -07:00
LoveSy
c874391be4
Box CpioEntry
2023-06-15 04:09:17 -07:00
LoveSy
7e8e013832
Fix two typo
2023-06-15 04:09:17 -07:00
topjohnwu
037f46f7f0
Fix copy_cstr
2023-06-15 04:00:32 -07:00
topjohnwu
d3e1c496ca
Upgrade ONDK to r25.6
2023-06-15 01:26:54 -07:00
topjohnwu
d7d0a44693
Remove randomness from Magisk
2023-06-14 17:05:49 -07:00
topjohnwu
9d6f6764cb
Use Metadata instead of direct stat syscall
2023-06-12 14:58:13 -07:00
topjohnwu
cb3ab63815
Replace all CStr usage to Utf8CStr
2023-06-12 13:57:15 -07:00
topjohnwu
caae932117
Remove unnecessary lifetime markers
2023-06-12 13:56:20 -07:00
LoveSy
e9cf27eb5a
Fix map_file
2023-06-12 13:55:58 -07:00
LoveSy
d15017b777
Add arg requirement for cpio extract
2023-06-12 02:40:50 -07:00
LoveSy
a9387e63e1
Fix Utf8CStr::as_ref() -> OsStr
2023-06-12 02:40:50 -07:00
topjohnwu
23c1f0111b
Improve Rust implementation
...
- Move mmap_file implementation into Rust
- Introduce Utf8CStr as the better c-string type to use
2023-06-12 02:40:50 -07:00
LoveSy
866386e21f
Use to_string instead of to_owned
2023-06-12 02:40:50 -07:00
LoveSy
bf10496fa9
Add log for restore
2023-06-12 02:40:50 -07:00
LoveSy
607e6547a7
No check rm -r
2023-06-12 02:40:50 -07:00
topjohnwu
6b21091fe2
Fix compile errors and cleanup
2023-06-12 02:40:50 -07:00
topjohnwu
e58f98e844
Update cargo files
2023-06-12 02:40:50 -07:00
LoveSy
b8cb9cd84d
Refactor magiskboot cpio
2023-06-12 02:40:50 -07:00
LoveSy
c1038ac6f9
Remove permissve update_engine
2023-06-10 13:17:37 -07:00
LoveSy
bf6359abaa
Fix release build
2023-06-10 13:10:54 -07:00
topjohnwu
d1621845b8
Fix typo
2023-06-10 01:50:18 -07:00
topjohnwu
f33f1d25d0
Move find_apk_path to Rust
2023-06-10 01:40:45 -07:00
topjohnwu
40f25f4d56
Introduce directory traversal
2023-06-09 02:00:37 -07:00
topjohnwu
e13775ec2c
Directly use memmem in contains
2023-06-07 16:52:52 -07:00
topjohnwu
ee4dad7a13
Bridge C++ bytes with Rust &[u8]
2023-06-07 16:49:40 -07:00
topjohnwu
5e2ef1b7f4
Better bytes support in C++
2023-06-06 17:11:42 -07:00
topjohnwu
305e8b3d14
Improve bootimg const correctness
2023-06-03 05:10:22 -07:00
topjohnwu
2a654e5d7f
Improve byte_data const correctness
2023-06-03 03:16:03 -07:00
topjohnwu
57afae3425
Cleanup cpio codebase
2023-06-03 00:31:20 -07:00
topjohnwu
feb44f875e
Migrate PREINITDEVICE in recovery mode
...
Close #6917
2023-06-02 16:49:04 -07:00
topjohnwu
9ea9f01933
Resolve clippy errors and warnings
2023-05-31 01:08:33 -07:00
topjohnwu
c30fbdf145
Simplify logging code
2023-05-29 01:27:40 -07:00
topjohnwu
f12951bd1d
Fix typo
2023-05-29 00:30:55 -07:00
topjohnwu
f2846694e1
Cleanup some code
2023-05-28 23:50:52 -07:00
topjohnwu
d77a368176
Move dependency version into workspace
2023-05-28 17:30:33 -07:00
topjohnwu
5b8b48ccc1
Properly support streamable input
2023-05-26 14:07:11 -07:00
topjohnwu
659b9c6fee
Support extracting any partition from payload.bin
2023-05-26 13:36:47 -07:00
LoveSy
ec31cab5a7
Add zip and payload.bin support to Magisk app
2023-05-26 13:36:47 -07:00
vvb2060
dd93556ad8
Faster get magisk tmpfs path
2023-05-25 01:03:27 -07:00
topjohnwu
533aeadd38
Update cstr macro
2023-05-25 01:03:04 -07:00
topjohnwu
18d0cedbe2
Parse rule files with Rust
2023-05-24 19:11:56 -07:00
topjohnwu
5a94ef9106
Fix init rust code setup
2023-05-23 21:50:13 -07:00
topjohnwu
8e8f01f8b5
Move project common code into include
2023-05-23 21:30:30 -07:00
topjohnwu
47d2d4e3a5
Update su cmdline parsing
2023-05-23 20:51:23 -07:00
topjohnwu
69144942e3
Fix fortify
...
Close #7009 , fix #7003
2023-05-23 16:31:24 -07:00
topjohnwu
5627053b74
Move su folder into core
2023-05-23 01:36:25 -07:00
topjohnwu
0f666de5e6
Organize headers
2023-05-22 21:36:15 -07:00
LoveSy
eddc862fa3
Use POSIX format
2023-05-22 18:14:59 -07:00
LoveSy
4327682120
Add mnt ns attach support for su
2023-05-22 18:14:59 -07:00
LoveSy
af5bdee78f
Reimplement su -z
2023-05-22 18:14:59 -07:00
LoveSy
0e36e86dbf
Support settings gids of su
2023-05-22 18:14:59 -07:00
LoveSy
f95478f1f1
Truncate file only if needed
2023-05-22 00:51:42 -07:00
topjohnwu
9fe8741a02
Export get_prop to Rust
2023-05-21 23:51:30 -07:00
topjohnwu
a5768e02ea
Cleanup byte_channel implementation
2023-05-20 14:19:40 -07:00
topjohnwu
f5aaff2b1e
Cleanup filter_out_stream implementation
2023-05-20 01:28:10 -07:00
topjohnwu
655f778171
Better cxx binding codegen
2023-05-19 15:59:40 -07:00
topjohnwu
2bcf2e76f1
Generate cxx binding in build.rs
2023-05-19 15:16:54 -07:00
topjohnwu
57bd450798
Split input and output streams
2023-05-19 04:19:43 -07:00
topjohnwu
582cad1b8d
Cleanup libc hacks
2023-05-19 03:23:43 -07:00
topjohnwu
6ca2a3d841
Update libsystemproperties
2023-05-19 03:22:50 -07:00
topjohnwu
91773c3311
Support only read properties from storage
2023-05-19 01:53:40 -07:00
topjohnwu
dc61033b2c
Support persist props bypassing property_service
2023-05-18 23:36:46 -07:00
topjohnwu
f8d62a4b6c
Move resetprop under core
2023-05-18 22:15:49 -07:00
topjohnwu
1d2145b1b7
Improve argument parsing and help message
2023-05-18 21:54:54 -07:00
topjohnwu
1f7f84b74a
Remove unnecessary class
2023-05-18 20:38:33 -07:00
topjohnwu
cd7a335d0f
Cleanup implementation
2023-05-18 20:26:20 -07:00
topjohnwu
17569005a4
Remove sysprop fallback
...
The library now supports mapping as ro
2023-05-18 15:47:50 -07:00
topjohnwu
f36b21bae5
Support get property context
...
Co-authored-by: canyie <a1364259@163.com>
Co-authored-by: vvb2060 <vvb2060@gmail.com>
2023-05-18 14:46:36 -07:00
topjohnwu
fe1ca52f6d
Simplify prop_cb
2023-05-16 02:41:39 -07:00
topjohnwu
1be647a279
Put all FFI into same module
2023-05-16 02:41:39 -07:00
topjohnwu
a8c1ed8795
Update development docs
2023-05-13 02:38:03 -07:00
topjohnwu
22d05ca399
Update time handling code
2023-05-13 02:38:03 -07:00
LoveSy
b9e6937996
Make magisk node ro as well
2023-05-10 00:13:18 -07:00
topjohnwu
583ffc8177
Reduce cpp logging overhead
2023-05-09 19:14:08 -07:00
topjohnwu
7518092ad2
Implement logging purely in Rust
2023-05-09 18:54:38 -07:00
topjohnwu
d364554425
Remove unused code
2023-05-06 01:48:47 -07:00
vvb2060
726ffdcd98
Fix meizu rootfs type
2023-05-06 00:06:59 -07:00
vvb2060
f9d22cf8ee
New magisk tmp dir: /debug_ramdisk
...
Co-authored-by: LoveSy <shana@zju.edu.cn>
2023-05-06 00:04:11 -07:00
vvb2060
ee50da566f
Cancel recursive bind
2023-05-06 00:04:11 -07:00
vvb2060
9f7d410959
Use pathname local socket
2023-05-06 00:04:11 -07:00
vvb2060
bc94ea4334
Update SELinux policy
2023-05-06 00:04:11 -07:00
topjohnwu
c0c9204848
Add ResultExt
2023-05-05 23:57:34 -07:00
topjohnwu
c0d1bf63bc
Clean up logging on C++ side
2023-05-05 01:14:56 -07:00
topjohnwu
7b5ff99cd1
Reorganize code
2023-05-04 21:37:08 -07:00
topjohnwu
21ddb26db8
Perform proto codegen in build script
2023-05-04 21:37:08 -07:00
LoveSy
7bf2e3875f
Support extract boot image from payload.bin
2023-05-04 21:37:08 -07:00
topjohnwu
b136aba1e2
Implement magiskinit logging in Rust
2023-05-02 16:49:43 -07:00
topjohnwu
1c5a435e1f
Update cxx-rs
2023-05-01 14:53:07 -07:00
topjohnwu
f7de649a36
Update ODNK requirement to r25.3
2023-04-29 15:12:04 -07:00
topjohnwu
0cf0d2b821
Move avd_hack boolean out of init class
2023-04-25 23:34:45 -07:00
vvb2060
68c2817d40
Enable avd hack for debug build
2023-04-25 23:00:59 -07:00
LoveSy
52a98cbd51
Temp workaround for module file context
2023-04-10 19:30:37 -07:00
topjohnwu
b4ae3493a6
Use ext4 partitions for preinit first
...
Fix #6841 , close #6847
2023-04-08 20:30:40 -07:00
残页
1a16004b20
Add help message for magisk --preinit-device
2023-04-08 18:32:34 -07:00
topjohnwu
cc5ff36165
Revert "Cancel recursive bind"
...
This reverts commit a18a440236e6b1563cd9ceb1abee21836d5cebd8.
2023-04-05 10:47:13 -07:00
topjohnwu
18b1ef6c29
Only restore JNIEnv in constructor
2023-04-05 10:13:50 -07:00
LoveSy
7fe012347a
Restore JNIEnv in advance for clean env to modules
2023-04-05 09:29:59 -07:00
vvb2060
5c165c9bb0
Fix avd hack
2023-04-05 04:01:32 -07:00
topjohnwu
6c3519923d
Make things more obvious
2023-04-05 04:01:07 -07:00
topjohnwu
9ea859810d
Update api.hpp copyright notice
2023-04-05 01:54:56 -07:00
vvb2060
9279f30e89
Upload mapping and native debug symbols
2023-04-05 00:14:51 -07:00
LoveSy
b505819ca2
Fix a typo
2023-04-04 12:28:08 -07:00
vvb2060
69529ac59c
Fix restorecon
2023-04-04 02:34:16 -07:00
vvb2060
a18a440236
Cancel recursive bind
2023-04-04 02:12:07 -07:00
LoveSy
aa7846c1c0
No need to mount ROOTMIR if tmp_dir != /sbin
2023-04-04 02:12:07 -07:00
topjohnwu
24ba4ab95b
Better AVD support
2023-04-04 02:04:49 -07:00
topjohnwu
762b70ba9d
Better string split implementation
2023-04-03 18:50:36 -07:00
topjohnwu
41b77e4f25
Make base as template argument for optimization
2023-04-03 18:32:11 -07:00
topjohnwu
2087e47300
Get random separately
2023-04-03 18:32:11 -07:00
vvb2060
46ce765860
Use stable random seed
2023-04-03 18:32:11 -07:00
LoveSy
15cab86152
Make module mirror read only
2023-04-02 22:03:02 -07:00
LoveSy
97731a519a
Update zygisk API to avoid mem leak
2023-04-02 03:54:33 -07:00
LoveSy
4ff60ef9a9
No more patching libc.a on 64bit platforms
2023-04-01 03:51:57 -07:00
topjohnwu
23b1b69110
Consolidate zygisk cleanup routines
2023-04-01 03:37:17 -07:00
LoveSy
3a4fe53f27
New way to unload zygisk
...
Co-authored-by: 残页 <a1364259@163.com>
2023-04-01 03:37:17 -07:00
LoveSy
04324a7ebe
Upgrade LSPlt to bypass a bionic bug
2023-03-23 20:56:35 -07:00
vvb2060
f54daa3469
Force ramdisk format to lz4_legacy for v4
2023-03-23 20:50:27 -07:00
LoveSy
07c22ccd39
Use app_dir to detect systemui instead
...
uid may be shared by other apps (e.g., in MIUI, systemui's uid
is 1000 and shared by many system apps).
2023-03-23 16:17:13 -07:00
LoveSy
e893c13cf1
Unlink preinit device if bind mount fails
2023-03-23 00:40:13 -07:00
LoveSy
dba5020e4f
Refactor magiskrc
2023-03-22 17:53:15 -07:00
LoveSy
87e036a190
Update LSPlt to avoid crash when hooking libc
2023-03-22 12:02:33 -07:00
topjohnwu
4417997749
Make sure ro mmap region is not overwritten
2023-03-21 15:50:43 -07:00
LoveSy
2eef542054
Add amonet microloader support
2023-03-21 15:50:43 -07:00
LoveSy
b9d0a3b3d4
Use partition name or devpath's name
2023-03-21 00:40:11 -07:00
topjohnwu
76405bd984
Add more comments
2023-03-21 00:40:11 -07:00
topjohnwu
4e2b88b3d0
Rename rules to preinit
...
It is possible that we will allow more preinit files for modules.
Rename the partition and folders from rules to preinit.
2023-03-21 00:40:11 -07:00
LoveSy
7048aa1014
Rename sepolicy.rules -> rules
2023-03-21 00:40:11 -07:00
LoveSy
1c2fcd14b5
Mount sepolicy.rules for migration
2023-03-21 00:40:11 -07:00
vvb2060
362eea741f
Refactor sepolicy.rules resolve native
...
Co-authored-by: LoveSy <shana@zju.edu.cn>
2023-03-21 00:40:11 -07:00
LoveSy
03cee0b8d4
Remove meaningless umount in magiskinit
...
This is no longer required since we redirect to /data/magiskinit
2023-03-19 23:35:18 -07:00
LoveSy
54ecc001f4
Clean up more codes
2023-03-19 23:20:19 -07:00