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

Commit 1835defb authored by Nishith  Khanna's avatar Nishith Khanna
Browse files

Merge branch '4141-a14-march' into 'v3.6-a14'

Integrate march security patch

See merge request !258
parents 3006e5be 556a17b7
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2277,7 +2277,7 @@
            android:name="Settings$AppUsageAccessSettingsActivity"
            android:exported="true"
            android:label="@string/usage_access_title">
            <intent-filter>
            <intent-filter android:priority="1">
                <action android:name="android.settings.USAGE_ACCESS_SETTINGS"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:scheme="package"/>
+20 −0
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ import androidx.fragment.app.Fragment;

import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.applications.manageapplications.ManageApplications;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
@@ -178,6 +179,25 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
        if (!(activity instanceof SettingsActivity)) {
            return false;
        }
        // Check the permission of the calling package if the device supports multi-pane.
        if (ActivityEmbeddingUtils.isEmbeddingActivityEnabled(activity)) {
            final String callingPackageName =
                    ((SettingsActivity) activity).getInitialCallingPackage();

            if (TextUtils.isEmpty(callingPackageName)) {
                Log.w(TAG, "Not able to get calling package name for permission check");
                return false;
            }
            if (mPm.checkPermission(Manifest.permission.INTERACT_ACROSS_USERS_FULL,
                    callingPackageName)
                    != PackageManager.PERMISSION_GRANTED) {
                Log.w(TAG, "Package " + callingPackageName + " does not have required permission "
                        + Manifest.permission.INTERACT_ACROSS_USERS_FULL);
                return false;
            }
            return true;
        }

        try {
            int callerUid = ActivityManager.getService().getLaunchedFromUid(
                    activity.getActivityToken());