aboutsummaryrefslogtreecommitdiff
path: root/en/devices/architecture/kernel
diff options
context:
space:
mode:
authorAndroid Partner Docs <noreply@android.com>2018-08-08 13:50:33 -0700
committerClay Murphy <claym@google.com>2018-08-08 14:05:32 -0700
commitea448b829ef3c5eefcadcd50fdf74c873eeadd86 (patch)
tree34c2647a8d8c2dffdbcdac2c5ba11d41d1426da8 /en/devices/architecture/kernel
parent19a77ba572d415186ce503e4bf8be87fe45d08eb (diff)
downloadsource.android.com-ea448b829ef3c5eefcadcd50fdf74c873eeadd86.tar.gz
Docs: Changes to source.android.com
- 207940242 One more fix: add header for Television Requirements. by Gina Dimino <gdimino@google.com> - 207936055 Update health README link. by Android Partner Docs <noreply@android.com> - 207929938 Errata run for Android 9 CDD. by Gina Dimino <gdimino@google.com> - 207897850 Fix typos in Develop and Configure index pages by Kenneth Lau <kennethlau@google.com> - 207813977 Devsite localized content from translation request 958913. by Android Partner Docs <noreply@android.com> - 207813949 Devsite localized content from translation request 953118. by Android Partner Docs <noreply@android.com> - 207813941 Devsite localized content from translation request 961934. by Android Partner Docs <noreply@android.com> - 207813934 Devsite localized content from translation request 552632. by Android Partner Docs <noreply@android.com> - 207813463 Update line numbers in links by Kenneth Lau <kennethlau@google.com> - 207796341 Fixing the URL for the CDD link in versions file. by Gina Dimino <gdimino@google.com> - 207779392 Fix incorrect link by Kenneth Lau <kennethlau@google.com> - 207777680 Update build numbers for 2018/08 releases by Android Partner Docs <noreply@android.com> - 207775888 Update links to AOSP by Kenneth Lau <kennethlau@google.com> - 207769948 Update links to AOSP by Kenneth Lau <kennethlau@google.com> - 207763826 Clarify system for HIDL passthrough loading. by Android Partner Docs <noreply@android.com> - 207733156 Fixing malformed links in html for kernel patches, adding... by Heidi von Markham <hvm@google.com> - 207650104 Remove link by Heidi von Markham <hvm@google.com> - 207640627 Tags for Android P. by Android Partner Docs <noreply@android.com> - 207626815 Making link absolute by Clay Murphy <claym@google.com> - 207611166 Add Background Restrictions into Release Notes. by Christina Nguyen <cqn@google.com> - 207606267 Fixing unclosed tag, reformatting for clarity by Heidi von Markham <hvm@google.com> - 207604244 Fix malformed link by Clay Murphy <claym@google.com> - 207598416 adding subscript by Heidi von Markham <hvm@google.com> - 207595049 Fix link in section 3.5.1. by Gina Dimino <gdimino@google.com> - 207590813 Fix broken link due to file path change by Christina Nguyen <cqn@google.com> - 207588930 Update Power nav to include changes to mgmt page (broken ... by Christina Nguyen <cqn@google.com> - 207588102 Separate out the Power Management article into "Applicati... by Christina Nguyen <cqn@google.com> - 207583000 Fix broken links in HAL interface section by Kenneth Lau <kennethlau@google.com> - 207582699 Put index files in place as redirects are not taking hold by Clay Murphy <claym@google.com> - 207575443 P release notes: fix bad links, remove "P release" by Mark Hecomovich <mheco@google.com> - 207574657 Fix link typo from release notes to Carrier ID page by Christina Nguyen <cqn@google.com> - 207559561 Integrate SAC next branch into mainline for Android P/9 p... by Mark Hecomovich <mheco@google.com> - 207559252 Publish links to July localized versions within Japanese ... by Clay Murphy <claym@google.com> - 207122872 Devsite localized content from translation request 958912. by Android Partner Docs <noreply@android.com> - 207122854 Devsite localized content from translation request 961384. by Android Partner Docs <noreply@android.com> - 207007888 Add blurb about the SystemUpdateSampler app on SAC so use... by Christina Nguyen <cqn@google.com> - 206862073 Update Camera HAL testing page by Kenneth Lau <kennethlau@google.com> - 206805870 Devsite localized content from translation request 960240. by Android Partner Docs <noreply@android.com> - 206805861 Devsite localized content from translation request 954945. by Android Partner Docs <noreply@android.com> PiperOrigin-RevId: 207940242 Change-Id: I3dee204c744e2e6062ac56810b88aefabf84636a
Diffstat (limited to 'en/devices/architecture/kernel')
-rw-r--r--en/devices/architecture/kernel/android-common.html30
-rw-r--r--en/devices/architecture/kernel/config.html93
-rw-r--r--en/devices/architecture/kernel/modular-kernels.html110
-rw-r--r--en/devices/architecture/kernel/releases.html2
-rw-r--r--en/devices/architecture/kernel/reqs-interfaces.html368
5 files changed, 410 insertions, 193 deletions
diff --git a/en/devices/architecture/kernel/android-common.html b/en/devices/architecture/kernel/android-common.html
index 13175576..7348f6f7 100644
--- a/en/devices/architecture/kernel/android-common.html
+++ b/en/devices/architecture/kernel/android-common.html
@@ -45,29 +45,29 @@ paranoid networking).</li>
(shown below).</p>
<p><img src="../images/android-diffs.png"></p>
<p class="img-caption"><strong>Figure 1.</strong> List of Android common
-kernels.</p>
+kernels</p>
<h3 id="differences-lts">Differences from LTS</h3>
-<p>When compared to LTS (4.4.40), the Android common kernel has 679 changes,
-56172 insertions, and 3340 deletions (as of February 2017).</p>
+<p>When compared to LTS (4.14.0), the Android common kernel has 355 changes,
+32266 insertions, and 1546 deletions (as of February 2018).</p>
<p><img src="../images/kernel_lts_diff.png"></p>
<p class="img-caption"><strong>Figure 2.</strong> Android-specific code over
-time.</p>
+time</p>
<p>The largest features include:</p>
<ul>
-<li>13.8% SoC (arch/arm64, arch/x86)</li>
-<li>9.2% USB (drivers/usb)</li>
-<li>8.2% Energy Aware Scheduling (kernel/sched)</li>
-<li>8.2% Atomic Display Framework (drivers/video/adf)</li>
-<li>8.0% networking (net/netfilter)</li>
-<li>6.2% sdcardfs (fs/sdcardfs)</li>
-<li>5.0% Verity (drivers/md)</li>
-<li>3.7% Input (drivers/input/misc)</li>
-<li>3.3% FIQ Debugger (drivers/staging/android/fiq_debugger)</li>
-<li>2.4% Cpufreq (drivers/cpufreq)</li>
-<li>2.2% Goldfish Emulator (drivers/platform/goldfish)</li>
+<li>19.8% Energy Aware Scheduling (kernel/sched)</li>
+<li>13.8% Networking (net/netfilter)</li>
+<li>13.5% Sdcardfs (fs/sdcardfs)</li>
+<li>9.4% USB (drivers/usb)</li>
+<li>7.2% SoC (arch/arm64, arch/x86)</li>
+<li>6.2% f2fs (fs/f2fs -- backports from upstream)</li>
+<li>6.1% Input (drivers/input/misc)</li>
+<li>5.4% FIQ Debugger (drivers/staging/android/fiq_debugger)</li>
+<li>3.6% Goldfish Emulator (drivers/platform/goldfish)</li>
+<li>3.4% Verity (drivers/md)</li>
+<li>11.6% Other</li>
</ul>
<h2 id="requirements">Requirements</h2>
diff --git a/en/devices/architecture/kernel/config.html b/en/devices/architecture/kernel/config.html
index afc36f82..49ae7e1d 100644
--- a/en/devices/architecture/kernel/config.html
+++ b/en/devices/architecture/kernel/config.html
@@ -41,7 +41,7 @@ features and are optional for devices.</li>
</ul>
<p>These configuration files are located in the
-<code><a href="https://android.googlesource.com/kernel/configs/">kernel/configs</a></code>
+<code><a href="https://android.googlesource.com/kernel/configs/" class="external">kernel/configs</a></code>
repo. Use the set of configuration files that corresponds to the version of the
kernel you are using.</p>
@@ -87,45 +87,42 @@ and x86_64.</p>
<p>Ensure that <code>CONFIG_SECCOMP_FILTER=y</code> is enabled in the Kconfig
(verified as of the Android 5.0 CTS), then cherry-pick the following changes
-from the AOSP kernel/common:android-3.10 repository: <a href="https://android.
-googlesource.com/kernel/common/+log/9499cd23f9d05ba159
-fac6d55dc35a7f49f9ce76..a9ba4285aa5722a3b4d84888e78ba8adc0046b28">9499cd23f9d05ba159fac6d55dc35a7f49f9ce76..a9ba4285aa5722a3b4d84888e78ba8adc0046b28</a>
+from the AOSP kernel/common:android-3.10 repository:
+<a href="https://android.googlesource.com/kernel/common/+log/9499cd23f9d05ba159
+fac6d55dc35a7f49f9ce76..a9ba4285aa5722a3b4d84888e78ba8adc0046b28" class="external">9499cd23f9d05ba159fac6d55dc35a7f49f9ce76..a9ba4285aa5722a3b4d84888e78ba8adc0046b28</a>
</p>
<ul>
-<li><a href="https://android.googlesource.com/kernel/common/+/a03a2426ea9f1d9dada33cf4a824f63e8f916c9d">a03
+<li><a href="https://android.googlesource.com/kernel/common/+/a03a2426ea9f1d9dada33cf4a824f63e8f916c9d" class="external">a03
a242 arch: Introduce smp_load_acquire(), smp_store_release()</a> by Peter
Zijlstra</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/987a0f1102321853565c4bfecde6a5a58ac6db11">987a0f
-1 introduce for_each_thread() to replace the buggy while_each_thread()</a> by
- Oleg Nesterov</li>
- <li><a href="https://android.googlesource.com/kernel/common/+/2a30a4386e4a7e1283157c4cf4cfcc0306b22ac8">2a30a43
+<li><a href="https://android.googlesource.com/kernel/common/+/987a0f1102321853565c4bfecde6a5a58ac6db11" class="external">987a0f1
+introduce for_each_thread() to replace the buggy while_each_thread()</a> by
+Oleg Nesterov</li>
+<li><a href="https://android.googlesource.com/kernel/common/+/2a30a4386e4a7e1283157c4cf4cfcc0306b22ac8" class="external">2a30a43
seccomp: create internal mode-setting function</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+
-/b8a9cff6dbe9cfddbb4d17e2dea496e523544687">b8a9cff
+<li><a href="https://android.googlesource.com/kernel/common/+/b8a9cff6dbe9cfddbb4d17e2dea496e523544687" class="external">b8a9cff
seccomp: extract check/assign mode helpers</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/8908dde5a7fdca974374b0dbe6dfb10f69df7216">8908dde
+<li><a href="https://android.googlesource.com/kernel/common/+/8908dde5a7fdca974374b0dbe6dfb10f69df7216" class="external">8908dde
seccomp: split mode setting routines</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/e985fd474debedb269fba27006eda50d0b6f07ef">e985fd4 seccomp: add
-"seccomp" syscall</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/9d0ff
-694bc22fb458acb763811a677696c60725b">9d0ff69
+<li><a href="https://android.googlesource.com/kernel/common/+/e985fd474debedb269fba27006eda50d0b6f07ef" class="external">e985fd4
+seccomp: add "seccomp" syscall</a> by Kees Cook</li>
+<li><a href="https://android.googlesource.com/kernel/common/+/9d0ff694bc22fb458acb763811a677696c60725b" class="external">9d0ff69
sched: move no_new_privs into new atomic flags</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/b6a12bf4dd762236c7f637b19cfe10a268304b9b">b6a12bf
+<li><a href="https://android.googlesource.com/kernel/common/+/b6a12bf4dd762236c7f637b19cfe10a268304b9b" class="external">b6a12bf
seccomp: split filter prep from check and apply</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/61b6b882a0abfeb627d25a069cfa1d232b84c8eb">61b6b88
+<li><a href="https://android.googlesource.com/kernel/common/+/61b6b882a0abfeb627d25a069cfa1d232b84c8eb" class="external">61b6b88
seccomp: introduce writer locking</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/c852ef778224ecf5fe995d74ad96087038778bca">c852ef7
+<li><a href="https://android.googlesource.com/kernel/common/+/c852ef778224ecf5fe995d74ad96087038778bca" class="external">c852ef7
seccomp: allow mode setting across threads</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/f14a5db2398afed8f416d244e6da6b23940997c6">f14a5db
+<li><a href="https://android.googlesource.com/kernel/common/+/f14a5db2398afed8f416d244e6da6b23940997c6" class="external">f14a5db
seccomp: implement SECCOMP_FILTER_FLAG_TSYNC</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/9ac860041db
-860a59bfd6ac82b31d6b6f76ebb52">9ac8600
+<li><a href="https://android.googlesource.com/kernel/common/+/9ac860041db860a59bfd6ac82b31d6b6f76ebb52" class="external">9ac8600
seccomp: Replace BUG(!spin_is_locked()) with assert_spin_lock</a> by Guenter
Roeck</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/900e9fd0d5d15c596cacfb89ce007c933cea6e1c">900e9fd
+<li><a href="https://android.googlesource.com/kernel/common/+/900e9fd0d5d15c596cacfb89ce007c933cea6e1c" class="external">900e9fd
seccomp: fix syscall numbers for x86 and x86_64</a> by Lee Campbell</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/a9ba4285aa5722a3b4d84888e78ba8adc0046b28">a9ba428
+<li><a href="https://android.googlesource.com/kernel/common/+/a9ba4285aa5722a3b4d84888e78ba8adc0046b28" class="external">a9ba428
ARM: add seccomp syscall</a> by Kees Cook</li>
</ul>
@@ -134,56 +131,54 @@ ARM: add seccomp syscall</a> by Kees Cook</li>
(verified as of the Android 5.0 CTS), then cherry-pick the following changes
from the AOSP kernel/common:android-3.10 repository:</p>
<ul>
-<li><a href="https://android.googlesource.com/kernel/common/+/cfc7e99e9e3900056028a7d90072e9ea0d886f8d">cfc7e99e9
+<li><a href="https://android.googlesource.com/kernel/common/+/cfc7e99e9e3900056028a7d90072e9ea0d886f8d" class="external">cfc7e99e9
arm64: Add __NR_* definitions for compat syscalls</a> by JP Abgrall</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/bf11863d45eb3dac0d0cf1f818ded11ade6e28d3">bf11863
+<li><a href="https://android.googlesource.com/kernel/common/+/bf11863d45eb3dac0d0cf1f818ded11ade6e28d3" class="external">bf11863
arm64: Add audit support</a> by AKASHI Takahiro</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/3
-e21c0bb663a23436e0eb3f61860d4fedc233bab">3e21c0b
+<li><a href="https://android.googlesource.com/kernel/common/+/3e21c0bb663a23436e0eb3f61860d4fedc233bab" class="external">3e21c0b
arm64: audit: Add audit hook in syscall_trace_enter/exit()</a> by JP Abgrall</li>
-<li><a href="https://android.googlesource.com/kernel
-/common/+/9499cd23f9d05ba159fac6d55dc35a7f49f9ce76">9499cd2
+<li><a href="https://android.googlesource.com/kernel/common/+/9499cd23f9d05ba159fac6d55dc35a7f49f9ce76" class="external">9499cd2
syscall_get_arch: remove useless function arguments</a> by Eric Paris</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/2a30a4386e4a7e1283157c4cf4cfcc0306b22ac8">2a30a43
+<li><a href="https://android.googlesource.com/kernel/common/+/2a30a4386e4a7e1283157c4cf4cfcc0306b22ac8" class="external">2a30a43
seccomp: create internal mode-setting function</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/b8a9cff6dbe9cfddbb4d17e2dea496e523544687">b8a9
+<li><a href="https://android.googlesource.com/kernel/common/+/b8a9cff6dbe9cfddbb4d17e2dea496e523544687" class="external">b8a9
cff seccomp: extract check/assign mode helpers</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/8908dde5a7fdca974374b0dbe6dfb10f69df7216">8908dde
+<li><a href="https://android.googlesource.com/kernel/common/+/8908dde5a7fdca974374b0dbe6dfb10f69df7216" class="external">8908dde
seccomp: split mode setting routines</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/e985fd474debedb269fba27006eda50d0b6f07ef">e985fd4
+<li><a href="https://android.googlesource.com/kernel/common/+/e985fd474debedb269fba27006eda50d0b6f07ef" class="external">e985fd4
seccomp: add "seccomp" syscall</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/9d0ff694bc22fb458acb763811a677696c60725b">9d0ff69
+<li><a href="https://android.googlesource.com/kernel/common/+/9d0ff694bc22fb458acb763811a677696c60725b" class="external">9d0ff69
sched: move no_new_privs into new atomic flags</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/b6a12bf4dd762236c7f637b19cfe10a268304b9b">b6a12bf
+<li><a href="https://android.googlesource.com/kernel/common/+/b6a12bf4dd762236c7f637b19cfe10a268304b9b" class="external">b6a12bf
seccomp: split filter prep from check and apply</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/61b6b882a0abfeb627d25a069cfa1d232b84c8eb">61b6b88
+<li><a href="https://android.googlesource.com/kernel/common/+/61b6b882a0abfeb627d25a069cfa1d232b84c8eb" class="external">61b6b88
seccomp: introduce writer locking</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/c852ef778224ecf5fe995d74ad96087038778bca">c852ef7
+<li><a href="https://android.googlesource.com/kernel/common/+/c852ef778224ecf5fe995d74ad96087038778bca" class="external">c852ef7
seccomp: allow mode setting across threads</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/f14a5db2398afed8f416d244e6da6b23940997c6">f14a5db
+<li><a href="https://android.googlesource.com/kernel/common/+/f14a5db2398afed8f416d244e6da6b23940997c6" class="external">f14a5db
seccomp: implement SECCOMP_FILTER_FLAG_TSYNC</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/9ac860041db860a59bfd6ac82b31d6b6f76ebb52">9ac8600
+<li><a href="https://android.googlesource.com/kernel/common/+/9ac860041db860a59bfd6ac82b31d6b6f76ebb52" class="external">9ac8600
seccomp: Replace BUG(!spin_is_locked()) with assert_spin_lock</a> by Guenter
Roeck</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/900e9fd0d5d15c596cacfb89ce007c933cea6e1c">900e9fd
+<li><a href="https://android.googlesource.com/kernel/common/+/900e9fd0d5d15c596cacfb89ce007c933cea6e1c" class="external">900e9fd
seccomp: fix syscall numbers for x86 and x86_64</a> by Lee Campbell</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/a9ba4285aa5722a3b4d84888e78ba8adc0046b28">a9ba428
+<li><a href="https://android.googlesource.com/kernel/common/+/a9ba4285aa5722a3b4d84888e78ba8adc0046b28" class="external">a9ba428
ARM: add seccomp syscall</a> by Kees Cook</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/41900903483eb96602dd72e719a798c208118aad">4190090
+<li><a href="https://android.googlesource.com/kernel/common/+/41900903483eb96602dd72e719a798c208118aad" class="external">4190090
ARM: 8087/1: ptrace: reload syscall number after secure_computing() check</a> by
Will Deacon</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/abbfed9ed1a78701ef3db74f5287958feb897035">abbfed9
+<li><a href="https://android.googlesource.com/kernel/common/+/abbfed9ed1a78701ef3db74f5287958feb897035" class="external">abbfed9
arm64: ptrace: add PTRACE_SET_SYSCALL</a> by AKASHI Takahiro</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/feb28436457d33fef9f264635291432df4b74122">feb2843
+<li><a href="https://android.googlesource.com/kernel/common/+/feb28436457d33fef9f264635291432df4b74122" class="external">feb2843
arm64: ptrace: allow tracer to skip a system call</a> by AKASHI Takahiro</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/dab10731da65a0deba46402ca9fadf6974676cc8">dab1073
+<li><a href="https://android.googlesource.com/kernel/common/+/dab10731da65a0deba46402ca9fadf6974676cc8" class="external">dab1073
asm-generic: add generic seccomp.h for secure computing mode 1</a> by AKASHI
Takahiro</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/4f12b53f28a751406a27ef7501a22f9e32a9c30b">4f1
+<li><a href="https://android.googlesource.com/kernel/common/+/4f12b53f28a751406a27ef7501a22f9e32a9c30b" class="external">4f1
2b53 add seccomp syscall for compat task</a> by AKASHI Takahiro</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/77227239d20ac6381fb1aee7b7cc902f0d14cd85">7722723
+<li><a href="https://android.googlesource.com/kernel/common/+/77227239d20ac6381fb1aee7b7cc902f0d14cd85" class="external">7722723
arm64: add SIGSYS siginfo for compat task</a> by AKASHI Takahiro</li>
-<li><a href="https://android.googlesource.com/kernel/common/+/210957c2bb3b4d111963bb296e2c42beb8721929">210957c
+<li><a href="https://android.googlesource.com/kernel/common/+/210957c2bb3b4d111963bb296e2c42beb8721929" class="external">210957c
arm64: add seccomp support</a> by AKASHI Takahiro</li>
</ul>
diff --git a/en/devices/architecture/kernel/modular-kernels.html b/en/devices/architecture/kernel/modular-kernels.html
index fd1d8706..c314a956 100644
--- a/en/devices/architecture/kernel/modular-kernels.html
+++ b/en/devices/architecture/kernel/modular-kernels.html
@@ -4,6 +4,7 @@
<meta name="project_path" value="/_project.yaml" />
<meta name="book_path" value="/_book.yaml" />
</head>
+ {% include "_versions.html" %}
<body>
<!--
Copyright 2017 The Android Open Source Project
@@ -21,7 +22,7 @@
limitations under the License.
-->
-<p>In Android 8.0, the device kernel splits into System-on-Chip (SoC), device,
+<p>In Android 8.0, the device kernel split into System-on-Chip (SoC), device,
and board-specific deliverables. This sets up the kernel and Android such that
Original Device Manufacturers (ODMs) and Original Equipment Manufacturers (OEMs)
can work in isolated board–specific trees for board–specific features, drivers,
@@ -32,8 +33,8 @@ the form of kernel modules, etc.</p>
<ul>
<li>Platform support for independent SoC and OEM/ODM kernel development. Android
-O recommends all board–specific code to be built and shipped as kernel modules
-in devices. As a result:
+{{ androidPVersionNumber }} recommends all board–specific code to be built and
+shipped as kernel modules in devices. As a result:
<ul>
<li>All platforms should support either
<a href="https://www.devicetree.org/" class="external">Device Tree</a> or
@@ -55,7 +56,7 @@ framework.</li>
</ul>
<h2 id="loadable-kernel-modules">Loadable kernel modules</h2>
-<p>All SoC kernels should support loadable kernel modules. As a starting point,
+<p>All SoC kernels must support loadable kernel modules. As a starting point,
the following kernel-config options (or their kernel-version equivalent) have
been added to
<a href="https://android.googlesource.com/kernel/common/+/android-4.4-o/android/configs/android-base.cfg" class="external">android-base.cfg</a>
@@ -67,8 +68,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
</pre>
-<p>All kernel modules are subject to module load/unload testing to ensure the
-correctness of the driver/module.</p>
+<p>Kernel modules should support unloading and reloading whenever possible.</p>
<aside class="note"><strong>Note:</strong>
<code>CONFIG_MODULE_SRCVERSION_ALL</code> is optional and will not be tested
@@ -93,9 +93,10 @@ in the future.</p>
<h3 id="file-locations">File locations</h3>
<p>While Android 7.x and earlier versions do not mandate against kernel modules
(and include support for <code>insmod</code> and <code>rmmod</code>), Android
-8.0 recommends the use of kernel modules in the ecosystem. The following table
-shows potential board–specific peripheral support required across three Android
-boot modes:</p>
+8.x and higher recommends the use of kernel modules in the ecosystem. The
+following table shows potential board–specific peripheral support required
+across three Android boot modes:</p>
+
<table>
<tr>
<th>Boot Mode</th>
@@ -154,7 +155,7 @@ being used, requirements for their placement in filesystem are as follows:</p>
<ul>
<li>All kernels should have built-in support for booting and mounting partitions.
</li>
-<li>Kernel modules should be loaded from a read-only partition.</li>
+<li>Kernel modules must be loaded from a read-only partition.</li>
<li>For devices required to have verified boot, kernel modules should be loaded
from verified partitions.</li>
<li>Kernel modules should not be located in <code>/system</code>.</li>
@@ -178,8 +179,8 @@ mounted in Recovery mode.</li>
</ul>
<p>In Android 7.x and earlier, <code>/vendor</code> and <code>/odm</code>
-partitions are <strong>not</strong> mounted early. In Android 8.0, to make
-module loading from these partitions possible, provisions have been made to
+partitions are <strong>not</strong> mounted early. In Android 8.x and higher, to
+make module loading from these partitions possible, provisions have been made to
mount partitions early for both
<a href="/devices/tech/ota/ab_updates">non-A/B and A/B devices</a>. This also
ensures the partitions are mounted in both Android and
@@ -279,11 +280,11 @@ documentation in the kernel tree at
loading of kernel modules as soon as possible after kernel boot).</p>
<aside class="note"><strong>Note:</strong> For details on SELinux in Android
-8.0, see <a href="/security/selinux/images/SELinux_Treble.pdf">SELinux for
+8.x, see <a href="/security/selinux/images/SELinux_Treble.pdf">SELinux for
Android 8.0</a>.</aside>
<p>Android must have access to the filesystem(s) on which the modules reside. To
-enable, Android 8.0 supports mounting <code>/system</code>,
+enable, Android 8.x and higher supports mounting <code>/system</code>,
<code>/vendor</code>, or <code>/odm</code> as early as <code>init</code>'s first
stage (i.e before selinux is initialized). Device makers can use
<a href="/devices/architecture/dto/index.html">device tree overlays</a> to
@@ -340,9 +341,9 @@ requirement).</li>
<h3 id="early-mounting-device-tree-vboot-1-0">Early mounting device tree, VBoot
1.0</h3>
-<p>In Android 8.0, <code>init</code> parses the device tree and creates
-<code>fstab</code> entries to mount the partition early during its first stage.
-An fstab entry takes the form:</p>
+<p>In Android 8.x and higher, <code>init</code> parses the device tree and
+creates <code>fstab</code> entries to mount the partition early during its first
+stage. An <code>fstab</code> entry takes the form:</p>
<pre class="prettyprint">src mnt_point type mnt_flags fs_mgr_flags</pre>
@@ -577,10 +578,16 @@ DT blobs from user space, but instead recommends that vendors add the device
tree patching in the bootloader with the help of
<code>libfdt</code>/<code>libufdt</code>.</p>
-<p>In Android 7.x and earlier, Android did not require device tree support and
-did not provide recommendations regarding how vendors pass DT blobs to the
-kernel or where they store them. Android 8.0 recommends such support to keep the
-board–specific and SoC-only parts of the kernel separate.</p>
+<p>Support for DTOs in Android varies by Android release:</p>
+<ul>
+ <li>Android 7.x and earlier did not require device tree support and did not
+ provide recommendations regarding how vendors pass DT blobs to the kernel or
+ where they store them.</li>
+ <li>Android 8.x recommended such support to keep the board–specific and
+ SoC-only parts of the kernel separate.</li>
+ <li>Android {{ androidPVersionNumber }} requires a DTBO partition to be
+ present and at least one DTO to be applied.</li>
+</ul>
<h3 id="partitioning-requirements">Partitioning requirements</h3>
<p>Most Android devices today append the DT blob to the kernel at build time,
@@ -629,10 +636,11 @@ combined device tree to the kernel.</li>
<a href="/devices/architecture/dto/index.html">Device Tree Overlays</a>.</p>
<h2 id="core-kernel-requirements">Core kernel requirements</h2>
-<p>Android 8.0 mandates a minimum kernel version and kernel configuration and
-checks them both in VTS as well as during an OTA. Android device kernels must
-enable the kernel <code>.config</code> support along with the option to read the
-kernel configuration at runtime through <code>procfs</code>.</p>
+<p>As of Android 8.0, Android mandates a minimum kernel version and kernel
+configuration and checks them both in VTS as well as during an OTA. Android
+device kernels must enable the kernel <code>.config</code> support along with
+the option to read the kernel configuration at runtime through
+<code>procfs</code>.</p>
<h3 id="kernel-config-support">Kernel .config support</h3>
<p>All device kernels must enable the entirety of
@@ -646,18 +654,29 @@ CONFIG_IKCONFIG_PROC=y
</pre>
<h3 id="kernel-version">Kernel version</h3>
-<p>Kernel version requirements:</p>
+<p>For Android {{ androidPVersionNumber }}, the minimum LTS kernel version
+requirements are 4.4.107, 4.9.84, and 4.14.42.</p>
+
<ul>
-<li>All SoCs productized in 2017 must launch with kernel 4.4 or newer.</li>
-<li>All other SoCs launching new Android devices running Android 8.0 must use
-kernel 3.18 or newer.</li>
-<li>Regardless of launch date, all SoCs with device launches on Android 8.0
-remain subject to kernel changes required to enable Treble.</li>
-<li>Older Android devices released prior to Android 8.0 but that will be
-upgraded to Android 8.0 can continue to use their original base kernel version
-if desired.</li>
+<li>All SoCs productized in 2018 must launch with kernel 4.9.84 or newer.</li>
+<li>All other SoCs launching new Android devices running Android 8.x must use
+kernel 3.18 or newer. All other SoCs launching new Android devices running
+Android {{ androidPVersionNumber }} must use kernel 4.4.107 or newer.</li>
+<li>Device kernels based on 4.14 must include the 4.14.42 or later LTS release.
+</li>
+<li>Regardless of launch date, all SoCs with device launches on Android 8.x
+and higher remain subject to the kernel changes required to enable Treble.</li>
+<li>Older Android devices that will be upgraded to Android 8.x or
+{{ androidPVersionNumber }} can continue to use their original base kernel
+version if desired.</li>
</ul>
+<p>For details on LTS kernels, refer to
+<a href="/devices/architecture/kernel/releases#long-term-stable-kernels">Long-term
+stable kernels</a> and
+<a href="https://source.android.com/devices/architecture/kernel/android-common">Android
+Common Kernels</a></p>
+
<h3 id="device-tree-support">Device tree support</h3>
<p>Device tree support in the kernel must be enabled and bootloaders must pass
the hardware description in the form of device tree to the kernel (unless the
@@ -686,12 +705,11 @@ changelist</a>.</p>
<code>debugfs</code>. It may be enabled, but VTS testing may be done with
<code>debugfs</code> unmounted.</p>
-<h2 id="beyond-android-o">Beyond Android 8.0</h2>
-<p>Android 8.0 recommends any board–specific kernel functionality to be in the
-form of loadable kernel modules and device–tree overlays. The rest of the kernel
-is treated monolithically with respect to Android (whether or not is it is
-actually a monolithic kernel, or parts of it are compiled as kernel modules).
-</p>
+<h2 id="beyond-android-o">Future Android versions</h2>
+<p>The current Android release recommends that all board–specific code is built
+and shipped as kernel modules in devices. The rest of the kernel is treated
+monolithically with respect to Android (whether or not is it is actually a
+monolithic kernel, or parts of it are compiled as kernel modules).</p>
<p>This monolithic kernel is an SoC kernel that can boot on the SoC vendor's
reference hardware but nothing beyond that. Today, SoC kernels are treated
@@ -706,7 +724,7 @@ contributing to the same SoC kernel.</p>
fragmented over time, across Android releases, and across ODMs.</p>
<img src="../images/treble_kernel_current.png">
-<figcaption><strong>Figure 1.</strong> Device kernel replication.</figcaption>
+<figcaption><strong>Figure 1.</strong> Device kernel replication</figcaption>
<p>Figure 1 shows the following:</p>
<ol>
@@ -723,14 +741,14 @@ Figure 2 (below) illustrates how the workflow will change in an ideal,
unified–per–SoC–kernel scenario:</p>
<img src="../images/treble_kernel_treble.png">
-<figcaption><strong>Figure 2.</strong> Android 8.0 and higher device
-kernels.</figcaption>
+<figcaption><strong>Figure 2.</strong> Android 8.x and higher device
+kernels</figcaption>
<p>This is intended to solve the problem of fragmented kernel repos by
recommending and working with device manufacturers to stay up to date with the
-common SoC kernel. Android 8.0 provides all possible options to ODMs to help
-them avoid maintaining their own SoC kernels and instead rely on the common SoC
-kernel for LTS upgrades/bug fixes/security patches/etc.</p>
+common SoC kernel. Android 8.x and higher provides all possible options to ODMs
+to help them avoid maintaining their own SoC kernels and instead rely on the
+common SoC kernel for LTS upgrades/bug fixes/security patches/etc.</p>
<p>As a start, we want to facilitate all ODMs/vendors using a single kernel
source for an SoC. In the future, we want to move towards a single binary
diff --git a/en/devices/architecture/kernel/releases.html b/en/devices/architecture/kernel/releases.html
index 612922d9..1d06b82d 100644
--- a/en/devices/architecture/kernel/releases.html
+++ b/en/devices/architecture/kernel/releases.html
@@ -57,7 +57,7 @@ created, with the first LTS kernel (2.6.16) released in 2006. Since then, a new
LTS kernel has been selected once a year and kernel community maintains that
kernel for a minimum of 2 years.
</p>
-<p>At the time of this writing, the LTS kernels are the 4.4.y and 4.9.y
+<p>At the time of this writing, the LTS kernels are the 4.4.y, 4.9.y, and 4.14.y
releases, and a new kernel is released weekly. Due to the needs of some users
and distributions, a few additional older kernels are maintained by kernel
developers at a slower release cycle. Information about all long-term stable
diff --git a/en/devices/architecture/kernel/reqs-interfaces.html b/en/devices/architecture/kernel/reqs-interfaces.html
index 82349f7b..53fbf656 100644
--- a/en/devices/architecture/kernel/reqs-interfaces.html
+++ b/en/devices/architecture/kernel/reqs-interfaces.html
@@ -4,6 +4,7 @@
<meta name="project_path" value="/_project.yaml" />
<meta name="book_path" value="/_book.yaml" />
</head>
+ {% include "_versions.html" %}
<body>
<!--
Copyright 2017 The Android Open Source Project
@@ -28,46 +29,8 @@ tested as part of the <a href="/devices/tech/vts/index.html">Vendor Test Suite
Android kernel interfaces.</p>
<h2 id="system-calls">System calls</h2>
-<p>System calls are expected to provide the same signatures and semantics as in
-the upstream Linux kernel.</p>
-
-<p>ARM64 system calls required by bionic per
-<code>bionic/libc/SYSCALLS.txt</code>:</p>
-
-<table>
-<tr>
-<td class="devsite-click-to-copy">accept4, acct, adjtimex, bind, brk, capget, capset, chdir, chroot, clock_adjtime, clock_getres, clock_gettime, clock_nanosleep, clock_settime, close, connect, delete_module, dup3, dup, epoll_create1, epoll_ctl, epoll_pwait, eventfd2, execve, exit, exit_group, faccessat, fadvise64, fallocate, fchdir, fchmodat, fchmod, fchownat, fchown, fcntl, fdatasync, fgetxattr, flistxattr, flock, fremovexattr, fsetxattr, fstat, newfstatat, fstatfs, fsync, ftruncate, getcpu, getcwd, getdents64, getegid, geteuid, getgid, getgroups, getitimer, getpeername, getpgid, getpid, getppid, getpriority, getresgid, getresuid, getrlimit, getrusage, getsid, getsockname, getsockopt, gettimeofday, getuid, getxattr, init_module, inotify_add_watch, inotify_init1, inotify_rm_watch, ioctl, kill, syslog, lgetxattr, linkat, listen, listxattr, llistxattr, lremovexattr, lseek, lsetxattr, madvise, mincore, mkdirat, mknodat, mlockall, mlock, mmap, mount, mprotect, mremap, msync, munlockall, munlock, munmap, nanosleep, openat, personality, pipe2, ppoll, prctl, pread64, preadv, prlimit64, process_vm_readv, process_vm_writev, pselect6, ptrace, pwrite64, pwritev, quotactl, readahead, readlinkat, read, readv, reboot, recvfrom, recvmmsg, recvmsg, removexattr, renameat, rt_sigaction, rt_sigpending, rt_sigprocmask, rt_sigqueueinfo, rt_sigsuspend, rt_sigtimedwait, sched_getaffinity, sched_getparam, sched_get_priority_max, sched_get_priority_min, sched_getscheduler, sched_rr_get_interval, sched_setaffinity, sched_setparam, sched_setscheduler, sched_yield, sendfile, sendmmsg, sendmsg, sendto, setdomainname, setfsgid, setfsuid, setgid, setgroups, sethostname, setitimer, setns, setpgid, setpriority, setregid, setresgid, setresuid, setreuid, setrlimit, setsid, setsockopt, set_tid_address, settimeofday, setuid, setxattr, shutdown, sigaltstack, signalfd4, socketpair, socket, splice, statfs, swapoff, swapon, symlinkat, sync_file_range, sync, sysinfo, tee, tgkill, timer_create, timer_delete, timerfd_create, timerfd_gettime, timerfd_settime, timer_getoverrun, timer_gettime, timer_settime, times, truncate, umask, umount2, uname, unlinkat, unshare, utimensat, vmsplice, wait4, waitid, write, writev</td>
-</tr></table>
-
-<p>ARM32 system calls required by bionic per
-<code>bionic/libc/SYSCALLS.txt</code>:</p>
-
-<table>
-<tr>
-<td class="devsite-click-to-copy">accept4, acct, adjtimex, arm_fadvise64_64, bind, brk, cacheflush, capget, capset, chdir, chroot, clock_adjtime, clock_getres, clock_gettime, clock_nanosleep, clock_settime, close, connect, delete_module, dup3, dup, epoll_create1, epoll_ctl, epoll_pwait, eventfd2, execve, exit, exit_group, faccessat, fallocate, fchdir, fchmodat, fchmod, fchownat, fchown32, fcntl64, fdatasync, fgetxattr, flistxattr, flock, fremovexattr, fsetxattr, fstat64, fstatat64, fstatfs64, fsync, ftruncate64, getcpu, getcwd, getdents64, getegid32, geteuid32, getgid32, getgroups32, getitimer, getpeername, getpgid, getpid, getppid, getpriority, getresgid32, getresuid32, ugetrlimit, getrusage, getsid, getsockname, getsockopt, gettimeofday, getuid32, getxattr, init_module, inotify_add_watch, inotify_init1, inotify_rm_watch, ioctl, kill, syslog, lgetxattr, linkat, listen, listxattr, llistxattr, _llseek, lremovexattr, lseek, lsetxattr, madvise, mincore, mkdirat, mknodat, mlockall, mlock, mmap2, mount, mprotect, mremap, msync, munlockall, munlock, munmap, nanosleep, openat, personality, pipe2, ppoll, prctl, pread64, preadv, prlimit64, process_vm_readv, process_vm_writev, pselect6, ptrace, pwrite64, pwritev, quotactl, readahead, readlinkat, read, readv, reboot, recvfrom, recvmmsg, recvmsg, removexattr, renameat, rt_sigaction, rt_sigpending, rt_sigprocmask, rt_sigqueueinfo, rt_sigsuspend, rt_sigtimedwait, sched_getaffinity, sched_getparam, sched_get_priority_max, sched_get_priority_min, sched_getscheduler, sched_rr_get_interval, sched_setaffinity, sched_setparam, sched_setscheduler, sched_yield, sendfile64, sendfile, sendmmsg, sendmsg, sendto, setdomainname, setfsgid, setfsuid, setgid32, setgroups32, sethostname, setitimer, setns, setpgid, setpriority, setregid32, setresgid32, setresuid32, setreuid32, setrlimit, setsid, setsockopt, set_tid_address, settimeofday, set_tls, setuid32, setxattr, shutdown, sigaction, sigaltstack, signalfd4, socketpair, socket, splice, statfs64, swapoff, swapon, symlinkat, sync_file_range2, sync, sysinfo, tee, tgkill, timer_create, timer_delete, timerfd_create, timerfd_gettime, timerfd_settime, timer_getoverrun, timer_gettime, timer_settime, times, truncate64, truncate, umask, umount2, uname, unlinkat, unshare, utimensat, vmsplice, wait4, waitid, write, writev</td>
-</tr></table>
-
-<p>The system calls listed below are made by bypassing bionic:</p>
-
-<table>
- <tr>
- <th style="width:20%">All Architectures</th>
- <td>gettid, futex, clone, rt_sigreturn, rt_tgsigqueueinfo, restart_syscall,
-getrandom, perf_event_open, syncfs, tkill, seccomp</td>
- </tr>
- <tr>
- <th>arm</th>
- <td>vfork, sigreturn, pipe, access, stat64, lstat64, open, getdents, eventfd,
-epoll_wait, readlink, epoll_create, creat, unlink</td>
- </tr>
- <tr>
- <th>arm64</th>
- <td>pivot_root, ioprio_get, ioprio_set</td>
- </tr>
-</table>
-
-<aside class="note"><strong>Note:</strong> x86 and x86_64 system calls will be
-added in a future release.</aside>
+<p>All system calls are expected to provide the same signatures and semantics as
+in the upstream Linux kernel of the same version.</p>
<h3 id="prctl">prctl</h3>
<p>In addition to the upstream <code>prctl</code> operations for supported
@@ -89,102 +52,316 @@ branch of the Android common kernel.</p>
<h3 id="procfs">procfs</h3>
<table>
<tr>
- <th>Path</th>
+ <th>Interface</th>
<th>Description</th>
</tr>
<tr>
- <td><code>/proc/cmdline</code></td>
+ <td>/proc/asound/</td>
+ <td>Read-only file showing the list of currently configured ALSA drivers.</td>
+ </tr>
+ <tr>
+ <td>/proc/cmdline</td>
<td>Read-only file containing command line arguments passed to the kernel.
</td>
</tr>
<tr>
- <td><code>/proc/config.gz</code></td>
+ <td>/proc/config.gz</td>
<td>Read-only file containing kernel build configuration.</td>
</tr>
<tr>
- <td><code>/proc/cpuinfo</code></td>
+ <td>/proc/cpuinfo</td>
<td>Read-only file containing architecture-specific CPU details.</td>
</tr>
<tr>
- <td><code>/proc/kmsg</code></td>
+ <td>/proc/diskstats</td>
+ <td>Read-only file showing I/O statistics of block devices.</td>
+ </tr>
+ <tr>
+ <td>/proc/filesystems</td>
+ <td>Read-only file listing filesystems currently supported by the
+ kernel.</td>
+ </tr>
+ <tr>
+ <tr>
+ <td>/proc/kmsg</td>
<td>Read-only file showing kernel messages in real time.</td>
</tr>
<tr>
- <td><code>/proc/meminfo</code></td>
+ <td>/proc/loadavg</td>
+ <td>Read-only file showing CPU and IO load average over time.</td>
+ </tr>
+ <tr>
+ <td>/proc/meminfo</td>
<td>Read-only file showing memory subsystem details.</td>
</tr>
<tr>
- <td><code>/proc/modules</code></td>
+ <td>/proc/misc</td>
+ <td>Read-only file listing miscellaneous drivers registered on the
+ miscellaneous major device.</td>
+ </tr>
+ <tr>
+ <td>/proc/modules</td>
<td>Read-only file containing information about loaded kernel modules.</td>
</tr>
<tr>
- <td><code>/proc/mounts</code></td>
+ <td>/proc/mounts</td>
<td>Symlink to <code>/proc/self/mounts</code>, which is a read-only file
listing information about the mounted filesystems.</td>
</tr>
<tr>
- <td><code>/proc/net/xt_qtaguid/ctrl</code></td>
+ <td>/proc/net</td>
+ <td>Directory containing a variety of network stack parameters.</td>
+ </tr>
+ <tr>
+ <td>/proc/net/xt_qtaguid/</td>
<td>Read-write file providing information about tagged sockets.</td>
</tr>
<tr>
- <td><code>/proc/self/maps</code></td>
- <td>Read-only file containing the currently mapped memory regions and
- permissions.</td>
+ <td>/proc/pagetypeinfo</td>
+ <td>Read-only file containing page allocator information.</td>
</tr>
<tr>
- <td><code>/proc/stat</code></td>
+ <td>/proc/stat</td>
<td>Read-only file containing various kernel and system statistics.</td>
</tr>
<tr>
- <td><code>/proc/sys/kernel/kptr_restrict</code></td>
+ <td>/proc/swaps</td>
+ <td>Read-only file showing swap space utilization. <strong>This file is
+ optional; its contents and permissions will be verified in VTS only if the
+ file is present</strong>.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/abi/swp</td>
+ <td>Read-write file which determines the behavior of the obsoleted ARM
+ instruction SWP.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/fs/pipe-max-size</td>
+ <td>Read-write file that reports the maximum size, in bytes, of an
+ individual pipe buffer.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/fs/protected_hardlinks</td>
+ <td>Read-write file that controls the behavior of creation of hard links.
+ </td>
+ </tr>
+ <tr>
+ <td>/proc/sys/fs/protected_symlinks</td>
+ <td>Read-write file that controls the behavior of creation of symbolic
+ links.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/fs/suid_dumpable</td>
+ <td>Read-write file that controls the core dump mode for setuid or otherwise
+ protected/tainted binaries.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/core_pattern</td>
+ <td>Read-write file that specifies the core dump filename pattern.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/core_pipe_limit</td>
+ <td>Read-write file that defines how many concurrent crashing processes may
+ be piped to user applications in parallel.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/dmesg_restrict</td>
+ <td>Read-write file that controls whether unprivileged users may access
+ dmesg.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/domainname</td>
+ <td>Read-write file that contains the YP/NIS domain name of the system.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/hostname</td>
+ <td>Read-write file that determines the host name of the system.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/hung_task_timeout_secs</td>
+ <td>Read-write file that controls the timeout used to determine when a task
+ has become non-responsive and should be considered hung. <strong>This file
+ is optional; its contents and permissions will be verified in VTS only if
+ the file is present</strong>.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/kptr_restrict</td>
<td>Read-write file that determines whether kernel pointers are printed in
<code>proc</code> files and other interfaces.</td>
</tr>
<tr>
- <td><code>/proc/sys/kernel/randomize_va_space</code></td>
+ <td>/proc/sys/kernel/modules_disabled</td>
+ <td>Read-write file that controls whether kernel modules may be loaded.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/panic_on_oops</td>
+ <td>Read-write file that controls the kernel's behavior on oops.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/perf_event_max_sample_rate</td>
+ <td>Read-write file that controls the maximum sample rate of performance
+ events.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/perf_event_paranoid</td>
+ <td>Read-write file that controls the usage of the performance events system
+ by unprivileged users.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/pid_max</td>
+ <td>Read-write file that contains the PID allocation wrap value.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/random/boot_id</td>
+ <td>Read-only file that contains a new random ID on each boot.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/randomize_va_space</td>
<td>Read-write file that determines the address layout randomization policy
for the system.</td>
</tr>
<tr>
- <td><code>/proc/sys/vm/mmap_min_addr</code></td>
+ <td>/proc/sys/kernel/sched_child_runs_first</td>
+ <td>Read-write file that controls whether newly forked tasks are favored in
+ scheduling over their parent tasks.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/sched_latency_ns</td>
+ <td>Read-write file that contains the maximum latency, in nanoseconds, a task
+ may incur prior to being scheduled.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/sched_rt_period_us</td>
+ <td>Read-write file that contains the period length used by the system-wide RT
+ execution limit in microseconds.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/sched_rt_runtime_us</td>
+ <td>Read-write file that contains the amount of time, relative to
+ sched_rt_period_us, that the system may execute RT tasks.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/sched_tunable_scaling</td>
+ <td>Read-write file that controls whether sched_latency_ns should be
+ automatically adjusted by the scheduler based on the number of CPUs.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/sched_wakeup_granularity_ns</td>
+ <td>Read-write file that contains how much more virtual runtime task A must
+ have than task B in nanoseconds for task B to preempt it.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/kernel/sysrq</td>
+ <td>Read-write file that controls the functions allowed to be invoked via the
+ sysrq key.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/net/*</td>
+ <td>Directory containing a variety of network stack parameters.</td>
+ </tr>
+ <tr>
+ <td>/proc/sysrq-trigger</td>
+ <td>Write-only file that can be used to initiate sysrq functions.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/vm/dirty_background_ratio</td>
+ <td>Read-write file that contains, as a percentage of total available memory
+ (free pages and reclaimable pages), the number of pages at which the
+ background kernel flusher threads will start writing out dirty data.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/vm/dirty_expire_centisecs</td>
+ <td>Read-write file that defines when dirty data is old enough to be eligible
+ for write out by the kernel flusher threads.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/vm/drop_caches</td>
+ <td>Read-write file that can be used to force the kernel to drop clean
+ caches.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/vm/extra_free_kbytes</td>
+ <td>Read-write file that can be used to keep extra free memory between the
+ threshold where background reclaim (kswapd) kicks in, and the threshold
+ where direct reclaim (by allocating processes) kicks in. <strong>This file
+ is optional; its contents and permissions will be verified in VTS only if
+ the file is present</strong>.</td>
+ </tr>
+ <tr>
+ <td>/proc/sys/vm/max_map_count</td>
+ <td>Read-write file that contains the maximum number of memory map areas a
+ process may have.</td>
+ </tr>
+
+ <tr>
+ <td>/proc/sys/vm/mmap_min_addr</td>
<td>Read-write file that determines the minimum address than can be
<code>mmap</code>'d.</td>
</tr>
<tr>
- <td><code>/proc/sys/vm/mmap_rnd_bits</code></td>
+ <td>/proc/sys/vm/mmap_rnd_bits</td>
<td>Read-write file that specifies the amount of randomness in
<code>mmap</code>'d addresses.</td>
</tr>
<tr>
- <td><code>/proc/sys/vm/mmap_rnd_compat_bits</code></td>
+ <td>/proc/sys/vm/mmap_rnd_compat_bits</td>
<td>Read-write file that specifies the amount of randomness in
<code>mmap</code>'d addresses.</td>
</tr>
<tr>
- <td><code>/proc/sys/vm/overcommit_memory</code></td>
+ <td>/proc/sys/vm/overcommit_memory</td>
<td>Read-write file that determines the kernel virtual memory accounting
mode.</td>
</tr>
<tr>
- <td><code>/proc/uid_cputime/remove_uid_range</code></td>
+ <td>/proc/sys/vm/page-cluster</td>
+ <td>Read-write file that controls the number of pages up to which
+ consecutive pages are read in from swap in a single attempt.</td>
+ </tr>
+ <tr>
+ <td>/proc/uid_cputime/remove_uid_range</td>
<td>Write-only file that, when written, removes UIDs from being shown in
<code>/proc/uid_cputime/show_uid_stat</code>.</td>
</tr>
<tr>
- <td><code>/proc/uid_cputime/show_uid_stat</code></td>
+ <td>/proc/uid_cputime/show_uid_stat</td>
<td>Read-only file containing the time a UID's processes spent in user and
kernel space.</td>
</tr>
<tr>
- <td><code>/proc/version</code></td>
+ <td>/proc/uid_io/stats</td>
+ <td>Read-only file containing a list of I/O stats for each UID in the
+ system</td>
+ </tr>
+ <tr>
+ <td>/proc/uid_procstat/set</td>
+ <td>Write-only file used to configure a UID as foreground or background.</td>
+ </tr>
+ <tr>
+ <td>/proc/uid_time_in_state</td>
+ <td>Read-only file containing the time each UID's processes spend executing at
+ each available frequency. <strong>This file is optional; its contents and
+ permissions will be verified in VTS only if the file is present</strong>.</td>
+ </tr>
+ <tr>
+ <td>/proc/uptime</td>
+ <td>Read-only file that shows how long the system has been running.</td>
+ </tr>
+ <tr>
+ <td>/proc/version</td>
<td>Read-only file containing a string describing the kernel version.</td>
</tr>
<tr>
- <td><code>/proc/vmallocinfo</code></td>
+ <td>/proc/vmallocinfo</td>
<td>Read-only file containing <code>vmalloc</code>'d ranges.</td>
</tr>
<tr>
- <td><code>/proc/zoneinfo</code></td>
+ <td>/proc/vmstat</td>
+ <td>Read-only file containing virtual memory statistics from the kernel.
+ </td>
+ </tr>
+ <tr>
+ <td>/proc/zoneinfo</td>
<td>Read-only file containing information about memory zones.</td>
</tr>
</table>
@@ -193,27 +370,27 @@ branch of the Android common kernel.</p>
<table>
<tr>
- <th>Path</th>
+ <th>Interface</th>
<th>Description</th>
</tr>
<tr>
- <td><code>/dev/ashmem</code></td>
+ <td>/dev/ashmem</td>
<td>Anonymous shared memory device file.</td>
</tr>
<tr>
- <td><code>/dev/binder</code></td>
+ <td>/dev/binder</td>
<td>Binder device file.</td>
</tr>
<tr>
- <td><code>/dev/hwbinder</code></td>
+ <td>/dev/hwbinder</td>
<td>Hardware binder device file.</td>
</tr>
<tr>
- <td><code>/dev/tun</code></td>
+ <td>/dev/tun</td>
<td>Universal TUN/TAP device file.</td>
</tr>
<tr>
- <td><code>/dev/xt_qtaguid</code></td>
+ <td>/dev/xt_qtaguid</td>
<td>QTAGUID netfilter device file.</td>
</tr>
</table>
@@ -221,22 +398,49 @@ branch of the Android common kernel.</p>
<h3 id="sysfs">sysfs</h3>
<table>
<tr>
- <th>Path</th>
+ <th>Interface</th>
<th>Description</th>
</tr>
<tr>
- <td><code>/sys/devices/system/cpu/online</code></td>
- <td>Read-only file showing ranges of CPUs that are currently online.</td>
+ <td>/sys/class/net/*/mtu</td>
+ <td>Read-write file containing the maximum transmission unit for each
+ interface.</td>
</tr>
<tr>
- <td><code>/sys/kernel/wakeup_reasons/last_resume_reason</code></td>
- <td>Read-only file showing a textual description of why the system exited the
- last instance of suspend.</td>
+ <td>/sys/class/rtc/*/hctosys</td>
+ <td>Read-only file showing whether a particular rtc supplies the system time
+ on boot and resume.</td>
</tr>
<tr>
- <td><code>/sys/devices/system/cpu/kernel_max</code></td>
- <td>Read-only file showing the maximum CPU index supported by the kernel.
- </td>
+ <td>/sys/devices/system/cpu/</td>
+ <td>Directory containing information about CPU configuration and
+ frequency.</td>
+ </tr>
+ <tr>
+ <td>/sys/kernel/ipv4</td>
+ <td>Directory of read-write files to configure TCP socket buffer sizes.</td>
+ </tr>
+ <tr>
+ <td>/sys/kernel/wakeup_reasons</td>
+ <td>Directory of read-only files containing the last suspend time and resume
+ reason.</td>
+ </tr>
+ <tr>
+ <td>/sys/power/state</td>
+ <td>Read-write file that controls the system sleep states.</td>
+ </tr>
+ <tr>
+ <td>/sys/power/wake_lock</td>
+ <td>Read-write file that contains the active wake locks.</td>
+ </tr>
+ <tr>
+ <td>/sys/power/wake_unlock</td>
+ <td>Read-write file that contains non-active wake locks.</td>
+ </tr>
+ <tr>
+ <td>/sys/power/wakeup_count</td>
+ <td>Read-write file that can be used to put the system into a sleep state
+ while taking into account the concurrent arrival of wakeup events.</td>
</tr>
</table>
@@ -250,17 +454,17 @@ branch of the Android common kernel.</p>
<th>Description</th>
</tr>
<tr>
- <td><code>/sys/fs/selinux/checkreqprot</code></td>
+ <td>/sys/fs/selinux/checkreqprot</td>
<td>Read/write file containing a binary flag that determines how selinux
protections are checked on <code>mmap</code> and <code>mprotect</code> calls.
</td>
</tr>
<tr>
- <td><code>/sys/fs/selinux/null</code></td>
+ <td>/sys/fs/selinux/null</td>
<td>Read/write null device for use by selinux.</td>
</tr>
<tr>
- <td><code>/sys/fs/selinux/policy</code></td>
+ <td>/sys/fs/selinux/policy</td>
<td>Read-only file containing the selinux policy in binary form.</td>
</tr>
</table>