diff options
author | Android Partner Docs <noreply@android.com> | 2018-08-08 13:50:33 -0700 |
---|---|---|
committer | Clay Murphy <claym@google.com> | 2018-08-08 14:05:32 -0700 |
commit | ea448b829ef3c5eefcadcd50fdf74c873eeadd86 (patch) | |
tree | 34c2647a8d8c2dffdbcdac2c5ba11d41d1426da8 /en/devices/architecture/kernel | |
parent | 19a77ba572d415186ce503e4bf8be87fe45d08eb (diff) | |
download | source.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.html | 30 | ||||
-rw-r--r-- | en/devices/architecture/kernel/config.html | 93 | ||||
-rw-r--r-- | en/devices/architecture/kernel/modular-kernels.html | 110 | ||||
-rw-r--r-- | en/devices/architecture/kernel/releases.html | 2 | ||||
-rw-r--r-- | en/devices/architecture/kernel/reqs-interfaces.html | 368 |
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> |