Loading core/java/android/content/pm/PackageManagerInternal.java +9 −0 Original line number Diff line number Diff line Loading @@ -985,4 +985,13 @@ public abstract class PackageManagerInternal { * @return true if default permissions */ public abstract boolean wereDefaultPermissionsGrantedSinceBoot(int userId); /** * Get fingerprint of build that updated the runtime permissions for a user. * * @param userId The user to update * @param fingerPrint The fingerprint to set */ public abstract void setRuntimePermissionsFingerPrint(@NonNull String fingerPrint, @UserIdInt int userId); } services/core/java/com/android/server/pm/PackageManagerService.java +9 −10 Original line number Diff line number Diff line Loading @@ -317,7 +317,6 @@ import com.android.server.pm.dex.PackageDexUsage; import com.android.server.pm.dex.ViewCompiler; import com.android.server.pm.permission.BasePermission; import com.android.server.pm.permission.DefaultPermissionGrantPolicy; import com.android.server.pm.permission.DefaultPermissionGrantPolicy.DefaultPermissionGrantedCallback; import com.android.server.pm.permission.PermissionManagerService; import com.android.server.pm.permission.PermissionManagerServiceInternal; import com.android.server.pm.permission.PermissionManagerServiceInternal.PermissionCallback; Loading Loading @@ -2415,15 +2414,7 @@ public class PackageManagerService extends IPackageManager.Stub LocalServices.getService(PackageManagerInternal.class), mPackages); mPermissionManager = PermissionManagerService.create(context, new DefaultPermissionGrantedCallback() { @Override public void onDefaultRuntimePermissionsGranted(int userId) { synchronized(mPackages) { mSettings.onDefaultRuntimePermissionsGrantedLPr(userId); mDefaultPermissionsGrantedUsers.put(userId, userId); } } }, mPackages /*externalLock*/); mPackages /*externalLock*/); mDefaultPermissionPolicy = mPermissionManager.getDefaultPermissionGrantPolicy(); mSettings = new Settings(Environment.getDataDirectory(), mPermissionManager.getPermissionSettings(), mPackages); Loading Loading @@ -24927,6 +24918,14 @@ public class PackageManagerService extends IPackageManager.Stub return mDefaultPermissionPolicy.wereDefaultPermissionsGrantedSinceBoot(userId); } } @Override public void setRuntimePermissionsFingerPrint(@NonNull String fingerPrint, @UserIdInt int userId) { synchronized (mPackages) { mSettings.setRuntimePermissionsFingerPrintLPr(fingerPrint, userId); } } } @GuardedBy("mPackages") services/core/java/com/android/server/pm/Settings.java +5 −5 Original line number Diff line number Diff line Loading @@ -1306,9 +1306,8 @@ public final class Settings { .areDefaultRuntimePermissionsGrantedLPr(userId); } void onDefaultRuntimePermissionsGrantedLPr(int userId) { mRuntimePermissionsPersistence .onDefaultRuntimePermissionsGrantedLPr(userId); void setRuntimePermissionsFingerPrintLPr(@NonNull String fingerPrint, @UserIdInt int userId) { mRuntimePermissionsPersistence.setRuntimePermissionsFingerPrintLPr(fingerPrint, userId); } int getDefaultRuntimePermissionsVersionLPr(int userId) { Loading Loading @@ -5149,8 +5148,9 @@ public final class Settings { } @GuardedBy("Settings.this.mLock") public void onDefaultRuntimePermissionsGrantedLPr(int userId) { mFingerprints.put(userId, Build.FINGERPRINT); public void setRuntimePermissionsFingerPrintLPr(@NonNull String fingerPrint, @UserIdInt int userId) { mFingerprints.put(userId, fingerPrint); writePermissionsForUserAsyncLPr(userId); } Loading services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java +0 −12 Original line number Diff line number Diff line Loading @@ -218,18 +218,11 @@ public final class DefaultPermissionGrantPolicy { private final Object mLock = new Object(); private final PackageManagerInternal mServiceInternal; private final PermissionManagerService mPermissionManager; private final DefaultPermissionGrantedCallback mPermissionGrantedCallback; @GuardedBy("mLock") private SparseIntArray mDefaultPermissionsGrantedUsers = new SparseIntArray(); public interface DefaultPermissionGrantedCallback { /** Callback when permissions have been granted */ void onDefaultRuntimePermissionsGranted(int userId); } DefaultPermissionGrantPolicy(Context context, Looper looper, @Nullable DefaultPermissionGrantedCallback callback, @NonNull PermissionManagerService permissionManager) { mContext = context; mHandler = new Handler(looper) { Loading @@ -244,7 +237,6 @@ public final class DefaultPermissionGrantPolicy { } } }; mPermissionGrantedCallback = callback; mPermissionManager = permissionManager; mServiceInternal = LocalServices.getService(PackageManagerInternal.class); } Loading Loading @@ -756,10 +748,6 @@ public final class DefaultPermissionGrantPolicy { grantPermissionsToSystemPackage(systemCaptionsServicePackageName, userId, MICROPHONE_PERMISSIONS); } if (mPermissionGrantedCallback != null) { mPermissionGrantedCallback.onDefaultRuntimePermissionsGranted(userId); } } private String getDefaultSystemHandlerActivityPackageForCategory(String category, int userId) { Loading services/core/java/com/android/server/pm/permission/PermissionManagerService.java +2 −5 Original line number Diff line number Diff line Loading @@ -95,7 +95,6 @@ import com.android.server.pm.PackageManagerServiceUtils; import com.android.server.pm.PackageSetting; import com.android.server.pm.SharedUserSetting; import com.android.server.pm.UserManagerService; import com.android.server.pm.permission.DefaultPermissionGrantPolicy.DefaultPermissionGrantedCallback; import com.android.server.pm.permission.PermissionManagerServiceInternal.PermissionCallback; import com.android.server.pm.permission.PermissionsState.PermissionState; Loading Loading @@ -220,7 +219,6 @@ public class PermissionManagerService { mRuntimePermissionStateChangedListeners = new ArrayList<>(); PermissionManagerService(Context context, @Nullable DefaultPermissionGrantedCallback defaultGrantCallback, @NonNull Object externalLock) { mContext = context; mLock = externalLock; Loading @@ -235,7 +233,7 @@ public class PermissionManagerService { Watchdog.getInstance().addThread(mHandler); mDefaultPermissionGrantPolicy = new DefaultPermissionGrantPolicy( context, mHandlerThread.getLooper(), defaultGrantCallback, this); context, mHandlerThread.getLooper(), this); SystemConfig systemConfig = SystemConfig.getInstance(); mSystemPermissions = systemConfig.getSystemPermissions(); mGlobalGids = systemConfig.getGlobalGids(); Loading Loading @@ -273,14 +271,13 @@ public class PermissionManagerService { * lock created by the permission manager itself. */ public static PermissionManagerServiceInternal create(Context context, @Nullable DefaultPermissionGrantedCallback defaultGrantCallback, @NonNull Object externalLock) { final PermissionManagerServiceInternal permMgrInt = LocalServices.getService(PermissionManagerServiceInternal.class); if (permMgrInt != null) { return permMgrInt; } new PermissionManagerService(context, defaultGrantCallback, externalLock); new PermissionManagerService(context, externalLock); return LocalServices.getService(PermissionManagerServiceInternal.class); } Loading Loading
core/java/android/content/pm/PackageManagerInternal.java +9 −0 Original line number Diff line number Diff line Loading @@ -985,4 +985,13 @@ public abstract class PackageManagerInternal { * @return true if default permissions */ public abstract boolean wereDefaultPermissionsGrantedSinceBoot(int userId); /** * Get fingerprint of build that updated the runtime permissions for a user. * * @param userId The user to update * @param fingerPrint The fingerprint to set */ public abstract void setRuntimePermissionsFingerPrint(@NonNull String fingerPrint, @UserIdInt int userId); }
services/core/java/com/android/server/pm/PackageManagerService.java +9 −10 Original line number Diff line number Diff line Loading @@ -317,7 +317,6 @@ import com.android.server.pm.dex.PackageDexUsage; import com.android.server.pm.dex.ViewCompiler; import com.android.server.pm.permission.BasePermission; import com.android.server.pm.permission.DefaultPermissionGrantPolicy; import com.android.server.pm.permission.DefaultPermissionGrantPolicy.DefaultPermissionGrantedCallback; import com.android.server.pm.permission.PermissionManagerService; import com.android.server.pm.permission.PermissionManagerServiceInternal; import com.android.server.pm.permission.PermissionManagerServiceInternal.PermissionCallback; Loading Loading @@ -2415,15 +2414,7 @@ public class PackageManagerService extends IPackageManager.Stub LocalServices.getService(PackageManagerInternal.class), mPackages); mPermissionManager = PermissionManagerService.create(context, new DefaultPermissionGrantedCallback() { @Override public void onDefaultRuntimePermissionsGranted(int userId) { synchronized(mPackages) { mSettings.onDefaultRuntimePermissionsGrantedLPr(userId); mDefaultPermissionsGrantedUsers.put(userId, userId); } } }, mPackages /*externalLock*/); mPackages /*externalLock*/); mDefaultPermissionPolicy = mPermissionManager.getDefaultPermissionGrantPolicy(); mSettings = new Settings(Environment.getDataDirectory(), mPermissionManager.getPermissionSettings(), mPackages); Loading Loading @@ -24927,6 +24918,14 @@ public class PackageManagerService extends IPackageManager.Stub return mDefaultPermissionPolicy.wereDefaultPermissionsGrantedSinceBoot(userId); } } @Override public void setRuntimePermissionsFingerPrint(@NonNull String fingerPrint, @UserIdInt int userId) { synchronized (mPackages) { mSettings.setRuntimePermissionsFingerPrintLPr(fingerPrint, userId); } } } @GuardedBy("mPackages")
services/core/java/com/android/server/pm/Settings.java +5 −5 Original line number Diff line number Diff line Loading @@ -1306,9 +1306,8 @@ public final class Settings { .areDefaultRuntimePermissionsGrantedLPr(userId); } void onDefaultRuntimePermissionsGrantedLPr(int userId) { mRuntimePermissionsPersistence .onDefaultRuntimePermissionsGrantedLPr(userId); void setRuntimePermissionsFingerPrintLPr(@NonNull String fingerPrint, @UserIdInt int userId) { mRuntimePermissionsPersistence.setRuntimePermissionsFingerPrintLPr(fingerPrint, userId); } int getDefaultRuntimePermissionsVersionLPr(int userId) { Loading Loading @@ -5149,8 +5148,9 @@ public final class Settings { } @GuardedBy("Settings.this.mLock") public void onDefaultRuntimePermissionsGrantedLPr(int userId) { mFingerprints.put(userId, Build.FINGERPRINT); public void setRuntimePermissionsFingerPrintLPr(@NonNull String fingerPrint, @UserIdInt int userId) { mFingerprints.put(userId, fingerPrint); writePermissionsForUserAsyncLPr(userId); } Loading
services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java +0 −12 Original line number Diff line number Diff line Loading @@ -218,18 +218,11 @@ public final class DefaultPermissionGrantPolicy { private final Object mLock = new Object(); private final PackageManagerInternal mServiceInternal; private final PermissionManagerService mPermissionManager; private final DefaultPermissionGrantedCallback mPermissionGrantedCallback; @GuardedBy("mLock") private SparseIntArray mDefaultPermissionsGrantedUsers = new SparseIntArray(); public interface DefaultPermissionGrantedCallback { /** Callback when permissions have been granted */ void onDefaultRuntimePermissionsGranted(int userId); } DefaultPermissionGrantPolicy(Context context, Looper looper, @Nullable DefaultPermissionGrantedCallback callback, @NonNull PermissionManagerService permissionManager) { mContext = context; mHandler = new Handler(looper) { Loading @@ -244,7 +237,6 @@ public final class DefaultPermissionGrantPolicy { } } }; mPermissionGrantedCallback = callback; mPermissionManager = permissionManager; mServiceInternal = LocalServices.getService(PackageManagerInternal.class); } Loading Loading @@ -756,10 +748,6 @@ public final class DefaultPermissionGrantPolicy { grantPermissionsToSystemPackage(systemCaptionsServicePackageName, userId, MICROPHONE_PERMISSIONS); } if (mPermissionGrantedCallback != null) { mPermissionGrantedCallback.onDefaultRuntimePermissionsGranted(userId); } } private String getDefaultSystemHandlerActivityPackageForCategory(String category, int userId) { Loading
services/core/java/com/android/server/pm/permission/PermissionManagerService.java +2 −5 Original line number Diff line number Diff line Loading @@ -95,7 +95,6 @@ import com.android.server.pm.PackageManagerServiceUtils; import com.android.server.pm.PackageSetting; import com.android.server.pm.SharedUserSetting; import com.android.server.pm.UserManagerService; import com.android.server.pm.permission.DefaultPermissionGrantPolicy.DefaultPermissionGrantedCallback; import com.android.server.pm.permission.PermissionManagerServiceInternal.PermissionCallback; import com.android.server.pm.permission.PermissionsState.PermissionState; Loading Loading @@ -220,7 +219,6 @@ public class PermissionManagerService { mRuntimePermissionStateChangedListeners = new ArrayList<>(); PermissionManagerService(Context context, @Nullable DefaultPermissionGrantedCallback defaultGrantCallback, @NonNull Object externalLock) { mContext = context; mLock = externalLock; Loading @@ -235,7 +233,7 @@ public class PermissionManagerService { Watchdog.getInstance().addThread(mHandler); mDefaultPermissionGrantPolicy = new DefaultPermissionGrantPolicy( context, mHandlerThread.getLooper(), defaultGrantCallback, this); context, mHandlerThread.getLooper(), this); SystemConfig systemConfig = SystemConfig.getInstance(); mSystemPermissions = systemConfig.getSystemPermissions(); mGlobalGids = systemConfig.getGlobalGids(); Loading Loading @@ -273,14 +271,13 @@ public class PermissionManagerService { * lock created by the permission manager itself. */ public static PermissionManagerServiceInternal create(Context context, @Nullable DefaultPermissionGrantedCallback defaultGrantCallback, @NonNull Object externalLock) { final PermissionManagerServiceInternal permMgrInt = LocalServices.getService(PermissionManagerServiceInternal.class); if (permMgrInt != null) { return permMgrInt; } new PermissionManagerService(context, defaultGrantCallback, externalLock); new PermissionManagerService(context, externalLock); return LocalServices.getService(PermissionManagerServiceInternal.class); } Loading