| ================================================================================================== |
| aidl_lazy_test |
| ================================================================================================== |
| This test can be run in one of two ways: |
| |
| -------------------------------------------- |
| Without arguments: aidl_lazy_test |
| -------------------------------------------- |
| This will run tests on the test service (described below), the goal being to test the dynamic |
| service infrastructure. |
| |
| -------------------------------------------- |
| With a service: aidl_lazy_test serviceName... |
| -------------------------------------------- |
| This will run tests on the input service, verifying whether it successfully displays lazy behavior. |
| If the service has multiple interfaces, each can be entered as a separate argument to be tested |
| simultaneously. |
| Infrastructure tests that rely on specific features of the dedicated test service will be skipped. |
| |
| ================================================================================================== |
| aidl_lazy_test_server |
| ================================================================================================== |
| aidl_lazy_test_server is a simple test service. |
| |
| Because it represents the bare minimum requirements for implementing a service, it also serves as |
| an example of how to add a new service. The required files are as follows: |
| |
| ============================================ |
| In this directory |
| ============================================ |
| -------------------------------------------- |
| server.cpp |
| -------------------------------------------- |
| The implementation of the server. The only required function is main(), wherein the service must be |
| instantiated and added (either to servicemanager as a standard service or to LazyServiceRegistrar |
| to be a dynamic service). The server then joins the thread pool. |
| |
| -------------------------------------------- |
| aidl_lazy_test_server.rc |
| -------------------------------------------- |
| This file is read by init, which later starts the service. The interface, oneshot, and disabled |
| lines are only required for dynamic services. |
| |
| -------------------------------------------- |
| LazyTestService.h/.cpp |
| -------------------------------------------- |
| The implementation of the service's functionality. |
| |
| -------------------------------------------- |
| ILazyTestService.aidl |
| -------------------------------------------- |
| The AIDL interface for the service, this will generate code that clients can use to interact with |
| the service via IPC. |
| |
| -------------------------------------------- |
| Android.bp |
| -------------------------------------------- |
| An aidl_interface entry will need to be added for the .aidl file. |
| |
| A cc_binary entry will need to be added for the service with: |
| name |
| srcs - The source file(s) |
| init_rc - The .rc file |
| shared_libs - Any shared libraries the source file depends on |
| static_libs - The AIDL interface |
| |
| ============================================ |
| In system/sepolicy |
| ============================================ |
| -------------------------------------------- |
| private/aidl_lazy_test_server.te |
| -------------------------------------------- |
| Only two lines are required in this file. |
| |
| -------------------------------------------- |
| public/aidl_lazy_test_server.te |
| -------------------------------------------- |
| The first two lines establish types for aidl_lazy_test_server and aidl_lazy_test_server_exec. |
| binder_use and binder_call allow for basic use of this service. |
| add_service allows the service to be registered. Note that an additional service type is required |
| as the second argument to this function. |
| |
| -------------------------------------------- |
| private/compat/<number>/<number>.ignore.cil |
| -------------------------------------------- |
| aidl_lazy_test_server and aidl_lazy_test_server_exec, and aidl_lazy_test_service need to be added |
| to the new objects list. |
| |
| -------------------------------------------- |
| private/file_contexts |
| -------------------------------------------- |
| A line is required to map aidl_lazy_test_server to aidl_lazy_test_server_exec. |
| |
| -------------------------------------------- |
| private/service_contexts |
| -------------------------------------------- |
| Each interface for the service must be mapped to aidl_lazy_test_service here. |
| |
| -------------------------------------------- |
| public/service.te |
| -------------------------------------------- |
| A line is required to define aidl_lazy_test_service. |