Mobile forensics learning utilities

Troubleshooting

Find the symptom, try the listed fix, and check the expected result. Start with the first fix and stop when the application works.

Android Analysis StudioiPhone Forensics Studio
Showing all problems

Start here

These checks solve most setup and connection failures.

Android quick reset

  1. Use desktop Chrome or Edge and open the page directly over HTTPS.
  2. Unlock the phone; enable Developer options and USB debugging.
  3. Use a data cable, select File transfer, and connect directly to the computer.
  4. Close Android Studio and other ADB tools. Run adb kill-server if ADB is installed.
  5. Connect in the page and approve Allow USB debugging on the phone.

iPhone quick reset

  1. Extract the complete ZIP; do not run it from the ZIP preview.
  2. Open a terminal in the folder containing Start_iPhone_Studio.py.
  3. Run each setup command separately and use the same .venv Python throughout.
  4. Keep the launcher terminal open and use the new 127.0.0.1 page it opens.
  5. Unlock the iPhone, use a data cable, and approve Trust This Computer.

Android Analysis Studio

If this is the problem, try the fix directly below it.

AndroidBrowserThe page says “WebUSB unavailable.”
Try this
  1. Open the page in desktop Google Chrome or Microsoft Edge.
  2. Do not use Firefox, Safari, an in-app browser, or a phone browser.
  3. Open the page directly, rather than inside an LMS or website preview frame.
  4. Confirm the address begins with https:// or is served from localhost.
Expected: The Connect page reports WebUSB as Available.
AndroidPage setupThe page says “Secure context: No” or USB is blocked by page policy.
Try this

Use the hosted HTTPS page. For a downloaded copy, serve it locally instead of opening an insecure remote HTTP page:

py -m http.server 8000 --bind 127.0.0.1

Then open http://localhost:8000/Android_Analysis_Studio.html. If the page is embedded, open it in its own tab. A site administrator hosting the page may need the response header Permissions-Policy: usb=(self).

Expected: Secure context shows Yes and Page context shows Top-level page.
AndroidUSB engine“USB engine could not initialize” or “Embedded USB engine is missing.”
Try this
  1. Download a fresh, complete copy of the HTML application.
  2. Do not edit, copy only part of, or save the page through a document editor.
  3. Reload with Ctrl+F5, check the authorization box, and select Load USB engine.
  4. If an institutional browser modifies large HTML files, use the hosted copy.
Expected: The button changes to “USB engine ready.”
AndroidConnectionThe phone does not appear in the browser’s USB chooser.
Try this
  1. Unlock the phone and enable Developer options → USB debugging.
  2. Use a cable that supports data, not charging only.
  3. Connect directly to another USB port; remove hubs and docks.
  4. Set the phone’s USB preference to File transfer / Android Auto.
  5. On Windows, check Device Manager and install the manufacturer’s official ADB USB driver if required.
Expected: The chooser lists an Android ADB interface or the phone model.
AndroidConnection“Unable to claim interface,” “device already in use,” or “Access denied.”
Try this
  1. Close Android Studio, phone-management software, other WebADB tabs, and command windows using the phone.
  2. If Android Platform Tools are installed, run:
adb kill-server
  1. Disconnect and reconnect the cable, then retry the webpage.
  2. On Linux, verify the user’s USB/udev permissions. Do not run the entire browser as root.
Expected: The application advances from “opening USB interface” to “ADB authorization.”
AndroidAuthorization“ADB authorization timed out.”
Try this
  1. Disconnect the phone and keep its screen unlocked and awake.
  2. Open Developer options and select Revoke USB debugging authorizations.
  3. Turn USB debugging off, wait five seconds, and turn it on again.
  4. Close other ADB tools and run adb kill-server if available.
  5. Reconnect, select the phone in the page, and immediately approve Allow USB debugging on the phone.
The browser’s USB permission is only the first approval. Android must separately approve the webpage’s temporary ADB key.
Expected: The page reports “Connected and authorized.”
AndroidAuthorizationThe “Allow USB debugging?” prompt never appears on the phone.
Try this
  1. Unlock the phone to its Home screen and lengthen the screen timeout.
  2. Revoke USB debugging authorizations, then toggle USB debugging off and on.
  3. Change USB mode to File transfer and reconnect while the webpage is waiting.
  4. Try another known-good data cable and a direct USB port.
  5. On Samsung, check whether Auto Blocker is blocking USB commands.
  6. Restart the phone if the prompt still does not appear.
Expected: The phone displays the RSA fingerprint authorization prompt.
AndroidSamsungA Samsung phone charges but will not allow debugging.
Try this
  1. Confirm USB debugging is enabled in Developer options.
  2. Open Settings → Security and privacy → Auto Blocker.
  3. On an authorized training phone, temporarily turn off the feature that blocks USB commands.
  4. Reconnect, authorize the session, and restore the security setting when the exercise ends.
