summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarshit Mahajan <harshitmahajan@google.com>2023-12-12 06:28:48 +0000
committerHarshit Mahajan <harshitmahajan@google.com>2024-01-09 21:40:29 +0000
commita4464326f8a0df0515b71f1ba38cb6397e440b1a (patch)
tree4efb08f09f72fec674dee2805137cd3b4372088b
parent0c8a298d5b985e70396f5a749b467b21f13d23fa (diff)
downloadCrashRecovery-a4464326f8a0df0515b71f1ba38cb6397e440b1a.tar.gz
Revert^2 "Create skeleton Apex"
f7ff54804ed724ff6873b73272426d4d7333ab6d Bug: b/289203818 Test: m Change-Id: I929910ffb120c38f4e2092791442ca9039fcea75
-rw-r--r--apex/Android.bp163
-rw-r--r--apex/com.android.crashrecovery.avbpubkeybin0 -> 1032 bytes
-rw-r--r--apex/com.android.crashrecovery.pem52
-rw-r--r--apex/com.android.crashrecovery.pk8bin0 -> 2373 bytes
-rw-r--r--apex/com.android.crashrecovery.x509.pem34
-rw-r--r--apex/manifest.json7
-rw-r--r--framework/Android.bp32
-rw-r--r--framework/api/current.txt1
-rw-r--r--framework/api/module-lib-current.txt1
-rw-r--r--framework/api/module-lib-removed.txt1
-rw-r--r--framework/api/removed.txt1
-rw-r--r--framework/api/system-current.txt1
-rw-r--r--framework/api/system-removed.txt1
-rw-r--r--framework/java/com/android/service/watchdog/Foobar.java23
-rw-r--r--service/Android.bp35
-rw-r--r--service/api/current.txt1
-rw-r--r--service/api/module-lib-current.txt1
-rw-r--r--service/api/module-lib-removed.txt1
-rw-r--r--service/api/removed.txt1
-rw-r--r--service/api/system-server-current.txt1
-rw-r--r--service/api/system-server-removed.txt1
-rw-r--r--service/java/com/android/server/FoobarService.java23
22 files changed, 381 insertions, 0 deletions
diff --git a/apex/Android.bp b/apex/Android.bp
new file mode 100644
index 0000000..1e3a03b
--- /dev/null
+++ b/apex/Android.bp
@@ -0,0 +1,163 @@
+// Copyright (C) 2023 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_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+soong_config_module_type {
+ name: "custom_bootclasspath_fragment",
+ module_type: "bootclasspath_fragment",
+ config_namespace: "ANDROID",
+ bool_variables: [
+ "release_crashrecovery_module",
+ ],
+ properties: [
+ "enabled"
+ ],
+}
+
+// Encapsulate the contributions made by the com.android.crashrecovery to the bootclasspath.
+custom_bootclasspath_fragment {
+ // This fragment will be enabled using release_crashrecovery_module flag
+ enabled: false,
+ soong_config_variables: {
+ release_crashrecovery_module: {
+ enabled: true,
+ },
+ },
+
+ name: "com.android.crashrecovery-bootclasspath-fragment",
+ contents: ["framework-crashrecovery"],
+ apex_available: ["com.android.crashrecovery"],
+ hidden_api: {
+ split_packages: ["*"] // TODO(b/289203818) be more specific
+ },
+ // The bootclasspath_fragments that provide APIs on which this depends.
+ fragments: [
+
+ // Needed to access core java APIs.
+ {
+ apex: "com.android.art",
+ module: "art-bootclasspath-fragment",
+ },
+ ],
+
+ // Additional stubs libraries that this fragment's contents use which are
+ // not provided by another bootclasspath_fragment.
+ additional_stubs: [
+ // Needed to access platform APIs.
+ "android-non-updatable",
+ ],
+}
+
+soong_config_module_type {
+ name: "custom_systemserverclasspath_fragment",
+ module_type: "systemserverclasspath_fragment",
+ config_namespace: "ANDROID",
+ bool_variables: [
+ "release_crashrecovery_module",
+ ],
+ properties: [
+ "enabled"
+ ],
+}
+
+// Encapsulate the contributions made by the com.android.crashrecovery to the systemserverclasspath.
+custom_systemserverclasspath_fragment {
+ // This fragment will be enabled using release_crashrecovery_module flag
+ enabled: false,
+ soong_config_variables: {
+ release_crashrecovery_module: {
+ enabled: true,
+ },
+ },
+
+ name: "com.android.crashrecovery-systemserverclasspath-fragment",
+ contents: ["service-crashrecovery"],
+ apex_available: ["com.android.crashrecovery"],
+}
+
+apex_key {
+ name: "com.android.crashrecovery.key",
+ public_key: "com.android.crashrecovery.avbpubkey",
+ private_key: "com.android.crashrecovery.pem",
+}
+
+android_app_certificate {
+ name: "com.android.crashrecovery.certificate",
+ certificate: "com.android.crashrecovery",
+}
+
+soong_config_module_type {
+ name: "custom_apex",
+ module_type: "apex",
+ config_namespace: "ANDROID",
+ bool_variables: [
+ "release_crashrecovery_module",
+ ],
+ properties: [
+ "enabled"
+ ],
+}
+
+custom_apex {
+ // This apex will be enabled using release_crashrecovery_module flag
+ enabled: false,
+ soong_config_variables: {
+ release_crashrecovery_module: {
+ enabled: true,
+ },
+ },
+
+ name: "com.android.crashrecovery",
+ defaults: ["v-launched-apex-module"],
+ bootclasspath_fragments: ["com.android.crashrecovery-bootclasspath-fragment"],
+ systemserverclasspath_fragments: [
+ "com.android.crashrecovery-systemserverclasspath-fragment",
+ ],
+ file_contexts: ":com.android.crashrecovery-file_contexts",
+ prebuilts: [
+ "current_sdkinfo",
+ ],
+ key: "com.android.crashrecovery.key",
+ certificate: ":com.android.crashrecovery.certificate",
+ manifest: "manifest.json",
+ min_sdk_version: "34",
+}
+
+soong_config_module_type {
+ name: "custom_sdk",
+ module_type: "sdk",
+ config_namespace: "ANDROID",
+ bool_variables: [
+ "release_crashrecovery_module",
+ ],
+ properties: [
+ "enabled"
+ ],
+}
+
+custom_sdk {
+ // This sdk will be enabled using release_crashrecovery_module flag
+ enabled: false,
+ soong_config_variables: {
+ release_crashrecovery_module: {
+ enabled: true,
+ },
+ },
+
+ name: "crashrecovery-sdk",
+ apexes: ["com.android.crashrecovery"],
+}
diff --git a/apex/com.android.crashrecovery.avbpubkey b/apex/com.android.crashrecovery.avbpubkey
new file mode 100644
index 0000000..77da3bb
--- /dev/null
+++ b/apex/com.android.crashrecovery.avbpubkey
Binary files differ
diff --git a/apex/com.android.crashrecovery.pem b/apex/com.android.crashrecovery.pem
new file mode 100644
index 0000000..305905a
--- /dev/null
+++ b/apex/com.android.crashrecovery.pem
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+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
+fjYFm6MyBYkhbartcXD3mbkphLS/QQ==
+-----END PRIVATE KEY-----
diff --git a/apex/com.android.crashrecovery.pk8 b/apex/com.android.crashrecovery.pk8
new file mode 100644
index 0000000..7776263
--- /dev/null
+++ b/apex/com.android.crashrecovery.pk8
Binary files differ
diff --git a/apex/com.android.crashrecovery.x509.pem b/apex/com.android.crashrecovery.x509.pem
new file mode 100644
index 0000000..0540f98
--- /dev/null
+++ b/apex/com.android.crashrecovery.x509.pem
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIIF1zCCA78CFE7JxQwseCR+PlWgD8SWg3XQ+IR8MA0GCSqGSIb3DQEBCwUAMIGm
+MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91
+bnRhaW4gVmlldzEQMA4GA1UECgwHQW5kcm9pZDEQMA4GA1UECwwHQW5kcm9pZDEi
+MCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTEiMCAGA1UEAwwZY29t
+LmFuZHJvaWQuY3Jhc2hyZWNvdmVyeTAgFw0yMzA1MDkxNjI0MjVaGA80NzYxMDQw
+NDE2MjQyNVowgaYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYw
+FAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdBbmRyb2lkMRAwDgYDVQQL
+DAdBbmRyb2lkMSIwIAYJKoZIhvcNAQkBFhNhbmRyb2lkQGFuZHJvaWQuY29tMSIw
+IAYDVQQDDBljb20uYW5kcm9pZC5jcmFzaHJlY292ZXJ5MIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEAvz1dJr7rOq1T3h4ETrFwfUjswT6etFh1h5IQ2SDW
+zd43AGTG4QyLgrnqYnRqOHIw031cseHNT1gkaXh5Id1qYWge4of5EHI7VWxdj93e
+BA3EGnOQvWhqsqEiqXoCx7woHBXNBZ5hYcsxmTdiBXQMi8FOqhnL6f1i2AuLK0Kd
+IgloJtz9sDXMQI3FZd2KyEriDtqrNJt2gVMHpMjc1Nt2V82DTPonrqKhp+zfKGZA
+2k/95NEjmhi49qsVdppVPY6jqwDjyKMVCsOjSisvzutaZAotv4sJCIZTYDQ2P47q
+5+H+BNjf0MlpRpfZkfVpoz+D5nkp3feYuxdJgLB0XJUsmbueu3LXefvP1CayGdlB
+Ion6ZRRucbv528NpVm+134aza2ifUxc8lsq+4FN7zm+7oocSWrh95GfRZqVBNwyE
+OSJaS1twBXS76mDBggJmcVVRKR1vOuqVoROjs7P4Dh/wzAP/Hl/CIwlH24NJDuDv
+JJHduip7TlIbojNWFO0UNsmi7fnc//pluq/uvWI10vgp2CbCj+ILaGbNsZJb67wb
+Yne9kF/TMbJnnBONY8O0qhEawJLhxrrcx1CBsX22GnGudkVDCItQM55fKkaK2alq
+H2qSlEGFYgKrP4xksv5zCNBxu7xTZALbQktDWX5q5ca/ZLzaVD9fi1ycFWcDxYr9
+MCMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAcXGjOr6yesIFAOmMGix/KjThQhM1
+tI8dpz731xzWGFE4DmjsSXhosj4W/8JPsxiC2T3e0CXfk/2pmrxLTj4bRPX0AupQ
+lVjFo6usljmS15qMvqhshZkRX8lBG4Pgy8YapD5NklKyhcz2XQSVJSSTj3M0q08E
+cWsSfJGgV+PaTFvD3d0TDMPabnGzS3+3H0ry3l+vmHF7YFuzcBsU3uYAvdMVrI4d
+e9mFQU2vOemp4HzLlkoxEROErrlMtE3yIxtV42Zm2K1Tukm4/eP1lo18Ki3C5zIH
+5IagjK4uTImotIXcNr1C96depoEtW+RZkWmI3CFdUx2IdrhGXn6gba5cy/XCWwtN
+JcDB3by2XrnnQPXfUrd58taqe7DtM2bTNaUJRCzxMI8JnrtuFrGn9mN0fd+qyh9O
+g2KRcfezbZpTku3MGeLgWaOMsy/oFJolFEwCtB6eVrQnabIc0ZHfGBZboGyc+zUn
+FGkq63wKcDZmIGPuc5piMihvmUV0LKlzXRc7pvjWAUXGDTEdLBYyus3BF6xgPGeD
+hPFaEtSWs2ivRjkFi117jLPT3TKLWzWMn6LBsHBBofqn2W2OTM+GpqS7Xp80sR8m
+evIEb2u5AoSCXa98toPY7xyxYF+i0dQxWIiJIeE/HTFlYK/MdfO6yACK4qyyvf2F
+qExxrF5L5qotgAQ=
+-----END CERTIFICATE-----
diff --git a/apex/manifest.json b/apex/manifest.json
new file mode 100644
index 0000000..c13a3ea
--- /dev/null
+++ b/apex/manifest.json
@@ -0,0 +1,7 @@
+{
+ "name": "com.android.crashrecovery",
+
+ // Placeholder module version to be replaced during build.
+ // Do not change!
+ "version": 0
+}
diff --git a/framework/Android.bp b/framework/Android.bp
new file mode 100644
index 0000000..0d03367
--- /dev/null
+++ b/framework/Android.bp
@@ -0,0 +1,32 @@
+// Copyright (C) 2022 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_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+java_sdk_library {
+ name: "framework-crashrecovery",
+ srcs: [
+ "java/**/*.java",
+ ],
+ apex_available: [
+ "com.android.crashrecovery",
+ ],
+ defaults: ["framework-module-defaults"],
+ sdk_version: "module_current",
+ impl_library_visibility: [
+ "//packages/modules/CrashRecovery:__subpackages__"
+ ],
+} \ No newline at end of file
diff --git a/framework/api/current.txt b/framework/api/current.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/framework/api/current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/framework/api/module-lib-current.txt b/framework/api/module-lib-current.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/framework/api/module-lib-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/framework/api/module-lib-removed.txt b/framework/api/module-lib-removed.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/framework/api/module-lib-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/framework/api/removed.txt b/framework/api/removed.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/framework/api/removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/framework/api/system-current.txt b/framework/api/system-current.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/framework/api/system-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/framework/api/system-removed.txt b/framework/api/system-removed.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/framework/api/system-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/framework/java/com/android/service/watchdog/Foobar.java b/framework/java/com/android/service/watchdog/Foobar.java
new file mode 100644
index 0000000..d888545
--- /dev/null
+++ b/framework/java/com/android/service/watchdog/Foobar.java
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 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 com.android.service.watchdog;
+
+
+/** @hide */
+public class Foobar {
+
+} \ No newline at end of file
diff --git a/service/Android.bp b/service/Android.bp
new file mode 100644
index 0000000..e756272
--- /dev/null
+++ b/service/Android.bp
@@ -0,0 +1,35 @@
+// Copyright (C) 2022 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_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+java_sdk_library {
+ name: "service-crashrecovery",
+ srcs: [
+ "java/**/*.java",
+ ],
+ defaults: [
+ "framework-system-server-module-defaults",
+ ],
+ permitted_packages: [],
+ apex_available: [
+ "com.android.crashrecovery",
+ ],
+ sdk_version: "module_current",
+ impl_library_visibility: [
+ "//packages/modules/CrashRecovery:__subpackages__"
+ ],
+} \ No newline at end of file
diff --git a/service/api/current.txt b/service/api/current.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/service/api/current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/service/api/module-lib-current.txt b/service/api/module-lib-current.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/service/api/module-lib-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/service/api/module-lib-removed.txt b/service/api/module-lib-removed.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/service/api/module-lib-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/service/api/removed.txt b/service/api/removed.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/service/api/removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/service/api/system-server-current.txt b/service/api/system-server-current.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/service/api/system-server-current.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/service/api/system-server-removed.txt b/service/api/system-server-removed.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/service/api/system-server-removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/service/java/com/android/server/FoobarService.java b/service/java/com/android/server/FoobarService.java
new file mode 100644
index 0000000..93653a8
--- /dev/null
+++ b/service/java/com/android/server/FoobarService.java
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 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 com.android.server;
+
+
+/** @hide */
+public class FoobarService {
+
+} \ No newline at end of file