adb

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var KeyEvents = map[KeyEvent]string{
	KEYCODE_UNKNOWN:            "KEYCODE_UNKNOWN",
	KEYCODE_SOFT_LEFT:          "KEYCODE_SOFT_LEFT",
	KEYCODE_SOFT_RIGHT:         "KEYCODE_SOFT_RIGHT",
	KEYCODE_HOME:               "KEYCODE_HOME",
	KEYCODE_BACK:               "KEYCODE_BACK",
	KEYCODE_CALL:               "KEYCODE_CALL",
	KEYCODE_END:                "KEYCODE_END",
	KEYCODE_0:                  "KEYCODE_0",
	KEYCODE_1:                  "KEYCODE_1",
	KEYCODE_2:                  "KEYCODE_2",
	KEYCODE_3:                  "KEYCODE_3",
	KEYCODE_4:                  "KEYCODE_4",
	KEYCODE_5:                  "KEYCODE_5",
	KEYCODE_6:                  "KEYCODE_6",
	KEYCODE_7:                  "KEYCODE_7",
	KEYCODE_8:                  "KEYCODE_8",
	KEYCODE_9:                  "KEYCODE_9",
	KEYCODE_STAR:               "KEYCODE_STAR",
	KEYCODE_POUND:              "KEYCODE_POUND",
	KEYCODE_DPAD_UP:            "KEYCODE_DPAD_UP",
	KEYCODE_DPAD_DOWN:          "KEYCODE_DPAD_DOWN",
	KEYCODE_DPAD_LEFT:          "KEYCODE_DPAD_LEFT",
	KEYCODE_DPAD_RIGHT:         "KEYCODE_DPAD_RIGHT",
	KEYCODE_DPAD_CENTER:        "KEYCODE_DPAD_CENTER",
	KEYCODE_VOLUME_UP:          "KEYCODE_VOLUME_UP",
	KEYCODE_VOLUME_DOWN:        "KEYCODE_VOLUME_DOWN",
	KEYCODE_POWER:              "KEYCODE_POWER",
	KEYCODE_CAMERA:             "KEYCODE_CAMERA",
	KEYCODE_CLEAR:              "KEYCODE_CLEAR",
	KEYCODE_A:                  "KEYCODE_A",
	KEYCODE_B:                  "KEYCODE_B",
	KEYCODE_C:                  "KEYCODE_C",
	KEYCODE_D:                  "KEYCODE_D",
	KEYCODE_E:                  "KEYCODE_E",
	KEYCODE_F:                  "KEYCODE_F",
	KEYCODE_G:                  "KEYCODE_G",
	KEYCODE_H:                  "KEYCODE_H",
	KEYCODE_I:                  "KEYCODE_I",
	KEYCODE_J:                  "KEYCODE_J",
	KEYCODE_K:                  "KEYCODE_K",
	KEYCODE_L:                  "KEYCODE_L",
	KEYCODE_M:                  "KEYCODE_M",
	KEYCODE_N:                  "KEYCODE_N",
	KEYCODE_O:                  "KEYCODE_O",
	KEYCODE_P:                  "KEYCODE_P",
	KEYCODE_Q:                  "KEYCODE_Q",
	KEYCODE_R:                  "KEYCODE_R",
	KEYCODE_S:                  "KEYCODE_S",
	KEYCODE_T:                  "KEYCODE_T",
	KEYCODE_U:                  "KEYCODE_U",
	KEYCODE_V:                  "KEYCODE_V",
	KEYCODE_W:                  "KEYCODE_W",
	KEYCODE_X:                  "KEYCODE_X",
	KEYCODE_Y:                  "KEYCODE_Y",
	KEYCODE_Z:                  "KEYCODE_Z",
	KEYCODE_COMMA:              "KEYCODE_COMMA",
	KEYCODE_PERIOD:             "KEYCODE_PERIOD",
	KEYCODE_ALT_LEFT:           "KEYCODE_ALT_LEFT",
	KEYCODE_ALT:                "KEYCODE_ALT",
	KEYCODE_SHIFT_LEFT:         "KEYCODE_SHIFT_LEFT",
	KEYCODE_SHIFT:              "KEYCODE_SHIFT",
	KEYCODE_TAB:                "KEYCODE_TAB",
	KEYCODE_SPACE:              "KEYCODE_SPACE",
	KEYCODE_SYM:                "KEYCODE_SYM",
	KEYCODE_EXPLORER:           "KEYCODE_EXPLORER",
	KEYCODE_ENVELOPE:           "KEYCODE_ENVELOPE",
	KEYCODE_ENTER:              "KEYCODE_ENTER",
	KEYCODE_DEL:                "KEYCODE_DEL",
	KEYCODE_GRAVE:              "KEYCODE_GRAVE",
	KEYCODE_MINUS:              "KEYCODE_MINUS",
	KEYCODE_EQUALS:             "KEYCODE_EQUALS",
	KEYCODE_LEFT_BRACKET:       "KEYCODE_LEFT_BRACKET",
	KEYCODE_RIGHT_BRACKET:      "KEYCODE_RIGHT_BRACKET",
	KEYCODE_BACKSLASH:          "KEYCODE_BACKSLASH",
	KEYCODE_SEMICOLON:          "KEYCODE_SEMICOLON",
	KEYCODE_APOSTROPHE:         "KEYCODE_APOSTROPHE",
	KEYCODE_SLASH:              "KEYCODE_SLASH",
	KEYCODE_AT:                 "KEYCODE_AT",
	KEYCODE_NUM:                "KEYCODE_NUM",
	KEYCODE_HEAD:               "KEYCODE_HEAD",
	KEYCODE_FOCUS:              "KEYCODE_FOCUS",
	KEYCODE_PLUS:               "KEYCODE_PLUS",
	KEYCODE_MENU:               "KEYCODE_MENU",
	KEYCODE_NOTIFICATION:       "KEYCODE_NOTIFICATION",
	KEYCODE_SEARCH:             "KEYCODE_SEARCH",
	KEYCODE_MEDIA_PLAY_PAUSE:   "KEYCODE_MEDIA_PLAY_PAUSE",
	KEYCODE_MEDIA_STOP:         "KEYCODE_MEDIA_STOP",
	KEYCODE_MEDIA_NEXT:         "KEYCODE_MEDIA_NEXT",
	KEYCODE_MEDIA_PREVIOUS:     "KEYCODE_MEDIA_PREVIOUS",
	KEYCODE_MEDIA_REWIND:       "KEYCODE_MEDIA_REWIND",
	KEYCODE_MEDIA_FAST_FORWARD: "KEYCODE_MEDIA_FAST_FORWARD",
	KEYCODE_MUTE:               "KEYCODE_MUTE",
}