Expected: The phone exposes its ADB interface and displays the authorization prompt.
AndroidConnectionThe phone connects and then immediately disconnects.
Try this
  1. Replace the cable with a short, known-good data cable.
  2. Use a direct rear USB port on a desktop, or another port on a laptop.
  3. Keep the screen unlocked and prevent sleep during the lab.
  4. Close competing ADB and phone-sync applications.
  5. Disable USB power saving for the affected hub only if your organization permits it.
Expected: The status remains LIVE USB while commands are run.
AndroidCommandsA command says “permission denied,” returns blank output, or a property is unavailable.
Try this
  1. Confirm the phone is still connected and authorized.
  2. Try another allowed command such as id or getprop ro.product.model.
  3. Record the denied or unavailable result in the report.
  4. Do not root or unlock the phone merely to increase access.
Modern Android, work profiles, and manufacturer policy can limit what the shell user sees. Missing data means unknown; it does not prove absence.
AndroidCommandsA normal shell command such as cd, a pipe, or command chaining is rejected.
Try this

This application intentionally accepts only its listed read-oriented commands. Type help in the Command lab to see the allowlist. Use Files & hashes to browse the permitted shared folders.

Expected: Listed commands run; unsupported shell syntax remains blocked by design.
AndroidFilesA folder is empty, a file cannot be copied, or the browser blocks the download.
Try this
  1. Confirm the selected folder is in scope and shell-readable.
  2. Check the application’s 64 MiB per-file limit.
  3. Allow downloads for the site in the browser.
  4. Copy APK splits individually. Symlinks and special files are deliberately blocked.
  5. Record files that disappear or change during the live session.
Expected: A successful copy records byte count and SHA-256 and then offers a local download.
AndroidAuthorizationThe phone asks for authorization again after the page is refreshed.
Try this

This is expected. The application creates a temporary ADB key in page memory and discards it when the page closes or reloads. Approve the new prompt for the session you initiated. Avoid permanent trust on shared classroom computers.

Expected: Each fresh page session can require a new phone authorization.

iPhone Forensics Studio

Use the local Python page for a connected iPhone or full database analysis.

iPhoneInstallationThe launcher reports a missing file or module.
Try this
  1. Use Download local utility (complete ZIP) in the application.
  2. Select Extract All; do not run files from the ZIP preview.
  3. Confirm these are together: Start_iPhone_Studio.py, Check_Setup.py, forensic_core.py, iPhone_Forensics_Studio.html, and synthetic_backup.
  4. Open the terminal in that exact folder.
Expected: Check_Setup.py --self-test can locate all companion files.
iPhoneWindows path“The system cannot find the path specified” for .venv\Scripts\python.exe.
Try this
  1. In File Explorer, open the folder containing Start_iPhone_Studio.py.
  2. Click the address bar, type cmd, and press Enter.
  3. Run these lines separately:
py -3 --version py -3 -m venv .venv .\.venv\Scripts\python.exe Check_Setup.py --self-test
Expected: The .venv folder is created beside the Python files and the self-test starts.
iPhoneCommandsPython tries to open a path containing Start_iPhone_Studio.py\.venv\Scripts\python.exe.
Try this

Two commands were pasted together. Press Enter after each command and wait for it to finish:

.\.venv\Scripts\python.exe Check_Setup.py --self-test .\.venv\Scripts\python.exe Start_iPhone_Studio.py
Do not type the command prompt text or place the second command immediately after .py.
Expected: The first command completes; the second starts the local server.
iPhonePython“Python was not found” or python/py is not recognized.
Try this
  1. Install a stable desktop Python 3.11 or newer from python.org.
  2. Close and reopen Command Prompt after installation.
  3. Try py -3 --version. If that fails, try python --version.
  4. On Windows, turn off conflicting Microsoft Store execution aliases only when they redirect a valid Python command incorrectly.
Expected: A Python version of 3.11 or newer is printed.
iPhoneVirtual environmentCreating .venv fails or stops with an access/ensurepip error.
Try this
  1. Move the extracted application to a writable local folder such as Documents\iPhone_Forensics_Studio.
  2. Avoid running from the ZIP, a protected system folder, or a OneDrive folder that is still synchronizing.
  3. Confirm sufficient free disk space, then run py -3 -m venv .venv again.
  4. On Debian/Ubuntu, install the matching python3-venv package through the approved method.
Expected: .venv\Scripts\python.exe exists on Windows or .venv/bin/python exists on macOS/Linux.
iPhoneUSB dependencyThe USB package was installed, but the Studio still says it is missing.
Try this

The package was probably installed into a different Python environment. Stop the launcher with Ctrl+C, stay in the extracted folder, and run:

.\.venv\Scripts\python.exe -m pip install -r requirements-usb.txt .\.venv\Scripts\python.exe Check_Setup.py .\.venv\Scripts\python.exe Start_iPhone_Studio.py

On macOS/Linux, replace .\.venv\Scripts\python.exe with .venv/bin/python.

Expected: The setup check reports the USB dependency from the same environment used by the launcher.
iPhoneLocal helperThe website still says “BROWSER MODE” or “local helper not connected.”
Try this
  1. Start Start_iPhone_Studio.py and keep its terminal window open.
  2. Use the new browser page the launcher opens, whose address begins with http://127.0.0.1:.
  3. If no browser opens, copy the complete local address printed in the terminal and paste it into Chrome or Edge.
  4. Do not return to the public website for USB scanning.
