topjohnwu
6d79de7d71
Initial crt0 implementation
...
Builds but cannot link, missing a lot of symbols
2024-02-22 21:22:27 -08:00
topjohnwu
65207f96c8
Create custom cxx binding to Utf8CStr
2023-12-26 23:10:55 +08:00
LoveSy
90dcc1cd30
Do not always zero initialize for rust resize vec
2023-12-18 16:21:08 +08:00
LoveSy
8b7fae278b
Support compressing during cpio backup
2023-12-18 16:21:08 +08:00
topjohnwu
8d5b9e5329
C++/Rust 2 way binding for MagiskD
2023-11-17 13:35:50 -08:00
topjohnwu
7c2e93d266
Introduce owned_fd
2023-11-16 15:38:38 -08:00
LoveSy
cbc6d40b2c
Clean up codes
2023-11-07 14:25:57 -08:00
topjohnwu
16ae4aedf1
Remove usage of MAGISKTMP
2023-11-02 15:50:36 -07:00
topjohnwu
4b8a0388e7
Make SELinux support a feature
2023-10-17 13:29:15 -07:00
topjohnwu
66788dc58c
Cleanup SELinux support
2023-10-16 17:38:44 -07:00
topjohnwu
36de62873a
Fix error logging on the C++ side
2023-10-13 16:59:54 -07:00
topjohnwu
51e37880c6
Add repr(transparent) to guarantee soundness
2023-10-12 18:59:16 -07:00
topjohnwu
4b83c1e76c
Cleanup messy error messages
2023-10-12 18:54:09 -07:00
topjohnwu
6d1e8d86cb
Cleaner cstr code
2023-10-11 23:53:55 -07:00
topjohnwu
eda8c70a80
Borrow value instead of moving in FsPath::from()
...
When accepting a value of AsRef<Utf8CStr> in FsPath::from(), the
existing code will move a value of Utf8CStrBufArr, creating a reference
that lives longer than the borrowing value, causing undefined behavior.
The issue is only visible on release builds, as more advanced
optimizations will be more aggressive re-using the stack of variables
that no longer lives.
Fix #7408
2023-10-11 23:48:54 -07:00
topjohnwu
6e7a995716
Introduce UtfCString
2023-09-27 15:21:24 -07:00
topjohnwu
a55d570213
Move more I/O operations into Rust
2023-09-27 02:28:43 -07:00
topjohnwu
5d07d0b964
Do not support systems without SELinux
2023-09-27 02:28:43 -07:00
topjohnwu
15e13a8d8b
Organize logging code
2023-09-19 03:02:30 -07:00
topjohnwu
8e1a91509c
Remove readlink_unsafe
2023-09-19 00:06:21 -07:00
LoveSy
5fbd3e5c65
Fix buf len update of read_link to Utf8CStrBuf
2023-09-18 22:31:12 -07:00
topjohnwu
dda8cc85c9
Use bytemuck
2023-09-14 13:10:09 -07:00
topjohnwu
6a59939d9a
Remove for_all_file
2023-09-13 18:09:16 -07:00
topjohnwu
0a2a590ab7
Use Utf8CStr for logging
2023-09-12 17:35:20 -07:00
topjohnwu
89aee6ffa7
Add more to the Utf8CStr family
...
Better C strings with path operations
2023-09-12 17:35:01 -07:00
topjohnwu
4fff2aa7d8
Fix proto read and write
2023-09-06 20:45:59 -07:00
topjohnwu
35b3c8ba5c
Cleanup persist props code
2023-09-06 15:52:14 -07:00
LoveSy
8d81bd0e33
resetprop: replace nanopb with quick-protobuf for persist
2023-09-05 22:20:57 -07:00
LoveSy
c072b4254d
Wrap rename and renameat
2023-09-02 04:24:24 -07:00
topjohnwu
2dbb812126
Disable stack protector on x86 static executables
...
Close #7274
2023-09-01 23:04:19 -07:00
topjohnwu
0c28a916be
Use cxx_name
2023-08-24 00:50:38 -07:00
topjohnwu
275208e81b
Update Rust dependencies
2023-08-17 21:24:29 -07:00
topjohnwu
b5b14ce343
Use cxx_name instead of rust_name
2023-08-10 21:22:53 -07:00
topjohnwu
9638dc0a66
Fix perror
2023-07-25 21:03:04 -07:00
topjohnwu
af65d07456
Support AVB1.0 signing and verification in magiskboot
2023-07-17 18:57:50 -07:00
topjohnwu
c97ab690b6
Segment memory mapped boot image region
2023-07-13 21:01:49 -07:00
LoveSy
64c82e1f2c
Refine cpio argh
...
we can use argh to handle `--help` now
2023-07-06 15:07:06 -07:00
topjohnwu
e8e8afa6c2
Properly handle visibility
2023-07-06 11:12:27 -07:00
LoveSy
606d97ae4d
Trace location from LoggedError
...
Co-authored-by: topjohnwu <topjohnwu@gmail.com>
2023-07-05 18:55:23 -07:00
topjohnwu
d778b0b0a7
Custom help message when using argh
...
Help messages generated from argh is nearly useless and very hard to
customize. Fork argh and disable all code for generating help messages.
Use a closure to print the help message when handling EarlyExit.
2023-07-05 17:05:39 -07:00
topjohnwu
5ee6daf126
Handle cpio commands properly
2023-07-03 21:57:28 -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
279f955a84
Minor changes
2023-06-23 01:50:33 -07:00
topjohnwu
399b9e5eba
Move hexpatch to Rust
2023-06-20 18:17:26 -07:00
topjohnwu
2359cfc480
Small refactor
2023-06-20 00:21:51 -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
topjohnwu
037f46f7f0
Fix copy_cstr
2023-06-15 04:00:32 -07:00
topjohnwu
d7d0a44693
Remove randomness from Magisk
2023-06-14 17:05:49 -07:00