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

Commit 1413fd0d authored by Nate Myren's avatar Nate Myren
Browse files

Disable sms otp when device is fully managed

Test: atest SmsTest, SmsManagerTest
Bug: 351976749
Flag: com.android.internal.telephony.flags.redact_otp_sms
Change-Id: I4bba3ba384d900086e7aa25faf3ffcee75449287
parent 7045f33c
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.app.admin.DevicePolicyManager;
import android.compat.annotation.ChangeId;
import android.compat.annotation.EnabledAfter;
import android.compat.annotation.UnsupportedAppUsage;
@@ -430,13 +431,25 @@ public final class Telephony {
         * Determine whether a given method should be checked for an OTP
         * @hide
         */
        public static boolean shouldCheckForOtp(String message) {
            if (!Flags.redactOtpSms()) {
        public static boolean shouldCheckForOtp(Context context, String message) {
            if (!isOtpRedactionEnabled(context)) {
                return false;
            }
            return CONTAINS_NUMBER.reset(message).find();
        }

        /**
         * Checks if OTP redaction in SMS is enabled
         * @hide
         */
        public static boolean isOtpRedactionEnabled(Context context) {
            if (!Flags.redactOtpSms()) {
                return false;
            }
            DevicePolicyManager dpm = context.getSystemService(DevicePolicyManager.class);
            return dpm == null || !dpm.isDeviceManaged();
        }

        /**
         * Return cursor for table query.
         * @hide
+3 −0
Original line number Diff line number Diff line
@@ -656,6 +656,9 @@ applications that come with the platform
        <permission name="android.permission.OBSERVE_ROLE_HOLDERS"/>
        <!-- Permission required for CTS test - CtsRoleTestCases -->
        <permission name="android.permission.GET_ROLE_HOLDERS"/>

        <!-- Permission required for CTS test - CtsTelephonyTestCases -->
        <permission name="android.permission.MANAGE_USERS" />
    </privapp-permissions>

    <privapp-permissions package="com.android.soundpicker">
+4 −0
Original line number Diff line number Diff line
@@ -1050,6 +1050,10 @@
    <!-- Permission required for CTS test - CtsMediaProjectionTestCases -->
    <uses-permission android:name="android.permission.MANAGE_MEDIA_PROJECTION" />

    <!-- Permission required for CTS test - CtsTelephonyTestCases -->
    <uses-permission android:name="android.permission.MANAGE_USERS" />


    <application
        android:label="@string/app_label"
        android:theme="@android:style/Theme.DeviceDefault.DayNight"
+5 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.app.PendingIntent;
import android.app.admin.DevicePolicyManager;
import android.app.role.RoleManager;
import android.companion.AssociationInfo;
import android.companion.CompanionDeviceManager;
@@ -3820,6 +3821,10 @@ public final class SmsManager {
                return true;
            }

            if (userContext.getSystemService(DevicePolicyManager.class).isDeviceManaged()) {
                return true;
            }

            // All system apps have access to OTPs in SMS messages
            if (isSystemApp(userContext, packageName)) {
                return true;