blob: 134353a4ac5685fd6d02c51def553ee8733f48c0 [file] [log] [blame]
==================================================================================================
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.