Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5bbdd83a authored by sandeepbandaru's avatar sandeepbandaru
Browse files

Register OnDeviceIntelligenceManager as a system service

Context: go/isolated-aicore

Test: make
Bug: 316589195
API-Coverage-Bug: 323147058
Change-Id: Icea28c21de0dc4f717b3789f8a81bfbe0ebf28e8
parent 7ea8a7c0
Loading
Loading
Loading
Loading
+15 −0
Original line number Original line Diff line number Diff line
@@ -34,6 +34,8 @@ import android.app.contentsuggestions.ContentSuggestionsManager;
import android.app.contentsuggestions.IContentSuggestionsManager;
import android.app.contentsuggestions.IContentSuggestionsManager;
import android.app.ecm.EnhancedConfirmationFrameworkInitializer;
import android.app.ecm.EnhancedConfirmationFrameworkInitializer;
import android.app.job.JobSchedulerFrameworkInitializer;
import android.app.job.JobSchedulerFrameworkInitializer;
import android.app.ondeviceintelligence.IOnDeviceIntelligenceManager;
import android.app.ondeviceintelligence.OnDeviceIntelligenceManager;
import android.app.people.PeopleManager;
import android.app.people.PeopleManager;
import android.app.prediction.AppPredictionManager;
import android.app.prediction.AppPredictionManager;
import android.app.role.RoleFrameworkInitializer;
import android.app.role.RoleFrameworkInitializer;
@@ -1589,6 +1591,19 @@ public final class SystemServiceRegistry {
                        return new WearableSensingManager(ctx.getOuterContext(), manager);
                        return new WearableSensingManager(ctx.getOuterContext(), manager);
                    }});
                    }});


        registerService(Context.ON_DEVICE_INTELLIGENCE_SERVICE, OnDeviceIntelligenceManager.class,
                new CachedServiceFetcher<OnDeviceIntelligenceManager>() {
                    @Override
                    public OnDeviceIntelligenceManager createService(ContextImpl ctx)
                            throws ServiceNotFoundException {
                        IBinder iBinder = ServiceManager.getServiceOrThrow(
                                Context.ON_DEVICE_INTELLIGENCE_SERVICE);
                        IOnDeviceIntelligenceManager manager =
                                IOnDeviceIntelligenceManager.Stub.asInterface(iBinder);
                        return new OnDeviceIntelligenceManager(ctx.getOuterContext(), manager);
                    }
                });

        registerService(Context.GRAMMATICAL_INFLECTION_SERVICE, GrammaticalInflectionManager.class,
        registerService(Context.GRAMMATICAL_INFLECTION_SERVICE, GrammaticalInflectionManager.class,
                new CachedServiceFetcher<GrammaticalInflectionManager>() {
                new CachedServiceFetcher<GrammaticalInflectionManager>() {
                    @Override
                    @Override
+4 −2
Original line number Original line Diff line number Diff line
@@ -204,6 +204,7 @@ import android.os.TransactionTooLargeException;
import android.os.UserHandle;
import android.os.UserHandle;
import android.os.UserManager;
import android.os.UserManager;
import android.provider.Settings;
import android.provider.Settings;
import android.service.ondeviceintelligence.OnDeviceSandboxedInferenceService;
import android.service.voice.HotwordDetectionService;
import android.service.voice.HotwordDetectionService;
import android.service.voice.VisualQueryDetectionService;
import android.service.voice.VisualQueryDetectionService;
import android.service.wearable.WearableSensingService;
import android.service.wearable.WearableSensingService;
@@ -4518,13 +4519,14 @@ public final class ActiveServices {
    }
    }


    // TODO(b/265746493): Special case for HotwordDetectionService,
    // TODO(b/265746493): Special case for HotwordDetectionService,
    // VisualQueryDetectionService and WearableSensingService.
    // VisualQueryDetectionService, WearableSensingService and OnDeviceSandboxedInferenceService
    // Need a cleaner way to append this seInfo.
    // Need a cleaner way to append this seInfo.
    private String generateAdditionalSeInfoFromService(Intent service) {
    private String generateAdditionalSeInfoFromService(Intent service) {
        if (service != null && service.getAction() != null
        if (service != null && service.getAction() != null
                && (service.getAction().equals(HotwordDetectionService.SERVICE_INTERFACE)
                && (service.getAction().equals(HotwordDetectionService.SERVICE_INTERFACE)
                || service.getAction().equals(VisualQueryDetectionService.SERVICE_INTERFACE)
                || service.getAction().equals(VisualQueryDetectionService.SERVICE_INTERFACE)
                || service.getAction().equals(WearableSensingService.SERVICE_INTERFACE))) {
                || service.getAction().equals(WearableSensingService.SERVICE_INTERFACE)
            || service.getAction().equals(OnDeviceSandboxedInferenceService.SERVICE_INTERFACE))) {
            return ":isolatedComputeApp";
            return ":isolatedComputeApp";
        }
        }
        return "";
        return "";
+8 −0
Original line number Original line Diff line number Diff line
@@ -161,6 +161,7 @@ import com.android.server.net.watchlist.NetworkWatchlistService;
import com.android.server.notification.NotificationManagerService;
import com.android.server.notification.NotificationManagerService;
import com.android.server.oemlock.OemLockService;
import com.android.server.oemlock.OemLockService;
import com.android.server.om.OverlayManagerService;
import com.android.server.om.OverlayManagerService;
import com.android.server.ondeviceintelligence.OnDeviceIntelligenceManagerService;
import com.android.server.os.BugreportManagerService;
import com.android.server.os.BugreportManagerService;
import com.android.server.os.DeviceIdentifiersPolicyService;
import com.android.server.os.DeviceIdentifiersPolicyService;
import com.android.server.os.NativeTombstoneManagerService;
import com.android.server.os.NativeTombstoneManagerService;
@@ -1965,6 +1966,7 @@ public final class SystemServer implements Dumpable {
            startSystemCaptionsManagerService(context, t);
            startSystemCaptionsManagerService(context, t);
            startTextToSpeechManagerService(context, t);
            startTextToSpeechManagerService(context, t);
            startWearableSensingService(t);
            startWearableSensingService(t);
            startOnDeviceIntelligenceService(t);


            if (deviceHasConfigString(
            if (deviceHasConfigString(
                    context, R.string.config_defaultAmbientContextDetectionService)) {
                    context, R.string.config_defaultAmbientContextDetectionService)) {
@@ -3337,6 +3339,12 @@ public final class SystemServer implements Dumpable {
        t.traceEnd(); // startOtherServices
        t.traceEnd(); // startOtherServices
    }
    }


    private void startOnDeviceIntelligenceService(TimingsTraceAndSlog t) {
        t.traceBegin("startOnDeviceIntelligenceManagerService");
        mSystemServiceManager.startService(OnDeviceIntelligenceManagerService.class);
        t.traceEnd();
    }

    /**
    /**
     * Starts system services defined in apexes.
     * Starts system services defined in apexes.
     *
     *