General FAQs
Why can't I log into my account?
You may find yourself seemingly locked out, or questioning if you're using the right Username & Password. More often than not, it's as simple as using the wrong domain.
Ensure that you’re utilizing the correct domain login, I.e. Individual vs Enterprise.
If your trial has been expired for longer than 30 days without purchasing a license, it will be deleted. This could also explain why you're having trouble logging in.
Individual Cloud Customer Domain
Use the following URL: https://app.corellium.com/login
Enterprise Cloud Customer Domain Determine your enterprise domain then access the URL in the following format: https://your_enterprise_domain.enterprise.corellium.com/login.
Who can use Corellium?
Corellium has a strict vetting process to ensure that our platform is exclusively used for legitimate and lawful purposes. Individuals, organizations, and people in countries that are sanctioned by the US government are not eligible to sign-up for Corellium. Additionally, we have never sold any devices or services to clients that are known or suspected of developing tools used in hacking campaigns against ordinary citizens, journalists, or activists, and will never do so.
You can read more about how we vet our customers on the Corellium Blog.
Where does the Files app store files?
Customers sometimes need to test apps that incorporate multimedia or other file upload.
iOS Files app
The path on iOS isn't consistent, but it can be easily found.
- On iOS, open the Files app (not the Files tab on Corellium's web interface) and create a uniquely named directory. In our example, we use
dirsearchtest123
. - Open the Console tab on Corellium's web interface and search for the directory name.
find / -type d -name "dirsearchtest123" 2>/dev/null
- You should see a response such as:
/private/var/mobile/Containers/Shared/AppGroup/D66E0384-1D2E-4588-B8F9-6102D891808C/File Provider Storage/dirsearchtest123
Android Files app
On Android, the files are stored in the SD Card. Look in the appropriate directory under /mnt/sdcard/
.
What is CorelliumD?
Corellium adds a daemon called corelliumd
to Android and iOS devices. It also adds a helper application called com.corellium.CorelliumdHelper
to Android devices.
The corelliumd
daemon enables handy utilities such as keyboard passthrough for virtual devices, meaning you can type on your host keyboard and have it appear on the virtual device
These daemons also collect certain information from the VM to enable functionality for the Apps and Files features. This information is only used in Apps and Files and is not transmitted to Corellium.
iOS devices can be created without the corelliumd
daemon, but Apps and Files will not be available on such devices.
Why am I seeing "Unknown Error has occured on this virtual device"?
This error typically occurs when the network settings aren’t quite right.
Please review our network setup guide.
How to find your UDID from an unsigned IPA
To find the provisioned device UDIDs from an .ipa
, you can use the script below. Intended for macOS, leverages the macOS Security
framework.
Simply put your .ipa
somewhere on your local disk, and execute the script to extract the UDIDs.
./get_udids.sh /path/to/application.ipa
#!/bin/bash
# Extracts and displays device UDIDs from an IPA's provisioning profile (macOS only)
IPA=$1
PROVISION=$(unzip -Z1 "${IPA}" | grep embedded.mobileprovision)
if [ -z "${PROVISION}" ]
then
echo "[!] unable to find provisioning profile"
exit 1
fi
echo "[+] found provisioning profile at ${PROVISION}"
unzip -p "${IPA}" "${PROVISION}" | security cms -D > /tmp/embedded.mobileprovision
echo "[+] UDIDs:"
awk '/ProvisionedDevice/, /\/array/' /tmp/embedded.mobileprovision | awk -F'<string>|<\/string>' '$0=$2'
rm /tmp/embedded.mobileprovision
Why does the device screen keep disconnecting
Make sure that no other users are viewing the device at the same time. Currently, only one user can be connected to the device display at a time.
Why does my VPN keep disconnecting?
The VPN is only active when at least one device in the project is in the 'On' state. If all devices are off, or if no devices exist in the project, then the VPN will disconnect. It will reconnect when a device in that project turns on.
How do I check if Corellium's servers are operational?
You can check if the Corellium main website, platform components, and API are operational on our live StatusPage.
Sign up for notifications by email, text, Slack, Atom, or RSS. You will also find a link to our support page (which you're on now) where you can chat with a human.
I changed my IP settings but the server is still using my old IP settings
If you change your IP settings, you have to delete all existing projects. The IP ranges assigned to projects are determined at the time of the project’s creation, so the change in IP settings doesn’t propagate for projects already existing at the time of change.
How do I copy and paste to my virtual devices?
Due to limitations of specific browsers, pasting to a virtual device works in Safari but doesn’t work in Firefox, while copying from a virtual device works on Firefox but doesn’t work in Safari. Copy / Paste to and from the device works on Chrome.
How do I take screenshots?
You can simulate taking screenshots on both our iPhone and Android virtual machines.
iPhone Screenshots
You can take screenshots utilizing AssistiveTouch from the interface of the virtual machine.
Alternatively, you take a screenshot using our API with the virtual hardware buttons. Please review our helpful Holding Down Two Virtual Hardware Buttons Corellium Support article.
Android Screenshots
- Visit the Console screen
- Hit
Enter
- Run
input keyevent KEYCODE_SYSRQ
. This will simulate a screenshot, and the image will be stored in Photos.
How do I execute multitouch commands?
There is no multitouch workaround for Android yet. If you know of one, please email [email protected].
For Apple devices, you can replicate multitouch commands via the built in accessibility tool:
- Open the settings app.
- Open Accessibility.
- Scroll to Physical and Motor, Touch.
- Select AssistiveTouch.
- Turn on AssistiveTouch.
From here, you can also create custom actions and record new gestures to execute the commands you need. Once AssistiveTouch is active, all you need to do to execute these commands is to click the node and choose the command you need.
How do I simulate a panic?
To simulate a panic on an iOS device, open the Device's Console tab and run the following command:
simulatepanic
This will simulate a panic on the device. Alternatively, you can also simulate a panic by sending a signal to the init process. For example, you can run the following command:
kill -11 1
This sends the signal number 11 to the process with process ID 1. Signal number 11 is SIGSEGV, which stands for "segmentation fault." This signal typically indicates that a process has tried to access a memory segment that it's not allowed to, which often leads to the process being terminated abnormally.
Process ID 1 refers to the init process, which is the first process started during the booting of the system and has special responsibilities like managing other system processes. The init process is a critical component of the system, and it generally has protections against being terminated by signals that could disrupt system stability.
Do Corellium Android devices support AT commands?
We support the subset of AT commands that are needed by the Goldfish modem virtual hardware.
For more information, please see https://atcommands.org.
Please contact our support team to request support for additional commands.
Why doesn't Corellium work properly on my browser?
The Corellium platform currently supports the latest versions (evergreen) of:
- Apple Safari
- Google Chrome
- Mozilla Firefox
- Microsoft Edge
Other browsers may be supported, as long as they support H.264 video. However, we recommend using one of the browsers listed above for the best experience. It is possible that if you are using a beta release that is causing an issue. If this is the case, try a general release version of your browser.
Can I virtualize my IoT device?
Yes. Billions of IoT devices have drastically increased the demand for scalable and advanced security testing tools. That's why we’re offering custom device modeling services to IoT vendors, to create custom virtual models of everything from routers to smart speakers.
You can learn more about Custom Devices on Corellium or check out Arm Virtual Hardware.
Why can't I connect to my display?
For an optimal experience, please ensure you are using a supported browser. Additionally, certain enterprise network firewall settings can prevent the display from connecting properly, resulting in a black or grey screen.
Troubleshooting the WebRTC Connection
If you see a message saying "we cannot establish a webrtc stream," there is likely an issue with the STUN/TURN connections.
Follow these steps to troubleshoot:
- Make sure the error reproduces across multiple supported browsers. (If the error is only occurring on certain browsers, try restoring the browser's default settings.)
- Open Chrome with all other tabs closed and navigate to the built-in WebRTC analysis tool
chrome://webrtc-internals
. - On a new tab, log in to Corellium and open a device that is turned on.
- After opening your device, you should see the WebRTC-Internals tab fill up with information.
- Inspect the WebRTC-Internals results. If you notice any errors being reported on this page, please expand those events and investigate.
- Save the results as a JSON file by clicking Create a WebRTC-Internals dump at the top-left then clicking the Download button. You can share this file with your IT department or with Corellium support for further troubleshooting.
In most cases, a firewall setting will block a particular port or range of ports that are required for our display server. Your network administrator may be able to assist in troubleshooting these network settings.
Additional Cloud Troubleshooting
This section is intended for customers using Corellium's Cloud SaaS solution.
Please check if your network firewall or proxy is blocking stun.corellium.com
. TURN does not require any ports other than 80 and 443; however, certain types of network proxies can interfere with TURN.
If your firewall and/or proxy is blocking stun.corellium.com
, you might see an Error 701.
STUN binding request timed out.
url: turns:stun.corellium.com, TURN allocate request timed out.
TURN host lookup received error.
Additional On-Site Troubleshooting
This section is intended for customers using an On-Site Corellium appliance.
Please confirm that the following ports are not blocked between the browser and the Corellium server:
- 22
- 443
- 8086
- 8088
- 27820
- 27821
Check the configuration
Your configuration is stored under /etc/turnserver.conf
. Make note of your:
realm
, such as stun.corellium.abcdefg.comincoming-port
, which defaults to 27820alternate-port
, which defaults to 27821
Check the logs
Check the system logs for errors.
journalctl -u turnserver -S "1 hour ago"
You may see a response showing the realm, the local IP/port, and the remote IP/port:
May 3 21:48:24 abcdefg-1 turnserver: 365: session 000000000000000000: closed (2nd stage), user <webrtc:0000000000> realm <stun.corellium.abcdefg.com> origin <>, local 10.0.0.0:27820, remote 10.0.0.0:53046, reason: TCP connection closed by client (callback)