### Example GET Request Response Headers and Content (HTTP)
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Project Editor/HTTP and FTP/GET.mdx
This example combines both the HTTP response headers and the JSON response body for a GET request. The headers precede the body, separated by two blank lines, providing a complete picture of the server's response.
```HTTP
HTTP/1.1 200 OK
Date: Sat, 23 May 2020 01:56:45 GMT
Content-Type: application/json
Content-Length: 613
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
{
"args": {},
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "en-US,en;q=0.8",
"Host": "httpbin.org",
"Referer": "https://google.com",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36",
"X-Amzn-Trace-Id": "Root=1-26erb44t-465basaw0z2qwbji492yh5t3"
},
"origin": "1.2.3.4",
"url": "https://httpbin.org/get"
}
```
--------------------------------
### Proxy Format Examples
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Project Editor/HTTP and FTP/GET.mdx
Demonstrates various formats for specifying proxy servers, including options with and without authentication, and handling cases where the protocol is omitted.
```text
# With authentication
http://login:password@ip:port
socks5://login:password@ip:port
# Without authentication
http://ip:port
socks5://ip:port
# No protocol specified (http:// by default)
login:password@ip:port
ip:port
```
--------------------------------
### JavaScript Console Log Example
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Tools/Frida.mdx
A simple JavaScript code snippet to be used with Frida for logging a 'Hello, World!' message. This is often used to verify the Frida server connection and script loading.
```javascript
console.log('Hello, World!');
```
--------------------------------
### Example ZennoPoster Project Actions
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennoposter/current/basics/getting-started.md
This XML snippet demonstrates the basic actions for a ZennoPoster project. It includes navigating to a URL, typing text into an input field, and clicking a button. This is useful for understanding the structure of project actions.
```xml
```
--------------------------------
### Launch Android Applications and Activities
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Android/Enterprise/ADB_Shell.mdx
Demonstrates how to launch specific Android applications or activities using the `am start` command. This is useful for interacting with installed apps or initiating specific screens within them.
```shell
am start com.cyanogenmod.filemanager/com.cyanogenmod.filemanager.activities.NavigationActivity
```
```shell
am start -n com.android.settings/.Settings
```
```shell
am start -n com.android.browser/.BrowserActivity
```
--------------------------------
### Example HTTP Headers from Response
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Project Editor/HTTP and FTP/GET.mdx
This snippet shows an example of HTTP headers returned in a response from https://httpbin.org/get. These headers are typically included in requests to simulate browser behavior.
```text
Host: httpbin.org
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.5
```
--------------------------------
### Example GET Request Response Headers (HTTP)
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Project Editor/HTTP and FTP/GET.mdx
This snippet shows the HTTP headers returned as part of a response to a GET request. It includes status code, date, content type, server information, and access control details.
```HTTP
HTTP/1.1 200 OK
Date: Sat, 23 May 2020 01:56:45 GMT
Content-Type: application/json
Content-Length: 613
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
```
--------------------------------
### Start Local Development Server with npm
Source: https://github.com/zennolab/zennodroid-docs/blob/main/README.md
Starts a local development server for the website. Changes are reflected live without requiring a server restart. Opens the website in a browser window.
```bash
npm start
```
--------------------------------
### Install Project Dependencies with npm
Source: https://github.com/zennolab/zennodroid-docs/blob/main/README.md
Installs all the necessary dependencies for the project using npm. Ensure Node.js and npm are installed before running this command.
```bash
npm install
```
--------------------------------
### Example GET Request Response Body (JS)
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Project Editor/HTTP and FTP/GET.mdx
This JavaScript code snippet demonstrates the structure of a typical JSON response body received from a GET request to a service like httpbin.org. It includes request arguments, headers sent, origin IP, and the requested URL.
```JS
{
"args": {},
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "en-US,en;q=0.8",
"Host": "httpbin.org",
"Referer": "https://google.com",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36",
"X-Amzn-Trace-Id": "Root=1-26erb44t-465basaw0z2qwbji492yh5t3"
},
"origin": "1.2.3.4",
"url": "https://httpbin.org/get"
}
```
--------------------------------
### App API - Installation and Uninstallation
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/API/App.mdx
Install and uninstall applications on the device.
```APIDOC
## App API - Installation and Uninstallation
### Description
Handles the installation and uninstallation of applications.
### Methods
#### InstallApk(string path)
Installs an application from an APK file.
* **Parameters:**
* `path` (string) - The local path to the APK file.
#### IsInstalled(string packageName)
Checks if a specific application is currently installed.
* **Parameters:**
* `packageName` (string) - The name of the app to check.
* **Returns:**
* `bool` - `true` if the app is installed, `false` otherwise.
#### Delete(string packageName)
Uninstalls a specific application.
* **Parameters:**
* `packageName` (string) - The name of the app to uninstall.
### Examples
```csharp
var app = instance.DroidInstance.App;
var chromePackageName = "com.google.chrome";
var apkPath = @"\chrome.apk";
// Install Chrome if not already installed
if (!app.IsInstalled(chromePackageName))
{
app.InstallApk(apkPath);
}
// Uninstall Chrome
// app.Delete(chromePackageName);
```
```
--------------------------------
### Start Selected Device using C#
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/API/Action.mdx
Starts the device that was previously selected using one of the selection methods. This method initiates the operation of the chosen device.
```csharp
var action = instance.DroidInstance.Action;
action.Start();
```
--------------------------------
### Get Application APK
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Android/Enterprise/App.mdx
Retrieves the application's installer file in .apk or .apks format. This extracted APK can then be used with the 'Install APK' action.
```text
This action lets you get the installer file of your app in ***.apk*** or ***.apks*** format.
Later, you can install the app with the **Install APK** action.
```
--------------------------------
### Get Installed Plugins
Source: https://github.com/zennolab/zennodroid-docs/blob/main/docs/ZennoPoster/ZennoPoster/ZennoPoster_change_log/ZennoPoster_5-Change_Log/ZennoPoster_Chrome_Changelog.mdx
Retrieves a list of all installed browser plugins (e.g., Flash, PDF viewer). This data is often used for browser fingerprinting. The function returns a list of plugin names or details.
```csharp
List plugins = instance.GetInstalledPlugins();
```
--------------------------------
### Launch App with Clear Cache - ZennoDroid
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/get-started/browser.mdx
Launches a specified Android application and clears its cache before starting. This is crucial for ensuring automation runs in a consistent, clean environment. It uses the App ID to identify the target browser, such as 'com.android.chrome' for Google Chrome.
```ZennoDroid
Open app (App ID: com.android.chrome)
Clear App (App ID: com.android.chrome)
```
--------------------------------
### Pause and Minimize App - ZennoDroid
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/get-started/browser.mdx
Introduces a timed pause in the automation sequence, followed by an action to minimize the application. The pause allows for visual confirmation of the opened page before the app is sent to the background. Minimization is achieved using the HOME key emulation.
```ZennoDroid
Add action -> Logic -> Pause (set 10 seconds)
Add action -> Keyboard Emulation -> AndroidKeys.HOME
```
--------------------------------
### Manage Android Packages with `pm` Command
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Android/Enterprise/ADB_Shell.mdx
Provides examples of using the `pm` command-line tool for package management, including uninstalling applications and listing all installed packages on an Android device. This is essential for automation and device management.
```shell
pm uninstall com.example.MyApp
```
```shell
pm list packages
```
--------------------------------
### Install App from APK - C#
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/API/App.mdx
Installs an application on the device using its APK file. Requires the correct path to the APK file. This is a common method for sideloading applications.
```csharp
var app = instance.DroidInstance.App;
var pathApk = @"\chrome.apk"; // APK file path
app.InstallApk(pathApk); // Install the app
```
--------------------------------
### Open Application
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Android/ProLite/App.mdx
Launches an already installed application on the virtual machine. This action requires the application to be previously installed.
```visual_workflow
Add action -> Android -> Actions with Application -> Open application
```
--------------------------------
### Example: Download, Rename, and Move Image (ZennoDroid)
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Data/Files.mdx
Demonstrates a multi-step process to download an image using a GET request, generate a random filename, and then move the downloaded image to a specific project directory with the new name. This showcases the integration of various ZennoDroid actions.
```ZennoDroid
// Step 1: Download image using GET request
{
"Type": "Action",
"Name": "HttpRequest",
"Parameters": {
"Url": "https://sun9-40.userapi.com/impf/c848528/v848528810/1bd139/xdhmnuXGxLg.jpg?size=1200x800&quality=96&sign=d821afb870ed03538e551524acb1af31&type=album",
"Method": "GET",
"SaveToFile": true,
"OutputFilePathVariable": "PicPath"
}
}
// Step 2: Generate a random filename (assuming 'Random' action is configured to output to 'name_file')
{
"Type": "Action",
"Name": "Random",
"Parameters": {
// ... configuration for generating a random name ...
"OutputVariable": "name_file"
}
}
// Step 3: Move and rename the downloaded image
{
"Type": "Action",
"Name": "Files",
"Parameters": {
"Action": "Move",
"FilePath": "{-Variable.PicPath-}",
"NewPath": "{-Project.Directory-}Village_Kitten\{-Variable.name_file-}.jpg"
}
}
```
--------------------------------
### Enabling Magisk Core Features
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Enterprise/Root.mdx
This outlines the initial setup within the Magisk application on the device. It involves enabling Zygisk and DenyList for systemless modification and root hiding capabilities. Additional modules like Universal SafetyNet and Shamiko are recommended for enhanced functionality.
```text
Open Magisk settings and turn on both: Zygisk and DenyList.
```
--------------------------------
### HTTP Request Configuration (Conceptual Example)
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Project Editor/HTTP and FTP/HTTP.mdx
This conceptual example demonstrates how to set up an HTTP request action in Zennodroid. It covers selecting the request type, specifying the URL, setting the Referer header, choosing data encoding, defining the request body and data type, configuring response download options, and assigning a variable to store the result.
```Conceptual
Action: HTTP Request
Main Tab:
Request type: PUT (or DELETE, HEAD, OPTIONS, PATCH, TRACE)
URL: "https://api.example.com/resource/123"
Referer: "https://example.com/previous_page"
Encoding: UTF-8
Timeout: 60
Data: "key1=value1&key2=value2" (for urlencoded)
Data type: urlencoded (or multipart, application/json)
Download:
Save to variable: ResponseContent
Mode: Content only
Advanced Tab:
Redirect: 5
Use original URL: False
```
--------------------------------
### Get Application List (Filtered)
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Android/ProLite/App.mdx
Retrieves a list of all installed applications on the device. Filtering options include 'All', 'System', and 'User' applications.
```visual_workflow
Add action -> Android -> Actions with Application -> Get application list
```
--------------------------------
### Proxy String Format Examples
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Project Editor/HTTP and FTP/HTTP.mdx
Provides examples of how to format proxy strings for different scenarios. This includes proxies with and without authentication, and cases where the protocol is omitted and defaults to HTTP.
```text
socks5://username:password@ip:port
http://username:password@ip:port
socks5://ip:port
http://ip:port
username:password@ip:port
ip:port
```
--------------------------------
### Manage BlueStacks Emulator Instances with C#
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Enterprise/BlueStacks.mdx
This snippet demonstrates various C# functions for controlling BlueStacks emulator instances within ZennoDroid Enterprise. These functions allow for starting, stopping, creating, configuring, and deleting emulators, as well as managing system disk access and installing root/Magisk for advanced functionalities. The code assumes the BlueStacks emulator is already installed and configured.
```csharp
// Starts a pre-created emulator instance.
// Example: StartEmulator("BlueStacks_5_x64");
void StartEmulator(string emulatorName);
```
```csharp
// Connects to a running emulator instance.
// Example: ConnectToEmulator("BlueStacks_5_x64");
void ConnectToEmulator(string emulatorName);
```
```csharp
// Stops a running emulator instance.
// Example: StopEmulator("BlueStacks_5_x64");
void StopEmulator(string emulatorName);
```
```csharp
// Creates a new emulator instance with default settings.
// Example: CreateEmulator();
void CreateEmulator();
```
```csharp
// Creates a new emulator instance with specified settings.
// Example: CreateEmulatorWithSettings("EmulatorName", "x86", 1024, 2, "DirectX", "64bit");
void CreateEmulatorWithSettings(string name, string renderingMode, int ram, int cpu, string graphicsEngine, string bitness);
```
```csharp
// Deletes an emulator instance by its name.
// Example: DeleteEmulatorByName("BlueStacks_5_x64");
void DeleteEmulatorByName(string emulatorName);
```
```csharp
// Opens the BlueStacks Multi-Instance Manager window.
// Example: StartManager();
void StartManager();
```
```csharp
// Enables writing to the emulator's system disk (changes from Read-Only).
// Example: UnlockSystemDisk("BlueStacks_5_x64");
void UnlockSystemDisk(string emulatorName);
```
```csharp
// Restores the emulator's system disk to its original state.
// Example: RestoreSystemDisk("BlueStacks_5_x64");
void RestoreSystemDisk(string emulatorName);
```
```csharp
// Prepares the system disk for Magisk installation.
// Example: SystemPatchForMagiskInstall("BlueStacks_5_x64");
void SystemPatchForMagiskInstall(string emulatorName);
```
```csharp
// Installs the Magisk manager app on the emulator.
// Example: InstallMagisk("BlueStacks_5_x64");
void InstallMagisk(string emulatorName);
```
```csharp
// Writes Magisk binaries and scripts to the system partition.
// Example: WriteMagiskToSystemPartition("BlueStacks_5_x64");
void WriteMagiskToSystemPartition(string emulatorName);
```
```csharp
// Enables the Zygisk module in Magisk for LSPosed support.
// Example: EnableZygisk("BlueStacks_5_x64");
void EnableZygisk(string emulatorName);
```
--------------------------------
### Install Application (APK/XAPK/APKM/APKS)
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Android/ProLite/App.mdx
Installs an application from a specified APK file or package. Supports .xapk, .apkm, and .apks formats. Ensure the file path is correct.
```visual_workflow
Add action -> Android -> Actions with Application -> Install application
```
--------------------------------
### Check App Installation Status - C#
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/API/App.mdx
Checks whether a specific application is currently installed on the device. This is often used before attempting to open or install an app, ensuring it exists.
```csharp
var app = instance.DroidInstance.App;
var packageName = "com.google.chrome"; // App name
var isApk = app.IsInstalled(packageName); // Check if app is installed
if (!isApk) // If not, install it
{
var pathApk = @"\chrome.apk"; // APK file path
app.InstallApk(pathApk); // Install the app
}
```
--------------------------------
### Install Application from APK
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Android/Enterprise/App.mdx
Installs an application from an APK file. Supports .xapk, .apkm, and .apks formats. This action is crucial for deploying applications programmatically.
```text
This action lets you install an app from an APK file. Supported formats: ***.xapk, .apkm, .apks***
```
--------------------------------
### Cookie Format Example
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Project Editor/HTTP and FTP/GET.mdx
Illustrates the expected format for manually entering cookies. Cookies are provided as key-value pairs separated by an equals sign, with multiple cookies delimited by a semicolon.
```text
user=1992103;session=f79fcadd847b80f9df78ba4fb276c867;id=889
```
--------------------------------
### Simulate Touch Event - ZennoDroid
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/get-started/browser.mdx
Simulates a touch event on specific UI elements, such as 'Continue' or 'No, thanks' buttons, to bypass initial browser prompts. This action is useful when elements lack clear tags for automatic detection by the software.
```ZennoDroid
Action Builder -> Add 'Continue' button -> Rise (event: touch)
Action Builder -> Add 'No, thanks' button -> Rise (event: touch)
```
--------------------------------
### App Management Commands
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Android/Enterprise/ADB_Shell.mdx
Commands for managing installed applications on an Android device. This includes listing packages, uninstalling, installing, clearing app data, and force-stopping apps.
```bash
pm list packages
```
```bash
pm uninstall
```
```bash
pm install
```
```bash
pm clear
```
```bash
am force-stop
```
--------------------------------
### ADB Device Connection and Basic Commands
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Enterprise/Root.mdx
This snippet demonstrates how to connect an Android device using ADB (Android Debug Bridge) and lists common commands for managing applications, device state, and file transfers. Ensure ADB is installed and USB Debugging is enabled on your device.
```bash
adb devices
# Install an APK
adb install
# Uninstall an app
adb uninstall
# Open a terminal on the device
adb shell
# Restart the device
adb reboot
# Copy file from device to computer
adb pull
# Copy file from computer to device
adb push
# Reboot to recovery mode
adb reboot recovery
```
--------------------------------
### Trace File Example - Zennodroid
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/pm/Debugging.mdx
This snippet displays the typical content of a Zennodroid trace file. It shows timestamped messages indicating the start and end of actions, along with their status (Info, In, Good, Bad) and associated IDs or values. This format is crucial for debugging and identifying bottlenecks in automated processes.
```text
23-02-2021 06:08:59.3600|Info|---Project Start Execute---
23-02-2021 06:09:17.9110|In |cca-1035|
23-02-2021 06:09:20.5203|Good|cca-1035|2520
23-02-2021 06:09:20.5525|In |8c7d7d95-d574-43a5-a677-6ebc17490caf|
23-02-2021 06:09:27.3366|Good|8c7d7d95-d574-43a5-a677-6ebc17490caf|6721
23-02-2021 06:09:27.3571|In |03aa3431-0d85-4374-ad32-2821d22f1674|
23-02-2021 06:09:27.3708|Good|03aa3431-0d85-4374-ad32-2821d22f1674|3
23-02-2021 06:09:27.3893|In |re-2884|
23-02-2021 06:09:28.3229|Good|re-2884|918
23-02-2021 06:09:28.3356|In |00b6f04c-711c-4362-9404-f8fb2fdf5a51|
23-02-2021 06:09:28.3463|Good|00b6f04c-711c-4362-9404-f8fb2fdf5a51|0
23-02-2021 06:09:28.3571|In |re-4835|
23-02-2021 06:09:29.0290|Good|re-4835|661
23-02-2021 06:09:29.0455|In |67c9448b-ebbe-4f54-8206-868f8ddc38c3|
23-02-2021 06:09:29.0612|Good|67c9448b-ebbe-4f54-8206-868f8ddc38c3|2
23-02-2021 06:09:29.3509|Info|---Project Executed---
```
--------------------------------
### Keyboard Emulation for Enter Key - ZennoDroid
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/get-started/browser.mdx
Emulates the 'Enter' key press on the Android keyboard, typically used after inputting text into a search bar to initiate the search. This action is accessed through the keyboard emulation settings within ZennoDroid.
```ZennoDroid
Right-click block -> Add action -> Android -> Keyboard Emulation -> Enter: AndroidKeys.ENTER
```
--------------------------------
### C# Get Project Proxy Method
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/API/Proxy.mdx
The `GetProxy` method in C# retrieves the currently configured project proxy settings.
```csharp
string GetProxy()
// Example:
var proxy = instance.DroidInstance.Proxy;
var projectProxy = proxy.GetProxy(); // Get project proxy
```
--------------------------------
### Open Application with Activity
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Android/Enterprise/App.mdx
Launches an installed application, optionally to a specific activity. The app name can be found using the 'Installed Apps' tool, and the activity can be determined via `dumpsys package com.package_name | grep -i activity`.
```bash
# Example command to find app activity:
dumpsys package com.package_name | grep -i activity
```
--------------------------------
### Installing Magisk via Recovery
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Enterprise/Root.mdx
This describes the process of flashing the Magisk installer zip file through a custom recovery environment like TWRP. It assumes the Magisk APK has been renamed to a zip archive and copied to the device's external storage.
```text
Flash Magisk installer zip through Recovery.
```
--------------------------------
### Supported Proxy Formats
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennobrowser/current/basics/proxy.mdx
Illustrates the different formats for entering proxy details in Zennodroid. This includes basic IP:Port, HTTP URLs, credentials, and SOCKS5 protocols. Supports IPv6 with specific formatting.
```plaintext
192.168.0.1:8000
http://192.168.0.1:8000
192.168.0.1:8000:login:password
socks5://login:password@192.168.0.1:8000
[IPv6_address]:port
```
--------------------------------
### SQL Query Examples
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Data/DataBase.mdx
Examples of SQL queries that can be executed against a database. These include operations that do not return data (INSERT, DELETE), operations that return a single value (scalar), and operations that return a table of data.
```sql
INSERT INTO YourTable (Column1, Column2)
VALUES (@Param1, @Param2);
```
```sql
DELETE FROM YourTable WHERE Condition;
```
```sql
SELECT SUM(price) FROM fruit;
```
```sql
SELECT column1, column2 FROM YourTable WHERE Condition;
```
--------------------------------
### Extract Application APK
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Android/ProLite/App.mdx
Extracts the installation file (.apk or .apks) of an application. The extracted file can later be used with the 'Install apk' action.
```visual_workflow
Add action -> Android -> Actions with Application -> Get apk of the application
```
--------------------------------
### Interact with Android Intents for Web and Actions
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Android/Enterprise/ADB_Shell.mdx
Shows how to use `am start` with intents to perform actions like opening URLs or performing web searches. Intents are fundamental for inter-app communication and launching specific functionalities.
```shell
am start -a android.intent.action.VIEW -d https://zennolab.com
```
```shell
am start -a android.intent.action.WEB_SEARCH -n com.android.browser/.BrowserActivity --es query 'Hello, world!'
```
--------------------------------
### Get Help for a Command
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Android/Enterprise/ADB_Shell.mdx
Retrieves a help message for a specific console command. This is useful for understanding the usage and options of individual commands. The help information is typically in English.
```bash
mkdir --help
```
--------------------------------
### List Packages using ADB Shell
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Tools/Installed_App.mdx
This command retrieves a list of all installed packages on an Android device using the Android Debug Bridge (ADB) shell. It's a common way to programmatically interact with installed applications.
```bash
adb shell pm list packages
```
--------------------------------
### App Listing API
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/API/App.mdx
Endpoints for retrieving lists of applications installed on the device, categorized by all apps, system apps, and user-installed apps.
```APIDOC
## GET /apps/list
### Description
Retrieves a list of all installed applications on the device.
### Method
GET
### Endpoint
`/apps/list`
### Request Example
```csharp
var app = instance.DroidInstance.App;
var packages = app.GetListPackages(); // Get list of all installed apps
```
### Response
#### Success Response (200)
- **packages** (string[]) - An array of package names for all installed applications.
## GET /apps/system/list
### Description
Retrieves a list of all system applications installed on the device.
### Method
GET
### Endpoint
`/apps/system/list`
### Request Example
```csharp
var app = instance.DroidInstance.App;
var packages = app.GetListSystemPackages(); // Get list of all system apps
```
### Response
#### Success Response (200)
- **packages** (string[]) - An array of package names for all system applications.
## GET /apps/user/list
### Description
Retrieves a list of all user-installed applications on the device.
### Method
GET
### Endpoint
`/apps/user/list`
### Request Example
```csharp
var app = instance.DroidInstance.App;
var packages = app.GetListUserPackages(); // Get list of all user-installed apps
```
### Response
#### Success Response (200)
- **packages** (string[]) - An array of package names for all user-installed applications.
```
--------------------------------
### JavaScript Example JSON Data
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Tools/JSON_Tester.mdx
This is an example JSON object representing a store with books and a bicycle. It's used to demonstrate JSONPath expression testing. No external dependencies are required to use this data structure.
```javascript
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}
```
--------------------------------
### GET /api/proxy/get
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/API/Proxy.mdx
Retrieve the current proxy configuration set for the project.
```APIDOC
## GET /api/proxy/get
### Description
Retrieve the current proxy configuration set for the project.
### Method
GET
### Endpoint
/api/proxy/get
### Response
#### Success Response (200)
- **proxy** (string) - The current proxy configuration string.
#### Response Example
```json
{
"proxy": "socks5://login:pass@100.20.30.40:8080"
}
```
```
--------------------------------
### Android Package Management Commands
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Enterprise/Useful_Tips.mdx
Commands for managing Android packages, including uninstalling user-specific packages and restoring system packages. It also includes a command to list all installed packages.
```bash
pm uninstall --user 0 package.path.name
```
```bash
cmd package install-existing package.path.name
```
```bash
pm list packages
```
--------------------------------
### List All Installed Apps with Zennodroid
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/API/App.mdx
Retrieves a list of all installed application package names on the device. This can be used to enumerate all available apps for further processing or analysis. The function returns an array of strings, where each string is a package name.
```csharp
var app = instance.DroidInstance.App;
var packages = app.GetListPackages(); // Get list of all installed apps
```
--------------------------------
### Generate Image with ImageMagick (Variable Parameters)
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Project Editor/CustomCode/RunningPrograms.mdx
This method utilizes variables to define the ImageMagick executable path and launch parameters, making the setup more adaptable for different environments. The output file is saved to the project directory.
```shell
Executable: {-Variable.imagemagick_dir_path-}magick.exe
Launch parameters: {-Variable.parameters-} {-Project.Directory-}result.jpg
```
--------------------------------
### Proxy Format Strings
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Project Editor/HTTP and FTP/POST.mdx
Provides examples of string formats for specifying proxy server details. This includes formats with and without authentication, and a shorthand format that defaults to HTTP protocol.
```text
socks5://login:password@ip:port
http://login:password@ip:port
socks5://ip:port
http://ip:port
login:password@ip:port
ip:port
```
--------------------------------
### Zennodroid Profile Variable Example
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/pm/Interface/Work_with_Profile.mdx
Illustrates examples of profile variables that might not be directly visible in the Profile window but can be accessed programmatically. This includes specific nickname and secret question answer variables.
```text
Variables that aren't in the Profile window.
`{-Profile.NickName-}` (its value is different from `{-Profile.Login-}`)
`{-Profile.SecretQuestionAnswer1-}` and `{-Profile.SecretQuestionAnswer2-}`
```
--------------------------------
### Get Installed Fonts
Source: https://github.com/zennolab/zennodroid-docs/blob/main/docs/ZennoPoster/ZennoPoster/ZennoPoster_change_log/ZennoPoster_5-Change_Log/ZennoPoster_Chrome_Changelog.mdx
Retrieves a list of all fonts installed on the system. This information can be used for fingerprinting or selecting specific fonts for emulation. The function returns a list of font names.
```csharp
List fonts = instance.GetInstalledFonts();
```
--------------------------------
### XPath and JSONPath Examples for Data Selection
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Tools/JSON_Tester.mdx
Demonstrates equivalent XPath and JSONPath expressions for selecting data from XML and JSON structures. These examples cover finding all elements, deep searching, filtering by index, and conditional filtering. They are useful for understanding how to query and extract specific information from hierarchical data.
```text
| XPath | JSONPath | Result |
| :------------------- | :---------------------- | :---------------------------------------------------------------------------------------- |
| `/store/book/author` | `$.store.book[*].author` | Find all `author` elements in all `book` entries inside `store`. |
| `//author` | `$..author` | Every `author` element. |
| `/store/*` | `$.store.*` | Get everything inside `store`. |
| `/store//price` | `$.store..price` | Grab the `price` value from every element called `price` in `store`. |
| `//book[3]` | `$..book[2]` | Get the third `book` element. (Index starts at 0 in JSONPath) |
| `//book[last()]` | `$..book[(@.length-1)]` or `$..book[-1:]` | The last `book` element. |
| `//book[position()<3]` | `$..book[0,1]` or `$..book[:2]` | The first **2** `book` elements. |
| `//book[isbn]` | `$..book[?(@.isbn)]` | Filter for all `book` elements that have an `isbn`. |
| `//book[price<10]` | `$..book[?(@.price<10)]` | Filter for all `book` elements with a `price` less than **10**. |
| `//*` | `$..*` | Select all elements in the XML or all members of the JSON structure. |
```
--------------------------------
### Launch FFmpeg with Arguments and Save Output
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Project Editor/CustomCode/RunningPrograms.mdx
Demonstrates launching the FFmpeg console utility with specific arguments to convert a video file and captures its standard output. This is useful for processing media files and debugging conversion issues by examining the output logs.
```text
Executable file: ffmpeg.exe
Launch parameters: -i input.mp4 output.avi
Save STD OUT: OutputLog
Don't show process window: true
```
--------------------------------
### Open URL in Application
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Android/Enterprise/App.mdx
Opens a specified web page in a browser. Users can specify a particular app to handle the URL or leave it blank to use the default browser. The app name can be identified using the 'Installed Apps' tool.
```text
- *URL.* This is where you enter the web page address you want to open.
- *App name.* Put in the name of the app that can open links. You can find it using the [**Installed Apps**](../../Tools/Installed_App) tool. If you leave it blank, the page will open in the default browser.
```
--------------------------------
### Execute SQLite3 Query
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Android/ProLite/Utilities.mdx
Runs a SQL query on the device database. Necessary files are automatically installed on the first run. The output can be formatted as JSON or a pipe-separated string.
```sql
SELECT * FROM contacts
```
--------------------------------
### Execute Frida Script
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Android/ProLite/Utilities.mdx
A utility for running a Frida script. Required files and the Frida server are automatically installed on the device upon the first launch, depending on the device's architecture.
```javascript
// Your Frida script here
// Example:
// Java.perform(function() {
// var MainActivity = Java.use('com.example.app.MainActivity');
// MainActivity.someMethod.implementation = function() {
// console.log("Method called!");
// return this.someMethod();
// };
// });
```
--------------------------------
### List All System Apps with Zennodroid
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/API/App.mdx
Retrieves a list of all system application package names installed on the device. This helps differentiate pre-installed applications from user-installed ones. The function returns an array of strings representing system app package names.
```csharp
var app = instance.DroidInstance.App;
var packages = app.GetListSystemPackages(); // Get list of all system apps
```
--------------------------------
### Build Static Website Content with npm
Source: https://github.com/zennolab/zennodroid-docs/blob/main/README.md
Generates the static content for the website into the 'build' directory. This content can then be served using any static hosting service.
```bash
npm run build
```
--------------------------------
### Select Lines to the End of a List
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/pm/Creating/Value_Ranges.mdx
To select lines from a specific starting point to the end of a list, use the 'end' keyword. For example, '10-end' selects all lines from the 11th to the last one.
```text
10-end
```
--------------------------------
### List All User-Installed Apps with Zennodroid
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/API/App.mdx
Retrieves a list of all applications installed by the user on the device. This is useful for managing or analyzing applications added by the user. The function returns an array of strings, each being a user-installed app's package name.
```csharp
var app = instance.DroidInstance.App;
var packages = app.GetListUserPackages(); // Get list of all user-installed apps
```
--------------------------------
### Get Whitelist/Blocklist Domains
Source: https://github.com/zennolab/zennodroid-docs/blob/main/docs/ZennoPoster/ZennoPoster/ZennoPoster_change_log/ZennoPoster_5-Change_Log/ZennoPoster_Chrome_Changelog.mdx
Retrieves a list of domains configured for the 'WhiteList' or 'BlockList' content policy. This function is essential for managing allowed or blocked domains. It returns a list of strings, where each string is a domain.
```csharp
List domains = instance.GetWhiteListDomains(); // or GetBlockListDomains()
```
--------------------------------
### Downloading Response as a File with HTTP Request
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Project Editor/HTTP and FTP/HTTP.mdx
This example shows how to download the response from an HTTP request directly as a file. The 'Download' setting is 'As file', and the variable will store the path to the saved file.
```Conceptual
Action: HTTP Request
Main Tab:
URL: "https://example.com/download/image.jpg"
Download:
Save to variable: FilePath
Mode: As file
```
--------------------------------
### Generate Image with ImageMagick (Hard-coded Parameters)
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Project Editor/CustomCode/RunningPrograms.mdx
This example shows how to create an image using ImageMagick with all parameters specified directly in the 'Launch parameters' field. It includes settings for image size, background color, text, font, and output path. The executable path is also hard-coded.
```shell
Executable: C:\Program Files\ImageMagick-7.1.1-Q16-HDRI\magick.exe
Launch parameters: -size 600x600 -background lightgreen -gravity Center -fill green -font Arial -pointsize 72 label:ZennoDroid C:\Users\Administrator\Desktop\result.jpg
```
--------------------------------
### Get Whitelist/Blocklist Regex Patterns
Source: https://github.com/zennolab/zennodroid-docs/blob/main/docs/ZennoPoster/ZennoPoster/ZennoPoster_change_log/ZennoPoster_5-Change_Log/ZennoPoster_Chrome_Changelog.mdx
Retrieves a list of regular expressions used for the 'WhiteList' or 'BlockList' content policy. This allows for more flexible domain matching. The function returns a list of strings, each being a regular expression.
```csharp
List regexPatterns = instance.GetWhiteListRegexes(); // or GetBlockListRegexes()
```
--------------------------------
### Get App UID with Zennodroid
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/API/App.mdx
Retrieves the User ID (UID) for a given application package name. This is useful for identifying specific app installations and their associated permissions or data. The function takes the package name as input.
```csharp
var app = instance.DroidInstance.App;
var packageName = "com.google.chrome"; // App name
var uid = app.Uid(packageName); // Get app UID
```
--------------------------------
### Launch Notepad and Wait for Completion
Source: https://github.com/zennolab/zennodroid-docs/blob/main/i18n/en/docusaurus-plugin-content-docs-zennodroid/current/Project Editor/CustomCode/RunningPrograms.mdx
Illustrates launching the Notepad application and waiting for it to close before proceeding. This is useful for scenarios where a user needs to interact with an application and the subsequent steps depend on that interaction being finished.
```text
Executable file: C:\Windows\System32\notepad.exe
Timeout: 120
```