diff --git a/services/core/java/com/android/server/NetworkScoreService.java b/services/core/java/com/android/server/NetworkScoreService.java index 3443918df6aba..fc3a7c855466f 100644 --- a/services/core/java/com/android/server/NetworkScoreService.java +++ b/services/core/java/com/android/server/NetworkScoreService.java @@ -59,7 +59,7 @@ import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.content.PackageMonitor; import com.android.internal.util.DumpUtils; -import com.android.server.pm.permission.PermissionManagerServiceInternal; +import com.android.server.pm.permission.LegacyPermissionManagerInternal; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -290,7 +290,7 @@ public class NetworkScoreService extends INetworkScoreService.Stub { String useOpenWifiPackage = Global.getString(mContext.getContentResolver(), Global.USE_OPEN_WIFI_PACKAGE); if (!TextUtils.isEmpty(useOpenWifiPackage)) { - LocalServices.getService(PermissionManagerServiceInternal.class) + LocalServices.getService(LegacyPermissionManagerInternal.class) .grantDefaultPermissionsToDefaultUseOpenWifiApp(useOpenWifiPackage, userId); } @@ -302,7 +302,7 @@ public class NetworkScoreService extends INetworkScoreService.Stub { false /*notifyForDescendants*/, mUseOpenWifiPackageObserver); // Set a callback for the package manager to query the use open wifi app. - LocalServices.getService(PermissionManagerServiceInternal.class) + LocalServices.getService(LegacyPermissionManagerInternal.class) .setUseOpenWifiAppPackagesProvider((userId) -> { String useOpenWifiPackage = Global.getString(mContext.getContentResolver(), Global.USE_OPEN_WIFI_PACKAGE); diff --git a/services/core/java/com/android/server/content/ContentService.java b/services/core/java/com/android/server/content/ContentService.java index a2c427b8036a2..027b9afba392c 100644 --- a/services/core/java/com/android/server/content/ContentService.java +++ b/services/core/java/com/android/server/content/ContentService.java @@ -76,8 +76,7 @@ import com.android.internal.util.DumpUtils; import com.android.internal.util.IndentingPrintWriter; import com.android.server.LocalServices; import com.android.server.SystemService; -import com.android.server.SystemService.TargetUser; -import com.android.server.pm.permission.PermissionManagerServiceInternal; +import com.android.server.pm.permission.LegacyPermissionManagerInternal; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -296,8 +295,8 @@ public final class ContentService extends IContentService.Stub { // Let the package manager query for the sync adapters for a given authority // as we grant default permissions to sync adapters for specific authorities. - final PermissionManagerServiceInternal permissionManagerInternal = - LocalServices.getService(PermissionManagerServiceInternal.class); + final LegacyPermissionManagerInternal permissionManagerInternal = + LocalServices.getService(LegacyPermissionManagerInternal.class); permissionManagerInternal.setSyncAdapterPackagesProvider((authority, userId) -> { return getSyncAdapterPackagesForAuthorityAsUser(authority, userId); }); diff --git a/services/core/java/com/android/server/location/LocationManagerService.java b/services/core/java/com/android/server/location/LocationManagerService.java index e5c198646fb6e..c3a10c7a4f8ac 100644 --- a/services/core/java/com/android/server/location/LocationManagerService.java +++ b/services/core/java/com/android/server/location/LocationManagerService.java @@ -113,7 +113,7 @@ import com.android.server.location.provider.MockLocationProvider; import com.android.server.location.provider.PassiveLocationProvider; import com.android.server.location.provider.PassiveLocationProviderManager; import com.android.server.location.provider.proxy.ProxyLocationProvider; -import com.android.server.pm.permission.PermissionManagerServiceInternal; +import com.android.server.pm.permission.LegacyPermissionManagerInternal; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -261,8 +261,8 @@ public class LocationManagerService extends ILocationManager.Stub { // Let the package manager query which are the default location // providers as they get certain permissions granted by default. - PermissionManagerServiceInternal permissionManagerInternal = LocalServices.getService( - PermissionManagerServiceInternal.class); + LegacyPermissionManagerInternal permissionManagerInternal = LocalServices.getService( + LegacyPermissionManagerInternal.class); permissionManagerInternal.setLocationPackagesProvider( userId -> mContext.getResources().getStringArray( com.android.internal.R.array.config_locationProviderPackageNames)); diff --git a/services/core/java/com/android/server/pm/DefaultAppProvider.java b/services/core/java/com/android/server/pm/DefaultAppProvider.java index cc11fb2c00bd9..a17967fcc76e0 100644 --- a/services/core/java/com/android/server/pm/DefaultAppProvider.java +++ b/services/core/java/com/android/server/pm/DefaultAppProvider.java @@ -27,7 +27,6 @@ import android.util.Slog; import com.android.internal.infra.AndroidFuture; import com.android.internal.util.CollectionUtils; import com.android.server.FgThread; -import com.android.server.pm.permission.PermissionManagerServiceInternal; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor; @@ -42,19 +41,14 @@ import java.util.function.Supplier; public class DefaultAppProvider { @NonNull private final Supplier mRoleManagerSupplier; - @NonNull - private final PermissionManagerServiceInternal mPermissionManager; /** * Create a new instance of this class * * @param roleManagerSupplier the supplier for {@link RoleManager} - * @param permissionManager the {@link PermissionManagerServiceInternal} */ - public DefaultAppProvider(@NonNull Supplier roleManagerSupplier, @NonNull - PermissionManagerServiceInternal permissionManager) { + public DefaultAppProvider(@NonNull Supplier roleManagerSupplier) { mRoleManagerSupplier = roleManagerSupplier; - mPermissionManager = permissionManager; } /** @@ -73,11 +67,10 @@ public class DefaultAppProvider { * * @param packageName package name of the default browser, or {@code null} to unset * @param async whether the operation should be asynchronous - * @param doGrant whether to grant default permissions * @param userId the user ID * @return whether the default browser was successfully set. */ - public boolean setDefaultBrowser(@Nullable String packageName, boolean async, boolean doGrant, + public boolean setDefaultBrowser(@Nullable String packageName, boolean async, @UserIdInt int userId) { if (userId == UserHandle.USER_ALL) { return false; @@ -114,9 +107,6 @@ public class DefaultAppProvider { return false; } } - if (doGrant && packageName != null) { - mPermissionManager.grantDefaultPermissionsToDefaultBrowser(packageName, userId); - } } finally { Binder.restoreCallingIdentity(identity); } diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index b13de35df7f3a..a123f369a9abf 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -380,6 +380,8 @@ import com.android.server.pm.parsing.pkg.AndroidPackage; import com.android.server.pm.parsing.pkg.AndroidPackageUtils; import com.android.server.pm.parsing.pkg.PackageImpl; import com.android.server.pm.parsing.pkg.ParsedPackage; +import com.android.server.pm.permission.LegacyPermissionManagerInternal; +import com.android.server.pm.permission.LegacyPermissionManagerService; import com.android.server.pm.permission.Permission; import com.android.server.pm.permission.PermissionManagerService; import com.android.server.pm.permission.PermissionManagerServiceInternal; @@ -961,6 +963,8 @@ public class PackageManagerService extends IPackageManager.Stub private final Singleton mPackageInstallerServiceProducer; private final ProducerWithArgument mInstantAppResolverConnectionProducer; + private final Singleton + mLegacyPermissionManagerInternalProducer; private final SystemWrapper mSystemWrapper; private final ServiceProducer mGetLocalServiceProducer; private final ServiceProducer mGetSystemServiceProducer; @@ -993,6 +997,7 @@ public class PackageManagerService extends IPackageManager.Stub ProducerWithArgument instantAppResolverConnectionProducer, Producer moduleInfoProviderProducer, + Producer legacyPermissionManagerInternalProducer, SystemWrapper systemWrapper, ServiceProducer getLocalServiceProducer, ServiceProducer getSystemServiceProducer) { @@ -1026,6 +1031,8 @@ public class PackageManagerService extends IPackageManager.Stub mPackageInstallerServiceProducer = new Singleton<>(packageInstallerServiceProducer); mInstantAppResolverConnectionProducer = instantAppResolverConnectionProducer; mModuleInfoProviderProducer = new Singleton<>(moduleInfoProviderProducer); + mLegacyPermissionManagerInternalProducer = new Singleton<>( + legacyPermissionManagerInternalProducer); mSystemWrapper = systemWrapper; mGetLocalServiceProducer = getLocalServiceProducer; mGetSystemServiceProducer = getSystemServiceProducer; @@ -1174,6 +1181,10 @@ public class PackageManagerService extends IPackageManager.Stub public ModuleInfoProvider getModuleInfoProvider() { return mModuleInfoProviderProducer.get(this, mPackageManager); } + + public LegacyPermissionManagerInternal getLegacyPermissionManagerInternal() { + return mLegacyPermissionManagerInternalProducer.get(this, mPackageManager); + } } /** Provides an abstraction to static access to system state. */ @@ -1232,6 +1243,7 @@ public class PackageManagerService extends IPackageManager.Stub public boolean isPreNupgrade; public boolean isPreQupgrade; public boolean isUpgrade; + public LegacyPermissionManagerInternal legacyPermissionManagerInternal; public DisplayMetrics Metrics; public ModuleInfoProvider moduleInfoProvider; public MoveCallbacks moveCallbacks; @@ -1375,6 +1387,8 @@ public class PackageManagerService extends IPackageManager.Stub private final DefaultAppProvider mDefaultAppProvider; + private final LegacyPermissionManagerInternal mLegacyPermissionManager; + private final PackageProperty mPackageProperty = new PackageProperty(); private static class IFVerificationParams { @@ -2838,8 +2852,8 @@ public class PackageManagerService extends IPackageManager.Stub (i, pm) -> new ViewCompiler(i.getInstallLock(), i.getInstaller()), (i, pm) -> (IncrementalManager) i.getContext().getSystemService(Context.INCREMENTAL_SERVICE), - (i, pm) -> new DefaultAppProvider(() -> context.getSystemService(RoleManager.class), - i.getPermissionManagerServiceInternal()), + (i, pm) -> new DefaultAppProvider(() -> context.getSystemService( + RoleManager.class)), (i, pm) -> new DisplayMetrics(), (i, pm) -> new PackageParser2(pm.mSeparateProcesses, pm.mOnlyCore, i.getDisplayMetrics(), pm.mCacheDir, @@ -2856,6 +2870,7 @@ public class PackageManagerService extends IPackageManager.Stub (i, pm, cn) -> new InstantAppResolverConnection( i.getContext(), cn, Intent.ACTION_RESOLVE_INSTANT_APP_PACKAGE), (i, pm) -> new ModuleInfoProvider(i.getContext(), pm), + (i, pm) -> LegacyPermissionManagerService.create(i.getContext()), new DefaultSystemWrapper(), LocalServices::getService, context::getSystemService); @@ -3032,6 +3047,7 @@ public class PackageManagerService extends IPackageManager.Stub mAvailableFeatures = testParams.availableFeatures; mDefParseFlags = testParams.defParseFlags; mDefaultAppProvider = testParams.defaultAppProvider; + mLegacyPermissionManager = testParams.legacyPermissionManagerInternal; mDexManager = testParams.dexManager; mDirsToScanAsSystem = testParams.dirsToScanAsSystem; mFactoryTest = testParams.factoryTest; @@ -3136,6 +3152,7 @@ public class PackageManagerService extends IPackageManager.Stub mPermissionManagerService = injector.getPermissionManagerService(); mIncrementalManager = mInjector.getIncrementalManager(); mDefaultAppProvider = mInjector.getDefaultAppProvider(); + mLegacyPermissionManager = mInjector.getLegacyPermissionManagerInternal(); PlatformCompat platformCompat = mInjector.getCompatibility(); mPackageParserCallback = new PackageParser2.Callback() { @Override @@ -20702,7 +20719,7 @@ public class PackageManagerService extends IPackageManager.Stub final String defaultBrowserPackageName = mDefaultAppProvider.getDefaultBrowser(userId); if (!TextUtils.isEmpty(defaultBrowserPackageName)) { if (packageName.equals(defaultBrowserPackageName)) { - mDefaultAppProvider.setDefaultBrowser(null, true, true, userId); + mDefaultAppProvider.setDefaultBrowser(null, true, userId); } } } @@ -20717,7 +20734,7 @@ public class PackageManagerService extends IPackageManager.Stub // If this browser is restored from user's backup, do not clear // default-browser state for this user if (installReason != PackageManager.INSTALL_REASON_DEVICE_RESTORE) { - mDefaultAppProvider.setDefaultBrowser(null, true, true, userId); + mDefaultAppProvider.setDefaultBrowser(null, true, userId); } } @@ -20755,7 +20772,7 @@ public class PackageManagerService extends IPackageManager.Stub // significant refactoring to keep all default apps in the package // manager (cleaner but more work) or have the services provide // callbacks to the package manager to request a default app reset. - mDefaultAppProvider.setDefaultBrowser(null, true, true, userId); + mDefaultAppProvider.setDefaultBrowser(null, true, userId); resetNetworkPolicies(userId); synchronized (mLock) { scheduleWritePackageRestrictionsLocked(userId); @@ -20989,8 +21006,7 @@ public class PackageManagerService extends IPackageManager.Stub defaultBrowser = mSettings.removeDefaultBrowserPackageNameLPw(userId1); } if (defaultBrowser != null) { - mDefaultAppProvider.setDefaultBrowser(defaultBrowser, false, false, - userId1); + mDefaultAppProvider.setDefaultBrowser(defaultBrowser, false, userId1); } }); } catch (Exception e) { @@ -22250,6 +22266,24 @@ public class PackageManagerService extends IPackageManager.Stub mPermissionManager.systemReady(); + int[] grantPermissionsUserIds = EMPTY_INT_ARRAY; + for (int userId : UserManagerService.getInstance().getUserIds()) { + if (mPmInternal.isPermissionUpgradeNeeded(userId)) { + grantPermissionsUserIds = ArrayUtils.appendInt( + grantPermissionsUserIds, userId); + } + } + // If we upgraded grant all default permissions before kicking off. + for (int userId : grantPermissionsUserIds) { + mLegacyPermissionManager.grantDefaultPermissions(userId); + } + if (grantPermissionsUserIds == EMPTY_INT_ARRAY) { + // If we did not grant default permissions, we preload from this the + // default permission exceptions lazily to ensure we don't hit the + // disk on a new user creation. + mLegacyPermissionManager.scheduleReadDefaultPermissionExceptions(); + } + if (mInstantAppResolverConnection != null) { mContext.registerReceiver(new BroadcastReceiver() { @Override @@ -24331,14 +24365,9 @@ public class PackageManagerService extends IPackageManager.Stub Slog.d(TAG, "onNewUserCreated(id=" + userId + ", convertedFromPreCreated=" + convertedFromPreCreated + ")"); } - if (!convertedFromPreCreated) { - mPermissionManager.onUserCreated(userId); - return; - } - if (!readPermissionStateForUser(userId)) { - // Could not read the existing permissions, re-grant them. - Slog.i(TAG, "re-granting permissions for pre-created user " + userId); + if (!convertedFromPreCreated || !readPermissionStateForUser(userId)) { mPermissionManager.onUserCreated(userId); + mLegacyPermissionManager.grantDefaultPermissions(userId); } } diff --git a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java index 165647205a982..44a2187aed8ea 100644 --- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java @@ -41,8 +41,9 @@ import android.net.Uri; import android.os.Build; import android.os.Environment; import android.os.Handler; -import android.os.Looper; +import android.os.HandlerThread; import android.os.Message; +import android.os.Process; import android.os.UserHandle; import android.os.storage.StorageManager; import android.permission.PermissionManager; @@ -67,8 +68,9 @@ import com.android.internal.R; import com.android.internal.util.ArrayUtils; import com.android.internal.util.XmlUtils; import com.android.server.LocalServices; -import com.android.server.pm.permission.PermissionManagerServiceInternal.PackagesProvider; -import com.android.server.pm.permission.PermissionManagerServiceInternal.SyncAdapterPackagesProvider; +import com.android.server.ServiceThread; +import com.android.server.pm.permission.LegacyPermissionManagerInternal.PackagesProvider; +import com.android.server.pm.permission.LegacyPermissionManagerInternal.SyncAdapterPackagesProvider; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; @@ -96,7 +98,7 @@ import java.util.Set; * to have an interface defined in the package manager but have the impl next to other * policy stuff like PhoneWindowManager */ -public final class DefaultPermissionGrantPolicy { +final class DefaultPermissionGrantPolicy { private static final String TAG = "DefaultPermGrantPolicy"; // must be <= 23 chars private static final boolean DEBUG = false; @@ -291,9 +293,12 @@ public final class DefaultPermissionGrantPolicy { } }; - DefaultPermissionGrantPolicy(Context context, Looper looper) { + DefaultPermissionGrantPolicy(@NonNull Context context) { mContext = context; - mHandler = new Handler(looper) { + HandlerThread handlerThread = new ServiceThread(TAG, + Process.THREAD_PRIORITY_BACKGROUND, true /*allowIo*/); + handlerThread.start(); + mHandler = new Handler(handlerThread.getLooper()) { @Override public void handleMessage(Message msg) { if (msg.what == MSG_READ_DEFAULT_PERMISSION_EXCEPTIONS) { @@ -998,12 +1003,6 @@ public final class DefaultPermissionGrantPolicy { } } - public void grantDefaultPermissionsToDefaultBrowser(String packageName, int userId) { - Log.i(TAG, "Granting permissions to default browser for user:" + userId); - grantPermissionsToSystemPackage(NO_PM_CACHE, packageName, userId, - FOREGROUND_LOCATION_PERMISSIONS); - } - private String getDefaultSystemHandlerActivityPackage(PackageManagerWrapper pm, String intentAction, int userId) { return getDefaultSystemHandlerActivityPackage(pm, new Intent(intentAction), userId); diff --git a/services/core/java/com/android/server/pm/permission/LegacyPermissionManagerInternal.java b/services/core/java/com/android/server/pm/permission/LegacyPermissionManagerInternal.java new file mode 100644 index 0000000000000..a098484b803b4 --- /dev/null +++ b/services/core/java/com/android/server/pm/permission/LegacyPermissionManagerInternal.java @@ -0,0 +1,172 @@ +/* + * Copyright (C) 2020 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.pm.permission; + +import android.annotation.NonNull; +import android.annotation.UserIdInt; + +/** + * The internal interface for {@link LegacyPermissionManagerService}. + */ +public interface LegacyPermissionManagerInternal { + /** + * Sets the dialer application packages provider. + * @param provider The provider. + */ + void setDialerAppPackagesProvider(PackagesProvider provider); + + /** + * Set the location extra packages provider. + * @param provider The packages provider. + */ + void setLocationExtraPackagesProvider(PackagesProvider provider); + + /** + * Sets the location provider packages provider. + * @param provider The packages provider. + */ + void setLocationPackagesProvider(PackagesProvider provider); + + /** + * Sets the SIM call manager packages provider. + * @param provider The provider. + */ + void setSimCallManagerPackagesProvider(PackagesProvider provider); + + /** + * Sets the SMS application packages provider. + * @param provider The provider. + */ + void setSmsAppPackagesProvider(PackagesProvider provider); + + /** + * Sets the sync adapter packages provider. + * @param provider The provider. + */ + void setSyncAdapterPackagesProvider(SyncAdapterPackagesProvider provider); + + /** + * Sets the Use Open Wifi packages provider. + * @param provider The packages provider. + */ + void setUseOpenWifiAppPackagesProvider(PackagesProvider provider); + + /** + * Sets the voice interaction packages provider. + * @param provider The packages provider. + */ + void setVoiceInteractionPackagesProvider(PackagesProvider provider); + + /** + * Requests granting of the default permissions to the current default Use Open Wifi app. + * @param packageName The default use open wifi package name. + * @param userId The user for which to grant the permissions. + */ + void grantDefaultPermissionsToDefaultSimCallManager(@NonNull String packageName, + @UserIdInt int userId); + + /** + * Requests granting of the default permissions to the current default Use Open Wifi app. + * @param packageName The default use open wifi package name. + * @param userId The user for which to grant the permissions. + */ + void grantDefaultPermissionsToDefaultUseOpenWifiApp(@NonNull String packageName, + @UserIdInt int userId); + + /** + * Grant the default permissions for a user. + * + * @param userId the user ID + */ + void grantDefaultPermissions(@UserIdInt int userId); + + /** + * Schedule reading the default permission exceptions file. + */ + void scheduleReadDefaultPermissionExceptions(); + + // TODO(zhanghai): The following methods should be moved to a new AIDL to support + // the legacy PermissionManager directly in a later CL. + + /** + * Grant default permissions to currently active LUI app + * @param packageName The package name for the LUI app + * @param userId The user ID + */ + void grantDefaultPermissionsToActiveLuiApp(String packageName, int userId); + + /** + * Revoke default permissions to currently active LUI app + * @param packageNames The package names for the LUI apps + * @param userId The user ID + */ + void revokeDefaultPermissionsFromLuiApps(String[] packageNames, int userId); + + /** + * Grant default permissions to currently active Ims services + * @param packageNames The package names for the Ims services + * @param userId The user ID + */ + void grantDefaultPermissionsToEnabledImsServices(String[] packageNames, int userId); + + /** + * Grant default permissions to currently enabled telephony data services + * @param packageNames The package name for the services + * @param userId The user ID + */ + void grantDefaultPermissionsToEnabledTelephonyDataServices(String[] packageNames, int userId); + + /** + * Revoke default permissions to currently active telephony data services + * @param packageNames The package name for the services + * @param userId The IDhandle + */ + void revokeDefaultPermissionsFromDisabledTelephonyDataServices(String[] packageNames, + int userId); + + /** + * Grant default permissions to currently enabled carrier apps + * @param packageNames Package names of the apps to be granted permissions + * @param userId The user ID + */ + void grantDefaultPermissionsToEnabledCarrierApps(String[] packageNames, int userId); + + /** + * Provider for package names. + */ + interface PackagesProvider { + /** + * Gets the packages for a given user. + * @param userId The user id. + * @return The package names. + */ + String[] getPackages(int userId); + } + + /** + * Provider for package names. + */ + interface SyncAdapterPackagesProvider { + /** + * Gets the sync adapter packages for given authority and user. + * @param authority The authority. + * @param userId The user id. + * @return The package names. + */ + String[] getPackages(String authority, int userId); + } +} diff --git a/services/core/java/com/android/server/pm/permission/LegacyPermissionManagerService.java b/services/core/java/com/android/server/pm/permission/LegacyPermissionManagerService.java new file mode 100644 index 0000000000000..0c0a8dfeaaec5 --- /dev/null +++ b/services/core/java/com/android/server/pm/permission/LegacyPermissionManagerService.java @@ -0,0 +1,181 @@ +/* + * Copyright (C) 2020 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.pm.permission; + +import android.annotation.NonNull; +import android.content.Context; +import android.os.Binder; + +import com.android.server.LocalServices; +import com.android.server.pm.PackageManagerServiceUtils; + +/** + * Legacy permission manager service. + */ +public class LegacyPermissionManagerService { + @NonNull + private final DefaultPermissionGrantPolicy mDefaultPermissionGrantPolicy; + + /** + * Get or create an instance of this class for use by other components. + *

+ * This method is not thread-safe. + * + * @param context the {@link Context} + * @return the internal instance + */ + @NonNull + public static LegacyPermissionManagerInternal create(@NonNull Context context) { + LegacyPermissionManagerInternal legacyPermissionManagerInternal = LocalServices.getService( + LegacyPermissionManagerInternal.class); + if (legacyPermissionManagerInternal == null) { + new LegacyPermissionManagerService(context); + legacyPermissionManagerInternal = LocalServices.getService( + LegacyPermissionManagerInternal.class); + } + return legacyPermissionManagerInternal; + } + + private LegacyPermissionManagerService(@NonNull Context context) { + mDefaultPermissionGrantPolicy = new DefaultPermissionGrantPolicy(context); + LocalServices.addService(LegacyPermissionManagerInternal.class, new Internal()); + } + + private class Internal implements LegacyPermissionManagerInternal { + @Override + public void setDialerAppPackagesProvider(PackagesProvider provider) { + mDefaultPermissionGrantPolicy.setDialerAppPackagesProvider(provider); + } + + @Override + public void setLocationExtraPackagesProvider(PackagesProvider provider) { + mDefaultPermissionGrantPolicy.setLocationExtraPackagesProvider(provider); + } + + @Override + public void setLocationPackagesProvider(PackagesProvider provider) { + mDefaultPermissionGrantPolicy.setLocationPackagesProvider(provider); + } + + @Override + public void setSimCallManagerPackagesProvider(PackagesProvider provider) { + mDefaultPermissionGrantPolicy.setSimCallManagerPackagesProvider(provider); + } + + @Override + public void setSmsAppPackagesProvider(PackagesProvider provider) { + mDefaultPermissionGrantPolicy.setSmsAppPackagesProvider(provider); + } + + @Override + public void setSyncAdapterPackagesProvider(SyncAdapterPackagesProvider provider) { + mDefaultPermissionGrantPolicy.setSyncAdapterPackagesProvider(provider); + } + + @Override + public void setUseOpenWifiAppPackagesProvider(PackagesProvider provider) { + mDefaultPermissionGrantPolicy.setUseOpenWifiAppPackagesProvider(provider); + } + + @Override + public void setVoiceInteractionPackagesProvider(PackagesProvider provider) { + mDefaultPermissionGrantPolicy.setVoiceInteractionPackagesProvider(provider); + } + + @Override + public void grantDefaultPermissionsToDefaultSimCallManager(String packageName, int userId) { + mDefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultSimCallManager( + packageName, userId); + } + + @Override + public void grantDefaultPermissionsToDefaultUseOpenWifiApp(String packageName, int userId) { + mDefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultUseOpenWifiApp( + packageName, userId); + } + + @Override + public void grantDefaultPermissions(int userId) { + mDefaultPermissionGrantPolicy.grantDefaultPermissions(userId); + } + + @Override + public void scheduleReadDefaultPermissionExceptions() { + mDefaultPermissionGrantPolicy.scheduleReadDefaultPermissionExceptions(); + } + + // TODO(zhanghai): The following methods should be moved to a new AIDL to support + // the legacy PermissionManager directly in a later CL. + + @Override + public void grantDefaultPermissionsToActiveLuiApp(String packageName, int userId) { + final int callingUid = Binder.getCallingUid(); + PackageManagerServiceUtils.enforceSystemOrPhoneCaller( + "grantDefaultPermissionsToActiveLuiApp", callingUid); + Binder.withCleanCallingIdentity(() -> mDefaultPermissionGrantPolicy + .grantDefaultPermissionsToActiveLuiApp(packageName, userId)); + } + + @Override + public void revokeDefaultPermissionsFromLuiApps(String[] packageNames, int userId) { + final int callingUid = Binder.getCallingUid(); + PackageManagerServiceUtils.enforceSystemOrPhoneCaller( + "revokeDefaultPermissionsFromLuiApps", callingUid); + Binder.withCleanCallingIdentity(() -> mDefaultPermissionGrantPolicy + .revokeDefaultPermissionsFromLuiApps(packageNames, userId)); + } + + @Override + public void grantDefaultPermissionsToEnabledImsServices(String[] packageNames, int userId) { + final int callingUid = Binder.getCallingUid(); + PackageManagerServiceUtils.enforceSystemOrPhoneCaller( + "grantDefaultPermissionsToEnabledImsServices", callingUid); + Binder.withCleanCallingIdentity(() -> mDefaultPermissionGrantPolicy + .grantDefaultPermissionsToEnabledImsServices(packageNames, userId)); + } + + @Override + public void grantDefaultPermissionsToEnabledTelephonyDataServices( + String[] packageNames, int userId) { + final int callingUid = Binder.getCallingUid(); + PackageManagerServiceUtils.enforceSystemOrPhoneCaller( + "grantDefaultPermissionsToEnabledTelephonyDataServices", callingUid); + Binder.withCleanCallingIdentity(() -> mDefaultPermissionGrantPolicy + .grantDefaultPermissionsToEnabledTelephonyDataServices(packageNames, userId)); + } + + @Override + public void revokeDefaultPermissionsFromDisabledTelephonyDataServices( + String[] packageNames, int userId) { + final int callingUid = Binder.getCallingUid(); + PackageManagerServiceUtils.enforceSystemOrPhoneCaller( + "revokeDefaultPermissionsFromDisabledTelephonyDataServices", callingUid); + Binder.withCleanCallingIdentity(() -> mDefaultPermissionGrantPolicy + .revokeDefaultPermissionsFromDisabledTelephonyDataServices(packageNames, + userId)); + } + + @Override + public void grantDefaultPermissionsToEnabledCarrierApps(String[] packageNames, int userId) { + final int callingUid = Binder.getCallingUid(); + PackageManagerServiceUtils.enforceSystemOrPhoneCaller( + "grantPermissionsToEnabledCarrierApps", callingUid); + Binder.withCleanCallingIdentity(() -> mDefaultPermissionGrantPolicy + .grantDefaultPermissionsToEnabledCarrierApps(packageNames, userId)); + } + } +} diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java index fe461b2147a55..791efd022fe9b 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -144,7 +144,6 @@ import com.android.server.ServiceThread; import com.android.server.SystemConfig; import com.android.server.Watchdog; import com.android.server.pm.ApexManager; -import com.android.server.pm.PackageManagerServiceUtils; import com.android.server.pm.PackageSetting; import com.android.server.pm.UserManagerInternal; import com.android.server.pm.UserManagerService; @@ -239,9 +238,6 @@ public class PermissionManagerService extends IPermissionManager.Stub { private final SparseArray mOneTimePermissionUserManagers = new SparseArray<>(); - /** Default permission policy to provide proper behaviour out-of-the-box */ - private final DefaultPermissionGrantPolicy mDefaultPermissionGrantPolicy; - /** App ops manager */ private final AppOpsManager mAppOpsManager; @@ -390,8 +386,6 @@ public class PermissionManagerService extends IPermissionManager.Stub { mHandler = new Handler(mHandlerThread.getLooper()); Watchdog.getInstance().addThread(mHandler); - mDefaultPermissionGrantPolicy = new DefaultPermissionGrantPolicy( - context, mHandlerThread.getLooper()); SystemConfig systemConfig = SystemConfig.getInstance(); mSystemPermissions = systemConfig.getSystemPermissions(); mGlobalGids = systemConfig.getGlobalGids(); @@ -2007,58 +2001,40 @@ public class PermissionManagerService extends IPermissionManager.Stub { @Override public void grantDefaultPermissionsToEnabledCarrierApps(String[] packageNames, int userId) { - final int callingUid = Binder.getCallingUid(); - PackageManagerServiceUtils - .enforceSystemOrPhoneCaller("grantPermissionsToEnabledCarrierApps", callingUid); - Binder.withCleanCallingIdentity(() -> mDefaultPermissionGrantPolicy - .grantDefaultPermissionsToEnabledCarrierApps(packageNames, userId)); + LocalServices.getService(LegacyPermissionManagerInternal.class) + .grantDefaultPermissionsToEnabledCarrierApps(packageNames, userId); } @Override public void grantDefaultPermissionsToEnabledImsServices(String[] packageNames, int userId) { - final int callingUid = Binder.getCallingUid(); - PackageManagerServiceUtils.enforceSystemOrPhoneCaller( - "grantDefaultPermissionsToEnabledImsServices", callingUid); - Binder.withCleanCallingIdentity(() -> mDefaultPermissionGrantPolicy - .grantDefaultPermissionsToEnabledImsServices(packageNames, userId)); + LocalServices.getService(LegacyPermissionManagerInternal.class) + .grantDefaultPermissionsToEnabledImsServices(packageNames, userId); } @Override public void grantDefaultPermissionsToEnabledTelephonyDataServices( String[] packageNames, int userId) { - final int callingUid = Binder.getCallingUid(); - PackageManagerServiceUtils.enforceSystemOrPhoneCaller( - "grantDefaultPermissionsToEnabledTelephonyDataServices", callingUid); - Binder.withCleanCallingIdentity(() -> mDefaultPermissionGrantPolicy - .grantDefaultPermissionsToEnabledTelephonyDataServices(packageNames, userId)); + LocalServices.getService(LegacyPermissionManagerInternal.class) + .grantDefaultPermissionsToEnabledTelephonyDataServices(packageNames, userId); } @Override public void revokeDefaultPermissionsFromDisabledTelephonyDataServices( String[] packageNames, int userId) { - final int callingUid = Binder.getCallingUid(); - PackageManagerServiceUtils.enforceSystemOrPhoneCaller( - "revokeDefaultPermissionsFromDisabledTelephonyDataServices", callingUid); - Binder.withCleanCallingIdentity(() -> mDefaultPermissionGrantPolicy - .revokeDefaultPermissionsFromDisabledTelephonyDataServices(packageNames, userId)); + LocalServices.getService(LegacyPermissionManagerInternal.class) + .revokeDefaultPermissionsFromDisabledTelephonyDataServices(packageNames, userId); } @Override public void grantDefaultPermissionsToActiveLuiApp(String packageName, int userId) { - final int callingUid = Binder.getCallingUid(); - PackageManagerServiceUtils - .enforceSystemOrPhoneCaller("grantDefaultPermissionsToActiveLuiApp", callingUid); - Binder.withCleanCallingIdentity(() -> mDefaultPermissionGrantPolicy - .grantDefaultPermissionsToActiveLuiApp(packageName, userId)); + LocalServices.getService(LegacyPermissionManagerInternal.class) + .grantDefaultPermissionsToActiveLuiApp(packageName, userId); } @Override public void revokeDefaultPermissionsFromLuiApps(String[] packageNames, int userId) { - final int callingUid = Binder.getCallingUid(); - PackageManagerServiceUtils - .enforceSystemOrPhoneCaller("revokeDefaultPermissionsFromLuiApps", callingUid); - Binder.withCleanCallingIdentity(() -> mDefaultPermissionGrantPolicy - .revokeDefaultPermissionsFromLuiApps(packageNames, userId)); + LocalServices.getService(LegacyPermissionManagerInternal.class) + .revokeDefaultPermissionsFromLuiApps(packageNames, userId); } /** @@ -4551,24 +4527,6 @@ public class PermissionManagerService extends IPermissionManager.Stub { mPermissionControllerManager = mContext.getSystemService(PermissionControllerManager.class); mPermissionPolicyInternal = LocalServices.getService(PermissionPolicyInternal.class); - - int[] grantPermissionsUserIds = EMPTY_INT_ARRAY; - for (int userId : UserManagerService.getInstance().getUserIds()) { - if (mPackageManagerInt.isPermissionUpgradeNeeded(userId)) { - grantPermissionsUserIds = ArrayUtils.appendInt( - grantPermissionsUserIds, userId); - } - } - // If we upgraded grant all default permissions before kicking off. - for (int userId : grantPermissionsUserIds) { - mDefaultPermissionGrantPolicy.grantDefaultPermissions(userId); - } - if (grantPermissionsUserIds == EMPTY_INT_ARRAY) { - // If we did not grant default permissions, we preload from this the - // default permission exceptions lazily to ensure we don't hit the - // disk on a new user creation. - mDefaultPermissionGrantPolicy.scheduleReadDefaultPermissionExceptions(); - } } private static String getVolumeUuidForPackage(AndroidPackage pkg) { @@ -5181,72 +5139,12 @@ public class PermissionManagerService extends IPermissionManager.Stub { stopShellPermissionIdentityDelegationInternal(); } - @Override - public void setDialerAppPackagesProvider(PackagesProvider provider) { - mDefaultPermissionGrantPolicy.setDialerAppPackagesProvider(provider); - } - - @Override - public void setLocationExtraPackagesProvider(PackagesProvider provider) { - mDefaultPermissionGrantPolicy.setLocationExtraPackagesProvider(provider); - } - - @Override - public void setLocationPackagesProvider(PackagesProvider provider) { - mDefaultPermissionGrantPolicy.setLocationPackagesProvider(provider); - } - - @Override - public void setSimCallManagerPackagesProvider(PackagesProvider provider) { - mDefaultPermissionGrantPolicy.setSimCallManagerPackagesProvider(provider); - } - - @Override - public void setSmsAppPackagesProvider(PackagesProvider provider) { - mDefaultPermissionGrantPolicy.setSmsAppPackagesProvider(provider); - } - - @Override - public void setSyncAdapterPackagesProvider(SyncAdapterPackagesProvider provider) { - mDefaultPermissionGrantPolicy.setSyncAdapterPackagesProvider(provider); - } - - @Override - public void setUseOpenWifiAppPackagesProvider(PackagesProvider provider) { - mDefaultPermissionGrantPolicy.setUseOpenWifiAppPackagesProvider(provider); - } - - @Override - public void setVoiceInteractionPackagesProvider(PackagesProvider provider) { - mDefaultPermissionGrantPolicy.setVoiceInteractionPackagesProvider(provider); - } - - @Override - public void grantDefaultPermissionsToDefaultBrowser(@NonNull String packageName, - @UserIdInt int userId) { - mDefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultBrowser(packageName, - userId); - } - - @Override - public void grantDefaultPermissionsToDefaultSimCallManager(String packageName, int userId) { - mDefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultSimCallManager( - packageName, userId); - } - - @Override - public void grantDefaultPermissionsToDefaultUseOpenWifiApp(String packageName, int userId) { - mDefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultUseOpenWifiApp( - packageName, userId); - } - @Override public void onUserCreated(@UserIdInt int userId) { Preconditions.checkArgumentNonNegative(userId, "userId"); // NOTE: This adds UPDATE_PERMISSIONS_REPLACE_PKG PermissionManagerService.this.updateAllPermissions(StorageManager.UUID_PRIVATE_INTERNAL, true, mDefaultPermissionCallback); - mDefaultPermissionGrantPolicy.grantDefaultPermissions(userId); } @Override diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java index 1163ce0ac9178..66e692db2154e 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java @@ -38,33 +38,6 @@ import java.util.Set; */ public interface PermissionManagerServiceInternal extends PermissionManagerInternal, LegacyPermissionDataProvider { - /** - * Provider for package names. - */ - interface PackagesProvider { - - /** - * Gets the packages for a given user. - * @param userId The user id. - * @return The package names. - */ - String[] getPackages(int userId); - } - - /** - * Provider for package names. - */ - interface SyncAdapterPackagesProvider { - - /** - * Gets the sync adapter packages for given authority and user. - * @param authority The authority. - * @param userId The user id. - * @return The package names. - */ - String[] getPackages(String authority, int userId); - } - /** * Adds a listener for runtime permission state (permissions or flags) changes. * @@ -210,78 +183,6 @@ public interface PermissionManagerServiceInternal extends PermissionManagerInter //@SystemApi(client = SystemApi.Client.SYSTEM_SERVER) void stopShellPermissionIdentityDelegation(); - /** - * Sets the dialer application packages provider. - * @param provider The provider. - */ - void setDialerAppPackagesProvider(PackagesProvider provider); - - /** - * Set the location extra packages provider. - * @param provider The packages provider. - */ - void setLocationExtraPackagesProvider(PackagesProvider provider); - - /** - * Sets the location provider packages provider. - * @param provider The packages provider. - */ - void setLocationPackagesProvider(PackagesProvider provider); - - /** - * Sets the SIM call manager packages provider. - * @param provider The provider. - */ - void setSimCallManagerPackagesProvider(PackagesProvider provider); - - /** - * Sets the SMS application packages provider. - * @param provider The provider. - */ - void setSmsAppPackagesProvider(PackagesProvider provider); - - /** - * Sets the sync adapter packages provider. - * @param provider The provider. - */ - void setSyncAdapterPackagesProvider(SyncAdapterPackagesProvider provider); - - /** - * Sets the Use Open Wifi packages provider. - * @param provider The packages provider. - */ - void setUseOpenWifiAppPackagesProvider(PackagesProvider provider); - - /** - * Sets the voice interaction packages provider. - * @param provider The packages provider. - */ - void setVoiceInteractionPackagesProvider(PackagesProvider provider); - - /** - * Requests granting of the default permissions to the current default browser. - * @param packageName The default browser package name. - * @param userId The user for which to grant the permissions. - */ - void grantDefaultPermissionsToDefaultBrowser(@NonNull String packageName, - @UserIdInt int userId); - - /** - * Requests granting of the default permissions to the current default Use Open Wifi app. - * @param packageName The default use open wifi package name. - * @param userId The user for which to grant the permissions. - */ - void grantDefaultPermissionsToDefaultSimCallManager(@NonNull String packageName, - @UserIdInt int userId); - - /** - * Requests granting of the default permissions to the current default Use Open Wifi app. - * @param packageName The default use open wifi package name. - * @param userId The user for which to grant the permissions. - */ - void grantDefaultPermissionsToDefaultUseOpenWifiApp(@NonNull String packageName, - @UserIdInt int userId); - /** * Removes invalid permissions which are not {@link PermissionInfo#FLAG_HARD_RESTRICTED} or * {@link PermissionInfo#FLAG_SOFT_RESTRICTED} from the input. diff --git a/services/core/java/com/android/server/role/RoleManagerService.java b/services/core/java/com/android/server/role/RoleManagerService.java index 3d91a85020974..eb15c808f512e 100644 --- a/services/core/java/com/android/server/role/RoleManagerService.java +++ b/services/core/java/com/android/server/role/RoleManagerService.java @@ -71,7 +71,6 @@ import com.android.server.FgThread; import com.android.server.LocalServices; import com.android.server.SystemService; import com.android.server.pm.UserManagerInternal; -import com.android.server.pm.permission.PermissionManagerServiceInternal; import java.io.ByteArrayOutputStream; import java.io.FileDescriptor; @@ -709,12 +708,6 @@ public class RoleManagerService extends SystemService implements RoleUserState.C Slog.e(LOG_TAG, "Exception while setting default browser: " + packageName, e); return false; } - - if (packageName != null) { - final PermissionManagerServiceInternal permissionManager = - LocalServices.getService(PermissionManagerServiceInternal.class); - permissionManager.grantDefaultPermissionsToDefaultBrowser(packageName, userId); - } } finally { Binder.restoreCallingIdentity(identity); } diff --git a/services/core/java/com/android/server/telecom/TelecomLoaderService.java b/services/core/java/com/android/server/telecom/TelecomLoaderService.java index 52ad893a9acee..f0c96e18930ab 100644 --- a/services/core/java/com/android/server/telecom/TelecomLoaderService.java +++ b/services/core/java/com/android/server/telecom/TelecomLoaderService.java @@ -42,7 +42,7 @@ import com.android.server.DeviceIdleInternal; import com.android.server.LocalServices; import com.android.server.SystemService; import com.android.server.pm.UserManagerService; -import com.android.server.pm.permission.PermissionManagerServiceInternal; +import com.android.server.pm.permission.LegacyPermissionManagerInternal; /** * Starts the telecom component by binding to its ITelecomService implementation. Telecom is setup @@ -65,8 +65,8 @@ public class TelecomLoaderService extends SystemService { ServiceManager.addService(Context.TELECOM_SERVICE, telecomService.asBinder()); synchronized (mLock) { - final PermissionManagerServiceInternal permissionManager = - LocalServices.getService(PermissionManagerServiceInternal.class); + final LegacyPermissionManagerInternal permissionManager = + LocalServices.getService(LegacyPermissionManagerInternal.class); if (mDefaultSimCallManagerRequests != null) { if (mDefaultSimCallManagerRequests != null) { TelecomManager telecomManager = @@ -165,8 +165,8 @@ public class TelecomLoaderService extends SystemService { private void registerDefaultAppProviders() { - final PermissionManagerServiceInternal permissionManager = - LocalServices.getService(PermissionManagerServiceInternal.class); + final LegacyPermissionManagerInternal permissionManager = + LocalServices.getService(LegacyPermissionManagerInternal.class); // Set a callback for the permission grant policy to query the default sms app. permissionManager.setSmsAppPackagesProvider(userId -> { @@ -244,15 +244,16 @@ public class TelecomLoaderService extends SystemService { } private void updateSimCallManagerPermissions(int userId) { - final PermissionManagerServiceInternal permissionManager = - LocalServices.getService(PermissionManagerServiceInternal.class); + final LegacyPermissionManagerInternal permissionManager = + LocalServices.getService(LegacyPermissionManagerInternal.class); TelecomManager telecomManager = (TelecomManager) mContext.getSystemService(Context.TELECOM_SERVICE); PhoneAccountHandle phoneAccount = telecomManager.getSimCallManager(userId); if (phoneAccount != null) { Slog.i(TAG, "updating sim call manager permissions for userId:" + userId); String packageName = phoneAccount.getComponentName().getPackageName(); - permissionManager.grantDefaultPermissionsToDefaultSimCallManager(packageName, userId); + permissionManager.grantDefaultPermissionsToDefaultSimCallManager(packageName, + userId); } } } diff --git a/services/tests/servicestests/src/com/android/server/NetworkScoreServiceTest.java b/services/tests/servicestests/src/com/android/server/NetworkScoreServiceTest.java index e609adc2a0675..ce3751abfed70 100644 --- a/services/tests/servicestests/src/com/android/server/NetworkScoreServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/NetworkScoreServiceTest.java @@ -72,7 +72,7 @@ import androidx.test.filters.MediumTest; import androidx.test.runner.AndroidJUnit4; import com.android.server.devicepolicy.MockUtils; -import com.android.server.pm.permission.PermissionManagerServiceInternal; +import com.android.server.pm.permission.LegacyPermissionManagerInternal; import com.google.android.collect.Lists; @@ -133,10 +133,10 @@ public class NetworkScoreServiceTest { @Mock private UnaryOperator> mScanResultsFilter; @Mock private WifiInfo mWifiInfo; @Mock private NetworkScoreService.ScoringServiceConnection mServiceConnection; - @Mock private PermissionManagerServiceInternal mPermissionManagerInternal; + @Mock private LegacyPermissionManagerInternal mPermissionManagerInternal; @Captor private ArgumentCaptor> mScoredNetworkCaptor; - @Captor private - ArgumentCaptor mPackagesProviderCaptor; + @Captor private ArgumentCaptor + mPackagesProviderCaptor; private ContentResolver mContentResolver; private NetworkScoreService mNetworkScoreService; @@ -165,7 +165,7 @@ public class NetworkScoreServiceTest { mHandlerThread = new HandlerThread("NetworkScoreServiceTest"); mHandlerThread.start(); LocalServices.addService( - PermissionManagerServiceInternal.class, mPermissionManagerInternal); + LegacyPermissionManagerInternal.class, mPermissionManagerInternal); mNetworkScoreService = new NetworkScoreService(mContext, mNetworkScorerAppManager, networkScorerAppData -> mServiceConnection, mHandlerThread.getLooper()); WifiConfiguration configuration = new WifiConfiguration(); @@ -191,7 +191,7 @@ public class NetworkScoreServiceTest { @After public void tearDown() throws Exception { mHandlerThread.quitSafely(); - LocalServices.removeServiceForTest(PermissionManagerServiceInternal.class); + LocalServices.removeServiceForTest(LegacyPermissionManagerInternal.class); } @Test diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java index 06c23de84ac32..b5bb2a81a1cd3 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java @@ -49,7 +49,6 @@ import android.hardware.soundtrigger.SoundTrigger.ModelParamRange; import android.hardware.soundtrigger.SoundTrigger.ModuleProperties; import android.hardware.soundtrigger.SoundTrigger.RecognitionConfig; import android.media.permission.Identity; -import android.media.permission.IdentityContext; import android.media.permission.PermissionUtil; import android.media.permission.SafeCloseable; import android.os.Binder; @@ -92,7 +91,7 @@ import com.android.server.LocalServices; import com.android.server.SystemService; import com.android.server.UiThread; import com.android.server.pm.UserManagerInternal; -import com.android.server.pm.permission.PermissionManagerServiceInternal; +import com.android.server.pm.permission.LegacyPermissionManagerInternal; import com.android.server.soundtrigger.SoundTriggerInternal; import com.android.server.utils.TimingsTraceAndSlog; import com.android.server.wm.ActivityTaskManagerInternal; @@ -141,10 +140,10 @@ public class VoiceInteractionManagerService extends SystemService { mUserManagerInternal = Objects.requireNonNull( LocalServices.getService(UserManagerInternal.class)); - PermissionManagerServiceInternal permissionManagerInternal = LocalServices.getService( - PermissionManagerServiceInternal.class); + LegacyPermissionManagerInternal permissionManagerInternal = LocalServices.getService( + LegacyPermissionManagerInternal.class); permissionManagerInternal.setVoiceInteractionPackagesProvider( - new PermissionManagerServiceInternal.PackagesProvider() { + new LegacyPermissionManagerInternal.PackagesProvider() { @Override public String[] getPackages(int userId) { mServiceStub.initForUser(userId);