blob: a74f392ba201432062b51972c74bbc7134695598 [file] [log] [blame]
// Copyright 2023 The ChromiumOS Authors.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package commands
import (
"context"
"regexp"
"strings"
"go.chromium.org/chromiumos/test/provision/v2/android-provision/service"
)
var reVersionCode = regexp.MustCompile(`^versionCode=(\d+).+`)
func getBoard(ctx context.Context, dut *service.DUTConnection) (string, error) {
args := []string{"-s", dut.SerialNumber, "shell", "getprop", "ro.product.board"}
board, err := dut.AssociatedHost.RunCmd(ctx, "adb", args)
if err != nil {
return "", err
}
return strings.TrimSuffix(board, "\n"), nil
}
func getOSBuildId(ctx context.Context, dut *service.DUTConnection) (string, error) {
args := []string{"-s", dut.SerialNumber, "shell", "getprop", "ro.build.id"}
buildId, err := dut.AssociatedHost.RunCmd(ctx, "adb", args)
if err != nil {
return "", err
}
return strings.TrimSuffix(buildId, "\n"), nil
}
func getOSVersion(ctx context.Context, dut *service.DUTConnection) (string, error) {
args := []string{"-s", dut.SerialNumber, "shell", "getprop", "ro.build.version.release"}
releaseVersion, err := dut.AssociatedHost.RunCmd(ctx, "adb", args)
if err != nil {
return "", err
}
return strings.TrimSuffix(releaseVersion, "\n"), nil
}
func getOSIncrementalVersion(ctx context.Context, dut *service.DUTConnection) (string, error) {
args := []string{"-s", dut.SerialNumber, "shell", "getprop", "ro.build.version.incremental"}
osVersion, err := dut.AssociatedHost.RunCmd(ctx, "adb", args)
if err != nil {
return "", err
}
return strings.TrimSuffix(osVersion, "\n"), nil
}
func getAndroidPackageVersionCode(ctx context.Context, dut *service.DUTConnection, packageName string) (string, error) {
args := []string{"-s", dut.SerialNumber, "shell", "dumpsys", "package", packageName, "|", "grep", "versionCode", "|", "sort", "-r", "|", "head", "-n", "1"}
out, err := dut.AssociatedHost.RunCmd(ctx, "adb", args)
if err != nil {
return "", err
}
return reVersionCode.ReplaceAllString(strings.TrimSpace(out), "$1"), nil
}