diff --git a/device_state.go b/device_state.go
index <HASH>..<HASH> 100644
--- a/device_state.go
+++ b/device_state.go
@@ -12,15 +12,17 @@ type DeviceState int8
 
 const (
 	StateInvalid DeviceState = iota
+	StateUnauthorized
 	StateDisconnected
 	StateOffline
 	StateOnline
 )
 
 var deviceStateStrings = map[string]DeviceState{
-	"":        StateDisconnected,
-	"offline": StateOffline,
-	"device":  StateOnline,
+	"":             StateDisconnected,
+	"offline":      StateOffline,
+	"device":       StateOnline,
+	"unauthorized": StateUnauthorized,
 }
 
 func parseDeviceState(str string) (DeviceState, error) {
diff --git a/devicestate_string.go b/devicestate_string.go
index <HASH>..<HASH> 100644
--- a/devicestate_string.go
+++ b/devicestate_string.go
@@ -4,9 +4,9 @@ package adb
 
 import "fmt"
 
-const _DeviceState_name = "StateInvalidStateDisconnectedStateOfflineStateOnline"
+const _DeviceState_name = "StateInvalidStateUnauthorizedStateDisconnectedStateOfflineStateOnline"
 
-var _DeviceState_index = [...]uint8{0, 12, 29, 41, 52}
+var _DeviceState_index = [...]uint8{0, 12, 29, 46, 58, 69}
 
 func (i DeviceState) String() string {
 	if i < 0 || i >= DeviceState(len(_DeviceState_index)-1) {
Pr state unauthorized (#<I>)

Support parsing unauthorized state.



Includes a few fixes for Windows support as well:



* Adds conditional build files for `unix.Access`.

* Renames files for platform specific `isExecutable()`.