tcc

package
v0.0.0-...-e567249 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var AuthReasonArray = map[int]string{
	0:  "Inherited/Unknown",
	1:  "Error",
	2:  "User Consent",
	3:  "User Set",
	4:  "System Set",
	5:  "Service Policy",
	6:  "MDM Policy",
	7:  "Override Policy",
	8:  "Missing usage string",
	9:  "Prompt Timeout",
	10: "Preflight Unknown",
	11: "Entitled",
	12: "App Type Policy",
}

AuthReasonArray is a map of auth reasons to friendly names

View Source
var AuthValueArray = map[int]string{
	0: "Denied",
	1: "Unknown",
	2: "Allowed",
	3: "Limited",
}

AuthValueArray is a map of auth values to friendly names

View Source
var ServiceArray = map[string]string{
	"kTCCServiceAddressBook":                  "Contacts",
	"kTCCServiceAppleEvents":                  "Apple Events",
	"kTCCServiceBluetoothAlways":              "Bluetooth",
	"kTCCServiceCalendar":                     "Calendar",
	"kTCCServiceCamera":                       "Camera",
	"kTCCServiceContactsFull":                 "Full contacts information",
	"kTCCServiceContactsLimited":              "Basic contacts information",
	"kTCCServiceFileProviderDomain":           "Files managed by Apple Events",
	"kTCCServiceFileProviderPresence":         "See when files managed by the client are in use",
	"kTCCServiceLocation":                     "Current location",
	"kTCCServiceMediaLibrary":                 "Apple Music, music and video activity, and media library",
	"kTCCServiceMicrophone":                   "Microphone",
	"kTCCServiceMotion":                       "Motion & Fitness Activity",
	"kTCCServicePhotos":                       "Read Photos",
	"kTCCServicePhotosAdd":                    "Add to Photos",
	"kTCCServicePrototype3Rights":             "Authorization Test Service Proto3Right",
	"kTCCServicePrototype4Rights":             "Authorization Test Service Proto4Right",
	"kTCCServiceReminders":                    "Reminders",
	"kTCCServiceScreenCapture":                "Capture screen contents",
	"kTCCServiceSiri":                         "Use Siri",
	"kTCCServiceSpeechRecognition":            "Speech Recognition",
	"kTCCServiceSystemPolicyDesktopFolder":    "Desktop folder",
	"kTCCServiceSystemPolicyDeveloperFiles":   "Files in Software Development",
	"kTCCServiceSystemPolicyDocumentsFolder":  "Files in Documents folder",
	"kTCCServiceSystemPolicyDownloadsFolder":  "Files in Downloads folder",
	"kTCCServiceSystemPolicyNetworkVolumes":   "Files on a network volume",
	"kTCCServiceSystemPolicyRemovableVolumes": "Files on a removable volume",
	"kTCCServiceSystemPolicySysAdminFiles":    "Administer the computer",
	"kTCCServiceWillow":                       "Home data",
	"kTCCServiceSystemPolicyAllFiles":         "Full Disk Access",
	"kTCCServiceAccessibility":                "Control the computer",
	"kTCCServicePostEvent":                    "Send keystrokes",
	"kTCCServiceListenEvent":                  "Monitor input from the keyboard",
	"kTCCServiceDeveloperTool":                "Run insecure software locally",
	"kTCCServiceLiverpool":                    "Location services",
	"kTCCServiceUbiquity":                     "iCloud",
	"kTCCServiceShareKit":                     "Share features",
	"kTCCServiceLinkedIn":                     "Share via LinkedIn",
	"kTCCServiceTwitter":                      "Share via Twitter",
	"kTCCServiceFacebook":                     "Share via Facebook",
	"kTCCServiceSinaWeibo":                    "Share via Sina Weibo",
	"kTCCServiceTencentWeibo":                 "Share via Tencent Weibo",
}

ServiceArray is a map of service names to friendly names

Functions

This section is empty.

Types

type Access

type Access struct {
	KTCCServiceAppleEvents                 KTCCServiceAppleEvents                 `plist:"kTCCServiceAppleEvents, omitempty"`
	KTCCServiceAccessibility               KTCCServiceAccessibility               `plist:"kTCCServiceAccessibility, omitempty"`
	KTCCServiceAddressBook                 KTCCServiceAddressBook                 `plist:"kTCCServiceAddressBook, omitempty"`
	KTCCServiceCalendar                    KTCCServiceCalendar                    `plist:"kTCCServiceCalendar, omitempty"`
	KTCCServiceFileProviderPresence        KTCCServiceFileProviderPresence        `plist:"kTCCServiceFileProviderPresence, omitempty"`
	KTCCServicePhotos                      KTCCServicePhotos                      `plist:"kTCCServicePhotos, omitempty"`
	KTCCServicePostEvent                   KTCCServicePostEvent                   `plist:"kTCCServicePostEvent, omitempty"`
	KTCCServiceSystemPolicyAllFiles        KTCCServiceSystemPolicyAllFiles        `plist:"kTCCServiceSystemPolicyAllFiles, omitempty"`
	KTCCServiceSystemPolicyDesktopFolder   KTCCServiceSystemPolicyDesktopFolder   `plist:"kTCCServiceSystemPolicyDesktopFolder, omitempty"`
	KTCCServiceSystemPolicyDocumentsFolder KTCCServiceSystemPolicyDocumentsFolder `plist:"kTCCServiceSystemPolicyDocumentsFolder, omitempty"`
	KTCCServiceSystemPolicyDownloadsFolder KTCCServiceSystemPolicyDownloadsFolder `plist:"kTCCServiceSystemPolicyDownloadsFolder, omitempty"`
}

