cuttlefish

VMware: Virtualized Intel VT-x/EPT is not supported on this platform (SOLVED)

I had to allow nested virtualization to run an emulator on top of the guest Linux VM in VMware.
I run Windows 11 PRO host on Intel 12 generation CPU machine. Just checking the nested virtualization box in VMware VM config was not enough:

With this box switched on, when trying to run the VM I was getting that error: Virtualized Intel VT-x/EPT is not supported on this platform.

If you experience the same error here is what I did to make it work on my machine:

1. Open Windows Features and check that both Hyper-V and Windows Hypervisor Platform are not checked (OFF)

    Some sources state that you might need to disable Windows Sandbox as well, but for me it was not required.

    2. Search for “Core Isolation” in Windows search box. Make sure that Memory Integrity is set OFF

    3. Open command line terminal (type “cmd” in the search box) as Administrator and run:

    msinfo32/system

    Click on System Summary and at the right-hand window look for “Virtualization-based Security”

    Mine was showing “Running”. “Not enabled” that is displayed at the above screenshot is the desired result which I get after making the changes listed here.

    If you are seeing “Running” in the above screenshot it is OK. Just follow the below steps to change it.

    4. In the same ‘cmd’ window, run:

    bcdedit /enum {current}

    and check the status of hypervisor. If it is not showing “off”, run:

    bcdedit /set hypervisorlaunchtype off

    5. Run Power Shell as an Administrator and enter there:

    Disable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
    Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

    6. Reboot. When rebooting, check that your BIOS is set to support nested virtualization

    7. Run again “cmd” and call for

    msinfo32/system

    it should now say “Virtualization-based Security”: Not Enabled

    8. Run your VM with nested virtualization switched on.
    It should now work. Enjoy!

    References

    Some incomplete information is available here

    VMware: Virtualized Intel VT-x/EPT is not supported on this platform (SOLVED) Read More »

    The Benefits and Drawbacks of Using Cuttlefish for Running Android Apps

    In the world of Android app development and testing, having a reliable and efficient emulator is crucial. Cuttlefish, a virtual Android device developed by Google, has been gaining attention for its unique features and capabilities. In this blog post, we’ll explore why you should consider installing Cuttlefish for running Android apps and compare its advantages and disadvantages with other popular emulators like Goldfish and Genymotion.

    What is Cuttlefish?

    Cuttlefish is a configurable virtual Android device that can run both remotely (using third-party cloud offerings such as Google Cloud Engine) and locally (on Linux x86 and ARM64 machines). It aims to replicate the framework-based behavior of a real device with high fidelity, making it an ideal choice for developers who need a virtual device that closely mirrors physical hardware.

    Advantages of Cuttlefish

    1. High Fidelity: Cuttlefish guarantees full fidelity with the Android framework, ensuring that it behaves just like a physical device. This is particularly useful for testing custom platform/framework code or the latest Android versions.
    2. Scalability: It allows running multiple devices in parallel, enabling concurrent test execution with high fidelity at a lower cost of entry.
    3. Configurability: Cuttlefish offers the ability to adjust form factors, RAM, CPUs, and other parameters, providing a flexible testing environment.
    4. Cloud and Local Support: It can be run both locally and in the cloud, offering flexibility depending on your infrastructure.
    5. Open Source: Being part of the Android Open Source Project (AOSP), Cuttlefish is open source, allowing developers to customize and extend its capabilities.

    Disadvantages of Cuttlefish

    1. Linux-Only: Cuttlefish is designed to run on Linux, specifically Debian-based distributions like Ubuntu. This can be a limitation for developers using other operating systems.
    2. Complex Setup: Setting up Cuttlefish can be more complex compared to other emulators, requiring knowledge of Linux shell commands and virtualization technologies.
    3. Resource Intensive: Running Cuttlefish requires significant system resources, including at least 16 GB of RAM and 200 GB of disk space.

    Goldfish vs. Genymotion


    Goldfish:

    • Advantages: Goldfish, the emulator that comes with Android Studio, is optimized for app development and is easy to set up and use. It integrates well with Android Studio and supports a wide range of Android versions.
    • Disadvantages: Goldfish may not be suitable for testing custom platform code or the latest Android versions. It lacks the high fidelity and configurability that Cuttlefish offers.

    Genymotion:

    • Advantages: Genymotion is known for its speed and ease of use. It offers a wide range of device configurations and supports various network profiles, making it a versatile choice for app testing.
    • Disadvantages: Genymotion requires a subscription for full features and depends on VirtualBox, which can add an extra layer of complexity. Additionally, it may not support the latest Android versions as quickly as Cuttlefish.

    Conclusion
    Cuttlefish stands out as a powerful and flexible emulator for Android app development and testing, especially for those who need high fidelity and configurability. While it has some limitations, such as being Linux-only and resource-intensive, its advantages make it a compelling choice for developers working with custom Android platforms or the latest Android versions. By understanding the strengths and weaknesses of Cuttlefish compared to Goldfish and Genymotion, you can make an informed decision about which emulator best suits your needs.

    The Benefits and Drawbacks of Using Cuttlefish for Running Android Apps Read More »