Skip to content
Snippets Groups Projects
Commit 56354a96 authored by Kangping Dong's avatar Kangping Dong
Browse files

[Thread] start / initialize Thread service early

We need to do initialization work and start OT daemon when
system_server boots. But the initialize() is called at the phase
PHASE_BOOT_COMPLETED which is too late as Apps (e.g. Google Play
Services) can be started before this phase.

This commit changes to start the Thread service earlier at the phase
PHASE_SYSTEM_SERVICES_READY. Other services such as Wi-Fi, Bluetooth,
Ethernet and Nearby all starts / initializes at this phase.

This commit resolves comment aosp/2737373/comment/d65b9446_8a08117c

Bug: 318787467
Test: atest CtsThreadNetworkTestCases
Change-Id: I7b7b8551b9114cbf07f995b64316c7b420d868b6
parent 1bd5a5f5
No related branches found
No related tags found
No related merge requests found
......@@ -48,17 +48,20 @@ public class ThreadNetworkService extends IThreadNetworkManager.Stub {
}
/**
* Called by the service initializer.
* Called by {@link com.android.server.ConnectivityServiceInitializer}.
*
* @see com.android.server.SystemService#onBootPhase
*/
public void onBootPhase(int phase) {
if (phase == SystemService.PHASE_BOOT_COMPLETED) {
if (phase == SystemService.PHASE_SYSTEM_SERVICES_READY) {
mControllerService = ThreadNetworkControllerService.newInstance(mContext);
mControllerService.initialize();
} else if (phase == SystemService.PHASE_BOOT_COMPLETED) {
// Country code initialization is delayed to the BOOT_COMPLETED phase because it will
// call into Wi-Fi and Telephony service whose country code module is ready after
// PHASE_ACTIVITY_MANAGER_READY and PHASE_THIRD_PARTY_APPS_CAN_START
mCountryCode = ThreadNetworkCountryCode.newInstance(mContext, mControllerService);
mCountryCode.initialize();
mShellCommand = new ThreadNetworkShellCommand(mCountryCode);
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment