### 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 ```