diff --git a/input/gia/aidl/compatibility_matrix.xml b/input/gia/aidl/compatibility_matrix.xml new file mode 100644 index 0000000..1a348ea --- /dev/null +++ b/input/gia/aidl/compatibility_matrix.xml @@ -0,0 +1,10 @@ + + + com.google.input.gia.core + + IGiaService + default + + 1 + + \ No newline at end of file diff --git a/input/gia/aidl/manifest.xml b/input/gia/aidl/manifest.xml new file mode 100644 index 0000000..98303c8 --- /dev/null +++ b/input/gia/aidl/manifest.xml @@ -0,0 +1,10 @@ + + + com.google.input.gia.core + + IGiaService + default + + 1 + + \ No newline at end of file diff --git a/input/gia/gia.mk b/input/gia/gia.mk new file mode 100644 index 0000000..ea079ca --- /dev/null +++ b/input/gia/gia.mk @@ -0,0 +1,11 @@ +BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/input/gia/sepolicy + +PRODUCT_PACKAGES += gia +PRODUCT_PACKAGES += com.google.input.gia.giaservicemanager + +PRODUCT_SOONG_NAMESPACES += vendor/google/interfaces +PRODUCT_SOONG_NAMESPACES += vendor/google/input/gia/core +PRODUCT_SOONG_NAMESPACES += vendor/google/input/gia/core-servicemanager + +DEVICE_MANIFEST_FILE += device/google/gs-common/input/gia/aidl/manifest.xml +DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/input/gia/aidl/compatibility_matrix.xml diff --git a/input/gia/sepolicy/attributes b/input/gia/sepolicy/attributes new file mode 100644 index 0000000..1d61ad3 --- /dev/null +++ b/input/gia/sepolicy/attributes @@ -0,0 +1,2 @@ +# This macro produces: define hal_gia, hal_gia_client, hal_gia_server +hal_attribute(gia) diff --git a/input/gia/sepolicy/file_contexts b/input/gia/sepolicy/file_contexts new file mode 100644 index 0000000..99d6857 --- /dev/null +++ b/input/gia/sepolicy/file_contexts @@ -0,0 +1,2 @@ +# chmod +x in SEPolicy language +/vendor/bin/gia u:object_r:gia_exec:s0 diff --git a/input/gia/sepolicy/gia.te b/input/gia/sepolicy/gia.te new file mode 100644 index 0000000..2c84e7c --- /dev/null +++ b/input/gia/sepolicy/gia.te @@ -0,0 +1,18 @@ +# SEPolicies for GIA (Google Input interface Abstraction layer) +type gia, domain; +type gia_exec, exec_type, vendor_file_type, file_type; + +# Macro transferring gia_exec to the gia domain +init_daemon_domain(gia) + +# let this domain use the hal service +hal_client_domain(gia, hal_gia) +# allow binder communication with service_manager +binder_use(gia) + +# let this domain serve the hal service +hal_server_domain(gia, hal_gia) + +# allow gia for accessing touch related system file-nodes +allow gia sysfs_touch_gti:dir r_dir_perms; +allow gia sysfs_touch_gti:file rw_file_perms; diff --git a/input/gia/sepolicy/hal_gia.te b/input/gia/sepolicy/hal_gia.te new file mode 100644 index 0000000..b75c9fb --- /dev/null +++ b/input/gia/sepolicy/hal_gia.te @@ -0,0 +1,8 @@ +# allow binder connection from client to server +binder_call(hal_gia_client, hal_gia_server) + +# allow client to find the service & allow server to register the service +hal_attribute_service(hal_gia, hal_gia_service) + +# allow binder communication from server to service_manager +binder_use(hal_gia_server) diff --git a/input/gia/sepolicy/service.te b/input/gia/sepolicy/service.te new file mode 100644 index 0000000..aed1135 --- /dev/null +++ b/input/gia/sepolicy/service.te @@ -0,0 +1,2 @@ +# Declares GIA related services +type hal_gia_service, hal_service_type, protected_service, service_manager_type; diff --git a/input/gia/sepolicy/service_contexts b/input/gia/sepolicy/service_contexts new file mode 100644 index 0000000..b1773ec --- /dev/null +++ b/input/gia/sepolicy/service_contexts @@ -0,0 +1,2 @@ +# Attaches GIA services to the cooresponding SEPolicy group +com.google.input.gia.core.IGiaService/default u:object_r:hal_gia_service:s0