KeyEvents is a map of key events to their corresponding key codes.

View Source
var PermissionStrings = map[AndroidPermission]string{
	StoragePermission:                     "android.permission.READ_EXTERNAL_STORAGE",
	CameraPermission:                      "android.permission.CAMERA",
	SendNotificationPermission:            "android.permission.POST_NOTIFICATION",
	RecordAudioPermission:                 "android.permission.RECORD_AUDIO",
	PhonePermission:                       "android.permission.READ_PHONE_STATE",
	ContactsPermission:                    "android.permission.READ_CONTACTS",
	SmsPermission:                         "android.permission.SEND_SMS",
	InternetPermission:                    "android.permission.INTERNET",
	BluetoothPermission:                   "android.permission.BLUETOOTH",
	LocationBackgroundPermission:          "android.permission.ACCESS_BACKGROUND_LOCATION",
	AccessFineLocationPermission:          "android.permission.ACCESS_FINE_LOCATION",
	AccessCoarseLocationPermission:        "android.permission.ACCESS_COARSE_LOCATION",
	AccessNetworkStatePermission:          "android.permission.ACCESS_NETWORK_STATE",
	AccessWifiStatePermission:             "android.permission.ACCESS_WIFI_STATE",
	ChangeWifiStatePermission:             "android.permission.CHANGE_WIFI_STATE",
	ChangeNetworkStatePermission:          "android.permission.CHANGE_NETWORK_STATE",
	AccessMockLocationPermission:          "android.permission.ACCESS_MOCK_LOCATION",
	AccessLocationExtraCommandsPermission: "android.permission.LOCATION_EXTRA_COMMANDS",
	AccessCheckinPropertiesPermission:     "android.permission.CHECKIN_PROPERTIES",
	AccessLocationPermission:              "android.permission.ACCESS_LOCATION",
	AccessCheckinPermission:               "android.permission.ACCESS_CHECKIN_PROPERTIES",
	AccessCoarseUpdatesPermission:         "android.permission.ACCESS_COARSE_UPDATES",
	AccessFineUpdatesPermission:           "android.permission.ACCESS_FINE_UPDATES",
}

