the one thing linux really hasnt been made on par with winblows yet is the dreadful amount of options for android simulation -the most popular choice seems to be Waydroid, but its such an unneeded hassle to set up at all -genymotion is just slow -and than you have things like android x86 which entirely defeat the point of an emulator

    • lemmyvore@feddit.nl
      link
      fedilink
      English
      arrow-up
      6
      ·
      1 year ago

      What would you put in the VM? Each Android ROM is highly hardware dependent and each device’s internal storage is highly fragmented into a couple dozen partitions configured in proprietary formats.

      Theoretically a GSI ROM is supposed to be hardware-independent thanks to Treble but you would still need a common base to go with any GSI ROM and I’m not sure a generic one has been made specifically for use in a VM.

      • drwankingstein@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year ago

        What would you put in the VM? Each Android ROM is highly hardware dependent and each device’s internal storage is highly fragmented into a couple dozen partitions configured in proprietary formats.

        Android x86 and derivatives are as generic as possible, like any other linux ISO you can flash it to most any computer assuming the kernel is new enough, Bliss OS is up to date with the latest LTS kernel based on xanmod, and android 12L

        • drwankingstein@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          2
          arrow-down
          1
          ·
          1 year ago

          no it isn’t, it isnt that at all, that is so far off the mark it’s extraordinary. Android x86 is as it’s name implies, a generic x86 iso. you can install it to physical hardware or a VMM equally the same, in fact, it’s literally the exact opposite of highly customized.

          it’s explicitly as generic as it can be

          • Square Singer@feddit.de
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            Apparently you never had a look at it. Getting Android to run on x86 is by far not trivial these days. To make it work, Android-x86 has a lot of modifications over AOSP, including drivers, HAL and a lot more.

            Just checkout their Git to see what they had to do to get it working.

            • drwankingstein@lemmy.dbzer0.com
              link
              fedilink
              English
              arrow-up
              1
              ·
              1 year ago

              I am intimately familiar, it is not highly customized for VMs, it is as generic as it can be. a lot of work was put into making it work on x86 as a whole, but not just VMs.

                • drwankingstein@lemmy.dbzer0.com
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  arrow-down
                  1
                  ·
                  1 year ago

                  Yes. Many. Blisslabs has partnerd with EIDU to work on tablets for low income countries. I personally have sold android boxes with Bliss. Ax86 has a large number of sponsors that are/were casinos. There are people working on using it in cars. 2-In-1s. ETC.

                  VMs are the minority use case…

    • drwankingstein@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 year ago

      nearly all android emulators are VMs, usually vbox, common ones include bluestacks memuplay. WSA uses hyper-v infranstructure. GooglePlay Games uses crosvm

      • On Windows, yes, on Linux the common way to run Android apps is to use standard LXC containers through Anbox, Waydroid, and their forks. You can run an emulator but there’s usually no reason to because Android can just as easily make use of the existing Linux kernel without all of the overhead.

      • X3I@lemmy.x3i.tech
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        No, qemu can run ARM images with ease. If I recall correctly, waydroid is using that approach

        • 520@kbin.social
          link
          fedilink
          arrow-up
          3
          ·
          1 year ago

          There’s a bit more to an emulator than simply running Android on x86 hardware.

          • drwankingstein@lemmy.dbzer0.com
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 year ago

            not really no. I mean, sure you could add a fancy gui on top of it. but 90% of android emulators are some kind of android x86 + libhoudini/ndk + vmm. some modify surfaceflinger so that each application will render to it’s own window, but usually it’s just disabling launcher, and sending some kind of command to open the app from a gui (IE. sending adb launch commands)

            • 520@kbin.social
              link
              fedilink
              arrow-up
              2
              ·
              edit-2
              1 year ago

              Yes and no.

              In general it is true that an emulator just needs to translate instructions, but for things like games and the Android operating system, your emulator also needs to use whatever hardware acceleration you have or it will run like dogshit.

              Android makes extensive use of graphical acceleration to the point where it is a mandatory requirement. There is no part of the UI that doesn’t use hardware acceleration.

              Luckily Android uses OpenGL ES, and there are means to translate that into Vulkan without too much issue.

              But what you’re talking about is virtualisation for the most part - the only thing arguably doing any actual emulation in your scenario is libhoudini. Otherwise, there isn’t any translation of instructions - The Android VM instructions get executed directly on Ring 0 of the CPU

              • drwankingstein@lemmy.dbzer0.com
                link
                fedilink
                English
                arrow-up
                1
                ·
                edit-2
                1 year ago

                whatever hardware acceleration you have or it will run like dogshit.

                and? vbox, qemu, hyperv and vmware, all have gpu acceleration to a degree. Qemu will also be getting vulkan acceleration soon

                EDIT: forgot crosvm (google play games) which does too

                • 520@kbin.social
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  edit-2
                  1 year ago

                  And therefore it means that in addition to doing translation work, they themselves need to implement hardware acceleration. That’s why you see many game emulators requiring DirectX even if the console in question never used it.

                  Oh, and 4 of the 5 products you mentioned are not emulators. Of the 5, only QEMU is fully capable of emulation. There is a massive and important difference between virtual machines and emulation.

                  • drwankingstein@lemmy.dbzer0.com
                    link
                    fedilink
                    English
                    arrow-up
                    1
                    ·
                    edit-2
                    1 year ago

                    nearly every single emulator, for Windows is a VM pretty much. Blue stacks, memuplay, WSA, Google Play games.

                    no, there is no difference between virtualization and emulation. virtualizations just hardware accelerated emulation. That’s it. If you use blue stacks and call it emulation, because it’s emulation, all the sudden it’s not emulation because it’s virtualization?

                    If that is the bar, then there are incredibly few Android emulators. Yes some Android emulators, or rather virtualizers, do implement some custom GPU acceleration stuff. but not all, Google Play games uses CrossVM with vulkan cereal, WSA uses their weird stack. genymotion IIRC uses virgl, so does qemu.

                    EDIT: by the way, with VirtualBox VMware so and so forth, you are still emulating. you are emulating NICs, oftentimes you are emulating GPU, you are emulating storage controllers, you are emulating PCI controllers, so on and so forth.

            • Because of Nvidias’s shitty drivers, I’ve run Android emulators without hardware acceleration for a while. I wouldn’t recommend it. Everything is slow and janky and some apps misbehave because they can’t cope with the broken timing of their animations.