Commit Graph

38 Commits

Author SHA1 Message Date
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 2a3d34c812 Fix mkdirs 2024-04-10 22:36:47 -07:00
topjohnwu 2e4440b702 Support 32-bit magiskboot 2024-04-09 19:34:14 -07:00
topjohnwu 715284b70d Reorganize code 2024-02-27 18:14:30 -08:00
topjohnwu 4b8a0388e7 Make SELinux support a feature 2023-10-17 13:29:15 -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 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 89aee6ffa7 Add more to the Utf8CStr family
Better C strings with path operations
2023-09-12 17:35:01 -07:00
LoveSy 8d81bd0e33 resetprop: replace nanopb with quick-protobuf for persist 2023-09-05 22:20:57 -07:00
topjohnwu e8e8afa6c2 Properly handle visibility 2023-07-06 11:12:27 -07:00
LoveSy a470ee6f93 Fix mmap block device 2023-06-30 01:06:51 -07:00
topjohnwu 2359cfc480 Small refactor 2023-06-20 00:21:51 -07:00
LoveSy 53257b6ea1 Fix `find_apk_path` 2023-06-15 04:09:45 -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
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
topjohnwu d1621845b8 Fix typo 2023-06-10 01:50:18 -07:00
topjohnwu 40f25f4d56 Introduce directory traversal 2023-06-09 02:00:37 -07:00
topjohnwu 9ea9f01933 Resolve clippy errors and warnings 2023-05-31 01:08:33 -07:00
topjohnwu 5b8b48ccc1 Properly support streamable input 2023-05-26 14:07:11 -07:00
topjohnwu 18d0cedbe2 Parse rule files with Rust 2023-05-24 19:11:56 -07:00
topjohnwu 7b5ff99cd1 Reorganize code 2023-05-04 21:37:08 -07:00
topjohnwu b136aba1e2 Implement magiskinit logging in Rust 2023-05-02 16:49:43 -07:00
LoveSy 9e8c68af12
Refactor sepolicy.rules resolve
We resolve available partitions for sepolicy.rules when patching
boot and bind mount the partition by magiskinit.

For older devices, the previous logic won't work because the part name
is never readable.

Co-authored-by: topjohnwu <topjohnwu@gmail.com>
2023-02-12 00:36:38 -08:00
topjohnwu 44643ad7b3 Restrict pointer aliasing
Close #6354, close #6353
2022-10-31 16:35:33 -07:00
topjohnwu 616adc22e1 Support Linux < 3.6 2022-10-31 16:00:42 -07:00
topjohnwu 095d821240 Don't use xopen in readlink 2022-09-25 16:35:28 -07:00
topjohnwu 48f829b76e Minor refactoring 2022-09-21 03:09:46 +02:00
topjohnwu af99c1b843 Don't crash when nullptr paired with len = 0 2022-09-15 16:56:22 -07:00
topjohnwu c6646efe68 Move all xwrap to Rust 2022-09-15 01:17:05 -07:00