testSetAirplaneMode: use runAsShell to adopt shell permissions.
This is more correct for three reasons:
1. adoptShellPermission / dropShellPermission calls cannot be
nested, because the first drop call drops all permissions,
not just the most-recently adopted set.
2. adoptShellPermissionIdentity calls that do not specify any
permissions are discouraged because they have the side effect
of changing the UID and removing any permissions that the
calling UID had. This can cause privileged tests to fail.
3. The comments in the test say that the permission being tested
is NETWORK_AIRPLANE_MODE, but the shell doesn't even have
NETWORK_AIRPLANE_MODE; the test currently passes only because
it adopts all shell permissions, including NETWORK_SETTINGS.
A treehugger run suggests this is the only test that has problem
(1) above. Once this test is fixed, we can make runAsShell throw
an exception when nested, making it easier to avoid this problem.
Test: test-only change
Change-Id: I0ce4514f01280148f7af859b6163ebdc7baa26d2
1 file changed