Closed Bug 1614954 Opened 4 years ago Closed 4 years ago

mozdevice - do not terminate ADBDevice.grant_runtime_permissions on error

Categories

(Testing :: Mozbase, enhancement)

Version 3
enhancement
Not set
normal

Tracking

(firefox75 fixed)

RESOLVED FIXED
mozilla75
Tracking Status
firefox75 --- fixed

People

(Reporter: bc, Assigned: bc)

Details

Attachments

(2 files)

In bug 1553515 android.permission.FOREGROUND_SERVICE was added to mobile/android/geckoview/src/androidTest/AndroidManifest.xml.

In bug 1600713 android.permission.FOREGROUND_SERVICE was added to ADBDevice.grant_runtime_permissions.

But when we run tests locally on Android 9 or later we see:

java.lang.SecurityException: Permission android.permission.FOREGROUND_SERVICE requested by org.mozilla.geckoview.test is not a changeable permission type
	at com.android.server.pm.permission.BasePermission.enforceDeclaredUsedAndRuntimeOrDevelopment(BasePermission.java:429)
	at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:2110)
	at com.android.server.pm.permission.PermissionManagerService.access$900(PermissionManagerService.java:122)
	at com.android.server.pm.permission.PermissionManagerService$PermissionManagerServiceInternalImpl.grantRuntimePermission(PermissionManagerService.java:3072)
	at com.android.server.pm.PackageManagerService.grantRuntimePermission(PackageManagerService.java:5751)
	at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:1955)
	at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:230)
	at android.os.ShellCommand.exec(ShellCommand.java:104)
	at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:21783)
	at android.os.Binder.shellCommand(Binder.java:881)
	at android.os.Binder.onTransact(Binder.java:765)
	at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4876)
	at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:4031)
	at android.os.Binder.execTransactInternal(Binder.java:1021)
	at android.os.Binder.execTransact(Binder.java:994)

Unable to grant runtime permissions to org.mozilla.geckoview.test due to args: /home/bclary/.mozbuild/android-sdk-linux/platform-tools/adb wait-for-device shell pm grant org.mozilla.geckoview.test android.permission.FOREGROUND_SERVICE, exitcode: 255, stdout: Security exception: Permission android.permission.FOREGROUND_SERVICE requested by org.mozilla.geckoview.test is not a changeable permission type

This or any other error granting permissions will terminate the loop and not attempt to grant further permissions. Granted, android.permission.FOREGROUND_SERVICE is the last permission in the list but since we don't consider the error fatal, we should catch it inside the loop and not terminate the function in the event of an error.

From https://developer.android.com/about/versions/pie/android-9.0-changes-28 this permission is only meaningful if we target android 9+/sdk 28+. We currently target Android 4.0 API16+ so we don't need android.permission.FOREGROUND_SERVICE at all.

Attachment #9126117 - Attachment description: Bug 1614954 - [mozdevice] do not terminate ADBDevice.grant_runtime_permissions on error, r=gbrown → Bug 1614954 - [mozdevice] Do not terminate ADBDevice.grant_runtime_permissions on error, r=gbrown
Pushed by bclary@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/0b7edd77936e
[mozdevice] Do not terminate ADBDevice.grant_runtime_permissions on error, r=gbrown
https://hg.mozilla.org/integration/autoland/rev/d4d6690b2429
[mozdevice] Do not attempt to grant android.permission.FOREGROUND_SERVICE, r=gbrown,snorp
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla75
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: