mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-01-31 10:11:17 +00:00
ApkWorkload: Fixed runtime permission granting
"Normal" android permissions are automatically granted and cannot be changed. Trying to "pm grant" these caused an error, this should no longer occur.
This commit is contained in:
parent
693afa3528
commit
de021da300
@ -22,7 +22,7 @@ from wlauto.core.workload import Workload
|
||||
from wlauto.core.resource import NO_ONE
|
||||
from wlauto.common.resources import ExtensionAsset, Executable
|
||||
from wlauto.exceptions import WorkloadError, ResourceError, ConfigError
|
||||
from wlauto.utils.android import ApkInfo
|
||||
from wlauto.utils.android import ApkInfo, ANDROID_NORMAL_PERMISSIONS
|
||||
from wlauto.utils.types import boolean
|
||||
import wlauto.common.android.resources
|
||||
|
||||
@ -267,6 +267,9 @@ class ApkWorkload(Workload):
|
||||
break
|
||||
|
||||
for permission in permissions:
|
||||
# "Normal" Permisions are automatically granted and cannot be changed
|
||||
permission_name = permission.rsplit('.', 1)[1]
|
||||
if permission_name not in ANDROID_NORMAL_PERMISSIONS:
|
||||
self.device.execute("pm grant {} {}".format(self.package, permission))
|
||||
|
||||
def do_post_install(self, context):
|
||||
|
@ -60,6 +60,44 @@ ANDROID_VERSION_MAP = {
|
||||
1: 'BASE',
|
||||
}
|
||||
|
||||
# See:
|
||||
# http://developer.android.com/guide/topics/security/normal-permissions.html
|
||||
ANDROID_NORMAL_PERMISSIONS = [
|
||||
'ACCESS_LOCATION_EXTRA_COMMANDS',
|
||||
'ACCESS_NETWORK_STATE',
|
||||
'ACCESS_NOTIFICATION_POLICY',
|
||||
'ACCESS_WIFI_STATE',
|
||||
'BLUETOOTH',
|
||||
'BLUETOOTH_ADMIN',
|
||||
'BROADCAST_STICKY',
|
||||
'CHANGE_NETWORK_STATE',
|
||||
'CHANGE_WIFI_MULTICAST_STATE',
|
||||
'CHANGE_WIFI_STATE',
|
||||
'DISABLE_KEYGUARD',
|
||||
'EXPAND_STATUS_BAR',
|
||||
'GET_PACKAGE_SIZE',
|
||||
'INTERNET',
|
||||
'KILL_BACKGROUND_PROCESSES',
|
||||
'MODIFY_AUDIO_SETTINGS',
|
||||
'NFC',
|
||||
'READ_SYNC_SETTINGS',
|
||||
'READ_SYNC_STATS',
|
||||
'RECEIVE_BOOT_COMPLETED',
|
||||
'REORDER_TASKS',
|
||||
'REQUEST_INSTALL_PACKAGES',
|
||||
'SET_TIME_ZONE',
|
||||
'SET_WALLPAPER',
|
||||
'SET_WALLPAPER_HINTS',
|
||||
'TRANSMIT_IR',
|
||||
'USE_FINGERPRINT',
|
||||
'VIBRATE',
|
||||
'WAKE_LOCK',
|
||||
'WRITE_SYNC_SETTINGS',
|
||||
'SET_ALARM',
|
||||
'INSTALL_SHORTCUT',
|
||||
'UNINSTALL_SHORTCUT',
|
||||
]
|
||||
|
||||
# TODO: these are set to their actual values near the bottom of the file. There
|
||||
# is some HACKery involved to ensure that ANDROID_HOME does not need to be set
|
||||
# or adb added to path for root when installing as root, and the whole
|
||||
|
Loading…
x
Reference in New Issue
Block a user