Files

39 lines
868 B
Go

//go:build android
package config
import (
"crypto/rand"
"encoding/hex"
"log"
"os"
"strings"
)
const androidMachineIDFile = "config/android_machine_id"
func platformMachineID() string {
data, err := os.ReadFile(androidMachineIDFile)
if err == nil {
if id := strings.TrimSpace(string(data)); id != "" {
return id
}
}
b := make([]byte, 16)
if _, err := rand.Read(b); err != nil {
log.Printf("[identity] WARNING: failed to generate android machine ID: %v", err)
return ""
}
id := hex.EncodeToString(b)
if err := os.MkdirAll("config", 0700); err != nil {
log.Printf("[identity] WARNING: failed to create config dir for android machine ID: %v", err)
return id
}
if err := os.WriteFile(androidMachineIDFile, []byte(id), 0600); err != nil {
log.Printf("[identity] WARNING: failed to persist android machine ID: %v", err)
}
return id
}