You've already forked KernelSU
mirror of
https://github.com/tiann/KernelSU.git
synced 2025-08-27 23:46:34 +00:00
105 lines
63 KiB
HTML
105 lines
63 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-TW" dir="ltr">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>模組指南 | KernelSU</title>
|
||
<meta name="description" content="一個以核心為基礎,適用於 Android GKI 的 Root 解決方案。">
|
||
<link rel="preload stylesheet" href="/assets/style.7b8b1841.css" as="style">
|
||
<script type="module" src="/assets/app.9b09a9be.js"></script>
|
||
<link rel="preload" href="/assets/inter-roman-latin.2ed14f66.woff2" as="font" type="font/woff2" crossorigin="">
|
||
<link rel="modulepreload" href="/assets/chunks/framework.43781440.js">
|
||
<link rel="modulepreload" href="/assets/chunks/theme.85c31bd3.js">
|
||
<link rel="modulepreload" href="/assets/zh_TW_guide_module.md.76671e26.lean.js">
|
||
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
||
</head>
|
||
<body>
|
||
<div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8616af1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8616af1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar has-sidebar" data-v-7e5bc4a5 data-v-94c81dcc><div class="container" data-v-94c81dcc><div class="title" data-v-94c81dcc><div class="VPNavBarTitle has-sidebar" data-v-94c81dcc data-v-f4ef19a3><a class="title" href="/zh_TW/" data-v-f4ef19a3><!--[--><!--]--><!----><!--[-->KernelSU<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-94c81dcc><div class="curtain" data-v-94c81dcc></div><div class="content-body" data-v-94c81dcc><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:'Meta';" data-v-94c81dcc><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-94c81dcc data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/zh_TW/guide/what-is-kernelsu.html" tabindex="0" data-v-7f418b0f data-v-37adc828 data-v-8f4dc553><!--[-->指南<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="https://github.com/tiann/KernelSU" target="_blank" rel="noreferrer" tabindex="0" data-v-7f418b0f data-v-37adc828 data-v-8f4dc553><!--[-->Github<!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-94c81dcc data-v-74abcbb9 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-764effdf><span class="text" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="option-icon" data-v-764effdf><path d="M0 0h24v24H0z" fill="none"></path><path d=" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z " class="css-c4d79v"></path></svg> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><div class="items" data-v-74abcbb9><p class="title" data-v-74abcbb9>繁體中文</p><!--[--><div class="VPMenuLink" data-v-74abcbb9 data-v-d2c93bab><a class="VPLink link" href="/guide/module.html" data-v-d2c93bab data-v-8f4dc553><!--[-->English<!--]--><!----></a></div><div class="VPMenuLink" data-v-74abcbb9 data-v-d2c93bab><a class="VPLink link" href="/zh_CN/guide/module.html" data-v-d2c93bab data-v-8f4dc553><!--[-->简体中文<!--]--><!----></a></div><div class="VPMenuLink" data-v-74abcbb9 data-v-d2c93bab><a class="VPLink link" href="/ja_JP/guide/module.html" data-v-d2c93bab data-v-8f4dc553><!--[-->日本語<!--]--><!----></a></div><div class="VPMenuLink" data-v-74abcbb9 data-v-d2c93bab><a class="VPLink link" href="/vi_VN/guide/module.html" data-v-d2c93bab data-v-8f4dc553><!--[-->Tiếng Việt<!--]--><!----></a></div><div class="VPMenuLink" data-v-74abcbb9 data-v-d2c93bab><a class="VPLink link" href="/id_ID/guide/module.html" data-v-d2c93bab data-v-8f4dc553><!--[-->Bahasa<!--]--><!----></a></div><div class="VPMenuLink" data-v-74abcbb9 data-v-d2c93bab><a class="VPLink link" href="/ru_RU/guide/module.html" data-v-d2c93bab data-v-8f4dc553><!--[-->Русский<!--]--><!----></a></div><div class="VPMenuLink" data-v-74abcbb9 data-v-d2c93bab><a class="VPLink link" href="/pt_BR/guide/module.html" data-v-d2c93bab data-v-8f4dc553><!--[-->Português (Brasil)<!--]--><!----></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-94c81dcc data-v-f6a63727><label title="toggle dark mode" data-v-f6a63727 data-v-a9c8afb8><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-checked="false" data-v-a9c8afb8 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-a9c8afb8><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-a9c8afb8><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></label></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-94c81dcc data-v-0394ad82 data-v-f6988cfb><!--[--><a class="VPSocialLink" href="https://github.com/tiann/KernelSU" aria-label="github" target="_blank" rel="noopener" data-v-f6988cfb data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-94c81dcc data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><div class="group translations" data-v-40855f84><p class="trans-title" data-v-40855f84>繁體中文</p><!--[--><div class="VPMenuLink" data-v-40855f84 data-v-d2c93bab><a class="VPLink link" href="/guide/module.html" data-v-d2c93bab data-v-8f4dc553><!--[-->English<!--]--><!----></a></div><div class="VPMenuLink" data-v-40855f84 data-v-d2c93bab><a class="VPLink link" href="/zh_CN/guide/module.html" data-v-d2c93bab data-v-8f4dc553><!--[-->简体中文<!--]--><!----></a></div><div class="VPMenuLink" data-v-40855f84 data-v-d2c93bab><a class="VPLink link" href="/ja_JP/guide/module.html" data-v-d2c93bab data-v-8f4dc553><!--[-->日本語<!--]--><!----></a></div><div class="VPMenuLink" data-v-40855f84 data-v-d2c93bab><a class="VPLink link" href="/vi_VN/guide/module.html" data-v-d2c93bab data-v-8f4dc553><!--[-->Tiếng Việt<!--]--><!----></a></div><div class="VPMenuLink" data-v-40855f84 data-v-d2c93bab><a class="VPLink link" href="/id_ID/guide/module.html" data-v-d2c93bab data-v-8f4dc553><!--[-->Bahasa<!--]--><!----></a></div><div class="VPMenuLink" data-v-40855f84 data-v-d2c93bab><a class="VPLink link" href="/ru_RU/guide/module.html" data-v-d2c93bab data-v-8f4dc553><!--[-->Русский<!--]--><!----></a></div><div class="VPMenuLink" data-v-40855f84 data-v-d2c93bab><a class="VPLink link" href="/pt_BR/guide/module.html" data-v-d2c93bab data-v-8f4dc553><!--[-->Português (Brasil)<!--]--><!----></a></div><!--]--></div><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><label title="toggle dark mode" data-v-40855f84 data-v-a9c8afb8><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-checked="false" data-v-a9c8afb8 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-a9c8afb8><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-a9c8afb8><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></label></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-f6988cfb><!--[--><a class="VPSocialLink" href="https://github.com/tiann/KernelSU" aria-label="github" target="_blank" rel="noopener" data-v-f6988cfb data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-94c81dcc data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-b2cf3e0b data-v-392e1bf8><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-392e1bf8><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-392e1bf8><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-392e1bf8>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-392e1bf8 data-v-079b16a8><button data-v-079b16a8>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-b2cf3e0b data-v-af16598e><div class="curtain" data-v-af16598e></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-af16598e><span class="visually-hidden" id="sidebar-aria-label" data-v-af16598e> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 has-active" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Guide</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/zh_TW/guide/what-is-kernelsu.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>什麼是 KernelSU?</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/zh_TW/guide/installation.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>安裝</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/zh_TW/guide/how-to-build.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>如何建置?</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/zh_TW/guide/how-to-integrate-for-non-gki.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>如何為非 GKI 核心整合 KernelSU</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/zh_TW/guide/unofficially-support-devices.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>非官方支援裝置</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link is-active has-active" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/zh_TW/guide/module.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>模組指南</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/zh_TW/guide/rescue-from-bootloop.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>搶救開機迴圈</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/zh_TW/guide/faq.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>常見問題</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/zh_TW/guide/hidden-features.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>隱藏功能</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-b2cf3e0b data-v-a494bd1d><div class="VPDoc has-sidebar has-aside" data-v-a494bd1d data-v-c4b0d3cf><!--[--><!--]--><div class="container" data-v-c4b0d3cf><div class="aside" data-v-c4b0d3cf><div class="aside-curtain" data-v-c4b0d3cf></div><div class="aside-container" data-v-c4b0d3cf><div class="aside-content" data-v-c4b0d3cf><div class="VPDocAside" data-v-c4b0d3cf data-v-3f215769><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-3f215769 data-v-ff0f39c8><div class="content" data-v-ff0f39c8><div class="outline-marker" data-v-ff0f39c8></div><div class="outline-title" data-v-ff0f39c8>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-ff0f39c8><span class="visually-hidden" id="doc-outline-aria-label" data-v-ff0f39c8> Table of Contents for current page </span><ul class="root" data-v-ff0f39c8 data-v-9a431c33><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c4b0d3cf><div class="content-container" data-v-c4b0d3cf><!--[--><!--]--><!----><main class="main" data-v-c4b0d3cf><div style="position:relative;" class="vp-doc _zh_TW_guide_module" data-v-c4b0d3cf><div><h1 id="introduction" tabindex="-1">模組指南 <a class="header-anchor" href="#introduction" aria-label="Permalink to "模組指南 {#introduction}""></a></h1><p>KernelSU 提供了一個模組機制,它可以在保持系統分割區完整性的同時達到修改系統分割區的效果;這種機制一般被稱為 systemless。</p><p>KernelSU 的模組運作機制與 Magisk 幾乎相同,如果您熟悉 Magisk 模組的開發,那麼開發 KernelSU 的模組大同小異,您可以跳過下列有關模組的介紹,只需要瞭解 <a href="./difference-with-magisk.html">KernelSU 模組與 Magisk 模組的異同</a>。</p><h2 id="busybox" tabindex="-1">Busybox <a class="header-anchor" href="#busybox" aria-label="Permalink to "Busybox""></a></h2><p>KernelSU 提供了一個完備的 BusyBox 二進位檔案 (包括完整的 SELinux 支援)。可執行檔位於 <code>/data/adb/ksu/bin/busybox</code>。 KernelSU 的 BusyBox 支援同時執行時可切換的 "ASH Standalone Shell Mode"。 這種讀了模式意味著在執行 BusyBox 的 ash shell 時,每個命令都會直接使用 BusyBox 中內建的應用程式,而不論 PATH 的設定為何。 例如,<code>ls</code>、<code>rm</code>、<code>chmod</code> 等命令將不會使用 PATH 中設定的命令 (在 Android 的狀況下,預設狀況下分別為 <code>/system/bin/ls</code>、<code>/system/bin/rm</code> 和 <code>/system/bin/chmod</code>),而是直接呼叫 BusyBox 內建的應用程式。 這確保了指令碼始終在可預測的環境中執行,並始終具有完整的命令套件,不論它執行在哪個 Android 版本上。 要強制下一個命令不使用 BusyBox,您必須使用完整路徑呼叫可執行檔。</p><p>在 KernelSU 上下文中執行的每個 shell 指令碼都將在 BusyBox 的 ash shell 中以獨立模式執行。對於第三方開發人員相關的內容,包括所有開機指令碼和模組安裝指令碼。</p><p>對於想要在 KernelSU 之外使用這個「獨立模式」功能的使用者,有兩種啟用方法:</p><ol><li>將環境變數 <code>ASH_STANDALONE</code> 設為 <code>1</code>。例如:<code>ASH_STANDALONE=1 /data/adb/ksu/bin/busybox sh <script></code></li><li>使用命令列選項切換:<code>/data/adb/ksu/bin/busybox sh -o standalone <script></code></li></ol><p>為了確保所有後續的 <code>sh</code> shell 都在獨立模式下執行,第一種是首選方法 (這也是 KernelSU 和 KernelSU 管理員內部使用的方法),因為環境變數會被繼承到子處理程序中。</p><div class="tip custom-block"><p class="custom-block-title">與 Magisk 的差異</p><p>KernelSU 的 BusyBox 現在是直接使用 Magisk 專案編譯的二進位檔案,<strong>感謝 Magisk!</strong> 因此,您完全不必擔心 BusyBox 指令碼與在 Magisk 和 KernelSU 之間的相容性問題,因為它們完全相同!</p></div><h2 id="kernelsu-modules" tabindex="-1">KernelSU 模組 <a class="header-anchor" href="#kernelsu-modules" aria-label="Permalink to "KernelSU 模組 {#kernelsu-modules}""></a></h2><p>KernelSU 模組是一個放置於 <code>/data/adb/modules</code> 且滿足下列結構的資料夾:</p><div class="language-txt"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">/data/adb/modules</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">├── .</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">├── .</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">|</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">├── $MODID <--- 模組的資料夾名稱與模組 ID 相同</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │ *** 模組識別 ***</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── module.prop <--- 這個檔案儲存與模組相關的中繼資料,例如模組 ID、版本等</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │ *** 主要內容 ***</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── system <--- 這個資料夾會在 skip_mount 不存在時被掛接至系統</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │ ├── ...</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │ ├── ...</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │ └── ...</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │ *** 狀態旗標 ***</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── skip_mount <--- 如果這個檔案存在,那麼 KernelSU 將不會掛接您的系統資料夾</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── disable <--- 如果這個檔案存在,那麼模組將會被停用</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── remove <--- 如果這個檔案存在,那麼模組將會在下次重新開機時被移除</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │ *** 選用檔案 ***</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── post-fs-data.sh <--- 這個指令碼將會在 post-fs-data 中執行</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── service.sh <--- 這個指令碼將會在 late_start 服務中執行</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">| ├── uninstall.sh <--- 這個指令碼將會在 KernelSU 移除模組時執行</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── system.prop <--- 這個檔案中指定的屬性將會在系統啟動時透過 resetprop 變更</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── sepolicy.rule <--- 這個檔案中的 SELinux 原則將會在系統開機時載入</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │ *** 自動產生的目錄,不要手動建立或修改! ***</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── vendor <--- A symlink to $MODID/system/vendor</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── product <--- A symlink to $MODID/system/product</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── system_ext <--- A symlink to $MODID/system/system_ext</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │ *** 允許的其他額外檔案/資料夾 ***</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── ...</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ └── ...</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">|</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">├── another_module</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── .</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ └── .</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">├── .</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">├── .</span></span></code></pre></div><div class="tip custom-block"><p class="custom-block-title">與 Magisk 的差異</p><p>KernelSU 沒有內建的針對 Zygisk 的支援,因此模組中沒有與 Zygisk 相關的內容,但您可以透過 <a href="https://github.com/Dr-TSNG/ZygiskNext" target="_blank" rel="noreferrer">ZygiskNext</a> 以支援 Zygisk 模組,此時 Zygisk 模組的內容與 Magisk 所支援的 Zygisk 完全相同。</p></div><h3 id="module-prop" tabindex="-1">module.prop <a class="header-anchor" href="#module-prop" aria-label="Permalink to "module.prop""></a></h3><p>module.prop 是一個模組的組態檔案,在 KernelSU 中如果模組中不包含這個檔案,那麼它將不被認為是一個模組;這個檔案的格式如下:</p><div class="language-txt"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">id=<string></span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">name=<string></span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">version=<string></span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">versionCode=<int></span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">author=<string></span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">description=<string></span></span></code></pre></div><ul><li>id 必須與這個規則運算式相符:<code>^[a-zA-Z][a-zA-Z0-9._-]+$</code> 例如:✓ <code>a_module</code>,✓ <code>a.module</code>,✓ <code>module-101</code>,✗ <code>a module</code>,✗ <code>1_module</code>,✗ <code>-a-module</code>。這是您的模組的唯一識別碼,發表後將無法變更。</li><li>versionCode 必須是一個整數,用於比較版本。</li><li>其他未在上方提到的內容可以是任何單行字串。</li><li>請確保使用 <code>UNIX (LF)</code> 分行符號類型,而非 <code>Windows (CR + LF)</code> 或 <code>Macintosh (CR)</code>。</li></ul><h3 id="shell-scripts" tabindex="-1">Shell 指令碼 <a class="header-anchor" href="#shell-scripts" aria-label="Permalink to "Shell 指令碼 {#shell-scripts}""></a></h3><p>請閱讀 <a href="#boot-scripts">開機指令碼</a> 章節,以瞭解 <code>post-fs-data.sh</code> 和 <code>service.sh</code> 之間的差別。對於大多數模組開發人員來說,如果您只需要執行一個開機指令碼,<code>service.sh</code> 應該已經足夠了。</p><p>在您的模組中的所有指令碼中,請使用 <code>MODDIR=${0%/*}</code> 以取得您的模組基本目錄路徑;請不要在指令碼中以硬式編碼的方式加入您的模組路徑。</p><div class="tip custom-block"><p class="custom-block-title">與 Magisk 的差異</p><p>您可以透過環境變數 <code>KSU</code> 來判斷指令碼是執行在 KernelSU 還是 Magisk 中,如果執行在 KernelSU,這個值會被設為 <code>true</code>。</p></div><h3 id="system-directories" tabindex="-1"><code>system</code> 目錄 <a class="header-anchor" href="#system-directories" aria-label="Permalink to "`system` 目錄 {#system-directories}""></a></h3><p>這個目錄的內容會在系統啟動後,以 <code>overlayfs</code> 的方式覆疊在系統的 <code>/system</code> 分割區之上,這表示:</p><ol><li>系統中對應目錄的相同名稱的檔案會被此目錄中的檔案覆寫。</li><li>系統中對應目錄的相同名稱的檔案會與此目錄的檔案合併。</li></ol><p>如果您想要刪除系統先前的目錄中的某個檔案或資料夾,您需要在模組目錄中透過 <code>mknod filename c 0 0</code> 以建立一個 <code>filename</code> 的相同名稱的檔案;這樣 overlayfs 系統會自動「whiteout」等效刪除這個檔案 (<code>/system</code> 分割區並未被變更)。</p><p>您也可以在 <code>customize.sh</code> 中宣告一個名為 <code>REMOVE</code> 並且包含一系列目錄的變數以執行移除作業,KernelSU 會自動為您在模組對應目錄執行 <code>mknod <TARGET> c 0 0</code>。例如:</p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">REMOVE</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span></span>
|
||
<span class="line"><span style="color:#C3E88D;">/system/app/YouTube</span></span>
|
||
<span class="line"><span style="color:#C3E88D;">/system/app/Bloatware</span></span>
|
||
<span class="line"><span style="color:#89DDFF;">"</span></span></code></pre></div><p>上方的清單將會執行:<code>mknod $MODPATH/system/app/YouTuBe c 0 0</code> 和 <code>mknod $MODPATH/system/app/Bloatware c 0 0</code>;並且 <code>/system/app/YouTube</code> 和 <code>/system/app/Bloatware</code> 將會在模組生效前移除。</p><p>如果您想要取代系統的某個目錄,您需要在模組目錄中建立一個相同路徑的目錄,然後為此目錄設定此屬性:<code>setfattr -n trusted.overlay.opaque -v y <TARGET></code>;這樣 overlayfs 系統會自動將對應目錄取代 (<code>/system</code> 分割區並未被變更)。</p><p>您可以在 <code>customize.sh</code> 中宣告一個名為 <code>REMOVE</code> 並且包含一系列目錄的變數以執行移除作業,KernelSU 會自動為您在模組對應目錄執行相關作業。例如:</p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">REPLACE</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">"</span></span>
|
||
<span class="line"><span style="color:#C3E88D;">/system/app/YouTube</span></span>
|
||
<span class="line"><span style="color:#C3E88D;">/system/app/Bloatware</span></span>
|
||
<span class="line"><span style="color:#89DDFF;">"</span></span></code></pre></div><p>上方的清單將會執行:自動建立目錄 <code>$MODPATH/system/app/YouTube</code> 和 <code>$MODPATH//system/app/Bloatware</code>,然後執行 <code>setfattr -n trusted.overlay.opaque -v y $$MODPATH/system/app/YouTube</code> 和 <code>setfattr -n trusted.overlay.opaque -v y $$MODPATH/system/app/Bloatware</code>;並且 <code>/system/app/YouTube</code> 和 <code>/system/app/Bloatware</code> 將會在模組生效後被取代為空白目錄。</p><div class="tip custom-block"><p class="custom-block-title">與 Magisk 的差異</p><p>KernelSU 的 systemless 機制透過核心的 overlayfs 實作,而 Magisk 目前則是透過 magic mount (bind mount),兩者的實作方式有很大的差別,但最終的目標是一致的:不修改實際的 <code>/system</code> 分割區但修改 <code>/system</code> 檔案。</p></div><p>如果您對 overlayfs 感興趣,建議閱讀 Linux Kernel 關於 <a href="https://docs.kernel.org/filesystems/overlayfs.html" target="_blank" rel="noreferrer">overlayfs 的文件</a></p><h3 id="system-prop" tabindex="-1">system.prop <a class="header-anchor" href="#system-prop" aria-label="Permalink to "system.prop""></a></h3><p>這個檔案的格式與 <code>build.prop</code> 完全相同:每一行都是由 <code>[key]=[value]</code> 組成。</p><h3 id="sepolicy-rule" tabindex="-1">sepolicy.rule <a class="header-anchor" href="#sepolicy-rule" aria-label="Permalink to "sepolicy.rule""></a></h3><p>如果您的模組需要一些額外 SELinux 原則修補程式,請將這些原則新增至這個檔案中。這個檔案的每一行都將被視為一個原則陳述。</p><h2 id="module-installer" tabindex="-1">模組安裝程式 <a class="header-anchor" href="#module-installer" aria-label="Permalink to "模組安裝程式 {#module-installer}""></a></h2><p>KernelSU 的模組安裝程式就是一個可以透過 KernelSU 管理員應用程式刷新的 Zip 檔案,這個 Zip 檔案的格式如下:</p><div class="language-txt"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">module.zip</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">├── customize.sh <--- (Optional, more details later)</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ This script will be sourced by update-binary</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">├── ...</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">├── ... /* 其他模块文件 */</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│</span></span></code></pre></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>KernelSU 模組不支援在 Recovery 中安裝!!</p></div><h3 id="customizing-installation" tabindex="-1">自訂安裝程序 <a class="header-anchor" href="#customizing-installation" aria-label="Permalink to "自訂安裝程序 {#customizing-installation}""></a></h3><p>如果您想要控制模組的安裝程序,可以在模組的目錄下建立一個名為 <code>customize.sh</code> 的檔案,這個檔案將會在模組被解壓縮後<strong>匯入</strong>至目前的 shell 中,如果您的模組需要依據裝置的 API 版本或裝置架構執行一些額外的作業,這個指令碼將非常有用。</p><p>如果您想完全控制指令碼的安裝程序,您可以在 <code>customize.sh</code> 中宣告 <code>SKIPUNZIP=1</code> 以跳過所有的預設安裝步驟;此時,您需要自行處理所有的安裝程序 (例如解壓縮模組、設定權限等)</p><p><code>customize.sh</code> 指令碼以「獨立模式」執行在 KernelSU 的 BusyBox <code>ash</code> shell 中。您可以使用下列變數和函式:</p><h4 id="variables" tabindex="-1">變數 <a class="header-anchor" href="#variables" aria-label="Permalink to "變數 {#variables}""></a></h4><ul><li><code>KSU</code> (bool): 標示此指令碼執行於 KernelSU 環境中,此變數的值將永遠為 <code>true</code>,您可以透過它與 Magisk 進行區分。</li><li><code>KSU_VER</code> (string): KernelSU 目前的版本名稱 (例如 <code>v0.4.0</code>)</li><li><code>KSU_VER_CODE</code> (int): KernelSU 使用者空間目前的版本代碼 (例如 <code>10672</code>)</li><li><code>KSU_KERNEL_VER_CODE</code> (int): KernelSU 核心空間目前的版本代碼 (例如 <code>10672</code>)</li><li><code>BOOTMODE</code> (bool): 此變數在 KernelSU 中永遠為 <code>true</code></li><li><code>MODPATH</code> (path): 目前模組的安裝目錄</li><li><code>TMPDIR</code> (path): 可以存放暫存檔的位置</li><li><code>ZIPFILE</code> (path): 目前模組的安裝程式 Zip</li><li><code>ARCH</code> (string): 裝置的 CPU 架構,有這幾種:<code>arm</code>, <code>arm64</code>, <code>x86</code>, or <code>x64</code></li><li><code>IS64BIT</code> (bool): 是否為 64 位元裝置</li><li><code>API</code> (int): 目前裝置的 Android API 版本 (例如 Android 6.0 上為 <code>23</code>)</li></ul><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p><code>MAGISK_VER_CODE</code> 在 KernelSU 永遠為 <code>25200</code>,<code>MAGISK_VER</code> 則為 <code>v25.2</code>,請不要透過這兩個變數來判斷是否為 KernelSU!</p></div><h4 id="functions" tabindex="-1">函式 <a class="header-anchor" href="#functions" aria-label="Permalink to "函式 {#functions}""></a></h4><div class="language-txt"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">ui_print <msg></span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> print <msg> to console</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> Avoid using 'echo' as it will not display in custom recovery's console</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"></span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">abort <msg></span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> print error message <msg> to console and terminate the installation</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> Avoid using 'exit' as it will skip the termination cleanup steps</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"></span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">set_perm <target> <owner> <group> <permission> [context]</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> if [context] is not set, the default is "u:object_r:system_file:s0"</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> this function is a shorthand for the following commands:</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> chown owner.group target</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> chmod permission target</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> chcon context target</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"></span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">set_perm_recursive <directory> <owner> <group> <dirpermission> <filepermission> [context]</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> if [context] is not set, the default is "u:object_r:system_file:s0"</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> for all files in <directory>, it will call:</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> set_perm file owner group filepermission context</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> for all directories in <directory> (including itself), it will call:</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> set_perm dir owner group dirpermission context</span></span></code></pre></div><h2 id="boot-scripts" tabindex="-1">開機指令碼 <a class="header-anchor" href="#boot-scripts" aria-label="Permalink to "開機指令碼 {#boot-scripts}""></a></h2><p>在 KernelSU 中,依據指令碼執行模式的不同分為兩種:post-fs-data 模式和 late_start 服務模式。</p><ul><li><p>post-fs-data 模式</p><ul><li>這個階段是「封鎖」的。在執行完成之前或 10 秒鐘之後,開機程序會被暫停。</li><li>指令碼在任何模組被掛接之前執行。這使模組開發人員可以在模組被掛接之前動態調整他們的模組。</li><li>這個階段發生在 Zygote 啟動之前,這意味著 Android 中的一切。</li><li>使用 setprop 會導致開機程序死鎖!請使用 <code>resetprop -n <prop_name> <prop_value></code> 替代。</li><li><strong>僅在必要時在此模式中執行指令碼</strong>。</li></ul></li><li><p>late_start 服務模式</p><ul><li>這個階段是「非封鎖」的。您的指令碼會與其餘的啟動程序<strong>平行</strong>執行。</li><li><strong>大多数脚本都建议在这种模式下运行</strong>。</li></ul></li></ul><p>在 KernelSU 中,開機指令碼依據存放位置的不同還分為兩種:一般指令碼和模組指令碼。</p><ul><li><p>一般指令碼</p><ul><li>放置於 <code>/data/adb/post-fs-data.d</code> 或 <code>/data/adb/service.d</code> 中。</li><li>僅有指令碼被設為可執行 (<code>chmod +x script.sh</code>) 時才會被執行。</li><li>在 <code>post-fs-data.d</code> 中的指令碼以 post-fs-data 模式執行,在 <code>service.d</code> 中的指令碼以 late_start 服務模式執行。</li><li>模組<strong>不應</strong>在安裝程序中新增一般指令碼。</li></ul></li><li><p>模組指令碼</p><ul><li>放置於模組自己的資料夾中。</li><li>僅有在模組啟用時才會執行。</li><li><code>post-fs-data.sh</code> 以 post-fs-data 模式執行,而 <code>service.sh</code> 則以 late_start 服務模式執行。</li></ul></li></ul><p>所有启动脚本都将在 KernelSU 的 BusyBox ash shell 中运行,并启用“独立模式”。</p></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/tiann/KernelSU/edit/main/website/docs/zh_TW/guide/module.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> 在 GitHub 中編輯本頁面<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><a class="pager-link prev" href="/zh_TW/guide/unofficially-support-devices.html" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>非官方支援裝置</span></a></div><div class="has-prev pager" data-v-face870a><a class="pager-link next" href="/zh_TW/guide/rescue-from-bootloop.html" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>搶救開機迴圈</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>係依據 GPL3 授權發行。</p><p class="copyright" data-v-2f86ebd2>Copyright © 2022-目前 KernelSU 開發人員</p></div></footer><!--[--><!--]--></div></div>
|
||
<script>__VP_HASH_MAP__ = JSON.parse("{\"guide_difference-with-magisk.md\":\"88801b6b\",\"guide_what-is-kernelsu.md\":\"340bbd63\",\"id_id_index.md\":\"9ad2e601\",\"ja_jp_index.md\":\"be3c7573\",\"index.md\":\"042b4c20\",\"pt_br_guide_app-profile.md\":\"7a2ced3a\",\"id_id_guide_installation.md\":\"a7bb551d\",\"id_id_guide_how-to-integrate-for-non-gki.md\":\"16b9216a\",\"ja_jp_guide_faq.md\":\"998d2dfd\",\"pt_br_guide_difference-with-magisk.md\":\"319599e7\",\"id_id_guide_how-to-build.md\":\"1ecedb69\",\"id_id_guide_rescue-from-bootloop.md\":\"ec3ef7ee\",\"vi_vn_guide_app-profile.md\":\"37d09526\",\"pt_br_guide_what-is-kernelsu.md\":\"b42bbc04\",\"vi_vn_guide_rescue-from-bootloop.md\":\"d796809c\",\"vi_vn_guide_difference-with-magisk.md\":\"efd07233\",\"pt_br_guide_how-to-integrate-for-non-gki.md\":\"9373963e\",\"pt_br_guide_installation.md\":\"8193d15a\",\"pt_br_guide_how-to-build.md\":\"50a0b380\",\"ru_ru_guide_app-profile.md\":\"8936210e\",\"vi_vn_guide_faq.md\":\"e9230071\",\"vi_vn_guide_hidden-features.md\":\"fca4632f\",\"pt_br_guide_rescue-from-bootloop.md\":\"f4a13bcd\",\"vi_vn_guide_how-to-build.md\":\"f5e5323c\",\"guide_how-to-build.md\":\"cf9f2c40\",\"guide_installation.md\":\"ec5f3b13\",\"zh_tw_guide_rescue-from-bootloop.md\":\"db20cf2e\",\"guide_faq.md\":\"234d8c0d\",\"ru_ru_guide_how-to-build.md\":\"1b3dd3fb\",\"id_id_guide_unofficially-support-devices.md\":\"3238b4be\",\"zh_cn_index.md\":\"7dc4034d\",\"zh_cn_guide_what-is-kernelsu.md\":\"cdc98b69\",\"id_id_guide_faq.md\":\"8fe1170a\",\"ja_jp_guide_unofficially-support-devices.md\":\"ca3f04b0\",\"id_id_guide_what-is-kernelsu.md\":\"aee47f37\",\"zh_cn_guide_module.md\":\"88839cd5\",\"zh_tw_guide_module.md\":\"76671e26\",\"zh_cn_guide_installation.md\":\"612797b7\",\"zh_cn_guide_hidden-features.md\":\"cdd5624f\",\"id_id_guide_module.md\":\"a65f7310\",\"ru_ru_guide_installation.md\":\"bd641868\",\"ru_ru_guide_difference-with-magisk.md\":\"d55db77b\",\"vi_vn_guide_module.md\":\"907befd3\",\"ru_ru_guide_rescue-from-bootloop.md\":\"d9d6936e\",\"vi_vn_index.md\":\"a84edf49\",\"zh_cn_guide_difference-with-magisk.md\":\"223f61d1\",\"vi_vn_guide_what-is-kernelsu.md\":\"bea8d4b7\",\"pt_br_guide_hidden-features.md\":\"df3f1d4b\",\"zh_tw_guide_how-to-build.md\":\"ef330d07\",\"zh_tw_guide_difference-with-magisk.md\":\"161de8ef\",\"zh_cn_guide_rescue-from-bootloop.md\":\"3d907e03\",\"ja_jp_guide_what-is-kernelsu.md\":\"779775a2\",\"ru_ru_guide_unofficially-support-devices.md\":\"fdcfea2d\",\"guide_hidden-features.md\":\"45e791e6\",\"ru_ru_guide_hidden-features.md\":\"395803e0\",\"guide_how-to-integrate-for-non-gki.md\":\"35d629c6\",\"guide_rescue-from-bootloop.md\":\"86b40f3b\",\"guide_unofficially-support-devices.md\":\"d9173329\",\"ja_jp_guide_installation.md\":\"2cc6f4de\",\"ja_jp_guide_hidden-features.md\":\"9c5dddb2\",\"ja_jp_guide_module.md\":\"8abad8eb\",\"zh_cn_guide_how-to-integrate-for-non-gki.md\":\"891eeb81\",\"zh_cn_guide_unofficially-support-devices.md\":\"e2fd6c11\",\"zh_tw_guide_unofficially-support-devices.md\":\"e385e7b5\",\"ru_ru_guide_faq.md\":\"e0aa7004\",\"zh_tw_guide_what-is-kernelsu.md\":\"a2ba0439\",\"id_id_guide_difference-with-magisk.md\":\"abc25e03\",\"ja_jp_guide_rescue-from-bootloop.md\":\"d26f95c4\",\"zh_cn_guide_app-profile.md\":\"557e9b58\",\"guide_app-profile.md\":\"9faae288\",\"guide_module.md\":\"1b64f354\",\"pt_br_guide_unofficially-support-devices.md\":\"007edca2\",\"zh_tw_index.md\":\"896578f0\",\"zh_tw_guide_hidden-features.md\":\"f0bea9ae\",\"pt_br_guide_module.md\":\"039201f7\",\"zh_tw_guide_how-to-integrate-for-non-gki.md\":\"e3487c4d\",\"ru_ru_index.md\":\"4f8b1975\",\"zh_cn_guide_faq.md\":\"30eb8f8e\",\"vi_vn_guide_unofficially-support-devices.md\":\"b3af952a\",\"zh_tw_guide_installation.md\":\"0f23d3bf\",\"pt_br_guide_faq.md\":\"e1ef8622\",\"vi_vn_guide_installation.md\":\"7fef5e5e\",\"pt_br_index.md\":\"a1524471\",\"zh_tw_guide_faq.md\":\"bea0a7af\",\"ru_ru_guide_how-to-integrate-for-non-gki.md\":\"7c70c478\",\"ja_jp_guide_difference-with-magisk.md\":\"34107b11\",\"zh_cn_guide_how-to-build.md\":\"f4f2a6dd\",\"vi_vn_guide_how-to-integrate-for-non-gki.md\":\"9b3f1403\",\"ru_ru_guide_module.md\":\"2cf2aec7\",\"ru_ru_guide_what-is-kernelsu.md\":\"b17b08a8\"}")
|
||
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"KernelSU\",\"description\":\"A VitePress site\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en-US\",\"themeConfig\":{\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/what-is-kernelsu\"},{\"text\":\"Github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"lastUpdatedText\":\"last Updated\",\"sidebar\":{\"/guide/\":[{\"text\":\"Guide\",\"items\":[{\"text\":\"What is KernelSU?\",\"link\":\"/guide/what-is-kernelsu\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"},{\"text\":\"How to build?\",\"link\":\"/guide/how-to-build\"},{\"text\":\"Intergrate for non-GKI devices\",\"link\":\"/guide/how-to-integrate-for-non-gki\"},{\"text\":\"Unofficially supported devices\",\"link\":\"/guide/unofficially-support-devices.md\"},{\"text\":\"Module Guide\",\"link\":\"/guide/module.md\"},{\"text\":\"App Profile\",\"link\":\"/guide/app-profile.md\"},{\"text\":\"Rescue from bootloop\",\"link\":\"/guide/rescue-from-bootloop.md\"},{\"text\":\"FAQ\",\"link\":\"/guide/faq\"},{\"text\":\"Hidden features\",\"link\":\"/guide/hidden-features\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"footer\":{\"message\":\"Released under the GPL3 License.\",\"copyright\":\"Copyright © 2022-present KernelSU Developers\"},\"editLink\":{\"pattern\":\"https://github.com/tiann/KernelSU/edit/main/website/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"description\":\"A kernel-based root solution for Android GKI devices.\"},\"zh_CN\":{\"label\":\"简体中文\",\"lang\":\"zh-CN\",\"themeConfig\":{\"nav\":[{\"text\":\"指南\",\"link\":\"/zh_CN/guide/what-is-kernelsu\"},{\"text\":\"Github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"lastUpdatedText\":\"最后更新\",\"sidebar\":{\"/zh_CN/guide/\":[{\"text\":\"Guide\",\"items\":[{\"text\":\"什么是 KernelSU?\",\"link\":\"/zh_CN/guide/what-is-kernelsu\"},{\"text\":\"安装\",\"link\":\"/zh_CN/guide/installation\"},{\"text\":\"如何构建?\",\"link\":\"/zh_CN/guide/how-to-build\"},{\"text\":\"如何为非GKI设备集成 KernelSU\",\"link\":\"/zh_CN/guide/how-to-integrate-for-non-gki\"},{\"text\":\"非官方支持设备\",\"link\":\"/zh_CN/guide/unofficially-support-devices.md\"},{\"text\":\"模块开发指南\",\"link\":\"/zh_CN/guide/module.md\"},{\"text\":\"App Profile\",\"link\":\"/zh_CN/guide/app-profile.md\"},{\"text\":\"救砖\",\"link\":\"/zh_CN/guide/rescue-from-bootloop.md\"},{\"text\":\"常见问题\",\"link\":\"/zh_CN/guide/faq\"},{\"text\":\"隐藏功能\",\"link\":\"/zh_CN/guide/hidden-features\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"footer\":{\"message\":\"在 GPL3 许可证下发布。\",\"copyright\":\"Copyright © 2022-现在 KernelSU 开发者\"},\"editLink\":{\"pattern\":\"https://github.com/tiann/KernelSU/edit/main/website/docs/:path\",\"text\":\"在 GitHub 中编辑本页\"}},\"description\":\"一个基于内核,为安卓 GKI 准备的 root 方案。\"},\"zh_TW\":{\"label\":\"繁體中文\",\"lang\":\"zh-TW\",\"themeConfig\":{\"nav\":[{\"text\":\"指南\",\"link\":\"/zh_TW/guide/what-is-kernelsu\"},{\"text\":\"Github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"lastUpdatedText\":\"上次更新\",\"sidebar\":{\"/zh_TW/guide/\":[{\"text\":\"Guide\",\"items\":[{\"text\":\"什麼是 KernelSU?\",\"link\":\"/zh_TW/guide/what-is-kernelsu\"},{\"text\":\"安裝\",\"link\":\"/zh_TW/guide/installation\"},{\"text\":\"如何建置?\",\"link\":\"/zh_TW/guide/how-to-build\"},{\"text\":\"如何為非 GKI 核心整合 KernelSU\",\"link\":\"/zh_TW/guide/how-to-integrate-for-non-gki\"},{\"text\":\"非官方支援裝置\",\"link\":\"/zh_TW/guide/unofficially-support-devices.md\"},{\"text\":\"模組指南\",\"link\":\"/zh_TW/guide/module.md\"},{\"text\":\"搶救開機迴圈\",\"link\":\"/zh_TW/guide/rescue-from-bootloop.md\"},{\"text\":\"常見問題\",\"link\":\"/zh_TW/guide/faq\"},{\"text\":\"隱藏功能\",\"link\":\"/zh_TW/guide/hidden-features\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"footer\":{\"message\":\"係依據 GPL3 授權發行。\",\"copyright\":\"Copyright © 2022-目前 KernelSU 開發人員\"},\"editLink\":{\"pattern\":\"https://github.com/tiann/KernelSU/edit/main/website/docs/:path\",\"text\":\"在 GitHub 中編輯本頁面\"}},\"description\":\"一個以核心為基礎,適用於 Android GKI 的 Root 解決方案。\"},\"ja_JP\":{\"label\":\"日本語\",\"lang\":\"ja-JP\",\"themeConfig\":{\"nav\":[{\"text\":\"ガイド\",\"link\":\"/ja_JP/guide/what-is-kernelsu\"},{\"text\":\"Github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"lastUpdatedText\":\"最終更新\",\"sidebar\":{\"/ja_JP/guide/\":[{\"text\":\"ガイド\",\"items\":[{\"text\":\"KernelSU とは?\",\"link\":\"/ja_JP/guide/what-is-kernelsu\"},{\"text\":\"インストール\",\"link\":\"/ja_JP/guide/installation\"},{\"text\":\"ビルドするには?\",\"link\":\"/guide/how-to-build\"},{\"text\":\"非 GKI デバイスでの実装\",\"link\":\"/guide/how-to-integrate-for-non-gki\"},{\"text\":\"非公式の対応デバイス\",\"link\":\"/ja_JP/guide/unofficially-support-devices.md\"},{\"text\":\"モジュールのガイド\",\"link\":\"/ja_JP/guide/module.md\"},{\"text\":\"ブートループからの復旧\",\"link\":\"/ja_JP/guide/rescue-from-bootloop.md\"},{\"text\":\"よくある質問\",\"link\":\"/ja_JP/guide/faq\"},{\"text\":\"隠し機能\",\"link\":\"/ja_JP/guide/hidden-features\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"footer\":{\"message\":\"GPL3 ライセンスでリリースされています。\",\"copyright\":\"Copyright © 2022-現在 KernelSU 開発者\"},\"editLink\":{\"pattern\":\"https://github.com/tiann/KernelSU/edit/main/website/docs/:path\",\"text\":\"GitHub でこのページを編集\"}},\"description\":\"Android GKI デバイス向けのカーネルベースの root ソリューション\"},\"vi_VN\":{\"label\":\"Tiếng Việt\",\"lang\":\"vi-VN\",\"themeConfig\":{\"nav\":[{\"text\":\"Hướng Dẫn\",\"link\":\"/vi_VN/guide/what-is-kernelsu\"},{\"text\":\"Github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"lastUpdatedText\":\"cập nhật lần cuối\",\"sidebar\":{\"/vi_VN/guide/\":[{\"text\":\"Hướng Dẫn\",\"items\":[{\"text\":\"KernelSU là gì?\",\"link\":\"/vi_VN/guide/what-is-kernelsu\"},{\"text\":\"Cách cài đặt\",\"link\":\"/vi_VN/guide/installation\"},{\"text\":\"Cách để build?\",\"link\":\"/vi_VN/guide/how-to-build\"},{\"text\":\"Tích hợp vào thiết bị không sử dụng GKI\",\"link\":\"/vi_VN/guide/how-to-integrate-for-non-gki\"},{\"text\":\"Thiết bị hỗ trợ không chính thức\",\"link\":\"/vi_VN/guide/unofficially-support-devices.md\"},{\"text\":\"FAQ - Câu hỏi thường gặp\",\"link\":\"/vi_VN/guide/faq\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"footer\":{\"message\":\"Phát hành dưới giấy phép GPL3.\",\"copyright\":\"Bản Quyền © 2022-nay KernelSU Developers\"},\"editLink\":{\"pattern\":\"https://github.com/tiann/KernelSU/edit/main/website/docs/:path\",\"text\":\"Chỉnh sửa trang này trên GitHub\"}},\"description\":\"Một giải pháp root trực tiếp trên kernel dành cho các thiết bị hỗ trợ GKI.\"},\"id_ID\":{\"label\":\"Bahasa\",\"lang\":\"id-ID\",\"themeConfig\":{\"nav\":[{\"text\":\"Petunjuk\",\"link\":\"/id_ID/guide/what-is-kernelsu\"},{\"text\":\"Github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"lastUpdatedText\":\"Update Terakhir\",\"sidebar\":{\"/id_ID/guide/\":[{\"text\":\"Petunjuk\",\"items\":[{\"text\":\"Apa itu KernelSU?\",\"link\":\"/id_ID/guide/what-is-kernelsu\"},{\"text\":\"Instalasi\",\"link\":\"/id_ID/guide/installation\"},{\"text\":\"Bagaimana cara buildnya?\",\"link\":\"/id_ID/guide/how-to-build\"},{\"text\":\"Integrasi untuk perangkat non-GKI\",\"link\":\"/id_ID/guide/how-to-integrate-for-non-gki\"},{\"text\":\"Perangkat yang didukung secara tidak resmi\",\"link\":\"/id_ID/guide/unofficially-support-devices.md\"},{\"text\":\"Petunjuk module\",\"link\":\"/id_ID/guide/module.md\"},{\"text\":\"Antisipasi dari bootloop\",\"link\":\"/id_ID/guide/rescue-from-bootloop.md\"},{\"text\":\"FAQ\",\"link\":\"/id_ID/guide/faq\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"footer\":{\"message\":\"Rilis Dibawah Lisensi GPL3.\",\"copyright\":\"Copyright © 2022-Sekarang pengembang KernelSU \"},\"editLink\":{\"pattern\":\"https://github.com/tiann/KernelSU/edit/main/website/docs/:path\",\"text\":\"Edit Halaman ini di GitHub\"}},\"description\":\"Solusi root kernel-based untuk perangkat Android GKI.\"},\"ru_RU\":{\"label\":\"Русский\",\"lang\":\"ru-RU\",\"themeConfig\":{\"nav\":[{\"text\":\"Руководство\",\"link\":\"/ru_RU/guide/what-is-kernelsu\"},{\"text\":\"Github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"lastUpdatedText\":\"последнее обновление\",\"sidebar\":{\"/ru_RU/guide/\":[{\"text\":\"Руководство\",\"items\":[{\"text\":\"Что такое KernelSU?\",\"link\":\"/ru_RU/guide/what-is-kernelsu\"},{\"text\":\"Установка\",\"link\":\"/ru_RU/guide/installation\"},{\"text\":\"Как собрать?\",\"link\":\"/ru_RU/guide/how-to-build\"},{\"text\":\"Реализация в устройствах, не относящихся к GKI\",\"link\":\"/ru_RU/guide/how-to-integrate-for-non-gki\"},{\"text\":\"Неофициально поддерживаемые устройства\",\"link\":\"/ru_RU/guide/unofficially-support-devices.md\"},{\"text\":\"Руководство по разработке модулей\",\"link\":\"/ru_RU/guide/module.md\"},{\"text\":\"Профиль приложений\",\"link\":\"/ru_RU/guide/app-profile.md\"},{\"text\":\"Выход из циклической загрузки\",\"link\":\"/ru_RU/guide/rescue-from-bootloop.md\"},{\"text\":\"FAQ\",\"link\":\"/ru_RU/guide/faq\"},{\"text\":\"Скрытые возможности\",\"link\":\"/ru_RU/guide/hidden-features\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"footer\":{\"message\":\"Выпускается под лицензией GPL3.\",\"copyright\":\"Авторские права © 2022-текущее Разработчики KernelSU\"},\"editLink\":{\"pattern\":\"https://github.com/tiann/KernelSU/edit/main/website/docs/:path\",\"text\":\"Редактировать эту страницу на GitHub\"}},\"description\":\"Решение на основе ядра root для устройств Android GKI.\"},\"pt_BR\":{\"label\":\"Português (Brasil)\",\"lang\":\"pt-BR\",\"themeConfig\":{\"nav\":[{\"text\":\"Guia\",\"link\":\"/pt_BR/guide/what-is-kernelsu\"},{\"text\":\"Github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"lastUpdatedText\":\"Última atualização\",\"sidebar\":{\"/pt_BR/guide/\":[{\"text\":\"Guia\",\"items\":[{\"text\":\"O que é KernelSU?\",\"link\":\"/pt_BR/guide/what-is-kernelsu\"},{\"text\":\"Instalação\",\"link\":\"/pt_BR/guide/installation\"},{\"text\":\"Como construir?\",\"link\":\"/pt_BR/guide/how-to-build\"},{\"text\":\"Integração para dispositivos não GKI\",\"link\":\"/pt_BR/guide/how-to-integrate-for-non-gki\"},{\"text\":\"Dispositivos com suporte não oficial\",\"link\":\"/pt_BR/guide/unofficially-support-devices.md\"},{\"text\":\"Guias de módulo\",\"link\":\"/pt_BR/guide/module.md\"},{\"text\":\"Perfil do Aplicativo\",\"link\":\"/pt_BR/guide/app-profile.md\"},{\"text\":\"Resgate do bootloop\",\"link\":\"/pt_BR/guide/rescue-from-bootloop.md\"},{\"text\":\"FAQ\",\"link\":\"/pt_BR/guide/faq\"},{\"text\":\"Recursos ocultos\",\"link\":\"/pt_BR/guide/hidden-features\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/tiann/KernelSU\"}],\"footer\":{\"message\":\"Lançado sob a Licença GPL3.\",\"copyright\":\"Copyright © Desenvolvedores KernelSU atuais de 2022\"},\"editLink\":{\"pattern\":\"https://github.com/tiann/KernelSU/edit/main/website/docs/:path\",\"text\":\"Edite esta página no GitHub\"}},\"description\":\"Uma solução root baseada em kernel para dispositivos Android GKI.\"}},\"scrollOffset\":90,\"cleanUrls\":false}")</script>
|
||
|
||
</body>
|
||
</html> |