Removes undesirable invokation of checkUriPermission

Slice uses internal permission control, either the provider app can
specify a list of auto-grant permission, or the host app can request
user's consent on presenting slices from the provider app. In both cases
the invokation of checkUriPermission is non-neccessary.

Bug: 140727941
Test: atest SliceManagerServiceTest
Change-Id: Iac808eda08ac188185cd27f7ab8ce13accf7fce4
Merged-In: Iac808eda08ac188185cd27f7ab8ce13accf7fce4
(cherry picked from commit ab9a91fb69)
This commit is contained in:
Pinyao Ting
2020-12-04 12:00:25 -08:00
parent 166d683ea4
commit 26bf81f9fe
2 changed files with 10 additions and 6 deletions

View File

@@ -251,11 +251,6 @@ public class SliceManagerService extends ISliceManager.Stub {
}
}
}
// Fallback to allowing uri permissions through.
if (mContext.checkUriPermission(uri, pid, uid, Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
== PERMISSION_GRANTED) {
return PackageManager.PERMISSION_GRANTED;
}
return PackageManager.PERMISSION_DENIED;
}

View File

@@ -75,7 +75,6 @@ public class SliceManagerServiceTest extends UiServiceTestCase {
LocalServices.addService(UsageStatsManagerInternal.class,
mock(UsageStatsManagerInternal.class));
mContext.addMockSystemService(AppOpsManager.class, mock(AppOpsManager.class));
mContext.getTestablePermissions().setPermission(TEST_URI, PERMISSION_GRANTED);
mContextSpy = spy(mContext);
mService = spy(new SliceManagerService(mContextSpy, TestableLooper.get(this).getLooper()));
@@ -90,6 +89,7 @@ public class SliceManagerServiceTest extends UiServiceTestCase {
@Test
public void testAddPinCreatesPinned() throws RemoteException {
grantSlicePermission();
doReturn("pkg").when(mService).getDefaultHome(anyInt());
mService.pinSlice("pkg", TEST_URI, EMPTY_SPECS, mToken);
@@ -99,6 +99,7 @@ public class SliceManagerServiceTest extends UiServiceTestCase {
@Test
public void testRemovePinDestroysPinned() throws RemoteException {
grantSlicePermission();
doReturn("pkg").when(mService).getDefaultHome(anyInt());
mService.pinSlice("pkg", TEST_URI, EMPTY_SPECS, mToken);
@@ -130,11 +131,13 @@ public class SliceManagerServiceTest extends UiServiceTestCase {
@Test(expected = IllegalStateException.class)
public void testNoPinThrow() throws Exception {
grantSlicePermission();
mService.getPinnedSpecs(TEST_URI, "pkg");
}
@Test
public void testGetPinnedSpecs() throws Exception {
grantSlicePermission();
SliceSpec[] specs = new SliceSpec[] {
new SliceSpec("Something", 1) };
mService.pinSlice("pkg", TEST_URI, specs, mToken);
@@ -143,4 +146,10 @@ public class SliceManagerServiceTest extends UiServiceTestCase {
assertEquals(specs, mService.getPinnedSpecs(TEST_URI, "pkg"));
}
private void grantSlicePermission() {
doReturn(PERMISSION_GRANTED).when(mService).checkSlicePermission(
eq(TEST_URI), anyString(), anyString(), anyInt(), anyInt(), any());
doReturn(PERMISSION_GRANTED).when(mService).checkAccess(
anyString(), eq(TEST_URI), anyInt(), anyInt());
}
}