# Appendix

### Accessibility service

An accessibility service can be used by people with disabilities or special needs, to help them navigate and use their device. Automate provides such a service, but use it to inspect and relay user interactions to blocks like Interact.

### Activity

An activity is a user interface component of an application.

### ADB

Android Debug Bridge (ADB) is a toolset that facilitates a variety of device actions, such as installing and debugging apps. One of its components is a daemon/service (adbd) that runs as a background process on most Android devices. Automate can use it in multiple ways.

### Application (app)

An application (app) is a complete package of a built-in or downloaded software.

### Atomic and atomicity

Atomicity is a guarantee of isolation from concurrent processes. An atomic operation which performs a series of instructions will either all occur, or nothing occurs.

### Broadcast

A way of sending a message, usually an intent, from one applications to another.

### Broadcast receiver

A background component of an application that receives broadcasts.

### Clipboard

When text or any other content is copied from a text field it’s stored in the “clipboard”. To copy or paste text, long press on a text field.

### Charset (encoding)

A charset is used to represent a sequence of characters in different written languages in a kind of an encoding system. Standard charsets guaranteed to be supported by Android:

- ISO-8859-1
- US-ASCII
- UTF-8
- UTF-16
- UTF-16BE
- UTF-16LE

### Color

Android mostly use the RGB color model encoded as a 32-bit unsigned integer to represent colors, where each channel use 8 bits (1 byte) with a value between 0 and 255. ARGB values are typically expressed using 8 hexadecimal digits, with each pair of the hexadecimal digits representing the values of the Alpha, Red, Green and Blue channel, respectively, e.g `0xFFFF0000` for opaque red.

### Color model

A color model is an abstract mathematical model describing the way colors can be represented. RGB in a common color model used on Android.

### Concurrency

In computer science, concurrency is a property of systems in which several computations are executing simultaneously, and potentially interacting with each other.

### Content Provider

A component of an app, or Android itself, that provides content, sometimes accessible to other apps. Most content providers store their data in a SQLite database and are as such operated using SQL.

### Country (code)

A two-letter code that represents a country, dependent territory, and an special area of geographical interest. See ISO 3166-1 alpha-2.

### DIP

Density Independent Pixel is a unit of measure representing the logical density of a display. Used to scale the display of information and user interaction to different screen sizes. May differ from the physical screen density, i.e. DPI/PPI.

### Exif

Exchangeable image file format is a standard that specifies a format for storing ancillary metadata tags in image and sound files.

### External storage

External storage is the Android term for SD card, or a emulated SD card if the device lacks a card slot. Primary external storage is, prior to Android 11, fully accessible by all apps with proper permission, since Android 11 the user has to manually grant access to each directory thereof. Secondary external storage such as removable SD cards are only accessible after being be granted access to each storage volume, or a directory thereof. On Android 5+ access to each storage volume, or directory thereof, can be granted is settings. There’s also Internal storage used for system files, it’s mostly inaccessible to apps.

### FIFO (queue)

FIFO is an acronym for First In, First Out, a method for organizing and manipulating a data buffer, where the oldest (first) entry, or “head” of the queue, is processed first.

### Galois/Counter Mode (GCM)

A symmetric key cryptographic block ciphers that has been widely adopted because of its efficiency and performance. It’s an authenticated encryption algorithm designed to provide both data authenticity (integrity) and confidentiality.

### Glob

Glob, or “globbing”, is a type of pattern matching based on wildcard characters. See glob function.

### Intent

A message passed between applications, either by a broadcast or when starting an activity or service.

### HTML

HyperText Markup Language (HTML) is the standard markup language, similar to XML, used to create web pages.

### JSON

JavaScript Object Notation (JSON) is an open standard format that uses human-readable text to transmit data objects consisting of key-value pairs. It’s used primarily for data transmission between a server and web application.

### Language (code)

A code that represents a specific geographical, political, or cultural region. The code, similar to an IETF language tag, consist of a two-letter ISO 639-1 language code, and optional an two-letter ISO 3166-1 alpha-2 country code separated by a hyphen (-) or underscore (_). For example; `en` for English, `en-US` for American English and `en-GB` for British English.

### Locale

An automation app similar to Automate. Automate supports plug-ins made for Locale.

### Manifest

An manifest is an XML file, named `AndroidManifest.xml`, stored within every app package declaring its components, such as activities, services, content provider, etc.. Use an app like Apk Analyzer to view it.

