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

Commit 980e0e12 authored by Amit Mahajan's avatar Amit Mahajan Committed by Gerrit Code Review
Browse files

Merge "Fix permission check for get/setSmscAddress."

parents 967a468a 06b248fa
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -1051,7 +1051,8 @@ public final class SmsApplication {
    }

    /**
     * Check if a package is default sms app (or equivalent, like bluetooth)
     * Check if a package is default sms app (or equivalent, like bluetooth), and verify that
     * packageName belongs to the caller.
     *
     * @param context context from the calling app
     * @param packageName the name of the package to be checked
@@ -1060,8 +1061,22 @@ public final class SmsApplication {
    @UnsupportedAppUsage
    public static boolean isDefaultSmsApplication(Context context, String packageName) {
        if (packageName == null) {
            Log.e(LOG_TAG, "isDefaultSmsApplication: packageName is null");
            return false;
        }
        try {
            if (Binder.getCallingUid()
                    == context.getPackageManager().getPackageUid(packageName, 0)) {
                Log.e(LOG_TAG, "isDefaultSmsApplication: " + packageName + " calling uid "
                        + context.getPackageManager().getPackageUid(packageName, 0)
                        + " does not match calling uid " + Binder.getCallingUid());
                return false;
            }
        } catch (NameNotFoundException ex) {
            Log.e(LOG_TAG, "isDefaultSmsApplication: packageName " + packageName + " not found");
            return false;
        }

        final String defaultSmsPackage = getDefaultSmsApplicationPackageName(context);
        if ((defaultSmsPackage != null && defaultSmsPackage.equals(packageName))
                || BLUETOOTH_PACKAGE_NAME.equals(packageName)) {
+4 −3
Original line number Diff line number Diff line
@@ -2743,7 +2743,7 @@ public final class SmsManager {
                        getSubscriptionId(), null);
            }
        } catch (RemoteException ex) {
            // ignore it
            throw new RuntimeException(ex);
        }
        return smsc;
    }
@@ -2765,7 +2765,8 @@ public final class SmsManager {
     * </p>
     *
     * @param smsc the SMSC address string.
     * @return true for success, false otherwise.
     * @return true for success, false otherwise. Failure can be due to caller not having the
     * appropriate permission, or modem returning an error.
     */
    @SuppressAutoDoc // for carrier privileges and default SMS application.
    @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
@@ -2777,7 +2778,7 @@ public final class SmsManager {
                        smsc, getSubscriptionId(), null);
            }
        } catch (RemoteException ex) {
            // ignore it
            throw new RuntimeException(ex);
        }
        return false;
    }