You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
4.3 KiB
103 lines
4.3 KiB
==================================================================================================
|
|
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.
|