Fórum Root.cz

Hlavní témata => Software => Téma založeno: LarryLin kdy 27. 02. 2020, 19:44:22

Název: Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: LarryLin kdy 27. 02. 2020, 19:44:22
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 (https://appdb.winehq.org/objectManager.php?sClass=application&iId=17708) ani druhé (https://appdb.winehq.org/objectManager.php?sClass=application&iId=13717))
- 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 (https://www.genymotion.com/) (někde jsem četl, že je lepší než Bluestacks), ale prý (https://www.reddit.com/r/linux4noobs/comments/bnfq09/how_do_i_install_bluestacks_using_wine/en8fh5r/) tam nefungují zakoupené aplikace
- Android Emulator (https://developer.android.com/studio/run/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 (https://github.com/Rprop/libhoudini) a u Genymotion čtu (https://emulation.gametechwiki.com/index.php/Android_emulators), ž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 (https://github.com/tipsi/tipsi-stripe/issues/356), ž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 (https://forum.root.cz/index.php?topic=20877.0) kde byl doporučován Android-x86 (https://www.android-x86.org/), 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.
Název: Re:Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: okalousek kdy 27. 02. 2020, 20:07:40
Anbox
Název: Re:Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: Mlocik97 kdy 27. 02. 2020, 20:10:55
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.
Název: Re:Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: okalousek kdy 27. 02. 2020, 20:13:06
Citace od: Gabriel Mlocik kdy 27. 02. 2020, 20:10:55
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
Název: Re:Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: LarryLin kdy 27. 02. 2020, 21:33:35
Citace od: okalousek kdy 27. 02. 2020, 20:07:40
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ě.
Název: Re:Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: _Jenda kdy 27. 02. 2020, 22:04:30
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.
Citace od: Gabriel Mlocik kdy 27. 02. 2020, 20:10:55
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).
Název: Re:Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: dirka12345 kdy 27. 02. 2020, 22:32:43
Citace od: _Jenda kdy 27. 02. 2020, 22:04:30
Nainstaloval bych F-Droid a z něja Yalp store.
Yalp is dead --> Aurora.
Název: Re:Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: tkalisch kdy 28. 02. 2020, 20:09:24
Zkoušel jsem https://blissroms-x86.github.io/index.html a fungovalo to velmi rychle ;-)
Název: Re:Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: Ħαℓ₸℮ℵ ␏⫢ ⦚ » kdy 28. 02. 2020, 21:14:29
Citace od: LarryLin kdy 27. 02. 2020, 19:44:22

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á?
Název: Re:Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: LarryLin kdy 29. 02. 2020, 23:54:10
Citace od: Pivotal kdy 28. 02. 2020, 21:14:29
Citace od: LarryLin kdy 27. 02. 2020, 19:44:22
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é.
Název: Re:Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: LarryLin kdy 01. 03. 2020, 17:22:27
Citace od: tkalisch kdy 28. 02. 2020, 20:09:24
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+) (https://www.apkmirror.com/apk/rovio-entertainment-corporation/angry-birds/angry-birds-6-0-1-release/angry-birds-6-0-1-android-apk-download/)
Gods of Rome 1.9.6a (arm64-v8a + arm-v7a) (Android 4.0.3+) (https://www.apkmirror.com/apk/gameloft/gods-of-rome/gods-of-rome-1-9-6a-release/gods-of-rome-1-9-6a-android-apk-download/)


Ale tyhle nefungují:
Angry Birds Friends 8.2.0 (arm64-v8a + arm-v7a) (Android 4.4+) (https://www.apkmirror.com/apk/rovio-entertainment-corporation/angry-birds-friends/angry-birds-friends-8-2-0-release/angry-birds-friends-8-2-0-2-android-apk-download/) - 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+) (https://www.apkmirror.com/apk/gameloft/overdrive-city/overdrive-city-v0-8-34-vc83400-rev51046-b94-release-release/overdrive-city-car-tycoon-game-v0-8-34-vc83400-rev51046-b94-release-android-apk-download/) - objeví se logo, pak úvodní obrazovka a pak to spadne.
LEGO® Legacy: Heroes Unboxed 1.0.8 (arm-v7a) (https://www.apkmirror.com/apk/gameloft/lego-legacy-heroes-unboxed/lego-legacy-heroes-unboxed-1-0-8-release/lego-legacy-heroes-unboxed-1-0-8-2-android-apk-download/) - objeví se úvodní obrazovka hry a dál se nedostanu.
Plants vs. Zombies FREE 2.9.01 (arm64-v8a + arm-v7a) (Android 4.1+) (https://www.apkmirror.com/apk/electronic-arts/plants-vs-zombies-free/plants-vs-zombies-free-2-9-01-release/plants-vs-zombies-free-2-9-01-android-apk-download/) - 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 (https://www.reddit.com/r/Androidx86/comments/d12q1x/why_wont_armeabiv7a_apps_run_on_my_device/). 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.
Název: Re:Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: _Jenda kdy 01. 03. 2020, 19:24:41
To spouštíš v Qemu/KVM? Umíš tomu udělat kameru?
Název: Re:Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: LarryLin kdy 01. 03. 2020, 19:52:20
Citace od: _Jenda kdy 01. 03. 2020, 19:24:41
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.
Název: Re:Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: _Jenda kdy 01. 03. 2020, 23:12:11
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.
Název: Re:Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: LarryLin kdy 02. 03. 2020, 14:43:15
Zkoušel jsem ještě znovu Angry Birds Friends 8.2.0 (arm64-v8a + arm-v7a) (Android 4.4+) (https://www.apkmirror.com/apk/rovio-entertainment-corporation/angry-birds-friends/angry-birds-friends-8-2-0-release/angry-birds-friends-8-2-0-2-android-apk-download/):
- s BlissOS (https://blissroms-x86.github.io/) , PrimeOS (BETA) (https://primeos.in/), 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 (https://www.neverware.com/freedownload) (upravený ChromeOS) jestli tam bude překlad z ARM do x86 v něčem lepší.
Název: Re:Jaký virtuální Android pro Linux (pro spouštění arm i x86 aplikací)?
Přispěvatel: LarryLin kdy 12. 03. 2020, 23:26:41
Sice si tady povídám trochu sám se sebou, ale na závěr aspoň hodím nějaký výsledek.

Bohužel na CloudReady nelze použít arm aplikace (https://cloudreadykb.neverware.com/s/article/Does-CloudReady-Support-The-Google-Play-Store-Android-Apps).

Android Emulator, verze Android R 32bit:
- Angry Birds Friends 8.2.0 (arm64-v8a + arm-v7a) (Android 4.4+) (https://www.apkmirror.com/apk/rovio-entertainment-corporation/angry-birds-friends/angry-birds-friends-8-2-0-release/angry-birds-friends-8-2-0-2-android-apk-download/) - natahování praku fungovalo
- Plants vs. Zombies FREE 2.9.01 (arm64-v8a + arm-v7a) (Android 4.1+) (https://www.apkmirror.com/apk/electronic-arts/plants-vs-zombies-free/plants-vs-zombies-free-2-9-01-release/plants-vs-zombies-free-2-9-01-android-apk-download/) - klikání na play taky fungovalo.
Obě jednou plynule.
Verze "R" obsahuje překladovou vrstvu z ARM do x86 a musel jsem spuštět takto:
emulator @testAVD-R-x86 -gpu swiftshader_indirect

Při spuštění s "-gpu host" sice Angry funguje, ale Plants zobrazí jen černou obrazovku.

Problém s Emulátorem je, že není uzpůsoben pro myš a často mi přestávala fungovat hw klávesnice, ale zatím se to zdá, u testovaných her, nejpoužitelnější způsob jak spustit x86 i arm aplikace. Případně vyseparovat (vytvořit) Kernel, system.img, userdata.img atd. a spouštět to přímo z Qemu bez nutnosti mít Emulátor.

Android-x86:
Problém s natahováním praku (Angry Birds) a kliknutím na "play" (Plants vs Zombies) je i ve VirtualBoxu. Našel jsem podobně vypadající problém (https://superuser.com/questions/1255345/android-x86-7-1-in-virtualbox-cannot-click-any-games-menu), ale řešení žádné. Zdá se, že je rozdíl mezi "kliknutím" a "ťuknutím" a daná hra očekává "ťuknutí", alespoň tak jsem to pochopil na fóru (https://groups.google.com/forum/#!topic/android-x86/l4Po35RlPko). Doporučované řešení pomocí Tincore Keymapper (http://tincore%20keymapper) nefungovalo (pokud jsem to správně nastavil, protože ta appka je dost neintuitivní).

CitaceLEGO® Legacy: Heroes Unboxed 1.0.8 (arm-v7a) (https://www.apkmirror.com/apk/gameloft/lego-legacy-heroes-unboxed/lego-legacy-heroes-unboxed-1-0-8-release/lego-legacy-heroes-unboxed-1-0-8-2-android-apk-download/) - objeví se úvodní obrazovka hry a dál se nedostanu.
Nepodařilo se mi spustit nikde. Nevím jestli tam je nějaká DRM ochrana, nebo jiný problém, debugovat se mi to nechce.