Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8be2122b authored by Hani Kazmi's avatar Hani Kazmi Committed by Android (Google) Code Review
Browse files

Merge "[AAPM] Introduce new Service for Android Advanced Protection Mode" into main

parents e029348d 75342ef5
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -239,6 +239,7 @@ package android {
    field @Deprecated public static final String PROCESS_OUTGOING_CALLS = "android.permission.PROCESS_OUTGOING_CALLS";
    field public static final String PROVIDE_OWN_AUTOFILL_SUGGESTIONS = "android.permission.PROVIDE_OWN_AUTOFILL_SUGGESTIONS";
    field public static final String PROVIDE_REMOTE_CREDENTIALS = "android.permission.PROVIDE_REMOTE_CREDENTIALS";
    field @FlaggedApi("android.security.aapm_api") public static final String QUERY_ADVANCED_PROTECTION_MODE = "android.permission.QUERY_ADVANCED_PROTECTION_MODE";
    field public static final String QUERY_ALL_PACKAGES = "android.permission.QUERY_ALL_PACKAGES";
    field public static final String READ_ASSISTANT_APP_SEARCH_DATA = "android.permission.READ_ASSISTANT_APP_SEARCH_DATA";
    field public static final String READ_BASIC_PHONE_STATE = "android.permission.READ_BASIC_PHONE_STATE";
@@ -10801,6 +10802,7 @@ package android.content {
    field public static final String ACCESSIBILITY_SERVICE = "accessibility";
    field public static final String ACCOUNT_SERVICE = "account";
    field public static final String ACTIVITY_SERVICE = "activity";
    field @FlaggedApi("android.security.aapm_api") public static final String ADVANCED_PROTECTION_SERVICE = "advanced_protection";
    field public static final String ALARM_SERVICE = "alarm";
    field public static final String APPWIDGET_SERVICE = "appwidget";
    field @FlaggedApi("android.app.appfunctions.flags.enable_app_function_manager") public static final String APP_FUNCTION_SERVICE = "app_function";
@@ -39718,6 +39720,20 @@ package android.security {
}
package android.security.advancedprotection {
  @FlaggedApi("android.security.aapm_api") public class AdvancedProtectionManager {
    method @RequiresPermission(android.Manifest.permission.QUERY_ADVANCED_PROTECTION_MODE) public boolean isAdvancedProtectionEnabled();
    method @RequiresPermission(android.Manifest.permission.QUERY_ADVANCED_PROTECTION_MODE) public void registerAdvancedProtectionCallback(@NonNull java.util.concurrent.Executor, @NonNull android.security.advancedprotection.AdvancedProtectionManager.Callback);
    method @RequiresPermission(android.Manifest.permission.QUERY_ADVANCED_PROTECTION_MODE) public void unregisterAdvancedProtectionCallback(@NonNull android.security.advancedprotection.AdvancedProtectionManager.Callback);
  }
  @FlaggedApi("android.security.aapm_api") public static interface AdvancedProtectionManager.Callback {
    method public void onAdvancedProtectionChanged(boolean);
  }
}
package android.security.identity {
  public class AccessControlProfile {
+9 −0
Original line number Diff line number Diff line
@@ -362,6 +362,7 @@ package android {
    field public static final String SERIAL_PORT = "android.permission.SERIAL_PORT";
    field @FlaggedApi("android.security.fsverity_api") public static final String SETUP_FSVERITY = "android.permission.SETUP_FSVERITY";
    field public static final String SET_ACTIVITY_WATCHER = "android.permission.SET_ACTIVITY_WATCHER";
    field @FlaggedApi("android.security.aapm_api") public static final String SET_ADVANCED_PROTECTION_MODE = "android.permission.SET_ADVANCED_PROTECTION_MODE";
    field public static final String SET_CLIP_SOURCE = "android.permission.SET_CLIP_SOURCE";
    field public static final String SET_DEFAULT_ACCOUNT_FOR_CONTACTS = "android.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS";
    field public static final String SET_HARMFUL_APP_WARNINGS = "android.permission.SET_HARMFUL_APP_WARNINGS";
@@ -12333,6 +12334,14 @@ package android.security {
}
package android.security.advancedprotection {
  @FlaggedApi("android.security.aapm_api") public class AdvancedProtectionManager {
    method @RequiresPermission(android.Manifest.permission.SET_ADVANCED_PROTECTION_MODE) public void setAdvancedProtectionEnabled(boolean);
  }
}
package android.security.keystore {
  public class AndroidKeyStoreProvider extends java.security.Provider {
+17 −0
Original line number Diff line number Diff line
@@ -235,6 +235,8 @@ import android.safetycenter.SafetyCenterFrameworkInitializer;
import android.scheduling.SchedulingFrameworkInitializer;
import android.security.FileIntegrityManager;
import android.security.IFileIntegrityService;
import android.security.advancedprotection.AdvancedProtectionManager;
import android.security.advancedprotection.IAdvancedProtectionService;
import android.security.attestationverification.AttestationVerificationManager;
import android.security.attestationverification.IAttestationVerificationManagerService;
import android.service.oemlock.IOemLockService;
@@ -1771,6 +1773,21 @@ public final class SystemServiceRegistry {
                        return new SupervisionManager(ctx, service);
                    }
                });
        if (android.security.Flags.aapmApi()) {
            registerService(Context.ADVANCED_PROTECTION_SERVICE, AdvancedProtectionManager.class,
                    new CachedServiceFetcher<>() {
                        @Override
                        public AdvancedProtectionManager createService(ContextImpl ctx)
                                throws ServiceNotFoundException {
                            IBinder iBinder = ServiceManager.getServiceOrThrow(
                                    Context.ADVANCED_PROTECTION_SERVICE);
                            IAdvancedProtectionService service =
                                    IAdvancedProtectionService.Stub.asInterface(iBinder);
                            return new AdvancedProtectionManager(service);
                        }
                    });
        }

        // DO NOT do a flag check like this unless the flag is read-only.
        // (because this code is executed during preload in zygote.)
        // If the flag is mutable, the check should be inside CachedServiceFetcher.
+10 −0
Original line number Diff line number Diff line
@@ -4325,6 +4325,7 @@ public abstract class Context {
           //@hide: ECM_ENHANCED_CONFIRMATION_SERVICE,
            CONTACT_KEYS_SERVICE,
            RANGING_SERVICE,
            ADVANCED_PROTECTION_SERVICE,

    })
    @Retention(RetentionPolicy.SOURCE)
@@ -6374,6 +6375,15 @@ public abstract class Context {
     */
    public static final String ATTESTATION_VERIFICATION_SERVICE = "attestation_verification";

    /**
     * Use with {@link #getSystemService(String)} to retrieve an
     * {@link android.security.advancedprotection.AdvancedProtectionManager}
     * @see #getSystemService(String)
     * @see android.security.advancedprotection.AdvancedProtectionManager
     */
    @FlaggedApi(android.security.Flags.FLAG_AAPM_API)
    public static final String ADVANCED_PROTECTION_SERVICE = "advanced_protection";

    /**
     * Use with {@link #getSystemService(String)} to retrieve an
     * {@link android.security.FileIntegrityManager}.
+6 −0
Original line number Diff line number Diff line
@@ -12845,6 +12845,12 @@ public final class Settings {
         */
        @Readable
        public static final String CONTEXTUAL_SEARCH_PACKAGE = "contextual_search_package";
        /**
         * Inetger property which determines whether advanced protection is on or not.
         * @hide
         */
        public static final String ADVANCED_PROTECTION_MODE = "advanced_protection_mode";
    }
    /**
Loading