Conversation
maxsteeel
marked this pull request as ready for review
July 5, 2026 04:48
maxsteeel
force-pushed
the
dev
branch
2 times, most recently
from
July 5, 2026 05:34
a40e9bc to
f453d10
Compare
maxsteeel
marked this pull request as draft
July 12, 2026 21:14
maxsteeel
marked this pull request as ready for review
July 24, 2026 23:18
- kernel/: - Implement the `NM_FLAG_WHITEOUT` bitmask to explicitly hide existing physical files from the VFS. - Intercept `iterate_dir` via `nomount_actor_proxy` to silently drop `dir_context` entries flagged with `NM_FLAG_WHITEOUT`. - Strip trailing slashes and handle whiteouts safely in-place within `nomount_handle_getname`. - Refactor private dirs logic from path-based string matching to pure inode/dentry tracking. - Unify multiple RCU read lock sections and sequential hash table lookups into a single O(1) pass within `nomount_handle_getattr` and `nomount_handle_permission` to reduce CPU cache thrashing and lock contention. - Fix a critical logic error by replacing bitwise masking `switch` statements with sequential `if` conditions in inode spoofing routines. - Add missing `u8 flags` member to `struct nomount_child_name` to allow flag inheritance in the virtual topology array. - Remove `__nomount_is_injected_file_rcu` and `__nomount_is_traversal_allowed_rcu` helpers. - userspace/: - Extend Netlink payload struct to pack `NM_FLAG_WHITEOUT` instructions via the new `w` command argument in the `nm` CLI tool. - Adapt the JSON and raw `nm list` parsers to properly identify and print whiteout entries natively from the Netlink attribute header. - module/: - Add support for traditional OverlayFS character device (`mknod`) and Magisk `.replace` syntax detection during the boot phase inside `metamount.sh`. - Refactor `xargs` batching pipelines in `metamount.sh` and `index.js` to process up to the maximum `ARG_MAX` limit dynamically via null-byte (`\0`) streams. - Remove JSON parsing overhead from hot-unloading routines in the WebUI, opting for a direct unified file/symlink/char device file-system scan targeting `nm d`.
- Switched to Flexible Array Members (FAM) to eliminate SLUB overhead. - Removed compiler padding and redundant struct list_heads. - Implemented an 8KB static u8 counting filter for lockless getname rejection. - Optimized Netlink batch routing to use direct memory access without copy. - Improved iterate_dir proxy by replacing strlen with boundary checks. Dramatically reduces unpageable memory usage and VFS latency overhead.
TODO: implement correct cleanup of hijacked structures in nomount_clear_all when is_exit = true to avoid UAF in nomount_exit
Co-authored-by: Max <109047395+maxsteeel@users.noreply.github.com>
…estore_superblock
these functions are a experiment, to see the posibilities of injection in nomount, but these functions are not useful in Android, so is better remove it
maxsteeel
force-pushed
the
dev
branch
2 times, most recently
from
July 30, 2026 22:41
08f1e9c to
a29e687
Compare
maxsteeel
force-pushed
the
dev
branch
2 times, most recently
from
July 31, 2026 04:39
bd69286 to
3cd828a
Compare
…l d_op with fallback to direct assignment
maxsteeel
force-pushed
the
dev
branch
3 times, most recently
from
August 3, 2026 01:42
65034ff to
0a054d7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
kernel/:
nomount_inodes_htandnomount_inode_node. Addednm_inode_infoto O(1) inode operations.iterate_diroperations.u8 flagsmember to struct nomount_child_name to allow flag inheritance.userspace/:
nm add /system/etc/hosts /data/adb/modules/hosts/system/etc/hosts --uid 10100nm whiteout /system/etc/lineage.prop --uid 10240module/:
nm d.