diff options
| author | 2019-08-15 23:31:11 +0000 | |
|---|---|---|
| committer | 2019-08-15 23:31:11 +0000 | |
| commit | dc6026ee43ec8faa6e56d619e4f602cd0b9480ac (patch) | |
| tree | 90d2959e26482c7033127a1de95c3f741648025f | |
| parent | f333b2caa29520a2c02e8b88d8a58fad48d3f385 (diff) | |
| parent | 1b1fca8c6d28b26964ac4a2124863d503771e0e8 (diff) | |
Merge "Remove now-unused access of IActivityManager for Uri grants"
5 files changed, 40 insertions, 47 deletions
diff --git a/apex/jobscheduler/service/java/com/android/server/job/GrantedUriPermissions.java b/apex/jobscheduler/service/java/com/android/server/job/GrantedUriPermissions.java index 005b1892f6a6..b7e8cf6e3fc8 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/GrantedUriPermissions.java +++ b/apex/jobscheduler/service/java/com/android/server/job/GrantedUriPermissions.java @@ -16,7 +16,6 @@ package com.android.server.job; -import android.app.IActivityManager; import android.app.UriGrantsManager; import android.content.ClipData; import android.content.ContentProvider; @@ -40,7 +39,7 @@ public final class GrantedUriPermissions { private final IBinder mPermissionOwner; private final ArrayList<Uri> mUris = new ArrayList<>(); - private GrantedUriPermissions(IActivityManager am, int grantFlags, int uid, String tag) + private GrantedUriPermissions(int grantFlags, int uid, String tag) throws RemoteException { mGrantFlags = grantFlags; mSourceUserId = UserHandle.getUserId(uid); @@ -49,7 +48,7 @@ public final class GrantedUriPermissions { .getService(UriGrantsManagerInternal.class).newUriPermissionOwner("job: " + tag); } - public void revoke(IActivityManager am) { + public void revoke() { for (int i = mUris.size()-1; i >= 0; i--) { LocalServices.getService(UriGrantsManagerInternal.class).revokeUriPermissionFromOwner( mPermissionOwner, mUris.get(i), mGrantFlags, mSourceUserId); @@ -62,7 +61,7 @@ public final class GrantedUriPermissions { |Intent.FLAG_GRANT_READ_URI_PERMISSION)) != 0; } - public static GrantedUriPermissions createFromIntent(IActivityManager am, Intent intent, + public static GrantedUriPermissions createFromIntent(Intent intent, int sourceUid, String targetPackage, int targetUserId, String tag) { int grantFlags = intent.getFlags(); if (!checkGrantFlags(grantFlags)) { @@ -73,44 +72,44 @@ public final class GrantedUriPermissions { Uri data = intent.getData(); if (data != null) { - perms = grantUri(am, data, sourceUid, targetPackage, targetUserId, grantFlags, tag, + perms = grantUri(data, sourceUid, targetPackage, targetUserId, grantFlags, tag, perms); } ClipData clip = intent.getClipData(); if (clip != null) { - perms = grantClip(am, clip, sourceUid, targetPackage, targetUserId, grantFlags, tag, + perms = grantClip(clip, sourceUid, targetPackage, targetUserId, grantFlags, tag, perms); } return perms; } - public static GrantedUriPermissions createFromClip(IActivityManager am, ClipData clip, + public static GrantedUriPermissions createFromClip(ClipData clip, int sourceUid, String targetPackage, int targetUserId, int grantFlags, String tag) { if (!checkGrantFlags(grantFlags)) { return null; } GrantedUriPermissions perms = null; if (clip != null) { - perms = grantClip(am, clip, sourceUid, targetPackage, targetUserId, grantFlags, + perms = grantClip(clip, sourceUid, targetPackage, targetUserId, grantFlags, tag, perms); } return perms; } - private static GrantedUriPermissions grantClip(IActivityManager am, ClipData clip, + private static GrantedUriPermissions grantClip(ClipData clip, int sourceUid, String targetPackage, int targetUserId, int grantFlags, String tag, GrantedUriPermissions curPerms) { final int N = clip.getItemCount(); for (int i = 0; i < N; i++) { - curPerms = grantItem(am, clip.getItemAt(i), sourceUid, targetPackage, targetUserId, + curPerms = grantItem(clip.getItemAt(i), sourceUid, targetPackage, targetUserId, grantFlags, tag, curPerms); } return curPerms; } - private static GrantedUriPermissions grantUri(IActivityManager am, Uri uri, + private static GrantedUriPermissions grantUri(Uri uri, int sourceUid, String targetPackage, int targetUserId, int grantFlags, String tag, GrantedUriPermissions curPerms) { try { @@ -118,7 +117,7 @@ public final class GrantedUriPermissions { UserHandle.getUserId(sourceUid)); uri = ContentProvider.getUriWithoutUserId(uri); if (curPerms == null) { - curPerms = new GrantedUriPermissions(am, grantFlags, sourceUid, tag); + curPerms = new GrantedUriPermissions(grantFlags, sourceUid, tag); } UriGrantsManager.getService().grantUriPermissionFromOwner(curPerms.mPermissionOwner, sourceUid, targetPackage, uri, grantFlags, sourceUserId, targetUserId); @@ -129,16 +128,16 @@ public final class GrantedUriPermissions { return curPerms; } - private static GrantedUriPermissions grantItem(IActivityManager am, ClipData.Item item, + private static GrantedUriPermissions grantItem(ClipData.Item item, int sourceUid, String targetPackage, int targetUserId, int grantFlags, String tag, GrantedUriPermissions curPerms) { if (item.getUri() != null) { - curPerms = grantUri(am, item.getUri(), sourceUid, targetPackage, targetUserId, + curPerms = grantUri(item.getUri(), sourceUid, targetPackage, targetUserId, grantFlags, tag, curPerms); } Intent intent = item.getIntent(); if (intent != null && intent.getData() != null) { - curPerms = grantUri(am, intent.getData(), sourceUid, targetPackage, targetUserId, + curPerms = grantUri(intent.getData(), sourceUid, targetPackage, targetUserId, grantFlags, tag, curPerms); } return curPerms; diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java index 4e424c3ef3f2..a633350996cd 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java @@ -963,7 +963,7 @@ public class JobSchedulerService extends com.android.server.SystemService // changing. We can just directly enqueue this work in to the job. if (toCancel.getJob().equals(job)) { - toCancel.enqueueWorkLocked(ActivityManager.getService(), work); + toCancel.enqueueWorkLocked(work); // If any of work item is enqueued when the source is in the foreground, // exempt the entire job. @@ -992,11 +992,11 @@ public class JobSchedulerService extends com.android.server.SystemService } // This may throw a SecurityException. - jobStatus.prepareLocked(ActivityManager.getService()); + jobStatus.prepareLocked(); if (work != null) { // If work has been supplied, enqueue it into the new job. - jobStatus.enqueueWorkLocked(ActivityManager.getService(), work); + jobStatus.enqueueWorkLocked(work); } if (toCancel != null) { @@ -1144,7 +1144,7 @@ public class JobSchedulerService extends com.android.server.SystemService */ private void cancelJobImplLocked(JobStatus cancelled, JobStatus incomingJob, String reason) { if (DEBUG) Slog.d(TAG, "CANCEL: " + cancelled.toShortString()); - cancelled.unprepareLocked(ActivityManager.getService()); + cancelled.unprepareLocked(); stopTrackingJobLocked(cancelled, incomingJob, true /* writeBack */); // Remove from pending queue. if (mPendingJobs.remove(cancelled)) { @@ -1449,7 +1449,7 @@ public class JobSchedulerService extends com.android.server.SystemService private boolean stopTrackingJobLocked(JobStatus jobStatus, JobStatus incomingJob, boolean removeFromPersisted) { // Deal with any remaining work items in the old job. - jobStatus.stopTrackingJobLocked(ActivityManager.getService(), incomingJob); + jobStatus.stopTrackingJobLocked(incomingJob); // Remove from store as well as controllers. final boolean removed = mJobs.remove(jobStatus, removeFromPersisted); @@ -1705,7 +1705,7 @@ public class JobSchedulerService extends com.android.server.SystemService if (rescheduledJob != null) { try { - rescheduledJob.prepareLocked(ActivityManager.getService()); + rescheduledJob.prepareLocked(); } catch (SecurityException e) { Slog.w(TAG, "Unable to regrant job permissions for " + rescheduledJob); } @@ -1713,13 +1713,13 @@ public class JobSchedulerService extends com.android.server.SystemService } else if (jobStatus.getJob().isPeriodic()) { JobStatus rescheduledPeriodic = getRescheduleJobForPeriodic(jobStatus); try { - rescheduledPeriodic.prepareLocked(ActivityManager.getService()); + rescheduledPeriodic.prepareLocked(); } catch (SecurityException e) { Slog.w(TAG, "Unable to regrant job permissions for " + rescheduledPeriodic); } startTrackingJobLocked(rescheduledPeriodic, jobStatus); } - jobStatus.unprepareLocked(ActivityManager.getService()); + jobStatus.unprepareLocked(); reportActiveLocked(); mHandler.obtainMessage(MSG_CHECK_JOB_GREEDY).sendToTarget(); } diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java index 4d9f1331e6ff..782e6463d845 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java @@ -18,7 +18,6 @@ package com.android.server.job; import static com.android.server.job.JobSchedulerService.sElapsedRealtimeClock; -import android.app.ActivityManager; import android.app.job.IJobCallback; import android.app.job.IJobService; import android.app.job.JobInfo; @@ -389,7 +388,7 @@ public final class JobServiceContext implements ServiceConnection { try { synchronized (mLock) { assertCallerLocked(cb); - return mRunningJob.completeWorkLocked(ActivityManager.getService(), workId); + return mRunningJob.completeWorkLocked(workId); } } finally { Binder.restoreCallingIdentity(ident); diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobStore.java b/apex/jobscheduler/service/java/com/android/server/job/JobStore.java index 4321fc716b4d..c2bdb6caffd3 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobStore.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobStore.java @@ -20,8 +20,6 @@ import static com.android.server.job.JobSchedulerService.sElapsedRealtimeClock; import static com.android.server.job.JobSchedulerService.sSystemClock; import android.annotation.Nullable; -import android.app.ActivityManager; -import android.app.IActivityManager; import android.app.job.JobInfo; import android.content.ComponentName; import android.content.Context; @@ -180,7 +178,6 @@ public final class JobStore { public void getRtcCorrectedJobsLocked(final ArrayList<JobStatus> toAdd, final ArrayList<JobStatus> toRemove) { final long elapsedNow = sElapsedRealtimeClock.millis(); - final IActivityManager am = ActivityManager.getService(); // Find the jobs that need to be fixed up, collecting them for post-iteration // replacement with their new versions @@ -192,7 +189,7 @@ public final class JobStore { JobStatus newJob = new JobStatus(job, elapsedRuntimes.first, elapsedRuntimes.second, 0, job.getLastSuccessfulRunTime(), job.getLastFailedRunTime()); - newJob.prepareLocked(am); + newJob.prepareLocked(); toAdd.add(newJob); toRemove.add(job); } @@ -667,10 +664,9 @@ public final class JobStore { jobs = readJobMapImpl(fis, rtcGood); if (jobs != null) { long now = sElapsedRealtimeClock.millis(); - IActivityManager am = ActivityManager.getService(); for (int i=0; i<jobs.size(); i++) { JobStatus js = jobs.get(i); - js.prepareLocked(am); + js.prepareLocked(); js.enqueueTime = now; this.jobSet.add(js); diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java index 1133f7b851a4..adb43141b9c1 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java +++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java @@ -20,7 +20,6 @@ import static com.android.server.job.JobSchedulerService.ACTIVE_INDEX; import static com.android.server.job.JobSchedulerService.sElapsedRealtimeClock; import android.app.AppGlobals; -import android.app.IActivityManager; import android.app.job.JobInfo; import android.app.job.JobWorkItem; import android.content.ClipData; @@ -528,7 +527,7 @@ public final class JobStatus { /*innerFlags=*/ 0); } - public void enqueueWorkLocked(IActivityManager am, JobWorkItem work) { + public void enqueueWorkLocked(JobWorkItem work) { if (pendingWork == null) { pendingWork = new ArrayList<>(); } @@ -536,7 +535,7 @@ public final class JobStatus { nextPendingWorkId++; if (work.getIntent() != null && GrantedUriPermissions.checkGrantFlags(work.getIntent().getFlags())) { - work.setGrants(GrantedUriPermissions.createFromIntent(am, work.getIntent(), sourceUid, + work.setGrants(GrantedUriPermissions.createFromIntent(work.getIntent(), sourceUid, sourcePackageName, sourceUserId, toShortString())); } pendingWork.add(work); @@ -567,20 +566,20 @@ public final class JobStatus { return executingWork != null && executingWork.size() > 0; } - private static void ungrantWorkItem(IActivityManager am, JobWorkItem work) { + private static void ungrantWorkItem(JobWorkItem work) { if (work.getGrants() != null) { - ((GrantedUriPermissions)work.getGrants()).revoke(am); + ((GrantedUriPermissions)work.getGrants()).revoke(); } } - public boolean completeWorkLocked(IActivityManager am, int workId) { + public boolean completeWorkLocked(int workId) { if (executingWork != null) { final int N = executingWork.size(); for (int i = 0; i < N; i++) { JobWorkItem work = executingWork.get(i); if (work.getWorkId() == workId) { executingWork.remove(i); - ungrantWorkItem(am, work); + ungrantWorkItem(work); return true; } } @@ -588,16 +587,16 @@ public final class JobStatus { return false; } - private static void ungrantWorkList(IActivityManager am, ArrayList<JobWorkItem> list) { + private static void ungrantWorkList(ArrayList<JobWorkItem> list) { if (list != null) { final int N = list.size(); for (int i = 0; i < N; i++) { - ungrantWorkItem(am, list.get(i)); + ungrantWorkItem(list.get(i)); } } } - public void stopTrackingJobLocked(IActivityManager am, JobStatus incomingJob) { + public void stopTrackingJobLocked(JobStatus incomingJob) { if (incomingJob != null) { // We are replacing with a new job -- transfer the work! We do any executing // work first, since that was originally at the front of the pending work. @@ -615,15 +614,15 @@ public final class JobStatus { incomingJob.updateEstimatedNetworkBytesLocked(); } else { // We are completely stopping the job... need to clean up work. - ungrantWorkList(am, pendingWork); + ungrantWorkList(pendingWork); pendingWork = null; - ungrantWorkList(am, executingWork); + ungrantWorkList(executingWork); executingWork = null; } updateEstimatedNetworkBytesLocked(); } - public void prepareLocked(IActivityManager am) { + public void prepareLocked() { if (prepared) { Slog.wtf(TAG, "Already prepared: " + this); return; @@ -634,12 +633,12 @@ public final class JobStatus { } final ClipData clip = job.getClipData(); if (clip != null) { - uriPerms = GrantedUriPermissions.createFromClip(am, clip, sourceUid, sourcePackageName, + uriPerms = GrantedUriPermissions.createFromClip(clip, sourceUid, sourcePackageName, sourceUserId, job.getClipGrantFlags(), toShortString()); } } - public void unprepareLocked(IActivityManager am) { + public void unprepareLocked() { if (!prepared) { Slog.wtf(TAG, "Hasn't been prepared: " + this); if (DEBUG_PREPARE && unpreparedPoint != null) { @@ -652,7 +651,7 @@ public final class JobStatus { unpreparedPoint = new Throwable().fillInStackTrace(); } if (uriPerms != null) { - uriPerms.revoke(am); + uriPerms.revoke(); uriPerms = null; } } |