Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?

Hledám Android emulátor pro PC (x86). Nechci to na vývoj aplikací, ale jen na spouštění/provozování Android aplikací - takový virtuální mobil. Po googlení na netu jsem zjistil asi toto:

- Bluestacks and NOX asi nejdoporučovanější, ale nejsou pro Linux (ve Wine zřejmě nepojede jedno ani druhé)
- např. Android-x86 nabízí ke stažení iso takže by se dal dát do Qemu což by mě vyhovovalo.
- Pro Linux je doporučován Genymotion (někde jsem četl, že je lepší než Bluestacks), ale prý tam nefungují zakoupené aplikace
- Android Emulator. Nějak jsem nepochopil proč není nejpoužívanější když je to ofiko od Googlu. Je jen pro vývojáře nebo je na něm něco špatného?
- Jestli to chápu správně, tak téměř všechny ty emulátory pro PC jsou primárně pro spouštění aplikací, které vývojáři přeportovali z ARM na x86. Pokud daná appka nemá x86 verzi, tak budu nucen spustit arm verzi dané appky, takže by daný emulátor měl umět "ARM translation layer". Je to tak? U Android-x86 je to zřejmě tohle a u Genymotion čtu, že "Note as of November 25th, 2019: The above paragraph is outdated and ARM Emulation has been broken in Genymotion for a while, so you can't use ARM apps unless you get a really old version." takže tam to nyní nefunguje?

Nebudu to instalovat jako dual-boot, ale chci to jako virtuálku. Upřednostňují Qemu, ale nebráním se ani VirtualBoxu. Rád bych, aby v tom emulátoru fungovala počítačová klávesnice a myš a také 3D akcelerace, alespoň softwarová (např. VirGL), nejlépe hardwarová (vga-pass nebo Intel GVT-g) a také Google Play. S tím, že tam nebude fungovat Goole Pay jsem byl smířený, ale na GitHubu je dole koment, že by to mělo fungovat v Genymotion což mě překvapilo.

Na netu je spousta různých článků, který emulátor je nejlepší, často jsou v jednom článku jiné emulátory než v jiném, takže bych rád poprosil jestli je tady někdo kdo si zkoušením emulátorů již prošel, aby mě navedl správným směrem, abych hledáním nepromarnil mládí :). Předem díky za odpovědi.

Update: během psaní otázky jsem ještě hledal i na Rootu kde byl doporučován Android-x86, takže ho asi zítra vyzkouším v 64bitové verzi. Pokud s ním budou problémy tak pak zkusím close-source Genymotion. Pokud jste měli nějaké problémy s Android-x86, tak mi sem hoďte koment, abych se na to zaměřil. Díky.


Anbox

Mlocik97

  • *****
  • 893
  • Ubunťák, JS dev.
    • Zobrazit profil
    • E-mail
Ja už Anbox skúšal hodne dávno, ale docela by ma zaujímalo jak doň dostať bezpečne Google Play Store, ako našiel som 3rd stránky, ale tam nemám istotu či v tom není malware.

Ja už Anbox skúšal hodne dávno, ale docela by ma zaujímalo jak doň dostať bezpečne Google Play Store, ako našiel som 3rd stránky, ale tam nemám istotu či v tom není malware.
https://github.com/geeks-r-us/anbox-playstore-installer

Anbox
Na to jsem narazil. Jestli jsem pochopil správně, tak používá kernel hostitele + moduly kernelu. Jako ta filozofie se mi líbí, že je to takový Wine pro android appky, ale jak jsem viděl videa, tak to zatím působilo dost rozbitě.


_Jenda

  • *****
  • 1 601
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Já měl strašné problémy že třeba nešlo v té aplikaci zadat myší některá gesta a pak jsem se na to vybodnul. Pokud najdete něco funkčního (zkuste to třeba na aplikaci Mapy.cz), tak budu strašně rád, když se podělíte. Pro ARM binární věci dvojnásob.
Ja už Anbox skúšal hodne dávno, ale docela by ma zaujímalo jak doň dostať bezpečne Google Play Store, ako našiel som 3rd stránky, ale tam nemám istotu či v tom není malware.
Nainstaloval bych F-Droid a z něja Yalp store. Případně jednotlivé aplikace bych tahal přes apkpure. Oboje jsou věci, kterým se doufám dá celkem věřit díky popularitě (ale samozřejmě bankovnictví bych takhle neprovozoval).

Nainstaloval bych F-Droid a z něja Yalp store.
Yalp is dead --> Aurora.

Zkoušel jsem https://blissroms-x86.github.io/index.html a fungovalo to velmi rychle ;-)


a také 3D akcelerace[/b], alespoň softwarová (např. VirGL),


A ona softwarová akcelerace je v něčem lepší než žádná? A v čem je horší než hardwarová?

a také 3D akcelerace[/b], alespoň softwarová (např. VirGL),
A ona softwarová akcelerace je v něčem lepší než žádná? A v čem je horší než hardwarová?
Když má OS přístup ke GPU, tak bude GUI samozřejmě plynulejší než když to bude vše přepočítávat CPU.

žádná akcelerace: nefungovaly by appky vyžadující akceleraci
softwarová akcelerace: Google SwiftShader
napůl softwarová (guestOS využívá GPU z hostOS): Virgl
hardwarová (guestOS má přímý přístup k celé nebo jen k části GPU): VGA-passthroug/Intel-GVT

