topjohnwu
ff4ca74cfe
Ban all unwrap usage in codebase
2025-12-08 23:31:04 -08:00
topjohnwu
64752f38e8
Do not unwrap when getting decoder and encoder
...
Or else things will crash mysteriously when unexpected input occurs
2025-12-05 03:40:18 -08: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
ef4e230258
Use nix for libc functions
2025-09-08 23:59:29 -07:00
topjohnwu
484d53ef7e
Update to ONDK r29.2
2025-08-28 16:15:59 -07:00
topjohnwu
3599dcedfb
Make argh directly parse into Utf8CString
2025-08-27 01:26:41 -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
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
LoveSy
db8d832707
Move magiskboot cli to argh
2025-08-20 21:40:34 -07:00
topjohnwu
37a9724a54
Apply clippy fix
2025-07-02 21:20:14 -07:00
topjohnwu
78d1200608
Migrate all compression code to Rust
2025-05-20 03:26:00 -07:00
topjohnwu
4ad26d3dfb
Better path methods
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
e02b5f7868
Rename cstr_buf to cstr::buf
2025-04-22 03:21:00 -07:00
topjohnwu
f3fef7bfe4
Make FsPath a trait
2025-04-22 03:21:00 -07:00
topjohnwu
cb08504fe5
Update cargo dependencies
2025-04-11 14:48:16 -07:00
topjohnwu
c09a792958
Reorganize magiskinit code
2025-03-24 17:26:03 -07:00
topjohnwu
a43c1267d8
Update Cargo.toml
2025-03-07 02:35:25 -08:00
topjohnwu
363410e1c0
Introduce cstr_buf helper functions
2025-02-17 11:32:21 -08:00
topjohnwu
584f3820fe
Make all Utf8CStrWrite Utf8CStrBuf
2025-02-15 18:27:45 -08:00
LoveSy
3981c9665e
Replace rust inner functions to try blocks
2025-02-02 22:09:55 +08:00
topjohnwu
7cf56b4406
Simplify ramdisk test
2024-08-21 16:46:37 -07:00
topjohnwu
7c88484d64
Fix #7988
2024-04-16 19:45:01 -07:00
topjohnwu
b22b6a4204
Refactor cpio
2024-04-10 22:46:21 -07:00
topjohnwu
c50ee722a1
Use memmem for finding needle in haystack
2024-04-10 14:57:44 -07:00
topjohnwu
2e4440b702
Support 32-bit magiskboot
2024-04-09 19:34:14 -07:00
LoveSy
b6c24a3a8a
No more sony init.real tricks
...
Co-authored-by: canyie <a1364259@163.com >
Co-authored-by: vvb2060 <vvb2060@gmail.com >
2024-02-29 23:40:00 -08:00
topjohnwu
987e5f5413
Address clippy warnings
2024-02-27 21:03:34 -08:00
LoveSy
2ac464b186
Only compress regular file
2023-12-18 16:21:08 +08:00
LoveSy
8b7fae278b
Support compressing during cpio backup
2023-12-18 16:21:08 +08:00
LoveSy
6f6b0ade06
Correct cpio's norm_path
2023-11-29 23:47:51 +08:00
topjohnwu
b28326198c
Use crates for cpio code
2023-09-22 01:39:21 -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
4eaf701cb7
Address clippy warnings
2023-09-06 21:45:12 -07:00
LoveSy
64c82e1f2c
Refine cpio argh
...
we can use argh to handle `--help` now
2023-07-06 15:07:06 -07:00
LoveSy
af2207433d
Fix error logging
...
ok_or will unconditionally creates a LoggedResult, which prints
an error even it successes. Use ok_or_else which lazily creates
a LoggedResult only if it fails.
2023-07-06 11:01:57 -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
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
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
LoveSy
c874391be4
Box CpioEntry
2023-06-15 04:09:17 -07:00
topjohnwu
cb3ab63815
Replace all CStr usage to Utf8CStr
2023-06-12 13:57:15 -07:00
LoveSy
d15017b777
Add arg requirement for cpio extract
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
607e6547a7
No check rm -r
2023-06-12 02:40:50 -07:00