Repository navigation
Releases: nothingnesscore/BruhMount
Release list
BruhMount Milestone Checkpoint #613 (v2.1.0-enhanced)
🚀 BruhMount Milestone Checkpoint (#613)
Trigger: Accumulated 27 commits since checkpoint-586-60fcbf9
Version: v2.1.0-enhanced
Commit: 9ebbdc7
📋 Changes Compiled Since Last Checkpoint:
- nomount: bump the version from v2.1.0 to v2.1.1 (7046c7a)
- kernel: correct NOMOUNT_VERSION (71ac345)
- webui: synchronize Crowdin translations (d3addfc)
- kernel: remove redundant UID Bloom hashing (6319390)
- kernel: skip Bloom for small child sets (043ea66)
- kernel: retire rule arrays and leaves with call_rcu, take mutex once per add batch (1f35f82)
- kernel: cache fsuid in the actor proxy (e6756af)
- kernel: implement scope guard for RCU read lock/unlock (75ed11c)
- kernel: split rule resolution into borrowed and owned variants (2277006)
- kernel: prepare VFS hooks before publishing children (dacb655)
- kernel: free unpublished topology rules (28347a0)
- kernel: build: add -fno-stack-protector to Makefile and strip page pinner symbols in LKM workflows (baf22db)
- kernel: use designated path initialization (c0e03b7)
- kernel: pack rule strings into the rule array (d5955a2)
- kernel: decouple virtual inodes from rules (8005194)
- kernel: simplify lookup and UID export (84187f0)
- userspace: escape paths in JSON rule output (5fa05b5)
- userspace: propagate list query failures (a94abcf)
- webui: add Skip/Unskip module button (3179c1f)
- kernel: avoid repeated directory cache pruning (fcaa6c4)
- misc: integrate Crowdin for translations (007f933)
- kernel: trim per-entry overhead in directory iteration (64478a3)
- kernel: skip the d_lock in the no-op path of nomount_hijack_dentry_ops (516de9d)
- kernel: resolve nm_entries(arr) outside of bsearch loop (fe6a2fa)
- chore(release): update update.json for version 21586 [skip ci] (3eb5ef8)
- kernel: add 256-bit bloom prefilter to the UID exclusion list (27d4f0e)
Note: For 1-click in-manager updates, SU managers download the rolling latest release.
BruhMount Milestone Checkpoint #586 (v2.1.0-enhanced)
🚀 BruhMount Milestone Checkpoint (#586)
Trigger: Accumulated 32 commits since checkpoint-554-75df961
Version: v2.1.0-enhanced
Commit: 60fcbf9
📋 Changes Compiled Since Last Checkpoint:
- webui: inline theme.css into styles.css (1ded61d)
- webui: compute the Material palette in JS from a single seed (6d34612)
- webui: make theme.json authoritative and localStorage a warm cache (012d6bd)
- webui: unify history state so back gestures always land on a consistent UI (654984c)
- module: split LKM load into post-fs-data.sh and rules load into metamount.sh (ff18bbc)
- kernel: make nm_qhash branchless (24c413c)
- kernel: build: compile with -O3 for improve code performance (774a37c)
- kernel: mark the bloom test unlikely in __nomount_get_rule_info() (882a5f9)
- webui: Add Polish translation (maxsteeel#98) (307ddc5)
- kernel: pass the already-resolved fsuid down to __nomount_get_rule_info() (9b12df6)
- kernel: rebuild child bloom filter on growth (5151600)
- kernel: scale child bloom filter size with directory child count (a362f60)
- kernel: cache uid_blocked result across iterate_dir to avoid duplicate lookups (043b445)
- kernel: reorder the atomic_inc_not_zero in iterate_dir (f0ebe84)
- kernel: remove duplicated children check in lookup (875a380)
- kernel: use cheap qhash for bloom prefilter, keep full_name_hash for bsearch (ac08b78)
- kernel: widen child bloom filter from 64 to 256 bits (8912760)
- module: share rule path generation (6d016b9)
- webui: avoid grep in opaque directory checks (8bc2638)
- kernel: split lookup rule resolution into RCU and sleeping phases (9ea42b0)
- kernel: fix UAF in lookup/iterate_dir by pinning dir_node with RCU and refs (5f13384)
- kernel: set fake_fop.owner to THIS_MODULE to prevent unload with open files (7a24793)
- kernel: hold RCU while reading dir_node/iop in d_revalidate to avoid UAF (7f22786)
- kernel: fix possible OOB in NM_CMD_GET_UIDS (dbd7f4a)
- kernel: correctly clean up pinned_dentry in nm_dir_rcu_free (fb1fb9a)
- module: remove rules clearing in customize.sh (83eae1b)
- module: fix typo in customize.sh (eb74bfb)
- kernel: don't call ->evict_inode() if its a virtual inode (7e7342c)
- webui: l10n: ru: small adjustments (maxsteeel#95) (20d011b)
- module: rename metamount.sh to post-fs-data.sh (42f9caa)
- chore(release): update update.json for version 21554 [skip ci] (fd8f31f)
Note: For 1-click in-manager updates, SU managers download the rolling latest release.
BruhMount Milestone Checkpoint #554 (v2.1.0-enhanced)
🚀 BruhMount Milestone Checkpoint (#554)
Trigger: Accumulated 24 commits since checkpoint-530-abc6cbf
Version: v2.1.0-enhanced
Commit: 75df961
📋 Changes Compiled Since Last Checkpoint:
- nomount: bump the version from v2.0.0 to v2.1.0 (c7f63e3)
- build: append git commit count to kernel driver version (8f0a902)
- webui: align exec() wrapper with official KernelSU exec() wrapper (f1e0cd4)
- module: restore safe mode function (05a3a1c)
- kernel: remove redundant restore parameter from nm_destroy_hijacked_inode (9eb3d40)
- kernel: prevent double-free and UAF during inode eviction (835a354)
- kernel: preserve filesystem revalidation for excluded UIDs (5d16ae0)
- kernel: remove redundant initialization and dead branch (1d0e656)
- kernel: fix race condition when accessing inode->i_private (427ec53)
- kernel: restore virtual parents on rule deletion (712f6c7)
- webui/locales: typos and adjustments (maxsteeel#94) (d30db75)
- chore(release): update update.json for version 21540 [skip ci] (529c9e1)
- webui: update Bengali translation (maxsteeel#93) (862ef20)
- webui: update Japanese translation (maxsteeel#92) (fd52514)
- webui: Translate tr.json (maxsteeel#91) (c84669d)
- webui: adding ar-dz and fixing Arabic (maxsteeel#90) (4f5f928)
- relicense kernel source code to GPL-v2 (9364b83)
- chore(release): update update.json for version 21533 [skip ci] (f311adf)
- webui: complete missing Chinese translations (maxsteeel#89) (8e10920)
- chore(release): update update.json for version 21530 [skip ci] (b814e2f)
Note: For 1-click in-manager updates, SU managers download the rolling latest release.
BruhMount Milestone Checkpoint #530 (v2.1.0-enhanced)
🚀 BruhMount Milestone Checkpoint (#530)
Trigger: Accumulated 24 commits since checkpoint-506-a4196cf
Version: v2.1.0-enhanced
Commit: abc6cbf
📋 Changes Compiled Since Last Checkpoint:
- webui: correct Russian translations (a159c0c)
- kernel: unify directory operation proxies (31ae781)
- kernel: separate path topology from UID rules (a417f67)
- kernel: reject unresolved backing paths (1a470a7)
- kernel: fix batched rule parsing (49294e8)
- kernel: fix directory entry inode numbers (7ca2c8a)
- kernel: degrade parent rule to virtual dir if it have active children (5fac312)
- kernel: prevent double-free race in lockless dir_node eviction (953911f)
- kernel: free the entire rule if !dir_node (2a9fe6b)
- kernel: return -ESTALE if igrab() fails in nomount_resolve_rule_dentry (473947c)
- kernel: don't put S_PRIVATE flag in real path inode (8c3efcd)
- kernel: remove __nomount_alloc_dir_node helper (f66d44a)
- webui: split clear actions into rules, UIDs, and all (0be4967)
- kernel: restore ops on eviction and skip double hooking (047f59f)
- kernel: replace busy-wait with optimistic inode allocation (074a8ad)
- kernel: proxy xattr __get handler to prevent overlayfs bypass (maxsteeel#86) (44d8b23)
- userspace: improve usage / help output (71ff9c4)
- userspace: move argument handling to a helper function outside of c_main (4b25def)
- module: limit xargs batch size to avoid ARG_MAX truncation (74850fc)
- chore(release): update update.json for version 21509 [skip ci] (8b50808)
- webui: update Vietnamese i18n translation (maxsteeel#85) (c5fad9d)
- chore(release): update update.json for version 21506 [skip ci] (b46df33)
Note: For 1-click in-manager updates, SU managers download the rolling latest release.
BruhMount Milestone Checkpoint #506 (v2.1.0-enhanced)
🚀 BruhMount Milestone Checkpoint (#506)
Trigger: Accumulated 19 commits since checkpoint-487-46f715f
Version: v2.1.0-enhanced
Commit: a4196cf
📋 Changes Compiled Since Last Checkpoint:
- webui: improve themes and colors (e2513c3)
- kernel: pin hijacked dentries to prevent dcache reclaim eviction (e007411)
- webui: rework appearance subsystem (5a610db)
- chore(release): update update.json for version 21501 [skip ci] (295b224)
- webui: improve injected files card in modules section (6b1be18)
- webui: upgrade module cards with dynamic MD3 status chips (4418adc)
- webui: implement SPA history state management for native back-navigation (ccacef2)
- kernel: fix race condition in concurrent virtual inode initialization (60073ed)
- kernel: move inode cleanup to evict_inode (53e4c93)
- kernel: skip vfs hijacking for internal virtual inodes (6a899d5)
- module: improve root manager detection and add support for APatch insmod (f1020e0)
- chore(release): update update.json for version 21492 [skip ci] (a951a20)
- kernel: reduce nomount_rules_ht hashtable from 12 bits to 6 bits (46b7d58)
- kernel: revert "detach all rules in-place in __nomount_clear_all" (305d2cb)
- webui: update indonesian i18n translation (maxsteeel#80) (b3bd5b4)
- chore(release): update update.json for version 21487 [skip ci] (ac987da)
Note: For 1-click in-manager updates, SU managers download the rolling latest release.
BruhMount Milestone Checkpoint #487 (v2.1.0-enhanced)
🚀 BruhMount Milestone Checkpoint (#487)
Trigger: Accumulated 27 commits since checkpoint-460-5000027
Version: v2.1.0-enhanced
Commit: 46f715f
📋 Changes Compiled Since Last Checkpoint:
- kernel: eliminate redundant d_drop operations in the lookup fast path (2905772)
- kernel: first check if current uid is blocked in nm_d_revalidate_common (b525a8d)
- kernel: detach all rules in-place in __nomount_clear_all (646b62e)
- kernel: implement RCU hashtable macros and repurpose dead pointers for victim chains (b519c5e)
- kernel: fix r_path reference leak by skipping path_get on initial lookup (a8fe2f2)
- kernel: isolate dentry operations and enforce DCACHE flags (74e2691)
- module: normalize symlinked system partitions to prevent rule duplication (a3431ef)
- chore(release): update update.json for version 21474 [skip ci] (486496a)
- module: add toggle for block isolated uids (2ccd95a)
- kernel, userspace: implement toggleable isolated process blocking (e8572dc)
- module: uncomment boot semaphore removing of metamount.sh (f9bfb43)
- kernel: reuse normalized paths when initializing inodes (b0417a6)
- kernel: replace rwsem lock with a mutex lock (db76155)
- kernel: replace ART nodes with a hashtable (146baeb)
- kernel: return if uid array is empty, purge redundant uid array iterations (fea33dd)
- kernel: avoid hash calculation if !bloom_mask (9c9afdc)
- kernel: bypass redundant d_lock acquisitions via checks (73d4832)
- kernel: replace SRCU with lockless RCU copy-and-drop in directory iteration (d15d540)
- kernel: eliminate seqcount overhead and optimize bsearch collision handling (a838031)
- kernel: optimize VFS fast-paths by deferring UID checks and inode allocation (fd1201a)
- kernel: fix dcache invalidation and ghost files on exclusions (d6cb715)
- kernel: initializate srcu struct manually (002157a)
- chore(release): update update.json for version 21462 [skip ci] (09cf20e)
- security(ci): mask TELEGRAM_BOT_TOKEN and sanitize curl logs against token leakage (781a5ba)
- chore(release): update update.json for version 21460 [skip ci] (ef0bc35)
Note: For 1-click in-manager updates, SU managers download the rolling latest release.
BruhMount Milestone Checkpoint #460 (v2.1.0-enhanced)
🚀 BruhMount Milestone Checkpoint (#460)
Trigger: Major/feature changes detected since checkpoint-454-f6c637b
Version: v2.1.0-enhanced
Commit: 5000027
📋 Changes Compiled Since Last Checkpoint:
- feat: modernize Mermaid architecture diagram, HyperOS frosted glass UI, SUSFS toggles, and safe mode engine (5000027)
- chore(release): update update.json for version 21458 [skip ci] (20cfd12)
- chore(prop): keep module author as nothingnesscore (e3633b1)
- chore(release): update update.json for version 21456 [skip ci] (3581533)
- docs: credit maxsteeel as primary codebase author alongside ZeroMount and SUSFS (a84e9c4)
- chore(release): update update.json for version 21454 [skip ci] (52b52d6)
Note: For 1-click in-manager updates, SU managers download the rolling latest release.
BruhMount Milestone Checkpoint #454 (v2.1.0-enhanced)
🚀 BruhMount Milestone Checkpoint (#454)
Trigger: Major/feature changes detected since v2.0.0
Version: v2.1.0-enhanced
Commit: f6c637b
📋 Changes Compiled Since Last Checkpoint:
- fix(ci): configure git identity before milestone tagging in publish release step (f6c637b)
- fix(ci): lock workflows permission to standard scope and preserve workflow files from upstream changes (07e2b66)
- chore(upstream): auto-merge maxsteeel/nomount (master @ 016375c) with BruhMount enhancements (5500c7e)
- chore(release): update update.json for version 21420 [skip ci] (a8b9de8)
- chore(upstream): auto-merge maxsteeel/nomount (master @ 016375c) with BruhMount enhancements (26e8a5b)
- fix(webui): typos in Arabic translation, add RTL layout support (maxsteeel#72) (016375c)
- webui: add arabic localization (maxsteeel#69) (3a3fc9f)
- kernel: replace implicit initialization with memset for compatibility (7919faf)
- webui: refresh app list right after open (6d8871d)
- kernel: preserve directory lifetimes during rule deletion (a49792c)
- userspace: simplify resolved path writes (e2c556e)
- webui: resolve app UID via pm instead of ksu's api; add per-user badge (09257d7)
- scripts: change MarkdownV2 to HTML (68233af)
- kernel: only change d_flags if its our file (4463f16)
- kernel: clear make/sparse warnings (c75579f)
- kernel: batch rule clearing (6e3322a)
- kernel: fix ART child removal (35b6b68)
- userspace: batch list output writes (19079ee)
- kernel: remove obsolete ART lookup hashes (79a8e5a)
- kernel: store single directory children directly (e2ed3a1)
- kernel: manage ART nodes under the rules lock (9443488)
- module: improve instalation script (ef61a80)
- workflows: improve workflows (3268c54)
- kernel: replace RBTree with Adaptive Radix Tree (f7f7caa)
- workflow: implement uploading to telegram CI group (0c4b2db)
- module, workflow: change ko-loader to lkmloader (9122a0b)
- workflows: parallelize builds and use minimal DDK (b3cbeee)
- kernel: fix nesting issues in real injection rules (166f7b7)
- userspace: encode rule paths directly into payload (f67b2d2)
- kernel: reuse rule lookup in directory iteration (82d4320)
- kernel: drop redundant RCU wait when clearing UIDs (7f63f42)
- kernel: change current_uid() to current_fsuid() (3e65dbc)
- kernel: fix uid exclusion logic in nm_d_revalidate (691008a)
- kernel: correct uid check in lookup (9913939)
- kernel: correct uid check in lookup (d0f57d5)
- kernel: changes exclusion list implementation (7c97fed)
- chore(release): update update.json for version 21415 [skip ci] (1e429a5)
- fix(ci): pass chat_id as literal form-string to prevent curl file read error 26 (0a13650)
- feat: add updateJson and continuous release sync for in-manager updates (2cc00eb)
- ci: fix Telegram upload step using standalone python script (c27084c)
- ci: add automated Telegram module upload to @bruhperidot with monospace changelog (d60fc57)
- docs: reword metamodule filtering and update setup script references (0c2eeb4)
- kernel: changes exclusion list implementation (09f3c41)
- fix(ui): resolve System Unknown, improve device model name, and refine dock/navbar padding (993dd29)
- feat(webui): Rene-style SUSFS background logs, Monet dynamic colors, AMOLED mode, and fix nav clipping (60104e7)
- ci: add automated 6-hourly upstream sync workflow tracking maxsteeel/nomount (fd65056)
- feat(webui): HyperOS 4 UI with iOS-style floating pill navbar and segmented theme switcher (a1155b3)
- kernel: cache uid blocked across directory iteration (2d3863b)
- kernel: compact __nomount_get_rule_info function (c017162)
- kernel: skip inode allocation for whiteouts (2507ad6)
- kernel: improve comprobations in nm_listxattr (dd34a4e)
- kernel: convert some helpers functions to macros (33d90da)
- webui: create seprete module version, status only contain driver version, added one more string to translate (1707001)
- workflow: change version naming in module.prop (14ae43f)
- kernel: use safe pointer arithmetic for payload bounds (e4dd950)
- userspace: trim command and script overhead (a36ccb0)
- userspace: validate batched command inputs (e25ee7d)
- kernel: trim redundant allocation and hot-path work (31ab15b)
- kernel: compact directory node hook state (797620b)
- kernel: reuse binary search insertion position (f76bb80)
- kernel: propagate child array allocation failures (62336dc)
- kernel: normalize rule paths consistently (83bc9e9)
- kernel: validate seqcount snapshots before use (e3d7cef)
- feat(webui): authentic MiuiX theme, multi-tier HyperOS detect, and interactive SUSFS diagnostics (cf6438e)
- kernel: revert "kernel: drop S_PRIVATE flag in own inodes, remove mmap wrappers" (13b09ce)
- kernel: implement wrappers to get our structures (c4a02fd)
- kernel: only hook iterate_shared if natively supported (ed0ac43)
- kernel: fix size inconsistency in nm_setattr (1a77a03)
- kernel: delete remain rule pointer in array when deleting a child (d000bf3)
- fix(webui): resolve bruhmount module path dynamically (6cc60b0)
- kernel: verify seqcount consistency before return (6d40668)
- kernel: fix race conditions with orig_dops in nm_d_revalidate (b928835)
- kernel: set dirty page before put it (f71bb6e)
- kernel: mask create flags in dentry_open (6195388)
- kernel: fix exclusion uid inconsistents in iterate_dir (ecbab86)
- fix(webui): proper NoMount/SUSFS detection, HyperOS theme (cff6c00)
- feat: introduce BruhMount with native VFS redirection and automated SUSFS integration (6cde795)
- kernel: fix RCU dereferences and and static checker warnings (7e1b5a4)
- kernel: rewrite dentry hijacking (bc4a1da)
- kernel: drop bypassed dentries to prevent reverse cache poisoning (8c2073b)
- kernel: use DCACHE_DONTCACHE to prevent dcache issues (e1ffb35)
- kernel: improve inlining of functions (5e26349)
- kernel: optimization in
nomount_bsearch_child(f175674) - kernel: inline nomount_get_dir_node function into nomount_generate_virtual_topology (98e8dbc)
- kernel: drop S_PRIVATE flag in own inodes, remove mmap wrappers (5be59b2)
- kernel: simplify nomount_actor_proxy (d6bb7c9)
- workflow: update lkm workflow (9136e9a)
- kernel: add ANDROID_GKI_VFS_EXPORT_ONLY namespace (ca59073)
- workflow: update ko-loader, use musl instead of gnu (4cf3957)
- webui: complete the Chinese translation (8a45db7)
- workflow: replace Node JSON processing with jq (cf62456)
- webui: round clear rules button (5b5b209)
- webui: refine module cards (6be689e)
- webui: refine home status card (ac0cb54)
- webui: align app selector layout (6a3e50b)
- webui: remove redundant markup and styles (1efcdfb)
- workflows: minify locale resources (b74e460)
- webui: avoid duplicate initial refresh (792654c)
- webui: stabilize app selector during keyboard changes (853f67a)
- kernel: drop slab caches (afe960f)
- kernel: compact rule structures via unions and align cachelines (fd42351)
- kernel: improve nm_getattr readibility (66cb5ff)
- kernel: use nm_hash_and_lookup instead of separate hash and lookup (169c609)
- kernel: batch replaced rule reclamation (7b62b00)
- kernel: use default_llseek in nm_dir_fops (574545d)
- kernel: remove r_len redefinition in NM_CMD_GET_LIST (da4c116)
- module/userspace: restore UIDs in one process (3a16bfc)
- userspace: compact arguments into fixed workspace (a930b63)
- kernel: overlap mutually exclusive rule nodes (e446bcc)
- kernel: drop redundant virtual inode number (e2abe77)
- kernel: avoid redundant SRCU grace periods (4945df3)
- kernel: drop keyring allocation overhead via preparse callback (51f0780)
- misc: add module screenshots in README.md (9bef75d)
- webui: remove special character (ab06dc1)
- kernel: use single-copy bloom reads (f5149aa)
- kernel: compact child array layout (426ba5f)
- kernel: eliminate redundant child nodes (8ec63cf)
- kernel: trim child metadata and cache path length (885b393)
- workflow: split release/dev module build, change version and artifact naming (9a14317)
- webui: remove deprecated uid exclusion list functions (915d242)
- module: fix boot UID injection after JSON migration (da39932)
- kernel: remove unused fake_dop/orig_dop from nm_iop (2f57784)
- kernel: ensure synchronous RCU grace periods (5656fb5)
- kernel: implement lockless asynchronous garbage collection for hijacked dir_nodes (15f0c4b)
- kernel: fix permanent inode memory leak in directory hijacking (6c03475)
- kernel: prevent torn pointers during in-place array updates (d65312b)
- module: mini fixes (5c4ae4e)
- kernel: fix 'const filldir_t actor' compilation error (c8721cf)
- kernel: implement lockless fast-path lookup and fix UAF race conditions (0e90d38)
- module: remove some redundancies in customize.sh (29199bc)
- module: refactor
load_ko()logic (729ba8d) - module: drop verbose mode (d314999)
- module: expand target partitions list and add path validation (5ee218c)
- webui: redesign exclusions with batching, multi-select and MD3 dialogs (5c34ade)
- webui: prevent DOM thrashing when deleting excluded apps (a86bb8f)
- webui: implement persistent fast-caching for apps selector (80420aa)
- webui: migrate exclusions storage to JSON (d096ca6)
- webui: prevent DOM thrashing in modules list (9376119)
- module: add support for trusted.overlay.opaque whiteouts (87231f0)
- module: move boot semaphore cleanup to boot-completed.sh (1d9b526)
- Fix Turkish translation for Exclusions tab (maxsteeel#59) (9d833d9)
- webui: add Japanese translation (maxsteeel#56) (06af304)
- Fix Turkish translation for "exclusions" (6515716)
- webui: add locale-aware number formatting in template interpolation (5a34665)
- webui: add Bengali translation (f09d2ca)
Note: For 1-click in-manager updates, SU managers download the rolling latest release.
BruhMount Latest (v2.1.0-enhanced #613)
🛡️ BruhMount Latest Release
Automated continuous release for SukiSU / KernelSU in-app updates.
- Telegram Channel: https://t.me/bruhperidot
- In-app update URL: https://raw.githubusercontent.com/nothingnesscore/BruhMount/master/update.json