type ComAppleSystemevents

type ComAppleSystemevents struct {
	AEReceiverCodeRequirement     string      `plist:"AEReceiverCodeRequirement, omitempty"`
	AEReceiverCodeRequirementData interface{} `plist:"AEReceiverCodeRequirementData, omitempty"`
	AEReceiverIdentifier          string      `plist:"AEReceiverIdentifier, omitempty"`
	AEReceiverIdentifierType      string      `plist:"AEReceiverIdentifierType, omitempty"`
	Allowed                       bool        `plist:"Allowed, omitempty"`
	CodeRequirement               string      `plist:"CodeRequirement, omitempty"`
	CodeRequirementData           interface{} `plist:"CodeRequirementData, omitempty"`
	Identifier                    string      `plist:"Identifier, omitempty"`
	IdentifierType                string      `plist:"IdentifierType, omitempty"`
	StaticCode                    bool        `plist:"StaticCode, omitempty"`
}

type KTCCServiceAccessibility

type KTCCServiceAccessibility struct {
	Allowed             bool        `plist:"Allowed,omitempty"`
	CodeRequirement     string      `plist:"CodeRequirement,omitempty"`
	CodeRequirementData interface{} `plist:"CodeRequirementData,omitempty"`
	Comment             string      `plist:"Comment,omitempty"`
	Identifier          string      `plist:"Identifier,omitempty"`
	IdentifierType      string      `plist:"IdentifierType,omitempty"`
	StaticCode          bool        `plist:"StaticCode,omitempty"`
}

type KTCCServiceAddressBook

type KTCCServiceAddressBook struct {
	Allowed             bool        `plist:"Allowed,omitempty"`
	CodeRequirement     string      `plist:"CodeRequirement,omitempty"`
	CodeRequirementData interface{} `plist:"CodeRequirementData,omitempty"`
	Identifier          string      `plist:"Identifier,omitempty"`
	IdentifierType      string      `plist:"IdentifierType,omitempty"`
	StaticCode          bool        `plist:"StaticCode,omitempty"`
}

type KTCCServiceAppleEvents

type KTCCServiceAppleEvents struct {
	ComAppleSystemevents ComAppleSystemevents `plist:"com.apple.systemevents"`
}

type KTCCServiceCalendar

type KTCCServiceCalendar struct {
	Allowed             bool        `plist:"Allowed,omitempty"`
	CodeRequirement     string      `plist:"CodeRequirement,omitempty"`
	CodeRequirementData interface{} `plist:"CodeRequirementData,omitempty"`
	Identifier          string      `plist:"Identifier,omitempty"`
	IdentifierType      string      `plist:"IdentifierType,omitempty"`
	StaticCode          bool        `plist:"StaticCode,omitempty"`
}

type KTCCServiceFileProviderPresence

type KTCCServiceFileProviderPresence struct {
	Allowed             bool        `plist:"Allowed,omitempty"`
	CodeRequirement     string      `plist:"CodeRequirement,omitempty"`
	CodeRequirementData interface{} `plist:"CodeRequirementData,omitempty"`
	Identifier          string      `plist:"Identifier,omitempty"`
	IdentifierType      string      `plist:"IdentifierType,omitempty"`
	StaticCode          bool        `plist:"StaticCode,omitempty"`
}

type KTCCServicePhotos

type KTCCServicePhotos struct {
	Allowed             bool        `plist:"Allowed,omitempty"`
	CodeRequirement     string      `plist:"CodeRequirement,omitempty"`
	CodeRequirementData interface{} `plist:"CodeRequirementData,omitempty"`
	Identifier          string      `plist:"Identifier,omitempty"`
	IdentifierType      string      `plist:"IdentifierType,omitempty"`
	StaticCode          bool        `plist:"StaticCode,omitempty"`
}

type KTCCServicePostEvent

type KTCCServicePostEvent struct {
	Allowed             bool        `plist:"Allowed,omitempty"`
	CodeRequirement     string      `plist:"CodeRequirement,omitempty"`
	CodeRequirementData interface{} `plist:"CodeRequirementData,omitempty"`
	Identifier          string      `plist:"Identifier,omitempty"`
	IdentifierType      string      `plist:"IdentifierType,omitempty"`
	StaticCode          bool        `plist:"StaticCode,omitempty"`
}

