Loading core/java/android/content/pm/parsing/ParsingPackage.java +3 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.content.pm.FeatureInfo; import android.content.pm.PackageManager.Property; import android.content.pm.SigningDetails; import android.content.pm.parsing.component.ParsedActivity; import android.content.pm.parsing.component.ParsedApexSystemService; import android.content.pm.parsing.component.ParsedAttribution; import android.content.pm.parsing.component.ParsedInstrumentation; import android.content.pm.parsing.component.ParsedIntentInfo; Loading Loading @@ -56,6 +57,8 @@ public interface ParsingPackage extends ParsingPackageRead { ParsingPackage addAdoptPermission(String adoptPermission); ParsingPackage addApexSystemService(ParsedApexSystemService parsedApexSystemService); ParsingPackage addConfigPreference(ConfigurationInfo configPreference); ParsingPackage addFeatureGroup(FeatureGroupInfo featureGroup); Loading core/java/android/content/pm/parsing/ParsingPackageImpl.java +22 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,8 @@ import android.content.pm.PackageManager.Property; import android.content.pm.SigningDetails; import android.content.pm.parsing.component.ParsedActivity; import android.content.pm.parsing.component.ParsedActivityImpl; import android.content.pm.parsing.component.ParsedApexSystemService; import android.content.pm.parsing.component.ParsedApexSystemServiceImpl; import android.content.pm.parsing.component.ParsedAttribution; import android.content.pm.parsing.component.ParsedAttributionImpl; import android.content.pm.parsing.component.ParsedComponent; Loading Loading @@ -267,6 +269,9 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, @NonNull protected List<ParsedActivity> activities = emptyList(); @NonNull protected List<ParsedApexSystemService> apexSystemServices = emptyList(); @NonNull protected List<ParsedActivity> receivers = emptyList(); Loading Loading @@ -763,6 +768,14 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, return this; } @Override public final ParsingPackageImpl addApexSystemService( ParsedApexSystemService parsedApexSystemService) { this.apexSystemServices = CollectionUtils.add( this.apexSystemServices, parsedApexSystemService); return this; } @Override public ParsingPackageImpl addReceiver(ParsedActivity parsedReceiver) { this.receivers = CollectionUtils.add(this.receivers, parsedReceiver); Loading Loading @@ -832,7 +845,6 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, return this; } @Override public ParsingPackageImpl removeUsesOptionalNativeLibrary(String libraryName) { this.usesOptionalNativeLibraries = CollectionUtils.remove(this.usesOptionalNativeLibraries, libraryName); Loading Loading @@ -1198,6 +1210,7 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, ParsingPackageUtils.writeKeySetMapping(dest, this.keySetMapping); sForInternedStringList.parcel(this.protectedBroadcasts, dest, flags); dest.writeTypedList(this.activities); dest.writeTypedList(this.apexSystemServices); dest.writeTypedList(this.receivers); dest.writeTypedList(this.services); dest.writeTypedList(this.providers); Loading Loading @@ -1339,6 +1352,8 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, this.protectedBroadcasts = sForInternedStringList.unparcel(in); this.activities = ParsingUtils.createTypedInterfaceList(in, ParsedActivityImpl.CREATOR); this.apexSystemServices = ParsingUtils.createTypedInterfaceList(in, ParsedApexSystemServiceImpl.CREATOR); this.receivers = ParsingUtils.createTypedInterfaceList(in, ParsedActivityImpl.CREATOR); this.services = ParsingUtils.createTypedInterfaceList(in, ParsedServiceImpl.CREATOR); this.providers = ParsingUtils.createTypedInterfaceList(in, ParsedProviderImpl.CREATOR); Loading Loading @@ -1704,6 +1719,12 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, return activities; } @NonNull @Override public List<ParsedApexSystemService> getApexSystemServices() { return apexSystemServices; } @NonNull @Override public List<ParsedActivity> getReceivers() { Loading core/java/android/content/pm/parsing/ParsingPackageRead.java +7 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager.Property; import android.content.pm.PackageParser; import android.content.pm.SigningDetails; import android.content.pm.parsing.component.ParsedApexSystemService; import android.content.pm.parsing.component.ParsedAttribution; import android.content.pm.parsing.component.ParsedIntentInfo; import android.content.pm.parsing.component.ParsedPermissionGroup; Loading Loading @@ -55,6 +56,12 @@ public interface ParsingPackageRead extends PkgWithoutStateAppInfo, PkgWithoutSt @NonNull List<String> getAdoptPermissions(); /** * @see R.styleable#AndroidManifestApexSystemService */ @NonNull List<ParsedApexSystemService> getApexSystemServices(); @NonNull List<ParsedAttribution> getAttributions(); Loading core/java/android/content/pm/parsing/ParsingPackageUtils.java +14 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,8 @@ import android.content.pm.parsing.component.ComponentMutateUtils; import android.content.pm.parsing.component.ComponentParseUtils; import android.content.pm.parsing.component.ParsedActivity; import android.content.pm.parsing.component.ParsedActivityUtils; import android.content.pm.parsing.component.ParsedApexSystemService; import android.content.pm.parsing.component.ParsedApexSystemServiceUtils; import android.content.pm.parsing.component.ParsedAttribution; import android.content.pm.parsing.component.ParsedAttributionUtils; import android.content.pm.parsing.component.ParsedComponent; Loading Loading @@ -2205,6 +2207,18 @@ public class ParsingPackageUtils { result = activityResult; break; case "apex-system-service": ParseResult<ParsedApexSystemService> systemServiceResult = ParsedApexSystemServiceUtils.parseApexSystemService(res, parser, input); if (systemServiceResult.isSuccess()) { ParsedApexSystemService systemService = systemServiceResult.getResult(); pkg.addApexSystemService(systemService); } result = systemServiceResult; break; default: result = parseBaseAppChildTag(input, tagName, pkg, res, parser, flags); break; Loading core/java/android/content/pm/parsing/component/ParsedApexSystemService.java 0 → 100644 +38 −0 Original line number Diff line number Diff line /* * 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 android.content.pm.parsing.component; import android.annotation.NonNull; import android.annotation.Nullable; import android.os.Parcelable; /** @hide */ public interface ParsedApexSystemService extends Parcelable { @NonNull String getName(); @Nullable String getJarPath(); @Nullable String getMinSdkVersion(); @Nullable String getMaxSdkVersion(); } Loading
core/java/android/content/pm/parsing/ParsingPackage.java +3 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.content.pm.FeatureInfo; import android.content.pm.PackageManager.Property; import android.content.pm.SigningDetails; import android.content.pm.parsing.component.ParsedActivity; import android.content.pm.parsing.component.ParsedApexSystemService; import android.content.pm.parsing.component.ParsedAttribution; import android.content.pm.parsing.component.ParsedInstrumentation; import android.content.pm.parsing.component.ParsedIntentInfo; Loading Loading @@ -56,6 +57,8 @@ public interface ParsingPackage extends ParsingPackageRead { ParsingPackage addAdoptPermission(String adoptPermission); ParsingPackage addApexSystemService(ParsedApexSystemService parsedApexSystemService); ParsingPackage addConfigPreference(ConfigurationInfo configPreference); ParsingPackage addFeatureGroup(FeatureGroupInfo featureGroup); Loading
core/java/android/content/pm/parsing/ParsingPackageImpl.java +22 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,8 @@ import android.content.pm.PackageManager.Property; import android.content.pm.SigningDetails; import android.content.pm.parsing.component.ParsedActivity; import android.content.pm.parsing.component.ParsedActivityImpl; import android.content.pm.parsing.component.ParsedApexSystemService; import android.content.pm.parsing.component.ParsedApexSystemServiceImpl; import android.content.pm.parsing.component.ParsedAttribution; import android.content.pm.parsing.component.ParsedAttributionImpl; import android.content.pm.parsing.component.ParsedComponent; Loading Loading @@ -267,6 +269,9 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, @NonNull protected List<ParsedActivity> activities = emptyList(); @NonNull protected List<ParsedApexSystemService> apexSystemServices = emptyList(); @NonNull protected List<ParsedActivity> receivers = emptyList(); Loading Loading @@ -763,6 +768,14 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, return this; } @Override public final ParsingPackageImpl addApexSystemService( ParsedApexSystemService parsedApexSystemService) { this.apexSystemServices = CollectionUtils.add( this.apexSystemServices, parsedApexSystemService); return this; } @Override public ParsingPackageImpl addReceiver(ParsedActivity parsedReceiver) { this.receivers = CollectionUtils.add(this.receivers, parsedReceiver); Loading Loading @@ -832,7 +845,6 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, return this; } @Override public ParsingPackageImpl removeUsesOptionalNativeLibrary(String libraryName) { this.usesOptionalNativeLibraries = CollectionUtils.remove(this.usesOptionalNativeLibraries, libraryName); Loading Loading @@ -1198,6 +1210,7 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, ParsingPackageUtils.writeKeySetMapping(dest, this.keySetMapping); sForInternedStringList.parcel(this.protectedBroadcasts, dest, flags); dest.writeTypedList(this.activities); dest.writeTypedList(this.apexSystemServices); dest.writeTypedList(this.receivers); dest.writeTypedList(this.services); dest.writeTypedList(this.providers); Loading Loading @@ -1339,6 +1352,8 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, this.protectedBroadcasts = sForInternedStringList.unparcel(in); this.activities = ParsingUtils.createTypedInterfaceList(in, ParsedActivityImpl.CREATOR); this.apexSystemServices = ParsingUtils.createTypedInterfaceList(in, ParsedApexSystemServiceImpl.CREATOR); this.receivers = ParsingUtils.createTypedInterfaceList(in, ParsedActivityImpl.CREATOR); this.services = ParsingUtils.createTypedInterfaceList(in, ParsedServiceImpl.CREATOR); this.providers = ParsingUtils.createTypedInterfaceList(in, ParsedProviderImpl.CREATOR); Loading Loading @@ -1704,6 +1719,12 @@ public class ParsingPackageImpl implements ParsingPackage, ParsingPackageHidden, return activities; } @NonNull @Override public List<ParsedApexSystemService> getApexSystemServices() { return apexSystemServices; } @NonNull @Override public List<ParsedActivity> getReceivers() { Loading
core/java/android/content/pm/parsing/ParsingPackageRead.java +7 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager.Property; import android.content.pm.PackageParser; import android.content.pm.SigningDetails; import android.content.pm.parsing.component.ParsedApexSystemService; import android.content.pm.parsing.component.ParsedAttribution; import android.content.pm.parsing.component.ParsedIntentInfo; import android.content.pm.parsing.component.ParsedPermissionGroup; Loading Loading @@ -55,6 +56,12 @@ public interface ParsingPackageRead extends PkgWithoutStateAppInfo, PkgWithoutSt @NonNull List<String> getAdoptPermissions(); /** * @see R.styleable#AndroidManifestApexSystemService */ @NonNull List<ParsedApexSystemService> getApexSystemServices(); @NonNull List<ParsedAttribution> getAttributions(); Loading
core/java/android/content/pm/parsing/ParsingPackageUtils.java +14 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,8 @@ import android.content.pm.parsing.component.ComponentMutateUtils; import android.content.pm.parsing.component.ComponentParseUtils; import android.content.pm.parsing.component.ParsedActivity; import android.content.pm.parsing.component.ParsedActivityUtils; import android.content.pm.parsing.component.ParsedApexSystemService; import android.content.pm.parsing.component.ParsedApexSystemServiceUtils; import android.content.pm.parsing.component.ParsedAttribution; import android.content.pm.parsing.component.ParsedAttributionUtils; import android.content.pm.parsing.component.ParsedComponent; Loading Loading @@ -2205,6 +2207,18 @@ public class ParsingPackageUtils { result = activityResult; break; case "apex-system-service": ParseResult<ParsedApexSystemService> systemServiceResult = ParsedApexSystemServiceUtils.parseApexSystemService(res, parser, input); if (systemServiceResult.isSuccess()) { ParsedApexSystemService systemService = systemServiceResult.getResult(); pkg.addApexSystemService(systemService); } result = systemServiceResult; break; default: result = parseBaseAppChildTag(input, tagName, pkg, res, parser, flags); break; Loading
core/java/android/content/pm/parsing/component/ParsedApexSystemService.java 0 → 100644 +38 −0 Original line number Diff line number Diff line /* * 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 android.content.pm.parsing.component; import android.annotation.NonNull; import android.annotation.Nullable; import android.os.Parcelable; /** @hide */ public interface ParsedApexSystemService extends Parcelable { @NonNull String getName(); @Nullable String getJarPath(); @Nullable String getMinSdkVersion(); @Nullable String getMaxSdkVersion(); }