Add com.android.virt.accessor_demo
This provides a reference IAccessor implementation.
Test: atest vm_accessor_test
Bug: 349578050
Change-Id: I956e8e7706c43c8e672ec669d4c8912f09635061
diff --git a/demo_accessor/apex/Android.bp b/demo_accessor/apex/Android.bp
new file mode 100644
index 0000000..e954572
--- /dev/null
+++ b/demo_accessor/apex/Android.bp
@@ -0,0 +1,52 @@
+// Copyright 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_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+// apex_test allows to skips apex_available checks for dependencies.
+// However, real apex should add itself to apex_available for all dependencies.
+apex_test {
+ name: "com.android.virt.accessor_demo",
+ manifest: "manifest.json",
+ file_contexts: "accessor_demo-file_contexts",
+
+ // You probably need your own key
+ key: "com.android.virt.key",
+
+ updatable: false,
+ future_updatable: false,
+ platform_apis: true,
+ system_ext_specific: true,
+
+ binaries: ["accessor_demo"],
+ apps: ["AccessorVmApp"],
+ prebuilts: [
+ "accessor_demo.init.rc",
+ "accessor_demo.xml",
+ ],
+}
+
+prebuilt_etc {
+ name: "accessor_demo.init.rc",
+ src: "accessor_demo.init.rc",
+ installable: false,
+}
+
+prebuilt_etc {
+ name: "accessor_demo.xml",
+ src: "accessor_demo.xml",
+ sub_dir: "vintf",
+ installable: false,
+}
diff --git a/demo_accessor/apex/accessor_demo-file_contexts b/demo_accessor/apex/accessor_demo-file_contexts
new file mode 100644
index 0000000..2007157
--- /dev/null
+++ b/demo_accessor/apex/accessor_demo-file_contexts
@@ -0,0 +1,3 @@
+# TODO: Give proper label
+(/.*)? u:object_r:system_file:s0
+/bin/accessor_demo u:object_r:virtualizationservice_exec:s0
diff --git a/demo_accessor/apex/accessor_demo.init.rc b/demo_accessor/apex/accessor_demo.init.rc
new file mode 100644
index 0000000..f3dfae9
--- /dev/null
+++ b/demo_accessor/apex/accessor_demo.init.rc
@@ -0,0 +1,20 @@
+# Copyright 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.
+
+# Register this as lazy service, so IAccessor and its VM is only running while binder is in use.
+service accessor_demo /apex/com.android.virt.accessor_demo/bin/accessor_demo
+ disabled
+ oneshot
+ # MUST match with VINTF and accessor/src/main.rs
+ interface aidl android.os.IAccessor/IAccessorVmService/default
diff --git a/demo_accessor/apex/accessor_demo.xml b/demo_accessor/apex/accessor_demo.xml
new file mode 100644
index 0000000..e9df3df
--- /dev/null
+++ b/demo_accessor/apex/accessor_demo.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 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.
+-->
+
+<manifest version="1.0" type="framework">
+ <hal format="aidl">
+ <name>com.android.virt.accessor_demo.vm_service</name>
+ <version>1</version>
+ <fqname>IAccessorVmService/default</fqname>
+ <!-- MUST match with init.rc and accessor/src/main.rs -->
+ <accessor>android.os.IAccessor/IAccessorVmService/default</accessor>
+ </hal>
+</manifest>
\ No newline at end of file
diff --git a/demo_accessor/apex/manifest.json b/demo_accessor/apex/manifest.json
new file mode 100644
index 0000000..a09523a
--- /dev/null
+++ b/demo_accessor/apex/manifest.json
@@ -0,0 +1,4 @@
+{
+ "name": "com.android.virt.accessor_demo",
+ "version": 1
+}