For those permissions you need root access

Functions

func GetDeviceProperty

func GetDeviceProperty(property string) (string, error)

GetDeviceProperty retrieves a specific device property by its name.

func InputText

func InputText(text string) error

InputText inputs the specified text on the device.

func MustGetPropertie

func MustGetPropertie(prop string) string

MustGetPropertie retrieves a specific device property by its name and returns it as a string.

func OpenChrome

func OpenChrome(url string) error

OpenChrome opens the Chrome browser on the device.

func SendKeyevent

func SendKeyevent(keyEvent KeyEvent) error

SendKeyevent sends a key event to the device.

func Swipe

func Swipe(x1, y1, x2, y2 int) error

Swipe swipes on the screen from the specified start to end coordinates.

func SwipeWithDuration

func SwipeWithDuration(x1, y1, x2, y2, duration int) error

SwipeWithDuration swipes on the screen from the specified start to end coordinates with the specified duration.

func Tap

func Tap(x, y int) error

Tap taps on the screen at the specified coordinates.

Types

type Adb

type Adb struct {
	DeviceID           string // Unique ID of the Android device
	PackageName        string // The package name of the app being interacted with
	MainActivity       string // The main activity of the app being interacted with
	WithAllPermissions bool   // Grant all permissions to the app
}

Adb struct contains the DeviceID and PackageName which are used for device and app interactions.

func NewAdb

func NewAdb(deviceID, packageName, mainActivity string, withAllPermissions bool) *Adb

NewAdb creates a new Adb struct with the specified DeviceID, PackageName, MainActivity, and WithAllPermissions. NOTE withAllPermissions requires root access. make sure to have root access before using it. otherwise run withAllPermison = false.

func (*Adb) ClearAppData

func (adb *Adb) ClearAppData() error

ClearAppData clears the app data for the app identified by PackageName.

func (*Adb) ClearLogcat

func (adb *Adb) ClearLogcat() error

ClearLogcat clears the logcat logs on the device.

func (*Adb) GetBatteryLevel

func (adb *Adb) GetBatteryLevel() (int, error)

GetBatteryLevel retrieves the battery level of the device.

func (*Adb) GrantAllPermissions

func (adb *Adb) GrantAllPermissions() error

GrantAllPermissions grants all permissions to the app. NOTE - This requires root access.

func (*Adb) GrantPermission

func (adb *Adb) GrantPermission(permission AndroidPermission) error

GrantPermission grants a specific permission to the app. NOTE - This requires root access.

func (*Adb) InstallApp

func (adb *Adb) InstallApp(apkPath string) error

InstallApp installs an APK on the device.

func (*Adb) IsDeviceOnline

func (adb *Adb) IsDeviceOnline(deviceID string) (bool, error)

IsDeviceOnline checks whether a device with the given deviceID is currently online.

func (*Adb) LaunchApp

func (adb *Adb) LaunchApp() error

LaunchApp launches the app with the specified activity. If WithAllPermissions is set to true, all permissions will be granted to the app.

func (*Adb) ListDevices

func (adb *Adb) ListDevices() ([]string, error)

ListDevices lists all the connected devices and returns their device IDs.

func (*Adb) PullFile

func (adb *Adb) PullFile(remotePath, localPath string) error

PullFile pulls a file from the device to a local path.

func (*Adb) PushFile

func (adb *Adb) PushFile(localPath, remotePath string) error

PushFile pushes a local file to a remote path on the device.

func (*Adb) QuitApp

func (adb *Adb) QuitApp() error

QuitApp stops the app and clears its data.

func (*Adb) RebootDevice

func (adb *Adb) RebootDevice() error

RebootDevice reboots the device.

func (*Adb) RevokePermission

func (adb *Adb) RevokePermission(permission string) error

RevokePermission revokes a specific permission from the app. NOTE - This requires root access.

func (*Adb) StartLogcat

func (adb *Adb) StartLogcat(logFilePath string) error

StartLogcat starts capturing logcat logs and saves them to the specified file.

func (*Adb) StartScreenRecording

func (adb *Adb) StartScreenRecording(savePath string) error

StartScreenRecording starts recording the screen and saves it to the specified path.

func (*Adb) StopApp

func (adb *Adb) StopApp() error

StopApp stops the app identified by PackageName.

func (*Adb) StopScreenRecording

