|
23 | 23 | <link rel="apple-touch-icon" href="/favicon.ico"> |
24 | 24 | <link rel="stylesheet" href="/assets/css/site.css?v=b310d7c992"> |
25 | 25 | <link rel="stylesheet" href="/assets/css/main.css?v=ccd72260b9"> |
26 | | - <script type="application/ld+json">[{"@context": "https://schema.org", "@type": "TechArticle", "headline": "Kernel configuration", "description": "How to compile an Android kernel with Droidspaces support: the config options and patches for non-GKI and GKI kernels.", "url": "https://www.droidspaces.org/docs/kernel-configuration.html", "inLanguage": "en", "dateModified": "2026-09-28", "author": {"@type": "Organization", "name": "Droidspaces", "url": "https://www.droidspaces.org/", "sameAs": ["https://github.com/ravindu644/Droidspaces-OSS", "https://t.me/Droidspaces"]}, "publisher": {"@type": "Organization", "name": "Droidspaces", "url": "https://www.droidspaces.org/", "sameAs": ["https://github.com/ravindu644/Droidspaces-OSS", "https://t.me/Droidspaces"]}, "isPartOf": {"@type": "WebSite", "name": "Droidspaces", "url": "https://www.droidspaces.org/"}}, {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.droidspaces.org/"}, {"@type": "ListItem", "position": 2, "name": "Documentation", "item": "https://www.droidspaces.org/docs/"}, {"@type": "ListItem", "position": 3, "name": "Kernel configuration", "item": "https://www.droidspaces.org/docs/kernel-configuration.html"}]}]</script> |
| 26 | + <script type="application/ld+json">[{"@context": "https://schema.org", "@type": "TechArticle", "headline": "Kernel configuration", "description": "How to compile an Android kernel with Droidspaces support: the config options and patches for non-GKI and GKI kernels.", "url": "https://www.droidspaces.org/docs/kernel-configuration.html", "inLanguage": "en", "dateModified": "2026-10-03", "author": {"@type": "Organization", "name": "Droidspaces", "url": "https://www.droidspaces.org/", "sameAs": ["https://github.com/ravindu644/Droidspaces-OSS", "https://t.me/Droidspaces"]}, "publisher": {"@type": "Organization", "name": "Droidspaces", "url": "https://www.droidspaces.org/", "sameAs": ["https://github.com/ravindu644/Droidspaces-OSS", "https://t.me/Droidspaces"]}, "isPartOf": {"@type": "WebSite", "name": "Droidspaces", "url": "https://www.droidspaces.org/"}}, {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.droidspaces.org/"}, {"@type": "ListItem", "position": 2, "name": "Documentation", "item": "https://www.droidspaces.org/docs/"}, {"@type": "ListItem", "position": 3, "name": "Kernel configuration", "item": "https://www.droidspaces.org/docs/kernel-configuration.html"}]}]</script> |
27 | 27 | <script>(function(){const t=localStorage.getItem('theme');if(t)document.documentElement.setAttribute('data-theme',t);})();</script> |
28 | 28 | </head> |
29 | 29 | <body> |
@@ -171,6 +171,19 @@ <h3 id="step-1-mandatory-configuration">Step 1: Mandatory configuration <a class |
171 | 171 | <span class="nv">CONFIG_NF_NAT_IPV4</span><span class="o">=</span>y |
172 | 172 | <span class="nv">CONFIG_IP_NF_NAT</span><span class="o">=</span>y |
173 | 173 |
|
| 174 | +<span class="c"># IPv6 in NAT mode (NAT66). Optional: without these, NAT containers are IPv4 only</span> |
| 175 | +<span class="nv">CONFIG_IPV6</span><span class="o">=</span>y |
| 176 | +<span class="nv">CONFIG_IPV6_MULTIPLE_TABLES</span><span class="o">=</span>y |
| 177 | +<span class="nv">CONFIG_IP6_NF_IPTABLES</span><span class="o">=</span>y |
| 178 | +<span class="nv">CONFIG_IP6_NF_FILTER</span><span class="o">=</span>y |
| 179 | +<span class="nv">CONFIG_IP6_NF_MANGLE</span><span class="o">=</span>y |
| 180 | +<span class="nv">CONFIG_IP6_NF_NAT</span><span class="o">=</span>y |
| 181 | +<span class="nv">CONFIG_IP6_NF_TARGET_MASQUERADE</span><span class="o">=</span>y |
| 182 | + |
| 183 | +<span class="c"># legacy compat</span> |
| 184 | +<span class="nv">CONFIG_NF_CONNTRACK_IPV6</span><span class="o">=</span>y |
| 185 | +<span class="nv">CONFIG_NF_NAT_IPV6</span><span class="o">=</span>y |
| 186 | + |
174 | 187 | <span class="c"># Disable this on older kernels to make internet work</span> |
175 | 188 | <span class="nv">CONFIG_ANDROID_PARANOID_NETWORK</span><span class="o">=</span>n |
176 | 189 |
|
@@ -268,6 +281,10 @@ <h3 id="step-2-edit-gki_defconfig">Step 2: Edit <code>gki_defconfig</code> <a cl |
268 | 281 | <span class="c"># Fix for docker unsafe procfs error</span> |
269 | 282 | <span class="nv">CONFIG_USER_NS</span><span class="o">=</span>y |
270 | 283 |
|
| 284 | +<span class="c"># IPv6 in NAT mode (NAT66)</span> |
| 285 | +<span class="nv">CONFIG_IP6_NF_NAT</span><span class="o">=</span>y |
| 286 | +<span class="nv">CONFIG_IP6_NF_TARGET_MASQUERADE</span><span class="o">=</span>y |
| 287 | + |
271 | 288 | <span class="c"># UFW support</span> |
272 | 289 | <span class="nv">CONFIG_NETFILTER_XT_TARGET_REJECT</span><span class="o">=</span>y |
273 | 290 | <span class="nv">CONFIG_NETFILTER_XT_TARGET_LOG</span><span class="o">=</span>y |
@@ -317,6 +334,7 @@ <h3 id="1-run-the-requirements-check">1. Run the requirements check <a class="he |
317 | 334 | <li>devtmpfs support</li> |
318 | 335 | <li>OverlayFS support (optional, for volatile mode)</li> |
319 | 336 | <li>VETH and Bridge support (optional, for NAT mode)</li> |
| 337 | +<li>IPv6 NAT support (optional, for IPv6 in NAT mode)</li> |
320 | 338 | <li>PTY/devpts support</li> |
321 | 339 | <li>Loop device support</li> |
322 | 340 | <li>ext4 support</li> |
@@ -400,6 +418,11 @@ <h3 id="3-what-to-do-if-something-is-missing">3. What to do if something is miss |
400 | 418 | <td>NAT mode unavailable.</td> |
401 | 419 | </tr> |
402 | 420 | <tr> |
| 421 | +<td>IPv6 NAT</td> |
| 422 | +<td><code>CONFIG_IP6_NF_NAT</code> / <code>CONFIG_IP6_NF_TARGET_MASQUERADE</code></td> |
| 423 | +<td>NAT containers are IPv4 only.</td> |
| 424 | +</tr> |
| 425 | +<tr> |
403 | 426 | <td>Seccomp</td> |
404 | 427 | <td><code>CONFIG_SECCOMP=y</code></td> |
405 | 428 | <td>Seccomp shield disabled. Security risk.</td> |
|
0 commit comments