Merge "Moving permission and flag changes out of root identity for AppCloning IntentRedirection" into udc-dev

This commit is contained in:
Sarup Dalwani
2023-05-15 09:14:40 +00:00
committed by Android (Google) Code Review
3 changed files with 19 additions and 7 deletions

View File

@@ -525,6 +525,8 @@ applications that come with the platform
<permission name="android.permission.USE_ATTESTATION_VERIFICATION_SERVICE" />
<!-- Permission required for GTS test - GtsCredentialsTestCases -->
<permission name="android.permission.LAUNCH_CREDENTIAL_SELECTOR"/>
<!-- Permission required for CTS test IntentRedirectionTest -->
<permission name="android.permission.QUERY_CLONED_APPS"/>
</privapp-permissions>
<privapp-permissions package="com.android.statementservice">

View File

@@ -837,6 +837,8 @@
<uses-permission android:name="android.permission.USE_ATTESTATION_VERIFICATION_SERVICE" />
<!-- Permission required for GTS test - GtsCredentialsTestCases -->
<uses-permission android:name="android.permission.LAUNCH_CREDENTIAL_SELECTOR" />
<!-- Permission required for CTS test IntentRedirectionTest -->
<uses-permission android:name="android.permission.QUERY_CLONED_APPS" />
<application
android:label="@string/app_label"

View File

@@ -60,15 +60,9 @@ public class NoFilteringResolver extends CrossProfileResolver {
public static boolean isIntentRedirectionAllowed(Context context,
AppCloningDeviceConfigHelper appCloningDeviceConfigHelper, boolean resolveForStart,
long flags) {
final long token = Binder.clearCallingIdentity();
try {
return context.getResources().getBoolean(R.bool.config_enableAppCloningBuildingBlocks)
&& appCloningDeviceConfigHelper.getEnableAppCloningBuildingBlocks()
return isAppCloningBuildingBlocksEnabled(context, appCloningDeviceConfigHelper)
&& (resolveForStart || (((flags & PackageManager.MATCH_CLONE_PROFILE) != 0)
&& hasPermission(context, Manifest.permission.QUERY_CLONED_APPS)));
} finally {
Binder.restoreCallingIdentity(token);
}
}
public NoFilteringResolver(ComponentResolverApi componentResolver,
@@ -146,4 +140,18 @@ public class NoFilteringResolver extends CrossProfileResolver {
return context.checkCallingOrSelfPermission(permission)
== PackageManager.PERMISSION_GRANTED;
}
/**
* Checks if the AppCloningBuildingBlocks flag is enabled.
*/
private static boolean isAppCloningBuildingBlocksEnabled(Context context,
AppCloningDeviceConfigHelper appCloningDeviceConfigHelper) {
final long token = Binder.clearCallingIdentity();
try {
return context.getResources().getBoolean(R.bool.config_enableAppCloningBuildingBlocks)
&& appCloningDeviceConfigHelper.getEnableAppCloningBuildingBlocks();
} finally {
Binder.restoreCallingIdentity(token);
}
}
}