44 lines
1.2 KiB
Markdown
44 lines
1.2 KiB
Markdown
|
# Sample service for testing
|
||
|
This is a sample service that can be used for testing init.
|
||
|
|
||
|
## Design
|
||
|
The service includes a `.rc` file that allows starting it from init.
|
||
|
|
||
|
service test_service /system/bin/test_service CapAmb 0000000000003000
|
||
|
class main
|
||
|
user system
|
||
|
group system
|
||
|
capabilities NET_ADMIN NET_RAW
|
||
|
disabled
|
||
|
oneshot
|
||
|
|
||
|
The service accepts any even number of arguments on the command line
|
||
|
(i.e. any number of pairs of arguments.)
|
||
|
It will attempt to find the first element of each pair of arguments in
|
||
|
`/proc/self/status`, and attempt to exactly match the second element of the pair
|
||
|
to the relevant line of `proc/self/status`.
|
||
|
|
||
|
### Example
|
||
|
In the above case, the service will look for lines containing `CapAmb`:
|
||
|
|
||
|
cat /proc/self/status
|
||
|
...
|
||
|
CapAmb: 0000000000003000
|
||
|
|
||
|
And then attempt to exactly match the token after `:`, `0000000000003000`,
|
||
|
with the command-line argument.
|
||
|
If they match, the service exits successfully. If not, the service will exit
|
||
|
with an error.
|
||
|
|
||
|
## Usage
|
||
|
mmma -j <jobs> system/core/init/testservice
|
||
|
adb root
|
||
|
adb remount
|
||
|
adb sync
|
||
|
adb reboot
|
||
|
adb root
|
||
|
adb shell start test_service
|
||
|
adb logcat -b all -d | grep test_service
|
||
|
|
||
|
Look for an exit status of 0.
|