Expected: The banner says LOCAL HELPER CONNECTED and the iPhone scan control becomes available after authorization is checked.
iPhoneScan button“Scan connected iPhones” is disabled or cannot be selected.
Try this
  1. Confirm you are using the 127.0.0.1 page opened by the Python launcher.
  2. Confirm the page shows LOCAL HELPER CONNECTED.
  3. Open Connect iPhone.
  4. Read and check the examination-authorization checkbox.
  5. Confirm the USB dependency passes Check_Setup.py.
Expected: The scan button becomes enabled.
iPhoneConnectionThe scan runs, but no iPhone is listed.
Try this
  1. Unlock the iPhone and connect it with a data-capable cable.
  2. Try another direct USB port and cable; remove hubs.
  3. On Windows, confirm the iPhone appears in the current Apple Devices app and that Apple device services are installed.
  4. On macOS, approve Allow accessory to connect if shown.
  5. Close Apple Devices, iTunes, Finder device windows, and other tools that may be using the phone; then scan again.
  6. Review the launcher’s process log for device-library errors.
Expected: The Studio lists the phone’s identifier for selection.
iPhoneTrustThe “Trust This Computer?” prompt does not appear.
Try this
  1. Unlock the iPhone with its passcode and reconnect it.
  2. Read device information again in the Studio.
  3. Restart the iPhone and computer if the prompt remains absent.
  4. As a later step, go to Settings → General → Transfer or Reset iPhone → Reset → Reset Location & Privacy, then reconnect.
Reset Location & Privacy changes other privacy permissions too. Use it only on an authorized training phone and record the change.
Expected: The iPhone asks whether to trust the computer; select Trust and enter the phone passcode.
iPhoneTrustThe phone is listed, but reading device information or pairing fails.
Try this
  1. Keep the phone unlocked and respond to both computer and phone trust prompts.
  2. Disconnect, reconnect, and select the correct device identifier.
  3. Close competing backup and synchronization software.
  4. Verify the computer’s date and time are correct.
  5. Check for device-management policy that blocks pairing or backups.
  6. Read the process log and preserve the exact error.
Expected: Read device information completes before acquisition is attempted.
iPhoneLauncherThe launcher appears to hang, does nothing, or no browser opens.
Try this
  1. Look for a local address in the terminal. A running server normally waits quietly for browser requests.
  2. Copy the complete http://127.0.0.1:PORT/… address into the browser.
  3. If the terminal shows an error, stop with Ctrl+C and run Check_Setup.py --self-test.
  4. Close an older Studio process if the port is already in use, then relaunch.
  5. Allow loopback traffic if endpoint-security software blocks connections to 127.0.0.1.
Expected: The terminal remains open and the local browser page loads.
iPhoneAcquisitionThe logical backup fails, stops, or is cancelled.
Try this
  1. Keep the phone unlocked, connected, and awake.
  2. Confirm trust and read device information before starting the backup.
  3. Close Apple Devices, iTunes, Finder device windows, and competing forensic tools.
  4. Make sure the application drive has enough free space for the backup plus working copies.
  5. Read the job and process logs for the exact failing stage.
  6. Treat partial output as incomplete and retain its status with the case notes.
Expected: The job reports a completed backup and a valid output location before parsing begins.
iPhoneEncrypted backupAn encrypted backup produces no results with the independent core.
Try this

This is expected. The independent core does not decrypt encrypted backups. Use a separately configured compatible external parser and the known backup password through the launcher’s terminal workflow.

Do not disable backup encryption, reset a password, or alter the phone simply to make the core parser work.
iPhoneAnalysisMessages, calls, Safari, contacts, or another category is empty or unsupported.
Try this
  1. Check whether the backup is encrypted and whether analysis completed.
  2. Review Processing coverage, source inventory, sidecar warnings, and module errors.
  3. Confirm the expected database payload was included in the logical backup.
  4. Compare the result with a separately validated parser when necessary.
  5. Report the category as unavailable, empty, incomplete, or unsupported using the actual status.
A zero count does not prove that no activity occurred.
iPhoneMessagesA message’s text is blank or shows an attributed-body placeholder.
Try this

The text may be stored in an attributed-body archive or attachment that the independent core intentionally does not decode. Preserve the record ID and source, then compare it with the native output of a compatible external parser.

Expected: The absence is documented as a decoding limitation, not interpreted as an empty message.
iPhonePerformanceA large backup is very slow or reaches a source, row, or query limit.
Try this
  1. Review the job log to distinguish active hashing from a stalled operation.
  2. Stop the job if it has failed rather than repeatedly starting another copy.
  3. Use the Studio for its supported teaching-scale analysis.
  4. For large evidence sets, move to a separately validated native analysis workflow and preserve the Studio’s limits in the report.
No troubleshooting card matches that search. Try fewer words or select “All problems.”

Official help and application links