### MIME type

An internet media type is a standard identifier used on the internet to indicate the type of data that a file contains. See IANA Media type registry for more information, with a list of common MIME types. See mimeType function.

### Notification channel

Notifications shown by an app are categorizing into “channels”, which can be separately configured with different importance level, sound, light color, etc.. Configure the notification channels in Automate Notification channel settings, or (Android 8+) system App notification settings.

### Package (name)

The unique identifier of an application package.

### Path normalization

Normalizing a file/directory path removes any duplicate separators `//`, current directory markers `.` and resolving parent directory markers `..`. Note that, the resolving of parent directories is done without access, knowledge of the actual path structure.

### Password-Based Key Derivation Function 2 (PBKDF2)

A key derivation function that is part of RSA Laboratories’ Public-Key Cryptography Standards (PKCS) series.

### Privileged service

Automate includes a service that can be started by, and run in the background as, either ADB (see instructions) or root. Choose Privileged service start method in settings.

### QR code

A QR code (quick-response code) is a type of two-dimensional matrix barcode which can be read by an imaging device such as a camera. Used to display text to the user, to open a webpage or URI on the user's device, to add a contact to the user’s device, to connect to a wireless network, or to compose an email or SMS. See also Wikipedia.

### Regular expression

A regular expression (abbreviated regex or regexp) is a sequence of characters that forms a search pattern, mainly for use in text pattern matching (see matches function) and "find and replace"-like operations (see replaceAll function).

Both the regular expression syntax and text literals use the backslash `\` and left curly bracket `{` characters for special purpose, use `\\` and `\{` to avoid the text literal interpretation. Automate uses the system provided Java implementation. See also Wikipedia.

### Roaming

Roaming is the ability for a cellular customer to automatically make/receive voice calls, send/receive mobile data or access other services when travelling outside the geographical coverage area of the home network, by means of using a visited network. Often incurring extra costs.

### Root

Another name for the superuser.

### Service

A service is a background component of an application.

### SQL

Structured Query Language (SQL) is a special-purpose programming language designed for managing data held in a relational database management system (RDBMS). Android itself and most apps use SQLite as RDBMS.

### STIR/SHAKEN

Secure Telephony Identity Revisited (STIR) / Signature-based Handling of Asserted information using toKENs (SHAKEN) is a suite of protocols and procedures intended to combat caller ID spoofing on public telephone networks. Supported on Android 11+ devices if adopted by the telephony network carrier.

### Superuser

Superuser (root) is a special user account used for system administration. The account has access to all content and has the ability to make system-wide changes. The superuser account is only available on rooted devices.

### Tasker

An automation app similar to Automate. Automate supports plug-ins made for Tasker.

### Timestamp

A unix timestamp is a system for describing instants in time, defined as the number of seconds that have elapsed since 00:00:00, Thursday, 1 January 1970 UTC.

### Time zone (name)

The name of a time zone is defined by Android, it can either be the name of a country/city (America/Los_Angeles) or an GMT offset (GMT+0800). Use the localTime or utcTime functions to convert timestamps between time zones.

### URI

A Uniform Resource Identifier (URI) is a string of characters used to identify a name of a resource.

### URL

A Uniform Resource Locator (URL) is a string of characters used to identify a name of a resource. A URL is technically a type of URI often used to describe a web address.

### USSD

Unstructured Supplementary Service Data (USSD), also called “Quick Codes” or “Feature codes”, is a message protocol used by mobile phones to access the operator’s network services. The mobile operator defines the USSD messages they support. A typical message starts with an asterisk (*), terminate with a number sign (#), and is less that 183 characters long.

### UTC

Coordinated Universal Time (UTC) is the primary time standard by which the world regulates clocks and time. It’s a successors to Greenwich Mean Time (GMT).

### UUID

A universally unique identifier (UUID) is a 128-bit number used to identify information in computer systems, with near certainty that the identifier does not duplicate one that has already been, or will be, created to identify something else.

### XML

Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format which is both human-readable and machine-readable.

### XPath

XML Path Language (XPath) is a query language for selecting nodes, or to compute values (e.g. strings, numbers or Boolean values), from an XML document. Automate only support version 1.0, but include backports of the `fn:matches` (using system regular expression engine), `fn:reverse` and `fn:string-join` functions from later versions, the common `fn:choose` and `fn:node-set` functions, and a custom `fn:glob` function.