cc532efc20
This is step 1 of ~3, breaking up #14720 into reviewable chunks, with the aim to make syspolicy be a build-time configurable feature. In this first (very noisy) step, all the syspolicy string key constants move to a new constant-only (code-free) package. This will make future steps more reviewable, without this movement noise. There are no code or behavior changes here. The future steps of this series can be seen in #14720: removing global funcs from syspolicy resolution and using an interface that's plumbed around instead. Then adding build tags. Updates #12614 Change-Id: If73bf2c28b9c9b1a408fe868b0b6a25b03eeabd1 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
29 lines
757 B
Go
29 lines
757 B
Go
// Copyright (c) Tailscale Inc & AUTHORS
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
//go:build android || ios
|
|
|
|
package posture
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"tailscale.com/types/logger"
|
|
"tailscale.com/util/syspolicy"
|
|
"tailscale.com/util/syspolicy/pkey"
|
|
)
|
|
|
|
// GetSerialNumbers returns the serial number of the device as reported by an
|
|
// MDM solution. It requires configuration via the DeviceSerialNumber system policy.
|
|
// This is the only way to gather serial numbers on iOS, tvOS and Android.
|
|
func GetSerialNumbers(_ logger.Logf) ([]string, error) {
|
|
s, err := syspolicy.GetString(pkey.DeviceSerialNumber, "")
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to get serial number from MDM: %v", err)
|
|
}
|
|
if s != "" {
|
|
return []string{s}, nil
|
|
}
|
|
return nil, nil
|
|
}
|