Hybrid Mount æ¯é¢å KernelSU äž APatch çæèœœçŒæå æš¡åã éè¿ç»äžççç¥åŒæïŒå°æš¡åæä»¶åå¹¶å° Android ååºïŒå¹¶æ¯æäžç§æèœœå端ïŒ
- OverlayFS â åå±æèœœïŒå Œå®¹æ§äŒå ã
- Magic Mount â bind mountïŒéåçŽæ¥è·¯åŸæ¿æ¢æåéåºæ¯ã
- Kasumi â LKM å æ žé©±åšïŒæäŸè¿è¡æ¶ hide/spoof/stealth èœåã
å 眮 SolidJS WebUIïŒæ¯æåŸåœ¢å管çã宿¶ç¶æçæ§åé 眮çŒèŸã
ååžå
ç°åšå䞺äžäžªçæ¬ â è¯Šè§ æå»ºçæ¬ å¯¹æ¯ãé€éåŠæè¯ŽæïŒäžé¢å
容é»è®€æè¿°çæ¯ full çæ¬ã
English  ç®äœäžæ  ç¹é«äžæ Â æ¥æ¬èª  Español  Italiano  РÑÑÑкОй  УкÑаÑМÑÑка  Tiếng Viá»t
- ç¹æ§
- æå»ºçæ¬
- å¿«éåŒå§
- æèœœæ¹åŒ
- WebUI
- è¯è𿝿
- é 眮诎æ
- Kasumi
- çç¥åè
- CLI åœä»€
- æ¶æè¯Žæ
- æå»ºæ¹åŒ
- è¿ç»Žå»ºè®®
- åŒæºåè®®
Hybrid Mount ååžäžºäžç§æå»ºçæ¬ïŒflavorïŒïŒåå«é¢åäžå䜿çšåºæ¯ïŒ
| çæ¬ | äºè¿å¶ | WebUI | 宿€è¿çš/CLI | Kasumi LKM | éçšåºæ¯ |
|---|---|---|---|---|---|
| Full | æ¯ | æ¯ | æ¯ | æ¯ | éèŠ Kasumi è·¯ç±æ hide/spoof èœåççšæ·ã |
| Lite | æ¯ | æ¯ | æ¯ | åŠ | éèŠ WebUI å宿Žçç¥åŒæïŒäœäžéèŠ LKM 级 stealth åèœççšæ·ã |
| Nano | æ¯ | åŠ | åŠ | åŠ | æç®äž»ä¹çšæ·ïŒä» ééè¿é 眮æä»¶æ§å¶æèœœïŒæ éè¿è¡æ¶å®æ€è¿çšã |
full çæ¬å
嫿æåæ¯æçæèœœå端ïŒOverlayFSãMagic MountãKasumiïŒãSolidJS WebUIãUnix socket 宿€è¿çšå HTTP/SSEãCLIïŒä»¥å Kasumi LKM èµäº§ãéèŠ Kasumi è·¯ç±æèŸ
å© hide/spoof èœåæ¶äœ¿çš Fullã
lite çæ¬ç§»é€äº Kasumi LKM åææ Kasumi çžå
³åèœïŒhideãspoofãstealthãkstat è§åãuname 䌪è£
çïŒïŒäœä¿çäº WebUIã宿€è¿çšãCLI 以å OverlayFS å Magic Mount 䞀ç§å端ãéæ© Lite ççç±ïŒ
- äœ çå æ žäžæ¯æå 蜜å€éš LKMã
- äœ äžéèŠè¿è¡æ¶ hide/spoof èœåã
- äœ æ³èŠæŽå°çäžèœœäœç§¯ïŒåæ¶ä¿ç WebUI å宿€è¿çšç®¡ççé¢ã
Lite æå»ºäœ¿çš control-plane ç¹æ§éïŒäžå« kasumiïŒãWebUI äžç Kasumi 颿¿äŒèªåšéèã
nano çæ¬æ¯çº¯é
眮æä»¶é©±åšçæå»ºãå®ç§»é€äº WebUIã宿€è¿çšãCLI 以忿æ§å¶é¢åºç¡è®ŸæœïŒä»
ä¿çäžäžªç²Ÿç®äºè¿å¶æä»¶ïŒè¯¥æä»¶è¯»å config.tomlãçææèœœè®¡åãæ§è¡æèœœïŒç¶åéåºãæ žå¿ç¹åŸïŒ
- æ è¿è¡æ¶å®æ€è¿çš â æ åå°è¿çšãæ socketãæ WebUIãæ CLI ååœä»€ã
- æ WebUI â å
äžç§»é€äº
webroot/ãlauncher.pngåservice.shèµæºã - 纯æèœœæäœ â äºè¿å¶åšå¯åšæ¶è¿è¡ïŒæç §é çœ®å®ææææèœœåç»æ¢ã
- é»è®€æš¡åŒäžº
magicâ Nano çé¢çœ®é 眮äždefault_mode = "magic"ïŒå𿲡æå®æ€è¿çšç®¡ç ext4 éåæ¶äŒå äœ¿çš bind mountã - æš¡åæš¡åŒæ è®° â å®è£
æ¶éè¿é³éé®éæ©åïŒäŒåšæ¯äžªåç®¡çæš¡åæ ¹ç®åœåå
¥ç©ºç
overlayæmagicæ è®°æä»¶ïŒNano è¿è¡æ¶çŽæ¥è¯»åå®ä»¬ïŒèäžåäŸèµçœååãæ è®°æä»¶åäžåºå倧å°åã - æ åžžé©» Hybrid Mount è¿çš â å¯åšé¶æ®µæèœœå®æåïŒNano äºè¿å¶äŒéåºã
éæ© NanoïŒåŠæäœ æ³èŠå¯é¢æµãæ 宿€è¿çšçæèœœçŒæïŒå¹¶åžæåå°è¿è¡æ¶åžžé©»ç»ä»¶ã
| åèœ | Full | Lite | Nano |
|---|---|---|---|
| OverlayFS å端 | æ¯ | æ¯ | æ è®°é©±åš |
| Magic Mount å端 | æ¯ | æ¯ | æ¯ïŒé»è®€ïŒ |
| Kasumi å端 | æ¯ | åŠ | åŠ |
| WebUI | æ¯ | æ¯ | åŠ |
CLIïŒhybrid-mount ååœä»€ïŒ |
æ¯ | æ¯ | åŠ |
| 宿€è¿çšïŒUnix + TCP/SSEïŒ | æ¯ | æ¯ | åŠ |
| é 眮çŒåäžè¿è¡æ¶çæ | æ¯ | æ¯ | åŠ |
| Kasumi hide/spoof/stealth | æ¯ | åŠ | åŠ |
| LKM èªåšå 蜜 | æ¯ | åŠ | åŠ |
| ZIP äœç§¯ïŒçºŠïŒ | ~4 MB | ~2 MB | ~1 MB |
- äžç§å端ïŒç»äžçç¥åŒæ â æ¯ææè·¯åŸç²åºŠåé OverlayFSãMagic Mount æ Kasumiã
- ç¡®å®æ§è§å â å²çªåšè®¡åé¶æ®µæ£åºïŒèéå¯åšæ¶éæºåºç°ã
- å 眮 WebUI â éè¿æµè§åšæ WebView ç®¡çæš¡åãçŒèŸé 眮ãçæ§è¿è¡æ¶ç¶æãåš full çæ¬äžæ§å¶ Kasumi ç¹æ§ã
- Kasumi è¿è¡æ¶éæ â LKM èªåšå 蜜ãmirror è·¯ç±ãmount éèãmaps/statfs äŒªè£ ãUID éèãuname äŒªè£ ãkstat è§åã
- é 眮çŒå â è¿è¡æ¶é 眮çŒåïŒæ¯æå¢éè¡¥äžå峿¶çæã
- æ¢å€å奜 â æ®çè¿è¡æ¶æä»¶èªåšæž
çïŒé
眮é误æ¶å¯éè¿
api config-reseté眮ã - èªåšåå奜 â åºäº Unix socket ç JSON 宿€è¿çšåè®® + HTTP APIïŒäŸ¿äºèæ¬åå€éšæ§å¶åšè°çšã
- åšè®Ÿå€äžå®è£ KernelSU æ APatchã
- ä» GitHub Releases äžèœœå¯¹åºç Hybrid Mount
fullãliteænanoçæ¬ ZIPã - éè¿ Root 管çåšçæš¡åå®è£ åšå·å ¥ ZIPã
- éå¯è®Ÿå€ãHybrid Mount å°èªå𿣿µè¿è¡ç¯å¢å¹¶åºçšé»è®€ overlay çç¥ã
# æ¥çè¿è¡æ¶ç¶æ
hybrid-mount daemon status
# ååºå·²æ£æµå°çæš¡å
hybrid-mount api modules-listèŠè®¿é® WebUIïŒFull/Lite çæ¬ïŒïŒæåŒäœ ç Root 管çåšåºçšïŒKernelSU æ APatchïŒïŒåšæš¡ååè¡šäžæŸå° Hybrid Mount å¹¶ç¹å» â 管çåšäŒåšå åµ WebView äžå¯åš WebUIã
# /data/adb/hybrid-mount/config.toml
[rules.my_module]
default_mode = "magic"
[rules.my_module.paths]
"system/bin/problematic_binary" = "ignore"| æš¡åŒ | å端 | éçšåºæ¯ |
|---|---|---|
overlay |
OverlayFS | æ å²çªå°æ°å¢ææ¿æ¢æä»¶çæš¡åãé»è®€æš¡åŒã |
magic |
Bind mount | éèŠéæä»¶çŽæ¥æ¿æ¢çæš¡åïŒOverlayFS äžå¯çšæ¶çåéæ¹æ¡ã |
kasumi |
Kasumi LKM | éèŠæŸåŒ mirror è·¯ç±æè¿è¡æ¶ hide/spoof èœåçæš¡åã |
ignore |
â | æé€ç¹å®è·¯åŸïŒäžè¿è¡ä»»äœæèœœå€çã |
OverlayFS åç«¯æ¯æäž€ç§ upper/work å±ååšçç¥ïŒ
ext4ïŒé»è®€ïŒâ å建 ext4 ç£çéåãéå¯åæä¹ ä¿çïŒæ¯æ xattrãtmpfsâ äœ¿çš tmpfs æèœœãæå€±æ§ãæŽèœ»éïŒäœéå¯å䞢倱ã
overlay_mode = "ext4"åœ enable_overlay_fallback = true æ¶ïŒè®¡åèµ° OverlayFS äœæ æ³æèœœçæš¡åïŒå
æ žäžæ¯æ overlayïŒäŒèªåšä»¥ Magic Mount éè¯ãè¿å¯åå°äžçš³å®å
æ žäžçå¯åšå€±èŽ¥æŠçã
Hybrid Mount å 眮 åºäº SolidJS ç WebUIïŒç±å®æ€è¿çšéè¿æ¬å° TCP socketïŒHTTP/SSEïŒæäŸæå¡ãCLI äžèªåšå客æ·ç«¯éè¿ Unix socket éä¿¡ã宿€è¿çšå¯åšæ¶äŒå°è®¿é® URL æå°å° logcatã
WebUI è®Ÿè®¡äžºçŽæ¥ä»äœ ç Root 管çåšåºçšïŒKernelSU æ APatch 管çåšïŒäžæåŒ â ç¹å»æš¡åæ¡ç®ïŒç®¡çåšäŒåšå åµ WebView äžå¯åš WebUIãæ éåšè®Ÿå€äžé¢å€å®è£ æµè§åšã
- ç¶æé¢æ¿ â 宿¶æèœœç»è®¡ã掻è·ååºãååšæš¡åŒã宿€è¿çšå¥åº·ç¶æã
- æš¡å管ç â ååºææå·²æ£æµæš¡ååå ¶çæçæèœœæ¹åŒïŒäº€äºåŒä¿®æ¹æš¡åçç¥ã
- é 眮çŒèŸåš â 宿Žç config.toml çŒèŸïŒåžŠæ ¡éªïŒæ¯æéæš¡åè·¯åŸè§åé 眮ã
- Kasumi æ§å¶é¢æ¿ â LKM ç¶æãè§åå衚ãç¹æ§åŒå ³ãuname é 眮ãmaps/kstat è§å管çïŒä» Full çæ¬ïŒã
WebUI ç®åæäŸä»¥äžè¯èšïŒ
- è±è¯ (
en-USïŒé»è®€) - 西ççè¯ (
es-ES) - æå€§å©è¯ (
it-IT) - æ¥è¯ (
ja-JP) - ä¿è¯ (
ru-RU) - ä¹å
å
°è¯ (
uk-UA) - è¶åè¯ (
vi-VN) - ç®äœäžæ (
zh-CN) - ç¹é«äžæ (
zh-TW)
README ææ¡£æäŸ Englishãç®äœäžæãç¹é«äžæãæ¥æ¬èªãEspañolãItalianoãÐ ÑÑÑкОйãУкÑаÑМÑÑка å Tiếng Viá»t çæ¬ã
WebUI è¿è¡åš http://127.0.0.1:<éæºç«¯å£>ïŒäœ¿çšå å¯è®¿é®ä»€çã宿€è¿çšç®¡çæŽäžªçåœåšæïŒæ éé¢å€ç Web æå¡åšãåšè®Ÿå€äžéè¿ Root 管çåšç WebView çŽæ¥æåŒïŒè¿çšè®¿é®å¯éè¿ ADB 端å£èœ¬åã
é»è®€è·¯åŸïŒ/data/adb/hybrid-mount/config.tomlã
| åæ®µ | ç±»å | é»è®€åŒ | 诎æ |
|---|---|---|---|
moduledir |
string | /data/adb/modules |
æš¡åç®åœã |
mountsource |
string | èªå𿣿µ | è¿è¡æ¥æºæ è¯ïŒKSUãAPatchïŒã |
overlay_mode |
ext4 | tmpfs |
ext4 |
Overlay upper/work ååšæš¡åŒã |
disable_umount |
bool | false |
è·³è¿ umountïŒä» è°è¯äœ¿çšïŒã |
enable_overlay_fallback |
bool | false |
OverlayFS äžå¯çšæ¶ïŒå° overlay æš¡ååéå° Magic Mountã |
default_mode |
overlay | magic | kasumi |
overlay |
å šå±é»è®€æèœœçç¥ã |
daemon_startup_mode |
on-demand | persistent |
on-demand |
宿€è¿çšå¯åšæš¡åŒã |
rules |
map | {} |
ææš¡ååè·¯åŸçç»ç²åºŠæèœœçç¥ã |
moduledir = "/data/adb/modules"
overlay_mode = "ext4"
enable_overlay_fallback = true
default_mode = "overlay"
daemon_startup_mode = "on-demand"
[rules.viper4android]
default_mode = "magic"
[rules.viper4android.paths]
"system/etc/audio_policy.conf" = "overlay"
[rules.sensitive_module]
default_mode = "kasumi"
[rules.sensitive_module.paths]
"system/bin/helper" = "kasumi"
"system/etc/placeholder" = "ignore"Kasumi æ¯ LKM å æ žé©±åšå端ãé€æèœœè·¯ç±å€ïŒè¿æäŸäžç³»åè¿è¡æ¶ hide å spoof èœåã
kasumi.enabled = true ä»
䜿å端å¯çšãHybrid Mount åšæ»¡è¶³ä»¥äžæ¡ä»¶ä¹äžæ¶æäŒå®é
å¯çš Kasumi è¿è¡æ¶ïŒ
- çæçæèœœè®¡åäžå å« Kasumi 管ççæš¡åæè·¯åŸã
- é 眮äºä»»äžèŸ å©ç¹æ§ïŒhidexattrãmount hideãmaps spoofãstatfs spoofãUID éèãuname äŒªè£ ãcmdline æ¿æ¢ãkstat è§åæçšæ· hide è§åïŒã
| åæ®µ | äœçš |
|---|---|
kasumi.enabled |
Kasumi éææ»åŒå ³ã |
kasumi.lkm_autoload |
å¯åšæ¶èªåšå 蜜 Kasumi LKMã |
kasumi.lkm_dir |
LKM æçŽ¢ç®åœã |
kasumi.lkm_kmi_override |
å¯éç KMI çæ¬èŠçïŒçšäº LKM å¹é ã |
kasumi.mirror_path |
Kasumi è§å䜿çšç mirror æ ¹ç®åœïŒé»è®€ /dev/kasumi_mirrorïŒã |
kasumi.enable_kernel_debug |
åŒå¯å æ žäŸ§è°è¯æ¥å¿ã |
kasumi.enable_stealth |
æŸåŒå¯çš stealth æš¡åŒã |
kasumi.enable_hidexattr |
å Œå®¹æš¡åŒæ»åŒå ³ïŒèåšå¯çš stealthãmount hideãmaps spoofãstatfs spoofã |
kasumi.enable_mount_hide |
å šå±ææè·¯åŸæš¡åŒéèæèœœç¹ã |
kasumi.mount_hide.path_pattern |
æèœœéèçè·¯åŸå¹é æš¡åŒã |
kasumi.enable_maps_spoof |
å¯çš /proc/<pid>/maps 䌪è£
ã |
kasumi.maps_rules |
æ inode/device ç maps éåè§åã |
kasumi.enable_statfs_spoof |
å¯çš statfs 䌪è£
ã |
kasumi.statfs_spoof.path / .spoof_f_type |
æè·¯åŸç statfs äŒªè£ é 眮ã |
kasumi.hide_uids |
对 Kasumi æ¥è¯¢éèç UID éåã |
kasumi.uname_mode |
Uname 䌪è£
æš¡åŒïŒscopedïŒè¿çšçº§ïŒæ globalïŒå
šå±ïŒã |
kasumi.uname.* |
ç»æå uname äŒªè£ ïŒsysnameãnodenameãreleaseãversionãmachineãdomainnameïŒã |
kasumi.cmdline_value |
æ¿æ¢ /proc/cmdline å
容ã |
kasumi.kstat_rules |
æç®æ ç stat å æ°æ®äŒªè£ è§åã |
# ç¶æäžè¯æ
hybrid-mount kasumi status
hybrid-mount kasumi version
hybrid-mount kasumi features
hybrid-mount kasumi hooks
hybrid-mount kasumi list # ååºæŽ»è·è§å
hybrid-mount lkm status
# è¿è¡æ¶æ§å¶
hybrid-mount kasumi apply-config-runtime
hybrid-mount kasumi clear
hybrid-mount kasumi release-connection
hybrid-mount kasumi invalidate-cache
hybrid-mount kasumi fix-mounts
# Uname 䌪è£
ïŒè¿çšçº§æå
šå±ïŒ
hybrid-mount kasumi set-uname --mode scoped <release> <version>
hybrid-mount kasumi clear-uname --mode scoped
hybrid-mount kasumi restore-uname-global
# è§å管ç
hybrid-mount kasumi rule add --target /system/bin/tool --source /data/adb/modules/my_module/system/bin/tool
hybrid-mount kasumi rule merge --target /system/lib64 --source /data/adb/modules/my_module/system/lib64
hybrid-mount kasumi rule hide --path /system/bin/su
hybrid-mount kasumi rule delete --path /system/bin/old_tool
hybrid-mount kasumi rule add-dir --target-base /system/lib64 --source-dir /data/adb/modules/my_module/system/lib64
hybrid-mount kasumi rule remove-dir --target-base /system/lib64 --source-dir /data/adb/modules/my_module/system/lib64åœå€äžªçç¥å¯èœåæ¶åœäžæ¶ïŒæä»¥äžé¡ºåºè¯äŒ°ïŒ
- è·¯åŸçº§èŠç â
rules.<module>.paths["<path>"] - æš¡å级é»è®€ â
rules.<module>.default_mode - å
šå±é»è®€ â
default_mode
| è§åç»æ | å端å¯çšïŒ | enable_overlay_fallback |
æç»è¡äžº |
|---|---|---|---|
overlay |
æ¯ | ä»»æ | äœ¿çš OverlayFS æèœœã |
overlay |
åŠ | false |
è·³è¿å¹¶æ 记倱莥ã |
overlay |
åŠ | true |
åé䞺 Magic Mount éè¯ã |
magic |
äžéçš | ä»»æ | äœ¿çš Magic Mount æèœœã |
kasumi |
æ¯ | ä»»æ | èµ° Kasumi è·¯ç±ã |
kasumi |
åŠ | ä»»æ | è·³è¿ Kasumi æ å°ã |
ignore |
äžéçš | ä»»æ | äžæèœœã |
Hybrid Mount è¿äŒè¯å«æš¡åç®åœäžçæ è®°æä»¶ãè¿äºæ è®°åºäžºæ®éæä»¶ïŒè¿è¡æ¶åªäœ¿çšæä»¶åå€æãæ è®°æä»¶åæ ASCII 忝倧å°åäžææå¹é
ïŒå æ€ DISABLEãDisable äž disable äŒè¢«è§äžºåäžç§æ è®°ã
| æ è®° | äœçœ® | äœçš |
|---|---|---|
disable |
æš¡åæ ¹ç®åœ | å°æš¡åæé€åšæèœœè®¡åä¹å€ïŒå¹¶åšæš¡ååè¡šäžæŸç€ºäžºçŠçšã |
remove |
æš¡åæ ¹ç®åœ | å°æš¡åæé€åšæèœœè®¡åä¹å€ïŒéåžžç± Root 管çåšåšç§»é€æš¡åæ¶å建ã |
skip_mount |
æš¡åæ ¹ç®åœ | è·³è¿è¯¥æš¡åçæèœœå€çïŒå¹¶è®°åœå°è¿è¡æ¶ skip å衚ã |
mount_error |
æš¡åæ ¹ç®åœ | æ è®°æŸå æèœœå€±èŽ¥è被跳è¿çæš¡åãæ¢å€é»èŸå宿€è¿çšåœä»€å¯èœåå»ºææž 逿€æ è®°ã |
overlay / magic |
æš¡åæ ¹ç®åœïŒNano æå»º | 䞺 Nano æå»ºéæ©æš¡åé»è®€æèœœå端ãFull å Lite æå»ºäœ¿çšé 眮è§åã |
.replace |
æš¡åç®åœå éš | å¯¹å ¶æåšç®åœåºçšæ¿æ¢è¯ä¹ã该æ è®°æ¬èº«äžäŒäœäžºæ®éæš¡åå 容å€å¶ïŒåå€åºç OverlayFS å±äŒä¿ç该ç®åœïŒå¹¶å𿝿æ¶è®Ÿçœ® overlay opaque å æ°æ®ã |
åŠæåäžç®åœäžååšåäžç§æ è®°çå€äžªå€§å°ååäœïŒæž çæäœäŒç§»é€ææå¹é åäœã
- æš¡å倧éšåè·¯åŸèµ° overlayïŒä»
å䞪æä»¶èµ° magicïŒæš¡åé»è®€è®Ÿäžº
overlayïŒå¯¹å²çªè·¯åŸé 眮magicã - äžŽæ¶æé€æäžªå²çªæä»¶ïŒå°è¯¥è·¯åŸè®Ÿäžº
ignoreã - å
æ ž OverlayFS äžçš³å®ïŒé
眮
enable_overlay_fallback = trueã
hybrid-mount [OPTIONS] [COMMAND]| åæ° | 诎æ |
|---|---|
-c, --config <PATH> |
æå®é 眮æä»¶è·¯åŸã |
| åœä»€ | 诎æ |
|---|---|
gen-config |
çæé»è®€é 眮æä»¶ã |
logs |
æå°æè¿ç宿€è¿çšæ¥å¿ã |
api storage |
æ¥è¯¢ååšæš¡åŒïŒext4/tmpfsïŒã |
api mount-stats |
æå°æèœœç»è®¡ä¿¡æ¯ã |
api mount-topology |
æå°æèœœæææ ã |
api partitions |
ååºå管ååºã |
api system-info |
æå°ç³»ç»ä¿¡æ¯ã |
api version |
æå°å®æ€è¿çšçæ¬ã |
api config-get |
以 JSON æ ŒåŒèŸåºçæé 眮ã |
api config-set --config <JSON> |
æ¿æ¢æŽäžªé 眮ã |
api config-patch --patch <JSON> |
å¢éåå¹¶é 眮补äžã |
api config-reset |
é眮䞺é»è®€é 眮ã |
api modules-list |
ååºå·²æ£æµæš¡åã |
api modules-apply --modules <JSON> |
åºçšæš¡åæš¡åŒåæŽã |
api lkm |
æ¥è¯¢ LKM ç¶æã |
api features |
ååºæ¯æçç¹æ§ã |
api hooks |
ååº Kasumi hooks ç¶æã |
api kernel-uname |
æå°å æ ž unameã |
api open-url --url <URL> |
åšè®Ÿå€äžæåŒ URLã |
api reboot |
éå¯è®Ÿå€ã |
api kasumi-maps-add --rule <JSON> |
æ·»å Kasumi maps äŒªè£ è§åã |
api kasumi-maps-clear |
æž é€ææ Kasumi maps äŒªè£ è§åã |
daemon launch |
åå°å¯åšå®æ€è¿çšã |
daemon serve |
åå°å¯åšå®æ€è¿çšïŒæå¡æš¡åŒïŒã |
daemon ping |
æ£æ¥å®æ€è¿çšå掻ã |
daemon webui-start |
ä» å¯åš WebUIã |
daemon stop |
忢宿€è¿çšã |
daemon status |
æ¥è¯¢å®æ€è¿çšè¿è¡æ¶ç¶æã |
kasumi ... |
Kasumi 管çïŒåè§ KasumiïŒã |
lkm load / unload / status |
LKM çåœåšæç®¡çã |
hide list / add / remove / apply |
çšæ· hide è§å管çã |
âââââââââââââââââââââââââââââââââââââââââââââââ
â config.toml â
ââââââââââââââââââââ¬âââââââââââââââââââââââââââ
âŒ
âââââââââââââââââââââââââââââââââââââââââââââââ
â æš¡åæž
åæ«æ â
â æ«ææš¡åç®åœïŒåç±»æ¡ç® â
ââââââââââââââââââââ¬âââââââââââââââââââââââââââ
âŒ
âââââââââââââââââââââââââââââââââââââââââââââââ
â æèœœè§ååš â
â è¯äŒ°è§å (è·¯åŸ > æš¡å > å
šå±) â
â çæ overlay / magic / kasumi 计å â
ââââââââââââââââââââ¬âââââââââââââââââââââââââââ
âŒ
âââââââââââââââââââââââââââââââââââââââââââââââ
â æ§è¡åš â
â ââââââââââââ ââââââââââââ ââââââââââââââââ â
â â OverlayFSâ â Magic â â Kasumi â â
â â æ§è¡åš â â Mount â â æ§è¡åš â â
â ââââââââââââ ââââââââââââ ââââââââââââââââ â
ââââââââââââââââââââ¬âââââââââââââââââââââââââââ
âŒ
âââââââââââââââââââââââââââââââââââââââââââââââ
â è¿è¡æ¶ç¶æ + 宿€è¿çš â
â æä¹
åç¶æ â Unix socket â WebUI/CLI â
âââââââââââââââââââââââââââââââââââââââââââââââ
src/
âââ conf/ é
眮暡åãTOML å 蜜åšãCLI å®ä¹äžå€ç
âââ domain/ æ žå¿ç±»åïŒMountModeãModuleRulesãè·¯åŸå¹é
âââ partitions/ å管ååºèªåšåç°
âââ core/
â âââ inventory/ æš¡ååç°äžå衚
â âââ ops/ æèœœè®¡åçæãåå端æ§è¡åš
â âââ daemon/ Unix + TCP ååè®®å®æ€è¿çšïŒCLI + WebUI/SSEïŒ
â âââ api/ WebUI 端ç¹èŽèœœæå»º
â âââ startup/ å¯åšæµçšãæ¢å€ãéè¯é»èŸ
â âââ storage/ å
±äº«ååšå·¥å
·ïŒext4 éåãtmpfsïŒ
â âââ runtime_state/ 宿€è¿çšç¶ææä¹
å
âââ mount/
â âââ overlayfs/ OverlayFS å端ïŒext4 éå / tmpfsïŒ
â âââ magic_mount/ Bind mount å端
â âââ kasumi/ Kasumi è§åçŒè¯ãè¿è¡æ¶ãç¶æ
âââ sys/ åºå±ïŒæèœœ syscallãLKM å 蜜/åžèœœãKasumi UAPI
âââ utils/ æ¥å¿ãè·¯åŸå·¥å
·ãæ ¡éª
webui/
âââ src/
â âââ routes/ 页é¢ç»ä»¶ïŒç¶æãé
çœ®ãæš¡åãKasumiãå
³äºïŒ
â âââ components/ å
±äº« UI ç»ä»¶ïŒå¯Œèªæ ãæç€ºã骚æ¶å±ïŒ
â âââ lib/ API æ¡¥æ¥ãç¶æç®¡çãçŒè§£ç åšãåœé
å
â âââ locales/ 9 ç§è¯èšåœé
å
xtask/ æå»ºäžååžèªåšå
module/ æš¡åæå
èæ¬äžéæèµæº
- Rust nightlyïŒåè§
rust-toolchain.tomlïŒ - Android NDK r27+ å
cargo-ndk - Node.js 20+ å pnpmïŒçšäº WebUIïŒ
# Full çæ¬æå»ºïŒäºè¿å¶ + WebUI + KasumiïŒâ output/
cargo run -p xtask -- build --release --flavor full
# Lite çæ¬æå»ºïŒäºè¿å¶ + WebUIïŒäžå« KasumiïŒâ output/
cargo run -p xtask -- build --release --flavor lite
# Nano çæ¬æå»ºïŒçº¯é
眮æä»¶æ§å¶ïŒäžå« WebUI/CLI/daemonïŒâ output/
cargo run -p xtask -- build --release --flavor nano
# ä»
æå»ºäºè¿å¶ïŒè·³è¿ WebUIïŒ
cargo run -p xtask -- build --release --skip-webui
# æ¬å° arm64 è°è¯æå»º
./scripts/build-local.sh
# æ¬å° lite è°è¯æå»º
./scripts/build-local.sh --lite
# æ¬å° nano è°è¯æå»º
./scripts/build-local.sh --nano
# æå
¥é¢çŒè¯ç Kasumi LKM .ko èµäº§ïŒä»
full çæ¬ïŒ
./scripts/build-local.sh --release --kasumi-lkm-dir /path/to/kasumi-lkm
# WebUI åŒåæå¡åšïŒçé蜜ïŒ
cd webui && pnpm install && pnpm dev
# ä»£ç æ£æ¥
cargo run -p xtask -- lint
cd webui && pnpm lint
# è¿è¡æµè¯
cargo +nightly test
cd webui && pnpm testRelease äœ¿çš opt-level = 3ãlto = "fat"ãcodegen-units = 1ãstrip = trueãpanic = "abort" 以åå°äºè¿å¶äœç§¯ã
- æèœœæ¥æºèªå𿣿µïŒæ°å®è£
äŒé»è®€èªå𿣿µè¿è¡ç¯å¢ãä»
åšèªå𿣿µå€±èŽ¥æ¶æéæŸåŒè®Ÿçœ®
mountsourceã - é
眮é误æ¢å€ïŒæ§è¡
hybrid-mount api config-reseté眮䞺é»è®€é 眮ïŒç¶å鿥æ¢å€è§åãä¹å¯äœ¿çšgen-configéæ°çæé 眮æä»¶ã - é
眮çŒåïŒè¿è¡æ¶ç»Žæ€é
眮çŒåã䜿çš
api config-patch --apply-runtimeäœ¿æŽæ¹å³æ¶çæïŒæéå¯å®æ€è¿çšã - Kasumi LKMïŒä»
full çæ¬ïŒïŒLKM å¿
é¡»äžåœåå
æ žå¹é
ãåŠæèªå𿣿µç KMI äžæ£ç¡®ïŒè¯·äœ¿çš
lkm_kmi_overrideèŠçã kasumi clearïŒæž é€è¿è¡æ¶ç¶æå¹¶éæŸå æ žè¿æ¥ãå·²äžåå°å æ žçè§ååš LKM é蜜åå¯èœä»ç¶ææã- åå°äœç§¯ïŒå»ºè®®äŒå ä»äŸèµç¹æ§è£åªå release profile è°äŒå ¥æïŒåèèéæã
åºäº Apache-2.0 讞å¯ã