Files
KernelSU/assets/pt_BR_guide_how-to-build.md.df81a6ce.js
2023-11-13 03:46:43 +00:00

8 lines
12 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{_ as s,o,c as a,Q as n}from"./chunks/framework.ec8f7e8e.js";const h=JSON.parse('{"title":"Como construir o KernelSU?","description":"","frontmatter":{},"headers":[],"relativePath":"pt_BR/guide/how-to-build.md","filePath":"pt_BR/guide/how-to-build.md"}'),e={name:"pt_BR/guide/how-to-build.md"},l=n(`<h1 id="como-construir-o-kernelsu" tabindex="-1">Como construir o KernelSU? <a class="header-anchor" href="#como-construir-o-kernelsu" aria-label="Permalink to &quot;Como construir o KernelSU?&quot;"></a></h1><p>Primeiro, você deve ler a documentação oficial do Android para construção do kernel:</p><ol><li><a href="https://source.android.com/docs/setup/build/building-kernels" target="_blank" rel="noreferrer">Como criar kernels</a></li><li><a href="https://source.android.com/docs/core/architecture/kernel/gki-release-builds" target="_blank" rel="noreferrer">Builds de versão de imagem genérica do kernel (GKI)</a></li></ol><div class="warning custom-block"><p class="custom-block-title">AVISO</p><p>Esta página é para dispositivos GKI, se você usa um kernel antigo, consulte <a href="./how-to-integrate-for-non-gki.html">Como integrar o KernelSU para kernels não GKI</a>.</p></div><h2 id="construir-o-kernel" tabindex="-1">Construir o kernel <a class="header-anchor" href="#construir-o-kernel" aria-label="Permalink to &quot;Construir o kernel&quot;"></a></h2><h3 id="sincronize-o-codigo-fonte-do-kernel" tabindex="-1">Sincronize o código-fonte do kernel <a class="header-anchor" href="#sincronize-o-codigo-fonte-do-kernel" aria-label="Permalink to &quot;Sincronize o código-fonte do kernel&quot;"></a></h3><div class="language-sh vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki github-dark vp-code-dark"><code><span class="line"><span style="color:#B392F0;">repo</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">init</span><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">-u</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">https://android.googlesource.com/kernel/manifest</span></span>
<span class="line"><span style="color:#B392F0;">mv</span><span style="color:#E1E4E8;"> </span><span style="color:#F97583;">&lt;</span><span style="color:#9ECBFF;">kernel_manifest.xm</span><span style="color:#E1E4E8;">l</span><span style="color:#F97583;">&gt;</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">.repo/manifests</span></span>
<span class="line"><span style="color:#B392F0;">repo</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">init</span><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">-m</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">manifest.xml</span></span>
<span class="line"><span style="color:#B392F0;">repo</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">sync</span></span></code></pre><pre class="shiki github-light vp-code-light"><code><span class="line"><span style="color:#6F42C1;">repo</span><span style="color:#24292E;"> </span><span style="color:#032F62;">init</span><span style="color:#24292E;"> </span><span style="color:#005CC5;">-u</span><span style="color:#24292E;"> </span><span style="color:#032F62;">https://android.googlesource.com/kernel/manifest</span></span>
<span class="line"><span style="color:#6F42C1;">mv</span><span style="color:#24292E;"> </span><span style="color:#D73A49;">&lt;</span><span style="color:#032F62;">kernel_manifest.xm</span><span style="color:#24292E;">l</span><span style="color:#D73A49;">&gt;</span><span style="color:#24292E;"> </span><span style="color:#032F62;">.repo/manifests</span></span>
<span class="line"><span style="color:#6F42C1;">repo</span><span style="color:#24292E;"> </span><span style="color:#032F62;">init</span><span style="color:#24292E;"> </span><span style="color:#005CC5;">-m</span><span style="color:#24292E;"> </span><span style="color:#032F62;">manifest.xml</span></span>
<span class="line"><span style="color:#6F42C1;">repo</span><span style="color:#24292E;"> </span><span style="color:#032F62;">sync</span></span></code></pre></div><p>O <code>&lt;kernel_manifest.xml&gt;</code> é um arquivo de manifesto que pode determinar uma construção exclusivamente, você pode usar o manifesto para fazer uma construção re-preduzível. Você deve baixar o arquivo de manifesto em <a href="https://source.android.com/docs/core/architecture/kernel/gki-release-builds" target="_blank" rel="noreferrer">compilações de lançamento do Google GKI</a>.</p><h3 id="construir" tabindex="-1">Construir <a class="header-anchor" href="#construir" aria-label="Permalink to &quot;Construir&quot;"></a></h3><p>Por favor, verifique <a href="https://source.android.com/docs/setup/build/building-kernels" target="_blank" rel="noreferrer">Como criar kernels</a> primeiro.</p><p>Por exemplo, precisamos construir a imagem do kernel <code>aarch64</code>:</p><div class="language-sh vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki github-dark vp-code-dark"><code><span class="line"><span style="color:#E1E4E8;">LTO</span><span style="color:#F97583;">=</span><span style="color:#9ECBFF;">thin</span><span style="color:#E1E4E8;"> BUILD_CONFIG</span><span style="color:#F97583;">=</span><span style="color:#9ECBFF;">common/build.config.gki.aarch64</span><span style="color:#E1E4E8;"> </span><span style="color:#B392F0;">build/build.sh</span></span></code></pre><pre class="shiki github-light vp-code-light"><code><span class="line"><span style="color:#24292E;">LTO</span><span style="color:#D73A49;">=</span><span style="color:#032F62;">thin</span><span style="color:#24292E;"> BUILD_CONFIG</span><span style="color:#D73A49;">=</span><span style="color:#032F62;">common/build.config.gki.aarch64</span><span style="color:#24292E;"> </span><span style="color:#6F42C1;">build/build.sh</span></span></code></pre></div><p>Não se esqueça de adicionar o sinalizador <code>LTO=thin</code>, caso contrário a compilação poderá falhar se a memória do seu computador for inferior a 24 GB.</p><p>A partir do Android 13, o kernel é construído pelo <code>bazel</code>:</p><div class="language-sh vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki github-dark vp-code-dark"><code><span class="line"><span style="color:#B392F0;">tools/bazel</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">build</span><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">--config=fast</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">//common:kernel_aarch64_dist</span></span></code></pre><pre class="shiki github-light vp-code-light"><code><span class="line"><span style="color:#6F42C1;">tools/bazel</span><span style="color:#24292E;"> </span><span style="color:#032F62;">build</span><span style="color:#24292E;"> </span><span style="color:#005CC5;">--config=fast</span><span style="color:#24292E;"> </span><span style="color:#032F62;">//common:kernel_aarch64_dist</span></span></code></pre></div><h2 id="construir-o-kernel-com-kernelsu" tabindex="-1">Construir o kernel com KernelSU <a class="header-anchor" href="#construir-o-kernel-com-kernelsu" aria-label="Permalink to &quot;Construir o kernel com KernelSU&quot;"></a></h2><p>Se você conseguir construir o kernel com sucesso, então construir o KernelSU é muito fácil. Selecione qualquer um executado no diretório raiz de origem do kernel:</p><ul><li>Tag mais recente (estável)</li></ul><div class="language-sh vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki github-dark vp-code-dark"><code><span class="line"><span style="color:#B392F0;">curl</span><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">-LSs</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">&quot;https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh&quot;</span><span style="color:#E1E4E8;"> </span><span style="color:#F97583;">|</span><span style="color:#E1E4E8;"> </span><span style="color:#B392F0;">bash</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">-</span></span></code></pre><pre class="shiki github-light vp-code-light"><code><span class="line"><span style="color:#6F42C1;">curl</span><span style="color:#24292E;"> </span><span style="color:#005CC5;">-LSs</span><span style="color:#24292E;"> </span><span style="color:#032F62;">&quot;https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh&quot;</span><span style="color:#24292E;"> </span><span style="color:#D73A49;">|</span><span style="color:#24292E;"> </span><span style="color:#6F42C1;">bash</span><span style="color:#24292E;"> </span><span style="color:#032F62;">-</span></span></code></pre></div><ul><li>branch principal (dev)</li></ul><div class="language-sh vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki github-dark vp-code-dark"><code><span class="line"><span style="color:#B392F0;">curl</span><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">-LSs</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">&quot;https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh&quot;</span><span style="color:#E1E4E8;"> </span><span style="color:#F97583;">|</span><span style="color:#E1E4E8;"> </span><span style="color:#B392F0;">bash</span><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">-s</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">main</span></span></code></pre><pre class="shiki github-light vp-code-light"><code><span class="line"><span style="color:#6F42C1;">curl</span><span style="color:#24292E;"> </span><span style="color:#005CC5;">-LSs</span><span style="color:#24292E;"> </span><span style="color:#032F62;">&quot;https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh&quot;</span><span style="color:#24292E;"> </span><span style="color:#D73A49;">|</span><span style="color:#24292E;"> </span><span style="color:#6F42C1;">bash</span><span style="color:#24292E;"> </span><span style="color:#005CC5;">-s</span><span style="color:#24292E;"> </span><span style="color:#032F62;">main</span></span></code></pre></div><ul><li>Selecione a tag (Como v0.5.2)</li></ul><div class="language-sh vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki github-dark vp-code-dark"><code><span class="line"><span style="color:#B392F0;">curl</span><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">-LSs</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">&quot;https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh&quot;</span><span style="color:#E1E4E8;"> </span><span style="color:#F97583;">|</span><span style="color:#E1E4E8;"> </span><span style="color:#B392F0;">bash</span><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">-s</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">v0.5.2</span></span></code></pre><pre class="shiki github-light vp-code-light"><code><span class="line"><span style="color:#6F42C1;">curl</span><span style="color:#24292E;"> </span><span style="color:#005CC5;">-LSs</span><span style="color:#24292E;"> </span><span style="color:#032F62;">&quot;https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh&quot;</span><span style="color:#24292E;"> </span><span style="color:#D73A49;">|</span><span style="color:#24292E;"> </span><span style="color:#6F42C1;">bash</span><span style="color:#24292E;"> </span><span style="color:#005CC5;">-s</span><span style="color:#24292E;"> </span><span style="color:#032F62;">v0.5.2</span></span></code></pre></div><p>E então reconstrua o kernel e você obterá uma imagem do kernel com KernelSU!</p>`,24),p=[l];function r(t,c,i,d,u,y){return o(),a("div",null,p)}const m=s(e,[["render",r]]);export{h as __pageData,m as default};