From 6cde9d9ada5dc7679e06bf873f1c0263a027aac8 Mon Sep 17 00:00:00 2001 From: Songchun Fan Date: Tue, 10 Dec 2019 10:23:54 -0800 Subject: [PATCH] add DataLoaderManagerService to system server and register to system service Test: boots Change-Id: I9cba99327da012b6f6de898ad1c5cc7cf11d1d31 --- core/java/android/app/SystemServiceRegistry.java | 11 +++++++++++ services/java/com/android/server/SystemServer.java | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java index 601b65863db19..dd54d7ccf8265 100644 --- a/core/java/android/app/SystemServiceRegistry.java +++ b/core/java/android/app/SystemServiceRegistry.java @@ -53,7 +53,9 @@ import android.content.RestrictionsManager; import android.content.om.IOverlayManager; import android.content.om.OverlayManager; import android.content.pm.CrossProfileApps; +import android.content.pm.DataLoaderManager; import android.content.pm.ICrossProfileApps; +import android.content.pm.IDataLoaderManager; import android.content.pm.IPackageManager; import android.content.pm.IShortcutService; import android.content.pm.LauncherApps; @@ -1197,6 +1199,15 @@ public final class SystemServiceRegistry { return new BatteryStatsManager( IBatteryStats.Stub.asInterface(b)); }}); + registerService(Context.DATA_LOADER_MANAGER_SERVICE, DataLoaderManager.class, + new CachedServiceFetcher() { + @Override + public DataLoaderManager createService(ContextImpl ctx) + throws ServiceNotFoundException { + IBinder b = ServiceManager.getServiceOrThrow( + Context.DATA_LOADER_MANAGER_SERVICE); + return new DataLoaderManager(IDataLoaderManager.Stub.asInterface(b)); + }}); //CHECKSTYLE:ON IndentationCheck sInitializing = true; diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index b6e501a785efc..6e29b6339e56b 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -126,6 +126,7 @@ import com.android.server.os.DeviceIdentifiersPolicyService; import com.android.server.os.SchedulingPolicyService; import com.android.server.pm.BackgroundDexOptService; import com.android.server.pm.CrossProfileAppsService; +import com.android.server.pm.DataLoaderManagerService; import com.android.server.pm.DynamicCodeLoggingService; import com.android.server.pm.Installer; import com.android.server.pm.LauncherAppsService; @@ -321,6 +322,7 @@ public final class SystemServer { private PackageManager mPackageManager; private ContentResolver mContentResolver; private EntropyMixer mEntropyMixer; + private DataLoaderManagerService mDataLoaderManagerService; private boolean mOnlyCore; private boolean mFirstBoot; @@ -694,6 +696,12 @@ public final class SystemServer { mWindowManagerGlobalLock = atm.getGlobalLock(); t.traceEnd(); + // Data loader manager service needs to be started before package manager + t.traceBegin("StartDataLoaderManagerService"); + mDataLoaderManagerService = mSystemServiceManager.startService( + DataLoaderManagerService.class); + t.traceEnd(); + // Power manager needs to be started early because other services need it. // Native daemons may be watching for it to be registered so it must be ready // to handle incoming binder calls immediately (including being able to verify