From 5b503a4394383d29d764631a4d7675214a30c1cc Mon Sep 17 00:00:00 2001 From: "lilong.129" Date: Thu, 6 Mar 2025 13:28:04 +0800 Subject: [PATCH] feat: get androidsystemVersion with gadb --- internal/version/VERSION | 2 +- pkg/gadb/device.go | 17 +++++++++++++++-- pkg/gadb/device_test.go | 25 ++++++++++++++++++++++--- 3 files changed, 38 insertions(+), 6 deletions(-) diff --git a/internal/version/VERSION b/internal/version/VERSION index 4c2cfbf6..a2ecc7dd 100644 --- a/internal/version/VERSION +++ b/internal/version/VERSION @@ -1 +1 @@ -v5.0.0-beta-2503052233 +v5.0.0-beta-2503061328 diff --git a/pkg/gadb/device.go b/pkg/gadb/device.go index 9a9abd4d..63407da9 100644 --- a/pkg/gadb/device.go +++ b/pkg/gadb/device.go @@ -147,15 +147,28 @@ func (d *Device) Usb() (string, error) { return "", errors.New("does not have attribute: usb") } +func (d *Device) SystemVersion() (string, error) { + if d.HasAttribute("systemVersion") { + return d.attrs["systemVersion"], nil + } + systemVersion, err := d.RunShellCommand("getprop", "ro.build.version.release") + systemVersion = strings.TrimSpace(systemVersion) + if err != nil { + return "", errors.New("get android system version failed") + } + d.attrs["systemVersion"] = systemVersion + return systemVersion, nil +} + func (d *Device) SdkVersion() (string, error) { if d.HasAttribute("sdkVersion") { return d.attrs["sdkVersion"], nil } sdkVersion, err := d.RunShellCommand("getprop", "ro.build.version.sdk") - sdkVersion = strings.TrimSpace(sdkVersion) if err != nil { - return "", errors.New("does not have attribute: sdkVersion") + return "", errors.New("get android sdk version failed") } + sdkVersion = strings.TrimSpace(sdkVersion) d.attrs["sdkVersion"] = sdkVersion return sdkVersion, nil } diff --git a/pkg/gadb/device_test.go b/pkg/gadb/device_test.go index 99df395d..81e2e2bc 100644 --- a/pkg/gadb/device_test.go +++ b/pkg/gadb/device_test.go @@ -9,6 +9,9 @@ import ( "strings" "testing" "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) var devices []*Device @@ -17,9 +20,7 @@ func setupDevices(t *testing.T) { var err error setupClient(t) devices, err = adbClient.DeviceList() - if err != nil { - t.Fatal(err) - } + require.Nil(t, err) } func TestDevice_State(t *testing.T) { @@ -119,6 +120,24 @@ func TestDevice_DeviceInfo(t *testing.T) { } } +func TestDevice_SdkVersion(t *testing.T) { + setupDevices(t) + for _, device := range devices { + sdkVersion, err := device.SdkVersion() + assert.Nil(t, err) + t.Log(device.Serial(), sdkVersion) + } +} + +func TestDevice_SystemVersion(t *testing.T) { + setupDevices(t) + for _, device := range devices { + systemVersion, err := device.SystemVersion() + assert.Nil(t, err) + t.Log(device.Serial(), systemVersion) + } +} + func TestDevice_Forward(t *testing.T) { setupDevices(t)