Skip to content

Commit

Permalink
[client>android] add serial, product model, product manufacturer
Browse files Browse the repository at this point in the history
Signed-off-by: Edouard Vanbelle <[email protected]>
  • Loading branch information
EdouardVanbelle committed Nov 27, 2024
1 parent 9203690 commit 8d0f119
Showing 1 changed file with 37 additions and 1 deletion.
38 changes: 37 additions & 1 deletion client/system/info_android.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ func GetInfo(ctx context.Context) *Info {
WiretrusteeVersion: version.NetbirdVersion(),
UIVersion: extractUIVersion(ctx),
KernelVersion: kernelVersion,
SystemSerialNumber: serial(),
SystemProductName: productModel(),
SystemManufacturer: productManufacturer(),
}

return gio
Expand All @@ -49,13 +52,42 @@ func checkFileAndProcess(paths []string) ([]File, error) {
return []File{}, nil
}

func serial() string {
// try to fetch serial ID using different properties
properties := []string{"ril.serialnumber", "ro.serialno", "ro.boot.serialno", "sys.serialnumber"}
var value string

for _, property := range properties {
value = getprop(property)

Check failure on line 61 in client/system/info_android.go

View workflow job for this annotation

GitHub Actions / android_build

getprop(property) (no value) used as value
if len(value) > 0 {
return value
}
}

// unable to get serial ID, fallback to ANDROID_ID
return androidId()
}

func androidId() string {
// this is not the Device Serial
return run("/system/bin/settings", "get", "secure", "android_id")
}

func productModel() string {
return getprop("ro.product.model")

Check failure on line 77 in client/system/info_android.go

View workflow job for this annotation

GitHub Actions / android_build

getprop("ro.product.model") (no value) used as value
}

func productManufacturer() string {
return getprop("ro.product.manufacturer")

Check failure on line 81 in client/system/info_android.go

View workflow job for this annotation

GitHub Actions / android_build

getprop("ro.product.manufacturer") (no value) used as value
}

func uname() []string {
res := run("/system/bin/uname", "-a")
return strings.Split(res, " ")
}

func osVersion() string {
return run("/system/bin/getprop", "ro.build.version.release")
return getprop("ro.build.version.release")

Check failure on line 90 in client/system/info_android.go

View workflow job for this annotation

GitHub Actions / android_build

getprop("ro.build.version.release") (no value) used as value
}

func extractUIVersion(ctx context.Context) string {
Expand All @@ -66,6 +98,10 @@ func extractUIVersion(ctx context.Context) string {
return v
}

func getprop(arg ...string) {
return run("/system/bin/getprop", arg...)

Check failure on line 102 in client/system/info_android.go

View workflow job for this annotation

GitHub Actions / android_build

too many return values
}

func run(name string, arg ...string) string {
cmd := exec.Command(name, arg...)
cmd.Stdin = strings.NewReader("some")
Expand Down

0 comments on commit 8d0f119

Please sign in to comment.