blob: 77e23141a2b920bbe1b34807bd80616553556900 [file] [log] [blame]
# Copyright 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Android-specific, installs pre-built profilers."""
import logging
import os
from telemetry.internal.util import binary_manager
from telemetry import decorators
_DEVICE_PROFILER_DIR = '/data/local/tmp/profilers/'
def GetDevicePath(profiler_binary):
return os.path.join(_DEVICE_PROFILER_DIR, os.path.basename(profiler_binary))
@decorators.Cache
def InstallOnDevice(device, profiler_binary):
arch_name = device.GetABI()
host_path = binary_manager.FetchPath(profiler_binary, arch_name, 'android')
if not host_path:
logging.error('Profiler binary "%s" not found. Could not be installed',
host_path)
return False
device_binary_path = GetDevicePath(profiler_binary)
device.PushChangedFiles([(host_path, device_binary_path)])
device.RunShellCommand(
['chmod', '777', device_binary_path], check_return=True)
return True