v3.4.7
Features
hymofsIntegrate HymoFS as third mount mode - New hymofs executor that drives the HymoFS LKM via ioctl rules (ADD_RULE / ADD_MERGE_RULE / HIDE_RULE / ADD_MAPS_RULE / HIDE_OVERLAY_XATTRS), with bidirectional src/resolved_src matching to keep module-side paths like /system/product working alongside the kernel's canonical form. - LKM lifecycle management: autoload/unload, KMI override, runtime probe via /proc/modules, and packaging of per-KMI hymofs_lkm.ko under module/hymofs_lkm/ via xtask (HYBRID_MOUNT_HYMOFS_LKM_DIR). - New CLI surface: hybrid-mount hymofs {status,list,enable,disable, stealth,hidexattr,maps,hide-uids,mount-hide,statfs-spoof,uname, cmdline,fix-mounts,clear,release-connection,invalidate-cache} and hybrid-mount lkm {status,load,unload,set-autoload,set-kmi, clear-kmi}, plus user-hide persistence (hide add/remove/list/apply). - Planner / controller / runtime-state / finalization updated to treat hymofs as a first-class mount mode alongside overlay/magic. - Config schema extends with HymofsConfig (flags, uname/cmdline spoof, hide_uids, maps_rules, kstat_rules, mount_hide, statfs_spoof) and persists to /data/adb/hybrid-mount/hymofs.toml. - WebUI: new HymoFS tab with LKM card, runtime toggles, identity spoof, user-hide list, maps rules, and capability summary. Bottom-nav snowflake icon. hymofsStore uses /proc/modules as a fast probe: on LKM unloaded it synthesizes a fallback status that preserves the previous real config so the master toggle never flips off on unload. - CI: build.yml and release.yml now call build-hymofs-lkm.yml (matrix: 7 KMIs x arm64), download the .ko artifacts, and stage them via HYBRID_MOUNT_HYMOFS_LKM_DIR before xtask build. - scripts/build-local.sh: local build helper with --hymofs-lkm-dir for dev iterations.
Fixes
-
hymofsDrop redundant u64 casts in statvfs math to satisfy clippy -
hymofsStabilise statvfs and default-config unit tests - statvfs_usage: widen via u64::from and silence the per-platform unnecessary_cast / useless_conversion lints instead of carrying target-gated code just for this helper. - hymofs_runtime_requires_mapping_or_explicit_feature: Config::default() turns stealth on; clear all auxiliary feature flags in the test so it actually exercises the 'no mapping, no feature' path. -
hymofsRemove redundant imports in compile and runtime modules -
actionUpdate download-artifact action to v8 -
plannerHandle symlinks and improve error logging in generate_with_root function feat(utils): enhance collect_module_files to maintain partition structure fix(node): update symlink handling in Node implementation and add tests -
module_statusImprove status description formatting in update_description function -
hymofsAlign cmdline sync/clear behavior with upstream semantics -
hymofsIsolate runtime sync and harden compat -
storageAlign tmpfs and ext4 selinux context
Refactors
-
hymofsUnify config and tighten runtime behavior -
hymofsReorganize use statements for better readability -
buildRemove setup-build-env action and integrate KPM setup directly in workflows
Other
- Add HymoFS module with runtime and status management - Introduced a new HymoFS module in
src/mount/hymofs/mod.rsto encapsulate functionality related to the HymoFS file system. - Implemented runtime management insrc/mount/hymofs/runtime.rs, including feature toggles, runtime configuration synchronization, and application of mount rules. - Created a status management module insrc/mount/hymofs/status.rsto handle operational checks and runtime information collection. - Added comprehensive tests insrc/mount/hymofs/tests.rsto validate runtime behavior, feature toggles, and rule compilation. - Ensured proper logging and error handling throughout the module for better debugging and operational visibility.