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

Commit a03e5b5e authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Integrate system feature codegen into SystemServer + framework" into main am: f098e278

parents 69f7f615 f098e278
Loading
Loading
Loading
Loading
+11 −0
Original line number Original line Diff line number Diff line
@@ -129,6 +129,7 @@ import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.Immutable;
import com.android.internal.annotations.Immutable;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.os.SomeArgs;
import com.android.internal.os.SomeArgs;
import com.android.internal.pm.RoSystemFeatures;
import com.android.internal.util.UserIcons;
import com.android.internal.util.UserIcons;


import dalvik.system.VMRuntime;
import dalvik.system.VMRuntime;
@@ -818,6 +819,16 @@ public class ApplicationPackageManager extends PackageManager {
                @Override
                @Override
                public Boolean recompute(HasSystemFeatureQuery query) {
                public Boolean recompute(HasSystemFeatureQuery query) {
                    try {
                    try {
                        // As an optimization, check first to see if the feature was defined at
                        // compile-time as either available or unavailable.
                        // TODO(b/203143243): Consider hoisting this optimization out of the cache
                        // after the trunk stable (build) flag has soaked and more features are
                        // defined at compile-time.
                        Boolean maybeHasSystemFeature =
                                RoSystemFeatures.maybeHasFeature(query.name, query.version);
                        if (maybeHasSystemFeature != null) {
                            return maybeHasSystemFeature.booleanValue();
                        }
                        return ActivityThread.currentActivityThread().getPackageManager().
                        return ActivityThread.currentActivityThread().getPackageManager().
                            hasSystemFeature(query.name, query.version);
                            hasSystemFeature(query.name, query.version);
                    } catch (RemoteException e) {
                    } catch (RemoteException e) {
+4 −6
Original line number Original line Diff line number Diff line
@@ -104,6 +104,7 @@ import com.android.internal.annotations.GuardedBy;
import com.android.internal.notification.SystemNotificationChannels;
import com.android.internal.notification.SystemNotificationChannels;
import com.android.internal.os.BinderInternal;
import com.android.internal.os.BinderInternal;
import com.android.internal.os.RuntimeInit;
import com.android.internal.os.RuntimeInit;
import com.android.internal.pm.RoSystemFeatures;
import com.android.internal.policy.AttributeCache;
import com.android.internal.policy.AttributeCache;
import com.android.internal.util.ConcurrentUtils;
import com.android.internal.util.ConcurrentUtils;
import com.android.internal.util.EmergencyAffordanceManager;
import com.android.internal.util.EmergencyAffordanceManager;
@@ -1465,8 +1466,7 @@ public final class SystemServer implements Dumpable {
        boolean disableCameraService = SystemProperties.getBoolean("config.disable_cameraservice",
        boolean disableCameraService = SystemProperties.getBoolean("config.disable_cameraservice",
                false);
                false);


        boolean isWatch = context.getPackageManager().hasSystemFeature(
        boolean isWatch = RoSystemFeatures.hasFeatureWatch(context);
                PackageManager.FEATURE_WATCH);


        boolean isArc = context.getPackageManager().hasSystemFeature(
        boolean isArc = context.getPackageManager().hasSystemFeature(
                "org.chromium.arc");
                "org.chromium.arc");
@@ -2708,7 +2708,7 @@ public final class SystemServer implements Dumpable {
            t.traceEnd();
            t.traceEnd();
        }
        }


        if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_EMBEDDED)) {
        if (RoSystemFeatures.hasFeatureEmbedded(context)) {
            t.traceBegin("StartIoTSystemService");
            t.traceBegin("StartIoTSystemService");
            mSystemServiceManager.startService(IOT_SERVICE_CLASS);
            mSystemServiceManager.startService(IOT_SERVICE_CLASS);
            t.traceEnd();
            t.traceEnd();
@@ -3077,9 +3077,7 @@ public final class SystemServer implements Dumpable {
                }, WEBVIEW_PREPARATION);
                }, WEBVIEW_PREPARATION);
            }
            }


            boolean isAutomotive = mPackageManager
            if (RoSystemFeatures.hasFeatureAutomotive(context)) {
                    .hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
            if (isAutomotive) {
                t.traceBegin("StartCarServiceHelperService");
                t.traceBegin("StartCarServiceHelperService");
                final SystemService cshs = mSystemServiceManager
                final SystemService cshs = mSystemServiceManager
                        .startService(CAR_SERVICE_HELPER_SERVICE_CLASS);
                        .startService(CAR_SERVICE_HELPER_SERVICE_CLASS);