func (adb *Adb) StopScreenRecording() error

StopScreenRecording stops the screen recording process.

func (*Adb) TakeScreenshot

func (adb *Adb) TakeScreenshot(savePath string) error

TakeScreenshot takes a screenshot and saves it to the specified path.

func (*Adb) UninstallApp

func (adb *Adb) UninstallApp() error

UninstallApp uninstalls the app identified by PackageName.

type AndroidPermission

type AndroidPermission int
const (
	StoragePermission AndroidPermission = iota
	CameraPermission
	SendNotificationPermission
	RecordAudioPermission
	PhonePermission
	ContactsPermission
	SmsPermission
	InternetPermission
	BluetoothPermission
	LocationBackgroundPermission
	AccessFineLocationPermission
	AccessCoarseLocationPermission
	AccessNetworkStatePermission
	AccessWifiStatePermission
	ChangeWifiStatePermission
	ChangeNetworkStatePermission
	AccessMockLocationPermission
	AccessLocationExtraCommandsPermission
	AccessCheckinPropertiesPermission
	AccessLocationPermission
	AccessCheckinPermission
	AccessCoarseUpdatesPermission
	AccessFineUpdatesPermission
)

type KeyEvent

type KeyEvent int
const (
	KEYCODE_UNKNOWN KeyEvent = iota
	KEYCODE_SOFT_LEFT
	KEYCODE_SOFT_RIGHT
	KEYCODE_HOME
	KEYCODE_BACK
	KEYCODE_CALL
	KEYCODE_END
	KEYCODE_0
	KEYCODE_1
	KEYCODE_2
	KEYCODE_3
	KEYCODE_4
	KEYCODE_5
	KEYCODE_6
	KEYCODE_7
	KEYCODE_8
	KEYCODE_9
	KEYCODE_STAR
	KEYCODE_POUND
	KEYCODE_DPAD_UP
	KEYCODE_DPAD_DOWN
	KEYCODE_DPAD_LEFT
	KEYCODE_DPAD_RIGHT
	KEYCODE_DPAD_CENTER
	KEYCODE_VOLUME_UP
	KEYCODE_VOLUME_DOWN
	KEYCODE_POWER
	KEYCODE_CAMERA
	KEYCODE_CLEAR
	KEYCODE_A
	KEYCODE_B
	KEYCODE_C
	KEYCODE_D
	KEYCODE_E
	KEYCODE_F
	KEYCODE_G
	KEYCODE_H
	KEYCODE_I
	KEYCODE_J
	KEYCODE_K
	KEYCODE_L
	KEYCODE_M
	KEYCODE_N
	KEYCODE_O
	KEYCODE_P
	KEYCODE_Q
	KEYCODE_R
	KEYCODE_S
	KEYCODE_T
	KEYCODE_U
	KEYCODE_V
	KEYCODE_W
	KEYCODE_X
	KEYCODE_Y
	KEYCODE_Z
	KEYCODE_COMMA
	KEYCODE_PERIOD
	KEYCODE_ALT_LEFT
	KEYCODE_ALT
	KEYCODE_SHIFT_LEFT
	KEYCODE_SHIFT
	KEYCODE_TAB
	KEYCODE_SPACE
	KEYCODE_SYM
	KEYCODE_EXPLORER
	KEYCODE_ENVELOPE
	KEYCODE_ENTER
	KEYCODE_DEL
	KEYCODE_GRAVE
	KEYCODE_MINUS
	KEYCODE_EQUALS
	KEYCODE_LEFT_BRACKET
	KEYCODE_RIGHT_BRACKET
	KEYCODE_BACKSLASH
	KEYCODE_SEMICOLON
	KEYCODE_APOSTROPHE
	KEYCODE_SLASH
	KEYCODE_AT
	KEYCODE_NUM
	KEYCODE_HEAD
	KEYCODE_FOCUS
	KEYCODE_PLUS
	KEYCODE_MENU
	KEYCODE_NOTIFICATION
	KEYCODE_SEARCH
	KEYCODE_MEDIA_PLAY_PAUSE
	KEYCODE_MEDIA_STOP
	KEYCODE_MEDIA_NEXT
	KEYCODE_MEDIA_PREVIOUS
	KEYCODE_MEDIA_REWIND
	KEYCODE_MEDIA_FAST_FORWARD
	KEYCODE_MUTE
)

Jump to

Keyboard shortcuts

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