diff --git a/core/java/android/content/pm/parsing/component/ParsedApexSystemService.java b/core/java/android/content/pm/parsing/component/ParsedApexSystemService.java index c89d3b21b1c15..fe821e04958f0 100644 --- a/core/java/android/content/pm/parsing/component/ParsedApexSystemService.java +++ b/core/java/android/content/pm/parsing/component/ParsedApexSystemService.java @@ -35,6 +35,4 @@ public interface ParsedApexSystemService extends Parcelable { @Nullable String getMaxSdkVersion(); - int getInitOrder(); - } diff --git a/core/java/android/content/pm/parsing/component/ParsedApexSystemServiceImpl.java b/core/java/android/content/pm/parsing/component/ParsedApexSystemServiceImpl.java index 65d26b90a2281..54196fddb1fb2 100644 --- a/core/java/android/content/pm/parsing/component/ParsedApexSystemServiceImpl.java +++ b/core/java/android/content/pm/parsing/component/ParsedApexSystemServiceImpl.java @@ -45,11 +45,10 @@ public class ParsedApexSystemServiceImpl implements ParsedApexSystemService { @Nullable private String maxSdkVersion; - private int initOrder; - public ParsedApexSystemServiceImpl() { } + // Code below generated by codegen v1.0.23. // // DO NOT MODIFY! @@ -68,15 +67,13 @@ public class ParsedApexSystemServiceImpl implements ParsedApexSystemService { @NonNull String name, @Nullable String jarPath, @Nullable String minSdkVersion, - @Nullable String maxSdkVersion, - int initOrder) { + @Nullable String maxSdkVersion) { this.name = name; com.android.internal.util.AnnotationValidations.validate( NonNull.class, null, name); this.jarPath = jarPath; this.minSdkVersion = minSdkVersion; this.maxSdkVersion = maxSdkVersion; - this.initOrder = initOrder; // onConstructed(); // You can define this method to get a callback } @@ -101,11 +98,6 @@ public class ParsedApexSystemServiceImpl implements ParsedApexSystemService { return maxSdkVersion; } - @DataClass.Generated.Member - public int getInitOrder() { - return initOrder; - } - @DataClass.Generated.Member public @NonNull ParsedApexSystemServiceImpl setName(@NonNull String value) { name = value; @@ -132,12 +124,6 @@ public class ParsedApexSystemServiceImpl implements ParsedApexSystemService { return this; } - @DataClass.Generated.Member - public @NonNull ParsedApexSystemServiceImpl setInitOrder( int value) { - initOrder = value; - return this; - } - @DataClass.Generated.Member static Parcelling sParcellingForName = Parcelling.Cache.get( @@ -197,7 +183,6 @@ public class ParsedApexSystemServiceImpl implements ParsedApexSystemService { sParcellingForJarPath.parcel(jarPath, dest, flags); sParcellingForMinSdkVersion.parcel(minSdkVersion, dest, flags); sParcellingForMaxSdkVersion.parcel(maxSdkVersion, dest, flags); - dest.writeInt(initOrder); } @Override @@ -216,7 +201,6 @@ public class ParsedApexSystemServiceImpl implements ParsedApexSystemService { String _jarPath = sParcellingForJarPath.unparcel(in); String _minSdkVersion = sParcellingForMinSdkVersion.unparcel(in); String _maxSdkVersion = sParcellingForMaxSdkVersion.unparcel(in); - int _initOrder = in.readInt(); this.name = _name; com.android.internal.util.AnnotationValidations.validate( @@ -224,7 +208,6 @@ public class ParsedApexSystemServiceImpl implements ParsedApexSystemService { this.jarPath = _jarPath; this.minSdkVersion = _minSdkVersion; this.maxSdkVersion = _maxSdkVersion; - this.initOrder = _initOrder; // onConstructed(); // You can define this method to get a callback } @@ -244,10 +227,10 @@ public class ParsedApexSystemServiceImpl implements ParsedApexSystemService { }; @DataClass.Generated( - time = 1641307133386L, + time = 1638903241144L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/content/pm/parsing/component/ParsedApexSystemServiceImpl.java", - inputSignatures = "private @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedString.class) @android.annotation.NonNull java.lang.String name\nprivate @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedString.class) @android.annotation.Nullable java.lang.String jarPath\nprivate @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedString.class) @android.annotation.Nullable java.lang.String minSdkVersion\nprivate @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedString.class) @android.annotation.Nullable java.lang.String maxSdkVersion\nprivate int initOrder\nclass ParsedApexSystemServiceImpl extends java.lang.Object implements [android.content.pm.parsing.component.ParsedApexSystemService]\n@com.android.internal.util.DataClass(genGetters=true, genAidl=false, genSetters=true, genParcelable=true)") + inputSignatures = "private @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedString.class) @android.annotation.NonNull java.lang.String name\nprivate @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedString.class) @android.annotation.Nullable java.lang.String jarPath\nprivate @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedString.class) @android.annotation.Nullable java.lang.String minSdkVersion\nprivate @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedString.class) @android.annotation.Nullable java.lang.String maxSdkVersion\nclass ParsedApexSystemServiceImpl extends java.lang.Object implements [android.content.pm.parsing.component.ParsedApexSystemService]\n@com.android.internal.util.DataClass(genGetters=true, genAidl=false, genSetters=true, genParcelable=true)") @Deprecated private void __metadata() {} diff --git a/core/java/android/content/pm/parsing/component/ParsedApexSystemServiceUtils.java b/core/java/android/content/pm/parsing/component/ParsedApexSystemServiceUtils.java index eca897602d40b..26abf48ee3915 100644 --- a/core/java/android/content/pm/parsing/component/ParsedApexSystemServiceUtils.java +++ b/core/java/android/content/pm/parsing/component/ParsedApexSystemServiceUtils.java @@ -53,13 +53,10 @@ public class ParsedApexSystemServiceUtils { R.styleable.AndroidManifestApexSystemService_minSdkVersion); String maxSdkVersion = sa.getString( R.styleable.AndroidManifestApexSystemService_maxSdkVersion); - int initOrder = sa.getInt(R.styleable.AndroidManifestApexSystemService_initOrder, 0); systemService.setName(className) .setMinSdkVersion(minSdkVersion) - .setMaxSdkVersion(maxSdkVersion) - .setInitOrder(initOrder); - + .setMaxSdkVersion(maxSdkVersion); if (!TextUtils.isEmpty(jarPath)) { systemService.setJarPath(jarPath); } diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml index f7e0fcf77c8fb..db24475cf7806 100644 --- a/core/res/res/values/attrs_manifest.xml +++ b/core/res/res/values/attrs_manifest.xml @@ -2825,14 +2825,6 @@ - - diff --git a/services/tests/apexsystemservices/services/Android.bp b/services/tests/apexsystemservices/service/Android.bp similarity index 94% rename from services/tests/apexsystemservices/services/Android.bp rename to services/tests/apexsystemservices/service/Android.bp index 477ea4cdad37a..9d04f39f2237a 100644 --- a/services/tests/apexsystemservices/services/Android.bp +++ b/services/tests/apexsystemservices/service/Android.bp @@ -8,7 +8,7 @@ package { } java_library { - name: "FakeApexSystemServices", + name: "FakeApexSystemService", srcs: ["**/*.java"], sdk_version: "system_server_current", libs: [ diff --git a/services/tests/apexsystemservices/services/src/com/android/server/testing/FakeApexSystemService.java b/services/tests/apexsystemservices/service/src/com/android/server/testing/FakeApexSystemService.java similarity index 100% rename from services/tests/apexsystemservices/services/src/com/android/server/testing/FakeApexSystemService.java rename to services/tests/apexsystemservices/service/src/com/android/server/testing/FakeApexSystemService.java diff --git a/services/tests/apexsystemservices/services/src/com/android/server/testing/FakeApexSystemService2.java b/services/tests/apexsystemservices/services/src/com/android/server/testing/FakeApexSystemService2.java deleted file mode 100644 index e83343b9c996d..0000000000000 --- a/services/tests/apexsystemservices/services/src/com/android/server/testing/FakeApexSystemService2.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2021 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.server.testing; - -import android.content.Context; -import android.util.Log; - -import androidx.annotation.NonNull; - -import com.android.server.SystemService; - -/** - * A fake system service that just logs when it is started. - */ -public class FakeApexSystemService2 extends SystemService { - - private static final String TAG = "FakeApexSystemService"; - - public FakeApexSystemService2(@NonNull Context context) { - super(context); - } - - @Override - public void onStart() { - Log.d(TAG, "FakeApexSystemService2 onStart"); - } -} diff --git a/services/tests/apexsystemservices/src/com/android/server/ApexSystemServicesTestCases.java b/services/tests/apexsystemservices/src/com/android/server/ApexSystemServicesTestCases.java index 7ab7b6ed763c9..2b453a9265bb1 100644 --- a/services/tests/apexsystemservices/src/com/android/server/ApexSystemServicesTestCases.java +++ b/services/tests/apexsystemservices/src/com/android/server/ApexSystemServicesTestCases.java @@ -37,10 +37,6 @@ import org.junit.rules.RuleChain; import org.junit.rules.TemporaryFolder; import org.junit.runner.RunWith; -import java.util.Objects; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - @RunWith(DeviceJUnit4ClassRunner.class) public class ApexSystemServicesTestCases extends BaseHostJUnit4Test { @@ -71,7 +67,7 @@ public class ApexSystemServicesTestCases extends BaseHostJUnit4Test { } @Test - public void testNoApexSystemServiceStartsWithoutApex() throws Exception { + public void noApexSystemServerStartsWithoutApex() throws Exception { mPreparer.reboot(); assertThat(getFakeApexSystemServiceLogcat()) @@ -79,7 +75,7 @@ public class ApexSystemServicesTestCases extends BaseHostJUnit4Test { } @Test - public void testApexSystemServiceStarts() throws Exception { + public void apexSystemServerStarts() throws Exception { // Pre-install the apex String apex = "test_com.android.server.apex"; mPreparer.pushResourceFile(apex, "/system/apex/" + apex); @@ -90,40 +86,9 @@ public class ApexSystemServicesTestCases extends BaseHostJUnit4Test { .contains("FakeApexSystemService onStart"); } - @Test - public void testInitOrder() throws Exception { - // Pre-install the apex - String apex = "test_com.android.server.apex"; - mPreparer.pushResourceFile(apex, "/system/apex/" + apex); - // Reboot activates the apex - mPreparer.reboot(); - - assertThat(getFakeApexSystemServiceLogcat().lines() - .map(ApexSystemServicesTestCases::getDebugMessage) - .filter(Objects::nonNull) - .collect(Collectors.toList())) - .containsExactly( - // Second service has a higher initOrder and must be started first - "FakeApexSystemService2 onStart", - "FakeApexSystemService onStart" - ) - .inOrder(); - } - private String getFakeApexSystemServiceLogcat() throws DeviceNotAvailableException { return mDevice.executeAdbCommand("logcat", "-v", "brief", "-d", "FakeApexSystemService:D", "*:S"); } - private static final Pattern DEBUG_MESSAGE = - Pattern.compile("(FakeApexSystemService[0-9]* onStart)"); - - private static String getDebugMessage(String logcatLine) { - return DEBUG_MESSAGE.matcher(logcatLine) - .results() - .map(m -> m.group(1)) - .findFirst() - .orElse(null); - } - } diff --git a/services/tests/servicestests/src/com/android/server/pm/ApexManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/ApexManagerTest.java index 2f5993d1d9895..7f7c716bc1f05 100644 --- a/services/tests/servicestests/src/com/android/server/pm/ApexManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/ApexManagerTest.java @@ -61,7 +61,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.util.List; +import java.util.Map; @SmallTest @Presubmit @@ -136,10 +136,9 @@ public class ApexManagerTest { mApexManager.scanApexPackagesTraced(mPackageParser2, ParallelPackageParser.makeExecutorService()); - List services = mApexManager.getApexSystemServices(); + Map services = mApexManager.getApexSystemServices(); assertThat(services).hasSize(1); - assertThat(services.stream().map(ApexSystemServiceInfo::getName).findFirst().orElse(null)) - .matches("com.android.apex.test.ApexSystemService"); + assertThat(services).containsKey("com.android.apex.test.ApexSystemService"); } @Test