Introduce authfs_service
authfs_service serves as a privileged process in order to facilitate
authfs mounting (which is a privileged operation) for the client.
Once the service exists on microdroid, we will re-architect compsvc to
get the FD from authfs_service.
Code review hints:
- authfs.rs is a modified copy from compos/src/authfs.rs. The original
file should later be deleted as part of the re-architecturing.
- The implementation intends to tie the lifecycle of an authfs
instance/process/mount to the IAuthFs object, and clean up on the
Rust object's drop.
Bug: 194717985
Test: 1. Start an fd_server with some files opened for read and write
2. Start authfs_service
3. Write a binder client with proper AuthFsConfig to get an
IAuthFs from authfs_service. Let the client retrieves the FDs
and copy from one remote FD to the other.
4. Observe the file copy is correct.
Change-Id: Ia9979ee8d23f87bc33e2b670e135f63fee016426
diff --git a/authfs/service/Android.bp b/authfs/service/Android.bp
new file mode 100644
index 0000000..3f3a0c3
--- /dev/null
+++ b/authfs/service/Android.bp
@@ -0,0 +1,22 @@
+package {
+ default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+rust_binary {
+ name: "authfs_service",
+ srcs: [
+ "src/main.rs",
+ ],
+ edition: "2018",
+ rustlibs: [
+ "authfs_aidl_interface-rust",
+ "libandroid_logger",
+ "libanyhow",
+ "libbinder_rs",
+ "liblibc",
+ "liblog_rust",
+ "libnix",
+ "libshared_child",
+ ],
+ prefer_rlib: true,
+}