Výkonostně seřazeno od nejpomalejší po nejrychlejší.

Co jsem zatím zkoušel pár náhodných her v Android-x86, tak to utáhla i ta Google SwiftShader, ale šlo poznat, že to je méně plynulé než u Virglu. I samotné prostředí OS bylo méně plynulé.

Zkoušel jsem https://blissroms-x86.github.io/index.html a fungovalo to velmi rychle ;-)
Dík za tip. U Android-x86 se potýkám s problémem u aplikací určených pro ARM (říkají tomu Enable Native Bridge). Zkusil jsem pár náhodných her.

Třeba tohle funguje naprosto plynule:
Angry Birds Classic 6.0.1 (arm + arm-v7a) (Android 2.3+)
Gods of Rome 1.9.6a (arm64-v8a + arm-v7a) (Android 4.0.3+)


Ale tyhle nefungují:
Angry Birds Friends 8.2.0 (arm64-v8a + arm-v7a) (Android 4.4+) - spustí se, proklikám se až do hry, ale nefunguje natahování praku, ostatní tlačítka ve hře fungují.
Overdrive City – Car Tycoon Game v0.8.34.vc83400.rev51046.b94.release (arm-v7a) (Android 4.4+) - objeví se logo, pak úvodní obrazovka a pak to spadne.
LEGO® Legacy: Heroes Unboxed 1.0.8 (arm-v7a) - objeví se úvodní obrazovka hry a dál se nedostanu.
Plants vs. Zombies FREE 2.9.01 (arm64-v8a + arm-v7a) (Android 4.1+) - jde zadat jméno hráče, ale klikání na "play" nefunguje.
Občas dané appky i spadly a občas resetovaly i celý android. Vypadá to, že problém je především s appkami sestavenými pro arm-v7a. Zkusím ještě jiné OS, ale zas bych nechtěl, aby to bylo plné adware.

PS: Testovány verze Adroid-x86 9.0-r1, 8.1-r3, 7.1-r3 (32 i 64bit) bez 3D akcelerace, s Virglem i s VGA-pass Nvidie. Nebýt problému s arm-v7a, tak verze 7.1 by byla jasná volba - ze všech tří byla nejstabilnější. U verze 9 byly problémy i se samotným GUI OS, třeba nefungovala maximalizace okna.
« Poslední změna: 01. 03. 2020, 17:25:41 od LarryLin »

_Jenda

  • *****
  • 1 601
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
To spouštíš v Qemu/KVM? Umíš tomu udělat kameru?

To spouštíš v Qemu/KVM? Umíš tomu udělat kameru?
Ano v Qemu/KVM. Záleží jak to přesně myslíš, předat např. usb kameru z hostOS do Qemu (guestOS) není problém, ale nevím jestli jsou v Androidu nějaké appky/ovladače, které by s tou kamerou dokázaly pracovat. Zatím jsem nic takového nezkoušel.

_Jenda

  • *****
  • 1 601
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
OK, díky. Jeden z use-cases je spouštět appky které strašně chtějí načítat QR kódy z kamery (například všelijaká ta sdílená kola; vidíte, takže to ještě bude chtít GPS, aaargh, kašlat na to). Zkoušel jsem ve virtualboxu Android-x86, USB kameru to úspěšně našlo, ale při pokusu o čtení se ukáže kousek obrazu a pak to zatuhne. Ale to bude nějaký problém v USB forwardu virtualboxu (ano, používám extension pack).

Jinak jak jsem si stěžoval na nemožnost udělat některá gesta, tak to vypadá, že dvojprst se udělá jako dvojklik kde nepustíte myšítko a táhnete nahoru/dolu.

Zkoušel jsem ještě znovu Angry Birds Friends 8.2.0 (arm64-v8a + arm-v7a) (Android 4.4+):
- s BlissOS , PrimeOS (BETA), Android-x86 7.1-r3 (vše 64bit) vytuhne hned na úvodní obrazovce
- s Android-x86 7.1-r3 (32bit) funguje, pouze nejde natáhnout prak (zkoušel jsem v Qemu nastavit virtuální usb-mouse, usb-tablet, virtio-tablet, virtio-mouse-pci, ale nic nepomohlo)

Zřejmě to funguje tak, že na 64bit OS je Houdini také 64bit a ten spouští arm64-v8a verzi hry a na 32bit OS je Houdini 32bit a ten spouští zase arm-v7a verzi hry.


Bliss mě připadal jen přebarvený Android-x86 9.0 se všemi chybami v GUI - problémy s maximalizací nebo s klikáním na buttony (muselo se klikat nalevo - např. u tlačítka "OK" nefungovalo kliknutí na "K", muselo kliknout na "O", kalibrace nepomohla).

Prime OS byl ergonomicky asi nejlepší ze všech (nejvíc se podobal práci s okny na desktopu).

Ani v Blissu, ani v Prime OS nefungoval Virgl.

Jak jsem pročetl různé fóra, tak to vypadá, že není žádná jiná překladová vrstva z ARM do x86 než Houdini a ta je vykuchaná z ChromeOS. Někde na fóru jsem četl, že BlissOS používá jinou verzi Houdini než Android-x86, ale výsledek mě připadal stejný. Takže asi poslední varianta je zkusit CloudReady (upravený ChromeOS) jestli tam bude překlad z ARM do x86 v něčem lepší.