mozdevice - do not terminate ADBDevice.grant_runtime_permissions on error
Categories
(Testing :: Mozbase, enhancement)
Tracking
(firefox75 fixed)
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.
Assignee | ||
Comment 1•4 years ago
|
||
Assignee | ||
Comment 2•4 years ago
|
||
Depends on D62593
Updated•4 years ago
|
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
Comment 4•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/0b7edd77936e
https://hg.mozilla.org/mozilla-central/rev/d4d6690b2429
Description
•