type KTCCServiceSystemPolicyAllFiles

type KTCCServiceSystemPolicyAllFiles struct {
	Allowed             bool        `plist:"Allowed,omitempty"`
	CodeRequirement     string      `plist:"CodeRequirement,omitempty"`
	CodeRequirementData interface{} `plist:"CodeRequirementData,omitempty"`
	Comment             string      `plist:"Comment,omitempty"`
	Identifier          string      `plist:"Identifier,omitempty"`
	IdentifierType      string      `plist:"IdentifierType,omitempty"`
	StaticCode          bool        `plist:"StaticCode,omitempty"`
}

type KTCCServiceSystemPolicyDesktopFolder

type KTCCServiceSystemPolicyDesktopFolder struct {
	Allowed             bool        `plist:"Allowed,omitempty"`
	CodeRequirement     string      `plist:"CodeRequirement,omitempty"`
	CodeRequirementData interface{} `plist:"CodeRequirementData,omitempty"`
	Identifier          string      `plist:"Identifier,omitempty"`
	IdentifierType      string      `plist:"IdentifierType,omitempty"`
	StaticCode          bool        `plist:"StaticCode,omitempty"`
}

type KTCCServiceSystemPolicyDocumentsFolder

type KTCCServiceSystemPolicyDocumentsFolder struct {
	Allowed             bool        `plist:"Allowed,omitempty"`
	CodeRequirement     string      `plist:"CodeRequirement,omitempty"`
	CodeRequirementData interface{} `plist:"CodeRequirementData,omitempty"`
	Identifier          string      `plist:"Identifier,omitempty"`
	IdentifierType      string      `plist:"IdentifierType,omitempty"`
	StaticCode          bool        `plist:"StaticCode,omitempty"`
}

type KTCCServiceSystemPolicyDownloadsFolder

type KTCCServiceSystemPolicyDownloadsFolder struct {
	Allowed             bool        `plist:"Allowed,omitempty"`
	CodeRequirement     string      `plist:"CodeRequirement,omitempty"`
	CodeRequirementData interface{} `plist:"CodeRequirementData,omitempty"`
	Comment             string      `plist:"Comment,omitempty"`
	Identifier          string      `plist:"Identifier,omitempty"`
	IdentifierType      string      `plist:"IdentifierType,omitempty"`
	StaticCode          bool        `plist:"StaticCode,omitempty"`
}

type MDMEntry

type MDMEntry struct {
	Source              string
	MDMServer           string
	CodeRequirement     string
	Identifier          string
	IdentifierType      string
	ServiceFriendlyName string
	Services            []ServiceDetail
	StaticCode          string
}

MDMEntry is a struct for the response from the MDMOverrides.plist

func ProcessMDMOverrides

func ProcessMDMOverrides(service string, m Access) *MDMEntry

ProcessMDMOverrides processes the MDMOverrides.plist

type MDMOverrides

type MDMOverrides map[string]Access

MDMOverrides is a map of MDM overrides

func CheckMDMOverrides

func CheckMDMOverrides() (MDMOverrides, error)

CheckMDMOverrides checks for MDM overrides

type SQResponse

type SQResponse struct {
	Client      string `json:"client"`
	ClientType  int    `json:"client_type"`
	Service     string `json:"service"`
	AuthValue   int    `json:"auth_value"`
	AuthReason  int    `json:"auth_reason"`
	LastMod     int64  `json:"last_modified"`
	Csreq       string `json:"csreq"`
	AuthVersion string `json:"auth_version"`
}

SQR is a struct for the response from the TCC database

func SystemQuery

func SystemQuery() ([]SQResponse, error)

SystemQuery returns a list of information from the system TCC database

func UserQuery

func UserQuery(userDB string) ([]SQResponse, error)

UserQuery returns a list of information from the user's TCC database

type ServiceDetail

type ServiceDetail struct {
	Service      string
	FriendlyName string
	Allowed      bool
}

ServiceDetail is a struct for formatting the response from the MDMOverrides.plist

type TCCEntry

type TCCEntry struct {
	Source              string
	Username            string
	Client              string
	ClientID            string
	ServiceName         string
	ServiceFriendlyName string
	AuthValue           string
	AuthReason          string
	Timestamp           int64
	FormattedTime       string
	CodeSignReq         string
}

TCCEntry is a struct that represents a row in the TCC.db database

func ProcessRow

func ProcessRow(source string, sqr SQResponse) *TCCEntry

ProcessRow takes a row from the TCC.db database and returns a TCCEntry struct formatting the input as needed.

type Users

type Users struct {
	Name string `json:"name"`
	DB   string `json:"home"`
}

func ListUsers

func ListUsers() []Users

ListUsers returns a list of users on the system

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL