You've already forked KernelSU
mirror of
https://github.com/tiann/KernelSU.git
synced 2025-08-27 23:46:34 +00:00
107 lines
66 KiB
HTML
107 lines
66 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="pt-BR" dir="ltr">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>Guias de módulo | KernelSU</title>
|
||
<meta name="description" content="Uma solução root baseada em kernel para dispositivos Android GKI.">
|
||
<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/pt_BR_guide_module.md.3c459c0f.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="/pt_BR/" 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="/pt_BR/guide/what-is-kernelsu.html" tabindex="0" data-v-7f418b0f data-v-37adc828 data-v-8f4dc553><!--[-->Guia<!--]--><!----></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>Português (Brasil)</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="/zh_TW/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><!--]--><!--]--></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>Português (Brasil)</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="/zh_TW/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><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>Guia</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="/pt_BR/guide/what-is-kernelsu.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>O que é 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="/pt_BR/guide/installation.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Instalação</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="/pt_BR/guide/how-to-build.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Como construir?</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="/pt_BR/guide/how-to-integrate-for-non-gki.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Integração para dispositivos não GKI</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="/pt_BR/guide/unofficially-support-devices.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Dispositivos com suporte não oficial</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="/pt_BR/guide/module.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Guias de módulo</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="/pt_BR/guide/app-profile.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Perfil do Aplicativo</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="/pt_BR/guide/rescue-from-bootloop.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Resgate do bootloop</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="/pt_BR/guide/faq.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>FAQ</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="/pt_BR/guide/hidden-features.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Recursos ocultos</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 _pt_BR_guide_module" data-v-c4b0d3cf><div><h1 id="guias-de-modulo" tabindex="-1">Guias de módulo <a class="header-anchor" href="#guias-de-modulo" aria-label="Permalink to "Guias de módulo""></a></h1><p>O KernelSU fornece um mecanismo de módulo que consegue modificar o diretório do sistema enquanto mantém a integridade da partição do sistema. Este mecanismo é conhecido como "sem sistema".</p><p>O mecanismo de módulo do KernelSU é quase o mesmo do Magisk. Se você está familiarizado com o desenvolvimento de módulos Magisk, o desenvolvimento de módulos KernelSU é muito semelhante. Você pode pular a introdução dos módulos abaixo e só precisa ler <a href="./difference-with-magisk.html">Diferença com Magisk</a>.</p><h2 id="busybox" tabindex="-1">BusyBox <a class="header-anchor" href="#busybox" aria-label="Permalink to "BusyBox""></a></h2><p>O KernelSU vem com um recurso binário BusyBox completo (incluindo suporte completo ao SELinux). O executável está localizado em <code>/data/adb/ksu/bin/busybox</code>. O BusyBox do KernelSU suporta o "ASH Standalone Shell Mode" alternável em tempo de execução. O que este Modo Autônomo significa é que ao executar no shell <code>ash</code> do BusyBox, cada comando usará diretamente o miniaplicativo dentro do BusyBox, independentemente do que estiver definido como <code>PATH</code>. Por exemplo, comandos como <code>ls</code>, <code>rm</code>, <code>chmod</code> <strong>NÃO</strong> usarão o que está em <code>PATH</code> (no caso do Android por padrão será <code>/system/bin/ls</code>, <code>/system/bin/rm</code> e <code>/system/bin/chmod</code> respectivamente), mas em vez disso chamará diretamente os miniaplicativos internos do BusyBox. Isso garante que os scripts sempre sejam executados em um ambiente previsível e sempre tenham o conjunto completo de comandos, independentemente da versão do Android em que estão sendo executados. Para forçar um comando a <strong>NÃO</strong> usar o BusyBox, você deve chamar o executável com caminhos completos.</p><p>Cada script shell executado no contexto do KernelSU será executado no shell <code>ash</code> do BusyBox com o Modo Autônomo ativado. Para o que é relevante para desenvolvedores terceirizados, isso inclui todos os scripts de inicialização e scripts de instalação de módulos.</p><p>Para aqueles que desejam usar o recurso “Modo Autônomo” fora do KernelSU, existem 2 maneiras de ativá-los:</p><ol><li>Defina a variável de ambiente <code>ASH_STANDALONE</code> como <code>1</code><br>Exemplo: <code>ASH_STANDALONE=1 /data/adb/ksu/bin/busybox sh <script></code></li><li>Alternar com opções de linha de comando:<br><code>/data/adb/ksu/bin/busybox sh -o standalone <script></code></li></ol><p>Para garantir que todos os shells <code>sh</code> subsequentes executados também sejam executados no Modo Autônomo, a opção 1 é o método preferido (e é isso que o KernelSU e o gerenciador KernelSU usam internamente), pois as variáveis de ambiente são herdadas para os subprocesso.</p><div class="tip custom-block"><p class="custom-block-title">DIFERENÇA COM MAGISK</p><p>O BusyBox do KernelSU agora está usando o arquivo binário compilado diretamente do projeto Magisk. <strong>Obrigado ao Magisk!</strong> Portanto, você não precisa se preocupar com problemas de compatibilidade entre scripts BusyBox no Magisk e KernelSU porque eles são exatamente iguais!</p></div><h2 id="modulos-kernelsu" tabindex="-1">Módulos KernelSU <a class="header-anchor" href="#modulos-kernelsu" aria-label="Permalink to "Módulos KernelSU""></a></h2><p>Um módulo KernelSU é uma pasta colocada em <code>/data/adb/modules</code> com a estrutura abaixo:</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 <--- A pasta é nomeada com o ID do módulo</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │ *** Identidade do Módulo ***</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── module.prop <--- Este arquivo armazena os metadados do módulo</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │ *** Conteúdo Principal ***</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── system <--- Esta pasta será montada se skip_mount não existir</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;">│ │ *** Sinalizadores de Status ***</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── skip_mount <--- Se existir, o KernelSU NÃO montará sua pasta de sistema</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── disable <--- Se existir, o módulo será desabilitado</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── remove <--- Se existir, o módulo será removido na próxima reinicialização</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │ *** Arquivos Opcionais ***</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── post-fs-data.sh <--- Este script será executado em post-fs-data</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── post-mount.sh <--- Este script será executado em post-mount</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── service.sh <--- Este script será executado no late_start service</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── boot-completed.sh <--- Este script será executado na inicialização concluída</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">| ├── uninstall.sh <--- Este script será executado quando o KernelSU remover seu módulo</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── system.prop <--- As propriedades neste arquivo serão carregadas como propriedades do sistema por resetprop</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── sepolicy.rule <--- Regras adicionais de sepolicy personalizadas</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │ *** Gerado Automaticamente, NÃO CRIE OU MODIFIQUE MANUALMENTE ***</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── vendor <--- Um link simbólico para $MODID/system/vendor</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── product <--- Um link simbólico para $MODID/system/product</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ ├── system_ext <--- Um link simbólico para $MODID/system/system_ext</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ │ *** Quaisquer arquivos/pastas adicionais são permitidos ***</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">DIFERENÇA COM MAGISK</p><p>O KernelSU não possui suporte integrado para o Zygisk, portanto não há conteúdo relacionado ao Zygisk no módulo. No entanto, você pode usar <a href="https://github.com/Dr-TSNG/ZygiskOnKernelSU" target="_blank" rel="noreferrer">ZygiskOnKernelSU</a> para suportar módulos Zygisk. Neste caso, o conteúdo do módulo Zygisk é idêntico ao suportado pelo Magisk.</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><code>module.prop</code> é um arquivo de configuração para um módulo. No KernelSU, se um módulo não contiver este arquivo, ele não será reconhecido como um módulo. O formato deste arquivo é o seguinte:</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><code>id</code> deve corresponder a esta expressão regular: <code>^[a-zA-Z][a-zA-Z0-9._-]+$</code><br> Exemplo: ✓ <code>a_module</code>, ✓ <code>a.module</code>, ✓ <code>module-101</code>, ✗ <code>a module</code>, ✗ <code>1_module</code>, ✗ <code>-a-module</code><br> Este é o <strong>identificador exclusivo</strong> do seu módulo. Você não deve alterá-lo depois de publicado.</li><li><code>versionCode</code> deve ser um <strong>inteiro</strong>. Isso é usado para comparar versões</li><li>Outros que não foram mencionados acima podem ser qualquer string de <strong>linha única</strong>.</li><li>Certifique-se de usar o tipo de quebra de linha <code>UNIX (LF)</code> e não o <code>Windows (CR+LF)</code> ou <code>Macintosh (CR)</code>.</li></ul><h3 id="shell-scripts" tabindex="-1">Shell scripts <a class="header-anchor" href="#shell-scripts" aria-label="Permalink to "Shell scripts""></a></h3><p>Por favor, leia a seção <a href="#scripts-de-inicializacao">Scripts de inicialização</a> para entender a diferença entre <code>post-fs-data.sh</code> e <code>service.sh</code>. Para a maioria dos desenvolvedores de módulos, <code>service.sh</code> deve ser bom o suficiente se você precisar apenas executar um script de inicialização. Se precisar executar o script após a inicialização ser concluída, use <code>boot-completed.sh</code>. Se você quiser fazer algo após montar overlayfs, use <code>post-mount.sh</code>.</p><p>Em todos os scripts do seu módulo, use <code>MODDIR=${0%/*}</code> para obter o caminho do diretório base do seu módulo, <strong>NÃO</strong> codifique o caminho do seu módulo em scripts.</p><div class="tip custom-block"><p class="custom-block-title">DIFERENÇA COM MAGISK</p><p>Você pode usar a variável de ambiente <code>KSU</code> para determinar se um script está sendo executado no KernelSU ou Magisk. Se estiver executando no KernelSU, esse valor será definido como <code>true</code>.</p></div><h3 id="diretorio-system" tabindex="-1">Diretório <code>system</code> <a class="header-anchor" href="#diretorio-system" aria-label="Permalink to "Diretório `system`""></a></h3><p>O conteúdo deste diretório será sobreposto à partição /system do sistema usando overlayfs após a inicialização do sistema. Isso significa que:</p><ol><li>Arquivos com o mesmo nome daqueles no diretório correspondente no sistema serão substituídos pelos arquivos deste diretório.</li><li>Pastas com o mesmo nome daquelas no diretório correspondente no sistema serão mescladas com as pastas neste diretório.</li></ol><p>Se você deseja excluir um arquivo ou pasta no diretório original do sistema, você precisa criar um arquivo com o mesmo nome do arquivo/pasta no diretório do módulo usando <code>mknod filename c 0 0</code>. Dessa forma, o sistema overlayfs irá automaticamente "branquear" este arquivo como se ele tivesse sido excluído (a partição /system não foi realmente alterada).</p><p>Você também pode declarar uma variável chamada <code>REMOVE</code> contendo uma lista de diretórios em <code>customize.sh</code> para executar operações de remoção, e o KernelSU executará automaticamente <code>mknod <TARGET> c 0 0</code> nos diretórios correspondentes do módulo. Por exemplo:</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>A lista acima irá executar <code>mknod $MODPATH/system/app/YouTube c 0 0</code> e <code>mknod $MODPATH/system/app/Bloatware c 0 0</code>; e <code>/system/app/YouTube</code> e <code>/system/app/Bloatware</code> serão removidos após o módulo entrar em vigor.</p><p>Se você deseja substituir um diretório no sistema, você precisa criar um diretório com o mesmo caminho no diretório do módulo e, em seguida, definir o atributo <code>setfattr -n trusted.overlay.opaque -v y <TARGET></code> para este diretório. Desta forma, o sistema overlayfs substituirá automaticamente o diretório correspondente no sistema (sem alterar a partição /system).</p><p>Você pode declarar uma variável chamada <code>REPLACE</code> em seu arquivo <code>customize.sh</code>, que inclui uma lista de diretórios a serem substituídos, e o KernelSU executará automaticamente as operações correspondentes em seu diretório de módulo. Por exemplo:</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>Esta lista criará automaticamente os diretórios <code>$MODPATH/system/app/YouTube</code> e <code>$MODPATH/system/app/Bloatware</code> e, em seguida, executará <code>setfattr -n trusted.overlay.opaque -v y $MODPATH/system/app/YouTube</code> e <code>setfattr -n trusted.overlay.opaque -v y $MODPATH/system/app/Bloatware</code>. Após o módulo entrar em vigor, <code>/system/app/YouTube</code> e <code>/system/app/Bloatware</code> serão substituídos por diretórios vazios.</p><div class="tip custom-block"><p class="custom-block-title">DIFERENÇA COM MAGISK</p><p>O mecanismo sem sistema do KernelSU é implementado através do overlayfs do kernel, enquanto o Magisk atualmente usa montagem mágica (montagem de ligação). Os dois métodos de implementação têm diferenças significativas, mas o objetivo final é o mesmo: modificar os arquivos /system sem modificar fisicamente a partição /system.</p></div><p>Se você estiver interessado em overlayfs, é recomendável ler a <a href="https://docs.kernel.org/filesystems/overlayfs.html" target="_blank" rel="noreferrer">documentação sobre overlayfs</a> do Kernel Linux.</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>Este arquivo segue o mesmo formato de <code>build.prop</code>. Cada linha é composta por <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>Se o seu módulo exigir alguns patches adicionais de sepolicy, adicione essas regras a este arquivo. Cada linha neste arquivo será tratada como uma declaração de política.</p><h2 id="instalador-do-modulo" tabindex="-1">Instalador do módulo <a class="header-anchor" href="#instalador-do-modulo" aria-label="Permalink to "Instalador do módulo""></a></h2><p>Um instalador do módulo KernelSU é um módulo KernelSU empacotado em um arquivo zip que pode ser atualizado no app gerenciador KernelSU. O instalador do módulo KernelSU mais simples é apenas um módulo KernelSU compactado como um arquivo 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 <--- (Opcional, mais detalhes posteriormente)</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│ Este script será fornecido por update-binary</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">├── ...</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">├── ... /* O resto dos arquivos do módulo */</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">│</span></span></code></pre></div><div class="warning custom-block"><p class="custom-block-title">AVISO</p><p>O módulo KernelSU <strong>NÃO</strong> é compatível para instalação no Recovery personalizado!</p></div><h3 id="personalizacao" tabindex="-1">Personalização <a class="header-anchor" href="#personalizacao" aria-label="Permalink to "Personalização""></a></h3><p>Se você precisar personalizar o processo de instalação do módulo, opcionalmente você pode criar um script no instalador chamado <code>customize.sh</code>. Este script será <strong>sourced</strong> (não executado!) pelo script do instalador do módulo depois que todos os arquivos forem extraídos e as permissões padrão e o contexto secundário forem aplicados. Isso é muito útil se o seu módulo exigir configuração adicional com base na API do dispositivo ou se você precisar definir permissões/secontext especiais para alguns dos arquivos do seu módulo.</p><p>Se você quiser controlar e personalizar totalmente o processo de instalação, declare <code>SKIPUNZIP=1</code> em <code>customize.sh</code> para pular todas as etapas de instalação padrão. Ao fazer isso, seu <code>customize.sh</code> será responsável por instalar tudo sozinho.</p><p>O script <code>customize.sh</code> é executado no shell BusyBox <code>ash</code> do KernelSU com o "Modo Autônomo" ativado. As seguintes variáveis e funções estão disponíveis:</p><h4 id="variaveis" tabindex="-1">Variáveis <a class="header-anchor" href="#variaveis" aria-label="Permalink to "Variáveis""></a></h4><ul><li><code>KSU</code> (bool): uma variável para marcar que o script está sendo executado no ambiente KernelSU, e o valor desta variável sempre será <code>true</code>. Você pode usá-lo para distinguir entre KernelSU e Magisk.</li><li><code>KSU_VER</code> (string): a string da versão do KernelSU atualmente instalado (por exemplo, <code>v0.4.0</code>).</li><li><code>KSU_VER_CODE</code> (int): o código da versão do KernelSU atualmente instalado no espaço do usuário (por exemplo: <code>10672</code>).</li><li><code>KSU_KERNEL_VER_CODE</code> (int): o código da versão do KernelSU atualmente instalado no espaço do kernel (por exemplo: <code>10672</code>).</li><li><code>BOOTMODE</code> (bool): sempre seja <code>true</code> no KernelSU.</li><li><code>MODPATH</code> (path): o caminho onde os arquivos do seu módulo devem ser instalados.</li><li><code>TMPDIR</code> (path): um lugar onde você pode armazenar arquivos temporariamente.</li><li><code>ZIPFILE</code> (path): zip de instalação do seu módulo.</li><li><code>ARCH</code> (string): a arquitetura da CPU do dispositivo. O valor é <code>arm</code>, <code>arm64</code>, <code>x86</code> ou <code>x64</code>.</li><li><code>IS64BIT</code> (bool): <code>true</code> se <code>$ARCH</code> for <code>arm64</code> ou <code>x64</code>.</li><li><code>API</code> (int): o nível da API (versão do Android) do dispositivo (por exemplo: <code>23</code> para Android 6.0).</li></ul><div class="warning custom-block"><p class="custom-block-title">AVISO</p><p>No KernelSU, <code>MAGISK_VER_CODE</code> é sempre <code>25200</code> e <code>MAGISK_VER</code> é sempre <code>v25.2</code>. Por favor, não use essas duas variáveis para determinar se ele está sendo executado no KernelSU ou não.</p></div><h4 id="funcoes" tabindex="-1">Funções <a class="header-anchor" href="#funcoes" aria-label="Permalink to "Funções""></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;"> imprima <msg> no console</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> Evite usar 'echo', pois ele não será exibido no console de recuperação personalizado</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;"> imprima mensagem de erro <msg> para consolar e encerrar a instalação</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> Evite usar 'exit', pois isso irá pular as etapas de limpeza de encerramento</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;"> se [context] não estiver definido, o padrão é "u:object_r:system_file:s0"</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> esta função é uma abreviação para os seguintes comandos:</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;"> se [context] não está definido, o padrão é "u:object_r:system_file:s0"</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> para todos os arquivos em <directory>, ele chamará:</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> contexto de permissão de arquivo do grupo proprietário do arquivo set_perm</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> para todos os diretórios em <directory> (including itself), ele vai ligar:</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;"> set_perm dir owner group dirpermission context</span></span></code></pre></div><h2 id="scripts-de-inicializacao" tabindex="-1">Scripts de inicialização <a class="header-anchor" href="#scripts-de-inicializacao" aria-label="Permalink to "Scripts de inicialização""></a></h2><p>No KernelSU, os scripts são divididos em dois tipos com base em seu modo de execução: modo post-fs-data e modo de serviço late_start:</p><ul><li>modo post-fs-data <ul><li>Esta etapa está BLOQUEANDO. O processo de inicialização é pausado antes da execução ser concluída ou 10 segundos se passaram.</li><li>Os scripts são executados antes de qualquer módulo ser montado. Isso permite que um desenvolvedor de módulo ajuste dinamicamente seus módulos antes de serem montados.</li><li>Este estágio acontece antes do início do Zygote, o que significa praticamente tudo no Android.</li><li><strong>AVISO:</strong> Usar <code>setprop</code> irá bloquear o processo de inicialização! Por favor, use <code>resetprop -n <prop_name> <prop_value></code> em vez disso.</li><li><strong>Execute scripts neste modo apenas se necessário.</strong></li></ul></li><li>modo de serviço late_start <ul><li>Esta etapa é SEM BLOQUEIO. Seu script é executado em paralelo com o restante do processo de inicialização.</li><li><strong>Este é o estágio recomendado para executar a maioria dos scripts</strong>.</li></ul></li></ul><p>No KernelSU, os scripts de inicialização são divididos em dois tipos com base no local de armazenamento: scripts gerais e scripts de módulo:</p><ul><li>Scripts gerais <ul><li>Colocado em <code>/data/adb/post-fs-data.d</code>, <code>/data/adb/service.d</code>, <code>/data/adb/post-mount.d</code> ou <code>/data/adb/boot-completed.d</code>.</li><li>Somente executado se o script estiver definido como executável (<code>chmod +x script.sh</code>).</li><li>Os scripts em <code>post-fs-data.d</code> são executados no modo post-fs-data e os scripts em <code>service.d</code> são executados no modo de serviço late_start.</li><li>Os módulos <strong>NÃO</strong> devem adicionar scripts gerais durante a instalação.</li></ul></li><li>Scripts de módulo <ul><li>Colocado na própria pasta do módulo.</li><li>Executado apenas se o módulo estiver ativado.</li><li><code>post-fs-data.sh</code> é executado no modo post-fs-data, <code>service.sh</code> é executado no modo de serviço late_start, <code>boot-completed.sh</code> é executado na inicialização concluída e <code>post-mount.sh</code> é executado em overlayfs montado.</li></ul></li></ul><p>Todos os scripts de inicialização serão executados no shell BusyBox <code>ash</code> do KernelSU com o "Modo Autônomo" ativado.</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/pt_BR/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> Edite esta página no GitHub<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><a class="pager-link prev" href="/pt_BR/guide/unofficially-support-devices.html" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>Dispositivos com suporte não oficial</span></a></div><div class="has-prev pager" data-v-face870a><a class="pager-link next" href="/pt_BR/guide/app-profile.html" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>Perfil do Aplicativo</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>Lançado sob a Licença GPL3.</p><p class="copyright" data-v-2f86ebd2>Copyright © Desenvolvedores KernelSU atuais de 2022</p></div></footer><!--[--><!--]--></div></div>
|
||
<script>__VP_HASH_MAP__ = JSON.parse("{\"ru_ru_guide_how-to-integrate-for-non-gki.md\":\"7c70c478\",\"ru_ru_guide_faq.md\":\"6785049e\",\"ru_ru_guide_hidden-features.md\":\"395803e0\",\"ru_ru_guide_how-to-build.md\":\"1b3dd3fb\",\"zh_tw_guide_how-to-build.md\":\"ef330d07\",\"zh_cn_guide_how-to-build.md\":\"f4f2a6dd\",\"zh_cn_guide_installation.md\":\"612797b7\",\"zh_cn_guide_app-profile.md\":\"557e9b58\",\"guide_hidden-features.md\":\"45e791e6\",\"pt_br_guide_faq.md\":\"bfc97031\",\"pt_br_guide_hidden-features.md\":\"df3f1d4b\",\"pt_br_guide_how-to-build.md\":\"50a0b380\",\"pt_br_guide_how-to-integrate-for-non-gki.md\":\"9373963e\",\"guide_app-profile.md\":\"9faae288\",\"pt_br_guide_installation.md\":\"8193d15a\",\"pt_br_guide_module.md\":\"3c459c0f\",\"pt_br_guide_rescue-from-bootloop.md\":\"f4a13bcd\",\"pt_br_guide_unofficially-support-devices.md\":\"b158b182\",\"pt_br_guide_what-is-kernelsu.md\":\"b42bbc04\",\"pt_br_index.md\":\"a1524471\",\"ru_ru_guide_difference-with-magisk.md\":\"d39f4b2d\",\"ru_ru_guide_installation.md\":\"bd641868\",\"ru_ru_guide_module.md\":\"015ebdb2\",\"ru_ru_guide_unofficially-support-devices.md\":\"7727bdaf\",\"ru_ru_guide_what-is-kernelsu.md\":\"b17b08a8\",\"ru_ru_index.md\":\"4f8b1975\",\"vi_vn_guide_app-profile.md\":\"37d09526\",\"vi_vn_guide_difference-with-magisk.md\":\"16f29788\",\"vi_vn_guide_faq.md\":\"ef1e0e86\",\"vi_vn_guide_hidden-features.md\":\"fca4632f\",\"vi_vn_guide_how-to-build.md\":\"f5e5323c\",\"vi_vn_guide_how-to-integrate-for-non-gki.md\":\"9b3f1403\",\"vi_vn_guide_installation.md\":\"7fef5e5e\",\"vi_vn_guide_module.md\":\"a6a2e6fc\",\"vi_vn_guide_rescue-from-bootloop.md\":\"d796809c\",\"vi_vn_guide_unofficially-support-devices.md\":\"99ebdd84\",\"zh_cn_guide_difference-with-magisk.md\":\"401c4c2d\",\"zh_cn_guide_faq.md\":\"0939b2cb\",\"zh_cn_guide_hidden-features.md\":\"cdd5624f\",\"zh_cn_guide_module.md\":\"66de1042\",\"ru_ru_guide_rescue-from-bootloop.md\":\"d9d6936e\",\"guide_faq.md\":\"4a5fa376\",\"vi_vn_index.md\":\"a84edf49\",\"guide_rescue-from-bootloop.md\":\"86b40f3b\",\"guide_unofficially-support-devices.md\":\"c3cb02f4\",\"guide_what-is-kernelsu.md\":\"340bbd63\",\"id_id_guide_difference-with-magisk.md\":\"0aaca6ef\",\"id_id_guide_faq.md\":\"8fe1170a\",\"id_id_guide_how-to-build.md\":\"1ecedb69\",\"id_id_guide_how-to-integrate-for-non-gki.md\":\"16b9216a\",\"id_id_guide_installation.md\":\"a7bb551d\",\"id_id_guide_module.md\":\"372def27\",\"id_id_guide_rescue-from-bootloop.md\":\"ec3ef7ee\",\"id_id_guide_what-is-kernelsu.md\":\"aee47f37\",\"id_id_index.md\":\"9ad2e601\",\"index.md\":\"042b4c20\",\"ja_jp_guide_difference-with-magisk.md\":\"150a386f\",\"ja_jp_guide_faq.md\":\"94dc4bed\",\"ja_jp_guide_hidden-features.md\":\"9c5dddb2\",\"ja_jp_guide_installation.md\":\"2cc6f4de\",\"ja_jp_guide_module.md\":\"111a0bd0\",\"guide_how-to-build.md\":\"cf9f2c40\",\"guide_how-to-integrate-for-non-gki.md\":\"35d629c6\",\"guide_installation.md\":\"ec5f3b13\",\"ja_jp_guide_rescue-from-bootloop.md\":\"d26f95c4\",\"ja_jp_guide_unofficially-support-devices.md\":\"a90f34da\",\"guide_module.md\":\"0288d934\",\"ja_jp_index.md\":\"be3c7573\",\"pt_br_guide_app-profile.md\":\"7a2ced3a\",\"zh_cn_guide_rescue-from-bootloop.md\":\"3d907e03\",\"zh_cn_guide_unofficially-support-devices.md\":\"0d455b65\",\"zh_tw_guide_difference-with-magisk.md\":\"4315a5ce\",\"ru_ru_guide_app-profile.md\":\"8936210e\",\"zh_tw_guide_faq.md\":\"c68533d0\",\"zh_tw_guide_hidden-features.md\":\"f0bea9ae\",\"zh_cn_guide_what-is-kernelsu.md\":\"cdc98b69\",\"zh_cn_index.md\":\"7dc4034d\",\"id_id_guide_unofficially-support-devices.md\":\"64de668c\",\"vi_vn_guide_what-is-kernelsu.md\":\"bea8d4b7\",\"ja_jp_guide_what-is-kernelsu.md\":\"779775a2\",\"pt_br_guide_difference-with-magisk.md\":\"92ea83b4\",\"zh_tw_guide_how-to-integrate-for-non-gki.md\":\"e3487c4d\",\"zh_tw_guide_installation.md\":\"0f23d3bf\",\"zh_tw_guide_rescue-from-bootloop.md\":\"db20cf2e\",\"zh_tw_guide_unofficially-support-devices.md\":\"0da0b40b\",\"guide_difference-with-magisk.md\":\"869f5d82\",\"zh_tw_guide_what-is-kernelsu.md\":\"a2ba0439\",\"zh_tw_index.md\":\"896578f0\",\"zh_tw_guide_module.md\":\"c6111b20\",\"zh_cn_guide_how-to-integrate-for-non-gki.md\":\"891eeb81\"}")
|
||
__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> |