| # 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. |