[automerger skipped] OGKI: add approved android15-6.6 build am: bdf248781c -s ours
am skip reason: Merged-In I5f2dc5b53dc088a50de7f91c1be61de3f797e573 with SHA-1 6e0d15c4d8 is already in history
Original change: https://android-review.googlesource.com/c/kernel/configs/+/3345260
Change-Id: I0b4f5cc42efa16654f516e3dfb0e9f61a7d5b152
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/Android.bp b/Android.bp
index 7254d6a..1390cc2 100644
--- a/Android.bp
+++ b/Android.bp
@@ -28,3 +28,10 @@
src: "kernel-lifetimes.xml",
sub_dir: "kernel",
}
+
+filegroup {
+ name: "kernel_lifetimes_ref",
+ srcs: [
+ "kernel-lifetimes.xml",
+ ],
+}
diff --git a/OWNERS b/OWNERS
index ea62c47..8ae14d2 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,4 +1,3 @@
-adelva@google.com
-elsk@google.com
-sspatil@google.com
-tkjos@google.com
+include kernel/common:android-mainline:/OWNERS
+
+per-file approved-ogki-builds.xml=gprocida@google.com,szuweilin@google.com
diff --git a/kernel-lifetimes.xml b/kernel-lifetimes.xml
index b67526c..c2d01a5 100644
--- a/kernel-lifetimes.xml
+++ b/kernel-lifetimes.xml
@@ -6,65 +6,80 @@
<branch name="android-4.19" version="4.19" launch="2018-10-22" eol="2025-01-01">
<no-releases reason="non-GKI kernel"/>
</branch>
- <branch name="android11-5.4" version="5.4" launch="2019-11-24" eol="2026-01-01">
+ <branch name="android11-5.4" min_android_release="11" version="5.4" launch="2019-11-24" eol="2026-01-01">
<no-releases reason="non-GKI kernel"/>
</branch>
- <branch name="android12-5.4" version="5.4" launch="2019-11-24" eol="2026-01-01">
+ <branch name="android12-5.4" min_android_release="12" version="5.4" launch="2019-11-24" eol="2026-01-01">
<no-releases reason="non-GKI kernel"/>
</branch>
- <branch name="android12-5.10" version="5.10" launch="2020-12-13" eol="2027-07-01">
+ <branch name="android12-5.10" min_android_release="12" version="5.10" launch="2020-12-13" eol="2027-07-01">
<lts-versions>
<release version="5.10.198" launch="2023-11-14" eol="2024-11-01"/>
<release version="5.10.205" launch="2024-03-12" eol="2024-11-01"/>
<release version="5.10.209" launch="2024-05-09" eol="2025-06-01"/>
+ <release version="5.10.218" launch="2024-08-12" eol="2025-09-01"/>
</lts-versions>
</branch>
- <branch name="android13-5.10" version="5.10" launch="2020-12-13" eol="2027-07-01">
+ <branch name="android13-5.10" min_android_release="13" version="5.10" launch="2020-12-13" eol="2027-07-01">
<lts-versions>
<release version="5.10.189" launch="2023-10-31" eol="2024-11-01"/>
<release version="5.10.198" launch="2023-12-13" eol="2024-11-01"/>
<release version="5.10.205" launch="2024-02-20" eol="2024-11-01"/>
<release version="5.10.209" launch="2024-04-27" eol="2025-06-01"/>
<release version="5.10.210" launch="2024-06-21" eol="2025-07-01"/>
+ <release version="5.10.214" launch="2024-07-24" eol="2025-08-01"/>
+ <release version="5.10.218" launch="2024-08-22" eol="2025-09-01"/>
+ <release version="5.10.223" launch="2024-09-26" eol="2025-10-01"/>
</lts-versions>
</branch>
- <branch name="android13-5.15" version="5.15" launch="2021-10-31" eol="2028-07-01">
+ <branch name="android13-5.15" min_android_release="13" version="5.15" launch="2021-10-31" eol="2028-07-01">
<lts-versions>
<release version="5.15.123" launch="2023-10-27" eol="2024-11-01"/>
<release version="5.15.137" launch="2023-12-13" eol="2024-11-01"/>
<release version="5.15.144" launch="2024-02-20" eol="2024-11-01"/>
<release version="5.15.148" launch="2024-04-27" eol="2025-05-01"/>
- <release version="5.15.149" launch="2024-06-12" eol="2025-07-01"/>
+ <release version="5.15.149" launch="2024-06-12" eol="2025-08-01"/>
+ <release version="5.15.151" launch="2024-08-21" eol="2025-09-01"/>
+ <release version="5.15.153" launch="2024-09-25" eol="2025-09-01"/>
</lts-versions>
</branch>
- <branch name="android14-5.15" version="5.15" launch="2021-10-31" eol="2028-07-01">
+ <branch name="android14-5.15" min_android_release="14" version="5.15" launch="2021-10-31" eol="2028-07-01">
<lts-versions>
<release version="5.15.123" launch="2023-10-27" eol="2024-11-01"/>
+ <release version="5.15.131" launch="2023-11-24" eol="2024-11-01"/>
<release version="5.15.137" launch="2023-12-13" eol="2024-11-01"/>
<release version="5.15.144" launch="2024-02-20" eol="2024-11-01"/>
<release version="5.15.148" launch="2024-04-27" eol="2025-05-01"/>
<release version="5.15.149" launch="2024-06-27" eol="2025-07-01"/>
<release version="5.15.153" launch="2024-07-09" eol="2025-08-01"/>
+ <release version="5.15.158" launch="2024-08-09" eol="2025-09-01"/>
+ <release version="5.15.164" launch="2024-09-10" eol="2025-10-01"/>
</lts-versions>
</branch>
- <branch name="android14-6.1" version="6.1" launch="2022-12-11" eol="2029-07-01">
+ <branch name="android14-6.1" min_android_release="14" version="6.1" launch="2022-12-11" eol="2029-07-01">
<lts-versions>
<release version="6.1.43" launch="2023-10-31" eol="2024-11-01"/>
<release version="6.1.57" launch="2023-12-15" eol="2024-11-01"/>
<release version="6.1.68" launch="2024-02-21" eol="2024-11-01"/>
<release version="6.1.75" launch="2024-04-24" eol="2025-05-01"/>
<release version="6.1.78" launch="2024-06-20" eol="2025-07-01"/>
+ <release version="6.1.84" launch="2024-07-24" eol="2025-08-01"/>
+ <release version="6.1.90" launch="2024-08-22" eol="2025-09-01"/>
+ <release version="6.1.93" launch="2024-09-26" eol="2025-10-01"/>
+ <release version="6.1.99" launch="2024-10-09" eol="2025-11-01"/>
</lts-versions>
</branch>
- <branch name="android15-6.6" version="6.6" launch="2023-10-29" eol="2028-07-01">
+ <branch name="android15-6.6" min_android_release="15" version="6.6" launch="2023-10-29" eol="2028-07-01">
<lts-versions>
- <release version="6.6.30" launch="2024-07-12" eol="2025-08-01"/>
+ <release version="6.6.30" launch="2024-07-12" eol="2025-09-01"/>
+ <release version="6.6.46" launch="2024-09-16" eol="2025-10-01"/>
+ <release version="6.6.50" launch="2024-10-11" eol="2025-11-01"/>
</lts-versions>
</branch>
</kernels>
diff --git a/tools/bump.py b/tools/bump.py
index 8aed6bd..13fd4f8 100755
--- a/tools/bump.py
+++ b/tools/bump.py
@@ -30,7 +30,9 @@
subprocess.check_call(*args, **kwargs)
def replace_configs_module_name(current_release, new_release, file_path):
- check_call("sed -i'' -E 's/\"kernel_config_{}_([0-9.]*)\"/\"kernel_config_{}_\\1\"/g' {}"
+ # TODO(b/355580919): Remove the pattern '[0-9]+\\.next' by replacing the
+ # version placeholder with 'next'.
+ check_call("sed -i'' -E 's/\"kernel_config_{}_([0-9]+\\.[0-9]+|[0-9]+\\.next|next)\"/\"kernel_config_{}_\\1\"/g' {}"
.format(current_release, new_release, file_path), shell=True)
class Bump(object):
diff --git a/w/android-6.next/Android.bp b/w/android-6.12/Android.bp
similarity index 95%
rename from w/android-6.next/Android.bp
rename to w/android-6.12/Android.bp
index 1f9c8ae..db574e2 100644
--- a/w/android-6.next/Android.bp
+++ b/w/android-6.12/Android.bp
@@ -18,7 +18,7 @@
}
kernel_config {
- name: "kernel_config_w_6.next",
+ name: "kernel_config_w_6.12",
srcs: [
"android-base.config",
],
diff --git a/w/android-6.next/android-base-conditional.xml b/w/android-6.12/android-base-conditional.xml
similarity index 97%
rename from w/android-6.next/android-base-conditional.xml
rename to w/android-6.12/android-base-conditional.xml
index cb7cd51..5b88bd1 100644
--- a/w/android-6.next/android-base-conditional.xml
+++ b/w/android-6.12/android-base-conditional.xml
@@ -1,4 +1,4 @@
-<kernel minlts="6.6.0" />
+<kernel minlts="6.12.0" />
<!-- KEEP ALPHABETICALLY SORTED -->
<!-- ARM base requirements -->
@@ -114,11 +114,11 @@
<value type="bool">y</value>
</config>
<config>
- <key>CONFIG_PAGE_TABLE_ISOLATION</key>
+ <key>CONFIG_MITIGATION_PAGE_TABLE_ISOLATION</key>
<value type="bool">y</value>
</config>
<config>
- <key>CONFIG_RETPOLINE</key>
+ <key>CONFIG_MITIGATION_RETPOLINE</key>
<value type="bool">y</value>
</config>
<config>
@@ -241,4 +241,4 @@
<key>CONFIG_INIT_STACK_ALL_ZERO</key>
<value type="bool">y</value>
</config>
-</group>
\ No newline at end of file
+</group>
diff --git a/w/android-6.next/android-base.config b/w/android-6.12/android-base.config
similarity index 100%
rename from w/android-6.next/android-base.config
rename to w/android-6.12/android-base.config
diff --git a/w/android-6.next/Android.bp b/xsd/approvedBuild/Android.bp
similarity index 69%
copy from w/android-6.next/Android.bp
copy to xsd/approvedBuild/Android.bp
index 1f9c8ae..5a5e517 100644
--- a/w/android-6.next/Android.bp
+++ b/xsd/approvedBuild/Android.bp
@@ -1,26 +1,29 @@
+//
// Copyright (C) 2024 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+//
package {
- // See: http://go/android-license-faq
+ default_team: "trendy_team_android_kernel",
+
+ // http://go/android-license-faq
default_applicable_licenses: ["Android-Apache-2.0"],
}
-kernel_config {
- name: "kernel_config_w_6.next",
- srcs: [
- "android-base.config",
- ],
- meta: "android-base-conditional.xml",
+xsd_config {
+ name: "approved_build",
+ srcs: ["approved_build.xsd"],
+ package_name: "approved.build",
+ api_dir: "schema",
}
diff --git a/xsd/approvedBuild/approved_build.xsd b/xsd/approvedBuild/approved_build.xsd
new file mode 100644
index 0000000..a2d06aa
--- /dev/null
+++ b/xsd/approvedBuild/approved_build.xsd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<xs:schema version="2.0"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="ogki-approved">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="branch" type="branch" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="version" type="xs:int" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:complexType name="branch">
+ <xs:sequence>
+ <xs:element name="build" type="build" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="build">
+ <xs:attribute name="id" type="xs:string" use="required"/>
+ <xs:attribute name="bug" type="xs:integer"/>
+ </xs:complexType>
+</xs:schema>
diff --git a/xsd/approvedBuild/schema/current.txt b/xsd/approvedBuild/schema/current.txt
new file mode 100644
index 0000000..329b837
--- /dev/null
+++ b/xsd/approvedBuild/schema/current.txt
@@ -0,0 +1,34 @@
+// Signature format: 2.0
+package approved.build {
+
+ public class Branch {
+ ctor public Branch();
+ method public java.util.List<approved.build.Build> getBuild();
+ method public String getName();
+ method public void setName(String);
+ }
+
+ public class Build {
+ ctor public Build();
+ method public java.math.BigInteger getBug();
+ method public String getId();
+ method public void setBug(java.math.BigInteger);
+ method public void setId(String);
+ }
+
+ public class OgkiApproved {
+ ctor public OgkiApproved();
+ method public java.util.List<approved.build.Branch> getBranch();
+ method public int getVersion();
+ method public void setVersion(int);
+ }
+
+ public class XmlParser {
+ ctor public XmlParser();
+ method public static approved.build.OgkiApproved read(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ method public static String readText(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ method public static void skip(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ }
+
+}
+
diff --git a/xsd/approvedBuild/schema/last_current.txt b/xsd/approvedBuild/schema/last_current.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/xsd/approvedBuild/schema/last_current.txt
diff --git a/xsd/approvedBuild/schema/last_removed.txt b/xsd/approvedBuild/schema/last_removed.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/xsd/approvedBuild/schema/last_removed.txt
diff --git a/xsd/approvedBuild/schema/removed.txt b/xsd/approvedBuild/schema/removed.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/xsd/approvedBuild/schema/removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/xsd/approvedBuild/vts/Android.bp b/xsd/approvedBuild/vts/Android.bp
new file mode 100644
index 0000000..1a02a0a
--- /dev/null
+++ b/xsd/approvedBuild/vts/Android.bp
@@ -0,0 +1,54 @@
+//
+// Copyright (C) 2024 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+package {
+ default_team: "trendy_team_android_kernel",
+
+ // http://go/android-license-faq
+ default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+cc_test {
+ name: "vts_approvedBuild_validate_test",
+ srcs: [
+ "ValidateApprovedBuild.cpp",
+ ],
+ defaults: [
+ "libvintf_static_user_defaults",
+ ],
+ static_libs: [
+ "android.hardware.audio.common.test.utility",
+ "libkver",
+ "libvintf",
+ "libxml2",
+ ],
+ shared_libs: [
+ "liblog",
+ "libbase",
+ ],
+ cflags: [
+ "-Wall",
+ "-Werror",
+ ],
+ data: [
+ ":approved_build",
+ ],
+ test_suites: [
+ "device-tests",
+ "vts",
+ ],
+ auto_gen_config: true,
+}
diff --git a/xsd/approvedBuild/vts/ValidateApprovedBuild.cpp b/xsd/approvedBuild/vts/ValidateApprovedBuild.cpp
new file mode 100644
index 0000000..4f790a3
--- /dev/null
+++ b/xsd/approvedBuild/vts/ValidateApprovedBuild.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <android-base/file.h>
+#include <kver/kernel_release.h>
+#include <unistd.h>
+#include <vintf/VintfObject.h>
+
+#include <string>
+
+#include "utility/ValidateXml.h"
+
+TEST(CheckConfig, approvedBuildValidation) {
+ const auto kernel_release = android::kver::KernelRelease::Parse(
+ android::vintf::VintfObject::GetRuntimeInfo()->osRelease(),
+ /* allow_suffix = */ true);
+ if (!kernel_release.has_value()) {
+ GTEST_FAIL() << "Failed to parse the kernel release string";
+ }
+ if (kernel_release->android_release() < 14) {
+ GTEST_SKIP() << "Kernel releases below android14 are exempt";
+ }
+
+ RecordProperty("description",
+ "Verify that the approved OGKI builds file "
+ "is valid according to the schema");
+
+ std::string xml_schema_path =
+ android::base::GetExecutableDirectory() + "/approved_build.xsd";
+ std::vector<const char*> locations = {"/system/etc/kernel"};
+ EXPECT_ONE_VALID_XML_MULTIPLE_LOCATIONS("approved-ogki-builds.xml", locations,
+ xml_schema_path.c_str());
+}
diff --git a/xsd/kernelLifetimes/kernel_lifetimes.xsd b/xsd/kernelLifetimes/kernel_lifetimes.xsd
index d345899..7f90d89 100644
--- a/xsd/kernelLifetimes/kernel_lifetimes.xsd
+++ b/xsd/kernelLifetimes/kernel_lifetimes.xsd
@@ -32,6 +32,7 @@
<xs:element name="lts-versions" type="lts-versions"/>
</xs:choice>
<xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="min_android_release" type="xs:int"/>
<xs:attribute name="version" type="xs:string" use="required"/>
<xs:attribute name="launch" type="xs:date" use="required"/>
<xs:attribute name="eol" type="xs:date" use="required"/>
diff --git a/xsd/kernelLifetimes/schema/current.txt b/xsd/kernelLifetimes/schema/current.txt
index 1add2ec..bd96b76 100644
--- a/xsd/kernelLifetimes/schema/current.txt
+++ b/xsd/kernelLifetimes/schema/current.txt
@@ -6,12 +6,14 @@
method public javax.xml.datatype.XMLGregorianCalendar getEol();
method public javax.xml.datatype.XMLGregorianCalendar getLaunch();
method public kernel.lifetimes.LtsVersions getLtsVersions_optional();
+ method public int getMin_android_release();
method public String getName();
method public kernel.lifetimes.NoReleases getNoReleases_optional();
method public String getVersion();
method public void setEol(javax.xml.datatype.XMLGregorianCalendar);
method public void setLaunch(javax.xml.datatype.XMLGregorianCalendar);
method public void setLtsVersions_optional(kernel.lifetimes.LtsVersions);
+ method public void setMin_android_release(int);
method public void setName(String);
method public void setNoReleases_optional(kernel.lifetimes.NoReleases);
method public void setVersion(String);