Loading core/java/android/app/appfunctions/AppFunctionAccessServiceInterface.java +3 −0 Original line number Diff line number Diff line Loading @@ -57,4 +57,7 @@ public interface AppFunctionAccessServiceInterface { /** @see AppFunctionManager#getValidTargets(String) () */ @NonNull List<String> getValidTargets(int userId); /** Should be called whenever a user starts */ void onUserStarting(int userId); } services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerService.java +5 −0 Original line number Diff line number Diff line Loading @@ -96,4 +96,9 @@ public class AppFunctionManagerService extends SystemService { public void onUserStopping(@NonNull TargetUser user) { mServiceImpl.onUserStopping(user); } @Override public void onUserStarting(@NonNull TargetUser user) { mServiceImpl.onUserStarting(user); } } services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerServiceImpl.java +5 −0 Original line number Diff line number Diff line Loading @@ -259,6 +259,11 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub { } } /** Called when a the user is starting. */ public void onUserStarting(@NonNull TargetUser user) { mAppFunctionAccessService.onUserStarting(user.getUserIdentifier()); } /** Called when the user is stopping. */ public void onUserStopping(@NonNull TargetUser user) { Objects.requireNonNull(user); Loading services/permission/java/com/android/server/permission/access/AccessPolicy.kt +22 −0 Original line number Diff line number Diff line Loading @@ -345,6 +345,7 @@ private constructor( TAG_PACKAGE_VERSIONS -> parsePackageVersions(state, userId) TAG_DEFAULT_PERMISSION_GRANT -> parseDefaultPermissionGrant(state, userId) TAG_APP_FUNCTION_PREGRANT -> parseAppFunctionPregrant(state, userId) else -> { forEachSchemePolicy { with(it) { parseUserState(state, userId) } } } Loading Loading @@ -396,12 +397,24 @@ private constructor( userState.setDefaultPermissionGrantFingerprint(fingerprint) } private fun BinaryXmlPullParser.parseAppFunctionPregrant( state: MutableAccessState, userId: Int, ) { val userState = state.mutateUserState(userId, WriteMode.NONE)!! val fingerprint = getAttributeValueOrThrow(ATTR_FINGERPRINT).intern() userState.appFunctionAccessPregrantFingerprint = fingerprint } fun BinaryXmlSerializer.serializeUserState(state: AccessState, userId: Int) { tag(TAG_ACCESS) { serializePackageVersions(state.userStates[userId]!!.packageVersions) serializeDefaultPermissionGrantFingerprint( state.userStates[userId]!!.defaultPermissionGrantFingerprint ) serializeAppFunctionAccessPregrantFingerprint( state.userStates[userId]!!.appFunctionAccessPregrantFingerprint ) forEachSchemePolicy { with(it) { serializeUserState(state, userId) } } } } Loading @@ -427,6 +440,14 @@ private constructor( } } private fun BinaryXmlSerializer.serializeAppFunctionAccessPregrantFingerprint( fingerprint: String? ) { if (fingerprint != null) { tag(TAG_APP_FUNCTION_PREGRANT) { attributeInterned(ATTR_FINGERPRINT, fingerprint) } } } private fun getSchemePolicy(subject: AccessUri, `object`: AccessUri): SchemePolicy = getSchemePolicy(subject.scheme, `object`.scheme) Loading @@ -443,6 +464,7 @@ private constructor( private const val TAG_ACCESS = "access" private const val TAG_DEFAULT_PERMISSION_GRANT = "default-permission-grant" private const val TAG_APP_FUNCTION_PREGRANT = "app-function-pregrant" private const val TAG_PACKAGE_VERSIONS = "package-versions" private const val TAG_PACKAGE = "package" Loading services/permission/java/com/android/server/permission/access/AccessState.kt +7 −0 Original line number Diff line number Diff line Loading @@ -408,6 +408,7 @@ sealed class UserState( internal val packageAppOpModesReference: PackageAppOpModesReference, internal val appIdAppFunctionAccessFlagsReference: AppIdAppFunctionAccessFlagsReference, defaultPermissionGrantFingerprint: String?, appFunctionAccessPregrantFingerprint: String?, writeMode: Int, ) : WritableState, Immutable<MutableUserState> { val packageVersions: IndexedMap<String, Int> Loading @@ -431,6 +432,8 @@ sealed class UserState( var defaultPermissionGrantFingerprint: String? = defaultPermissionGrantFingerprint protected set var appFunctionAccessPregrantFingerprint: String? = appFunctionAccessPregrantFingerprint override var writeMode: Int = writeMode protected set Loading @@ -446,6 +449,7 @@ private constructor( packageAppOpModesReference: PackageAppOpModesReference, appIdAppFunctionAccessFlagsReference: AppIdAppFunctionAccessFlagsReference, defaultPermissionGrantFingerprint: String?, appFunctionAccessPregrantFingerprint: String?, writeMode: Int, ) : UserState( Loading @@ -456,6 +460,7 @@ private constructor( packageAppOpModesReference, appIdAppFunctionAccessFlagsReference, defaultPermissionGrantFingerprint, appFunctionAccessPregrantFingerprint, writeMode, ), MutableWritableState { Loading @@ -468,6 +473,7 @@ private constructor( PackageAppOpModesReference(MutablePackageAppOpModes()), AppIdAppFunctionAccessFlagsReference(MutableAppIdAppFunctionAccessFlags()), null, null, WriteMode.NONE, ) Loading @@ -481,6 +487,7 @@ private constructor( userState.packageAppOpModesReference.toImmutable(), userState.appIdAppFunctionAccessFlagsReference.toImmutable(), userState.defaultPermissionGrantFingerprint, userState.appFunctionAccessPregrantFingerprint, WriteMode.NONE, ) Loading Loading
core/java/android/app/appfunctions/AppFunctionAccessServiceInterface.java +3 −0 Original line number Diff line number Diff line Loading @@ -57,4 +57,7 @@ public interface AppFunctionAccessServiceInterface { /** @see AppFunctionManager#getValidTargets(String) () */ @NonNull List<String> getValidTargets(int userId); /** Should be called whenever a user starts */ void onUserStarting(int userId); }
services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerService.java +5 −0 Original line number Diff line number Diff line Loading @@ -96,4 +96,9 @@ public class AppFunctionManagerService extends SystemService { public void onUserStopping(@NonNull TargetUser user) { mServiceImpl.onUserStopping(user); } @Override public void onUserStarting(@NonNull TargetUser user) { mServiceImpl.onUserStarting(user); } }
services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerServiceImpl.java +5 −0 Original line number Diff line number Diff line Loading @@ -259,6 +259,11 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub { } } /** Called when a the user is starting. */ public void onUserStarting(@NonNull TargetUser user) { mAppFunctionAccessService.onUserStarting(user.getUserIdentifier()); } /** Called when the user is stopping. */ public void onUserStopping(@NonNull TargetUser user) { Objects.requireNonNull(user); Loading
services/permission/java/com/android/server/permission/access/AccessPolicy.kt +22 −0 Original line number Diff line number Diff line Loading @@ -345,6 +345,7 @@ private constructor( TAG_PACKAGE_VERSIONS -> parsePackageVersions(state, userId) TAG_DEFAULT_PERMISSION_GRANT -> parseDefaultPermissionGrant(state, userId) TAG_APP_FUNCTION_PREGRANT -> parseAppFunctionPregrant(state, userId) else -> { forEachSchemePolicy { with(it) { parseUserState(state, userId) } } } Loading Loading @@ -396,12 +397,24 @@ private constructor( userState.setDefaultPermissionGrantFingerprint(fingerprint) } private fun BinaryXmlPullParser.parseAppFunctionPregrant( state: MutableAccessState, userId: Int, ) { val userState = state.mutateUserState(userId, WriteMode.NONE)!! val fingerprint = getAttributeValueOrThrow(ATTR_FINGERPRINT).intern() userState.appFunctionAccessPregrantFingerprint = fingerprint } fun BinaryXmlSerializer.serializeUserState(state: AccessState, userId: Int) { tag(TAG_ACCESS) { serializePackageVersions(state.userStates[userId]!!.packageVersions) serializeDefaultPermissionGrantFingerprint( state.userStates[userId]!!.defaultPermissionGrantFingerprint ) serializeAppFunctionAccessPregrantFingerprint( state.userStates[userId]!!.appFunctionAccessPregrantFingerprint ) forEachSchemePolicy { with(it) { serializeUserState(state, userId) } } } } Loading @@ -427,6 +440,14 @@ private constructor( } } private fun BinaryXmlSerializer.serializeAppFunctionAccessPregrantFingerprint( fingerprint: String? ) { if (fingerprint != null) { tag(TAG_APP_FUNCTION_PREGRANT) { attributeInterned(ATTR_FINGERPRINT, fingerprint) } } } private fun getSchemePolicy(subject: AccessUri, `object`: AccessUri): SchemePolicy = getSchemePolicy(subject.scheme, `object`.scheme) Loading @@ -443,6 +464,7 @@ private constructor( private const val TAG_ACCESS = "access" private const val TAG_DEFAULT_PERMISSION_GRANT = "default-permission-grant" private const val TAG_APP_FUNCTION_PREGRANT = "app-function-pregrant" private const val TAG_PACKAGE_VERSIONS = "package-versions" private const val TAG_PACKAGE = "package" Loading
services/permission/java/com/android/server/permission/access/AccessState.kt +7 −0 Original line number Diff line number Diff line Loading @@ -408,6 +408,7 @@ sealed class UserState( internal val packageAppOpModesReference: PackageAppOpModesReference, internal val appIdAppFunctionAccessFlagsReference: AppIdAppFunctionAccessFlagsReference, defaultPermissionGrantFingerprint: String?, appFunctionAccessPregrantFingerprint: String?, writeMode: Int, ) : WritableState, Immutable<MutableUserState> { val packageVersions: IndexedMap<String, Int> Loading @@ -431,6 +432,8 @@ sealed class UserState( var defaultPermissionGrantFingerprint: String? = defaultPermissionGrantFingerprint protected set var appFunctionAccessPregrantFingerprint: String? = appFunctionAccessPregrantFingerprint override var writeMode: Int = writeMode protected set Loading @@ -446,6 +449,7 @@ private constructor( packageAppOpModesReference: PackageAppOpModesReference, appIdAppFunctionAccessFlagsReference: AppIdAppFunctionAccessFlagsReference, defaultPermissionGrantFingerprint: String?, appFunctionAccessPregrantFingerprint: String?, writeMode: Int, ) : UserState( Loading @@ -456,6 +460,7 @@ private constructor( packageAppOpModesReference, appIdAppFunctionAccessFlagsReference, defaultPermissionGrantFingerprint, appFunctionAccessPregrantFingerprint, writeMode, ), MutableWritableState { Loading @@ -468,6 +473,7 @@ private constructor( PackageAppOpModesReference(MutablePackageAppOpModes()), AppIdAppFunctionAccessFlagsReference(MutableAppIdAppFunctionAccessFlags()), null, null, WriteMode.NONE, ) Loading @@ -481,6 +487,7 @@ private constructor( userState.packageAppOpModesReference.toImmutable(), userState.appIdAppFunctionAccessFlagsReference.toImmutable(), userState.defaultPermissionGrantFingerprint, userState.appFunctionAccessPregrantFingerprint, WriteMode.NONE, ) Loading