You've already forked KernelSU
mirror of
https://github.com/tiann/KernelSU.git
synced 2025-08-27 23:46:34 +00:00
8 lines
12 KiB
JavaScript
8 lines
12 KiB
JavaScript
import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.ec8f7e8e.js";const u=JSON.parse('{"title":"如何构建 KernelSU?","description":"","frontmatter":{},"headers":[],"relativePath":"zh_CN/guide/how-to-build.md","filePath":"zh_CN/guide/how-to-build.md"}'),o={name:"zh_CN/guide/how-to-build.md"},e=l(`<h1 id="如何构建-kernelsu" tabindex="-1">如何构建 KernelSU? <a class="header-anchor" href="#如何构建-kernelsu" aria-label="Permalink to "如何构建 KernelSU?""></a></h1><p>首先,您应该阅读内核构建的 Android 官方文档:</p><ol><li><a href="https://source.android.com/docs/setup/build/building-kernels" target="_blank" rel="noreferrer">构建内核</a></li><li><a href="https://source.android.com/docs/core/architecture/kernel/gki-release-builds" target="_blank" rel="noreferrer">通用内核映像 (GKI) 发布构建</a></li></ol><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>本文档适用于 GKI 设备,如果你是旧内核,请参考<a href="./how-to-integrate-for-non-gki.html">如何为非GKI设备集成 KernelSU</a></p></div><h2 id="构建内核" tabindex="-1">构建内核 <a class="header-anchor" href="#构建内核" aria-label="Permalink to "构建内核""></a></h2><h3 id="同步内核源码" tabindex="-1">同步内核源码 <a class="header-anchor" href="#同步内核源码" aria-label="Permalink to "同步内核源码""></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;"><</span><span style="color:#9ECBFF;">kernel_manifest.xm</span><span style="color:#E1E4E8;">l</span><span style="color:#F97583;">></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;"><</span><span style="color:#032F62;">kernel_manifest.xm</span><span style="color:#24292E;">l</span><span style="color:#D73A49;">></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><code><kernel_manifest.xml></code> 是一个可以唯一确定构建的清单文件,您可以使用该清单进行可重新预测的构建。 您应该从 <a href="https://source.android.com/docs/core/architecture/kernel/gki-release-builds" target="_blank" rel="noreferrer">通用内核映像 (GKI) 发布构建</a> 下载清单文件</p><h3 id="构建" tabindex="-1">构建 <a class="header-anchor" href="#构建" aria-label="Permalink to "构建""></a></h3><p>请先查看 <a href="https://source.android.com/docs/setup/build/building-kernels" target="_blank" rel="noreferrer">官方文档</a>。</p><p>例如,我们需要构建 aarch64 内核镜像:</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>不要忘记添加 <code>LTO=thin</code>, 否则,如果您的计算机内存小于 24GB,构建可能会失败.</p><p>从 Android 13 开始,内核由 <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="使用-kernelsu-构建内核" tabindex="-1">使用 KernelSU 构建内核 <a class="header-anchor" href="#使用-kernelsu-构建内核" aria-label="Permalink to "使用 KernelSU 构建内核""></a></h2><p>如果您可以成功构建内核,那么构建 KernelSU 就很容易,根据自己的需求在内核源代码根目录中运行以下任一命令:</p><ul><li>最新tag(稳定版本)</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;">"https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh"</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;">"https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh"</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>main分支(开发版本)</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;">"https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh"</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;">"https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh"</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>指定tag(比如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;">"https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh"</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;">"https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh"</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>然后重建内核,您将获得带有 KernelSU 的内核映像!</p>`,24),p=[e];function t(r,c,i,y,d,E){return a(),n("div",null,p)}const F=s(o,[["render",t]]);export{u as __pageData,F as default};
|